• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于嵌入式和OpenCV 技術(shù)的人臉識別考勤系統(tǒng)

      2019-11-18 07:26:26嚴(yán)正國王家冰
      現(xiàn)代計算機(jī) 2019年28期
      關(guān)鍵詞:開發(fā)板跨平臺內(nèi)核

      嚴(yán)正國,王家冰

      (西安石油大學(xué)光電油氣測井與檢測國家教育部重點(diǎn)實(shí)驗室,西安710065)

      0 引言

      當(dāng)今社會,大多數(shù)公司、企業(yè)都會對員工的上、下班進(jìn)行考勤。當(dāng)前的卡片打卡機(jī)防作弊機(jī)制不完全,只要手中有他人的卡片就可以替代打卡,市面上也出現(xiàn)了指紋式打卡機(jī),這種打卡機(jī)指紋容易磨損,同時指紋套等物品的出現(xiàn)也說明了指紋打卡的不可靠性。如今,生物特征識別技術(shù)應(yīng)用需求廣泛,而人臉識別技術(shù)又以其非強(qiáng)制性、非接觸性、并發(fā)性和普遍性的特點(diǎn),得到了廣泛的應(yīng)用。嵌入式系統(tǒng)作為時下最流行的智能設(shè)備開發(fā)平臺,通過OpenCV 這個資源豐富的跨平臺計算機(jī)視覺庫,將人臉識別技術(shù)與嵌入式系統(tǒng)相結(jié)合,顯著提高了開發(fā)的效率。

      1 系統(tǒng)整體框架設(shè)計

      系統(tǒng)總體設(shè)計方案主要包括以下兩個內(nèi)容:

      一是嵌入式硬件系統(tǒng)的搭建,主要包括了硬件平臺的選擇、Bootloader 的移植,Linux 內(nèi)核的裁剪與移植和根文件系統(tǒng)的構(gòu)建。

      二是軟件系統(tǒng)的編程,主要涵蓋了對基于OpenCV的人臉識別技術(shù)的研究與應(yīng)用程序的設(shè)計和編寫。

      2 系統(tǒng)硬件設(shè)計

      本設(shè)計選用了mini2440 開發(fā)板,其采用的微控制器是三星公司推出的S3C2440A,基于ARM920T 核心,具有性能高、功耗低、成本低的特點(diǎn)。

      2.1 Bootloader的移植

      Bootloader 是開機(jī)啟動系統(tǒng)時的一小段程序,通過這段程序來初始化硬件與建立內(nèi)存空間的映射表,從而建立適當(dāng)?shù)能浻布h(huán)境。u-boot 是最常用的一種Bootloader,它是一個開源的通用引導(dǎo)程序,同時支持x86、ARM 和PowerPC 等多種處理器架構(gòu)。

      (1)網(wǎng)上下載相應(yīng)版本的u-boot.bin 到虛擬機(jī)的tftpboot。

      (2)在開發(fā)板上配置TFTP 服務(wù)器的IP 地址,setenv serverip 192.168.1.xx(虛擬機(jī)ip 地址),并通過tftp 把u-boot.bin 下載到開發(fā)板內(nèi)存。

      圖1 系統(tǒng)流程圖

      (3)在開發(fā)板上燒寫u-boot.bin。

      2.2 Linux內(nèi)核的裁剪和移植

      需要對內(nèi)核進(jìn)行適當(dāng)?shù)男薷牟拍芨眠m配開發(fā)板,需要對內(nèi)核進(jìn)行配置并重新Makefile。

      (1)官網(wǎng)下載與開發(fā)板對應(yīng)的內(nèi)核版本,make${PLATFORM}_defconfig 確定平臺。

      (2)make menuconfig 進(jìn)入圖形化界面配置內(nèi)核信息,進(jìn)行內(nèi)核裁剪。

      (3)make uImage 編譯內(nèi)核源碼。

      (4)tftp 0x30008000 uImage 在uboot 環(huán)境下載內(nèi)核鏡像,bootm 0x30008000 啟動內(nèi)核。

      圖2 內(nèi)核裁剪界面

      2.3 根文件系統(tǒng)的構(gòu)建

      在Linux 系統(tǒng)我們也需要把磁盤和Flash 分為多個分區(qū),便于日常的使用,常用的存儲設(shè)備文件系統(tǒng)類型有jffs2、yaffs2、ubifs、ramdisk、nfs,等等。在網(wǎng)上下載一個常用的根文件系統(tǒng)放到虛擬機(jī)nfs 目錄中,然后通過nfs 掛載的方式實(shí)現(xiàn)根文件系統(tǒng)的搭建。

      圖3 開發(fā)板根文件系統(tǒng)

      3 系統(tǒng)軟件設(shè)計

      根據(jù)設(shè)計的需求決定采用Qt Creator 作為圖形應(yīng)用程序開發(fā)工具,Qt Creator 是一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它為應(yīng)用程序開發(fā)者提供建立藝術(shù)級圖形界面所需的所有功能。使用Qt Creator主要是因為它跨平臺,支持Windows 和Linux 等平臺;函數(shù)接口簡單,易于編程;開發(fā)效率高,有成熟的軟件框架,可以快速地編寫應(yīng)用程序;支持嵌入式開發(fā)。

      OpenCV 是一個開源的跨平臺計算機(jī)視覺庫,它為我們提供了大量的圖像處理的C 語言函數(shù)和C++類,供學(xué)習(xí)者免費(fèi)使用。我們可以在嵌入式Linux 環(huán)境下對OpenCV 庫進(jìn)行編譯,將編譯好的OpenCV 庫移植到開發(fā)板的根文件系統(tǒng)的/usr/lib 目錄,人臉識別的具體識別方法將利用OpenCV 的函數(shù)進(jìn)行編寫。

      圖形的界面的開發(fā)主要使用QtGUIApplication 的進(jìn)行設(shè)計,主要界面包含了攝像頭、人臉識別方法以及必要的功能按鈕。

      圖4 Qt Creator設(shè)計界面

      圖5 軟件流程圖

      人臉識別模塊的編寫主要使用了OpenCV 中的FaceRecognizer 類,主要的功能是實(shí)現(xiàn)了對于攝像頭采集的圖片的訓(xùn)練和預(yù)測,分別對應(yīng)train 和predict 函數(shù)。訓(xùn)練的時候,將照片的信息保存在vectorsrcVec 中,照片的標(biāo)簽保存在vectorlabels里,訓(xùn)練完成后將以XML 格式來保存訓(xùn)練的結(jié)果。預(yù)測的時候,將新獲得的圖片與XML 特征值文件進(jìn)行比對,返回識別到的圖片在人臉庫的分組、用戶名與預(yù)測值。程序中的關(guān)鍵代碼如下:

      //創(chuàng)建人臉識別類

      Ptr faceClass = EigenFaceRecognizer::create();

      PtrfisherClass=FisherFaceRecognizer::create();

      PtrlpbhClass=LBPHFaceRecognizer::create();

      //訓(xùn)練

      faceClass->train(images,labels);

      fisherClass->train(images,labels);

      lpbhClass->train(images,labels);

      //保存訓(xùn)練的分類器

      faceClass->save("faceClass.xml");

      fisherClass->save("fisherClass.xml");

      lpbhClass->save("lpbhClass.xml");

      //加載分類器

      faceClass->load("faceClass.xml");

      fisherClass->load("fisherClass.xml");

      lpbhClass->load("lpbhClass.xml");

      //使用訓(xùn)練好的分類器進(jìn)行預(yù)測。

      int faceResult=faceClass->predict(src_5);

      訓(xùn)練和預(yù)測時使用的人臉識別方法是特征臉EigenFace、Fisher 臉FisherFace、LBP 直方圖LBPHFace,分別調(diào)用函數(shù)cv::face::EigenFaceRecognizer::create、cv::face::FisherFaceRecognizer::create 和 cv::face::LBPHFaceRecognizer::create 建立模型。

      識別結(jié)果如圖6 所示,正確識別了組名、用戶名并返回了預(yù)測值,我們可以看到預(yù)測值達(dá)到91.35。根據(jù)筆者試驗,一般預(yù)測值達(dá)到80 以上時,識別結(jié)果均準(zhǔn)確無誤,成功實(shí)現(xiàn)了人臉識別。

      圖6 人臉識別結(jié)果

      4 結(jié)語

      通過開源的OpenCV 計算機(jī)視覺庫,使得人臉識別技術(shù)在嵌入式系統(tǒng)得以實(shí)現(xiàn),可以根據(jù)實(shí)際需求具體定制人臉識別設(shè)備,在嵌入式生物識別領(lǐng)域具有一定的應(yīng)用前景。但本設(shè)計亦有考慮不足之處,在實(shí)際工程中還需要進(jìn)一步優(yōu)化與改進(jìn)。

      (1)系統(tǒng)在經(jīng)過長時間的運(yùn)行之后,是否還能保持設(shè)備可靠的運(yùn)行。

      (2)信息采集模塊由于實(shí)際應(yīng)用的不確定性,如果獲取的照片角度不佳或光照不足,是否會對人臉識別模塊造成影響。

      猜你喜歡
      開發(fā)板跨平臺內(nèi)核
      萬物皆可IP的時代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      跨平臺APEX接口組件的設(shè)計與實(shí)現(xiàn)
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺析單片機(jī)開發(fā)板的設(shè)計與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實(shí)現(xiàn)
      基于OPC跨平臺通信的電機(jī)監(jiān)測與診斷系統(tǒng)
      基于B/S的跨平臺用戶界面可配置算法研究
      登封市| 交口县| 五指山市| 汝州市| 泗阳县| 韶关市| 灌云县| 特克斯县| 时尚| 海阳市| 深州市| 广东省| 遵化市| 神农架林区| 濉溪县| 安西县| 浮梁县| 晴隆县| 钦州市| 翼城县| 成武县| 宕昌县| 陈巴尔虎旗| 岑溪市| 遵义县| 苏尼特右旗| 崇文区| 宝清县| 洛宁县| 黄大仙区| 突泉县| 弋阳县| 会昌县| 莱芜市| 安溪县| 龙岩市| 武宁县| 上思县| 轮台县| 沙坪坝区| 许昌县|