本文主要是介绍YOLOv5调用海康工业相机实时检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、调用海康工业摄像头
1.1 DirectShow插件安装
1.2 查找摄像头编号
1.3 摄像头调用测试
二、修改YOLOv5相关参数
2.1 detect.py修改
2.2 datasets.py修改
一、调用海康工业摄像头
现在可直接利用cv2.VideoCapture()接口调用海康机器人工业相机,首先在官网下载机器视觉工业相机客户端MVS【免费】机器视觉工业相机客户端MVS4.3.2版本资源-CSDN文库,进行安装。
1.1 DirectShow插件安装
我安装在D盘里的,但是D盘路径下没有,我在C盘这个路径下找到的,我建议就在C盘运行,因为我复制到D盘运行并不起效,这也导致我尝试了很久,最终在C盘运行后完成。
右键InstallDSSvc_x64.bat,以管理员身份运行,运行后显示终端,然后会自动关闭。至此DirectShow安装完成
1.2 查找摄像头编号
根据路径查找graphedt.exe,然后双击运行graphedt.exe文件。
进入页面后根据顺序点击,所展示的就是你摄像头编号顺序,从0开始计数。(但是我感觉这个顺序不是很准确,我的“0”是USB那个摄像头,“1”才是海康工业相机,仅供参考,大家可以多尝试一下。)
1.3 摄像头调用测试
完成上述工作后,可使用如下代码进行测试,看是否能正确调用工业相机。
import cv2cap = cv2.VideoCapture(1) # 调用摄像头‘0’一般是打开电脑自带摄像头,‘1’是打开外部摄像头(只有一个摄像头的情况)if False == cap.isOpened():print(0)
else:print(1)cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) # 设置图像宽度
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1024) # 设置图像高度
cap.set(cv2.CAP_PROP_FPS, 20) # 设置帧率
# 显示图像
while True:ret, frame = cap.read()# print(ret) #########图像不处理的情况frame_1 = cv2.resize(frame, (640, 512))cv2.imshow("frame", frame_1)input = cv2.waitKey(1)if input == ord('q'):breakcap.release() # 释放摄像头
cv2.destroyAllWindows() # 销毁窗口
运行上面的代码千万要注意修改你图像大小,图像大小可在MVS终端进行查看,在运行测试代码时应断开MVS终端连接,避免冲突。
如果测试代码成功运行,那么基本工作就完成了!!!
二、修改YOLOv5相关参数
2.1 detect.py修改
将parse_opt中的source修改为相机编号,我这里设置为1。
2.2 datasets.py修改
对utils/datasets.py文件进行修改,定位到LoadStreams类,设置图像大小,注意图像大小一定要是32的倍数,同样和MVS终端上要对应。
至此YOLOv5调用海康工业摄像头就完成了!大家有什么问题,欢迎在评论区交流!!
这篇关于YOLOv5调用海康工业相机实时检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!