# 基于MxBase的yolov5视频流推理样例 **Repository Path**: zxt-triumph/ascend-a200-yolov5 ## Basic Information - **Project Name**: 基于MxBase的yolov5视频流推理样例 - **Description**: 本开发样例是基于mxBase开发的端到端推理的C++应用程序,可在昇腾芯片上实现yolov5的视频流的目标检测,并把可视化结果保存到本地。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-31 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 基于MxBase的yolov5视频流推理样例 ## 1 介绍 本开发样例是基于mxBase开发的端到端推理的C++应用程序,可在昇腾芯片上实现视频流的目标检测,并把可视化结果保存到本地。 ## 2 准备工作 ### 2.1 模型下载 若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。 **步骤1** 在ModelZoo上下载YOLOv5 onnx模型。 **步骤2** 新建model文件夹,将获取到的YOLOv5模型onnx文件存放至:"样例项目所在目录/model/"。 **步骤3** 模型转换 ### 2.2 执行以下命令转换YOLOv5模型 ``` atc \ --output_type=FP32 \ --input_shape="images:1,3,640,640" \ --input_format=NCHW \ --output="yolov5s" \ --soc_version=Ascend310B1 \ --insert_op_conf=insert_op.cfg \ --framework=5 \ --model="yolov5s.onnx" \ ``` > 说明1:out_nodes制定了输出节点的顺序,需要与模型后处理适配。 > 说明2:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1 执行完模型转换脚本后,会生成相应的.om模型文件。 执行完模型转换脚本后,会生成相应的.om模型文件。 ### 2.3 相关参数修改 main.cpp文件中,添加模型路径与 rtsp 流源地址(需要自行准备可用的视频流,视频流格式为H264) ``` ... initParam.modelPath = "{yolov5模型路径}"; ... std::string streamName = "rtsp_Url"; ``` VideoProcess.cpp文件中,设置视频的宽高值 ``` const uint32_t VIDEO_WIDTH = {视频宽度}; const uint32_t VIDEO_HEIGHT = {视频高度}; ``` ### 2.4 配置CMakeLists 配置CMakeLists.txt文件中的`MX_SDK_HOME`与`FFMPEG_PATH`环境变量 ``` set(MX_SDK_HOME {SDK实际安装路径}) set(FFMPEG_PATH {ffmpeg安装路径}) ``` ## 3. 编译与运行 ### 3.1编译 ``` bash sample_build.sh ``` ### 3.2 运行 ``` bash run.sh ``` ## 4 查看结果 执行run.sh完毕后,可视化结果会被保存在工程目录下result文件夹中。