当前位置:   article > 正文

目标检测,yolov5_如何获取yolov5的识别到的目标

如何获取yolov5的识别到的目标

使用算法进行目标检测,本文是根据训练集进行推理,获取物体的尺寸

在yolov5的代码上,进行二次开发,获取物体在图片上的像素宽度与物体实际宽度做成比例,获取其他物体的实际尺寸,测试的时候用来几个摄像头,有畸形,误差也很小,主要取决于训练集是否够详细,测试用了400张图片进行测试,误差在厘米以内,要是用网络摄像头可以用代码将网络摄像头的视频流导出图片,进行标注,训练,这样分辨率才能识别

将摄像头视频流变成图片代码(获取萤石云上的设备)

  1. import hashlib
  2. import hmac
  3. import base64
  4. import random
  5. import requests
  6. import cv2
  7. # 设置萤石云的相关参数
  8. # 设置萤石云的相关参数
  9. app_key = 'xxx'
  10. app_secret = 'xxx'
  11. CAMERA_SERIAL = 'E92940560'
  12. CHANNEL_NO = '1'
  13. EXPIRE_TIME = '300000' # 监控地址有效期,单位为秒
  14. def _generate_sign(method, url, params, secret):
  15. sorted_params = sorted(params.items(), key=lambda x: x[0])
  16. raw_data = method.upper() + url + '?' + '&'.join([f"{k}={v}" for k, v in sorted_params])
  17. sign = hmac.new(secret.encode('utf-8'), raw_data.encode('utf-8'), hashlib.sha1).digest()
  18. sign = base64.b64encode(sign).decode('utf-8')
  19. return sign
  20. # 构造请求 URL,获取accessToken
  21. url = 'https://open.ys7.com/api/lapp/token/get'
  22. # 构造请求 URL,获取监控地址
  23. adressurl = 'https://open.ys7.com/api/lapp/v2/live/address/get'
  24. params = {
  25. 'appKey': app_key,
  26. 'appSecret': app_secret
  27. }
  28. def run():
  29. body = requests.post(url, params=params)
  30. if body:
  31. result = body.json()
  32. if result.get('code') == '200':
  33. print("获取token")
  34. data=result.get("data")
  35. accessToken =data.get('accessToken')
  36. adderssParams = {
  37. "accessToken": accessToken,
  38. "deviceSerial": CAMERA_SERIAL,
  39. "protocol":2,
  40. "expireTime":1000000,
  41. "type":1,
  42. "quality":1
  43. }
  44. addressBody = requests.post(adressurl, params=adderssParams)
  45. if addressBody:
  46. addressData = addressBody.json()
  47. if addressData.get("code") == '200':
  48. address = addressData.get("data").get("url")
  49. print("地址==="+address)
  50. # 查看视频
  51. cap = cv2.VideoCapture(address)
  52. while True:
  53. ret, frame = cap.read()
  54. if ret:
  55. cv2.imshow('video', frame)
  56. if cv2.waitKey(1) & 0xFF == ord('q'):
  57. break
  58. # 设置保存图片的路径和名称
  59. num=random.randint(1, 100)
  60. save_path = f'frame_{num}.jpg'
  61. # 保存当前帧为图片
  62. cv2.imwrite(save_path, frame)
  63. cap.release()
  64. cv2.destroyAllWindows()
  65. else:
  66. print("获取监控地址失败:" + addressData.get("msg"))
  67. else:
  68. print("获取token失败" + result)
  69. if __name__ == '__main__':
  70. run()

将文件打包成exe操作:

下载auto-py-to-exe,它是 pyinstaller 的 GUI 版本,在当前环境下载

pip install auto-py-to-exe

执行:在终端执行

auto-py-to-exe

 引用的视频地址:图形化工具打包yolov5,生成可执行文件exe_哔哩哔哩_bilibili

 

 

 

 引用:图像化工具打包yolov5,生成可执行文件exe - 迷途小书童的Note迷途小书童的Note (xugaoxiang.com)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/761702
推荐阅读
相关标签
  

闽ICP备14008679号