TX2部署YOLO并使用板载摄像头

被实验室扔了个这样的无聊锅,搞个依赖性和环境配了超级久而且毫无收获。于是乎那就写篇博客聊以自慰,这样至少感觉自己好像做了点什么吧。

首先是OpenCV配置,如果要求使用板载摄像头,是必须要有OpenCV3.4版本以上的,而且要有gstreamer等一系列摄像头支持的依赖。我自己装了大概一天,始终有各种各样奇怪的问题搞不定。

 当然多亏了GitHub的大佬jetsonhacks,我们有了一种真的很简单就能设置好OpenCV的方法。

首先运行

git clone https://github.com/jetsonhacks/buildOpenCVTX2

TX2原本装有CV2.4的版本,但是多个OpenCV版本共存是非常危险的,你自己都不知道import的是哪一个,你的TX2也不知道。所以首先先要删除以前版本然后安装就结束了。

sudo apt-get purge libopencv*

sudo ./buildOpenCV.sh

结束了你敢信。配了我一天的东西就这么结束了,谢谢大佬了然而为什么我没有早点发现呢。接下来下载YOLO,同样的就非常简单。

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

cd darknet

vim Makefile

在Makefile中,将CUDNN、GPU和OPENCV全部改成1,然后命令行输入make -j4,就等着吧。

这之后如果仅仅只是需要在命令行里运行的话就很简单了,先得到weights文件,直接运行就好了。具体可以参考YOLO的官方网站https://pjreddie.com/darknet去看看。

wget https://pjreddie.com/media/files/yolov3.weights 想用tiny就改成yolov3-tiny.weights就好了

运行起来很简单,官网也有。但是如果要使用板载摄像头的话,由于TX2摄像头有点不大一样,输入是一串设置字符串,命令行输入以下命令也就结束了。

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights "nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)1280, height(int)720, format=(string)I420, framerate=(fraction)30/1 ! nvvidconv flip-method=0 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink"

如果你想要写自己的Python文件的话,YOLO提供了一个接口,在./darknet/python里,即darknet.py。几步基本配置之后就可以自己写自己的Python-YOLO了。

cd darknet

mv libdarknet.so ./python

cp -r ./data/* ./python/data

结了。接下来的就是自己去完善这部分的代码就好了。

开启摄像头的方法和cv一样,只不过VideoCapture中的参数换成上面的那一大串字符就好了。

 

你可能感兴趣的:(JETSON,TX2)