• yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)


    多目标追踪+实例分割+目标检测

    YOLO (You Only Look Once) 是一个流行的目标检测算法,它能够在图像中准确地定位和识别多个物体。
    在这里插入图片描述

    本项目是基于 YOLO 算法的目标跟踪系统,它将 YOLO 的目标检测功能与目标跟踪技术相结合,实现了实时的多目标跟踪。

    在 目标追踪+语义分割+目标检测项目中,主要做了以下工作

    • 目标检测:利用 YOLO 算法进行目标检测,识别图像或视频中的各种物体,并确定它们的位置和类别。

    • 目标跟踪j:通过使用跟踪算法(如卡尔曼滤波器、光流法等),对检测到的目标进行跟踪,以实现目标在视频序列中的持续跟踪。

    • 实例分割:对目标检测后的目标进行mask,做到实例分割

    跟踪算法大集合

    • deepsort:

      深度学习框架下的追踪算法,可以有效地处理遮挡、尺度变化和外观变化等问题。 通过深度特征提取和匹配,能够在复杂场景下实现高准确度的目标追踪。

    • strongsort:

      具有较强的鲁棒性和稳定性,对于复杂背景和光照变化的环境有较好的适应能力。 在处理大量目标时,能够保持较高的追踪质量。

    • ocsort:

      基于外观特征的追踪算法,对目标外观的描述准确度较高,适用于需要精确目标识别的场景。
      在多目标追踪时,能够有效地区分不同目标并保持稳定的追踪状态。

    • bytetrack:

      采用了高效的特征提取和匹配策略,具有较快的处理速度和较低的计算成本。
      在资源受限的环境下,能够提供良好的追踪性能,适用于嵌入式和移动设备等场景。

    • botsort:

      具有较好的可扩展性和灵活性,可以根据具体需求进行定制和优化。
      在复杂多变的追踪场景中,能够通过参数调整和模型配置进行有效适配,提供高度定制化的追踪解决方案。

    在这里插入图片描述

    优越性

    • 实时性能优化:针对目标跟踪系统的实时性能进行优化,使其能够在实时视频流中高效地进行目标检测和跟踪。

    姿态估计

    • 人体关键点检测:通过图像或视频数据,识别并定位出人体的关键点,例如头部、肩膀、手肘、手腕、膝盖、脚踝等关键部位的位置。通常使用的是基于深度学习的关键点检测算法

    • 多目标处理:实现了多目标跟踪功能,能够同时跟踪并管理多个目标,并在复杂场景下保持良好的跟踪性能。

      在这里插入图片描述

    • 应用场景:将 Y项目应用于实际场景,如智能监控、自动驾驶、无人机跟踪等领域,验证其在实际应用中的效果和可靠性。
      在这里插入图片描述

    代码部署

    1. requirements,txt列表(优选Linux环境),成功运行的包,兼容性能良好。
    2. 并且将yolov8.pt 和yolov8_seg.pt。放在根目录下。
    3. 或者直接运行脚本,也会在线下载权重文件!
    _libgcc_mutex=0.1=main
    _openmp_mutex=5.1=1_gnu
    absl-py=2.0.0=pypi_0
    beautifulsoup4=4.12.2=pypi_0
    boxmot=10.0.43=dev_0
    ca-certificates=2023.08.22=h06a4308_0
    cachetools=5.3.2=pypi_0
    certifi=2023.7.22=pypi_0
    cfgv=3.4.0=pypi_0
    charset-normalizer=3.3.2=pypi_0
    contourpy=1.1.1=pypi_0
    cycler=0.12.1=pypi_0
    cython=3.0.5=pypi_0
    dataclasses=0.6=pypi_0
    distlib=0.3.7=pypi_0
    filelock=3.13.1=pypi_0
    filterpy=1.4.5=pypi_0
    fonttools=4.43.1=pypi_0
    ftfy=6.1.1=pypi_0
    future=0.18.3=pypi_0
    gdown=4.7.1=pypi_0
    gitdb=4.0.11=pypi_0
    gitpython=3.1.40=pypi_0
    google-auth=2.23.4=pypi_0
    google-auth-oauthlib=1.0.0=pypi_0
    grpcio=1.59.2=pypi_0
    identify=2.5.31=pypi_0
    idna=3.4=pypi_0
    importlib-metadata=6.8.0=pypi_0
    importlib-resources=6.1.0=pypi_0
    joblib=1.3.2=pypi_0
    kiwisolver=1.4.5=pypi_0
    lapx=0.5.5=pypi_0
    ld_impl_linux-64=2.38=h1181459_1
    libffi=3.4.4=h6a678d5_0
    libgcc-ng=11.2.0=h1234567_1
    libgomp=11.2.0=h1234567_1
    libstdcxx-ng=11.2.0=h1234567_1
    loguru=0.7.2=pypi_0
    markdown=3.5.1=pypi_0
    markupsafe=2.1.3=pypi_0
    matplotlib=3.7.3=pypi_0
    ncurses=6.4=h6a678d5_0
    nodeenv=1.8.0=pypi_0
    numpy=1.24.4=pypi_0
    oauthlib=3.2.2=pypi_0
    opencv-python=4.8.1.78=pypi_0
    openssl=3.0.11=h7f8727e_2
    packaging=23.2=pypi_0
    pandas=2.0.3=pypi_0
    pillow=10.1.0=pypi_0
    pip=23.3=py38h06a4308_0
    platformdirs=3.11.0=pypi_0
    pre-commit=3.5.0=pypi_0
    protobuf=4.25.0=pypi_0
    psutil=5.9.6=pypi_0
    py-cpuinfo=9.0.0=pypi_0
    pyasn1=0.5.0=pypi_0
    pyasn1-modules=0.3.0=pypi_0
    pyparsing=3.1.1=pypi_0
    pysocks=1.7.1=pypi_0
    python=3.8.18=h955ad1f_0
    python-dateutil=2.8.2=pypi_0
    pytz=2023.3.post1=pypi_0
    pyyaml=6.0.1=pypi_0
    readline=8.2=h5eee18b_0
    regex=2023.10.3=pypi_0
    requests=2.31.0=pypi_0
    requests-oauthlib=1.3.1=pypi_0
    rsa=4.9=pypi_0
    scikit-learn=1.3.2=pypi_0
    scipy=1.10.1=pypi_0
    seaborn=0.13.0=pypi_0
    setuptools=68.0.0=py38h06a4308_0
    six=1.16.0=pypi_0
    smmap=5.0.1=pypi_0
    soupsieve=2.5=pypi_0
    sqlite=3.41.2=h5eee18b_0
    tabulate=0.9.0=pypi_0
    tensorboard=2.14.0=pypi_0
    tensorboard-data-server=0.7.2=pypi_0
    thop=0.1.1-2209072238=pypi_0
    threadpoolctl=3.2.0=pypi_0
    tk=8.6.12=h1ccaba5_0
    torch=1.7.0=pypi_0
    torchvision=0.8.1=pypi_0
    tqdm=4.66.1=pypi_0
    typing-extensions=4.8.0=pypi_0
    tzdata=2023.3=pypi_0
    ultralytics=8.0.146=pypi_0
    urllib3=2.0.7=pypi_0
    virtualenv=20.24.6=pypi_0
    wcwidth=0.2.9=pypi_0
    werkzeug=3.0.1=pypi_0
    wheel=0.41.2=py38h06a4308_0
    xz=5.4.2=h5eee18b_0
    yacs=0.1.8=pypi_0
    yolox=0.3.0=pypi_0
    zipp=3.17.0=pypi_0
    zlib=1.2.13=h5eee18b_0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100

    你只需要输入以下指令:即可配置好环境!!!

     conda create --name yolo_track  --file requiremnts.txt
    
    • 1

    目标检测运行

    运行脚本:

    $ python examples/track.py --yolo-model yolov8n       # bboxes only
      python examples/track.py --yolo-model yolo_nas_s    # bboxes only
      python examples/track.py --yolo-model yolox_n       # bboxes only
                                            yolov8n-seg   # bboxes + segmentation masks
                                            yolov8n-pose  # bboxes + pose estimation
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    目标跟踪

    目标跟踪 脚本:

    $ python examples/track.py --tracking-method deepocsort
                                                 strongsort
                                                 ocsort
                                                 bytetrack
                                                 botsort
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ReID 模型

    在追踪过程中,一些跟踪方法结合外观描述和运动信息。对于那些使用外观描述的方法,你可以根据自己的需求从 ReID 模型库中选择一个 ReID 模型。这些模型可以通过 reid_export.py 脚本进一步优化以满足你的需求。

    $ python examples/track.py --source 0 --reid-model lmbn_n_cuhk03_d.pt               # lightweight
                                                       osnet_x0_25_market1501.pt
                                                       mobilenetv2_x1_4_msmt17.engine
                                                       resnet50_msmt17.onnx
                                                       osnet_x1_0_msmt17.pt
                                                       clip_market1501.pt               # heavy
                                                       clip_vehicleid.pt
                                                       ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果展示

    下文展示了具体的视频实现效果!

    qq1309399183
    
    • 1

    视频展示链接

  • 相关阅读:
    1100亩烟台深耕水稻 国稻种芯·中国水稻节:山东盐碱地水稻
    ExtJS-介绍(Introduction to Ext JS)
    常见的限流算法简述
    MySQL 保姆级教程(六):用通配符进行过滤
    凉鞋的 Godot 笔记 101. Hello Godot!
    java中的对象克隆(浅克隆和深克隆)
    Linux文件:/etc/fstab
    liunx的三个时间atime,mtime,ctime详细说明与使用场景
    rust-learn
    ubuntu20部署3d高斯
  • 原文地址:https://blog.csdn.net/ALiLiLiYa/article/details/134275065