开源虹膜识别软件OSIRIS4.1的使用入门

使用环境:Ubuntu 16.04;


1.安装opencv

下载opencv的自动安装脚本,便于操作:

git clone https://github.com/bearpaw/Install-OpenCV.git

安装2.4.9版,稳定可靠:
cd Install-OpenCV/Ubuntu
sudo ./dependencies.sh
cd 2.4
sudo chmod +x opencv2_4_9.sh
sudo ./opencv2_4_9.sh


2.安装OSIRIS

下载这个文件到home目录,该下载资源在前一篇博文中已经介绍过了:
http://svnext.it-sudparis.eu/svnview2-eph/ref_syst/Iris_Osiris_v4.1/download/Iris_Osiris_v4.1.tar.gz
解压
tar zxvf Iris_Osiris_v4.1.tar.gz
修改文件权限
sudo chmod 777 -R Iris_Osiris_v4.1
编译
cd Iris_Osiris_v4.1/src
make all
此时会在该目录下生成名为osiris的可执行文件;

3.虹膜识别使用示例

在“Iris_Osiris_v4.1”目录下新建“虹膜数据”文件夹和“图像处理”文件夹,前者用于存放各种虹膜数据集,后者用于存储虹膜识别过程中产生的各种分割、归一化、编码中间数据图像等;
在scripts文件夹中有两个文件夹TemplateMatching,前者存放了虹膜处理的配置模板,后者存放了虹膜对比的配置模板;


一个完整的虹膜识别过程是先处理再对比,因此我们依次设置;


3.1 process步骤

Template文件夹里有configuration.iniImageListICE.txt两个文件,前者是配置模板,后者是虹膜图像列表样例;
将这两个文件拷贝到“虹膜数据”文件夹,并分别改名为process.iniprocess_CASIA-IrisV2.txt
在“虹膜数据”文件夹下新建“CASIA-IrisV2”文件夹,并将中科院自动化所虹膜数据集 CASIA-IrisV2的几个虹膜图像拷贝进去:
开源虹膜识别软件OSIRIS4.1的使用入门_第1张图片


编辑process_CASIA-IrisV2.txt文件:

0000_000.bmp
0000_001.bmp
0000_002.bmp
0000_003.bmp
0001_000.bmp
0001_001.bmp
0001_002.bmp
0001_003.bmp


编辑process.ini文件(只列出修改的部分):

List of images = ../虹膜数据/process_CASIA-IrisV2.txt
Load original images = ../虹膜数据/CASIA-IrisV2/
Save segmented images = ../图像处理/SegmentedImages/
Save contours parameters = ../图像处理/CircleParameters/
Save masks of iris = ../图像处理/Masks/
Save normalized images = ../图像处理/NormalizedImages/
Save normalized masks = ../图像处理/NormalizedMasks/
Save iris codes = ../图像处理/IrisCodes/


可见,该配置文件主要用于指明从哪里读图像列表,从哪里读图像,把虹膜处理的中间数据存储到哪里;


在“图像处理”文件夹下分别新建文件夹: SegmentedImages、 CircleParameters、 Masks、 NormalizedImages、 NormalizedMasks、 IrisCodes;


下面就可以开始process步骤了:

cd ~/Iris_Osiris_v4.1/src
./osiris ../虹膜数据/process.ini

开源虹膜识别软件OSIRIS4.1的使用入门_第2张图片


处理完毕后,可以在“图像处理”目录下的各个文件夹里观察虹膜处理过程中的中间处理数据:

例如, SegmentedImages目录中是对虹膜进行分割的处理结果:

开源虹膜识别软件OSIRIS4.1的使用入门_第3张图片

而IrisCodes目录中则是最后得到的虹膜编码图像:
开源虹膜识别软件OSIRIS4.1的使用入门_第4张图片


3.2 match步骤

和上面一样,不过match步骤不需要再重新计算待对比虹膜了,只需要载入已经计算好的数据即可;
将Matching文件夹里的configuration.ini和任一txt拷贝到“虹膜数据”文件夹,并分别改名为match.inimatch_CASIA-IrisV2.txt
编辑match_CASIA-IrisV2.txt文件:
0000_000.bmp 0000_001.bmp
0000_002.bmp 0000_003.bmp
0001_000.bmp 0001_001.bmp
0001_002.bmp 0001_003.bmp
0000_000.bmp 0001_000.bmp
0000_001.bmp 0001_001.bmp
0000_002.bmp 0001_002.bmp
0000_003.bmp 0001_003.bmp

在自动化所的这个数据集中,下划线之前号码相同的代表同一个人,因此上述txt文件的前四组对比是类内对比(intra class match),后四组对比是类件对比(inter class match);


编辑match.ini文件(只列出修改部分):

List of images = ../虹膜数据/match_CASIA-IrisV2.txt
Load normalized masks = ../图像处理/NormalizedMasks/
Load iris codes = ../图像处理/IrisCodes/
Save matching scores = ../图像处理/score_CASIA-IrisV2.txt

下面就可以开始match步骤了:
cd ~/Iris_Osiris_v4.1/src
./osiris ../虹膜数据/match.ini


开源虹膜识别软件OSIRIS4.1的使用入门_第5张图片


在“图像处理”目录下的“score_CASIA-IrisV2.txt”文件中就可以看到对比结果了:
0000_000.bmp 0000_001.bmp 0.156118
0000_002.bmp 0000_003.bmp 0.171024
0001_000.bmp 0001_001.bmp 0.190329
0001_002.bmp 0001_003.bmp 0.166667
0000_000.bmp 0001_000.bmp 0.398026
0000_001.bmp 0001_001.bmp 0.399329
0000_002.bmp 0001_002.bmp 0.388128
0000_003.bmp 0001_003.bmp 0.375283

根据虹膜识别理论,match score小于0.32的是同一个人,大于0.32的不是同一个人,可见上述对比结果都是符合实际的,虹膜识别成功!


开源虹膜识别代码OSIRIS4.1的使用入门介绍完毕,该开源代码、以上编辑过的配置文件、若干张自动化所虹膜库图像都可以在qq群里下载:

虹膜识别算法研究QQ群:422376177

扫码加入:

开源虹膜识别软件OSIRIS4.1的使用入门_第6张图片

你可能感兴趣的:(虹膜识别)