将配置yolov5的电脑当客户端,局域网内的另一台电脑当服务端,利用python的socket通讯,将客户端Yolov5的USB摄像头实时推理结果发送给另一台电脑的服务端。
一、修改Yolov5的detect.py文件,启动客户端
1.1在文件前添加
import socket #include
1.2在 LOGGER.info前添加以下代码
# Print time (inference-only)
stt=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
stt.connect(("192.168.1.101",8888)) #通讯服务端电脑IP和端口
data=(f"{s}{'' if len(det) else '(no detections), '}{dt[1].dt * 1E3:.1f}ms")#将推理结果赋值给变量
stt.sendto(data.encode('utf-8'),('192.168.1.101',8888))#将推理结果发送给服务端电脑
LOGGER.info(f"{s}{'' if len(det) else '(no detections), '}{dt[1].dt * 1E3:.1f}ms")#推理结果在客户端电脑终端打印
1.3完成代码修改后,客户端电脑接上USB摄像头,在终端输入如下指令,启动yolov5读取USB摄像头数据进行实时推理
1.3.1USB摄像头,可以先用ls /dev/video*检测摄像头是否接上
1.3.2调用指令:
python detect.py --source 0 --weights yolov5m.pt
二、服务端新建service.py文件
2.1service.py文件代码如下:
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(("192.168.1.101",8888))
while True:
while True:
try:
data,addr = s.recvfrom(1024)
print(data.decode("utf-8"))
except Exception:
break
s.close()
2.2在终端输入指令:python service.py 就可以在服务端实时接收客户端推理结果了。
2.3服务端接收结果显示:文章来源:https://www.toymoban.com/news/detail-486590.html
文章来源地址https://www.toymoban.com/news/detail-486590.html
到了这里,关于用python的socket通信将Yolov5的USB摄像头实时推理结果发送给另一台电脑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!