YOLOv5算法在边缘计算设备上调用海康威视摄像头进行实时检测
YOLOv5算法在边缘计算设备上调用海康威视摄像头进行实时检测
本文详细介绍了如何在Jetson Xavier NX边缘计算设备上使用YOLOv5算法调用海康威视摄像头进行实时目标检测。文章从硬件连接、软件环境搭建到参数配置,再到遇到的问题和解决方案,提供了完整的配置过程。
一、参考资料
- yolov5连接海康摄像头
- python调用海康威视的摄像头,实时显示监控内容
- DOC000065841-UD20825B_海康威视网络摄像机(G3渠道)操作手册_V5.5.150.PDF
- 海康威视IPC摄像头rtsp接入
二、配置说明
1、边缘计算设备
边缘设备型号:Jetson Xavier NX Developer Kit
连接显示器、键盘、鼠标、电源即可使用,通过网线接口与摄像头连接。
2、YOLOv5算法
使用YOLOv5版本:v6.1
在边缘设备上运行YOLOv5,需要先安装conda环境,具体步骤不再赘述。
3、海康威视摄像头
产品型号:iDS-2DY9440lX-A/SP T5
连接电源即可使用,通过网线与边缘设备连接。
三、边缘计算盒连接摄像头
1、激活摄像头
说明:先在Windows系统本机进行操作,再迁移到边缘设备进行操作!
官方客服提供的激活步骤如下:
(1)下载软件后(Windows本机操作),通过网线连接摄像头,可以在软件中检索到设备,然后进行网络参数的修改,查看摄像头IP地址,可以修改成自己想要的,比如192.168.1.xx
(2)接下来很重要的一步,参考相关文章,打开控制面板,通过网线连接电脑和摄像头后,可以找到“以太网”,就是我们跟摄像头连接的网线,记住不是“WLAN”,然后设置以太网属性,双击IPv4 ,设置ip地址前面三位跟摄像头的ip地址一致,后面一个不同,随便什么都可以,即摄像头的ip地址和网线的ip地址在同一网段。
(3)安装客服给的方法3操作,在网页中输入摄像头的IP地址,如192.168.1.xx,进行注册登录就可以使用摄像头了。
2、边缘设备连接摄像头
将本机的操作迁移到边缘设备上,记住本机上查到的摄像头IP地址。
通过网线连接摄像头和边缘设备,修改边缘设备IP的前三位与摄像头IP一致,也是以太网进行有线设置。
设置完之后,在浏览器上输入摄像头的IP地址,并进行登录。
四、YOLOv5算法调用摄像头进行实时目标检测
强调:一定要在同一局域网,否则连接超时
理论上运行如下命令行就可以:
python detect.py --weights yolov5s.pt --source 0
但我们用的是网络摄像头,需要把摄像头的网络地址传输进去,在参数“--source”这里把default改为摄像头的rtsp地址,rtsp地址格式为:
rtsp://用户名:密码@ip地址/Streaming/Channels/2
用户名和密码是你用网页登录摄像头IP时注册的账户和密码,然后@后面是摄像头的IP。
参考了相关文章和IVMS软件客户端软件,设置如下:
parser.add_argument('--source', type=str, default='rtsp://admin:密码@192.168.1.xxx/Streaming/Channels/2', help='file/dir/URL/glob, 0 for webcam')
设置完毕后,运行代码:
python detect.py --weights yolov5s.pt
可能会遇到以下报错:
OpenCV(4.10.0) /io/opencv/modules/highgui/src/window.cpp:1301: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
解决方法:
sudo apt-get install libgtk2.0-dev pkg-config
pip uninstall opencv-python-headless
pip uninstall opencv-python
pip install opencv-python
还可能遇到以下报错:
AttributeError: module 'cv2' has no attribute 'setNumThreads'
解决方法:
pip install --upgrade opencv-python
最后运行就可以了!
结果如下:
五、其他
当边缘设备成功有线连接了摄像头,发现WiFi断了,原因是摄像头IP、有线IP、无线IP前三位一致导致冲突。此时需要修改摄像头IP和有线IP以避免冲突。