From fdbc4552d9fe4ef3bd99539ce62d3ef987475445 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Tue, 26 Nov 2024 11:33:32 +0800 Subject: [PATCH] gesturekeypoint modify --- contrib/RTM3DTargetDetection/README.md | 132 +++++-------------------- 1 file changed, 22 insertions(+), 110 deletions(-) diff --git a/contrib/RTM3DTargetDetection/README.md b/contrib/RTM3DTargetDetection/README.md index 4bf00db51..4e32db634 100644 --- a/contrib/RTM3DTargetDetection/README.md +++ b/contrib/RTM3DTargetDetection/README.md @@ -1,133 +1,45 @@ # 3D目标检测 ## 1 介绍 -三维目标检测是自动驾驶中场景感知和运动预测的重要组成部分。目前,最强大的3D探测器严重依赖于3D LIDAR激光扫描仪,因为它可以提供场景位置。然而,基于激光雷达的系统是昂贵的,不利于嵌入到当前的车辆形状。相比之下,单目摄像机设备由于价格便宜、使用方便,在许多应用场景中受到越来越多的关注。在本项目中,我们是仅从单色RGB图像进行三维目标检测。 -本次使用的3D目标检测模型在图片中只能识别三类目标:'Car','Pedestrian','Cyclist',因此本项目的使用场景一般限定于公路道路场景中。输入图片大小最好是1280*416左右,在绝大多数情况下都能将图中目标框选出来,对于'Pedestrian','Cyclist'检测效果不太理想,识别率不高。 +### 1.1 简介 -### 1.1 支持的产品 +3D目标检测样例基于mxVision SDK进行开发,实现对图像进行三维目标检测的功能。本次使用的3D目标检测模型在图片中只能识别三类目标:'Car','Pedestrian','Cyclist',因此使用场景一般限定于公路道路场景中。输入图片大小推荐在1280*416左右,对于'Pedestrian','Cyclist'检测效果不太理想,识别率不高。 -昇腾310(推理) +### 1.2 支持的产品 -### 1.2 支持的版本 +Atlas 300I -支持的SDK版本为[5.0.0](https://www.hiascend.com/software/Mindx-sdk)。 +### 1.3 支持的版本 +本样例配套的MxVision版本、CANN版本、Driver/Firmware版本如下所示: +| MxVision版本 | CANN版本 | Driver/Firmware版本 | +| --------- | ------------------ | -------------- | +| 5.0.0 | 7.0.0 | 23.0.0 | -MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md) - -### 1.3 软件方案介绍 - -基于MindX SDK的人体关键点检测业务流程为:待检测图片通过 appsrc 插件输入,然后使用图像解码插件mxpi_imagedecoder对图片进行解码,再通过图像缩放插件mxpi_imageresize将图像缩放至满足检测模型要求的输入图像大小要求,缩放后的图像输入模型推理插件mxpi_tensorinfer得到检测结果,本项目使用的3D目标检测后处理插件mxpi_objectpostprocessor是继承yolov3的后处理框架开发的,用于处理推理结果,从中提取目标类别和置信度以及相对应的3D框的坐标点,采用四个ObjectInfo结构体传输一个目标的信息,最后通过输出插件 appsink 获取3D目标检测后处理插件输出结果,并在外部进行目标3D框可视化描绘。本系统的各模块及功能描述如表1所示: - -表1 系统方案各模块功能描述: - -| 序号 | 子系统 | 功能描述 | -| ---- | ---------------- | ------------------------------------------------------ | -| 1 | 图片输入 | 获取 jpg 格式输入图片 | -| 2 | 图片解码 | 解码图片 | -| 3 | 图片缩放 | 将输入图片放缩到模型指定输入的尺寸大小 | -| 4 | 模型推理 | 对输入张量进行推理 | -| 5 | 3D目标检测后处理 | 从模型推理结果计算提取物体类别、置信度和坐标框信息 | -| 6 | 结果输出 | 将后处理结果输出 | -| 7 | 结果可视化 | 将计算提取到的目标类别以及相对应的3D框标注在相应图片上 | - -### 1.4 代码目录结构与说明 - -本工程名称为 RTM3DTargetDetection,工程目录如下所示: - -``` -├── models -│ ├── coco.names # 标签文件,但本项目单纯调用但不使用 -│ ├── dla34.aippconfig # 模型转换aipp配置文件,不使用 -│ ├── rtm3d.cfg # 后处理配置文件,但本项目单纯调用但不使用 -│ └── model_best.om # rtm3d模型om格式 -├── pipeline -│ └── rtm3d.pipeline # pipeline文件 -├── plugins -│ ├── RTM3DPostProcess # 后处理插件 -│ │ ├── CMakeLists.txt -│ │ ├── build.sh -│ │ ├── RTM3DPostProcess.cpp -│ │ └── RTM3DPostProcess.h -│ └── build.sh -├── main.py -├── draw_box.py -├── build.sh # 编译头部姿态后处理插件脚本 -└── test.jpg -``` - - - -### 1.5 技术实现流程图 - -![3D目标检测流程图](https://gitee.com/zhiwei-liao/mindxsdk-referenceapps/raw/master/contrib/RTM3DTargetDetection/images/3D%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%E6%B5%81%E7%A8%8B%E5%9B%BE.png) - -图1 3D目标检测流程图 - -![3D目标pipeline流程图](https://gitee.com/zhiwei-liao/mindxsdk-referenceapps/raw/master/contrib/RTM3DTargetDetection/images/3D%E7%9B%AE%E6%A0%87pipeline%E6%B5%81%E7%A8%8B%E5%9B%BE.png) - -图2 3D目标检测pipeline流程图 - -## 2 环境依赖 - -| 软件名称 | 版本 | -| --------- | ----------- | -| MindX SDK | 5.0.0 | -| ubantu | 18.04.1 LTS | -| CANN | 7.0.0 | -| Python | 3.9.2 | - -在编译运行项目前,需要设置环境变量: -执行 -``` -. ${MX_SDK_HOME}/set_env.sh +## 2 设置环境变量 ``` -${MX_SDK_HOME}为mxVision SDK安装路径。 - -或者手动导入环境变量 -- 环境变量介绍 - +. /usr/local/Ascend/ascend-toolkit/set_env.sh #CANN默认安装路径,根据实际安装路径修改 +. ${SDK_INSTALL_PATH}/mxVision/set_env.sh #根据实际SDK安装路径修改 ``` -export MX_SDK_HOME=${MX_SDK_HOME} #需要在这添加自己SDK的安装路径 -export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/ -export GST_PLUGIN_SCANNER=${MX_SDK_HOME}/opensource/libexec/gstreamer-1.0/gst-plugin-scanner -export GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME}/lib/plugins -export PYTHONPATH=${MX_SDK_HOME}/python -``` - -## 3 模型获取和转换过程 - -### 3.1 模型获取 - -此处提供3D目标检测的om文件:[下载地址](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/RTM3DTargetDetection/model.zip) -此处提供项目的数据集( left color images of object data set (12 GB)),其压缩包中包含testing和training两个数据集:[下载地址](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d) - -注:下载后请将模型放置于models目录下 +## 3 准备模型 +**步骤1:** 下载3D目标检测的模型文件:[下载地址](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/RTM3DTargetDetection/model.zip),解压后将om文件放到RTM3DTargetDetection/models目录下。 ## 4 编译与运行 -示例步骤如下: - -**步骤1** - -在项目目录下执行。 +**步骤1:** 编译后处理插件:在项目根目录下执行命令 ``` -bash build.sh +bash build.sh #编译后处理插件 +chmod 440 ./plugins/plugin/librtm3dpostprocess.so #修改so权限 ``` -执行后会在该项目目录下的plugins文件中生成一个含有librtm3dpostprocess.so的plugin文件,目录排列即: +**步骤2:** 准备输入图片:将图片命名为test.jpg放到项目根目录下 +**步骤3:** 运行:在项目根目录下执行命令 ``` -RTM3DTargetDetection/plugins/plugin/librtm3dpostprocess.so +python3 main.py --input-image test.jpg ``` -修改librtm3dpostprocess.so权限为440 -**步骤2** - -在测试集目录下选择一张png文件,重命名(非中文名)并更改格式为test.jpg,放入项目根目录中,再执行: - -``` -python3 main.py --input-image test.jpg -``` \ No newline at end of file +**步骤4:** 查看结果: +运行成功后回显会显示检测的相关信息,并在当前目录生成heatmap.jpg \ No newline at end of file -- Gitee