环境:
>> cat /etc/issue
Ubuntu 17.04 \n \l
gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)
1. 安装环境
OSIRIS_V4.1 需要使用 OpenCV, 首先需要Opencv 环境.
>>>
sudo apt install libopencv-core2.4v5 libopencv-calib3d2.4v5 libopencv-contrib2.4v5 libopencv-features2d2.4v5 libopencv-flann2.4v5 libopencv-gpu2.4v5 libopencv-imgproc2.4v5 libopencv-legacy2.4v5 libopencv-ml2.4v5 libopencv-objdetect2.4v5 libopencv-ocl2.4v5 libopencv-photo2.4v5 libopencv-stitching2.4v5 libopencv-superres2.4v5 libopencv-ts2.4v5 libopencv-video2.4v5 libopencv-videostab2.4v5 libopencv-videostab-dev libopencv-video-dev libopencv-ts-dev libopencv-superres-dev libopencv-stitching-dev libopencv-photo-dev libopencv-ocl-dev libopencv-objdetect-dev libopencv-ml-dev libopencv-legacy-dev libopencv-imgproc-dev libopencv-highgui-dev libopencv-gpu-dev libopencv-flann-dev libopencv-features2d-dev libopencv-dev libopencv-core-dev libopencv-contrib-dev libopencv-calib3d-dev libopencv-apps-dev
pkg-config opencv --libs --cflags //查看是否安装成功.
下载
或者
下载 /Iris_Osiris_v4.1/download/Iris_Osiris_v4.1.tar.gz
>>>
sudo mkdir /Osiris_V4.1; sudo chown ray:ray /Osiris_V4.1; cd /Osiris_V4.1
wget -c
tar xf ; sudo chmod a+rwx Iris_Osiris_v4.1 -R
cd Iris_Osiris_v4.1/src
make all -j4 生成 osiris 可执行程序.
(可参考 )
2. 导入数据库
2953个灰度眼睛的图片,属于132个人的. 通过 LG2200相机采集(640x480). 有的图有反光/污迹/错纹, 但可以通过眼睑/睫毛区分.
分为两个部分, 右眼虹膜(1425, 属于124个人), 左眼虹膜(1528,属于120个人).
一般情况下, 识别一个人需要左眼和右眼两个数据.
( 下载第三方虹膜图库)
3. 软件模块描述
过程
确定等高线 + 内轮廓(瞳孔).+ 外廓(巩膜), 即把虹膜分离出来. 主要是建立掩码.
用Daugman橡胶法把虹膜区域转化成固定尺寸. 也是建立掩码的步骤.
用gabor滤波器(可定制方向和分辨率)得到虹膜的纹理, 得到一个虹膜模板 template.
gabor滤波器用2Bytes编码, 产生虹膜的数字特征.
比较两个虹膜的数字特征, 使用 Hamming-Distance方法, 特征点是可以定制的. 掩码可以滤噪.
输入/输出
如图: Mask of iris 是 Normalization的输入, 是Segmentation的输出.
每部分的输出都是可以单独保存和提取的, 这利用用其他方案来利用当前的中间结果.
-
原始图 original Image
-
灰度图, 尺寸和分辨率不限(保证虹膜直径有200像素)
-
分割图 Segmneted image
-
原始图和虹膜的掩码(瞳孔绿内外两个圆 + 圆内虹膜无纹理部分描红) 经过 得到分割图, 此图无任何意义, 仅仅为主观观测使用. 在Osiris 4.1 中实际后续步骤中使用的是等高线.
-
圆由最小二乘圆拟合法 + 维特比获得的等高线.
-
虹膜掩码 mask of iris
-
Segmentation产生虹膜的二进制掩码, 即虹膜环状区有纹理与无纹理的部分. 此mask 掩码在经过 Normalized处理后 再被用于 matching 匹配时的滤噪过程.
-
轮廓参数 Contours parameters
-
Segmneted 过程产生两组两组轮廓, 即瞳孔+虹膜(有纹理的部分)等高线参数. 此参数作为 Normalized 的输入参数.
-
参数格式 文本格式, 按行说明
-
Line 1: 瞳孔等高线的点数.
-
Line 2: 虹膜等高线的点数.
-
Line 3: 瞳孔等高线的点的坐标集合. 坐标(x,y,z) 角度z = 0 <-> 2PI=6.2831
-
Line 4: 最后一行. 虹膜等高线的点的坐标集合.
-
标准图 Normalized Image
-
daugman's rubber-sheet 方法, 把原始图转化成 标准图. 标准图作为编码 Encoding 的输入.
-
标准掩码 Normalized mask. 由 Normalization 过程产生, 作为 matching 匹配过程中的一个滤噪选项.
-
虹膜模板 Iris template
-
encoding 步骤, 通过Gabor 滤波, 把 标准图 Normalized Image 转换成 iris 编码.
-
按照 Daugman, 仅仅需要 256个点即可满足虹膜识别. Osiris V4.1 为开发目的, 保存了所有的点.
-
虹膜模板 Iris template 被存储成二进制图, W*(n*H) n代表GaborFilters的数量. (实际有 n/2 个 GaborFilter, 用于实部和虚部, 如果实部和虚部认为是单独的, 则为n个GaborFilter)
-
虹膜模板 Iris template 作为 matching 匹配的输入.
-
匹配度计算 matching score 完全匹配0<->1 完全不同
-
Osiris 4.1 输出格式文本文件, 每行格式为 目标图文件名 比较图片名 匹配度
4. Osiris 4.1 的配置使用
-
加载 /Iris_Osiris_v4.1/src
-
./osiris 配置文件名
-
配置文件 参考 Iris_Osiris_v4.1\scripts\Template | Matching \[ini文件]
比较重要的
虹膜环的直径设置, 和采集原始图有关系, 合理设置会提升计算速度.
ICE-2005的图库合理设置为 [min 50 -> max 160][min 16 -> max 300]
GaborFilters个数设置 (矩阵)
实部虚部分开. 第一行 6 代表 3x实部, 3x虚部.
5. 算法描述
阅读(3676) | 评论(0) | 转发(0) |