• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

    0 引言

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

    1 機器視覺技術(shù)概述

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

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

    2 機器視覺在虹膜粗定位中的應(yīng)用

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

    2.1 讀取圖像

    機器視覺軟件Halcon提供了獲取圖像的兩種方式,分別是從圖像采集設(shè)備獲取圖像和從本地磁盤讀取已采集的圖像[5]。方式一,通過軟件提供的圖像采集助手從圖像采集設(shè)備獲取圖像,可用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 圖像預(yù)處理

    一般情況下,圖像采集環(huán)境較為復(fù)雜,所形成的圖像效果相對較差,因而需要對圖像進行預(yù)處理操作,以削弱圖像中的無關(guān)信息,增強有關(guā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ū)域,對應(yīng)的算子應(yīng)當(dāng)為gen_rectangle1,具體代碼是gen_rectangle1 (ROI,x1,y1,x2,y2),ROI為選中的感興趣區(qū)域,x1和y1分別表示左上角的行坐標(biāo)和列坐標(biāo),x2和y2分別表示右下角的行坐標(biāo)和列坐標(biāo),坐標(biāo)的單位統(tǒng)一為像素。感興趣區(qū)域如圖2中矩形框所示。

    圖2 感興趣區(qū)域

    2.3 圖像分割

    圖像分割常常采用閾值分割的方式來實現(xiàn)。閾值分割特別適用于目標(biāo)和背景灰度級不同的圖像,對于虹膜圖像來說,虹膜區(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算子來驗證目標(biāo)和背景之間是分離的。如圖4(b)所示,用不同顏色來區(qū)分不同連通域塊。

    圖3 直方圖界面

    (a)閾值分割

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

    2.4 特征提取

    根據(jù)特征對瞳孔及虹膜區(qū)域進行提取。由于瞳孔區(qū)域和虹膜區(qū)域有明顯的圓形,在圖像中的位置具有一定的規(guī)律特征,因此,本文采用區(qū)域的面積、橢圓形度及區(qū)域的重心行列坐標(biāo)選取出虹膜及瞳孔區(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 機器視覺在虹膜精定位中的應(yīng)用

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

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

    {

    //**區(qū)域轉(zhuǎn)輪廓

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

    //輪廓點坐標(biāo)

    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ù)輪廓上點的坐標(biāo)擬合出眼瞼所在的二次曲線[8]。具體用到的Halcon算子有:圖像邊緣檢測算子edges_sub_pix,選擇輪廓特征算子select_shape_xld,得到輪廓的點坐標(biāo)算子get_contour_xld。

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

    f(x)=ax2+bx+c,

    將此二次曲線轉(zhuǎn)化為矩陣的形式為

    Ax=B,

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

    求解矩陣方程,可得到二次曲線的系數(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 擬合結(jié)果

    4 實驗

    實驗數(shù)據(jù)采自中國科學(xué)院自動化研究所的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所示,部分定位結(jié)果如圖6所示。從定位結(jié)果可以看出,虹膜區(qū)域定位較為準(zhǔn)確,定位速度較快。

    圖7 算法流程圖

    5 結(jié)語

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

    猜你喜歡
    虹膜瞳孔輪廓
    “天眼”的“瞳孔保健師”
    軍事文摘(2023年20期)2023-10-31 08:42:40
    雙眼虹膜劈裂癥一例
    OPENCV輪廓識別研究與實踐
    基于實時輪廓誤差估算的數(shù)控系統(tǒng)輪廓控制
    瞳孔里的太陽
    青年歌聲(2018年2期)2018-10-20 02:02:50
    “刷眼”如何開啟孩子回家之門
    瞳孔
    瞳孔
    在線學(xué)習(xí)機制下的Snake輪廓跟蹤
    計算機工程(2015年4期)2015-07-05 08:27:39
    虹膜識別技術(shù)在公安領(lǐng)域中的應(yīng)用思考
    岗巴县| 临夏县| 天镇县| 兴国县| 偃师市| 彰武县| 新宁县| 宜宾市| 鄂托克前旗| 平凉市| 大厂| 依安县| 茂名市| 娄底市| 鹤山市| 乐业县| 仁化县| 宁武县| 清流县| 德庆县| 松江区| 北碚区| 富源县| 察雅县| 林芝县| 水富县| 白朗县| 宣化县| 永清县| 尖扎县| 勐海县| 崇左市| 喀喇沁旗| 鄂尔多斯市| 周口市| 军事| 景洪市| 武宣县| 合川市| 鹰潭市| 翁牛特旗|