新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM和滑動指紋傳感器的c計

        基于ARM和滑動指紋傳感器的c計

        作者: 時間:2012-04-13 來源:網絡 收藏

        4.2 加載驅動程序

        設備驅動程序在Linux內核中,使某個特定的硬件響應一個定義良好的內部編程接口,同時完全隱藏了設備的工作細節。用戶通過一組標準化的調用完成對硬件的操作,而這些調用是和特定的驅動程序無關的。將這些調用映射到作用了實際硬件的設備特定的操作上,就是設備驅動程序的任務。也即Linux中的模塊化實現,這也是Linux中設備驅動程序的一大特點。

        將FingerChip驅動程序加載到Linux文件系統中,當系統運行時,使用insmod命令,即可實現指紋傳感器設備的裝載。通過標準化的調用,實現對傳感器的控制。

        5、基于滑動式指紋傳感器的指紋拼接算法

        當手指滑過時,采集到是一系列指紋幀序列,因此在嵌入式系統中,需要對獲取的指紋幀序列進行拼接。與PC機中的CPU相比,芯片速度較低。為了減少刮取指紋后的等待時間,對指紋拼接速度的要求很高。

        本文運用基于塊匹配指紋拼接算法[5],能夠快速有效的尋找到相鄰指紋幀之間的偏移量。塊匹配算法是:(1)在圖像A中選取M×N大小的X區域;(2)在圖像B中選取所有可能的M×N大小的Y區域;(3)計算X區域和Y區域對應象素差值的平均值MAE;MAE越小,兩區域相似度越高;計算公式為:

        基于ARM和滑動指紋傳感器的c計 (1)

        其中0≤i≤M-1,0≤j≤N-1,p(i,j)為X區域的點p的象素值,q(i,j)為Y區域對應點q的象素值。MAE越小,兩區域相似度越高。理想情況下,MAE最小值為0。

        具體實現步驟:(1)FingerChip AT77104A獲取到的指紋幀數據大小為232×8,設x方向為232,y方向為8。為了有效的拼接相鄰兩幀指紋,設置獲取每一幀數據的頻率,使得y方向的偏移量dy不大于8,即保證相鄰兩幀一定有重疊。(2)理想情況下,手指在y方向滑動,在x方向上偏移量為0。因此,只考慮dx不大于dy的情況。當dx超過dy時,滑動無效。(3)由(1)(2)可得,|dx|8。同時可得,最后一行,中間的(232-8×2)個象素與下一幀必有重疊。(4)取前一幀最后一行(232-8×2)個象素,即(232-8×2)×1的模板,與新獲取的一幀指紋匹配。(5)匹配方法:在新的指紋幀里面尋找所有可能的(232-8×2)×1的模板,計算求得MAE。選取MAE的最小值對應的模板,此模板與上一幀的最后一行的(232-8×2)×1的模板相匹配。即得dx,dy。(6)重復執行以上步驟,直到得到一幅完整的指紋圖像。圖3-a為拼接前的指紋幀,圖3-b為拼接后的指紋圖像。

        基于ARM和滑動指紋傳感器的c計

        圖3 a.拼接前的指紋幀 b.拼接后的指紋圖像

        6、總結

        本文實現了基于9芯片AT91RM9200和AT77C104B FingerChip的指紋采集系統,具有低功耗,采集便捷,通信系統簡單等優點,具有很大的實用價值。開發的指紋拼接算法通過了AT77C104B FingerChip獲取的100幅指紋幀序列的測試,均能達到較好的效果。該系統獲取到的指紋幀序列和拼接后的指紋圖像,均可通過USB接口導出,可用于指紋拼接算法有效性的測試和指紋識別算法的測試。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 琼结县| 武川县| 广元市| 沾化县| 堆龙德庆县| 夏河县| 广宁县| 潼关县| 报价| 开平市| 宁城县| 新泰市| 慈利县| 松潘县| 页游| 镇康县| 赤水市| 秭归县| 诏安县| 鄱阳县| 安徽省| 邢台县| 伊吾县| 湘潭县| 沂源县| 孟连| 冷水江市| 桦川县| 神木县| 安义县| 沾益县| 如皋市| 平昌县| 杂多县| 东海县| 五大连池市| 永昌县| 瓦房店市| 茶陵县| 贵德县| 托克逊县|