如何基于自己训练的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)

效果

相关推荐
许泽宇的技术分享13 分钟前
解密Anthropic的MCP Inspector:从协议调试到AI应用开发的全栈架构之旅
人工智能·架构·typescript·mcp·ai开发工具
nopSled16 分钟前
AlphaAvatar:一个基于 LiveKit 的插件化实时 Omni-Avatar 架构
人工智能·语言模型
lovingsoft17 分钟前
如何看自己笔记本是不是ARM64
人工智能·测试管理
美狐美颜sdk36 分钟前
AI加持下的直播美颜sdk:动态贴纸功能的未来形态前瞻
人工智能·美颜sdk·直播美颜sdk·第三方美颜sdk·人脸美型sdk
火山引擎开发者社区39 分钟前
Force 开发者日:火山引擎 Agent 开发者生态全面升级
人工智能·火山引擎
智算菩萨39 分钟前
从对话系统到对话式智能体:对话式AI发展综述与2025年前沿整合
人工智能
yiersansiwu123d39 分钟前
AI时代的就业变革:在替代与创造中寻找平衡之道
人工智能
前进的李工1 小时前
零知识证明:不泄露秘密也能自证
人工智能·web安全·区块链·零知识证明
Tony Bai1 小时前
Cloudflare 2025 年度报告发布——Go 语言再次“屠榜”API 领域,AI 流量激增!
开发语言·人工智能·后端·golang
寰宇视讯1 小时前
IDC:奥哲,2025H1蝉联第一!
人工智能