From 009123a42d371cc8a39f9612c5ac06856ccb0828 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 19:57:38 +0800 Subject: [PATCH 1/8] readme modify --- tutorials/ImageDetectionSample/C++/run.sh | 25 ------ .../{C++ => cpp}/CMakeLists.txt | 0 .../{C++ => cpp}/README.md | 65 +++------------ .../{C++ => cpp}/main.cpp | 0 .../model/aipp_yolov3_416_416.aippconfig | 0 .../ImageDetectionSample/cpp/model/coco.names | 81 +++++++++++++++++++ .../{C++ => cpp}/model/yolov3_tf_bs1_fp16.cfg | 0 tutorials/ImageDetectionSample/cpp/run.sh | 7 ++ .../{C++ => cpp}/test.pipeline | 6 +- 9 files changed, 100 insertions(+), 84 deletions(-) delete mode 100644 tutorials/ImageDetectionSample/C++/run.sh rename tutorials/ImageDetectionSample/{C++ => cpp}/CMakeLists.txt (100%) rename tutorials/ImageDetectionSample/{C++ => cpp}/README.md (53%) rename tutorials/ImageDetectionSample/{C++ => cpp}/main.cpp (100%) rename tutorials/ImageDetectionSample/{C++ => cpp}/model/aipp_yolov3_416_416.aippconfig (100%) create mode 100644 tutorials/ImageDetectionSample/cpp/model/coco.names rename tutorials/ImageDetectionSample/{C++ => cpp}/model/yolov3_tf_bs1_fp16.cfg (100%) create mode 100644 tutorials/ImageDetectionSample/cpp/run.sh rename tutorials/ImageDetectionSample/{C++ => cpp}/test.pipeline (87%) diff --git a/tutorials/ImageDetectionSample/C++/run.sh b/tutorials/ImageDetectionSample/C++/run.sh deleted file mode 100644 index 0b5a7f01a..000000000 --- a/tutorials/ImageDetectionSample/C++/run.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Copyright(C) Huawei Technologies Co.,Ltd. 2012-2021 All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -CUR_PATH=$(cd "$(dirname "$0")"; pwd) - -echo $CUR_PATH - -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/ ":${LD_LIBRARY_PATH} -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" - -./sample \ No newline at end of file diff --git a/tutorials/ImageDetectionSample/C++/CMakeLists.txt b/tutorials/ImageDetectionSample/cpp/CMakeLists.txt similarity index 100% rename from tutorials/ImageDetectionSample/C++/CMakeLists.txt rename to tutorials/ImageDetectionSample/cpp/CMakeLists.txt diff --git a/tutorials/ImageDetectionSample/C++/README.md b/tutorials/ImageDetectionSample/cpp/README.md similarity index 53% rename from tutorials/ImageDetectionSample/C++/README.md rename to tutorials/ImageDetectionSample/cpp/README.md index ca3c30780..a768362e1 100644 --- a/tutorials/ImageDetectionSample/C++/README.md +++ b/tutorials/ImageDetectionSample/cpp/README.md @@ -21,38 +21,27 @@ ## 2 设置环境变量 ```bash -#设置CANN环境变量 -. ${install_path}/set_env.sh +#设置CANN环境变量,cann_install_path为CANN安装路径 +. ${cann_install_path}/set_env.sh -#设置Vision SDK 环境变量,SDK-path为Vision SDK 安装路径 -. ${SDK-path}/set_env.sh +#设置Vision SDK 环境变量,sdk_install_path为Vision SDK 安装路径 +. ${sdk_install_path}/set_env.sh ``` ## 3 准备模型 -**步骤1** 在ModelZoo上下载YOLOv3模型。[下载地址](https://gitee.com/link?target=https%3A%2F%2Fobs-9be7.obs.cn-east-2.myhuaweicloud.com%2F003_Atc_Models%2Fmodelzoo%2Fyolov3_tf.pb) +**步骤1** 下载YOLOv3模型。[下载地址](https://gitee.com/link?target=https%3A%2F%2Fobs-9be7.obs.cn-east-2.myhuaweicloud.com%2F003_Atc_Models%2Fmodelzoo%2Fyolov3_tf.pb) **步骤2** 将获取到的YOLOv3模型文件内的.pb文件存放至`ImageDetectionSample/C++/model/`下。 **步骤3** 使用ATC执行模型转换 -因为ATC在识别`--model`路径时无法识别`/C++/`中的`+`, 因此建议先通过执行下面的指令先将路径更改为`/C/`: +在`ImageDetectionSample/cpp/model/`目录下执行以下命令 -在`ImageDetectionSample/`下执行 ```bash -mv ./C++ ./C -``` - -在`C/model/`目录下执行以下命令 - -```bash -# 执行,转换YOLOv3模型 -# Execute, transform YOLOv3 model. - atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310P3 --insert_op_conf=./aipp_yolov3_416_416.aippconfig --input_shape="input:1,416,416,3" --out_nodes="yolov3/yolov3_head/Conv_6/BiasAdd:0;yolov3/yolov3_head/Conv_14/BiasAdd:0;yolov3/yolov3_head/Conv_22/BiasAdd:0" -# 说明:out_nodes制定了输出节点的顺序,需要与模型后处理适配。 ``` -执行完模型转换脚本后,在`model/`目录下会生成相应的`yolov3_tf_bs1_fp16.om`模型文件。执行后终端输出为: +执行后终端输出为: ```bash ATC start working now, please wait for a moment. ATC run success, welcome to the next use. @@ -61,45 +50,9 @@ ATC run success, welcome to the next use. ## 4 编译与运行 -**步骤1:** 准备一张待检测图片,放到项目目录下命名为`test.jpg`。 - -**步骤2:** 修改项目c++目录下的配置文件`./test.pipeline`: - -1. 在第32行 配置mxpi_tensorinfer插件的模型加载路径`modelPath`: -```bash -29 "mxpi_tensorinfer0": { -30 "props": { -31 "dataSource": "mxpi_imageresize0", -32 "modelPath": "${yolov3_tf_bs1_fp16.om模型路径}" -33 }, -34 "factory": "mxpi_tensorinfer", -35 "next": "mxpi_objectpostprocessor0" -36 }, -``` - - -2. 在第41和42行 配置模型后处理插件mxpi_objectpostprocessor,添加`coco.names`与 `libyolov3postprocess.so`路径: - -- 通过命令查找到文件`coco.names`路径: -```bash -find / -name coco.names -``` - -- `postProcessLibPath`的后处理库路径,路径根据SDK安装路径决定,可以通过`find / -name libyolov3postprocess.so`搜索路径。 -```bash -37 "mxpi_objectpostprocessor0": { -38 "props": { -39 "dataSource": "mxpi_tensorinfer0", -40 "postProcessConfigPath": "model/yolov3_tf_bs1_fp16.cfg", -41 "labelPath": "${coco.names文件路径}", -42 "postProcessLibPath": "${libyolov3postprocess.so路径}" -43 }, -44 "factory": "mxpi_objectpostprocessor", -45 "next": "appsink0" -46 }, -``` +**步骤1:** 准备一张待检测图片,放到项目根目录下命名为`test.jpg`。 -**步骤3:** 编译项目文件 +**步骤2:** 编译项目文件 在项目的c++目录下,新建立build目录,进入build执行cmake ..(..代表包含CMakeLists.txt的源文件父目录),在build目录下生成了编译需要的Makefile和中间文件。执行make构建工程,构建成功后就会生成可执行文件。 diff --git a/tutorials/ImageDetectionSample/C++/main.cpp b/tutorials/ImageDetectionSample/cpp/main.cpp similarity index 100% rename from tutorials/ImageDetectionSample/C++/main.cpp rename to tutorials/ImageDetectionSample/cpp/main.cpp diff --git a/tutorials/ImageDetectionSample/C++/model/aipp_yolov3_416_416.aippconfig b/tutorials/ImageDetectionSample/cpp/model/aipp_yolov3_416_416.aippconfig similarity index 100% rename from tutorials/ImageDetectionSample/C++/model/aipp_yolov3_416_416.aippconfig rename to tutorials/ImageDetectionSample/cpp/model/aipp_yolov3_416_416.aippconfig diff --git a/tutorials/ImageDetectionSample/cpp/model/coco.names b/tutorials/ImageDetectionSample/cpp/model/coco.names new file mode 100644 index 000000000..1db41f581 --- /dev/null +++ b/tutorials/ImageDetectionSample/cpp/model/coco.names @@ -0,0 +1,81 @@ +# This file is originally from https://github.com/pjreddie/darknet/blob/master/data/coco.names +person +bicycle +car +motorbike +aeroplane +bus +train +truck +boat +traffic light +fire hydrant +stop sign +parking meter +bench +bird +cat +dog +horse +sheep +cow +elephant +bear +zebra +giraffe +backpack +umbrella +handbag +tie +suitcase +frisbee +skis +snowboard +sports ball +kite +baseball bat +baseball glove +skateboard +surfboard +tennis racket +bottle +wine glass +cup +fork +knife +spoon +bowl +banana +apple +sandwich +orange +broccoli +carrot +hot dog +pizza +donut +cake +chair +sofa +pottedplant +bed +diningtable +toilet +tvmonitor +laptop +mouse +remote +keyboard +cell phone +microwave +oven +toaster +sink +refrigerator +book +clock +vase +scissors +teddy bear +hair drier +toothbrush diff --git a/tutorials/ImageDetectionSample/C++/model/yolov3_tf_bs1_fp16.cfg b/tutorials/ImageDetectionSample/cpp/model/yolov3_tf_bs1_fp16.cfg similarity index 100% rename from tutorials/ImageDetectionSample/C++/model/yolov3_tf_bs1_fp16.cfg rename to tutorials/ImageDetectionSample/cpp/model/yolov3_tf_bs1_fp16.cfg diff --git a/tutorials/ImageDetectionSample/cpp/run.sh b/tutorials/ImageDetectionSample/cpp/run.sh new file mode 100644 index 000000000..ed31ca0eb --- /dev/null +++ b/tutorials/ImageDetectionSample/cpp/run.sh @@ -0,0 +1,7 @@ +rm -rf build +mkdir build +cd build +cmake .. +make -j +cd .. +./sample \ No newline at end of file diff --git a/tutorials/ImageDetectionSample/C++/test.pipeline b/tutorials/ImageDetectionSample/cpp/test.pipeline similarity index 87% rename from tutorials/ImageDetectionSample/C++/test.pipeline rename to tutorials/ImageDetectionSample/cpp/test.pipeline index 2d8fc780b..a9e0cbc0b 100644 --- a/tutorials/ImageDetectionSample/C++/test.pipeline +++ b/tutorials/ImageDetectionSample/cpp/test.pipeline @@ -29,7 +29,7 @@ "mxpi_tensorinfer0": { "props": { "dataSource": "mxpi_imageresize0", - "modelPath": "${yolov3_tf_bs1_fp16.om模型路径}" + "modelPath": "./model/yolov3_tf_bs1_fp16.om" }, "factory": "mxpi_tensorinfer", "next": "mxpi_objectpostprocessor0" @@ -38,8 +38,8 @@ "props": { "dataSource": "mxpi_tensorinfer0", "postProcessConfigPath": "model/yolov3_tf_bs1_fp16.cfg", - "labelPath": "${coco.names文件路径}", - "postProcessLibPath": "${libyolov3postprocess.so路径}" + "labelPath": "./model/coco.names", + "postProcessLibPath": "libyolov3postprocess.so" }, "factory": "mxpi_objectpostprocessor", "next": "appsink0" -- Gitee From df3bf6fc53671774d1ffcbdf46cf21f7b66faad9 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 20:01:33 +0800 Subject: [PATCH 2/8] readme modify --- tutorials/ImageDetectionSample/cpp/README.md | 42 +------------------- 1 file changed, 2 insertions(+), 40 deletions(-) diff --git a/tutorials/ImageDetectionSample/cpp/README.md b/tutorials/ImageDetectionSample/cpp/README.md index a768362e1..92f8e8948 100644 --- a/tutorials/ImageDetectionSample/cpp/README.md +++ b/tutorials/ImageDetectionSample/cpp/README.md @@ -52,57 +52,19 @@ ATC run success, welcome to the next use. **步骤1:** 准备一张待检测图片,放到项目根目录下命名为`test.jpg`。 -**步骤2:** 编译项目文件 - - -在项目的c++目录下,新建立build目录,进入build执行cmake ..(..代表包含CMakeLists.txt的源文件父目录),在build目录下生成了编译需要的Makefile和中间文件。执行make构建工程,构建成功后就会生成可执行文件。 - -``` -# 新建立build目录 -mkdir build - -#进入build -cd build - -# 执行 -cmake .. - -# 执行make构建工程 -make -``` -构建成功后就会生成可执行文件,回显为: -``` -Scanning dependencies of target sample -[ 50%] Building CXX object CMakeFiles/sample.dir/main.cpp.o -[100%] Linking CXX executable ../sample -[100%] Built target sample -# sample就是CMakeLists文件中指定生成的可执行文件。 +**步骤2:** 编译与运行,执行脚本 ``` - -**步骤4:** 执行脚本 - -执行run.sh脚本前请先确认可执行文件sample已生成。 - -``` -# 添加执行权限 -chmod +x run.sh - -#执行脚本 bash run.sh ``` **步骤5:** 查看结果 - -执行run.sh完毕后,sample会将目标检测结果保存在工程目录下`result.jpg`中。 +目标检测结果保存在当前目录的`result.jpg`中。 ## 5 常见问题 ### 5.1 .sh文件执行报错 - - - **问题描述:** 如果执行`bash run.sh`报错如下: ``` run.sh: line 2: $'\r': command not found -- Gitee From c0e4b5c77b175d7a0882e5c53f0db82eff53f385 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 20:05:49 +0800 Subject: [PATCH 3/8] readme modify --- tutorials/ImageDetectionSample/cpp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/ImageDetectionSample/cpp/README.md b/tutorials/ImageDetectionSample/cpp/README.md index 92f8e8948..80b81644c 100644 --- a/tutorials/ImageDetectionSample/cpp/README.md +++ b/tutorials/ImageDetectionSample/cpp/README.md @@ -32,7 +32,7 @@ **步骤1** 下载YOLOv3模型。[下载地址](https://gitee.com/link?target=https%3A%2F%2Fobs-9be7.obs.cn-east-2.myhuaweicloud.com%2F003_Atc_Models%2Fmodelzoo%2Fyolov3_tf.pb) -**步骤2** 将获取到的YOLOv3模型文件内的.pb文件存放至`ImageDetectionSample/C++/model/`下。 +**步骤2** 将获取到的YOLOv3模型文件内的.pb文件存放至`ImageDetectionSample/cpp/model/`下。 **步骤3** 使用ATC执行模型转换 -- Gitee From ffa367f65a65563af674a30c72867a3ca22a41c2 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 20:09:05 +0800 Subject: [PATCH 4/8] readme modify --- tutorials/ImageDetectionSample/cpp/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/ImageDetectionSample/cpp/README.md b/tutorials/ImageDetectionSample/cpp/README.md index 80b81644c..0e744ffbb 100644 --- a/tutorials/ImageDetectionSample/cpp/README.md +++ b/tutorials/ImageDetectionSample/cpp/README.md @@ -50,9 +50,9 @@ ATC run success, welcome to the next use. ## 4 编译与运行 -**步骤1:** 准备一张待检测图片,放到项目根目录下命名为`test.jpg`。 +**步骤1:** 准备一张待检测图片,放到`ImageDetectionSample/cpp`目录下命名为`test.jpg`。 -**步骤2:** 编译与运行,执行脚本 +**步骤2:** 编译与运行,进入`ImageDetectionSample/cpp`目录,执行脚本 ``` bash run.sh ``` -- Gitee From 1b7fc35b446af23c4c30a924138a9acde4156f4a Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 20:09:35 +0800 Subject: [PATCH 5/8] readme modify --- tutorials/ImageDetectionSample/cpp/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tutorials/ImageDetectionSample/cpp/README.md b/tutorials/ImageDetectionSample/cpp/README.md index 0e744ffbb..b25c06032 100644 --- a/tutorials/ImageDetectionSample/cpp/README.md +++ b/tutorials/ImageDetectionSample/cpp/README.md @@ -57,8 +57,7 @@ ATC run success, welcome to the next use. bash run.sh ``` -**步骤5:** 查看结果 -目标检测结果保存在当前目录的`result.jpg`中。 +**步骤5:** 查看结果,目标检测结果保存在当前目录的`result.jpg`中。 ## 5 常见问题 -- Gitee From 43f031e05d523d664ebe4edf9d704aed49580489 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 20:23:05 +0800 Subject: [PATCH 6/8] readme modify --- tutorials/ImageDetectionSample/cpp/README.md | 3 +- .../ImageDetectionSample/python/README.md | 59 +++++-------------- tutorials/ImageDetectionSample/python/main.py | 2 +- .../python/models/model_conversion.sh | 36 ----------- 4 files changed, 17 insertions(+), 83 deletions(-) delete mode 100644 tutorials/ImageDetectionSample/python/models/model_conversion.sh diff --git a/tutorials/ImageDetectionSample/cpp/README.md b/tutorials/ImageDetectionSample/cpp/README.md index b25c06032..2516708b6 100644 --- a/tutorials/ImageDetectionSample/cpp/README.md +++ b/tutorials/ImageDetectionSample/cpp/README.md @@ -14,6 +14,7 @@ | Vision SDK版本 | CANN版本 | Driver/Firmware版本 | | --------- | ------------------ | -------------- | | 6.0.RC3 | 8.0.RC3 | 24.1.RC3 | +| 6.0.0 | 8.0.0 | 24.1.0 | ### 1.4 三方依赖 无 @@ -57,7 +58,7 @@ ATC run success, welcome to the next use. bash run.sh ``` -**步骤5:** 查看结果,目标检测结果保存在当前目录的`result.jpg`中。 +**步骤3:** 查看结果,目标检测结果保存在当前目录的`result.jpg`中。 ## 5 常见问题 diff --git a/tutorials/ImageDetectionSample/python/README.md b/tutorials/ImageDetectionSample/python/README.md index b3e63dd56..2b578f0dc 100644 --- a/tutorials/ImageDetectionSample/python/README.md +++ b/tutorials/ImageDetectionSample/python/README.md @@ -15,6 +15,7 @@ | Vision SDK版本 | CANN版本 | Driver/Firmware版本 | | --------- | ------------------ | -------------- | | 6.0.RC3 | 8.0.RC3 | 24.1.RC3 | +| 6.0.0 | 8.0.0 | 24.1.0 | ### 1.4 三方依赖 @@ -29,68 +30,36 @@ ## 2. 设置环境变量 ```bash -#设置CANN环境变量 -. ${install_path}/set_env.sh +#设置CANN环境变量,cann_install_path为CANN安装路径 +. ${cann_install_path}/set_env.sh -#设置Vision SDK 环境变量,SDK-path为Vision SDK 安装路径 -. ${SDK-path}/set_env.sh +#设置Vision SDK 环境变量,sdk_install_path为Vision SDK 安装路径 +. ${sdk_install_path}/set_env.sh ``` ## 3. 准备模型 -**步骤1** 在ModelZoo上下载YOLOv3模型。[下载地址](https://gitee.com/link?target=https%3A%2F%2Fobs-9be7.obs.cn-east-2.myhuaweicloud.com%2F003_Atc_Models%2Fmodelzoo%2Fyolov3_tf.pb) +**步骤1** 下载YOLOv3模型。[下载地址](https://gitee.com/link?target=https%3A%2F%2Fobs-9be7.obs.cn-east-2.myhuaweicloud.com%2F003_Atc_Models%2Fmodelzoo%2Fyolov3_tf.pb) **步骤2** 将获取到的YOLOv3模型文件内的`.pb`文件存放至`ImageDetectionSample/python/models/`下。 -**步骤3** 模型转换 -在文件夹 `ImageDetectionSample/python/models/` 下,执行模型转换脚本model_conversion.sh -``` -bash model_conversion.sh +**步骤3** 使用ATC执行模型转换 +在文件夹 `ImageDetectionSample/python/models/` 目录下执行以下命令 +```bash +atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310P3 --insert_op_conf=./aipp_yolov3_416_416.aippconfig --input_shape="input:1,416,416,3" --out_nodes="yolov3/yolov3_head/Conv_6/BiasAdd:0;yolov3/yolov3_head/Conv_14/BiasAdd:0;yolov3/yolov3_head/Conv_22/BiasAdd:0" ``` -执行完模型转换脚本后,会生成相应的`.om`模型文件。执行后终端输出为: +执行后终端输出为: ```bash ATC start working now, please wait for a moment. ATC run success, welcome to the next use. ``` 表示命令执行成功。 -**步骤4** 准备标签文件coco.names - -通过命令查找到文件`coco.names`路径: -```bash -find / -name coco.names -``` -在`ImageDetectionSample/python/models/` 下, 复制文件`coco.names`: -```bash -cp ${刚刚获取的路径} ./ -``` - ## 4 运行 -**步骤1:** 转移样例: - -将样例目录从 `mindxsdk-referenceapps/tutorials/ImageDetectionSample/python` 文件夹下 移动到 `${SDK安装路径}/samples/mxVision/python/`路径下。 -```bash -cp -r mindxsdk-referenceapps/tutorials/ImageDetectionSample/python ${SDK安装路径}/samples/mxVision/python -``` -移动后的项目路径为:`${SDK安装路径}/samples/mxVision/python/python`。 - - -**步骤2:** 修改main.py: - - -将main.py 文件中 第78行 mxpi_objectpostprocessor0插件中的postProcessLibPath路径中的${SDK安装路径} 替换为自己的SDK安装路径: -```bash -78 "postProcessLibPath": "${SDK安装路径}/lib/modelpostprocessors/libyolov3postprocess.so" -``` -**步骤3:** 准备测试图片: - -准备一张待检测图片,放到项目目录`${SDK安装路径}/samples/mxVision/python/python`下命名为test.jpg - - -**步骤4:** 运行: -命令行输入: +**步骤1:** 准备一张待检测图片,放到`ImageDetectionSample/python`目录下命名为`test.jpg`。 +**步骤2:** 运行, 进入`ImageDetectionSample/python`目录,执行 ``` python3 main.py ``` -运行结果将以`result.jpg`的形式保存在项目目录下。 +**步骤3:** 查看结果,目标检测结果保存在当前目录的`result.jpg`中。 diff --git a/tutorials/ImageDetectionSample/python/main.py b/tutorials/ImageDetectionSample/python/main.py index 444929084..cdfdf908e 100644 --- a/tutorials/ImageDetectionSample/python/main.py +++ b/tutorials/ImageDetectionSample/python/main.py @@ -75,7 +75,7 @@ if __name__ == '__main__': "dataSource": "mxpi_tensorinfer0", "postProcessConfigPath": "models/yolov3_tf_bs1_fp16.cfg", "labelPath": "models/coco.names", - "postProcessLibPath": "${SDK安装路径}/lib/modelpostprocessors/libyolov3postprocess.so" + "postProcessLibPath": "libyolov3postprocess.so" }, "factory": "mxpi_objectpostprocessor", "next": "appsink0" diff --git a/tutorials/ImageDetectionSample/python/models/model_conversion.sh b/tutorials/ImageDetectionSample/python/models/model_conversion.sh deleted file mode 100644 index b4875ca3c..000000000 --- a/tutorials/ImageDetectionSample/python/models/model_conversion.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -# Copyright(C) Huawei Technologies Co.,Ltd. 2012-2021 All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# 该脚本用来将pb模型文件转换成.om模型文件 -# This is used to convert pb model file to .om model file. - - -# 设置环境变量(请确认install_path路径是否正确) -# Set environment PATH (Please confirm that the install_path is correct). - -export install_path=/usr/local/Ascend/ascend-toolkit/latest -export PATH=/usr/local/python3.9.2/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATH -export PYTHONPATH=${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg -export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH -export ASCEND_OPP_PATH=${install_path}/opp - - -# 执行,转换YOLOv3模型 -# Execute, transform YOLOv3 model. - -atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310P3 --insert_op_conf=./aipp_yolov3_416_416.aippconfig --input_shape="input:1,416,416,3" --out_nodes="yolov3/yolov3_head/Conv_6/BiasAdd:0;yolov3/yolov3_head/Conv_14/BiasAdd:0;yolov3/yolov3_head/Conv_22/BiasAdd:0" -# 说明:out_nodes制定了输出节点的顺序,需要与模型后处理适配。 \ No newline at end of file -- Gitee From 35426d46bcc1e2bd969a4cfd53e7bb42ad879c30 Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Mon, 10 Feb 2025 20:23:43 +0800 Subject: [PATCH 7/8] readme modify --- .../python/models/coco.names | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tutorials/ImageDetectionSample/python/models/coco.names diff --git a/tutorials/ImageDetectionSample/python/models/coco.names b/tutorials/ImageDetectionSample/python/models/coco.names new file mode 100644 index 000000000..1db41f581 --- /dev/null +++ b/tutorials/ImageDetectionSample/python/models/coco.names @@ -0,0 +1,81 @@ +# This file is originally from https://github.com/pjreddie/darknet/blob/master/data/coco.names +person +bicycle +car +motorbike +aeroplane +bus +train +truck +boat +traffic light +fire hydrant +stop sign +parking meter +bench +bird +cat +dog +horse +sheep +cow +elephant +bear +zebra +giraffe +backpack +umbrella +handbag +tie +suitcase +frisbee +skis +snowboard +sports ball +kite +baseball bat +baseball glove +skateboard +surfboard +tennis racket +bottle +wine glass +cup +fork +knife +spoon +bowl +banana +apple +sandwich +orange +broccoli +carrot +hot dog +pizza +donut +cake +chair +sofa +pottedplant +bed +diningtable +toilet +tvmonitor +laptop +mouse +remote +keyboard +cell phone +microwave +oven +toaster +sink +refrigerator +book +clock +vase +scissors +teddy bear +hair drier +toothbrush -- Gitee From 851f8d7f821dbadf36e345154d6f7dda3f340e0a Mon Sep 17 00:00:00 2001 From: "@j0168" <2359577040@qq.com> Date: Tue, 11 Feb 2025 11:40:52 +0800 Subject: [PATCH 8/8] readme modify --- tutorials/ImageDetectionSample/cpp/main.cpp | 36 +++++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/tutorials/ImageDetectionSample/cpp/main.cpp b/tutorials/ImageDetectionSample/cpp/main.cpp index fc1f55a2e..113264ca5 100644 --- a/tutorials/ImageDetectionSample/cpp/main.cpp +++ b/tutorials/ImageDetectionSample/cpp/main.cpp @@ -15,11 +15,11 @@ */ #include #include +#include #include "opencv2/opencv.hpp" #include "MxBase/Log/Log.h" #include "MxBase/MemoryHelper/MemoryHelper.h" #include "MxStream/StreamManager/MxStreamManager.h" -#include namespace { const uint32_t YUV_BYTES_NU = 3; @@ -49,28 +49,50 @@ static APP_ERROR ReadFile(const std::string& filePath, MxStream::MxstDataInput& return APP_ERR_COMM_OPEN_FAIL; } // 得到文件内容长度 - fseek(fp, 0, SEEK_END); + if (fseek(fp, 0, SEEK_END) != 0) { + LogError << "Failed to fseek."; + if (fclose(fp) != 0) { + LogError << "Failed to fclose."; + } + return APP_ERR_COMM_FAILURE; + } long fileSize = ftell(fp); - fseek(fp, 0, SEEK_SET); + if (fseek(fp, 0, SEEK_SET) != 0) { + LogError << "Failed to fseek."; + if (fclose(fp) != 0) { + LogError << "Failed to fclose."; + } + return APP_ERR_COMM_FAILURE; + } // 若文件内容不为空,把文件内容写入dataBuffer中 if(fileSize > 0){ dataBuffer.dataSize = fileSize; dataBuffer.dataPtr = new (std::nothrow) uint32_t[fileSize]; if(dataBuffer.dataPtr == nullptr){ LogError << "allocate memory with \"new uint32_t\" failed."; - fclose(fp); + if (fclose(fp) != 0) { + LogError << "Failed to fclose."; + } return APP_ERR_COMM_FAILURE; } uint32_t readRet = fread(dataBuffer.dataPtr, 1, fileSize, fp); if(readRet <= 0){ - fclose(fp); + if (fclose(fp) != 0) { + LogError << "Failed to fclose."; + } return APP_ERR_COMM_READ_FAIL; } - fclose(fp); + if (fclose(fp) != 0) { + LogError << "Failed to fclose."; + return APP_ERR_COMM_FAILURE; + } return APP_ERR_OK; } - fclose(fp); + if (fclose(fp) != 0) { + LogError << "Failed to fclose."; + return APP_ERR_COMM_FAILURE; + } return APP_ERR_COMM_FAILURE; } -- Gitee