1).?簡介
OpenCV的全稱是Open Source Computer Vision Library,是一個跨平臺的計算機視覺庫。OpenCV是由英特爾公司發起并參與開發,以BSD許可證授權發行,可以在商業和研究領域中免費使用。OpenCV可用于開發實時的圖像處理、計算機視覺以及模式識別程序,以解決人機交互,人臉識別以及動作跟蹤等領域的問題。
本文所采用的測試平臺為來自Toradex的ARM?計算機模塊平臺Colibri iMX6DL搭配其對應的開發載板Colibri Eva Board.
2.?準備
a). Colibri iMX6DL系統通過載板X18連接LVDS LCD顯示屏。
b). USB camera?用于后續OpenCV演示程序測試。
c). Colibri iMX6DL?系統使用Toradex Linux Release V2.6.1,不過原生沒有包含OpenCV支持,可以通過下面兩種方式集成OpenCV。
./?在Colibri iMX6DL官方Linux release系統上面,通過opkg軟件管理器在線安裝
------------------------------
root@colibri-imx6# opkg update
root@colibri-imx6# opkg install opencv
root@colibri-imx6# opkg install opencv-apps
------------------------------
./?基于Toradex Openembedded環境添加OpenCV相關并重新編譯,好處可以更方便的定制所需安裝的包,如添加ffmpeg/lib**支持。建立環境和編譯相關請參考這里,涉及到添加OpenCV支持的修改請參考下面兩個patch文件,然后根據這里說明將重新編譯好的image文件更新到Colibri iMX6DL模塊上面去。
------------------------------
//local.conf文件添加OpenCV支持
https://github.com/simonqin09/opencv_patch/blob/master/local.conf.opencv.patch
//?修改OpenCV recipte添加FFMPEG/lib**和multicore(TBB)支持,不過請注意lib**是商業授權,這里只作為測試使用,不能直接用于商業發布。
https://github.com/simonqin09/opencv_patch/blob/master/opencv_2.4.bb.patch
//修改OpenCV bitbake recipt添加gstreamer支持
https://github.com/simonqin09/opencv_patch/blob/master/opencv_2.4.bbappend.patch
// bitbake image
Toradex-ubuntu$ bitbake angstrom-lxde-image
//bitbake toolchain
Toradex-ubuntu$ bitbake -c populate_sdk angstrom-lxde-image
------------------------------
d).?在開發主機安裝上面生成的toolchain,可以放到任意位置,本文為了后續操作方便,將安裝好的SDK目錄下的”sysroots”目錄鏈接到”/home/username/sysroots”下面。
------------------------------
Toradex-ubuntu$ ./angstrom-glibc-x86_64-armv7at2hf-vfp-neon-v2015.12-toolchain.sh
Toradex-ubuntu$ ln –s SDK folder/sysroots /home/username/sysroots
------------------------------
3). OpenCV Demo演示
a).?本文使用的演示程序是修改于openCV?文檔中的基于Haar Cascades?級聯分類器的人臉識別demo,源代碼如下
------------------------------
https://github.com/simonqin09/opencv/blob/master/facedetect.cpp
//?源代碼中需要對應修改“haarcascade_frontalface_alt2.xml”文件在Colibri iMX6的放置路徑,這里使用的是”/home/root”
//?源代碼中需要對應修改USB?攝像頭對應的設備名字,本文是”/dev/video0”,?在你的環境可以通過”v4l2-ctl –list-devices”命令來確定
------------------------------
b).?對應的Makefile如下,如果你的toolchain安裝在不同目錄,要對應修改sysroots目錄路徑
https://github.com/simonqin09/opencv/blob/master/Makefile
c).?將編譯好的可執行文件以及下面地址的“haarcascade_frontalface_alt2.xml”文件都復制到Colibri iMX6DL同一目錄下面,文本使用目錄”/home/root”
d).?執行程序,當有人臉正面出現在攝像頭內就會顯示識別出的人臉數目
----------------------------
root@colibri-imx6# ./facedetect
----------------------------
4).?總結
本文基于NXP iMX6嵌入式平臺測試了OpenCV的基本部署和運行,另外雖然OpenCV用C++編寫,也支持很多其他語言的接口甚至使用CUDA的GPU接口。
?
評論