基于Jetson nano的行(hang,二声)车安全检测系统(初步)说明
本说明基于本人采用的Jeston nano开发板制作而成的一套行车安全检测系统。
盒子及开发板图片来源
硬件组成:Jetson nano b1+双目CSI摄像头
算法组成: Yolov4-tiny,自己重新训练的权重,只识别person这一类。
编写语言: Python3.6,Jeston目前(2021.4.12之前)支持1.6版本的Pytorch。(Opencv4.1.1)
算法原理:
根据Yolov4-ting检测出来的目标框与自己确定的电子围栏进行IOU计算,有交集即可判定人员已经非法闯入其中,利用Jetson nano上的GPIO模块,控制声光报警及图片传输到后台数据库等。
使用方法:
1、准备工作:镜像烧录
强烈建议烧录已经开源配置好的镜像,能够省去70%的时间。
2、重新编译darknet代码,使之生成 libdarknet.so文件,方便python调用
3、编写自己的Python代码,替换掉原版的darknet.py和darknet_image.py or darknet_video.py。
4、远程控制(推荐采用)Vnc Viewer软件,缺点貌似只能在同一局域网下使用?
软件链接:
VNC? Connect consists of VNC? Viewer and VNC? Server
5、4G模块联网, 如果只用到了无线联网的方式,请跳过这一步。
首先Jeston nano接好显示器,绑定好IPV4地址(方便后续远程控制);安装另一个远程传输软件:WinSCP,
登陆后将已编译好的代码传输到Jetson nano开发板上。配置4G拨号上网:Jetson Nano系列教程11:采用4G模块上网(ppp拨号方式)。之后再配置4G模块自动联网,具体方式和Ubuntu以太网自动连接类似,需要注意的地方是IPV4 DNS(e.g.114.114.114.114)需要修改保存,否则系统开启4G模块后,解析不了地址,还是上不了网。
6、启动程序:
(1)远程登录Jetson开发板
在无显示器的情况下,需要使得电脑和Jetson在同一局域网下,然后Windos下按win+r cmd 呼出命令行,查看本机IP地址(ipconfig),例如:192.168.1.103。然后在命令行中输入
for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i
,这里192.168.1的部分改成你对应IP地址第三个小数点之前的部分。
等待几分钟命令处理完成,然后在cmd命令窗口输入arp -a,回车即可列出所有的IP地址。之后利用Vnc Viewer软件即可连接。
(参考博客:windows下如何查看本机所在局域网内所有可以访问的IP)
(2)登录完成后,系统会弹出"Enter password to unlock your login keyring",之后输入密码解锁。
然后系统会跳出一个让你设置拨号连接的密码,这里随意输入,完成之后,即可实现4G模块上网。
(3)运行自己的Python程序
Ctrl + Alt + T
cd darknet
python3 xxx.py
附注:
1、Vnc Viewer在没有连接显示器后会出现只显示1/4屏幕的情况,不利于操作。
解决方法:jeston nano设置开机启动任务,修改远程桌面分辨率
2、Minicom串口工具调试4G模块
参考链接:
(1)Jetson Nano系列教程11:采用4G模块上网(ppp拨号方式)
(2)Jetson Nano系列教程10:采用4G模块上网(NDIS拨号方式)
# 关闭ModemManager进程,以防止minicom调试AT串口时,显示没用的数据
sudo su
killall ModemManager
# 安装minicom串口工具
apt-get install minicom
# 查看串口设备,AT指令串口,为/dev/ttyUSB2
ls /dev/ttyUSB*
# 用minicom打开串口
sudo minicom -D /dev/ttyUSB2
# 强制设置为4G上网
AT+CNMP=38
# 查询网络质量
AT+CSQ
# 查询网络注册状
AT+CREG?
# 查询网络运营商
AT+COPS?
# 查询网络波段
AT+CPSI?
另外需要设置配置文件:
sudo su# 注意使用root账户操作
# chat以及dial文件在参考链接1里面有。
# 将chat放到/etc/ppp
cp ./chat /etc/ppp
# 将dial放到/etc/ppp/peers
cp ./dial /etc/ppp/peers# 开始拨号
pppd call dial
# 注意使用root账户操作,不要关闭拨号成功的终端,新开一个终端操作
此外:补充一些有用的帮助命令
# 查看网口及其ip
ifconfig -a
# 为避免DNS解析不了,添加以下默认路由
route add -net 0.0.0.0 ppp0
# 通过ppp0上网测试
ping -I ppp0 www.baidu.com
下一步计划:
下一步是根据行车下方吊钩所吊货物的大小,自动确定电子围栏的大小。目前已经实现双目测距,虽然精度不咋地(手动狗头)。之后根据比例进行实际计算。
如有好的建议、想法、问题等,欢迎评论区讨论。
致谢:
感谢本文中所有链接文章的作者,是你们的贡献才使得后来者走得更远,感谢!
作者:乄洛尘
第一次更新日期:2021年4月12日