5 Star 3 Fork 0

Ironmankiller/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

中文|English

本项目适配5.0.3.alpha005及以上版本,支持产品为Atlas200DK

功能:整合基于RetinaNet实现的小目标检测,基于SORT与DeepSORT实现的多目标跟踪,基于DiMP实现的单目标跟踪。

样例输入:原始mp4文件、h264、h265文件、图像文件夹,来自通过网络连接的上位机的Jpeg图像输入。

样例输出:编码后的h264或者h265文件、JPG格式图像文件,通过网络输出Jpeg编码的图像或文本结果到上位机。

(上位机请在仓库发行页面下载,仅支持win10及以上操作系统)

前提条件

部署此Sample前,需要准备好以下环境:

  • 请确认已按照环境准备和依赖安装准备好环境。(注意:本项目的开发环境使用x86-64架构下的Ubuntu18.04环境,运行环境位于基于Arm64的Atlas200DK,所以需要分别准备环境)

  • 已完成对应产品的开发环境和运行环境安装。

软件准备

  1. 获取源码包。

    开发环境,非root用户命令行中执行以下命令下载源码仓库。

    cd $HOME

    git clone https://gitee.com/Ironmankiller/yolov5-deepsort-mot-ffmpeg-dvpp-aipp.git

  2. 获取样例需要的测试数据。

    执行以下命令进入项目data路径下。

    cd $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP/data

    下载所有数据,云盘链接

    将下载好的所有文件解压,并拷贝到当前路径。

  3. 获取样例需要的模型文件。

    执行以下命令,进入样例的model文件夹中。

    cd $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP/model

    下载对应的模型文件,云盘链接

    将各个文件下的模型文件拷贝到当前路径下的同名文件夹中,例如:

    • 小目标检测样例

      mkdir retina

      将网盘中retina文件夹下的内容拷到retina路径

    • 单目标跟踪样例

      mkdir dimp

      将网盘中dimp文件夹下的内容拷到dimp路径下

    • 多目标跟踪样例

      mkdir yolo

      将网盘中yolo文件夹下的内容拷到yolo路径下

      mkdir deepsort

      将网盘中deepsort文件夹下的内容拷到deepsort路径下

样例部署

  1. 开发环境命令行中设置编译依赖的环境变量。

    执行以下命令导入环境变量。开发环境为X86架构,运行环境为Arm架构,由于开发环境上同时部署了X86和Arm架构的开发套件,后续编译应用时需要调用Arm架构开发套件的ACLlib库,所以此处需要导入环境变量为Arm架构的ACLlib库路径。

    export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux

    export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub

  2. 切换到YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP目录,创建目录用于存放编译文件,例如,本文中,创建的目录为 build/intermediates

    cd $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP

    mkdir -p build/intermediates

  3. 切换到 build/intermediates 目录,执行cmake生成编译文件。

    需要使用交叉编译器编译。开发环境为X86架构,运行环境为Arm架构,执行以下命令进行交叉编译。

    cd build/intermediates

    make clean

    cmake ../../ -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_BUILD_TYPE=Release

  4. 执行make命令,生成的可执行文件app在 YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP/out 目录下。

    make

样例运行

  1. 执行以下命令,将开发环境的 YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP 目录上传到运行环境中,例如 /home/HwHiAiUser,并以HwHiAiUser(运行用户)登录运行环境(Host)。

    scp -r $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP HwHiAiUser@xxx.xxx.xxx.xxx:/home/HwHiAiUser

    ssh HwHiAiUser@xxx.xxx.xxx.xxx

    说明:

  2. 运行可执行文件。

    执行以下命令切换目录。

    cd $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP/out

    切换目录后,执行以下命令运行样例。

    • 查看帮助文档

      ./app work

    • 小目标检测样例

      ./app work retina -i ../data/val2017_gray_jpg -o network_image xxx.xxx.xxx.xxx:16008

      输入为本地读图,输出为上位机收图,xxx.xxx.xxx.xxx为运行上位机的机器的IP。

    • 多目标跟踪样例

      ./app work sort -i ../data/MVI_40864 -o video output_video

      输入为本地读图,输出编码为视频,output_video为输出视频的路径

      ./app work deepsort -i tcp -o network_result xxx.xxx.xxx.xxx:16007

      输入来自上位机,输出为跟踪结果,返回给上位机由上位机解析并显示。

    • 单目标跟踪样例

      ./app work dimp -i ../data/dimp/test6/6.mp4 -o image output_image

      输入为本地视频,输出编码为图像,output_image为输出图片所在的路径

查看结果

运行完成后,会在运行环境的命令行中打印出推理结果,并在命令行参数-o设定的目录下生成推理后的图片、视频,或在推理的过程中实时将结果输出到由-o指定网络地址上所运行上位机。

空文件

简介

针对在边缘侧应用目标检测、识别、跟踪算法的任务需求,拟对小目标高精度检测、实时单目标跟踪、多目标检测识别跟踪等算法展开研究,并基于Atlas200平台进行部署实现。 展开 收起
C/C++ 等 4 种语言
取消

发行版 (2)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C/C++
1
https://gitee.com/Ironmankiller/yolov5-deepsort-mot-ffmpeg-dvpp-aipp.git
git@gitee.com:Ironmankiller/yolov5-deepsort-mot-ffmpeg-dvpp-aipp.git
Ironmankiller
yolov5-deepsort-mot-ffmpeg-dvpp-aipp
YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891