嵌入式平台上的人臉檢測系統(簡單總結)

2021-06-22 00:01:51 字數 1427 閱讀 9800

從自己接觸這個專案到目前為止,學到和彌補了很多知識,其中對編譯器的認識,對平台的認識,對交叉編譯的認識,都有很大進步。

下面就簡單總結一下自己近期學到的東西,儘管我的專案依然在繼續。

實現嵌入式平台上的人臉檢測,主要是在arm板子上能夠檢測到人臉

這就涉及乙個檢測和識別人臉的計算機視覺庫---opencv ,通過呼叫這個庫中的函式和一些檔案,可以檢測到人臉,人眼,鼻子等

那麼,要呼叫這個庫中的函式,就必須安裝這個庫檔案,並且新增庫檔案的路徑到你的開發工具,這樣你在程式設計時就可以呼叫相關函式,實現相關功能,比如說人臉識別

(windows +vs2010 + opencv)

但是,我的專案需要加上介面,不能單單是乙個控制台程式,所以採用了跨平台的介面程式設計工具 qt creator ,所有第二部是實現在qt 中呼叫opencv

(windows + qt +opencv)

和上述過程相似,只要能夠新增庫檔案路徑到開發工具,就可以呼叫相關函式和檔案到專案中。依然是用cmake 編譯產生庫檔案 到指定位置。與vs不同的是,我是在單獨每個qt專案中,新增opencv 標頭檔案和庫檔案路徑的。這與之前過程類似,此處不多言,今後詳述。建立專案後,就是編譯通過。

這裡設計的乙個問題是版本問題和編譯器的問題:

此處的opencv 版本 和qt 版本需要特別注意,qt 使用的編譯器是mingw 版本的,具體為什麼我不太懂,貌似cmake 中有這個選項,用這個選項編譯opencv才可以通過。

這裡遇到的第二個問題是:

(linux +qt +opencv)

然後,首先是cmake安裝,建立相應的目錄,放置cmake 解壓包(具體操作網上有),然後是新增環境變數;這樣的話便可以利用cmake的影象介面進行opencv的編譯

其次,編譯opencv ,此處編譯是適用於linux上位機的庫,所用到編譯器是g++(檢視linux系統中是否已經安裝),編譯過程中是利用cmake的影象介面,所以其中要注意的細節問題,在本論壇中可以找到前輩們作出的努力,他們的帖子講的很詳細。編譯後,產生可以呼叫的opencv庫檔案,然後便是新增相應的環境變數(要有這個概念)

(arm +qt +opencv)

這個過程需要做的主要是交叉編譯和移植。前提是安裝交叉編譯器arm-linux-gcc(安裝方法網上有,注意安裝路徑和環境變數的新增)

首先是opencv庫檔案的交叉編譯和移植,此處就是opencv for arm ,大致過程如同 opencv for linux ,只是細節問題可能不同,需要注意

好了,基本思路是這樣的,其中很多問題,很多細節,都是需要自己慢慢理解和搗鼓的。感謝網上一些前輩前仆後繼的努力和無私付出,解決了我很多問題和困惑。我寫這些知識想和自己一樣的新手在思路上更加清晰一下,以便總結和進行下一步工作。

有時間的話,我會貼出具體的步驟和需要注意的細節問題,畢竟這是畢業設計的專案,畢業才是王道,吼吼。

最後,向那些前輩們致敬,麼有你們,就麼有我的這些進展

嵌入式GUI FTK介紹 5 在多平台上執行

作者 李先靜 可移植性是ftk的設計目標之一,以後ftk將會在linux windows和各種rtos等不同平台上執行。目前ftk還只能在linux上執行,不過它可以在framebuffer directfb和x11 模擬 上執行。基於framebuffer jz4740開發板 基於framebuf...

嵌入式GUI FTK介紹 5 在多平台上執行

作者 李先靜 可移植性是ftk的設計目標之一,以後ftk將會在linux windows和各種rtos等不同平台上執行。目前ftk還只能在linux上執行,不過它可以在framebuffer directfb和x11 模擬 上執行。基於framebuffer jz4740開發板 基於framebuf...

GBA嵌入式系統學習平台

為什麼要選用gba作為嵌入式系統學習平台 我們知道,任天堂公司的gameboy advance 簡稱gba 一款非常出色的掌上遊戲機,該 產品占領了全球90 以上的掌上遊戲機市場。拋開遊戲功能不說,gba本身就是乙個很好的嵌入式系統開發學習平台,因為gba採用ar m7 cpu risc 擁有240...