如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo,但自己在训练过程仍然遇到不少疑惑。因此,我这总结一下操作过程中所解决的问题。

1、deepsort的训练集是否必须基于逐帧视频?

我经过尝试,发现非连续性的图像仍可以作为训练集。一个实例(如指定某个人、某辆车等)对应一个train\test文件夹即可。当然,逐帧效果更佳。

2、yolo训练的类型不止一个,该怎么办?

按照问题1中,每个类型都可以制作1个或多个实例(如类型0表示自行车,则可以有红色自行车、蓝色自行车等多个实例,类别1表示xxx,同理),全部都集中存放于train\test即可。

3、deepsort训练完成后,如何实现对自己视频中的目标进行跟踪?

将track.py相关参数进行修改即可,如下所示。注意,若yolo存在识别多个类别,则需要对应修改'--classes'中参数!!!

python 复制代码
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    # 表示yolo训练得到的权重
    parser.add_argument('--yolo_weights', type=str, default='yolov5/weights/best.pt', help='model.pt path')
    # 表示训练得到的权重
    parser.add_argument('--deep_sort_weights', type=str, default='deep_sort_pytorch/deep_sort/deep/checkpoint/ckpt.t7', help='ckpt.t7 path')
    # 测试视频
    parser.add_argument('--source', type=str, default='data/test.mp4', help='source')
    parser.add_argument('--output', type=str, default='inference/output', help='output folder')  # output folder
    parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
    parser.add_argument('--conf-thres', type=float, default=0.4, help='object confidence threshold')
    parser.add_argument('--iou-thres', type=float, default=0.5, help='IOU threshold for NMS')
    parser.add_argument('--fourcc', type=str, default='mp4v', help='output video codec (verify ffmpeg support)')
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    # True表示显示、保存、存储结果
    parser.add_argument('--show-vid', action='store_true', default=True,help='display tracking video results')
    parser.add_argument('--save-vid', action='store_true',default=True, help='save video tracking results')
    parser.add_argument('--save-txt', action='store_true',default=True, help='save MOT compliant results to *.txt')
    # 表示跟踪所有类别,yolo训练类型共200种
    parser.add_argument('--classes', nargs='+', default=list(range(200)), type=int, help='filter by class')
    parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
    parser.add_argument('--augment', action='store_true', help='augmented inference')
    parser.add_argument('--evaluate', action='store_true', help='augmented inference')
    parser.add_argument("--config_deepsort", type=str, default="deep_sort_pytorch/configs/deep_sort.yaml")
    args = parser.parse_args()
    args.img_size = check_img_size(args.img_size)

    with torch.no_grad():
        detect(args)

效果

相关推荐
MobotStone35 分钟前
花了几百万买的 AI 系统,为什么最后全成了花瓶?
人工智能
做萤石二次开发的哈哈8 小时前
连锁门店、园区、交通枢纽的视频如何统一汇集?应用模板的接入与分权管理详解
人工智能·物联网·音视频·二次开发·视频监控·蓝海aiot一站式工作台·萤石云开放平台
老金带你玩AI8 小时前
全程拿着手机,我让dot准备了一场AI分享
人工智能
nvd118 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
snhna8 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
架构技术专栏8 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
点云-激光雷达-Slam-三维牙齿9 小时前
100,000 Records CSV File - India Traffic Accident Analysis Dataset.7z
人工智能·数据集
TechWayfarer9 小时前
精度极限的突破:AI与IPv6如何重塑高精度IP查询
人工智能·网络协议·tcp/ip·transformer
七十二时9569 小时前
视频掉帧怎么用AI补帧
人工智能
可达智灵9 小时前
信创适配|织灵 Coda Loom 2.0 完成银河麒麟服务器操作系统 V10、V11 适配认证
人工智能·可达智灵