国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機器視覺技術的虹膜定位算法研究

2022-08-04 05:34馬超玉趙夢潔韋欽磊任國仲
長春師范大學學報 2022年6期
關鍵詞:虹膜瞳孔輪廓

馬超玉,趙夢潔,韋欽磊,任國仲

(長春師范大學物理學院,吉林 長春 130032)

0 引言

隨著生物識別的廣泛應用,虹膜識別因其多方面的優(yōu)勢而具有廣泛的應用前景。虹膜識別系統(tǒng)通常是由圖像采集、定位、特征提取以及識別等環(huán)節(jié)組成。由于目前特征提取及識別算法已相當成熟,因此虹膜區(qū)域定位分割成為該項技術的瓶頸。目前國內(nèi)外常用的算法主要是Daugman提出的微積分算法和Wildes提出的霍夫變換算法以及這兩類算法的改進算法[1-3]。這兩類方法定位精度較高,但是都面臨著計算量大、耗時較多以及易受噪聲影響的問題,限制了虹膜識別技術的廣泛應用。為提高計算速度并且保證定位的有效性,本文提出了基于機器視覺技術的虹膜分割方法。首先概括介紹機器視覺技術及視覺軟件Halcon;其次介紹了虹膜區(qū)域粗定位Bolb分析方法;然后介紹了虹膜區(qū)域精定位;最后給出實驗方法以及虹膜定位分割繼續(xù)提升的方向。

1 機器視覺技術概述

機器視覺是利用計算機模擬人的視覺功能,它是一門綜合的技術,一般涉及計算科學、模式識別、神經(jīng)生物學、圖像處理、人工智能等諸多領域的交叉學科[4]。因該技術具有速度快、信息量大、功能較全面等特點,在工業(yè)領域得到了長足的發(fā)展。而機器視覺技術在虹膜識別領域的應用鮮有報道,因此,本文運用機器視覺技術在虹膜識別領域進行創(chuàng)新研究。

Halcon是德國MVtec公司開發(fā)的機器視覺算法包。Halcon具有精確、全面、快速和魯棒的特點,被廣泛應用于工業(yè)上。日本以及歐洲的工業(yè)界公認為Halcon是最具效能的機器視覺軟件[5]。Halcon中的Hdevelop開發(fā)環(huán)境包括圖像窗口、變量窗口、算子窗口和程序編輯器窗口,集中了程序、分析、設計和編程,并且能夠與用戶交互。Hdevelop可以導出C、C++、C#、VB等類型的程序,因而有助于在VisualStudio軟件整合程序[6]。

2 機器視覺在虹膜粗定位中的應用

粗定位采用Bolb分析的方法,該分析方法是將圖像中紋理相似、顏色近似相同等特征組成的一塊連通區(qū)域分析出來。其過程是將圖像進行二值化處理,閾值分割后得到圖像的前景和背景,進而進行連通區(qū)域檢測得到Blob塊的過程[7]。簡單來說,Blob分析就是在一塊“光滑”區(qū)域內(nèi),將出現(xiàn)“灰度變化”的小區(qū)域找尋出來。Blob分析主要包括獲取圖像、圖像預處理、圖像分割、特征提取。

2.1 讀取圖像

機器視覺軟件Halcon提供了獲取圖像的兩種方式,分別是從圖像采集設備獲取圖像和從本地磁盤讀取已采集的圖像[5]。方式一,通過軟件提供的圖像采集助手從圖像采集設備獲取圖像,可用ImageAcquisition自動檢測相機,采用算子grab_image采集圖像;方式二,獲取本地圖像要通過算子read_image來實現(xiàn)。Halcon支持多種圖像格式,本研究采用的圖像庫是中科院CASIA庫,因此本研究采用方式二讀取已經(jīng)采集好的本地磁盤圖像,如圖1(a)所示。讀取圖像代碼為read_image(Image,RootDir),其中,Image表示輸出的圖像變量,RootDir表示圖像路徑。

(a)原圖像

(b)增強圖像圖1 CASIA虹膜圖像

2.2 圖像預處理

一般情況下,圖像采集環(huán)境較為復雜,所形成的圖像效果相對較差,因而需要對圖像進行預處理操作,以削弱圖像中的無關信息,增強有關信息,從而有利于后續(xù)處理的可靠性。算子emphasize可以增強圖像中的高頻信息,使圖像中亮的位置更亮,暗的位置更暗,因此調(diào)用算子emphasize可以對圖像進行增強處理,Halcon代碼為emphasize(Image,ImageEmphasize,5,5,1),增強效果如圖1(b)所示。

