当前位置:   article > 正文

目标检测---YOLOV5从部署到使用_yolov5的result.render()

yolov5的result.render()

目录

环境准备

下载YOLOV5库

基本操作

使用ultralytics模型检测图片

调用实时摄像头检测

模型训练

调用网络摄像头拍摄数据集

下载标注软件

标注数据集

训练模型

部署使用自己的模型


环境准备

系统环境:Ubuntu 20.4,pycharm,anconda

下载YOLOV5

git clone https://github.com/ultralytics/yolov5

安装好后会在当前路径生成一个yolov5的文件夹,点击requerments.txt查看自己环境是否满足

可以通过pip指令快速安装

  1. cd yolov5
  2. pip install -r requestments.txt

基本操作

使用ultralytics模型检测图片

ultralytics是一个托管在pytoch的resource仓库的一个模型,有很多的模型选择,有大模型,小模型,中等模型等,不同的模型有不同的表现

  1. import torch
  2. import cv2
  3. '''
  4. #导入YOLOv5模型,第一个参数如果是 'github',应该被操作为 github repo with format ``repo_owner/repo_name[:ref]`` with an optional ref (tag or branch), for example 'pytorch/vision:0.10'. If ``ref`` is not specified,the default branch is assumed to be ``main`` if it exists, and otherwise ``master``.如果是本地资源 it should be a path to a local directory.
  5. '''
  6. #使用小模型保持轻量和快速
  7. model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
  8. # 加载图像
  9. img = 'https://ultralytics.com/images/zidane.jpg'
  10. # 进行目标检测
  11. result = model(img)
  12. # 获取渲染后的图像
  13. rendered_img = result.render()[0]
  14. # 将图像从BGR转换为RGB
  15. rendered_img_rgb = cv2.cvtColor(rendered_img, cv2.COLOR_BGR2RGB)
  16. # 使用OpenCV显示图像
  17. cv2.imshow('YOLOv5 Detection Result', rendered_img_rgb)
  18. cv2.waitKey(0)
  19. cv2.destroyAllWindows()

注意:如果不进行图像转化可能会导致图片的颜色失真

调用实时摄像头检测

  1. import torch
  2. import cv2
  3. import numpy as np
  4. # 导入YOLOv5模型
  5. model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
  6. # 加载图像
  7. img = 'https://ultralytics.com/images/zidane.jpg'
  8. # 进行目标检测
  9. result = model(img)
  10. cap=cv2.VideoCapture(0)#使用网络摄像头捕获图片
  11. while cap.isOpened():
  12. ret, frame = cap.read()
  13. result = model(frame)
  14. #result.render()只返回图像数组
  15. cv2.imshow('YOLO',np.squeeze(result.render()))
  16. if cv2.waitKey(10) & 0xFF == ord('q'):#如果检测到键盘按下q退出
  17. break
  18. cap.release()
  19. cv2.destroyAllWindows()

模型训练

调用网络摄像头拍摄数据集

  1. import uuid #给每个图片一个独特的ID
  2. import os
  3. import time
  4. import cv2
  5. IMAGES_PATH=os.paimport uuid
  6. import os
  7. import time
  8. import cv2
  9. IMAGES_PATH=os.path.join('data','images')#保存的地址为data/images
  10. labels=['awake','drowsy'] #标签名
  11. nums_imges=20 #拍摄一组标签要多少张
  12. cap=cv2.VideoCapture(0)
  13. for label in labels:
  14. #print(label)
  15. print('Collecting images for label: {}'.format(label))
  16. time.sleep(5)
  17. for img_num in range(nums_imges):
  18. print('Collecting images for image: {},image num {}'.format(label,img_num))
  19. ret, frame = cap.read()
  20. imgname=os.path.join(IMAGES_PATH,label+'.'+str(uuid.uuid1())+'.jpg')
  21. cv2.imwrite(imgname,frame)
  22. cv2.imshow('Image Collection',frame)
  23. time.sleep(2)
  24. if cv2.waitKey(1) & 0xFF == ord('q'):
  25. break
  26. cap.release()
  27. cv2.destroyAllWindows()

拍摄好后在data/image会存放我们拍摄的数据集

下载标注软件

这里使用的是labelImg(比起labling他可以选择标签脚本的输出格式)

在这里查看自己的安装方式

https://github.com/HumanSignal/labelImg?tab=readme-ov-file

标注数据集

几个注意的点:1.选择保存的目标地址为labels(可以自己改名),2.左边第八个存储格式设置为YOLO!!!,然后就可以开始标注了

训练模型

打开https://www.wpsshop.cn/w/Li_阴宅/article/detail/888905

推荐阅读
相关标签
  

闽ICP备14008679号