Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册

牛蹄印章

阿牛是个好青年

  • 博客访问: 2809116
  • 博文数量: 1033
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 11249
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1033)

文章存档

2017年(60)

2016年(70)

2015年(52)

2014年(53)

2013年(63)

2012年(111)

2011年(51)

2010年(253)

2009年(320)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
友情链接

分类: Windows平台

环境:
>> 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
tar xf Iris_Osiris_v4.1.tar.gz; 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. 软件模块描述
过程
  • 分割 Segmentation
确定等高线 + 内轮廓(瞳孔).+ 外廓(巩膜), 即把虹膜分离出来. 主要是建立掩码.
  • 标准化 Normalization
用Daugman橡胶法把虹膜区域转化成固定尺寸. 也是建立掩码的步骤.
  • 编码 Encoding
用gabor滤波器(可定制方向和分辨率)得到虹膜的纹理, 得到一个虹膜模板 template.
gabor滤波器用2Bytes编码, 产生虹膜的数字特征.
  • 匹配 matching
比较两个虹膜的数字特征, 使用 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. 算法描述








































阅读(53) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册