1. 准备工作
1.1 开发利器
在主机和板子之间来回切换总是很不方便,为了能在一台电脑上工作,推荐大家安装一个ssh链接工具,MobaXterm。在自己的主机上安装,网址是MobaXterm。
正常安装以后,先在板子上改变一下ssh设置,允许root用户登录(方便在主机上使用)
在板子上操作:
$ sudo vim /etc/ssh/sshd_config # 编辑ssh配置文件
# 找到配置参数:PermitRootLogin 将该参数后面的值修改为yes即可
$ sudo passwd root # 给root用户修改密码,修改成功后即可进行下面步骤
$ sudo systemctl restart ssh # 重启ssh服务
接下来输入ifconfig,查看自己板子的ip地址,并在mobaxterm中选择ssh进行连接:端口默认是22
按提示输入用户名和密码,即可正常连接:
之后在这里进行操作即可。
1.2 查看系统信息
查看GPU信息:sudo /home/nvidia/tegrastats
查看cuda版本:nvcc -V
查看cudnn版本:cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
查看opencv版本:pkg-config --modversion opencv
1.3 安装usb摄像头
虽然板子自带摄像头,但是在darknet里不支持使用这样的摄像头,所以我们给板子连上一个usb摄像头。
$ ls /dev/video* # 查看摄像头设备,应该有两个,0是自带的,1是我们连接的。
$ sudo apt-get install luvcview # 安装工具
$ luvcview -d /dev/video1 -L # 测试摄像头
$ luvcview -d /dev/video1 -f yuv -s 640x480 # 按指定分辨率显示画面
2. 运行YOLOv3
2.1 下载YOLOv3
$ git clone https://github.com/pjreddie/darknet.git
$ cd darknet
先莫要编译,此处需要给cuda添加一下环境变量,否则会报错。参考连接
$ sudo vim /etc/profile # 编辑配置文件
# 在打开的界面最下面添加两行代码
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 完成以后保存退出,编译路径文件
$ source /etc/profile
下载一下预训练权重
wget https://pjreddie.com/media/files/yolov3.weights
wget https://pjreddie.com/media/files/yolov3-tiny.weights
2.2 修改编译文件
我们直接在MobaXterm左侧文件栏找到Makefile这个文件,选择用文本编辑器打开,进行修改。前四行的都改为1.
命令行界面输入make -j4进行编译
等待编译完成后可以进入下一步测试。
2.3 测试YOLOv3
为了能看到正常的输出图片或视频,我们在板子上进行操作。
(1)图片
$ ./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg
(2)实时摄像头
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 1
直接运行yolov3会崩溃,我们可以选择tiny版本。
$ ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -c 1
经测试检测精度还是不行,速度也有待提高,接下来的任务将是考虑简化yolo并进行测试。