yolov8 目标检测与跟踪
参考:
参考:
https://github.com/ultralytics/ultralytics
https://github.com/TommyZihao/Train_Custom_Dataset/blob/main/%E7%9B%AE%E6%A0%87%E8%BF%BD%E8%B8%AA/%E5%85%AC%E5%BC%80%E8%AF%BE/
https://www.rstk.cn/news/42041.html?action=onClick
*** 跟踪与检测都是用的YOLOv8目标检测一样的权重
1、命令行运行
视频下载:
人流量视频:
https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220418-mmtracking/data/mot_people_short.mp4
车流量视频:
https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20230502-YOLO/videos/bridge-short.mp4
可能出现报错OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
解决方法参考:https://blog.csdn.net/qq_37164776/article/details/126832303
需要去env环境里把其中一个删除再运行
可能出现报错 im = torch.from_numpy(im)
RuntimeError: Numpy is not available
##升级numpy
从1.22.0到1.23.5解决pip install numpy==1.23.5 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com --user
##检测
yolo detect predict model=C:\Users\lonng\Downloads\yolov8s.pt source=bus.jpg ##图片yolo detect predict model=C:\Users\lonng\Downloads\yolov8s.pt source=C:\Users\lonng\Desktop\rdkit_learn\opencv2\videos\bridge-short.mp4 show=True save=True ##视频##调摄像头
yolo detect predict model=C:\Users\lonng\Downloads\yolov8s.pt source=0 show=True
注意:跟踪命令行没有predict,只有track
##跟踪,文件路径不需要加引号
yolo track model=C:\Users\lonng\Downloads\yolov8s.pt source=C:\Users\lonng\Desktop\rdkit_learn\opencv2\videos\mot_people_short.mp4 show=True save=Trueyolo track model=C:\Users\lonng\Downloads\yolov8s.pt source=0 show=True ##摄像头
运行解释会保存到runs目录下
2、python代码运行
跟踪完整代码:
import time
from tqdm import tqdmimport cv2
import numpy as npfrom ultralytics import YOLOimport supervision as svmodel = YOLO(r'C:\Users\lonng\Downloads\yolov8s.pt')VIDEO_PATH = 'videos/bridge-short.mp4'##指定统计区域
polygons = [np.array([[600, 680], [927, 680], [851, 950], [42, 950]]),np.array([[987, 680], [1350, 680], [1893, 950], [1015, 950]])
]zones = [sv.PolygonZone(polygon=polygon, frame_resolution_wh=video_info.resolution_wh) for polygon in polygons]
# 配色方案
colors = sv.ColorPalette.default()
# 区域可视化,每个区域配一个 PolygonZoneAnnotator
zone_annotators = [sv.PolygonZoneAnnotator(zone=zone, color=colors.by_idx(index), thickness=6, text_thickness=12, text_scale=4)for index, zone in enumerate(zones)
]
# 目标检测可视化,每个区域配一个 BoxAnnotator
box_annotators = [sv.BoxAnnotator(color=colors.by_idx(index), thickness=2, text_thickness=4, text_scale=2)for index in range(len(polygons))
]##每帧处理
def process_frame(frame: np.ndarray, i) -> np.ndarray:'''输入 bgr 的 numpy array输出 bgr 的 numpy array'''# YOLOV8 推理预测results = model(frame, imgsz=1280, verbose=False, show=False, device='cuda:0')[0]# 用 supervision 解析预测结果detections = sv.Detections.from_yolov8(results)# 遍历每个区域对应的所有 Annotatorfor zone, zone_annotator, box_annotator in zip(zones, zone_annotators, box_annotators):# 判断目标是否在区域内mask = zone.trigger(detections=detections)# 筛选出在区域内的目标detections_filtered = detections[mask]# 画框frame = box_annotator.annotate(scene=frame, detections=detections_filtered, skip_label=True)# 画区域,并写区域内目标个数frame = zone_annotator.annotate(scene=frame)# 更新进度条pbar.update(1)return frame## 视频每帧预测
filehead = VIDEO_PATH.split('/')[-1]
OUT_PATH = "out-" + fileheadwith tqdm(total=video_info.total_frames-1) as pbar:sv.process_video(source_path=VIDEO_PATH, target_path=OUT_PATH, callback=process_frame)
out-bridge-short
跟踪
参考:https://github.com/TommyZihao/Train_Custom_Dataset/blob/main/%E7%9B%AE%E6%A0%87%E8%BF%BD%E8%B8%AA/%E5%85%AC%E5%BC%80%E8%AF%BE/%E3%80%90D1%E3%80%91%E8%BD%A6%E6%B5%81%E8%B6%8A%E7%BA%BF%E8%AE%A1%E6%95%B0-%E8%A7%86%E9%A2%91%E9%A2%84%E6%B5%8B-%E7%AE%80%E5%8D%95%E5%9C%BA%E6%99%AF.ipynb
from ultralytics import YOLOimport supervision as svmodel = YOLO(r'C:\Users\lonng\Downloads\yolov8s.pt')###track格式 model.track
for result in model.track(source=input_path, show=False, stream=True, verbose=False, device='cuda:0'):frame = result.orig_img# 用 supervision 解析预测结果detections = sv.Detections.from_yolov8(result)## 过滤掉某些类别# detections = detections[(detections.class_id != 60) & (detections.class_id != 0)]# 解析追踪IDdetections.tracker_id = result.boxes.id.cpu().numpy().astype(int)# 获取每个目标的:追踪ID、类别名称、置信度class_ids = detections.class_id # 类别IDconfidences = detections.confidence # 置信度tracker_ids = detections.tracker_id # 多目标追踪IDlabels = ['#{} {} {:.1f}'.format(tracker_ids[i], model.names[class_ids[i]], confidences[i]*100) for i in range(len(class_ids))]
yolov8 目标检测与跟踪相关推荐
- 基于yolov8的检测分割跟踪软件系统(含Pyqt界面,附下载链接和演示视频,集成四种多目标跟踪算法,模型已训好)
1.前言 本文重点介绍了基于YOLOv8目标检测分割跟踪系统的代码实现,用于智能检测物体种类并记录和保存结果,对各种物体检测结果可视化,提高目标识别的便捷性和准确性.数据集采用COCO,即可针对COC ...
- 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)
自动驾驶感知系统实现(车道线检测和拟合.目标检测与跟踪.道路可行驶区域分割.深度估计.图像视野到BEV空间映射.像平面到地平面映射) 项目下载地址:项目下载地址 推理引擎下载地址:推理引擎下载地址 支 ...
- Complexer-YOLO:基于语义点云的实时三维目标检测与跟踪
泡泡点云时空,带你精读点云领域顶级会议文章 标题:Complexer-YOLO: Real-Time 3D Object Detection and Tracking on Semantic Poin ...
- Deepsort_V2 2020中兴捧月阿尔法赛道多目标检测和跟踪初赛第一名
2020中兴捧月阿尔法赛道多目标检测和跟踪初赛第一名方案 初赛:多目标跟踪:指标MOTA和MOTP, 后期的大量实验证明检测算法相对于跟踪更重要. 数据集分析: 1.人群密集稀疏场景: 2.场景(白天 ...
- 动态视频目标检测和跟踪技术(入门)
动态视频目标检测和跟踪技术 http://m.qingqingsk.com/ztnews/lvvozlzrztkzrqwqqlnrluqk.html 传统电视监控技术只能达到"千里眼&quo ...
- 分割点云数据_3D点云深度学习综述:三维形状分类、目标检测与跟踪、点云分割等...
3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每年在各大会议上都有大量的相关文章发表.当前,点云上的深度学习变得越来越流行,人们提出了许多方法来解决这一领域的不同 ...
- Waymo 2020 | 2D/3D目标检测、跟踪和域自适应性冠军解决方案解析
©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士 研究方向|多目标跟踪 随着最近 Waymo Open Dataset Challenges 2020 的落幕,其中关于 2D/3 ...
- CVPR 2021 目标检测、跟踪和姿态估计最新进展分享
微软亚洲研究院 2021 CVPR 论文分享会已完美结束.今日起,CV君将根据不同类别的分享主题进行逐一分享,欢迎查收! 今日分享的主题为:目标检测.跟踪和姿态估计 论文一 论文名称:Bottom-U ...
- 开源库 | 监控视频中的目标检测与跟踪
介绍一份来自卡内基梅隆大学开源的主要用于监控视频中目标检测与跟踪的开源库:Object_Detection_Tracking . 其赢得了 2019 Activities in Extended Vi ...
最新文章
- Interface classes
- 被黑客盯上了…数据都给打包带走了…
- 我是一个请求,我该何去何从
- C# Monitor实现
- ubuntu或者fedora下编译淘宝tair key-value-db的开源内存数据库
- 标准库举例:sys、copy
- mac无法正确打开html,苹果MacBook电脑打不开网页不能访问怎么办
- 算法设计与分析 (知识点总结)
- Carrot2 in action_初试身手—融入自己的中文分词器
- 国产操作系统(1)UOS安装QT
- 苹果更新失败无法连接服务器未响应,iPhone 更新失败怎么办?更新 iOS 常见的错误代码及解决方法(二)...
- 【Scala】Scala练习题(一)
- android 安装界面关闭程序,Android安装apk文件,不弹出安装完成的界面
- 流程图文字及数据表内外连接
- el-cascader级联选择器当子节点的children为空数组的话,有bug(前端解决办法)
- 互联网寒冬?软件测试行业饱和了?为何每年还会增加40万测试员?
- 接近开关编码器脉冲信号计数器NPN/PNP转485信号采集Modbus模块
- 操作系统安全防护技术
- CAN 总线 之三 CAN 国际标准 ISO 11898 解读
- “性冷淡”的企业聊天工具,里面的秘密比陌陌还多