toradex的个人空间 https://blog.eetop.cn/1539194 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

嵌入式Linux下使用OpenCV

已有 2052 次阅读| 2017-3-17 13:25 |系统分类:硬件设计

By Toradex 秦海

1). 简介

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序,以解决人机交互,人脸识别以及动作跟踪等领域的问题。

 

本文所采用的测试平台为来自ToradexARM 计算机模块平台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/libav支持。建立环境和编译相关请参考这里,涉及到添加OpenCV支持的修改请参考下面两个patch文件,然后根据这里说明将重新编译好的image文件更新到Colibri iMX6DL模块上面去。

------------------------------

//local.conf文件添加OpenCV支持

https://github.com/simonqin09/opencv_patch/blob/master/local.conf.opencv.patch

// 修改OpenCV recipte添加FFMPEG/libavmulticoreTBB)支持,不过请注意libav是商业授权,这里只作为测试使用,不能直接用于商业发布。

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的基本部署和运行,另外虽然OpenCVC++编写,也支持很多其他语言的接口甚至使用CUDAGPU接口。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 1

    获赞
  • 2

    评论
  • 13923

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 11:03 , Processed in 0.013388 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部