另外,在數(shù)字圖像處理過程中,以圓、方框等方式從被處理的圖像中勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域。因圖像中有眉毛等其它信息,會對虹膜定位產(chǎn)生干擾,因此,需要選擇出含有虹膜的區(qū)域作為感興趣區(qū)域??梢赃x擇矩形區(qū)域,也可以選擇圓形區(qū)域,如果選擇了矩形區(qū)域,對應的算子應當為gen_rectangle1,具體代碼是gen_rectangle1 (ROI,x1,y1,x2,y2),ROI為選中的感興趣區(qū)域,x1和y1分別表示左上角的行坐標和列坐標,x2和y2分別表示右下角的行坐標和列坐標,坐標的單位統(tǒng)一為像素。感興趣區(qū)域如圖2中矩形框所示。

圖2 感興趣區(qū)域

2.3 圖像分割

圖像分割常常采用閾值分割的方式來實現(xiàn)。閾值分割特別適用于目標和背景灰度級不同的圖像,對于虹膜圖像來說,虹膜區(qū)域、鞏膜區(qū)域以及瞳孔區(qū)域分別占據(jù)不同的灰度級。在Halcon中閾值分割用算子threshold來實現(xiàn)。具體代碼為threshold (Image,Region,a,b);其中,Image為輸入圖像變量,Region 是分割后的區(qū)域變量,參數(shù)a和b分別為閾值下限和上限,本文閾值在a與b之間。

虹膜圖像如圖1所示,瞳孔區(qū)域、虹膜區(qū)域以及除二者之外的區(qū)域在灰度上具有明顯的階梯性。其灰度直方圖如圖3所示。經(jīng)threshold算子處理后的效果如圖4(a)所示。為了后續(xù)處理,調(diào)用算子fill_up進行瞳孔區(qū)域填充。另外,需要調(diào)用connection算子來驗證目標和背景之間是分離的。如圖4(b)所示,用不同顏色來區(qū)分不同連通域塊。

圖3 直方圖界面

(a)閾值分割

(b)填充瞳孔圖4 分割圖像

2.4 特征提取

根據(jù)特征對瞳孔及虹膜區(qū)域進行提取。由于瞳孔區(qū)域和虹膜區(qū)域有明顯的圓形,在圖像中的位置具有一定的規(guī)律特征,因此,本文采用區(qū)域的面積、橢圓形度及區(qū)域的重心行列坐標選取出虹膜及瞳孔區(qū)域。選取特征用到的算子為select_shape。選取瞳孔區(qū)域的具體代碼為select_shape(Regions:SelectedRegions:Features,Operation,Min,Max:)。其中,Regions為待選區(qū)域,SelectedRegions為選出的特征區(qū)域,F(xiàn)eatures為輸入特征,此特征可為一個,也可為多個,Min和Max表示輸入特征的范圍的最小值和最大值。提取效果如圖5所示。

(a)瞳孔區(qū)域

(b)虹膜區(qū)域圖5 特征提取

3 機器視覺在虹膜精定位中的應用

3.1 虹膜內(nèi)外邊界定位

選出的瞳孔區(qū)域及虹膜區(qū)域只是粗略地定位出虹膜所在區(qū)域,為了更精確地定位出虹膜內(nèi)外邊界,還要對需去除的區(qū)域進行處理。通常,將區(qū)域轉化為輪廓,計算輪廓上點的坐標與區(qū)域重心的距離,將不滿足距離閾值的點去掉,將剩下的點進行圓擬合,擬合出的圓即為虹膜的內(nèi)外邊界。所用到的算子有:區(qū)域轉化為輪廓算子gen_contour_region_xld,得到輪廓點坐標算子get_contour_xld,計算兩點間距離算子distance_pp,擬合圓算子gen_circle。瞳孔精定位VC程序如下:

