基于yolov3的人脸口罩检测—xavier上部署

针对本项目所具体使用的检测方法为yolo系列检测方法中的yolov3检测方法, 关于本检测方法的原理这里不详细说明(yolov3文章地址: https://zhuanlan.zhihu.com/p/76802514)。 该笔记记录基于darknet框架的yolov3目标检测方法在linux(ubuntu)主机以 及在Xavier(Ubuntu系统的边缘计算平台)上的环境搭建。(如果想要在 windows上搭建网上也有较多的教程,自己查阅),这里现在darknet框架的主 要原因是该框架所需的依赖库较少,易于安装且检测精度较高。 在linux主机上事先需要安装NVIDIA显卡驱动、CUDA、cudnn、opencv(其 版本建议在3.4,darknet不支持高于4.0版本的opencv),其显卡驱动, CUDA、cudnn都需要安装自己电脑显卡对应的包,具体安装方法参考地址: https://blog.csdn.net/Chen_qi_hai/article/details/104576198 对于Ubuntu系统上安装opencv方法与下述在Xavier上安装opencv方法类似, 但是pc机上报错可能性较小,Xavier是arm架构安装过程中出现问题较多,主要 参考下述博客安装: https://blog.csdn.net/qq_38236355/article/details/88864023 https://blog.csdn.net/heiheiya/article/details/82590601 Xavier安装opencv方法可参考下述: (Xavier—opencv所需工具包: 链接:https://pan.baidu.com/s/1m0niDck9kqrhluZHEVANNg 提取码:r90c )

 install opencv 3.4 and opencv_contrib 3.4 on Xavier  // open the fan of the Xavier and change the value to 100; 
  drt@drt:~$ sudo gedit /sys/devices/pwm‐fan/target_pwm 6 ################################################################ 78 /// 910 // 
  (1) change the source;
drt@drt:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup  drt@drt:~$ sudo gedit /etc/apt/sources.list 
 // Add: 
 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic‐updates mai n restricted universe multiverse  
 deb‐src http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic‐updates main restricted universe multiverse  
 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic‐security ma in restricted universe multiverse 
 deb‐src http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic‐securit y main restricted universe multiverse 
 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic‐backports m ain restricted universe multiverse 
 deb‐src http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic‐backpor ts main restricted universe multiverse 
 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic main univer se restricted 
 deb‐src http://mirrors.tuna.tsinghua.edu.cn/ubuntu‐ports/ bionic main un iverse restricted 
 // Save and update: 
 drt@drt:~$ sudo apt update 
  // (2) Install dependencies: 
 drt@drt:~$ sudo apt‐get install build‐essential 
 drt@drt:~$ sudo apt‐get install python‐dev python‐numpy libtbb2 libtbb‐d ev libjpeg‐dev libpng‐dev libtiff‐dev libjasper‐dev libdc1394‐22‐dev 	########################################################### 
  // error:  E: 无法定位软件包 libjasper‐dev 
  // Solution: 
  drt@drt:~$ sudo add‐apt‐repository "deb http://mirrors.tuna.tsinghua.ed u.cn/ubuntu‐ports/ xenial main multiverse restricted universe" 
  drt@drt:/$ sudo apt update 
  drt@drt:~$ sudo apt‐get install python‐dev python‐numpy libtbb2 libtbb‐d ev libjpeg‐dev libpng‐dev libtiff‐dev libjasper‐dev libdc1394‐22‐dev #################################################################  
  // go on
drt@drt:~$ sudo apt‐get install libavcodec‐dev libavformat‐dev libswscal e‐dev libv4l‐dev liblapacke‐dev libxvidcore‐dev libx264‐dev libatlas‐base‐d ev gfortran ffmpeg 
drt@drt:~$ sudo apt‐get install python2.7‐dev python3.6‐dev # denpen on your python3 version 
 // (3) install and compile opencv 3.4 and opencv_contrib 3.4  drt@drt:~/opencv‐3.4$ mkdir build 
drt@drt:~/opencv‐3.4$ cd build  
drt@drt:~/opencv‐3.4/build$ cmake ‐DCMAKE_BUILD_TYPE=Release ‐DCMAKE_INS TALL_PREFIX=/usr/local ‐D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib‐3.4/m odules .. drt@drt:~/opencv‐3.4/build$ sudo make ‐j8 ##################################################### 
// error: 
 /home/drt/opencv‐3.4/opencv_contrib‐3.4/modules/xfeatures2d/src/boostdes c.cpp:654:20: fatal error: boostdesc_bgm.i: No such file or directory 58 #include "boostdesc_bgm.i" 
  ^~~~~~~~~~~~~~~~~ compilation terminated. 
  // Solution: 63 链接: https://pan.baidu.com/s/1NpvudGHDXkBjOHZoSUG7Lw 提取码: kewc  Download and unzip. Put all the files in /home/drt/opencv‐3.4/opencv_con trib‐3.4/modules/xfeatures2d/src/ . 
 then, drt@drt:~/opencv‐3.4/build$ sudo make ‐j8 
 // another error:  /home/drt/opencv‐3.4/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory  # include "opencv2/xfeatures2d/cuda.hpp" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  // Solution: 在报错的那个module中,这里是stitching文件夹下的CMakeLists中添加: 
 INCLUDE_DIRECTORIES("/home/drt/opencv‐3.4/opencv_contrib‐3.4/modules/xfe atures2d/include") # (路径需要改成自己文件的路径) then, drt@drt:~/opencv‐3.4/build$ sudo make ‐j8
 if it doesn't work, open the file "home/drt/opencv‐3.4/modules/stitchin g/include/opencv2/stitching/detail/matchers.hpp", 
 change the " # include "opencv2/xfeatures2d/cuda.hpp" " to " # include "/home/drt/opencv‐3.4/opencv_contrib‐3.4/modules/xfeatures2d/include/opencv 2/xfeatures2d/cuda.hpp" "(your path) 
 then,  
 drt@drt:~/opencv‐3.4/build$ sudo make ‐j8  ######################################################################## ##########
 // (4) compile successfully and make install: 
drt@drt:~/opencv‐3.4/build$ sudo make install 
drt@drt:~/opencv‐3.4/build$ sudo gedit /etc/ld.so.conf.d/opencv.conf 

 // enter the following and save: 
  /usr/local/lib 

 drt@drt:~/opencv‐3.4/build$ sudo ldconfig # make it work 

drt@drt:~/opencv‐3.4/build$ sudo gedit ~/.bashrc 
 // enter:  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  export PKG_CONFIG_PATH 
drt@drt:~/opencv‐3.4/build$ source ~/.bashrc
/   
// (5) test:

 drt@drt:~$ cd /home/drt/opencv‐3.4/samples/cpp/example_cmake 
drt@drt:~/opencv‐3.4/samples/cpp/example_cmake$ sudo make .
drt@drt:~/opencv‐3.4/samples/cpp/example_cmake$ sudo make  drt@drt:~/opencv‐3.4/samples/cpp/example_cmake$ ./opencv_example # you can install the camera and you will see the image

下载darknet:

git clone https://github.com/pjreddie/darknet.git

等clone结束,在home目录下会出现darknet-master的文件,git clone是通过 github下载项目,建议利用网速较好的环境进行下载。 进行darknet文件夹,修改Makefile文件,启用GPU和opencv等使能端口

GPU=1 
CUDNN=1 
OPENCV=1 #这里gpu、cudnn、opencv三个使能端都置为1打开  OPENMP=0 # OpenMP是一套支持跨平台共享内存方式的多线程并发的编程API 
DEBUG=0 
ARCH= ‐gencode arch=compute_72,code=[sm_72,compute_72] #Xvolta 架构 Xavier 计算能力7.2

注意:如果使能CUDA需要制定CUDA路径,不然会出现以下错误:
在这里插入图片描述
解决方法: # 修改makefile 修改为对应的CUDA 版本,具体修改三个地方:

1、NVCC = /usr/local/cuda‐10.2/bin/nvcc #具体根据自己的cuda路径进行修改 
2、COMMON+= ‐DGPU ‐I/usr/local/cuda‐10.2/include/ 
3、LDFLAGS+= ‐L/usr/local/cuda‐10.2/lib64 ‐lcuda ‐lcudart ‐lcublas ‐lcurand

之后进入darknet,执行darknet的编译:

sudo make clean 
sudo make ‐j8 #xavier是8核处理

等待编译结束,若无报错输入下命令验证:

./darknet

在这里插入图片描述
出现如上显示,darknet编译完成。 下载口罩检测所需文件:boat_face.names、boat_face.data、 yolov3_boat_face.cfg、yolov3_boat_face_final.weight 下载链接:https://pan.baidu.com/s/1owAey2w2yt5H56Igj8eVog 提取码:lp10
将文件boat_face.names放入data文件夹, boat_face.data/yolov3_boat_face.cfg都放入cfg文件夹,新建一个名为 weight的文件夹将yolov3_boat_face_final.weight放入。 执行检测代码:

./darknet detector demo cfg/boat_face.data cfg/yolov3_boat_face.cfg weigh t/yolov3_boat_face_final.weight

可能出现错误: Failed to load module “canberra-gtk-module”,执行下列命令:

sudo apt‐get install libcanberra‐gtk‐module

执行过程中,按照提示,输入y,然后再次执行刚才报错的命令。
检测效果图
帧率显示
摄像头显示较模糊,色彩不是很明艳,推断还是opencv的相关问题。 查看了网上别人分享的有关Xavier速度如下:同场景下FPS速度有差异。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值