中文|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,所以需要分别准备环境)
已完成对应产品的开发环境和运行环境安装。
获取源码包。
开发环境,非root用户命令行中执行以下命令下载源码仓库。
cd $HOME
git clone https://gitee.com/Ironmankiller/yolov5-deepsort-mot-ffmpeg-dvpp-aipp.git
获取样例需要的测试数据。
执行以下命令进入项目data路径下。
cd $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP/data
下载所有数据,云盘链接
将下载好的所有文件解压,并拷贝到当前路径。
获取样例需要的模型文件。
执行以下命令,进入样例的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路径下
开发环境命令行中设置编译依赖的环境变量。
执行以下命令导入环境变量。开发环境为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
切换到YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP目录,创建目录用于存放编译文件,例如,本文中,创建的目录为 build/intermediates。
cd $HOME/YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP
mkdir -p build/intermediates
切换到 build/intermediates 目录,执行cmake生成编译文件。
需要使用交叉编译器编译。开发环境为X86架构,运行环境为Arm架构,执行以下命令进行交叉编译。
cd build/intermediates
make clean
cmake ../../ -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_BUILD_TYPE=Release
执行make命令,生成的可执行文件app在 YOLOV5_DEEPSORT_MOT_FFMPEG_DVPP_AIPP/out 目录下。
make
执行以下命令,将开发环境的 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
说明:
- xxx.xxx.xxx.xxx为运行环境ip,200DK在USB连接时一般为192.168.1.2,300,RJ45连接时请自行设置,参见教程连接Atlas 200 DK开发者板与Ubuntu服务器。
运行可执行文件。
执行以下命令切换目录。
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指定网络地址上所运行上位机。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。