基于Jetsontk1和OpenCV下的人脸检测

本文介绍如何在Jetson TK1开发板上利用OpenCV进行人脸检测,包括环境搭建、OpenCV库安装及人脸检测实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Jetsontk1和OpenCV下的人脸检测

Abstract:This passage mainly describes how to use the cascadeclassifier.cppfile of OpenCV library for face detection on Jetson tk1.

Key words: Jetson tk1;OpenCV;Face detection

摘  要本文主要描述的是如何在Jetson tk1 开发板上利用OpenCV自带的的人脸检测文件cascadeclassifier.cpp进行人脸检测。

关键词:Jetson tk1;OpenCV;人脸检测

1     总体设计方案

首先对Jetson tk1进行必要的初始化,然后在主机(PC机)下载opencv2.4.10库,将cascadeclassifier.cpp文件远程发送到jetson tk1,再下载libopencv4tegra库到jetson tk1,最后编译和运行cascadeclassifier。

2     安装OpenCV2.4.10

NVIDIA Jetson tk1提供两种OpenCV库,一种是标准的OpenCV官方的库,另一种是NVIDIA 提供的libopencv4tegra库。OpenCV官方库可到OpenCV官网(www.opencv.org)选择对应版本的OpenCV库,这里笔者选用的是linux的OpenCV2.4.10库。libopencv4tegra库是NVIDIA公司提供的CPU和GPU优化版的OpenCV,该库可到NVIDIA官网选择对应版本下载。在这里,笔者使用的是libopencv4tegra2.4.10库和opencv2.4.10库中的cascadeclassifier.cpp文件。

2.1    Jetson TK1简介及初始化

Jetson tk1 是由NVIDIA公司推出的一款嵌入式并行处理平台,包含 192 个 CUDA 核心的 NVIDIA Kepler GPU,CPU为NVIDIA 4-加-1 (4-Plus-1™) 四核 ARM® Cortex-A15 CPU,2GB的运行内存,16GB的eMMC存储空间,是arm_ubuntu架构,与我们经常看到的ubuntu_X86/X64有本质的区别。因此,在我们拿到Jetson tk1开发板时要进行必要的初始化。在我们刚拿到jetson tk1时,开机启动后只有命令行,如果我们需要图形界面,我们需要输入下列命令:

cd /home/ubuntu/NVIDIA-INSTALLER

sudo ./installer.sh

我们还要设置一下软件更新源,打开terminal输入下列命令:

sudo apt-add-repository universe

sudo apt-get update

还有的是Jetson tk1 自带的系统是不含         TAB补全命令,因此,输入下列命令:

sudo apt-get install bash-completioncommand-not-found

exit

 

         

                                    

2.2    下载OpenCV到jetson tk1        

这里笔者下载的是OpenCV2.4.10window版本,将PC机作为主机,然后将OpenCV库中的samples目录下的gpu文件夹下的cascadeclassifier.cpp文件通过winscp软件将该文件远程发送到Jetson tk1目标机。当然,也可以直接将OpenCV库linux版直接下载到Jetson tk1,但这会占用比较大的空间。                                 

2.3    下载libopencv4tegra到jetson tk1

首先到官网下载对应版本的libopencv4tegra_2.4.10到Jetson tk1,笔者的使用的Jetson tk1的ubuntu系统对应的是L4T 21,然后打来terimal输入下列命令:

sudo dpkg -ilibopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb

sudo apt-get update

sudo apt-get install libopencv4tegralibopencv4tegra-dev

我们还要安装相关的库

#一些通用的库

sudo apt-get install build-essential make cmakecmake-curses-gui g++

#Libav视频输入/输出开发库

sudo apt-get install libavformat-devlibavutil-dev libswscale-dev

# Video4Linux 摄像头开发库

sudo apt-get install libv4l-dev

# Eigen3 数学开发库

sudo apt-get install libeigen3-dev

# OpenGL开发库 (允许创建图形窗口)

sudo apt-get install libglew1.6-dev

# GTK 开发库(允许创建图形窗口)

sudo apt-get install libgtk2.0-dev

下载后的libopencv4tegra库,其实就是/usr/include/opencv和/usr/include/opencv2两个文件夹,因此我们需要添加一些链接库,运行命令:

vi ~/..bashrc

在文件内容最后的LD_LIBRARY_PATH添加文件需要用到的OpenCV动态库:


最后更新该文件,使其生效:

source ~/.bashrc

 

3     人脸检测

3.1    编译cascadeclassifier.cpp

 因为要到LBP对象的人脸检测器,因此我们需要将在主机下载好的opencv2.4.10库中data文件夹下的lbpcascade_frontalface.xml文件通过winscp远程发送到jetson tk1。

打开terminal,首先安装g++编译器:

sudo apt-get install build-essential g++

然后进入cascadeclassifier.cpp文件所在的目录下:(这里的文件目录是/disk7/study):

cd /disk7/study

编译cascadeclassifier.cpp:

g++ cascadeclassifier.cpp -lopencv_core-lopencv_imgproc -lopencv_highgui -lopencv_calib3d -lopencv_contrib -lopencv_features2d-lopencv_flann -lopencv_gpu -lopencv_legacy -lopencv_ml -lopencv_objdetect-lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_video-lopencv_videostab -o cascadeclassifier

运行编译生成的目标文件cascadeclassifier:

./cascadeclassifier--cascade  /disk7/study/ lbpcascade_frontalface.xml  --camera 0

运行过程和结果:

 


 

4     结束语

从运行结果可以看出是FPS平均7fps,还没有达到实时人脸检测效果,因此,今后要做的是运用并行编程,将cuda与OpenCV有效地结合起来,实现实时的人脸检测。

参考文献:

[1] http://elinux.org/Jetson/Installing_OpenCV

[2] http://blog.csdn.net/hysteric314/article/details/49805573


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值