该项目是海康威视网络摄像头的python二次开发使用,并部署yolov5目标识别检测算法,用于双目摄像头(RGB摄像头和热成像摄像头),其使用原理是在RGB成像画面中通过yolov5算法自动识别检测对应目标并获取该目标的坐标,并对坐标进行转换成热成像所需的坐标,传入热成像摄像头后自动测温并返回测温数据。该摄像头可以连接网络,在相同网络下可以直接根据局域网ip登录摄像头。
使用前需要的主要python包在文件中已注明,最主要的是pytorch-gpu版本和TensorFlow-gpu版本的选择,以及cuda和cudnn的安装
主程序是app_main.py 非ros环境可直接python运行(ros环境下需要将开头的两个import注释取消)
登录时的默认设置可以在下图这修改,登录的ui也可更改登录信息, 其中ip的信息是网络摄像头的ip地址,需要提前知道摄像头ip,url则是浏览器输入地址可以看到项目部署在本地服务器上(如果安装了python的selenium库和火狐浏览器的驱动会自动打开,没有则可以手动输入如http://127.0.0.1:7777 的地址或者在终端会输出一个地址)
登录地址后如下所示,如果摄像头没问题可以被搜索到是有画面存在的(web前端做的很简陋,有很大的优化空间 0v0)
点击识别测温按钮后的执行逻辑是:执行摄像头拍照→图像中添加测温摄像头可测温的范围框→yolo根据自设目标进行识别→获取识别目标的坐标和标签组成数据集传入热成像摄像头→根据数据集中的坐标进行测温
点击手动模式则会弹出一个cv画面,相机是出于连续拍照的状态下,可以手动画框,鼠标左边松开后就会返回所框选的坐标进行测温(但是由于之前的Linux电脑bug不能线程同时显示cv,这个无法测试,但逻辑是这样的)
对摄像头的控制在RGB_TH文件夹下的hk_ctrl.py文件中,这个文件是控制摄像头的核心代码,坐标的转换运算,参数设置,控制都在这个文件下
最下面部分的声音识别只是临时随便添加上去的,就单纯的通过检测声音判断机器是否正常(可以无视)
想要训练检测模型可以在yolov5-master文件下的train进行训练,和yolov5的网上搜索到的训练方法是一样的,只需要注意路径的选择即可