时间不复,(六)(七)两篇先不写了。当时只是做了简单的颜色、圈、框的标注等实验,没什么意思了。
新内容是SSD目标检测,用SSD检测人戴没戴口罩,并提示戴口罩。新冠疫情是一波接一波,防护措施一定要到位。
感谢为SSD算法修改和优化的各位前辈,尤其感谢提供代码的哔哩哔哩动画视频博主Bubbliiiing。
代码主要使用了博主Bubbliiiing的SSD源码,进行简单修改和增加。以下为自己的工程一些说明:
3.1 SSD 服务器
服务器运行基于win10系统,系统环境需先安装CUDA、cudnn等必要平台和库。选择python语言,实现本服务器。(建议使用Anaconda创建虚拟环境,装cuda真心fan)
运行video.py主程序即可启动服务器全部功能。
首先,启动UDP ,地址为 addr = ('192.168.43.132', 8888)。
图1 UDP 代码
图像解码,传入检测函数,获取检测结果
图2 解码和检测代码
发送 检测结果 data
图3 发送结果代码
3.2 树莓派端
1.代码实现
(a) UDP图像压缩和发送
图4 图像压缩发送代码
(b)UDP 接收结果
图5 接收返回的结果
(c)配置超声波
图6 超声波避障配置
2.硬件实现
(a) 连接树莓派和picamera
(b) 连接扬声器和功放,功放连接vcc、IN、gnd、gnd,扬声器连接vcc和gnd。
(c) 连接超声波模块,vcc、gnd、trig、echo四个引脚。
(d) 连接L298n和直流减速电机,L298N有IN1-IN4四个输入,ENA、ENB两个使能端口,共6根信号线。OUT1-OUT4四个输出端,OUT1和OUT2控制左侧两个电机,OUT3和OUT4控制右侧两个电机,并连接。
(e) 连接舵机,连接vcc、gnd、IN。
(f) 外部供电的设备连接共地线
(g) 连接各模块的VCC和GND到电源
3.3 使用方法
开启树莓派端电源,连接同一局域网,PC端ip为192.168.43.132,树莓派端ip为192.168.43.246,运行PC端主程序和树莓派端主程序,即可运行本系统。
3.4 必要环境
1.PC端,win10 系统,安装CUDA10.1,且cudnn版本7.6.5,IP地址为192.168.43.132
Python3.7,必要的库有opencv、Pillow、tensorflow2.x,keras等。
2.树莓派端,使用树莓派专用系统桌面版,安装python3和opencv等。