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

效果

相关推荐
鲜枣课堂7 分钟前
华为最新光通信架构AI-OTN,如何应对AI浪潮?
人工智能·华为·架构
格林威1 小时前
AOI在新能源电池制造领域的应用
人工智能·数码相机·计算机视觉·视觉检测·制造·工业相机
dxnb221 小时前
Datawhale25年10月组队学习:math for AI+Task5解析几何
人工智能·学习
DooTask官方号1 小时前
DooTask 1.3.38 版本更新:MCP 服务器与 AI 工具深度融合,开启任务管理新体验
运维·服务器·人工智能·开源软件·dootask
Coovally AI模型快速验证3 小时前
OmniNWM:突破自动驾驶世界模型三大瓶颈,全景多模态仿真新标杆(附代码地址)
人工智能·深度学习·机器学习·计算机视觉·自动驾驶·transformer
过往入尘土3 小时前
YOLOv5:实时目标检测的现代化实践与深度解析
人工智能·yolo·目标检测
weixin_497845543 小时前
通过ML.Net调用yolov5的Onnx模型
yolo·.net
青春不败 177-3266-05203 小时前
GPT、DeepSeek等大语言模型应用
人工智能·gpt·深度学习·机器学习·语言模型·科研绘图
渡我白衣4 小时前
C++ 同名全局变量:当符号在链接器中“相遇”
开发语言·c++·人工智能·深度学习·microsoft·语言模型·人机交互