当前位置: 首页 > backend >正文

AI学习笔记二十九:YOLOV12部署测试

若该文为原创文章,转载请注明原文出处。

先测试下yolov12,后面部署到RK3568上。

本次测试使用的是win 10 ,无GPU,直接简单安装环境并使用CPU测试,数据集制作及训练后续介绍。

一、环境搭建

1、创建虚拟环境

conda create -n yolov12 python=3.11

2、激活

conda activate yolov12

3、下载YOLOV12源码

GitHub - sunsmarterjie/yolov12: YOLOv12: Attention-Centric Real-Time Object Detectors

4、下载flash_attn

这个分为先多版本

Releases · kingbri1/flash-attention · GitHub

下载win版本

下载好后将其放置到【yolov12-main】文件夹中

5、安装

//加清华源
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install flash_attn-2.7.4.post1+cu124torch2.6.0cxx11abiFALSE-cp311-cp311-win_amd64
pip install -e .

到此,环境搭建完成

接下来测试

二、测试

1、下载模型

https://github.com/sunsmarterjie/yolov12/releases/download/turbo/yolov12s.pt

2、测试

yolo predict model=E:/desktop/yolov12-main/yolov12s.pt source='E:/desktop/yolov12-main/bus.jpg'

3、编写代码测试

import cv2
from ultralytics import YOLOdef predict(chosen_model, img, classes=[], conf=0.5):if classes:results = chosen_model.predict(img, classes=classes, conf=conf)else:results = chosen_model.predict(img, conf=conf)return resultsdef predict_and_detect(chosen_model, img, classes=[], conf=0.5, rectangle_thickness=2, text_thickness=1):results = predict(chosen_model, img, classes, conf=conf)for result in results:for box in result.boxes:cv2.rectangle(img, (int(box.xyxy[0][0]), int(box.xyxy[0][1])),(int(box.xyxy[0][2]), int(box.xyxy[0][3])), (255, 0, 0), rectangle_thickness)cv2.putText(img, f"{result.names[int(box.cls[0])]}",(int(box.xyxy[0][0]), int(box.xyxy[0][1]) - 10),cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 0), text_thickness)return img, results# defining function for creating a writer (for mp4 videos)
def create_video_writer(video_cap, output_filename):# grab the width, height, and fps of the frames in the video stream.frame_width = int(video_cap.get(cv2.CAP_PROP_FRAME_WIDTH))frame_height = int(video_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))fps = int(video_cap.get(cv2.CAP_PROP_FPS))# initialize the FourCC and a video writer objectfourcc = cv2.VideoWriter_fourcc(*'MP4V')writer = cv2.VideoWriter(output_filename, fourcc, fps,(frame_width, frame_height))return writermodel = YOLO("E:/desktop/yolov12-main/yolov12s.pt")output_filename = "E:/desktop/yolov12-main/result.mp4"video_path = r"E:/desktop/yolov12-main/test.mp4"
cap = cv2.VideoCapture(video_path)
writer = create_video_writer(cap, output_filename)
while True:success, img = cap.read()if not success:breakresult_img, _ = predict_and_detect(model, img, classes=[], conf=0.5)writer.write(result_img)cv2.imshow("Image", result_img)cv2.waitKey(1)
writer.release()

测试,好像效果不是很好。

如有侵权,或需要完整代码,请及时联系博主。

http://www.xdnf.cn/news/12198.html

相关文章:

  • Golang——8、协程和管道
  • 更新Java的环境变量后VScode/cursor里面还是之前的环境变量
  • 【Go语言基础【5】】运算符基础
  • Kubernetes (k8s)版本发布情况
  • Java 依赖注入、控制反转与面向切面:面试深度解析
  • Deployment实现扩展/收缩,以及滚动更新
  • 数据结构第八章(二)-交换排序
  • dvwa14——JavaScript
  • 多层PCB技术解析:从材料选型到制造工艺的深度实践
  • Python 训练营打卡 Day 44
  • Linux下JSON序列化与反序列化方法
  • Python Day44
  • 数据可视化大屏案例落地实战指南:捷码平台7天交付方法论
  • 【达梦数据库】OOM问题排查思路
  • React 新项目
  • OGG-01635 OGG-15149 centos服务器远程抽取AIX oracle11.2.0.4版本
  • Spring框架学习day7--SpringWeb学习(概念与搭建配置)
  • Eureka REST 相关接口
  • 云原生思维重塑数字化基座:从理念到实践的深度剖析
  • Python基于蒙特卡罗方法实现投资组合风险管理的VaR与ES模型项目实战
  • Django CMS 的 Demo
  • 每日算法 -【Swift 算法】三数之和最接近目标值
  • Golang——9、反射和文件操作
  • Redis:介绍和认识,通用命令,数据类型和内部编码,单线程模型
  • 深入浅出玩转物联网时间同步:基于BC260Y的NTP实验与嵌入式仿真教学革命
  • 从《现实不似你所见》探寻与缘起性空的思想交织
  • MySQL间隙锁入手,拿下间隙锁面试与实操
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: TTask创建多线程, 更简单, 更快捷.
  • 报告精读:“数据银行”概念模型与建设规划研究报告【附全文阅读】
  • JavaSec-SSTI - 模板引擎注入