本人刚刚研究僧毕业,刚刚从事和接触图像处理和目标识别的工作,要一点一点学习相关知识,准备开始写博客,记录一下自己的学习过程,同时也可以有与我遇到相同问题的或者需要学习一些图像处理方面知识的小白们(哈哈,大家一起进步,毕竟我是个小白)一起学习、进步和交流。
之前入职的时候,公司一直让我研究神经网络和Yolov3的东西,现在让我在Jetson TX2上部署一下yolov3(真的一点没有接触过这个东西,希望有和我一样的童鞋们,看到这篇博客可以对你有帮助)。开始的时候没有刷机,因缺少cudnn,所以一直在手动安装,尝试了各种方法,总是在yolov3 make的时候出现各种错误(这应该就是小白必须要菜的坑吧~~)。看到NVIDIA官网上JetsonPack3.3集成了cudnn,顿时心情开朗啊!!下面对在Jetson TX2刷JetPack3.3,并配置YoLov3进行一个介绍。
TX2 出厂时,已经自带了 Ubuntu 16.04 系统,可以直接启动。但一般我们会选择刷机,目的是更新到最新的 JetPack L4T,并自动安装最新的驱动、CUDA Toolkit、cuDNN、TensorRT、Opencv等。
1、刷机准备工作
JetPack是一个x86二进制文件,不能在基于ARM的机器上运行,因此需要借助一个宿主机来刷JetPack,因此,需要准备:
(1)一个路由器,需要全程联网下载相关文件
(2)一台带有Intel或AMD x86处理器的台式机或笔记本电脑作为宿主机,系统为Ubuntu 16.04(自己要是win电脑,要安装VMware 虚拟机,并在虚拟机上安装Ubuntu 的操作系统,最好是Ubuntu 16.04)
2、下载JetPack3.3并在宿主机上运行
下载地址:
https://developer.nvidia/embedded/downloads#?search=jetpack%203.3
需要注册一个NVIDIA账号,下载.run文件:
下载好了之后,改变文件权限:
chmod +x ./JetPack-L4T-3.3-linux-x64.run
然后执行安装:
sudo ./JetPack-L4T-3.3-linux-x64.run
会出现如下图形界面, 直接点击Next
勾选Yes --> Next
选择TX2 --> Next
Next
根据自己需要选择,最好是Accept All。我这里全部选择了,然后Accept
会出现以下界面,进行慢慢下载安装
安装好后,会出现一下界面,Next
这里根据自己情况勾选,第一个为连接网线模式(最好选这个),第二个为WIFI模式,选择好后 -->Next
Next
Next点击Next之后,会出现Post Installation。这个是告诉你将设备置于强制USB恢复模式,以便您可以刷新操作系统。
3.TX2连接主机,刷机
- 断开电源,保证开发板处于断电关机状态
- 用网线连到路由器上
- 用Micro USB线把开发板连到电脑上
- 接通AC电源,按下power键,开机
- 先按Power键开机,然后长按Recovery键不松开,然后点按一下Reset键,过2s以后才松开Reset键,然后松开Recovery此时开发板处于强制恢复模式
完成以上步骤后,检查开发板是否和电脑正确连接,打开一个终端输入lsusb 命令,可以看到列表有Nvidia Corp,就说明连接正确。如下图:
以上步骤确认无误后,在刚才的Post Installation敲一下enter,就开始了刷机过程,耐心等待即可。刷机过程中会遇到以下情况,及解决办法。
第一次我是选择WIFI模式进行刷机,在获取IP地址时,一直获取不到。所以开始我建议直接选择网线模式。Determining the IP address of target 这里是在获取网络的IP地址,以进行下面cuda、cudnn之类的进行下载
2. 在获取到IP后,会开始进行下载与安装,又遇到了问题,如下图。
解决办法:按照错误提示,在TX2下安装对应的包。
sudo apt-get cuda-toolkit-9-0 libgompl libfreeimage-dev libopenmpi-dev openmpi-bin
安装好后,就一直等待他安装就好了,就没有出现什么错误,出现下图就安装好了。最好不要勾选Remove downloaded files,然后Finish就完成了。
4. 测试
先把板子重启,然后打开终端输入以下命令:
cd /home/nvidia/NVIDIA_CUDA-9.0_Samples/bin/aarch64/linux/release/
./oceanFFT
出现以下结果,说明成功:
测试一下视频demo,要等个几分钟,由于是处理视频,展示的也是视频,车辆的识别:
cd home/nvidia/tegra_multimedia_api/samples/backend
#此命令为一条,由于太长,所以换行写了
./backend 1 ../../data/Video/sample_outdoor_car_1080p_10fps.h264 H264 --trt-deployfile
../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt --trt-modelfile
../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel --trt-forcefp32 0 --trt-proc-interval 1 -fps 10
5. 配置yolov3
下载Darknet框架及权重:
git clone https://github/pjreddie/darknet
wget https://pjreddie/media/files/yolov3.weights #大权重
wget https://pjreddie/media/files/yolov3-tiny.weights #小权重
下载好后,进入到darknet下,修改Makefile,把TX2刷机后带的CUDA、cudnn、opencv都加上,然后进行编译
cd darknet
sudo gedit Makefile #用gedit打开Makefile,进行修改
make
由于使用大权重加载不上,直接killed,可能是由于显存不足吧(这个只是自己猜测,具体什么原因还不清楚)。
这里使用小权重测试效果,以及使用之前在PC机自己训练好的权重,结果如下:
欢迎大家留言,讨论与交流。
更多推荐
Jetson TX2刷JetPack3.3,并配置YoLov3
发布评论