diff --git a/contrib/FCOS/README.md b/contrib/FCOS/README.md index a8aadca921ba899921a7876abbbc94945c0b2828..9e074273592855e3abff95d9ee0dc1c1f3750232 100644 --- a/contrib/FCOS/README.md +++ b/contrib/FCOS/README.md @@ -11,7 +11,7 @@ ### 1.1支持的产品 -本产品以昇腾310(推理)卡为硬件平台。 +本产品以昇腾310(推理)、310B(推理)卡为硬件平台。 ### 1.2支持的版本 @@ -109,7 +109,7 @@ pip3 install mmdet ## 4 模型转换 -本项目使用的模型是FCOS目标检测模型这个模型是一个无anchor检测器。FCOS直接把预测特征图上的每个位置$(x,y)$当作训练样本,若这个位置在某个ground truth box的内部,则视为正样本,该位置的类别标签$c$对应这个box的类别,反之则视为负样本。这个网络的输出为目标框的左上角坐标、右下角坐标、类别和置信度。本项目的onnx模型可以直接[下载](https://www.hiascend.com/zh/software/modelzoo/models/detail/1/6fcc4747a48245d29351c26cd052dd13)。下载后,里面自带的om模型是可以直接使用的,或者自行使用ATC工具将onnx模型转换成为om模型,模型转换工具的使用说明参考[链接](https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99.md)。 +本项目使用的模型是FCOS目标检测模型这个模型是一个无anchor检测器。FCOS直接把预测特征图上的每个位置$(x,y)$当作训练样本,若这个位置在某个ground truth box的内部,则视为正样本,该位置的类别标签$c$对应这个box的类别,反之则视为负样本。这个网络的输出为目标框的左上角坐标、右下角坐标、类别和置信度。本项目的onnx模型可以直接[下载](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Fcos/ATC%20Fcos.zip)。下载后,里面自带的om模型是可以直接使用的,或者自行使用ATC工具将onnx模型转换成为om模型,模型转换工具的使用说明参考[链接](https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99.md)。 模型转换步骤如下: @@ -117,10 +117,13 @@ pip3 install mmdet 2.进入models文件夹目录下,设置环境变量如下: +``` +. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改 +``` 设置完环境变量之后,就进行模型的转换: -模型转换语句如下: +模型转换语句如下,注意若推理芯片为310B,需将atc-env脚本中模型转换atc命令中的soc_version参数设置为Ascend310B1。 ``` atc --model=fcos.onnx --framework=5 --soc_version=Ascend310 --input_format=NCHW --input_shape="input:1,3,800,1333" --output=fcos_bs1 --precision_mode=allow_fp32_to_fp16 diff --git a/contrib/FireDetection/README.md b/contrib/FireDetection/README.md index eb042cd4098b0bd002b0482b3083eba9858ecd86..adffeb172e5350854762213c3a382464900ecd28 100644 --- a/contrib/FireDetection/README.md +++ b/contrib/FireDetection/README.md @@ -2,7 +2,7 @@ ## 1 介绍 -高速公路车辆火灾识别基于 MindX SDK 开发,在 Ascend 310 芯片上进行目标检测,将检测结果保存成图片。项目主要流程为:通过 live555 服务器进行拉流输入视频,然后进行视频解码将 H.264 格式的视频解码为图片,图片缩放后经过模型推理进行火焰和烟雾检测,识别结果经过后处理后利用 cv 可视化识别框,如果检测到烟雾和火灾进行告警。 +高速公路车辆火灾识别基于 MindX SDK 开发,可在 Ascend 310 及 Ascend 310B 芯片上进行目标检测,将检测结果保存成图片。项目主要流程为:通过 live555 服务器进行拉流输入视频,然后进行视频解码将 H.264 格式的视频解码为图片,图片缩放后经过模型推理进行火焰和烟雾检测,识别结果经过后处理后利用 cv 可视化识别框,如果检测到烟雾和火灾进行告警。 ### 1.1 支持的产品 @@ -110,7 +110,7 @@ export PYTHONPATH="${MX_SDK_HOME}/python:${PYTHONPATH}" 运行结果:生成`best_s_t.onnx`文件。 -- **步骤5** 将`best_s_t.onnx`文件重命名为`firedetection.onnx`,然后运行当前目录`FireDetection\model`下的`model_conver.sh` +- **步骤5** 将`best_s_t.onnx`文件重命名为`firedetection.onnx`,然后运行当前目录`FireDetection\model`下的`model_conver.sh`。注意若推理芯片为310B,需将atc-env脚本中模型转换atc命令中的soc_version参数设置为Ascend310B1。 ```bash bash model_conver.sh diff --git a/contrib/FireDetection/model/model_conver.sh b/contrib/FireDetection/model/model_conver.sh index 9700b8ba73d8bd0d6362627a3a321e02d644c113..b15ec6c48175cdb6a5da5a7f22ef0a923cc6bf75 100644 --- a/contrib/FireDetection/model/model_conver.sh +++ b/contrib/FireDetection/model/model_conver.sh @@ -13,11 +13,7 @@ # limitations under the License. # set ATC environment variate -export install_path=/usr/local/Ascend/ascend-toolkit/latest -export PATH=/usr/local/python3.9.2/bin:${install_path}/arm64-linux/atc/ccec_compiler/bin:${install_path}/arm64-linux/atc/bin:$PATH -export PYTHONPATH=${install_path}/arm64-linux/atc/python/site-packages:${install_path}/arm64-linux/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/arm64-linux/atc/python/site-packages/schedule_search.egg -export LD_LIBRARY_PATH=${install_path}/arm64-linux/atc/lib64:$LD_LIBRARY_PATH -export ASCEND_OPP_PATH=${install_path}/opp +. /usr/local/Ascend/ascend-toolkit/set_env.sh # The path where Ascend-cann-toolkit is located # atc transform model atc \ diff --git a/contrib/HelmetIdentification/Models/atc-env.sh b/contrib/HelmetIdentification/Models/atc-env.sh index 2afbfa4dc6a21a4515ef803776c435316ccf5477..fa4c4c2608cb6c728d9ebf10462238f7286a2df5 100644 --- a/contrib/HelmetIdentification/Models/atc-env.sh +++ b/contrib/HelmetIdentification/Models/atc-env.sh @@ -1,11 +1,7 @@ #!/bin/bash # This is used to convert onnx model file to .om model file. -export install_path=/usr/local/Ascend/ascend-toolkit/latest -export PATH=/usr/local/python3.9.2/bin:${install_path}/arm64-linux/atc/ccec_compiler/bin:${install_path}/arm64-linux/atc/bin:$PATH -export PYTHONPATH=${install_path}/arm64-linux/atc/python/site-packages:${install_path}/arm64-linux/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/arm64-linux/atc/python/site-packages/schedule_search.egg -export LD_LIBRARY_PATH=${install_path}/arm64-linux/atc/lib64:$LD_LIBRARY_PATH -export ASCEND_OPP_PATH=${install_path}/opp +. /usr/local/Ascend/ascend-toolkit/set_env.sh # The path where Ascend-cann-toolkit is located export Home="./path/" # Home is set to the path where the model is located diff --git a/contrib/HelmetIdentification/Models/main-env.sh b/contrib/HelmetIdentification/Models/main-env.sh deleted file mode 100644 index 7cbd319a45445f723be7484a15c5ab38537a2257..0000000000000000000000000000000000000000 --- a/contrib/HelmetIdentification/Models/main-env.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -export MX_SDK_HOME=${MX_SDK_HOME} -export install_path=/usr/local/Ascend/ascend-toolkit/latest -export PATH=/usr/local/python3.9.2/bin:/usr/local/ffmpeg/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -export PYTHONPATH=/usr/local/python3.9.2/bin:${MX_SDK_HOME}/python -export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${install_path}/acllib/lib64:/usr/local/Ascend/driver/lib64:${MX_SDK_HOME}/include:${MX_SDK_HOME}/python - -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 ASCEND_OPP_PATH=${install_path}/opp -export GST_DEBUG=3 - -# ${MX_SDK_HOME}为远程SDK安装路径 \ No newline at end of file diff --git a/contrib/HelmetIdentification/README.md b/contrib/HelmetIdentification/README.md index 61f6b0eb482c5927a1283c966b5cb0c56c58b5c4..40bbe0e2535bf5df0529d74f1e9501e8ef49c683 100644 --- a/contrib/HelmetIdentification/README.md +++ b/contrib/HelmetIdentification/README.md @@ -6,7 +6,7 @@ ### 1.1 支持的产品 -昇腾310(推理) +昇腾310(推理)、昇腾310B(推理) ### 1.2 支持的版本 @@ -29,7 +29,6 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git ├──Helmet_yolov5.cfg #后处理配置文件 ├──HelmetDetection.pipline # 安全帽识别推理流程pipline ├──imgclass.names # 模型所有可识别类 - ├──main-env.sh # 环境变量设置脚本 ├──main.py # 推理运行程序 ├──modify_yolov5s_slice.py #slice算子修改脚本 ├──dy_resize.py # resize算子修改 @@ -38,7 +37,7 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git ├──MxpiSelectedFrame # 跳帧插件 ├── Test ├──performance_test_main.py # 性能测试脚本 - ├──select.py # 测试集筛选脚本 + ├──test_select.py # 测试集筛选脚本 ├──parse_voc.py # 测试数据集解析脚本 ├──testmain.py # 测试主程序 ├──map_calculate.py # 精度计算程序 @@ -66,29 +65,12 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git -在运行脚本main.py前(2.2章节),需要通过环境配置脚本main-env.sh设置环境变量,运行命令: +在运行脚本main.py前(2.2章节),需要执行如下两个环境配置脚本设置环境变量,运行命令: ```shell -source main-env.sh +. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改 +. ${MX_SDK_HOME}/mxVision/set_env.sh # ${MX_SDK_HOME}替换为用户的SDK安装路径 ``` -- 环境变量介绍 - -```bash -export MX_SDK_HOME=${MX_SDK_HOME} -export install_path=/usr/local/Ascend/ascend-toolkit/latest -export PATH=/usr/local/python3.9.2/bin:${install_path}/arm64-linux/atc/ccec_compiler/bin:${install_path}/arm64-linux/atc/bin:${install_path}/atc/bin -export PYTHONPATH=/usr/local/python3.9.2/bin:${MX_SDK_HOME}/python -export ${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${install_path}/acllib/lib64:/usr/local/Ascend/driver/lib64:${MX_SDK_HOME}/include:${MX_SDK_HOME}/python - -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 ASCEND_OPP_PATH=${install_path}/opp -export GST_DEBUG=3 -``` - -注:其中SDK安装路径${MX_SDK_HOME}替换为用户的SDK安装路径;install_path替换为开发套件包所在路径。LD_LIBRARY_PATH用以加载开发套件包中llib库。GST_DEBUG用以mxpi_rtspsrc取流地址配置不正确时出现warning日志提示。 - - ## 3.推理 @@ -141,13 +123,13 @@ python3 modify_yolov5s_slice.py YOLOv5_s.onnx 可以得到修改好后的YOLOv5_s.onnx模型 -3. 最后运行atc-env脚本将onnx转为om模型,运行命令如下: +3. 最后运行atc-env脚本将onnx转为om模型,运行命令如下。注意若推理芯片为310B,需将atc-env脚本中模型转换atc命令中的soc_version参数设置为Ascend310B1。 ```shell sh atc-env.sh ``` -提示 **ATC run success** 说明转换成功 +提示 **ATC run success** 说明转换成功。 脚本中包含atc命令: @@ -316,13 +298,13 @@ python3 performance_test_main.py ├── JPEGImages # 数据集原图片 ``` -注:将数据集中的三个文件放置于项目的根目录Test文件下,与**select.py**同目录。 +注:将数据集中的三个文件放置于项目的根目录Test文件下,与**test_select.py**同目录。 ###### 3.2.2测试数据集筛选 -依据数据集中ImageSets文件夹中test.txt文件,从原始数据集中筛选出测试数据集,该程序**select.py**放在源码根目录Test中,在同目录下创建文件夹TestImages用来存储筛选的数据。在该目录下运行命令: +依据数据集中ImageSets文件夹中test.txt文件,从原始数据集中筛选出测试数据集,该程序**test_select.py**放在源码根目录Test中,在同目录下创建文件夹TestImages用来存储筛选的数据。在该目录下运行命令: ```shell -python3.9.2 select.py +python3.9.2 test_select.py ``` 程序运行后在根目录Test中会存放筛选出的测试集图片共1517张。 diff --git a/contrib/HelmetIdentification/Test/select.py b/contrib/HelmetIdentification/Test/select.py deleted file mode 100644 index d74aa03269b163f12437cec6ba8fa7480da8d064..0000000000000000000000000000000000000000 --- a/contrib/HelmetIdentification/Test/select.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2021 Huawei Technologies Co., Ltd -# 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. - -import os -import shutil -import cv2 - -with open("ImageSets/Main/test.txt", "r") as f: - data = f.readlines() - text_data = [] - for line in data: - line_new = line.strip('\n') # Remove the newline character of each element in the list - text_data.append(line_new) - print(text_data) - -path = 'JPEGImages' -save_path = 'TestImages' - -for item in os.listdir(path): - file_name = item.split('.')[0] - if file_name in text_data: - img = cv2.imread(path + '/' + item) - cv2.imwrite(save_path + '/' + file_name + ".jpg", img) \ No newline at end of file diff --git a/contrib/OpenCVPlugin/README.md b/contrib/OpenCVPlugin/README.md index ec45cc3894d8da456618587f32bab03bb61526a0..1959196526f09962110cdcd14a50ea411a42fdab 100644 --- a/contrib/OpenCVPlugin/README.md +++ b/contrib/OpenCVPlugin/README.md @@ -12,7 +12,7 @@ ### 1.1 支持的产品 -本项目以昇腾Atlas310卡为主要的硬件平台。 +本项目以昇腾Atlas310、Atlas310B卡为主要的硬件平台。 ### 1.2 支持的版本 diff --git a/contrib/facemaskdetection/README.md b/contrib/facemaskdetection/README.md index bb9f1ade71205720104f247f9a34ffd0d6928338..535924b7ac3021f9036e0cc9ae5d714151c56e6f 100644 --- a/contrib/facemaskdetection/README.md +++ b/contrib/facemaskdetection/README.md @@ -5,7 +5,7 @@ ### 1.1 支持的产品 -本项目以昇腾Atlas310卡为主要的硬件平台。 +本项目以昇腾Atlas310、Atlas310B卡为主要的硬件平台。 ### 1.2 支持的版本 @@ -54,25 +54,13 @@ CANN版本为5.0.4。 | opencv-python | 4.5.2.54 | 用于识别结果画框 | python3 -m pip install opencv-python | -在编译运行项目前,需要设置环境变量: +在编译运行项目前,需要执行如下两个环境配置脚本设置环境变量: -- 环境变量介绍 - -``` -export MX_SDK_HOME=${MX_SDK_HOME} -export install_path=/usr/local/Ascend/ascend-toolkit/latest -export PATH=/usr/local/python3.9.2/bin:${install_path}/arm64-linux/atc/ccec_compiler/bin:${install_path}/arm64-linux/atc/bin:${install_path}/atc/bin:$PATH -export PYTHONPATH=/usr/local/python3.9.2/bin:${MX_SDK_HOME}/python -export ${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${install_path}/acllib/lib64:/usr/local/Ascend/driver/lib64:${MX_SDK_HOME}/include:${MX_SDK_HOME}/python - -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 ASCEND_OPP_PATH=${install_path}/opp -export GST_DEBUG=3 +```shell +. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改 +. ${MX_SDK_HOME}/mxVision/set_env.sh # ${MX_SDK_HOME}替换为用户的SDK安装路径 ``` - - ## 依赖下载 所用模型与软件依赖如下表所示。 @@ -92,21 +80,13 @@ export GST_DEBUG=3 pb文件转换为om文件 -1. 设置环境变量: +1. 执行如下脚本设置环境变量: ``` -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 +. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改 ``` -2. 运行atc工具将pb模型文件转为om模型,运行命令如下: +2. 运行atc工具将pb模型文件转为om模型,运行命令如下。注意若推理芯片为310B,需将atc-env脚本中模型转换atc命令中的soc_version参数设置为Ascend310B1。 ``` atc --model=./face_mask_detection.pb --framework=3 --output=./aipp --output_type=FP32 --soc_version=Ascend310 --input_shape="data_1:1,260,260,3" --input_format=NHWC --insert_op_conf=./face_mask.aippconfig diff --git a/contrib/facemaskdetection/model_conversion.sh b/contrib/facemaskdetection/model_conversion.sh index 0ef69f34553ab0ae15e80d262b5a213f4f674d32..b2f24f98810753632361b3f0c2df524a4374d2e6 100644 --- a/contrib/facemaskdetection/model_conversion.sh +++ b/contrib/facemaskdetection/model_conversion.sh @@ -22,16 +22,7 @@ # 设置环境变量(请确认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 - +. /usr/local/Ascend/ascend-toolkit/set_env.sh # The path where Ascend-cann-toolkit is located atc --model=./face_mask_detection.pb --framework=3 --output=./aipp --output_type=FP32 --soc_version=Ascend310 --input_shape="data_1:1,260,260,3" --input_format=NHWC --insert_op_conf=./face_mask.aippconfig \ No newline at end of file