{

//**區(qū)域轉輪廓

GenContourRegionXld(ho_ConnectedRegions, &ho_Contours, "center");

//輪廓點坐標

GetContourXld(ho_Contours, &hv_Row, &hv_Col);

TupleLength(hv_Row, &hv_Length);

hv_count = 0;

hv_pupilradius = 0;

{

HTuple end_val102 = hv_Length-1;

HTuple step_val102 = 1;

for (hv_Index=0; hv_Index.Continue(end_val102, step_val102); hv_Index += step_val102)

{

DistancePp(hv_Row2,hv_Column2,HTuple(hv_Row[hv_Index]),HTuple(hv_Col[hv_Index]), &hv_Distance);

if (0 !=

(HTuple(hv_Distance>hv_lpupilradius).TupleAnd(hv_Distance

{

hv_pupilradius = hv_Distance+hv_pupilradius;

hv_count += 1;

}

}

}

//***圓心及半徑

hv_pupilradius = hv_pupilradius/hv_count;

hv_pupil_Row = hv_Row2;

hv_pupil_Col = hv_Column2;

//***瞳孔擬合

GenCircle(&ho_Circle, hv_pupil_Row, hv_pupil_Col, hv_pupilradius);

}

虹膜內(nèi)外邊界定位效果如圖6所示,其中,內(nèi)圓為虹膜的內(nèi)邊緣,外圓為虹膜的外邊界。

3.2 眼瞼定位

一般情況下,上下眼瞼對虹膜區(qū)域有遮擋,特別是虹膜的正上方區(qū)域。首先選出上眼瞼所在的區(qū)域圖像,然后對圖像進行亞像素canny邊緣檢測,根據(jù)上眼瞼輪廓的特征選出真實的眼瞼輪廓,根據(jù)輪廓上點的坐標擬合出眼瞼所在的二次曲線[8]。具體用到的Halcon算子有:圖像邊緣檢測算子edges_sub_pix,選擇輪廓特征算子select_shape_xld,得到輪廓的點坐標算子get_contour_xld。

根據(jù)眼瞼輪廓的點坐標擬合二次曲線的過程,即求解矩陣中a、b、c值的過程。假設所求解的二次曲線的方程式為

f(x)=ax2+bx+c,

將此二次曲線轉化為矩陣的形式為

Ax=B,

其中,A=(X2,X,1),X=(a,b,c),B=f(x),A和B為選出的眼瞼輪廓點的坐標矩陣。

求解矩陣方程,可得到二次曲線的系數(shù),進而擬合出上眼瞼,具體用到的算子為求解矩陣方程算子solve_matrix。

生成二次曲線系數(shù)部分VC程序如下:

{

CreateMatrix(hv_Y1.TupleLength(), 3, 1.0, &hv_MatrixA1);

CreateMatrix(hv_Y1.TupleLength(), 1, hv_Y1, &hv_MatrixACol11);

CreateMatrix(hv_Y1.TupleLength(), 1, hv_Y1*hv_Y1, &hv_MatrixACol01);

SetSubMatrix(hv_MatrixA1, hv_MatrixACol11, 0, 1);

SetSubMatrix(hv_MatrixA1, hv_MatrixACol01, 0, 0);

CreateMatrix(hv_Y1.TupleLength(), 1, hv_X1, &hv_MatrixB1);

//解方程即可得到a,b,c的系數(shù),記為矩陣hv_MatrixX1

SolveMatrix(hv_MatrixA1, "general", 0, hv_MatrixB1, &hv_MatrixX1);

}

擬合下眼瞼采用與上眼瞼同樣的方法,效果如圖6所示。其中,拋物線即為擬合出的上下眼瞼。

(a)

(b)

(c)

(d)

(e)

(f)圖6 擬合結果

4 實驗

實驗數(shù)據(jù)采自中國科學院自動化研究所的CASIA-IrisV4中的CASIA-Iris-Syn數(shù)據(jù)庫,該數(shù)據(jù)庫包括1 000只眼睛的虹膜圖像,每只眼睛采集10個樣本,共10 000幅虹膜圖像,圖像的分辨率為640×480。實驗開發(fā)工具為Halcon17.12.0.0,系統(tǒng)平臺為Windows7,實驗算法流程如圖7所示,部分定位結果如圖6所示。從定位結果可以看出,虹膜區(qū)域定位較為準確,定位速度較快。

圖7 算法流程圖

5 結語

基于視覺技術的虹膜定位方法不僅定位效率高,而且定位準確率也高。但是,不同的虹膜采集設備采集出的虹膜圖像質(zhì)量不同,本文的處理方法并不能通用于所有的虹膜圖像分割。因此應根據(jù)不同的虹膜應用場景,采用不同的圖像處理方法。如何采用同一方案,處理不同場景下的虹膜圖像,是本研究的改進方向。

猜你喜歡
虹膜瞳孔輪廓
雙眼虹膜劈裂癥一例
基于輪廓匹配和多項式擬合的虹膜分割算法
OPENCV輪廓識別研究與實踐
基于實時輪廓誤差估算的數(shù)控系統(tǒng)輪廓控制
一種基于虹膜識別技術的車輛啟動系統(tǒng)
瞳孔里的太陽
“刷眼”如何開啟孩子回家之門
瞳孔
高速公路主動發(fā)光輪廓標應用方案設計探討
瞳孔
新安县| 盖州市| 佛冈县| 台江县| 万年县| 鸡东县| 隆子县| 安仁县| 靖边县| 合作市| 洮南市| 石屏县| 福海县| 奈曼旗| 曲松县| 安达市| 宁化县| 青岛市| 乐清市| 依安县| 右玉县| 通海县| 大丰市| 兴安盟| 比如县| 紫金县| 蒙阴县| 怀柔区| 连江县| 红原县| 临漳县| 伊川县| 潼关县| 上虞市| 金堂县| 格尔木市| 仪征市| 卢氏县| 姜堰市| 巢湖市| 阳高县|