diff --git a/contrib/BertTextClassification/README.md b/contrib/BertTextClassification/README.md
index 877a73156f86373e20ddcfb721cf0aef28518242..23a88a785adebb232e44aa4021ef2117f02a9ff8 100644
--- a/contrib/BertTextClassification/README.md
+++ b/contrib/BertTextClassification/README.md
@@ -11,8 +11,10 @@
### 1.2 支持的版本
-支持的SDK版本为2.0.4。
-支持的CANN版本为5.0.4。
+| 软件名称 | 版本 |
+| -------- | ------ |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -38,28 +40,6 @@
│ build.sh
│ README.md
│ tree.txt
-│
-├─mxBase
-│ │ build.sh
-│ │ CMakeLists.txt
-│ │ main.cpp
-│ │
-│ ├─BertClassification
-│ │ BertClassification.cpp
-│ │ BertClassification.h
-│ │
-│ ├─data
-│ │ vocab.txt
-│ │
-│ ├─model
-│ │ bert_text_classification_labels.names
-│ │
-│ ├─out
-│ │ prediction_label.txt
-│ │
-│ └─test
-│ Test.cpp
-│ Test.h
│
└─sdk
│ build.sh
@@ -103,7 +83,6 @@
| 软件名称 | 版本 |
| -------- | ------ |
| cmake | 3.10.2 |
-| mxVision | 2.0.4 |
| python | 3.9.2 |
确保环境中正确安装mxVision SDK。
@@ -111,25 +90,14 @@
在编译运行项目前,需要设置环境变量:
```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-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 PYTHONPATH=${MX_SDK_HOME}/python:${PYTHONPATH}
-
-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 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 #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
- 环境变量介绍
```
-MX_SDK_HOME:MindX SDK mxVision的根安装路径,用于包含MindX SDK提供的所有库和头文件。
-LD_LIBRARY_PATH:提供了MindX SDK已开发的插件和相关的库信息。
-install_path:ascend-toolkit的安装路径。
-PATH:添加python的执行路径和atc转换工具的执行路径。
-LD_LIBRARY_PATH:添加ascend-toolkit和MindX SDK提供的库目录路径。
-ASCEND_OPP_PATH:atc转换工具需要的目录。
+SDK_INSTALL_PATH:MindX SDK mxVision的根安装路径,用于包含MindX SDK提供的所有库和头文件。
```
## 3 模型转换
@@ -141,13 +109,13 @@ ASCEND_OPP_PATH:atc转换工具需要的目录。
cd $HOME/models/bert_text_classification
-atc --model=bert_text_classification.pb --framework=3 --input_format="ND" --output=bert_text_classification --input_shape="input_1:1,300;input_2:1,300" --out_nodes=dense_1/Softmax:0 --soc_version=Ascend310 --op_select_implmode="high_precision"
+atc --model=bert_text_classification.pb --framework=3 --input_format="ND" --output=bert_text_classification --input_shape="input_1:1,300;input_2:1,300" --out_nodes=dense_1/Softmax:0 --soc_version=Ascend310B1 --op_select_implmode="high_precision"
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
**步骤3** 执行以下命令将转换好的模型复制到项目中model文件夹中:
```
cp ./bert_text_classification.om $HOME/sdk/model/
-cp ./bert_text_classification.om $HOME/mxBase/model/
```
**步骤4** 执行成功后终端输出为:
@@ -168,9 +136,6 @@ ATC run success, welcome to the next use.
**步骤4** 将本项目代码的文件路径中出现的 ${SDK目录} 替换成自己SDK的存放目录,下面是需要替换的代码。
```
-mxBase目录下的CMakeList.txt中的第13行代码:
-set(MX_SDK_HOME ${SDK目录})
-
sdk/pipeline目录下BertTextClassification.pipeline文件中的第26行:
"postProcessLibPath": "${SDK目录}/lib/modelpostprocessors/libresnet50postprocess.so"
```
@@ -183,22 +148,6 @@ python3 main.py
命令执行成功后在out目录下生成分类结果文件 prediction_label.txt,查看结果文件验证分类结果。
-**步骤6** mxBase项目在mxBase目录中,执行以下代码进行编译。
-
-```
-mkdir build
-cd build
-cmake ..
-make
-```
-
-编译完成后,将可执行文件 mxBase_text_classification 移动到mxBase目录下,执行下面代码运行
-
-```
-./mxBase_text_classification ./data/sample.txt
-```
-
-执行成功后在服务器的mxBase/out目录下生成分类结果文件 prediction_label.txt,查看结果文件验证分类结果。
## 5 精度测试
@@ -212,11 +161,5 @@ make
python3 test.py
```
-**步骤4** mxBase项目中,将mxBase目录下main.cpp中main方法的全部代码注释,替换为下面代码后执行(即main函数中仅包含以下代码),得到mxBase的精度测试结果。
-
-```
-Test::test_accuracy();
-```
-
## 6 其他问题
1.本项目的设计为限制输入样例为txt文件,其他文件如图片、音频输入则会报错。
\ No newline at end of file
diff --git a/contrib/BertTextClassification/mxBase/BertClassification/BertClassification.cpp b/contrib/BertTextClassification/mxBase/BertClassification/BertClassification.cpp
deleted file mode 100644
index 2e4671c6c635cf342df823e30b8675b24d0f63e6..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/BertClassification/BertClassification.cpp
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright(C) 2021. Huawei Technologies Co.,Ltd. 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.
- */
-
-#include "BertClassification.h"
-#include "MxBase/DeviceManager/DeviceManager.h"
-#include
-#include
-
-namespace {
- const float TEXT_START_CODE = 101.0;
- const float TEXT_END_CODE = 102.0;
- const float TEXT_NOT_FOUND_CODE = 100.0;
- const int FLOAT32_BYTES = 4;
-}
-
-// Initialize the dictionary of character encoding.
-APP_ERROR BertClassification::InitTokenMap(const std::string &vocabTextPath, std::map &tokenMap) {
- const std::string text;
- std::ifstream infile;
- // Open label file.
- infile.open(vocabTextPath, std::ios_base::in);
- if(!infile.is_open ()) {
- std::cout << "Open " << vocabTextPath << " file failure!" << std::endl;
- return APP_ERR_COMM_OPEN_FAIL;
- }
-
- std::string s;
- int count = 0;
- while (std::getline(infile, s)) {
- tokenMap.insert(std::pair(s, count));
- count++;
- }
- infile.close();
- return APP_ERR_OK;
-}
-
-// Load the label file.
-APP_ERROR BertClassification::LoadLabels(const std::string &labelPath, std::map &labelMap) {
- std::ifstream infile;
- // Open label file.
- infile.open(labelPath, std::ios_base::in);
- std::string s;
- // Check label file validity.
- if (infile.fail()) {
- LogError << "Failed to open label file: " << labelPath << ".";
- return APP_ERR_COMM_OPEN_FAIL;
- }
- labelMap.clear();
- // Construct label map.
- int count = 0;
- while (std::getline(infile, s)) {
- size_t eraseIndex = s.find_last_not_of("\r\n\t");
- if (eraseIndex != std::string::npos) {
- s.erase(eraseIndex + 1, s.size() - eraseIndex);
- }
- labelMap.insert(std::pair(count, s));
- count++;
- }
- infile.close();
- return APP_ERR_OK;
-}
-
-APP_ERROR BertClassification::Init(const InitParam &initParam) {
- deviceId_ = initParam.deviceId;
- maxLength_ = initParam.maxLength;
- labelNumber_ = initParam.labelNumber;
- APP_ERROR ret = MxBase::DeviceManager::GetInstance()->InitDevices();
- if (ret != APP_ERR_OK) {
- LogError << "Init devices failed, ret=" << ret << ".";
- return ret;
- }
- ret = MxBase::TensorContext::GetInstance()->SetContext(initParam.deviceId);
- if (ret != APP_ERR_OK) {
- LogError << "Set context failed, ret=" << ret << ".";
- return ret;
- }
- // Load TokenMap.
- ret = InitTokenMap(initParam.vocabTextPath, tokenMap_);
- if (ret != APP_ERR_OK) {
- LogError << "Failed to load tokenMap, ret=" << ret << ".";
- return ret;
- }
- model_ = std::make_shared();
- ret = model_->Init(initParam.modelPath, modelDesc_);
- if (ret != APP_ERR_OK) {
- LogError << "ModelInferenceProcessor init failed, ret=" << ret << ".";
- return ret;
- }
-
- // Load labels from file.
- ret = LoadLabels(initParam.labelPath, labelMap_);
- if (ret != APP_ERR_OK) {
- LogError << "Failed to load labels, ret=" << ret << ".";
- return ret;
- }
- return APP_ERR_OK;
-}
-
-APP_ERROR BertClassification::DeInit() {
- model_->DeInit();
- MxBase::DeviceManager::GetInstance()->DestroyDevices();
- return APP_ERR_OK;
-}
-
-std::vector split_chinese(std::string s) {
- std::vector words;
- for (size_t i = 0; i < s.length();) {
- int cplen = 1;
- // The following if-statements are referred to https://en.wikipedia.org/wiki/UTF-8#Description.
- if ((s[i] & 0xf8) == 0xf0)
- cplen = 4;
- else if ((s[i] & 0xf0) == 0xe0)
- cplen = 3;
- else if ((s[i] & 0xe0) == 0xc0)
- cplen = 2;
- if ((i + cplen) > s.length())
- cplen = 1;
- words.push_back(s.substr(i, cplen));
- i += cplen;
- }
- return words;
-}
-
-APP_ERROR BertClassification::TextToTensor(const std::string &text, std::vector &inputs) {
- MxBase::TensorBase tensor1, tensor2;
- std::vector shape = {1, maxLength_};
- std::map::iterator iter;
- uint32_t i, value, size, end_index;
- std::vector words = split_chinese(text);
-
- float* tensor1Data = new float [maxLength_];
- // Init data.
- for (i = 0;i < maxLength_; i++) {
- tensor1Data[i] = 0.0;
- }
-
- size = words.size();
- if (size > maxLength_) {
- // Remove start and end characters, length is 2.
- size = maxLength_ - 2;
- end_index = maxLength_ - 1;
- } else {
- end_index = size - 1;
- }
-
- tensor1Data[0] = TEXT_START_CODE;
- // Text decode.
- for (i = 0;i < size; i++) {
- iter = tokenMap_.find(words[i]);
- if (iter != tokenMap_.end()) {
- value = iter->second;
- tensor1Data[i+1] = float(value);
- } else {
- tensor1Data[i+1] = TEXT_NOT_FOUND_CODE;
- }
- }
- tensor1Data[end_index] = TEXT_END_CODE;
-
- MxBase::MemoryData memoryData1((void*)tensor1Data, maxLength_ * FLOAT32_BYTES,
- MxBase::MemoryData::MemoryType::MEMORY_HOST_NEW, deviceId_);
- MxBase::MemoryData deviceData1(maxLength_ * FLOAT32_BYTES,MxBase::MemoryData::MEMORY_DEVICE, deviceId_);
- // Move data from Host to Device.
- APP_ERROR ret = MxBase::MemoryHelper::MxbsMallocAndCopy(deviceData1, memoryData1);
- if (ret != APP_ERR_OK) {
- LogError << "Failed to MxbsMallocAndCopy";
- return ret;
- }
- tensor1 = MxBase::TensorBase(deviceData1, false, shape, MxBase::TENSOR_DTYPE_FLOAT32);
- inputs.push_back(tensor1);
-
- // Init second tensor.
- float* tensor2Data = new float [maxLength_];
- for (i = 0;i < maxLength_; i++) {
- tensor2Data[i] = 0.0;
- }
- MxBase::MemoryData memoryData2((void*)tensor2Data, maxLength_ * FLOAT32_BYTES,
- MxBase::MemoryData::MemoryType::MEMORY_HOST_NEW, deviceId_);
- MxBase::MemoryData deviceData2(maxLength_ * FLOAT32_BYTES,MxBase::MemoryData::MEMORY_DEVICE, deviceId_);
- ret = MxBase::MemoryHelper::MxbsMallocAndCopy(deviceData2, memoryData2);
- if (ret != APP_ERR_OK) {
- LogError << "Failed to MxbsMallocAndCopy";
- return ret;
- }
- tensor2 = MxBase::TensorBase(deviceData2, false, shape, MxBase::TENSOR_DTYPE_FLOAT32);
- inputs.push_back(tensor2);
- // Release memory.
- delete[] tensor1Data;
- delete[] tensor2Data;
- return APP_ERR_OK;
-}
-
-APP_ERROR BertClassification::Inference(const std::vector &inputs,
- std::vector &outputs) {
- auto dtypes = model_->GetOutputDataType();
- std::vector shape = {1, labelNumber_};
-
- MxBase::TensorBase tensor(shape, dtypes[0], MxBase::MemoryData::MemoryType::MEMORY_DEVICE,
- deviceId_);
- APP_ERROR ret = MxBase::TensorBase::TensorBaseMalloc(tensor);
- if (ret != APP_ERR_OK) {
- LogError << "TensorBaseMalloc failed, ret=" << ret << ".";
- return ret;
- }
- // Put tensor into outputs.
- outputs.push_back(tensor);
-
- MxBase::DynamicInfo dynamicInfo = {};
- // Set type STATIC_BATCH
- dynamicInfo.dynamicType = MxBase::DynamicType::STATIC_BATCH;
- ret = model_->ModelInference(inputs, outputs, dynamicInfo);
-
- if (ret != APP_ERR_OK) {
- LogError << "ModelInference failed, ret=" << ret << ".";
- return ret;
- }
- return APP_ERR_OK;
-}
-
-APP_ERROR BertClassification::PostProcess(const std::vector &outputs, std::string &label) {
- uint32_t i;
- uint32_t maxIndex = 0;
- float maxValue = 0;
- MxBase::TensorBase outTensor = outputs[0];
- outTensor.ToHost();
- // Inference result is tensor(1*5).
- float* inferResult = (float *)outTensor.GetBuffer();
- // Find the category with the highest probability.
- for (i = 0;i < labelNumber_;i++) {
- if (inferResult[i] > maxValue) {
- maxValue = inferResult[i];
- maxIndex = i;
- }
- }
- // Get label.
- label = labelMap_.at(maxIndex);
- return APP_ERR_OK;
-}
-
-APP_ERROR BertClassification::WriteResult(std::string &label) {
- std::ofstream ofs;
- ofs.open("out/prediction_label.txt", std::ios::out);
- ofs << label;
- ofs.close();
- return APP_ERR_OK;
-}
-
-APP_ERROR BertClassification::Process(const std::string &text, std::string &label) {
- std::vector inputs = {};
- std::vector outputs = {};
- // Convert text to tensor.
- APP_ERROR ret = TextToTensor(text, inputs);
- if (ret != APP_ERR_OK) {
- LogError << "ReadText failed, ret=" << ret << ".";
- return ret;
- }
-
- ret = Inference(inputs, outputs);
- if (ret != APP_ERR_OK) {
- LogError << "Inference failed, ret=" << ret << ".";
- return ret;
- }
-
- // Get classification results.
- ret = PostProcess(outputs, label);
- if (ret != APP_ERR_OK) {
- LogError << "PostProcess failed, ret=" << ret << ".";
- return ret;
- }
-
- // Write results to file.
- ret = WriteResult(label);
- if (ret != APP_ERR_OK) {
- LogError << "Save result failed, ret=" << ret << ".";
- return ret;
- }
- return APP_ERR_OK;
-}
diff --git a/contrib/BertTextClassification/mxBase/BertClassification/BertClassification.h b/contrib/BertTextClassification/mxBase/BertClassification/BertClassification.h
deleted file mode 100644
index e1fa8df71e7964bf9ead8d3c9ca4deaeda8ee83e..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/BertClassification/BertClassification.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef MXBASE_TEXT_CLASSIFICATION_BERTCLASSIFICATION_H
-#define MXBASE_TEXT_CLASSIFICATION_BERTCLASSIFICATION_H
-
-#include "MxBase/ModelInfer/ModelInferenceProcessor.h"
-#include "MxBase/Tensor/TensorContext/TensorContext.h"
-
-struct InitParam {
- uint32_t deviceId;
- std::string labelPath;
- std::string modelPath;
- std::string vocabTextPath;
- uint32_t maxLength;
- uint32_t labelNumber;
-};
-
-class BertClassification {
-public:
- APP_ERROR InitTokenMap(const std::string &vocabTextPath, std::map &tokenMap);
- APP_ERROR LoadLabels(const std::string &labelPath, std::map &labelMap);
- APP_ERROR Init(const InitParam &initParam);
- APP_ERROR DeInit();
- APP_ERROR Inference(const std::vector &inputs, std::vector &outputs);
- APP_ERROR PostProcess(const std::vector &outputs, std::string &label);
- APP_ERROR Process(const std::string &textPath, std::string &label);
- APP_ERROR TextToTensor(const std::string &text, std::vector &inputs);
- APP_ERROR WriteResult(std::string &label);
-private:
- std::shared_ptr model_;
- MxBase::ModelDesc modelDesc_ = {};
- std::map labelMap_ = {};
- std::map tokenMap_ = {};
- uint32_t deviceId_ = 0;
- // Maximum length of input sentence.
- uint32_t maxLength_ = 300;
- // Number of tags for inference results.
- uint32_t labelNumber_ = 5;
-};
-
-
-#endif // MXBASE_TEXT_CLASSIFICATION_BERTCLASSIFICATION_H
diff --git a/contrib/BertTextClassification/mxBase/CMakeLists.txt b/contrib/BertTextClassification/mxBase/CMakeLists.txt
deleted file mode 100644
index 44d276ad6697edd6fe7ba6d128699541d1b4b408..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-cmake_minimum_required(VERSION 3.10)
-project(mxBase_text_classification)
-
-set(CMAKE_CXX_STANDARD 14)
-include_directories(./BertClassification)
-file(GLOB_RECURSE BertClassification ${PROJECT_SOURCE_DIR}/BertClassification/*cpp)
-include_directories(./test)
-file(GLOB_RECURSE Test ${PROJECT_SOURCE_DIR}/test/*cpp)
-set(TARGET mxBase_text_classification)
-add_compile_options(-std=c++11 -fPIE -fstack-protector-all -fPIC -Wl,-z,relro,-z,now,-z,noexecstack -s -pie -Wall)
-add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0 -Dgoogle=mindxsdk_private)
-
-set(MX_SDK_HOME ${SDK目录})
-include_directories(
- ${MX_SDK_HOME}/include
- ${MX_SDK_HOME}/opensource/include
- ${MX_SDK_HOME}/opensource/include/opencv4
-)
-
-link_directories(
- ${MX_SDK_HOME}/lib
- ${MX_SDK_HOME}/opensource/lib
- ${MX_SDK_HOME}/lib/modelpostprocessors
- /usr/local/Ascend/ascend-toolkit/latest/acllib/lib64
- /usr/local/Ascend/driver/lib64/
-)
-
-add_executable(mxBase_text_classification main.cpp ${BertClassification} ${Test})
-
-target_link_libraries(mxBase_text_classification
- glog
- mxbase
- cpprest
- opencv_world
- )
\ No newline at end of file
diff --git a/contrib/BertTextClassification/mxBase/build.sh b/contrib/BertTextClassification/mxBase/build.sh
deleted file mode 100644
index 1fc7c0e4e881adec6c3bbafd5663354c8ba12059..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/build.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-
-# Copyright(C) 2021. Huawei Technologies Co.,Ltd. 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.
-
-path_cur="$(dirname "$0")"
-
-function check_env()
-{
- # set ASCEND_VERSION to ascend-toolkit/latest when it was not specified by user
- if [ ! "${ASCEND_VERSION}" ]; then
- export ASCEND_VERSION=ascend-toolkit/latest
- echo "Set ASCEND_VERSION to the default value: ${ASCEND_VERSION}"
- else
- echo "ASCEND_VERSION is set to ${ASCEND_VERSION} by user"
- fi
-
- if [ ! "${ARCH_PATTERN}" ]; then
- # set ARCH_PATTERN to ./ when it was not specified by user
- export ARCH_PATTERN=./
- echo "ARCH_PATTERN is set to the default value: ${ARCH_PATTERN}"
- else
- echo "ARCH_PATTERN is set to ${ARCH_PATTERN} by user"
- fi
-}
-
-function build_bert_text_classification()
-{
- cd "$path_cur" || exit
- rm -rf build
- mkdir -p build
- cd build || exit
- cmake ..
- make
- ret=$?
- if [ ${ret} -ne 0 ]; then
- echo "Failed to build mxBase_text_classification."
- exit ${ret}
- fi
-}
-
-check_env
-build_bert_text_classification
\ No newline at end of file
diff --git a/contrib/BertTextClassification/mxBase/data/vocab.txt b/contrib/BertTextClassification/mxBase/data/vocab.txt
deleted file mode 100644
index ca4f9781030019ab9b253c6dcb8c7878b6dc87a5..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/data/vocab.txt
+++ /dev/null
@@ -1,21128 +0,0 @@
-[PAD]
-[unused1]
-[unused2]
-[unused3]
-[unused4]
-[unused5]
-[unused6]
-[unused7]
-[unused8]
-[unused9]
-[unused10]
-[unused11]
-[unused12]
-[unused13]
-[unused14]
-[unused15]
-[unused16]
-[unused17]
-[unused18]
-[unused19]
-[unused20]
-[unused21]
-[unused22]
-[unused23]
-[unused24]
-[unused25]
-[unused26]
-[unused27]
-[unused28]
-[unused29]
-[unused30]
-[unused31]
-[unused32]
-[unused33]
-[unused34]
-[unused35]
-[unused36]
-[unused37]
-[unused38]
-[unused39]
-[unused40]
-[unused41]
-[unused42]
-[unused43]
-[unused44]
-[unused45]
-[unused46]
-[unused47]
-[unused48]
-[unused49]
-[unused50]
-[unused51]
-[unused52]
-[unused53]
-[unused54]
-[unused55]
-[unused56]
-[unused57]
-[unused58]
-[unused59]
-[unused60]
-[unused61]
-[unused62]
-[unused63]
-[unused64]
-[unused65]
-[unused66]
-[unused67]
-[unused68]
-[unused69]
-[unused70]
-[unused71]
-[unused72]
-[unused73]
-[unused74]
-[unused75]
-[unused76]
-[unused77]
-[unused78]
-[unused79]
-[unused80]
-[unused81]
-[unused82]
-[unused83]
-[unused84]
-[unused85]
-[unused86]
-[unused87]
-[unused88]
-[unused89]
-[unused90]
-[unused91]
-[unused92]
-[unused93]
-[unused94]
-[unused95]
-[unused96]
-[unused97]
-[unused98]
-[unused99]
-[UNK]
-[CLS]
-[SEP]
-[MASK]
-
-
-!
-"
-#
-$
-%
-&
-'
-(
-)
-*
-+
-,
--
-.
-/
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-:
-;
-<
-=
->
-?
-@
-[
-\
-]
-^
-_
-a
-b
-c
-d
-e
-f
-g
-h
-i
-j
-k
-l
-m
-n
-o
-p
-q
-r
-s
-t
-u
-v
-w
-x
-y
-z
-{
-|
-}
-~
-£
-¤
-¥
-§
-©
-«
-®
-°
-±
-²
-³
-µ
-·
-¹
-º
-»
-¼
-×
-ß
-æ
-÷
-ø
-đ
-ŋ
-ɔ
-ə
-ɡ
-ʰ
-ˇ
-ˈ
-ˊ
-ˋ
-ˍ
-ː
-˙
-˚
-ˢ
-α
-β
-γ
-δ
-ε
-η
-θ
-ι
-κ
-λ
-μ
-ν
-ο
-π
-ρ
-ς
-σ
-τ
-υ
-φ
-χ
-ψ
-ω
-а
-б
-в
-г
-д
-е
-ж
-з
-и
-к
-л
-м
-н
-о
-п
-р
-с
-т
-у
-ф
-х
-ц
-ч
-ш
-ы
-ь
-я
-і
-ا
-ب
-ة
-ت
-د
-ر
-س
-ع
-ل
-م
-ن
-ه
-و
-ي
-۩
-ก
-ง
-น
-ม
-ย
-ร
-อ
-า
-เ
-๑
-་
-ღ
-ᄀ
-ᄁ
-ᄂ
-ᄃ
-ᄅ
-ᄆ
-ᄇ
-ᄈ
-ᄉ
-ᄋ
-ᄌ
-ᄎ
-ᄏ
-ᄐ
-ᄑ
-ᄒ
-ᅡ
-ᅢ
-ᅣ
-ᅥ
-ᅦ
-ᅧ
-ᅨ
-ᅩ
-ᅪ
-ᅬ
-ᅭ
-ᅮ
-ᅯ
-ᅲ
-ᅳ
-ᅴ
-ᅵ
-ᆨ
-ᆫ
-ᆯ
-ᆷ
-ᆸ
-ᆺ
-ᆻ
-ᆼ
-ᗜ
-ᵃ
-ᵉ
-ᵍ
-ᵏ
-ᵐ
-ᵒ
-ᵘ
-‖
-„
-†
-•
-‥
-‧
-
-‰
-′
-″
-‹
-›
-※
-‿
-⁄
-ⁱ
-⁺
-ⁿ
-₁
-₂
-₃
-₄
-€
-℃
-№
-™
-ⅰ
-ⅱ
-ⅲ
-ⅳ
-ⅴ
-←
-↑
-→
-↓
-↔
-↗
-↘
-⇒
-∀
-−
-∕
-∙
-√
-∞
-∟
-∠
-∣
-∥
-∩
-∮
-∶
-∼
-∽
-≈
-≒
-≡
-≤
-≥
-≦
-≧
-≪
-≫
-⊙
-⋅
-⋈
-⋯
-⌒
-①
-②
-③
-④
-⑤
-⑥
-⑦
-⑧
-⑨
-⑩
-⑴
-⑵
-⑶
-⑷
-⑸
-⒈
-⒉
-⒊
-⒋
-ⓒ
-ⓔ
-ⓘ
-─
-━
-│
-┃
-┅
-┆
-┊
-┌
-└
-├
-┣
-═
-║
-╚
-╞
-╠
-╭
-╮
-╯
-╰
-╱
-╳
-▂
-▃
-▅
-▇
-█
-▉
-▋
-▌
-▍
-▎
-■
-□
-▪
-▫
-▬
-▲
-△
-▶
-►
-▼
-▽
-◆
-◇
-○
-◎
-●
-◕
-◠
-◢
-◤
-☀
-★
-☆
-☕
-☞
-☺
-☼
-♀
-♂
-♠
-♡
-♣
-♥
-♦
-♪
-♫
-♬
-✈
-✔
-✕
-✖
-✦
-✨
-✪
-✰
-✿
-❀
-❤
-➜
-➤
-⦿
-、
-。
-〃
-々
-〇
-〈
-〉
-《
-》
-「
-」
-『
-』
-【
-】
-〓
-〔
-〕
-〖
-〗
-〜
-〝
-〞
-ぁ
-あ
-ぃ
-い
-う
-ぇ
-え
-お
-か
-き
-く
-け
-こ
-さ
-し
-す
-せ
-そ
-た
-ち
-っ
-つ
-て
-と
-な
-に
-ぬ
-ね
-の
-は
-ひ
-ふ
-へ
-ほ
-ま
-み
-む
-め
-も
-ゃ
-や
-ゅ
-ゆ
-ょ
-よ
-ら
-り
-る
-れ
-ろ
-わ
-を
-ん
-゜
-ゝ
-ァ
-ア
-ィ
-イ
-ゥ
-ウ
-ェ
-エ
-ォ
-オ
-カ
-キ
-ク
-ケ
-コ
-サ
-シ
-ス
-セ
-ソ
-タ
-チ
-ッ
-ツ
-テ
-ト
-ナ
-ニ
-ヌ
-ネ
-ノ
-ハ
-ヒ
-フ
-ヘ
-ホ
-マ
-ミ
-ム
-メ
-モ
-ャ
-ヤ
-ュ
-ユ
-ョ
-ヨ
-ラ
-リ
-ル
-レ
-ロ
-ワ
-ヲ
-ン
-ヶ
-・
-ー
-ヽ
-ㄅ
-ㄆ
-ㄇ
-ㄉ
-ㄋ
-ㄌ
-ㄍ
-ㄎ
-ㄏ
-ㄒ
-ㄚ
-ㄛ
-ㄞ
-ㄟ
-ㄢ
-ㄤ
-ㄥ
-ㄧ
-ㄨ
-ㆍ
-㈦
-㊣
-㎡
-㗎
-一
-丁
-七
-万
-丈
-三
-上
-下
-不
-与
-丐
-丑
-专
-且
-丕
-世
-丘
-丙
-业
-丛
-东
-丝
-丞
-丟
-両
-丢
-两
-严
-並
-丧
-丨
-个
-丫
-中
-丰
-串
-临
-丶
-丸
-丹
-为
-主
-丼
-丽
-举
-丿
-乂
-乃
-久
-么
-义
-之
-乌
-乍
-乎
-乏
-乐
-乒
-乓
-乔
-乖
-乗
-乘
-乙
-乜
-九
-乞
-也
-习
-乡
-书
-乩
-买
-乱
-乳
-乾
-亀
-亂
-了
-予
-争
-事
-二
-于
-亏
-云
-互
-五
-井
-亘
-亙
-亚
-些
-亜
-亞
-亟
-亡
-亢
-交
-亥
-亦
-产
-亨
-亩
-享
-京
-亭
-亮
-亲
-亳
-亵
-人
-亿
-什
-仁
-仃
-仄
-仅
-仆
-仇
-今
-介
-仍
-从
-仏
-仑
-仓
-仔
-仕
-他
-仗
-付
-仙
-仝
-仞
-仟
-代
-令
-以
-仨
-仪
-们
-仮
-仰
-仲
-件
-价
-任
-份
-仿
-企
-伉
-伊
-伍
-伎
-伏
-伐
-休
-伕
-众
-优
-伙
-会
-伝
-伞
-伟
-传
-伢
-伤
-伦
-伪
-伫
-伯
-估
-伴
-伶
-伸
-伺
-似
-伽
-佃
-但
-佇
-佈
-位
-低
-住
-佐
-佑
-体
-佔
-何
-佗
-佘
-余
-佚
-佛
-作
-佝
-佞
-佟
-你
-佢
-佣
-佤
-佥
-佩
-佬
-佯
-佰
-佳
-併
-佶
-佻
-佼
-使
-侃
-侄
-來
-侈
-例
-侍
-侏
-侑
-侖
-侗
-供
-依
-侠
-価
-侣
-侥
-侦
-侧
-侨
-侬
-侮
-侯
-侵
-侶
-侷
-便
-係
-促
-俄
-俊
-俎
-俏
-俐
-俑
-俗
-俘
-俚
-保
-俞
-俟
-俠
-信
-俨
-俩
-俪
-俬
-俭
-修
-俯
-俱
-俳
-俸
-俺
-俾
-倆
-倉
-個
-倌
-倍
-倏
-們
-倒
-倔
-倖
-倘
-候
-倚
-倜
-借
-倡
-値
-倦
-倩
-倪
-倫
-倬
-倭
-倶
-债
-值
-倾
-偃
-假
-偈
-偉
-偌
-偎
-偏
-偕
-做
-停
-健
-側
-偵
-偶
-偷
-偻
-偽
-偿
-傀
-傅
-傍
-傑
-傘
-備
-傚
-傢
-傣
-傥
-储
-傩
-催
-傭
-傲
-傳
-債
-傷
-傻
-傾
-僅
-働
-像
-僑
-僕
-僖
-僚
-僥
-僧
-僭
-僮
-僱
-僵
-價
-僻
-儀
-儂
-億
-儆
-儉
-儋
-儒
-儕
-儘
-償
-儡
-優
-儲
-儷
-儼
-儿
-兀
-允
-元
-兄
-充
-兆
-兇
-先
-光
-克
-兌
-免
-児
-兑
-兒
-兔
-兖
-党
-兜
-兢
-入
-內
-全
-兩
-八
-公
-六
-兮
-兰
-共
-兲
-关
-兴
-兵
-其
-具
-典
-兹
-养
-兼
-兽
-冀
-内
-円
-冇
-冈
-冉
-冊
-册
-再
-冏
-冒
-冕
-冗
-写
-军
-农
-冠
-冢
-冤
-冥
-冨
-冪
-冬
-冯
-冰
-冲
-决
-况
-冶
-冷
-冻
-冼
-冽
-冾
-净
-凄
-准
-凇
-凈
-凉
-凋
-凌
-凍
-减
-凑
-凛
-凜
-凝
-几
-凡
-凤
-処
-凪
-凭
-凯
-凰
-凱
-凳
-凶
-凸
-凹
-出
-击
-函
-凿
-刀
-刁
-刃
-分
-切
-刈
-刊
-刍
-刎
-刑
-划
-列
-刘
-则
-刚
-创
-初
-删
-判
-別
-刨
-利
-刪
-别
-刮
-到
-制
-刷
-券
-刹
-刺
-刻
-刽
-剁
-剂
-剃
-則
-剉
-削
-剋
-剌
-前
-剎
-剐
-剑
-剔
-剖
-剛
-剜
-剝
-剣
-剤
-剥
-剧
-剩
-剪
-副
-割
-創
-剷
-剽
-剿
-劃
-劇
-劈
-劉
-劊
-劍
-劏
-劑
-力
-劝
-办
-功
-加
-务
-劣
-动
-助
-努
-劫
-劭
-励
-劲
-劳
-労
-劵
-効
-劾
-势
-勁
-勃
-勇
-勉
-勋
-勐
-勒
-動
-勖
-勘
-務
-勛
-勝
-勞
-募
-勢
-勤
-勧
-勳
-勵
-勸
-勺
-勻
-勾
-勿
-匀
-包
-匆
-匈
-匍
-匐
-匕
-化
-北
-匙
-匝
-匠
-匡
-匣
-匪
-匮
-匯
-匱
-匹
-区
-医
-匾
-匿
-區
-十
-千
-卅
-升
-午
-卉
-半
-卍
-华
-协
-卑
-卒
-卓
-協
-单
-卖
-南
-単
-博
-卜
-卞
-卟
-占
-卡
-卢
-卤
-卦
-卧
-卫
-卮
-卯
-印
-危
-即
-却
-卵
-卷
-卸
-卻
-卿
-厂
-厄
-厅
-历
-厉
-压
-厌
-厕
-厘
-厚
-厝
-原
-厢
-厥
-厦
-厨
-厩
-厭
-厮
-厲
-厳
-去
-县
-叁
-参
-參
-又
-叉
-及
-友
-双
-反
-収
-发
-叔
-取
-受
-变
-叙
-叛
-叟
-叠
-叡
-叢
-口
-古
-句
-另
-叨
-叩
-只
-叫
-召
-叭
-叮
-可
-台
-叱
-史
-右
-叵
-叶
-号
-司
-叹
-叻
-叼
-叽
-吁
-吃
-各
-吆
-合
-吉
-吊
-吋
-同
-名
-后
-吏
-吐
-向
-吒
-吓
-吕
-吖
-吗
-君
-吝
-吞
-吟
-吠
-吡
-否
-吧
-吨
-吩
-含
-听
-吭
-吮
-启
-吱
-吳
-吴
-吵
-吶
-吸
-吹
-吻
-吼
-吽
-吾
-呀
-呂
-呃
-呆
-呈
-告
-呋
-呎
-呐
-呓
-呕
-呗
-员
-呛
-呜
-呢
-呤
-呦
-周
-呱
-呲
-味
-呵
-呷
-呸
-呻
-呼
-命
-咀
-咁
-咂
-咄
-咆
-咋
-和
-咎
-咏
-咐
-咒
-咔
-咕
-咖
-咗
-咘
-咙
-咚
-咛
-咣
-咤
-咦
-咧
-咨
-咩
-咪
-咫
-咬
-咭
-咯
-咱
-咲
-咳
-咸
-咻
-咽
-咿
-哀
-品
-哂
-哄
-哆
-哇
-哈
-哉
-哋
-哌
-响
-哎
-哏
-哐
-哑
-哒
-哔
-哗
-哟
-員
-哥
-哦
-哧
-哨
-哩
-哪
-哭
-哮
-哲
-哺
-哼
-哽
-唁
-唄
-唆
-唇
-唉
-唏
-唐
-唑
-唔
-唠
-唤
-唧
-唬
-售
-唯
-唰
-唱
-唳
-唷
-唸
-唾
-啃
-啄
-商
-啉
-啊
-問
-啓
-啕
-啖
-啜
-啞
-啟
-啡
-啤
-啥
-啦
-啧
-啪
-啫
-啬
-啮
-啰
-啱
-啲
-啵
-啶
-啷
-啸
-啻
-啼
-啾
-喀
-喂
-喃
-善
-喆
-喇
-喉
-喊
-喋
-喎
-喏
-喔
-喘
-喙
-喚
-喜
-喝
-喟
-喧
-喪
-喫
-喬
-單
-喰
-喱
-喲
-喳
-喵
-営
-喷
-喹
-喺
-喻
-喽
-嗅
-嗆
-嗇
-嗎
-嗑
-嗒
-嗓
-嗔
-嗖
-嗚
-嗜
-嗝
-嗟
-嗡
-嗣
-嗤
-嗦
-嗨
-嗪
-嗬
-嗯
-嗰
-嗲
-嗳
-嗶
-嗷
-嗽
-嘀
-嘅
-嘆
-嘈
-嘉
-嘌
-嘍
-嘎
-嘔
-嘖
-嘗
-嘘
-嘚
-嘛
-嘜
-嘞
-嘟
-嘢
-嘣
-嘤
-嘧
-嘩
-嘭
-嘮
-嘯
-嘰
-嘱
-嘲
-嘴
-嘶
-嘸
-嘹
-嘻
-嘿
-噁
-噌
-噎
-噓
-噔
-噗
-噙
-噜
-噠
-噢
-噤
-器
-噩
-噪
-噬
-噱
-噴
-噶
-噸
-噹
-噻
-噼
-嚀
-嚇
-嚎
-嚏
-嚐
-嚓
-嚕
-嚟
-嚣
-嚥
-嚨
-嚮
-嚴
-嚷
-嚼
-囂
-囉
-囊
-囍
-囑
-囔
-囗
-囚
-四
-囝
-回
-囟
-因
-囡
-团
-団
-囤
-囧
-囪
-囫
-园
-困
-囱
-囲
-図
-围
-囹
-固
-国
-图
-囿
-圃
-圄
-圆
-圈
-國
-圍
-圏
-園
-圓
-圖
-團
-圜
-土
-圣
-圧
-在
-圩
-圭
-地
-圳
-场
-圻
-圾
-址
-坂
-均
-坊
-坍
-坎
-坏
-坐
-坑
-块
-坚
-坛
-坝
-坞
-坟
-坠
-坡
-坤
-坦
-坨
-坪
-坯
-坳
-坵
-坷
-垂
-垃
-垄
-型
-垒
-垚
-垛
-垠
-垢
-垣
-垦
-垩
-垫
-垭
-垮
-垵
-埂
-埃
-埋
-城
-埔
-埕
-埗
-域
-埠
-埤
-埵
-執
-埸
-培
-基
-埼
-堀
-堂
-堃
-堅
-堆
-堇
-堑
-堕
-堙
-堡
-堤
-堪
-堯
-堰
-報
-場
-堵
-堺
-堿
-塊
-塌
-塑
-塔
-塗
-塘
-塚
-塞
-塢
-塩
-填
-塬
-塭
-塵
-塾
-墀
-境
-墅
-墉
-墊
-墒
-墓
-増
-墘
-墙
-墜
-增
-墟
-墨
-墩
-墮
-墳
-墻
-墾
-壁
-壅
-壆
-壇
-壊
-壑
-壓
-壕
-壘
-壞
-壟
-壢
-壤
-壩
-士
-壬
-壮
-壯
-声
-売
-壳
-壶
-壹
-壺
-壽
-处
-备
-変
-复
-夏
-夔
-夕
-外
-夙
-多
-夜
-够
-夠
-夢
-夥
-大
-天
-太
-夫
-夭
-央
-夯
-失
-头
-夷
-夸
-夹
-夺
-夾
-奂
-奄
-奇
-奈
-奉
-奋
-奎
-奏
-奐
-契
-奔
-奕
-奖
-套
-奘
-奚
-奠
-奢
-奥
-奧
-奪
-奬
-奮
-女
-奴
-奶
-奸
-她
-好
-如
-妃
-妄
-妆
-妇
-妈
-妊
-妍
-妒
-妓
-妖
-妘
-妙
-妝
-妞
-妣
-妤
-妥
-妨
-妩
-妪
-妮
-妲
-妳
-妹
-妻
-妾
-姆
-姉
-姊
-始
-姍
-姐
-姑
-姒
-姓
-委
-姗
-姚
-姜
-姝
-姣
-姥
-姦
-姨
-姪
-姫
-姬
-姹
-姻
-姿
-威
-娃
-娄
-娅
-娆
-娇
-娉
-娑
-娓
-娘
-娛
-娜
-娟
-娠
-娣
-娥
-娩
-娱
-娲
-娴
-娶
-娼
-婀
-婁
-婆
-婉
-婊
-婕
-婚
-婢
-婦
-婧
-婪
-婭
-婴
-婵
-婶
-婷
-婺
-婿
-媒
-媚
-媛
-媞
-媧
-媲
-媳
-媽
-媾
-嫁
-嫂
-嫉
-嫌
-嫑
-嫔
-嫖
-嫘
-嫚
-嫡
-嫣
-嫦
-嫩
-嫲
-嫵
-嫻
-嬅
-嬉
-嬌
-嬗
-嬛
-嬢
-嬤
-嬪
-嬰
-嬴
-嬷
-嬸
-嬿
-孀
-孃
-子
-孑
-孔
-孕
-孖
-字
-存
-孙
-孚
-孛
-孜
-孝
-孟
-孢
-季
-孤
-学
-孩
-孪
-孫
-孬
-孰
-孱
-孳
-孵
-學
-孺
-孽
-孿
-宁
-它
-宅
-宇
-守
-安
-宋
-完
-宏
-宓
-宕
-宗
-官
-宙
-定
-宛
-宜
-宝
-实
-実
-宠
-审
-客
-宣
-室
-宥
-宦
-宪
-宫
-宮
-宰
-害
-宴
-宵
-家
-宸
-容
-宽
-宾
-宿
-寂
-寄
-寅
-密
-寇
-富
-寐
-寒
-寓
-寛
-寝
-寞
-察
-寡
-寢
-寥
-實
-寧
-寨
-審
-寫
-寬
-寮
-寰
-寵
-寶
-寸
-对
-寺
-寻
-导
-対
-寿
-封
-専
-射
-将
-將
-專
-尉
-尊
-尋
-對
-導
-小
-少
-尔
-尕
-尖
-尘
-尚
-尝
-尤
-尧
-尬
-就
-尴
-尷
-尸
-尹
-尺
-尻
-尼
-尽
-尾
-尿
-局
-屁
-层
-屄
-居
-屆
-屈
-屉
-届
-屋
-屌
-屍
-屎
-屏
-屐
-屑
-展
-屜
-属
-屠
-屡
-屢
-層
-履
-屬
-屯
-山
-屹
-屿
-岀
-岁
-岂
-岌
-岐
-岑
-岔
-岖
-岗
-岘
-岙
-岚
-岛
-岡
-岩
-岫
-岬
-岭
-岱
-岳
-岷
-岸
-峇
-峋
-峒
-峙
-峡
-峤
-峥
-峦
-峨
-峪
-峭
-峯
-峰
-峴
-島
-峻
-峽
-崁
-崂
-崆
-崇
-崎
-崑
-崔
-崖
-崗
-崙
-崛
-崧
-崩
-崭
-崴
-崽
-嵇
-嵊
-嵋
-嵌
-嵐
-嵘
-嵩
-嵬
-嵯
-嶂
-嶄
-嶇
-嶋
-嶙
-嶺
-嶼
-嶽
-巅
-巍
-巒
-巔
-巖
-川
-州
-巡
-巢
-工
-左
-巧
-巨
-巩
-巫
-差
-己
-已
-巳
-巴
-巷
-巻
-巽
-巾
-巿
-币
-市
-布
-帅
-帆
-师
-希
-帐
-帑
-帕
-帖
-帘
-帚
-帛
-帜
-帝
-帥
-带
-帧
-師
-席
-帮
-帯
-帰
-帳
-帶
-帷
-常
-帼
-帽
-幀
-幂
-幄
-幅
-幌
-幔
-幕
-幟
-幡
-幢
-幣
-幫
-干
-平
-年
-并
-幸
-幹
-幺
-幻
-幼
-幽
-幾
-广
-庁
-広
-庄
-庆
-庇
-床
-序
-庐
-库
-应
-底
-庖
-店
-庙
-庚
-府
-庞
-废
-庠
-度
-座
-庫
-庭
-庵
-庶
-康
-庸
-庹
-庾
-廁
-廂
-廃
-廈
-廉
-廊
-廓
-廖
-廚
-廝
-廟
-廠
-廢
-廣
-廬
-廳
-延
-廷
-建
-廿
-开
-弁
-异
-弃
-弄
-弈
-弊
-弋
-式
-弑
-弒
-弓
-弔
-引
-弗
-弘
-弛
-弟
-张
-弥
-弦
-弧
-弩
-弭
-弯
-弱
-張
-強
-弹
-强
-弼
-弾
-彅
-彆
-彈
-彌
-彎
-归
-当
-录
-彗
-彙
-彝
-形
-彤
-彥
-彦
-彧
-彩
-彪
-彫
-彬
-彭
-彰
-影
-彷
-役
-彻
-彼
-彿
-往
-征
-径
-待
-徇
-很
-徉
-徊
-律
-後
-徐
-徑
-徒
-従
-徕
-得
-徘
-徙
-徜
-從
-徠
-御
-徨
-復
-循
-徬
-微
-徳
-徴
-徵
-德
-徹
-徼
-徽
-心
-必
-忆
-忌
-忍
-忏
-忐
-忑
-忒
-忖
-志
-忘
-忙
-応
-忠
-忡
-忤
-忧
-忪
-快
-忱
-念
-忻
-忽
-忿
-怀
-态
-怂
-怅
-怆
-怎
-怏
-怒
-怔
-怕
-怖
-怙
-怜
-思
-怠
-怡
-急
-怦
-性
-怨
-怪
-怯
-怵
-总
-怼
-恁
-恃
-恆
-恋
-恍
-恐
-恒
-恕
-恙
-恚
-恢
-恣
-恤
-恥
-恨
-恩
-恪
-恫
-恬
-恭
-息
-恰
-恳
-恵
-恶
-恸
-恺
-恻
-恼
-恿
-悄
-悅
-悉
-悌
-悍
-悔
-悖
-悚
-悟
-悠
-患
-悦
-您
-悩
-悪
-悬
-悯
-悱
-悲
-悴
-悵
-悶
-悸
-悻
-悼
-悽
-情
-惆
-惇
-惊
-惋
-惑
-惕
-惘
-惚
-惜
-惟
-惠
-惡
-惦
-惧
-惨
-惩
-惫
-惬
-惭
-惮
-惯
-惰
-惱
-想
-惴
-惶
-惹
-惺
-愁
-愆
-愈
-愉
-愍
-意
-愕
-愚
-愛
-愜
-感
-愣
-愤
-愧
-愫
-愷
-愿
-慄
-慈
-態
-慌
-慎
-慑
-慕
-慘
-慚
-慟
-慢
-慣
-慧
-慨
-慫
-慮
-慰
-慳
-慵
-慶
-慷
-慾
-憂
-憊
-憋
-憎
-憐
-憑
-憔
-憚
-憤
-憧
-憨
-憩
-憫
-憬
-憲
-憶
-憾
-懂
-懇
-懈
-應
-懊
-懋
-懑
-懒
-懦
-懲
-懵
-懶
-懷
-懸
-懺
-懼
-懾
-懿
-戀
-戈
-戊
-戌
-戍
-戎
-戏
-成
-我
-戒
-戕
-或
-战
-戚
-戛
-戟
-戡
-戦
-截
-戬
-戮
-戰
-戲
-戳
-戴
-戶
-户
-戸
-戻
-戾
-房
-所
-扁
-扇
-扈
-扉
-手
-才
-扎
-扑
-扒
-打
-扔
-払
-托
-扛
-扣
-扦
-执
-扩
-扪
-扫
-扬
-扭
-扮
-扯
-扰
-扱
-扳
-扶
-批
-扼
-找
-承
-技
-抄
-抉
-把
-抑
-抒
-抓
-投
-抖
-抗
-折
-抚
-抛
-抜
-択
-抟
-抠
-抡
-抢
-护
-报
-抨
-披
-抬
-抱
-抵
-抹
-押
-抽
-抿
-拂
-拄
-担
-拆
-拇
-拈
-拉
-拋
-拌
-拍
-拎
-拐
-拒
-拓
-拔
-拖
-拗
-拘
-拙
-拚
-招
-拜
-拟
-拡
-拢
-拣
-拥
-拦
-拧
-拨
-择
-括
-拭
-拮
-拯
-拱
-拳
-拴
-拷
-拼
-拽
-拾
-拿
-持
-挂
-指
-挈
-按
-挎
-挑
-挖
-挙
-挚
-挛
-挝
-挞
-挟
-挠
-挡
-挣
-挤
-挥
-挨
-挪
-挫
-振
-挲
-挹
-挺
-挽
-挾
-捂
-捅
-捆
-捉
-捋
-捌
-捍
-捎
-捏
-捐
-捕
-捞
-损
-捡
-换
-捣
-捧
-捨
-捩
-据
-捱
-捲
-捶
-捷
-捺
-捻
-掀
-掂
-掃
-掇
-授
-掉
-掌
-掏
-掐
-排
-掖
-掘
-掙
-掛
-掠
-採
-探
-掣
-接
-控
-推
-掩
-措
-掬
-掰
-掲
-掳
-掴
-掷
-掸
-掺
-揀
-揃
-揄
-揆
-揉
-揍
-描
-提
-插
-揖
-揚
-換
-握
-揣
-揩
-揪
-揭
-揮
-援
-揶
-揸
-揹
-揽
-搀
-搁
-搂
-搅
-損
-搏
-搐
-搓
-搔
-搖
-搗
-搜
-搞
-搡
-搪
-搬
-搭
-搵
-搶
-携
-搽
-摀
-摁
-摄
-摆
-摇
-摈
-摊
-摒
-摔
-摘
-摞
-摟
-摧
-摩
-摯
-摳
-摸
-摹
-摺
-摻
-撂
-撃
-撅
-撇
-撈
-撐
-撑
-撒
-撓
-撕
-撚
-撞
-撤
-撥
-撩
-撫
-撬
-播
-撮
-撰
-撲
-撵
-撷
-撸
-撻
-撼
-撿
-擀
-擁
-擂
-擄
-擅
-擇
-擊
-擋
-操
-擎
-擒
-擔
-擘
-據
-擞
-擠
-擡
-擢
-擦
-擬
-擰
-擱
-擲
-擴
-擷
-擺
-擼
-擾
-攀
-攏
-攒
-攔
-攘
-攙
-攜
-攝
-攞
-攢
-攣
-攤
-攥
-攪
-攫
-攬
-支
-收
-攸
-改
-攻
-放
-政
-故
-效
-敌
-敍
-敎
-敏
-救
-敕
-敖
-敗
-敘
-教
-敛
-敝
-敞
-敢
-散
-敦
-敬
-数
-敲
-整
-敵
-敷
-數
-斂
-斃
-文
-斋
-斌
-斎
-斐
-斑
-斓
-斗
-料
-斛
-斜
-斟
-斡
-斤
-斥
-斧
-斩
-斫
-斬
-断
-斯
-新
-斷
-方
-於
-施
-旁
-旃
-旅
-旋
-旌
-旎
-族
-旖
-旗
-无
-既
-日
-旦
-旧
-旨
-早
-旬
-旭
-旮
-旱
-时
-旷
-旺
-旻
-昀
-昂
-昆
-昇
-昉
-昊
-昌
-明
-昏
-易
-昔
-昕
-昙
-星
-映
-春
-昧
-昨
-昭
-是
-昱
-昴
-昵
-昶
-昼
-显
-晁
-時
-晃
-晉
-晋
-晌
-晏
-晒
-晓
-晔
-晕
-晖
-晗
-晚
-晝
-晞
-晟
-晤
-晦
-晨
-晩
-普
-景
-晰
-晴
-晶
-晷
-智
-晾
-暂
-暄
-暇
-暈
-暉
-暌
-暐
-暑
-暖
-暗
-暝
-暢
-暧
-暨
-暫
-暮
-暱
-暴
-暸
-暹
-曄
-曆
-曇
-曉
-曖
-曙
-曜
-曝
-曠
-曦
-曬
-曰
-曲
-曳
-更
-書
-曹
-曼
-曾
-替
-最
-會
-月
-有
-朋
-服
-朐
-朔
-朕
-朗
-望
-朝
-期
-朦
-朧
-木
-未
-末
-本
-札
-朮
-术
-朱
-朴
-朵
-机
-朽
-杀
-杂
-权
-杆
-杈
-杉
-李
-杏
-材
-村
-杓
-杖
-杜
-杞
-束
-杠
-条
-来
-杨
-杭
-杯
-杰
-東
-杳
-杵
-杷
-杼
-松
-板
-极
-构
-枇
-枉
-枋
-析
-枕
-林
-枚
-果
-枝
-枢
-枣
-枪
-枫
-枭
-枯
-枰
-枱
-枳
-架
-枷
-枸
-柄
-柏
-某
-柑
-柒
-染
-柔
-柘
-柚
-柜
-柞
-柠
-柢
-查
-柩
-柬
-柯
-柱
-柳
-柴
-柵
-査
-柿
-栀
-栃
-栄
-栅
-标
-栈
-栉
-栋
-栎
-栏
-树
-栓
-栖
-栗
-校
-栩
-株
-样
-核
-根
-格
-栽
-栾
-桀
-桁
-桂
-桃
-桅
-框
-案
-桉
-桌
-桎
-桐
-桑
-桓
-桔
-桜
-桠
-桡
-桢
-档
-桥
-桦
-桧
-桨
-桩
-桶
-桿
-梁
-梅
-梆
-梏
-梓
-梗
-條
-梟
-梢
-梦
-梧
-梨
-梭
-梯
-械
-梳
-梵
-梶
-检
-棂
-棄
-棉
-棋
-棍
-棒
-棕
-棗
-棘
-棚
-棟
-棠
-棣
-棧
-森
-棱
-棲
-棵
-棹
-棺
-椁
-椅
-椋
-植
-椎
-椒
-検
-椪
-椭
-椰
-椹
-椽
-椿
-楂
-楊
-楓
-楔
-楚
-楝
-楞
-楠
-楣
-楨
-楫
-業
-楮
-極
-楷
-楸
-楹
-楼
-楽
-概
-榄
-榆
-榈
-榉
-榔
-榕
-榖
-榛
-榜
-榨
-榫
-榭
-榮
-榱
-榴
-榷
-榻
-槁
-槃
-構
-槌
-槍
-槎
-槐
-槓
-様
-槛
-槟
-槤
-槭
-槲
-槳
-槻
-槽
-槿
-樁
-樂
-樊
-樑
-樓
-標
-樞
-樟
-模
-樣
-権
-横
-樫
-樯
-樱
-樵
-樸
-樹
-樺
-樽
-樾
-橄
-橇
-橋
-橐
-橘
-橙
-機
-橡
-橢
-橫
-橱
-橹
-橼
-檀
-檄
-檎
-檐
-檔
-檗
-檜
-檢
-檬
-檯
-檳
-檸
-檻
-櫃
-櫚
-櫛
-櫥
-櫸
-櫻
-欄
-權
-欒
-欖
-欠
-次
-欢
-欣
-欧
-欲
-欸
-欺
-欽
-款
-歆
-歇
-歉
-歌
-歎
-歐
-歓
-歙
-歛
-歡
-止
-正
-此
-步
-武
-歧
-歩
-歪
-歯
-歲
-歳
-歴
-歷
-歸
-歹
-死
-歼
-殁
-殃
-殆
-殇
-殉
-殊
-残
-殒
-殓
-殖
-殘
-殞
-殡
-殤
-殭
-殯
-殲
-殴
-段
-殷
-殺
-殼
-殿
-毀
-毁
-毂
-毅
-毆
-毋
-母
-毎
-每
-毒
-毓
-比
-毕
-毗
-毘
-毙
-毛
-毡
-毫
-毯
-毽
-氈
-氏
-氐
-民
-氓
-气
-氖
-気
-氙
-氛
-氟
-氡
-氢
-氣
-氤
-氦
-氧
-氨
-氪
-氫
-氮
-氯
-氰
-氲
-水
-氷
-永
-氹
-氾
-汀
-汁
-求
-汆
-汇
-汉
-汎
-汐
-汕
-汗
-汙
-汛
-汝
-汞
-江
-池
-污
-汤
-汨
-汩
-汪
-汰
-汲
-汴
-汶
-汹
-決
-汽
-汾
-沁
-沂
-沃
-沅
-沈
-沉
-沌
-沏
-沐
-沒
-沓
-沖
-沙
-沛
-沟
-没
-沢
-沣
-沥
-沦
-沧
-沪
-沫
-沭
-沮
-沱
-河
-沸
-油
-治
-沼
-沽
-沾
-沿
-況
-泄
-泉
-泊
-泌
-泓
-法
-泗
-泛
-泞
-泠
-泡
-波
-泣
-泥
-注
-泪
-泫
-泮
-泯
-泰
-泱
-泳
-泵
-泷
-泸
-泻
-泼
-泽
-泾
-洁
-洄
-洋
-洒
-洗
-洙
-洛
-洞
-津
-洩
-洪
-洮
-洱
-洲
-洵
-洶
-洸
-洹
-活
-洼
-洽
-派
-流
-浃
-浄
-浅
-浆
-浇
-浊
-测
-济
-浏
-浑
-浒
-浓
-浔
-浙
-浚
-浜
-浣
-浦
-浩
-浪
-浬
-浮
-浯
-浴
-海
-浸
-涂
-涅
-涇
-消
-涉
-涌
-涎
-涓
-涔
-涕
-涙
-涛
-涝
-涞
-涟
-涠
-涡
-涣
-涤
-润
-涧
-涨
-涩
-涪
-涮
-涯
-液
-涵
-涸
-涼
-涿
-淀
-淄
-淅
-淆
-淇
-淋
-淌
-淑
-淒
-淖
-淘
-淙
-淚
-淞
-淡
-淤
-淦
-淨
-淩
-淪
-淫
-淬
-淮
-深
-淳
-淵
-混
-淹
-淺
-添
-淼
-清
-済
-渉
-渊
-渋
-渍
-渎
-渐
-渔
-渗
-渙
-渚
-減
-渝
-渠
-渡
-渣
-渤
-渥
-渦
-温
-測
-渭
-港
-渲
-渴
-游
-渺
-渾
-湃
-湄
-湊
-湍
-湖
-湘
-湛
-湟
-湧
-湫
-湮
-湯
-湳
-湾
-湿
-満
-溃
-溅
-溉
-溏
-源
-準
-溜
-溝
-溟
-溢
-溥
-溧
-溪
-溫
-溯
-溱
-溴
-溶
-溺
-溼
-滁
-滂
-滄
-滅
-滇
-滋
-滌
-滑
-滓
-滔
-滕
-滙
-滚
-滝
-滞
-滟
-满
-滢
-滤
-滥
-滦
-滨
-滩
-滬
-滯
-滲
-滴
-滷
-滸
-滾
-滿
-漁
-漂
-漆
-漉
-漏
-漓
-演
-漕
-漠
-漢
-漣
-漩
-漪
-漫
-漬
-漯
-漱
-漲
-漳
-漸
-漾
-漿
-潆
-潇
-潋
-潍
-潑
-潔
-潘
-潛
-潜
-潞
-潟
-潢
-潤
-潦
-潧
-潭
-潮
-潰
-潴
-潸
-潺
-潼
-澀
-澄
-澆
-澈
-澍
-澎
-澗
-澜
-澡
-澤
-澧
-澱
-澳
-澹
-激
-濁
-濂
-濃
-濑
-濒
-濕
-濘
-濛
-濟
-濠
-濡
-濤
-濫
-濬
-濮
-濯
-濱
-濺
-濾
-瀅
-瀆
-瀉
-瀋
-瀏
-瀑
-瀕
-瀘
-瀚
-瀛
-瀝
-瀞
-瀟
-瀧
-瀨
-瀬
-瀰
-瀾
-灌
-灏
-灑
-灘
-灝
-灞
-灣
-火
-灬
-灭
-灯
-灰
-灵
-灶
-灸
-灼
-災
-灾
-灿
-炀
-炁
-炅
-炉
-炊
-炎
-炒
-炔
-炕
-炖
-炙
-炜
-炫
-炬
-炭
-炮
-炯
-炳
-炷
-炸
-点
-為
-炼
-炽
-烁
-烂
-烃
-烈
-烊
-烏
-烘
-烙
-烛
-烟
-烤
-烦
-烧
-烨
-烩
-烫
-烬
-热
-烯
-烷
-烹
-烽
-焉
-焊
-焕
-焖
-焗
-焘
-焙
-焚
-焜
-無
-焦
-焯
-焰
-焱
-然
-焼
-煅
-煉
-煊
-煌
-煎
-煒
-煖
-煙
-煜
-煞
-煤
-煥
-煦
-照
-煨
-煩
-煮
-煲
-煸
-煽
-熄
-熊
-熏
-熒
-熔
-熙
-熟
-熠
-熨
-熬
-熱
-熵
-熹
-熾
-燁
-燃
-燄
-燈
-燉
-燊
-燎
-燒
-燔
-燕
-燙
-燜
-營
-燥
-燦
-燧
-燭
-燮
-燴
-燻
-燼
-燿
-爆
-爍
-爐
-爛
-爪
-爬
-爭
-爰
-爱
-爲
-爵
-父
-爷
-爸
-爹
-爺
-爻
-爽
-爾
-牆
-片
-版
-牌
-牍
-牒
-牙
-牛
-牝
-牟
-牠
-牡
-牢
-牦
-牧
-物
-牯
-牲
-牴
-牵
-特
-牺
-牽
-犀
-犁
-犄
-犊
-犍
-犒
-犢
-犧
-犬
-犯
-状
-犷
-犸
-犹
-狀
-狂
-狄
-狈
-狎
-狐
-狒
-狗
-狙
-狞
-狠
-狡
-狩
-独
-狭
-狮
-狰
-狱
-狸
-狹
-狼
-狽
-猎
-猕
-猖
-猗
-猙
-猛
-猜
-猝
-猥
-猩
-猪
-猫
-猬
-献
-猴
-猶
-猷
-猾
-猿
-獄
-獅
-獎
-獐
-獒
-獗
-獠
-獣
-獨
-獭
-獰
-獲
-獵
-獷
-獸
-獺
-獻
-獼
-獾
-玄
-率
-玉
-王
-玑
-玖
-玛
-玟
-玠
-玥
-玩
-玫
-玮
-环
-现
-玲
-玳
-玷
-玺
-玻
-珀
-珂
-珅
-珈
-珉
-珊
-珍
-珏
-珐
-珑
-珙
-珞
-珠
-珣
-珥
-珩
-珪
-班
-珮
-珲
-珺
-現
-球
-琅
-理
-琇
-琉
-琊
-琍
-琏
-琐
-琛
-琢
-琥
-琦
-琨
-琪
-琬
-琮
-琰
-琲
-琳
-琴
-琵
-琶
-琺
-琼
-瑀
-瑁
-瑄
-瑋
-瑕
-瑗
-瑙
-瑚
-瑛
-瑜
-瑞
-瑟
-瑠
-瑣
-瑤
-瑩
-瑪
-瑯
-瑰
-瑶
-瑾
-璀
-璁
-璃
-璇
-璉
-璋
-璎
-璐
-璜
-璞
-璟
-璧
-璨
-環
-璽
-璿
-瓊
-瓏
-瓒
-瓜
-瓢
-瓣
-瓤
-瓦
-瓮
-瓯
-瓴
-瓶
-瓷
-甄
-甌
-甕
-甘
-甙
-甚
-甜
-生
-產
-産
-甥
-甦
-用
-甩
-甫
-甬
-甭
-甯
-田
-由
-甲
-申
-电
-男
-甸
-町
-画
-甾
-畀
-畅
-界
-畏
-畑
-畔
-留
-畜
-畝
-畢
-略
-畦
-番
-畫
-異
-畲
-畳
-畴
-當
-畸
-畹
-畿
-疆
-疇
-疊
-疏
-疑
-疔
-疖
-疗
-疙
-疚
-疝
-疟
-疡
-疣
-疤
-疥
-疫
-疮
-疯
-疱
-疲
-疳
-疵
-疸
-疹
-疼
-疽
-疾
-痂
-病
-症
-痈
-痉
-痊
-痍
-痒
-痔
-痕
-痘
-痙
-痛
-痞
-痠
-痢
-痣
-痤
-痧
-痨
-痪
-痫
-痰
-痱
-痴
-痹
-痺
-痼
-痿
-瘀
-瘁
-瘋
-瘍
-瘓
-瘘
-瘙
-瘟
-瘠
-瘡
-瘢
-瘤
-瘦
-瘧
-瘩
-瘪
-瘫
-瘴
-瘸
-瘾
-療
-癇
-癌
-癒
-癖
-癜
-癞
-癡
-癢
-癣
-癥
-癫
-癬
-癮
-癱
-癲
-癸
-発
-登
-發
-白
-百
-皂
-的
-皆
-皇
-皈
-皋
-皎
-皑
-皓
-皖
-皙
-皚
-皮
-皰
-皱
-皴
-皺
-皿
-盂
-盃
-盅
-盆
-盈
-益
-盎
-盏
-盐
-监
-盒
-盔
-盖
-盗
-盘
-盛
-盜
-盞
-盟
-盡
-監
-盤
-盥
-盧
-盪
-目
-盯
-盱
-盲
-直
-相
-盹
-盼
-盾
-省
-眈
-眉
-看
-県
-眙
-眞
-真
-眠
-眦
-眨
-眩
-眯
-眶
-眷
-眸
-眺
-眼
-眾
-着
-睁
-睇
-睏
-睐
-睑
-睛
-睜
-睞
-睡
-睢
-督
-睥
-睦
-睨
-睪
-睫
-睬
-睹
-睽
-睾
-睿
-瞄
-瞅
-瞇
-瞋
-瞌
-瞎
-瞑
-瞒
-瞓
-瞞
-瞟
-瞠
-瞥
-瞧
-瞩
-瞪
-瞬
-瞭
-瞰
-瞳
-瞻
-瞼
-瞿
-矇
-矍
-矗
-矚
-矛
-矜
-矢
-矣
-知
-矩
-矫
-短
-矮
-矯
-石
-矶
-矽
-矾
-矿
-码
-砂
-砌
-砍
-砒
-研
-砖
-砗
-砚
-砝
-砣
-砥
-砧
-砭
-砰
-砲
-破
-砷
-砸
-砺
-砼
-砾
-础
-硅
-硐
-硒
-硕
-硝
-硫
-硬
-确
-硯
-硼
-碁
-碇
-碉
-碌
-碍
-碎
-碑
-碓
-碗
-碘
-碚
-碛
-碟
-碣
-碧
-碩
-碰
-碱
-碳
-碴
-確
-碼
-碾
-磁
-磅
-磊
-磋
-磐
-磕
-磚
-磡
-磨
-磬
-磯
-磲
-磷
-磺
-礁
-礎
-礙
-礡
-礦
-礪
-礫
-礴
-示
-礼
-社
-祀
-祁
-祂
-祇
-祈
-祉
-祎
-祐
-祕
-祖
-祗
-祚
-祛
-祜
-祝
-神
-祟
-祠
-祢
-祥
-票
-祭
-祯
-祷
-祸
-祺
-祿
-禀
-禁
-禄
-禅
-禍
-禎
-福
-禛
-禦
-禧
-禪
-禮
-禱
-禹
-禺
-离
-禽
-禾
-禿
-秀
-私
-秃
-秆
-秉
-秋
-种
-科
-秒
-秘
-租
-秣
-秤
-秦
-秧
-秩
-秭
-积
-称
-秸
-移
-秽
-稀
-稅
-程
-稍
-税
-稔
-稗
-稚
-稜
-稞
-稟
-稠
-稣
-種
-稱
-稲
-稳
-稷
-稹
-稻
-稼
-稽
-稿
-穀
-穂
-穆
-穌
-積
-穎
-穗
-穢
-穩
-穫
-穴
-究
-穷
-穹
-空
-穿
-突
-窃
-窄
-窈
-窍
-窑
-窒
-窓
-窕
-窖
-窗
-窘
-窜
-窝
-窟
-窠
-窥
-窦
-窨
-窩
-窪
-窮
-窯
-窺
-窿
-竄
-竅
-竇
-竊
-立
-竖
-站
-竜
-竞
-竟
-章
-竣
-童
-竭
-端
-競
-竹
-竺
-竽
-竿
-笃
-笆
-笈
-笋
-笏
-笑
-笔
-笙
-笛
-笞
-笠
-符
-笨
-第
-笹
-笺
-笼
-筆
-等
-筊
-筋
-筍
-筏
-筐
-筑
-筒
-答
-策
-筛
-筝
-筠
-筱
-筲
-筵
-筷
-筹
-签
-简
-箇
-箋
-箍
-箏
-箐
-箔
-箕
-算
-箝
-管
-箩
-箫
-箭
-箱
-箴
-箸
-節
-篁
-範
-篆
-篇
-築
-篑
-篓
-篙
-篝
-篠
-篡
-篤
-篩
-篪
-篮
-篱
-篷
-簇
-簌
-簍
-簡
-簦
-簧
-簪
-簫
-簷
-簸
-簽
-簾
-簿
-籁
-籃
-籌
-籍
-籐
-籟
-籠
-籤
-籬
-籮
-籲
-米
-类
-籼
-籽
-粄
-粉
-粑
-粒
-粕
-粗
-粘
-粟
-粤
-粥
-粧
-粪
-粮
-粱
-粲
-粳
-粵
-粹
-粼
-粽
-精
-粿
-糅
-糊
-糍
-糕
-糖
-糗
-糙
-糜
-糞
-糟
-糠
-糧
-糬
-糯
-糰
-糸
-系
-糾
-紀
-紂
-約
-紅
-紉
-紊
-紋
-納
-紐
-紓
-純
-紗
-紘
-紙
-級
-紛
-紜
-素
-紡
-索
-紧
-紫
-紮
-累
-細
-紳
-紹
-紺
-終
-絃
-組
-絆
-経
-結
-絕
-絞
-絡
-絢
-給
-絨
-絮
-統
-絲
-絳
-絵
-絶
-絹
-綁
-綏
-綑
-經
-継
-続
-綜
-綠
-綢
-綦
-綫
-綬
-維
-綱
-網
-綴
-綵
-綸
-綺
-綻
-綽
-綾
-綿
-緊
-緋
-総
-緑
-緒
-緘
-線
-緝
-緞
-締
-緣
-編
-緩
-緬
-緯
-練
-緹
-緻
-縁
-縄
-縈
-縛
-縝
-縣
-縫
-縮
-縱
-縴
-縷
-總
-績
-繁
-繃
-繆
-繇
-繋
-織
-繕
-繚
-繞
-繡
-繩
-繪
-繫
-繭
-繳
-繹
-繼
-繽
-纂
-續
-纍
-纏
-纓
-纔
-纖
-纜
-纠
-红
-纣
-纤
-约
-级
-纨
-纪
-纫
-纬
-纭
-纯
-纰
-纱
-纲
-纳
-纵
-纶
-纷
-纸
-纹
-纺
-纽
-纾
-线
-绀
-练
-组
-绅
-细
-织
-终
-绊
-绍
-绎
-经
-绑
-绒
-结
-绔
-绕
-绘
-给
-绚
-绛
-络
-绝
-绞
-统
-绡
-绢
-绣
-绥
-绦
-继
-绩
-绪
-绫
-续
-绮
-绯
-绰
-绳
-维
-绵
-绶
-绷
-绸
-绻
-综
-绽
-绾
-绿
-缀
-缄
-缅
-缆
-缇
-缈
-缉
-缎
-缓
-缔
-缕
-编
-缘
-缙
-缚
-缜
-缝
-缠
-缢
-缤
-缥
-缨
-缩
-缪
-缭
-缮
-缰
-缱
-缴
-缸
-缺
-缽
-罂
-罄
-罌
-罐
-网
-罔
-罕
-罗
-罚
-罡
-罢
-罩
-罪
-置
-罰
-署
-罵
-罷
-罹
-羁
-羅
-羈
-羊
-羌
-美
-羔
-羚
-羞
-羟
-羡
-羣
-群
-羥
-羧
-羨
-義
-羯
-羲
-羸
-羹
-羽
-羿
-翁
-翅
-翊
-翌
-翎
-習
-翔
-翘
-翟
-翠
-翡
-翦
-翩
-翰
-翱
-翳
-翹
-翻
-翼
-耀
-老
-考
-耄
-者
-耆
-耋
-而
-耍
-耐
-耒
-耕
-耗
-耘
-耙
-耦
-耨
-耳
-耶
-耷
-耸
-耻
-耽
-耿
-聂
-聆
-聊
-聋
-职
-聒
-联
-聖
-聘
-聚
-聞
-聪
-聯
-聰
-聲
-聳
-聴
-聶
-職
-聽
-聾
-聿
-肃
-肄
-肅
-肆
-肇
-肉
-肋
-肌
-肏
-肓
-肖
-肘
-肚
-肛
-肝
-肠
-股
-肢
-肤
-肥
-肩
-肪
-肮
-肯
-肱
-育
-肴
-肺
-肽
-肾
-肿
-胀
-胁
-胃
-胄
-胆
-背
-胍
-胎
-胖
-胚
-胛
-胜
-胝
-胞
-胡
-胤
-胥
-胧
-胫
-胭
-胯
-胰
-胱
-胳
-胴
-胶
-胸
-胺
-能
-脂
-脅
-脆
-脇
-脈
-脉
-脊
-脍
-脏
-脐
-脑
-脓
-脖
-脘
-脚
-脛
-脣
-脩
-脫
-脯
-脱
-脲
-脳
-脸
-脹
-脾
-腆
-腈
-腊
-腋
-腌
-腎
-腐
-腑
-腓
-腔
-腕
-腥
-腦
-腩
-腫
-腭
-腮
-腰
-腱
-腳
-腴
-腸
-腹
-腺
-腻
-腼
-腾
-腿
-膀
-膈
-膊
-膏
-膑
-膘
-膚
-膛
-膜
-膝
-膠
-膦
-膨
-膩
-膳
-膺
-膻
-膽
-膾
-膿
-臀
-臂
-臃
-臆
-臉
-臊
-臍
-臓
-臘
-臟
-臣
-臥
-臧
-臨
-自
-臬
-臭
-至
-致
-臺
-臻
-臼
-臾
-舀
-舂
-舅
-舆
-與
-興
-舉
-舊
-舌
-舍
-舎
-舐
-舒
-舔
-舖
-舗
-舛
-舜
-舞
-舟
-航
-舫
-般
-舰
-舱
-舵
-舶
-舷
-舸
-船
-舺
-舾
-艇
-艋
-艘
-艙
-艦
-艮
-良
-艰
-艱
-色
-艳
-艷
-艹
-艺
-艾
-节
-芃
-芈
-芊
-芋
-芍
-芎
-芒
-芙
-芜
-芝
-芡
-芥
-芦
-芩
-芪
-芫
-芬
-芭
-芮
-芯
-花
-芳
-芷
-芸
-芹
-芻
-芽
-芾
-苁
-苄
-苇
-苋
-苍
-苏
-苑
-苒
-苓
-苔
-苕
-苗
-苛
-苜
-苞
-苟
-苡
-苣
-若
-苦
-苫
-苯
-英
-苷
-苹
-苻
-茁
-茂
-范
-茄
-茅
-茉
-茎
-茏
-茗
-茜
-茧
-茨
-茫
-茬
-茭
-茯
-茱
-茲
-茴
-茵
-茶
-茸
-茹
-茼
-荀
-荃
-荆
-草
-荊
-荏
-荐
-荒
-荔
-荖
-荘
-荚
-荞
-荟
-荠
-荡
-荣
-荤
-荥
-荧
-荨
-荪
-荫
-药
-荳
-荷
-荸
-荻
-荼
-荽
-莅
-莆
-莉
-莊
-莎
-莒
-莓
-莖
-莘
-莞
-莠
-莢
-莧
-莪
-莫
-莱
-莲
-莴
-获
-莹
-莺
-莽
-莿
-菀
-菁
-菅
-菇
-菈
-菊
-菌
-菏
-菓
-菖
-菘
-菜
-菟
-菠
-菡
-菩
-華
-菱
-菲
-菸
-菽
-萁
-萃
-萄
-萊
-萋
-萌
-萍
-萎
-萘
-萝
-萤
-营
-萦
-萧
-萨
-萩
-萬
-萱
-萵
-萸
-萼
-落
-葆
-葉
-著
-葚
-葛
-葡
-董
-葦
-葩
-葫
-葬
-葭
-葯
-葱
-葳
-葵
-葷
-葺
-蒂
-蒋
-蒐
-蒔
-蒙
-蒜
-蒞
-蒟
-蒡
-蒨
-蒲
-蒸
-蒹
-蒻
-蒼
-蒿
-蓁
-蓄
-蓆
-蓉
-蓋
-蓑
-蓓
-蓖
-蓝
-蓟
-蓦
-蓬
-蓮
-蓼
-蓿
-蔑
-蔓
-蔔
-蔗
-蔘
-蔚
-蔡
-蔣
-蔥
-蔫
-蔬
-蔭
-蔵
-蔷
-蔺
-蔻
-蔼
-蔽
-蕁
-蕃
-蕈
-蕉
-蕊
-蕎
-蕙
-蕤
-蕨
-蕩
-蕪
-蕭
-蕲
-蕴
-蕻
-蕾
-薄
-薅
-薇
-薈
-薊
-薏
-薑
-薔
-薙
-薛
-薦
-薨
-薩
-薪
-薬
-薯
-薰
-薹
-藉
-藍
-藏
-藐
-藓
-藕
-藜
-藝
-藤
-藥
-藩
-藹
-藻
-藿
-蘆
-蘇
-蘊
-蘋
-蘑
-蘚
-蘭
-蘸
-蘼
-蘿
-虎
-虏
-虐
-虑
-虔
-處
-虚
-虛
-虜
-虞
-號
-虢
-虧
-虫
-虬
-虱
-虹
-虻
-虽
-虾
-蚀
-蚁
-蚂
-蚊
-蚌
-蚓
-蚕
-蚜
-蚝
-蚣
-蚤
-蚩
-蚪
-蚯
-蚱
-蚵
-蛀
-蛆
-蛇
-蛊
-蛋
-蛎
-蛐
-蛔
-蛙
-蛛
-蛟
-蛤
-蛭
-蛮
-蛰
-蛳
-蛹
-蛻
-蛾
-蜀
-蜂
-蜃
-蜆
-蜇
-蜈
-蜊
-蜍
-蜒
-蜓
-蜕
-蜗
-蜘
-蜚
-蜜
-蜡
-蜢
-蜥
-蜱
-蜴
-蜷
-蜻
-蜿
-蝇
-蝈
-蝉
-蝌
-蝎
-蝕
-蝗
-蝙
-蝟
-蝠
-蝦
-蝨
-蝴
-蝶
-蝸
-蝼
-螂
-螃
-融
-螞
-螢
-螨
-螯
-螳
-螺
-蟀
-蟄
-蟆
-蟋
-蟎
-蟑
-蟒
-蟠
-蟬
-蟲
-蟹
-蟻
-蟾
-蠅
-蠍
-蠔
-蠕
-蠛
-蠟
-蠡
-蠢
-蠣
-蠱
-蠶
-蠹
-蠻
-血
-衄
-衅
-衆
-行
-衍
-術
-衔
-街
-衙
-衛
-衝
-衞
-衡
-衢
-衣
-补
-表
-衩
-衫
-衬
-衮
-衰
-衲
-衷
-衹
-衾
-衿
-袁
-袂
-袄
-袅
-袈
-袋
-袍
-袒
-袖
-袜
-袞
-袤
-袪
-被
-袭
-袱
-裁
-裂
-装
-裆
-裊
-裏
-裔
-裕
-裘
-裙
-補
-裝
-裟
-裡
-裤
-裨
-裱
-裳
-裴
-裸
-裹
-製
-裾
-褂
-複
-褐
-褒
-褓
-褔
-褚
-褥
-褪
-褫
-褲
-褶
-褻
-襁
-襄
-襟
-襠
-襪
-襬
-襯
-襲
-西
-要
-覃
-覆
-覇
-見
-規
-覓
-視
-覚
-覦
-覧
-親
-覬
-観
-覷
-覺
-覽
-觀
-见
-观
-规
-觅
-视
-览
-觉
-觊
-觎
-觐
-觑
-角
-觞
-解
-觥
-触
-觸
-言
-訂
-計
-訊
-討
-訓
-訕
-訖
-託
-記
-訛
-訝
-訟
-訣
-訥
-訪
-設
-許
-訳
-訴
-訶
-診
-註
-証
-詆
-詐
-詔
-評
-詛
-詞
-詠
-詡
-詢
-詣
-試
-詩
-詫
-詬
-詭
-詮
-詰
-話
-該
-詳
-詹
-詼
-誅
-誇
-誉
-誌
-認
-誓
-誕
-誘
-語
-誠
-誡
-誣
-誤
-誥
-誦
-誨
-說
-説
-読
-誰
-課
-誹
-誼
-調
-諄
-談
-請
-諏
-諒
-論
-諗
-諜
-諡
-諦
-諧
-諫
-諭
-諮
-諱
-諳
-諷
-諸
-諺
-諾
-謀
-謁
-謂
-謄
-謊
-謎
-謐
-謔
-謗
-謙
-講
-謝
-謠
-謨
-謬
-謹
-謾
-譁
-證
-譎
-譏
-識
-譙
-譚
-譜
-警
-譬
-譯
-議
-譲
-譴
-護
-譽
-讀
-變
-讓
-讚
-讞
-计
-订
-认
-讥
-讧
-讨
-让
-讪
-讫
-训
-议
-讯
-记
-讲
-讳
-讴
-讶
-讷
-许
-讹
-论
-讼
-讽
-设
-访
-诀
-证
-诃
-评
-诅
-识
-诈
-诉
-诊
-诋
-词
-诏
-译
-试
-诗
-诘
-诙
-诚
-诛
-话
-诞
-诟
-诠
-诡
-询
-诣
-诤
-该
-详
-诧
-诩
-诫
-诬
-语
-误
-诰
-诱
-诲
-说
-诵
-诶
-请
-诸
-诺
-读
-诽
-课
-诿
-谀
-谁
-调
-谄
-谅
-谆
-谈
-谊
-谋
-谌
-谍
-谎
-谏
-谐
-谑
-谒
-谓
-谔
-谕
-谗
-谘
-谙
-谚
-谛
-谜
-谟
-谢
-谣
-谤
-谥
-谦
-谧
-谨
-谩
-谪
-谬
-谭
-谯
-谱
-谲
-谴
-谶
-谷
-豁
-豆
-豇
-豈
-豉
-豊
-豌
-豎
-豐
-豔
-豚
-象
-豢
-豪
-豫
-豬
-豹
-豺
-貂
-貅
-貌
-貓
-貔
-貘
-貝
-貞
-負
-財
-貢
-貧
-貨
-販
-貪
-貫
-責
-貯
-貰
-貳
-貴
-貶
-買
-貸
-費
-貼
-貽
-貿
-賀
-賁
-賂
-賃
-賄
-資
-賈
-賊
-賑
-賓
-賜
-賞
-賠
-賡
-賢
-賣
-賤
-賦
-質
-賬
-賭
-賴
-賺
-購
-賽
-贅
-贈
-贊
-贍
-贏
-贓
-贖
-贛
-贝
-贞
-负
-贡
-财
-责
-贤
-败
-账
-货
-质
-贩
-贪
-贫
-贬
-购
-贮
-贯
-贰
-贱
-贲
-贴
-贵
-贷
-贸
-费
-贺
-贻
-贼
-贾
-贿
-赁
-赂
-赃
-资
-赅
-赈
-赊
-赋
-赌
-赎
-赏
-赐
-赓
-赔
-赖
-赘
-赚
-赛
-赝
-赞
-赠
-赡
-赢
-赣
-赤
-赦
-赧
-赫
-赭
-走
-赳
-赴
-赵
-赶
-起
-趁
-超
-越
-趋
-趕
-趙
-趟
-趣
-趨
-足
-趴
-趵
-趸
-趺
-趾
-跃
-跄
-跆
-跋
-跌
-跎
-跑
-跖
-跚
-跛
-距
-跟
-跡
-跤
-跨
-跩
-跪
-路
-跳
-践
-跷
-跹
-跺
-跻
-踉
-踊
-踌
-踏
-踐
-踝
-踞
-踟
-踢
-踩
-踪
-踮
-踱
-踴
-踵
-踹
-蹂
-蹄
-蹇
-蹈
-蹉
-蹊
-蹋
-蹑
-蹒
-蹙
-蹟
-蹣
-蹤
-蹦
-蹩
-蹬
-蹭
-蹲
-蹴
-蹶
-蹺
-蹼
-蹿
-躁
-躇
-躉
-躊
-躋
-躍
-躏
-躪
-身
-躬
-躯
-躲
-躺
-軀
-車
-軋
-軌
-軍
-軒
-軟
-転
-軸
-軼
-軽
-軾
-較
-載
-輒
-輓
-輔
-輕
-輛
-輝
-輟
-輩
-輪
-輯
-輸
-輻
-輾
-輿
-轄
-轅
-轆
-轉
-轍
-轎
-轟
-车
-轧
-轨
-轩
-转
-轭
-轮
-软
-轰
-轲
-轴
-轶
-轻
-轼
-载
-轿
-较
-辄
-辅
-辆
-辇
-辈
-辉
-辊
-辍
-辐
-辑
-输
-辕
-辖
-辗
-辘
-辙
-辛
-辜
-辞
-辟
-辣
-辦
-辨
-辩
-辫
-辭
-辮
-辯
-辰
-辱
-農
-边
-辺
-辻
-込
-辽
-达
-迁
-迂
-迄
-迅
-过
-迈
-迎
-运
-近
-返
-还
-这
-进
-远
-违
-连
-迟
-迢
-迤
-迥
-迦
-迩
-迪
-迫
-迭
-述
-迴
-迷
-迸
-迹
-迺
-追
-退
-送
-适
-逃
-逅
-逆
-选
-逊
-逍
-透
-逐
-递
-途
-逕
-逗
-這
-通
-逛
-逝
-逞
-速
-造
-逢
-連
-逮
-週
-進
-逵
-逶
-逸
-逻
-逼
-逾
-遁
-遂
-遅
-遇
-遊
-運
-遍
-過
-遏
-遐
-遑
-遒
-道
-達
-違
-遗
-遙
-遛
-遜
-遞
-遠
-遢
-遣
-遥
-遨
-適
-遭
-遮
-遲
-遴
-遵
-遶
-遷
-選
-遺
-遼
-遽
-避
-邀
-邁
-邂
-邃
-還
-邇
-邈
-邊
-邋
-邏
-邑
-邓
-邕
-邛
-邝
-邢
-那
-邦
-邨
-邪
-邬
-邮
-邯
-邰
-邱
-邳
-邵
-邸
-邹
-邺
-邻
-郁
-郅
-郊
-郎
-郑
-郜
-郝
-郡
-郢
-郤
-郦
-郧
-部
-郫
-郭
-郴
-郵
-郷
-郸
-都
-鄂
-鄉
-鄒
-鄔
-鄙
-鄞
-鄢
-鄧
-鄭
-鄰
-鄱
-鄲
-鄺
-酉
-酊
-酋
-酌
-配
-酐
-酒
-酗
-酚
-酝
-酢
-酣
-酥
-酩
-酪
-酬
-酮
-酯
-酰
-酱
-酵
-酶
-酷
-酸
-酿
-醃
-醇
-醉
-醋
-醍
-醐
-醒
-醚
-醛
-醜
-醞
-醣
-醪
-醫
-醬
-醮
-醯
-醴
-醺
-釀
-釁
-采
-釉
-释
-釋
-里
-重
-野
-量
-釐
-金
-釗
-釘
-釜
-針
-釣
-釦
-釧
-釵
-鈀
-鈉
-鈍
-鈎
-鈔
-鈕
-鈞
-鈣
-鈦
-鈪
-鈴
-鈺
-鈾
-鉀
-鉄
-鉅
-鉉
-鉑
-鉗
-鉚
-鉛
-鉤
-鉴
-鉻
-銀
-銃
-銅
-銑
-銓
-銖
-銘
-銜
-銬
-銭
-銮
-銳
-銷
-銹
-鋁
-鋅
-鋒
-鋤
-鋪
-鋰
-鋸
-鋼
-錄
-錐
-錘
-錚
-錠
-錢
-錦
-錨
-錫
-錮
-錯
-録
-錳
-錶
-鍊
-鍋
-鍍
-鍛
-鍥
-鍰
-鍵
-鍺
-鍾
-鎂
-鎊
-鎌
-鎏
-鎔
-鎖
-鎗
-鎚
-鎧
-鎬
-鎮
-鎳
-鏈
-鏖
-鏗
-鏘
-鏞
-鏟
-鏡
-鏢
-鏤
-鏽
-鐘
-鐮
-鐲
-鐳
-鐵
-鐸
-鐺
-鑄
-鑊
-鑑
-鑒
-鑣
-鑫
-鑰
-鑲
-鑼
-鑽
-鑾
-鑿
-针
-钉
-钊
-钎
-钏
-钒
-钓
-钗
-钙
-钛
-钜
-钝
-钞
-钟
-钠
-钡
-钢
-钣
-钤
-钥
-钦
-钧
-钨
-钩
-钮
-钯
-钰
-钱
-钳
-钴
-钵
-钺
-钻
-钼
-钾
-钿
-铀
-铁
-铂
-铃
-铄
-铅
-铆
-铉
-铎
-铐
-铛
-铜
-铝
-铠
-铡
-铢
-铣
-铤
-铨
-铩
-铬
-铭
-铮
-铰
-铲
-铵
-银
-铸
-铺
-链
-铿
-销
-锁
-锂
-锄
-锅
-锆
-锈
-锉
-锋
-锌
-锏
-锐
-锑
-错
-锚
-锟
-锡
-锢
-锣
-锤
-锥
-锦
-锭
-键
-锯
-锰
-锲
-锵
-锹
-锺
-锻
-镀
-镁
-镂
-镇
-镉
-镌
-镍
-镐
-镑
-镕
-镖
-镗
-镛
-镜
-镣
-镭
-镯
-镰
-镳
-镶
-長
-长
-門
-閃
-閉
-開
-閎
-閏
-閑
-閒
-間
-閔
-閘
-閡
-関
-閣
-閥
-閨
-閩
-閱
-閲
-閹
-閻
-閾
-闆
-闇
-闊
-闌
-闍
-闔
-闕
-闖
-闘
-關
-闡
-闢
-门
-闪
-闫
-闭
-问
-闯
-闰
-闲
-间
-闵
-闷
-闸
-闹
-闺
-闻
-闽
-闾
-阀
-阁
-阂
-阅
-阆
-阇
-阈
-阉
-阎
-阐
-阑
-阔
-阕
-阖
-阙
-阚
-阜
-队
-阡
-阪
-阮
-阱
-防
-阳
-阴
-阵
-阶
-阻
-阿
-陀
-陂
-附
-际
-陆
-陇
-陈
-陋
-陌
-降
-限
-陕
-陛
-陝
-陞
-陟
-陡
-院
-陣
-除
-陨
-险
-陪
-陰
-陲
-陳
-陵
-陶
-陷
-陸
-険
-陽
-隅
-隆
-隈
-隊
-隋
-隍
-階
-随
-隐
-隔
-隕
-隘
-隙
-際
-障
-隠
-隣
-隧
-隨
-險
-隱
-隴
-隶
-隸
-隻
-隼
-隽
-难
-雀
-雁
-雄
-雅
-集
-雇
-雉
-雋
-雌
-雍
-雎
-雏
-雑
-雒
-雕
-雖
-雙
-雛
-雜
-雞
-離
-難
-雨
-雪
-雯
-雰
-雲
-雳
-零
-雷
-雹
-電
-雾
-需
-霁
-霄
-霆
-震
-霈
-霉
-霊
-霍
-霎
-霏
-霑
-霓
-霖
-霜
-霞
-霧
-霭
-霰
-露
-霸
-霹
-霽
-霾
-靂
-靄
-靈
-青
-靓
-靖
-静
-靚
-靛
-靜
-非
-靠
-靡
-面
-靥
-靦
-革
-靳
-靴
-靶
-靼
-鞅
-鞋
-鞍
-鞏
-鞑
-鞘
-鞠
-鞣
-鞦
-鞭
-韆
-韋
-韌
-韓
-韜
-韦
-韧
-韩
-韬
-韭
-音
-韵
-韶
-韻
-響
-頁
-頂
-頃
-項
-順
-須
-頌
-預
-頑
-頒
-頓
-頗
-領
-頜
-頡
-頤
-頫
-頭
-頰
-頷
-頸
-頹
-頻
-頼
-顆
-題
-額
-顎
-顏
-顔
-願
-顛
-類
-顧
-顫
-顯
-顱
-顴
-页
-顶
-顷
-项
-顺
-须
-顼
-顽
-顾
-顿
-颁
-颂
-预
-颅
-领
-颇
-颈
-颉
-颊
-颌
-颍
-颐
-频
-颓
-颔
-颖
-颗
-题
-颚
-颛
-颜
-额
-颞
-颠
-颡
-颢
-颤
-颦
-颧
-風
-颯
-颱
-颳
-颶
-颼
-飄
-飆
-风
-飒
-飓
-飕
-飘
-飙
-飚
-飛
-飞
-食
-飢
-飨
-飩
-飪
-飯
-飲
-飼
-飽
-飾
-餃
-餅
-餉
-養
-餌
-餐
-餒
-餓
-餘
-餚
-餛
-餞
-餡
-館
-餮
-餵
-餾
-饅
-饈
-饋
-饌
-饍
-饑
-饒
-饕
-饗
-饞
-饥
-饨
-饪
-饬
-饭
-饮
-饯
-饰
-饱
-饲
-饴
-饵
-饶
-饷
-饺
-饼
-饽
-饿
-馀
-馁
-馄
-馅
-馆
-馈
-馋
-馍
-馏
-馒
-馔
-首
-馗
-香
-馥
-馨
-馬
-馭
-馮
-馳
-馴
-駁
-駄
-駅
-駆
-駐
-駒
-駕
-駛
-駝
-駭
-駱
-駿
-騁
-騎
-騏
-験
-騙
-騨
-騰
-騷
-驀
-驅
-驊
-驍
-驒
-驕
-驗
-驚
-驛
-驟
-驢
-驥
-马
-驭
-驮
-驯
-驰
-驱
-驳
-驴
-驶
-驷
-驸
-驹
-驻
-驼
-驾
-驿
-骁
-骂
-骄
-骅
-骆
-骇
-骈
-骊
-骋
-验
-骏
-骐
-骑
-骗
-骚
-骛
-骜
-骞
-骠
-骡
-骤
-骥
-骧
-骨
-骯
-骰
-骶
-骷
-骸
-骼
-髂
-髅
-髋
-髏
-髒
-髓
-體
-髖
-高
-髦
-髪
-髮
-髯
-髻
-鬃
-鬆
-鬍
-鬓
-鬚
-鬟
-鬢
-鬣
-鬥
-鬧
-鬱
-鬼
-魁
-魂
-魄
-魅
-魇
-魍
-魏
-魔
-魘
-魚
-魯
-魷
-鮑
-鮨
-鮪
-鮭
-鮮
-鯉
-鯊
-鯖
-鯛
-鯨
-鯰
-鯽
-鰍
-鰓
-鰭
-鰲
-鰻
-鰾
-鱈
-鱉
-鱔
-鱗
-鱷
-鱸
-鱼
-鱿
-鲁
-鲈
-鲍
-鲑
-鲛
-鲜
-鲟
-鲢
-鲤
-鲨
-鲫
-鲱
-鲲
-鲶
-鲷
-鲸
-鳃
-鳄
-鳅
-鳌
-鳍
-鳕
-鳖
-鳗
-鳝
-鳞
-鳥
-鳩
-鳳
-鳴
-鳶
-鴉
-鴕
-鴛
-鴦
-鴨
-鴻
-鴿
-鵑
-鵜
-鵝
-鵡
-鵬
-鵰
-鵲
-鶘
-鶩
-鶯
-鶴
-鷗
-鷲
-鷹
-鷺
-鸚
-鸞
-鸟
-鸠
-鸡
-鸢
-鸣
-鸥
-鸦
-鸨
-鸪
-鸭
-鸯
-鸳
-鸵
-鸽
-鸾
-鸿
-鹂
-鹃
-鹄
-鹅
-鹈
-鹉
-鹊
-鹌
-鹏
-鹑
-鹕
-鹘
-鹜
-鹞
-鹤
-鹦
-鹧
-鹫
-鹭
-鹰
-鹳
-鹵
-鹹
-鹼
-鹽
-鹿
-麂
-麋
-麒
-麓
-麗
-麝
-麟
-麥
-麦
-麩
-麴
-麵
-麸
-麺
-麻
-麼
-麽
-麾
-黃
-黄
-黍
-黎
-黏
-黑
-黒
-黔
-默
-黛
-黜
-黝
-點
-黠
-黨
-黯
-黴
-鼋
-鼎
-鼐
-鼓
-鼠
-鼬
-鼹
-鼻
-鼾
-齁
-齊
-齋
-齐
-齒
-齡
-齢
-齣
-齦
-齿
-龄
-龅
-龈
-龊
-龋
-龌
-龍
-龐
-龔
-龕
-龙
-龚
-龛
-龜
-龟
-︰
-︱
-︶
-︿
-﹁
-﹂
-﹍
-﹏
-﹐
-﹑
-﹒
-﹔
-﹕
-﹖
-﹗
-﹙
-﹚
-﹝
-﹞
-﹡
-﹣
-!
-"
-#
-$
-%
-&
-'
-(
-)
-*
-+
-,
--
-.
-/
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-:
-;
-<
-=
->
-?
-@
-[
-\
-]
-^
-_
-`
-a
-b
-c
-d
-e
-f
-g
-h
-i
-j
-k
-l
-m
-n
-o
-p
-q
-r
-s
-t
-u
-v
-w
-x
-y
-z
-{
-|
-}
-~
-。
-「
-」
-、
-・
-ッ
-ー
-イ
-ク
-シ
-ス
-ト
-ノ
-フ
-ラ
-ル
-ン
-゙
-゚
- ̄
-¥
-👍
-🔥
-😂
-😎
-...
-yam
-10
-2017
-12
-11
-2016
-20
-30
-15
-06
-lofter
-##s
-2015
-by
-16
-14
-18
-13
-24
-17
-2014
-21
-##0
-22
-19
-25
-23
-com
-100
-00
-05
-2013
-##a
-03
-09
-08
-28
-##2
-50
-01
-04
-##1
-27
-02
-2012
-##3
-26
-##e
-07
-##8
-##5
-##6
-##4
-##9
-##7
-29
-2011
-40
-##t
-2010
-##o
-##d
-##i
-2009
-##n
-app
-www
-the
-##m
-31
-##c
-##l
-##y
-##r
-##g
-2008
-60
-http
-200
-qq
-##p
-80
-##f
-google
-pixnet
-90
-cookies
-tripadvisor
-500
-##er
-##k
-35
-##h
-facebook
-2007
-2000
-70
-##b
-of
-##x
-##u
-45
-300
-iphone
-32
-1000
-2006
-48
-ip
-36
-in
-38
-3d
-##w
-##ing
-55
-ctrip
-##on
-##v
-33
-##の
-to
-34
-400
-id
-2005
-it
-37
-windows
-llc
-top
-99
-42
-39
-000
-led
-at
-##an
-41
-51
-52
-46
-49
-43
-53
-44
-##z
-android
-58
-and
-59
-2004
-56
-vr
-##か
-5000
-2003
-47
-blogthis
-twitter
-54
-##le
-150
-ok
-2018
-57
-75
-cn
-no
-ios
-##in
-##mm
-##00
-800
-on
-te
-3000
-65
-2001
-360
-95
-ig
-lv
-120
-##ng
-##を
-##us
-##に
-pc
-てす
-──
-600
-##te
-85
-2002
-88
-##ed
-html
-ncc
-wifi
-email
-64
-blog
-is
-##10
-##て
-mail
-online
-##al
-dvd
-##ic
-studio
-##は
-##℃
-##ia
-##と
-line
-vip
-72
-##q
-98
-##ce
-##en
-for
-##is
-##ra
-##es
-##j
-usb
-net
-cp
-1999
-asia
-4g
-##cm
-diy
-new
-3c
-##お
-ta
-66
-language
-vs
-apple
-tw
-86
-web
-##ne
-ipad
-62
-you
-##re
-101
-68
-##tion
-ps
-de
-bt
-pony
-atm
-##2017
-1998
-67
-##ch
-ceo
-##or
-go
-##na
-av
-pro
-cafe
-96
-pinterest
-97
-63
-pixstyleme3c
-##ta
-more
-said
-##2016
-1997
-mp3
-700
-##ll
-nba
-jun
-##20
-92
-tv
-1995
-pm
-61
-76
-nbsp
-250
-##ie
-linux
-##ma
-cd
-110
-hd
-##17
-78
-##ion
-77
-6000
-am
-##th
-##st
-94
-##se
-##et
-69
-180
-gdp
-my
-105
-81
-abc
-89
-flash
-79
-one
-93
-1990
-1996
-##ck
-gps
-##も
-##ly
-web885
-106
-2020
-91
-##ge
-4000
-1500
-xd
-boss
-isbn
-1994
-org
-##ry
-me
-love
-##11
-0fork
-73
-##12
-3g
-##ter
-##ar
-71
-82
-##la
-hotel
-130
-1970
-pk
-83
-87
-140
-ie
-##os
-##30
-##el
-74
-##50
-seo
-cpu
-##ml
-p2p
-84
-may
-##る
-sun
-tue
-internet
-cc
-posted
-youtube
-##at
-##ン
-##man
-ii
-##ル
-##15
-abs
-nt
-pdf
-yahoo
-ago
-1980
-##it
-news
-mac
-104
-##てす
-##me
-##り
-java
-1992
-spa
-##de
-##nt
-hk
-all
-plus
-la
-1993
-##mb
-##16
-##ve
-west
-##da
-160
-air
-##い
-##ps
-から
-##to
-1989
-logo
-htc
-php
-https
-fi
-momo
-##son
-sat
-##ke
-##80
-ebd
-suv
-wi
-day
-apk
-##88
-##um
-mv
-galaxy
-wiki
-or
-brake
-##ス
-1200
-する
-this
-1991
-mon
-##こ
-❤2017
-po
-##ない
-javascript
-life
-home
-june
-##ss
-system
-900
-##ー
-##0
-pp
-1988
-world
-fb
-4k
-br
-##as
-ic
-ai
-leonardo
-safari
-##60
-live
-free
-xx
-wed
-win7
-kiehl
-##co
-lg
-o2o
-##go
-us
-235
-1949
-mm
-しい
-vfm
-kanye
-##90
-##2015
-##id
-jr
-##ey
-123
-rss
-##sa
-##ro
-##am
-##no
-thu
-fri
-350
-##sh
-##ki
-103
-comments
-name
-##のて
-##pe
-##ine
-max
-1987
-8000
-uber
-##mi
-##ton
-wordpress
-office
-1986
-1985
-##ment
-107
-bd
-win10
-##ld
-##li
-gmail
-bb
-dior
-##rs
-##ri
-##rd
-##ます
-up
-cad
-##®
-dr
-して
-read
-##21
-をお
-##io
-##99
-url
-1984
-pvc
-paypal
-show
-policy
-##40
-##ty
-##18
-with
-##★
-##01
-txt
-102
-##ba
-dna
-from
-post
-mini
-ar
-taiwan
-john
-##ga
-privacy
-agoda
-##13
-##ny
-word
-##24
-##22
-##by
-##ur
-##hz
-1982
-##ang
-265
-cookie
-netscape
-108
-##ka
-##~
-##ad
-house
-share
-note
-ibm
-code
-hello
-nike
-sim
-survey
-##016
-1979
-1950
-wikia
-##32
-##017
-5g
-cbc
-##tor
-##kg
-1983
-##rt
-##14
-campaign
-store
-2500
-os
-##ct
-##ts
-##°
-170
-api
-##ns
-365
-excel
-##な
-##ao
-##ら
-##し
-~~
-##nd
-university
-163
-には
-518
-##70
-##ya
-##il
-##25
-pierre
-ipo
-0020
-897
-##23
-hotels
-##ian
-のお
-125
-years
-6606
-##ers
-##26
-high
-##day
-time
-##ay
-bug
-##line
-##く
-##す
-##be
-xp
-talk2yam
-yamservice
-10000
-coco
-##dy
-sony
-##ies
-1978
-microsoft
-david
-people
-##ha
-1960
-instagram
-intel
-その
-##ot
-iso
-1981
-##va
-115
-##mo
-##land
-xxx
-man
-co
-ltxsw
-##ation
-baby
-220
-##pa
-##ol
-1945
-7000
-tag
-450
-##ue
-msn
-##31
-oppo
-##ト
-##ca
-control
-##om
-st
-chrome
-##ure
-##ん
-be
-##き
-lol
-##19
-した
-##bo
-240
-lady
-##100
-##way
-##から
-4600
-##ko
-##do
-##un
-4s
-corporation
-168
-##ni
-herme
-##28
-cp
-978
-##up
-##06
-ui
-##ds
-ppt
-admin
-three
-します
-bbc
-re
-128
-##48
-ca
-##015
-##35
-hp
-##ee
-tpp
-##た
-##ive
-××
-root
-##cc
-##ました
-##ble
-##ity
-adobe
-park
-114
-et
-oled
-city
-##ex
-##ler
-##ap
-china
-##book
-20000
-view
-##ice
-global
-##km
-your
-hong
-##mg
-out
-##ms
-ng
-ebay
-##29
-menu
-ubuntu
-##cy
-rom
-##view
-open
-ktv
-do
-server
-##lo
-if
-english
-##ね
-##5
-##oo
-1600
-##02
-step1
-kong
-club
-135
-july
-inc
-1976
-mr
-hi
-##net
-touch
-##ls
-##ii
-michael
-lcd
-##05
-##33
-phone
-james
-step2
-1300
-ios9
-##box
-dc
-##2
-##ley
-samsung
-111
-280
-pokemon
-css
-##ent
-##les
-いいえ
-##1
-s8
-atom
-play
-bmw
-##said
-sa
-etf
-ctrl
-♥yoyo♥
-##55
-2025
-##2014
-##66
-adidas
-amazon
-1958
-##ber
-##ner
-visa
-##77
-##der
-1800
-connectivity
-##hi
-firefox
-109
-118
-hr
-so
-style
-mark
-pop
-ol
-skip
-1975
-as
-##27
-##ir
-##61
-190
-mba
-##う
-##ai
-le
-##ver
-1900
-cafe2017
-lte
-super
-113
-129
-##ron
-amd
-like
-##☆
-are
-##ster
-we
-##sk
-paul
-data
-international
-##ft
-longchamp
-ssd
-good
-##ート
-##ti
-reply
-##my
-↓↓↓
-apr
-star
-##ker
-source
-136
-js
-112
-get
-force
-photo
-##one
-126
-##2013
-##ow
-link
-bbs
-1972
-goods
-##lin
-python
-119
-##ip
-game
-##ics
-##ません
-blue
-##●
-520
-##45
-page
-itunes
-##03
-1955
-260
-1968
-gt
-gif
-618
-##ff
-##47
-group
-くたさい
-about
-bar
-ganji
-##nce
-music
-lee
-not
-1977
-1971
-1973
-##per
-an
-faq
-comment
-##って
-days
-##ock
-116
-##bs
-1974
-1969
-v1
-player
-1956
-xbox
-sql
-fm
-f1
-139
-##ah
-210
-##lv
-##mp
-##000
-melody
-1957
-##3
-550
-17life
-199
-1966
-xml
-market
-##au
-##71
-999
-##04
-what
-gl
-##95
-##age
-tips
-##68
-book
-##ting
-mysql
-can
-1959
-230
-##ung
-wonderland
-watch
-10℃
-##ction
-9000
-mar
-mobile
-1946
-1962
-article
-##db
-part
-▲top
-party
-って
-1967
-1964
-1948
-##07
-##ore
-##op
-この
-dj
-##78
-##38
-010
-main
-225
-1965
-##ong
-art
-320
-ad
-134
-020
-##73
-117
-pm2
-japan
-228
-##08
-ts
-1963
-##ica
-der
-sm
-##36
-2019
-##wa
-ct
-##7
-##や
-##64
-1937
-homemesh
-search
-##85
-##れは
-##tv
-##di
-macbook
-##9
-##くたさい
-service
-##♥
-type
-った
-750
-##ier
-##si
-##75
-##います
-##ok
-best
-##ット
-goris
-lock
-##った
-cf
-3m
-big
-##ut
-ftp
-carol
-##vi
-10
-1961
-happy
-sd
-##ac
-122
-anti
-pe
-cnn
-iii
-1920
-138
-##ラ
-1940
-esp
-jan
-tags
-##98
-##51
-august
-vol
-##86
-154
-##™
-##fs
-##れ
-##sion
-design
-ac
-##ム
-press
-jordan
-ppp
-that
-key
-check
-##6
-##tt
-##㎡
-1080p
-##lt
-power
-##42
-1952
-##bc
-vivi
-##ック
-he
-133
-121
-jpg
-##rry
-201
-175
-3500
-1947
-nb
-##ted
-##rn
-しています
-1954
-usd
-##t00
-master
-##ンク
-001
-model
-##58
-al
-##09
-1953
-##34
-ram
-goo
-ても
-##ui
-127
-1930
-red
-##ary
-rpg
-item
-##pm
-##41
-270
-##za
-project
-##2012
-hot
-td
-blogabstract
-##ger
-##62
-650
-##44
-gr2
-##します
-##m
-black
-electronic
-nfc
-year
-asus
-また
-html5
-cindy
-##hd
-m3
-132
-esc
-##od
-booking
-##53
-fed
-tvb
-##81
-##ina
-mit
-165
-##いる
-chan
-192
-distribution
-next
-になる
-peter
-bios
-steam
-cm
-1941
-にも
-pk10
-##ix
-##65
-##91
-dec
-nasa
-##ana
-icecat
-00z
-b1
-will
-##46
-li
-se
-##ji
-##み
-##ard
-oct
-##ain
-jp
-##ze
-##bi
-cio
-##56
-smart
-h5
-##39
-##port
-curve
-vpn
-##nm
-##dia
-utc
-##あり
-12345678910
-##52
-rmvb
-chanel
-a4
-miss
-##and
-##im
-media
-who
-##63
-she
-girl
-5s
-124
-vera
-##して
-class
-vivo
-king
-##フ
-##ei
-national
-ab
-1951
-5cm
-888
-145
-ipod
-ap
-1100
-5mm
-211
-ms
-2756
-##69
-mp4
-msci
-##po
-##89
-131
-mg
-index
-380
-##bit
-##out
-##zz
-##97
-##67
-158
-apec
-##8
-photoshop
-opec
-¥799
-ては
-##96
-##tes
-##ast
-2g
-○○
-##ール
-¥2899
-##ling
-##よ
-##ory
-1938
-##ical
-kitty
-content
-##43
-step3
-##cn
-win8
-155
-vc
-1400
-iphone7
-robert
-##した
-tcl
-137
-beauty
-##87
-en
-dollars
-##ys
-##oc
-step
-pay
-yy
-a1
-##2011
-##lly
-##ks
-##♪
-1939
-188
-download
-1944
-sep
-exe
-ph
-います
-school
-gb
-center
-pr
-street
-##board
-uv
-##37
-##lan
-winrar
-##que
-##ua
-##com
-1942
-1936
-480
-gpu
-##4
-ettoday
-fu
-tom
-##54
-##ren
-##via
-149
-##72
-b2b
-144
-##79
-##tch
-rose
-arm
-mb
-##49
-##ial
-##nn
-nvidia
-step4
-mvp
-00㎡
-york
-156
-##イ
-how
-cpi
-591
-2765
-gov
-kg
-joe
-##xx
-mandy
-pa
-##ser
-copyright
-fashion
-1935
-don
-##け
-ecu
-##ist
-##art
-erp
-wap
-have
-##lm
-talk
-##ek
-##ning
-##if
-ch
-##ite
-video
-1943
-cs
-san
-iot
-look
-##84
-##2010
-##ku
-october
-##ux
-trump
-##hs
-##ide
-box
-141
-first
-##ins
-april
-##ight
-##83
-185
-angel
-protected
-aa
-151
-162
-x1
-m2
-##fe
-##×
-##ho
-size
-143
-min
-ofo
-fun
-gomaji
-ex
-hdmi
-food
-dns
-march
-chris
-kevin
-##のか
-##lla
-##pp
-##ec
-ag
-ems
-6s
-720p
-##rm
-##ham
-off
-##92
-asp
-team
-fandom
-ed
-299
-▌♥
-##ell
-info
-されています
-##82
-sina
-4066
-161
-##able
-##ctor
-330
-399
-315
-dll
-rights
-ltd
-idc
-jul
-3kg
-1927
-142
-ma
-surface
-##76
-##ク
-~~~
-304
-mall
-eps
-146
-green
-##59
-map
-space
-donald
-v2
-sodu
-##light
-1931
-148
-1700
-まて
-310
-reserved
-htm
-##han
-##57
-2d
-178
-mod
-##ise
-##tions
-152
-ti
-##shi
-doc
-1933
-icp
-055
-wang
-##ram
-shopping
-aug
-##pi
-##well
-now
-wam
-b2
-からお
-##hu
-236
-1928
-##gb
-266
-f2
-##93
-153
-mix
-##ef
-##uan
-bwl
-##plus
-##res
-core
-##ess
-tea
-5℃
-hktvmall
-nhk
-##ate
-list
-##ese
-301
-feb
-4m
-inn
-ての
-nov
-159
-12345
-daniel
-##ci
-pass
-##bet
-##nk
-coffee
-202
-ssl
-airbnb
-##ute
-fbi
-woshipm
-skype
-ea
-cg
-sp
-##fc
-##www
-yes
-edge
-alt
-007
-##94
-fpga
-##ght
-##gs
-iso9001
-さい
-##ile
-##wood
-##uo
-image
-lin
-icon
-american
-##em
-1932
-set
-says
-##king
-##tive
-blogger
-##74
-なと
-256
-147
-##ox
-##zy
-##red
-##ium
-##lf
-nokia
-claire
-##リ
-##ding
-november
-lohas
-##500
-##tic
-##マ
-##cs
-##ある
-##che
-##ire
-##gy
-##ult
-db
-january
-win
-##カ
-166
-road
-ptt
-##ま
-##つ
-198
-##fa
-##mer
-anna
-pchome
-はい
-udn
-ef
-420
-##time
-##tte
-2030
-##ア
-g20
-white
-かかります
-1929
-308
-garden
-eleven
-di
-##おります
-chen
-309b
-777
-172
-young
-cosplay
-ちてない
-4500
-bat
-##123
-##tra
-##ては
-kindle
-npc
-steve
-etc
-##ern
-##|
-call
-xperia
-ces
-travel
-sk
-s7
-##ous
-1934
-##int
-みいたたけます
-183
-edu
-file
-cho
-qr
-##car
-##our
-186
-##ant
-##d
-eric
-1914
-rends
-##jo
-##する
-mastercard
-##2000
-kb
-##min
-290
-##ino
-vista
-##ris
-##ud
-jack
-2400
-##set
-169
-pos
-1912
-##her
-##ou
-taipei
-しく
-205
-beta
-##ませんか
-232
-##fi
-express
-255
-body
-##ill
-aphojoy
-user
-december
-meiki
-##ick
-tweet
-richard
-##av
-##ᆫ
-iphone6
-##dd
-ちてすか
-views
-##mark
-321
-pd
-##00
-times
-##▲
-level
-##ash
-10g
-point
-5l
-##ome
-208
-koreanmall
-##ak
-george
-q2
-206
-wma
-tcp
-##200
-スタッフ
-full
-mlb
-##lle
-##watch
-tm
-run
-179
-911
-smith
-business
-##und
-1919
-color
-##tal
-222
-171
-##less
-moon
-4399
-##rl
-update
-pcb
-shop
-499
-157
-little
-なし
-end
-##mhz
-van
-dsp
-easy
-660
-##house
-##key
-history
-##o
-oh
-##001
-##hy
-##web
-oem
-let
-was
-##2009
-##gg
-review
-##wan
-182
-##°c
-203
-uc
-title
-##val
-united
-233
-2021
-##ons
-doi
-trivago
-overdope
-sbs
-##ance
-##ち
-grand
-special
-573032185
-imf
-216
-wx17house
-##so
-##ーム
-audi
-##he
-london
-william
-##rp
-##ake
-science
-beach
-cfa
-amp
-ps4
-880
-##800
-##link
-##hp
-crm
-ferragamo
-bell
-make
-##eng
-195
-under
-zh
-photos
-2300
-##style
-##ント
-via
-176
-da
-##gi
-company
-i7
-##ray
-thomas
-370
-ufo
-i5
-##max
-plc
-ben
-back
-research
-8g
-173
-mike
-##pc
-##ッフ
-september
-189
-##ace
-vps
-february
-167
-pantos
-wp
-lisa
-1921
-★★
-jquery
-night
-long
-offer
-##berg
-##news
-1911
-##いて
-ray
-fks
-wto
-せます
-over
-164
-340
-##all
-##rus
-1924
-##888
-##works
-blogtitle
-loftpermalink
-##→
-187
-martin
-test
-ling
-km
-##め
-15000
-fda
-v3
-##ja
-##ロ
-wedding
-かある
-outlet
-family
-##ea
-をこ
-##top
-story
-##ness
-salvatore
-##lu
-204
-swift
-215
-room
-している
-oracle
-##ul
-1925
-sam
-b2c
-week
-pi
-rock
-##のは
-##a
-##けと
-##ean
-##300
-##gle
-cctv
-after
-chinese
-##back
-powered
-x2
-##tan
-1918
-##nes
-##イン
-canon
-only
-181
-##zi
-##las
-say
-##oe
-184
-##sd
-221
-##bot
-##world
-##zo
-sky
-made
-top100
-just
-1926
-pmi
-802
-234
-gap
-##vr
-177
-les
-174
-▲topoct
-ball
-vogue
-vi
-ing
-ofweek
-cos
-##list
-##ort
-▲topmay
-##なら
-##lon
-として
-last
-##tc
-##of
-##bus
-##gen
-real
-eva
-##コ
-a3
-nas
-##lie
-##ria
-##coin
-##bt
-▲topapr
-his
-212
-cat
-nata
-vive
-health
-⋯⋯
-drive
-sir
-▲topmar
-du
-cup
-##カー
-##ook
-##よう
-##sy
-alex
-msg
-tour
-しました
-3ce
-##word
-193
-ebooks
-r8
-block
-318
-##より
-2200
-nice
-pvp
-207
-months
-1905
-rewards
-##ther
-1917
-0800
-##xi
-##チ
-##sc
-micro
-850
-gg
-blogfp
-op
-1922
-daily
-m1
-264
-true
-##bb
-ml
-##tar
-##のお
-##ky
-anthony
-196
-253
-##yo
-state
-218
-##ara
-##aa
-##rc
-##tz
-##ston
-より
-gear
-##eo
-##ade
-ge
-see
-1923
-##win
-##ura
-ss
-heart
-##den
-##ita
-down
-##sm
-el
-png
-2100
-610
-rakuten
-whatsapp
-bay
-dream
-add
-##use
-680
-311
-pad
-gucci
-mpv
-##ode
-##fo
-island
-▲topjun
-##▼
-223
-jason
-214
-chicago
-##❤
-しの
-##hone
-io
-##れる
-##ことか
-sogo
-be2
-##ology
-990
-cloud
-vcd
-##con
-2~3
-##ford
-##joy
-##kb
-##こさいます
-##rade
-but
-##ach
-docker
-##ful
-rfid
-ul
-##ase
-hit
-ford
-##star
-580
-##○
-11
-a2
-sdk
-reading
-edited
-##are
-cmos
-##mc
-238
-siri
-light
-##ella
-##ため
-bloomberg
-##read
-pizza
-##ison
-jimmy
-##vm
-college
-node
-journal
-ba
-18k
-##play
-245
-##cer
-20
-magic
-##yu
-191
-jump
-288
-tt
-##ings
-asr
-##lia
-3200
-step5
-network
-##cd
-mc
-いします
-1234
-pixstyleme
-273
-##600
-2800
-money
-★★★★★
-1280
-12
-430
-bl
-みの
-act
-##tus
-tokyo
-##rial
-##life
-emba
-##ae
-saas
-tcs
-##rk
-##wang
-summer
-##sp
-ko
-##ving
-390
-premium
-##その
-netflix
-##ヒ
-uk
-mt
-##lton
-right
-frank
-two
-209
-える
-##ple
-##cal
-021
-##んな
-##sen
-##ville
-hold
-nexus
-dd
-##ius
-てお
-##mah
-##なく
-tila
-zero
-820
-ce
-##tin
-resort
-##ws
-charles
-old
-p10
-5d
-report
-##360
-##ru
-##には
-bus
-vans
-lt
-##est
-pv
-##レ
-links
-rebecca
-##ツ
-##dm
-azure
-##365
-きな
-limited
-bit
-4gb
-##mon
-1910
-moto
-##eam
-213
-1913
-var
-eos
-なとの
-226
-blogspot
-された
-699
-e3
-dos
-dm
-fc
-##ments
-##ik
-##kw
-boy
-##bin
-##ata
-960
-er
-##せ
-219
-##vin
-##tu
-##ula
-194
-##∥
-station
-##ろ
-##ature
-835
-files
-zara
-hdr
-top10
-nature
-950
-magazine
-s6
-marriott
-##シ
-avira
-case
-##っと
-tab
-##ran
-tony
-##home
-oculus
-im
-##ral
-jean
-saint
-cry
-307
-rosie
-##force
-##ini
-ice
-##bert
-のある
-##nder
-##mber
-pet
-2600
-##◆
-plurk
-▲topdec
-##sis
-00kg
-▲topnov
-720
-##ence
-tim
-##ω
-##nc
-##ても
-##name
-log
-ips
-great
-ikea
-malaysia
-unix
-##イト
-3600
-##ncy
-##nie
-12000
-akb48
-##ye
-##oid
-404
-##chi
-##いた
-oa
-xuehai
-##1000
-##orm
-##rf
-275
-さん
-##ware
-##リー
-980
-ho
-##pro
-text
-##era
-560
-bob
-227
-##ub
-##2008
-8891
-scp
-avi
-##zen
-2022
-mi
-wu
-museum
-qvod
-apache
-lake
-jcb
-▲topaug
-★★★
-ni
-##hr
-hill
-302
-ne
-weibo
-490
-ruby
-##ーシ
-##ヶ
-##row
-4d
-▲topjul
-iv
-##ish
-github
-306
-mate
-312
-##スト
-##lot
-##ane
-andrew
-のハイト
-##tina
-t1
-rf
-ed2k
-##vel
-##900
-way
-final
-りの
-ns
-5a
-705
-197
-##メ
-sweet
-bytes
-##ene
-▲topjan
-231
-##cker
-##2007
-##px
-100g
-topapp
-229
-helpapp
-rs
-low
-14k
-g4g
-care
-630
-ldquo
-あり
-##fork
-leave
-rm
-edition
-##gan
-##zon
-##qq
-▲topsep
-##google
-##ism
-gold
-224
-explorer
-##zer
-toyota
-category
-select
-visual
-##labels
-restaurant
-##md
-posts
-s1
-##ico
-もっと
-angelababy
-123456
-217
-sports
-s3
-mbc
-1915
-してくたさい
-shell
-x86
-candy
-##new
-kbs
-face
-xl
-470
-##here
-4a
-swissinfo
-v8
-▲topfeb
-dram
-##ual
-##vice
-3a
-##wer
-sport
-q1
-ios10
-public
-int
-card
-##c
-ep
-au
-rt
-##れた
-1080
-bill
-##mll
-kim
-30
-460
-wan
-##uk
-##ミ
-x3
-298
-0t
-scott
-##ming
-239
-e5
-##3d
-h7n9
-worldcat
-brown
-##あります
-##vo
-##led
-##580
-##ax
-249
-410
-##ert
-paris
-##~6
-polo
-925
-##lr
-599
-##ナ
-capital
-##hing
-bank
-cv
-1g
-##chat
-##s
-##たい
-adc
-##ule
-2m
-##e
-digital
-hotmail
-268
-##pad
-870
-bbq
-quot
-##ring
-before
-wali
-##まて
-mcu
-2k
-2b
-という
-costco
-316
-north
-333
-switch
-##city
-##p
-philips
-##mann
-management
-panasonic
-##cl
-##vd
-##ping
-##rge
-alice
-##lk
-##ましょう
-css3
-##ney
-vision
-alpha
-##ular
-##400
-##tter
-lz
-にお
-##ありません
-mode
-gre
-1916
-pci
-##tm
-237
-1~2
-##yan
-##そ
-について
-##let
-##キ
-work
-war
-coach
-ah
-mary
-##ᅵ
-huang
-##pt
-a8
-pt
-follow
-##berry
-1895
-##ew
-a5
-ghost
-##ション
-##wn
-##og
-south
-##code
-girls
-##rid
-action
-villa
-git
-r11
-table
-games
-##cket
-error
-##anonymoussaid
-##ag
-here
-##ame
-##gc
-qa
-##■
-##lis
-gmp
-##gin
-vmalife
-##cher
-yu
-wedding
-##tis
-demo
-dragon
-530
-soho
-social
-bye
-##rant
-river
-orz
-acer
-325
-##↑
-##ース
-##ats
-261
-del
-##ven
-440
-ups
-##ように
-##ター
-305
-value
-macd
-yougou
-##dn
-661
-##ano
-ll
-##urt
-##rent
-continue
-script
-##wen
-##ect
-paper
-263
-319
-shift
-##chel
-##フト
-##cat
-258
-x5
-fox
-243
-##さん
-car
-aaa
-##blog
-loading
-##yn
-##tp
-kuso
-799
-si
-sns
-イカせるテンマ
-ヒンクテンマ3
-rmb
-vdc
-forest
-central
-prime
-help
-ultra
-##rmb
-##ような
-241
-square
-688
-##しい
-のないフロクに
-##field
-##reen
-##ors
-##ju
-c1
-start
-510
-##air
-##map
-cdn
-##wo
-cba
-stephen
-m8
-100km
-##get
-opera
-##base
-##ood
-vsa
-com™
-##aw
-##ail
-251
-なのて
-count
-t2
-##ᅡ
-##een
-2700
-hop
-##gp
-vsc
-tree
-##eg
-##ose
-816
-285
-##ories
-##shop
-alphago
-v4
-1909
-simon
-##ᆼ
-fluke62max
-zip
-スホンサー
-##sta
-louis
-cr
-bas
-##~10
-bc
-##yer
-hadoop
-##ube
-##wi
-1906
-0755
-hola
-##low
-place
-centre
-5v
-d3
-##fer
-252
-##750
-##media
-281
-540
-0l
-exchange
-262
-series
-##ハー
-##san
-eb
-##bank
-##k
-q3
-##nge
-##mail
-take
-##lp
-259
-1888
-client
-east
-cache
-event
-vincent
-##ールを
-きを
-##nse
-sui
-855
-adchoice
-##и
-##stry
-##なたの
-246
-##zone
-ga
-apps
-sea
-##ab
-248
-cisco
-##タ
-##rner
-kymco
-##care
-dha
-##pu
-##yi
-minkoff
-royal
-p1
-への
-annie
-269
-collection
-kpi
-playstation
-257
-になります
-866
-bh
-##bar
-queen
-505
-radio
-1904
-andy
-armani
-##xy
-manager
-iherb
-##ery
-##share
-spring
-raid
-johnson
-1908
-##ob
-volvo
-hall
-##ball
-v6
-our
-taylor
-##hk
-bi
-242
-##cp
-kate
-bo
-water
-technology
-##rie
-サイトは
-277
-##ona
-##sl
-hpv
-303
-gtx
-hip
-rdquo
-jayz
-stone
-##lex
-##rum
-namespace
-##やり
-620
-##ale
-##atic
-des
-##erson
-##ql
-##ves
-##type
-enter
-##この
-##てきます
-d2
-##168
-##mix
-##bian
-との
-a9
-jj
-ky
-##lc
-access
-movie
-##hc
-リストに
-tower
-##ration
-##mit
-ます
-##nch
-ua
-tel
-prefix
-##o2
-1907
-##point
-1901
-ott
-~10
-##http
-##ury
-baidu
-##ink
-member
-##logy
-bigbang
-nownews
-##js
-##shot
-##tb
-##こと
-247
-eba
-##tics
-##lus
-ける
-v5
-spark
-##ama
-there
-##ions
-god
-##lls
-##down
-hiv
-##ress
-burberry
-day2
-##kv
-◆◆
-jeff
-related
-film
-edit
-joseph
-283
-##ark
-cx
-32gb
-order
-g9
-30000
-##ans
-##tty
-s5
-##bee
-かあります
-thread
-xr
-buy
-sh
-005
-land
-spotify
-mx
-##ari
-276
-##verse
-×email
-sf
-why
-##ことて
-244
-7headlines
-nego
-sunny
-dom
-exo
-401
-666
-positioning
-fit
-rgb
-##tton
-278
-kiss
-alexa
-adam
-lp
-みリストを
-##g
-mp
-##ties
-##llow
-amy
-##du
-np
-002
-institute
-271
-##rth
-##lar
-2345
-590
-##des
-sidebar
-15
-imax
-site
-##cky
-##kit
-##ime
-##009
-season
-323
-##fun
-##ンター
-##ひ
-gogoro
-a7
-pu
-lily
-fire
-twd600
-##ッセーシを
-いて
-##vis
-30ml
-##cture
-##をお
-information
-##オ
-close
-friday
-##くれる
-yi
-nick
-てすか
-##tta
-##tel
-6500
-##lock
-cbd
-economy
-254
-かお
-267
-tinker
-double
-375
-8gb
-voice
-##app
-oops
-channel
-today
-985
-##right
-raw
-xyz
-##+
-jim
-edm
-##cent
-7500
-supreme
-814
-ds
-##its
-##asia
-dropbox
-##てすか
-##tti
-books
-272
-100ml
-##tle
-##ller
-##ken
-##more
-##boy
-sex
-309
-##dom
-t3
-##ider
-##なります
-##unch
-1903
-810
-feel
-5500
-##かった
-##put
-により
-s2
-mo
-##gh
-men
-ka
-amoled
-div
-##tr
-##n1
-port
-howard
-##tags
-ken
-dnf
-##nus
-adsense
-##а
-ide
-##へ
-buff
-thunder
-##town
-##ique
-has
-##body
-auto
-pin
-##erry
-tee
-てした
-295
-number
-##the
-##013
-object
-psp
-cool
-udnbkk
-16gb
-##mic
-miui
-##tro
-most
-r2
-##alk
-##nity
-1880
-±0
-##いました
-428
-s4
-law
-version
-##oa
-n1
-sgs
-docomo
-##tf
-##ack
-henry
-fc2
-##ded
-##sco
-##014
-##rite
-286
-0mm
-linkedin
-##ada
-##now
-wii
-##ndy
-ucbug
-##◎
-sputniknews
-legalminer
-##ika
-##xp
-2gb
-##bu
-q10
-oo
-b6
-come
-##rman
-cheese
-ming
-maker
-##gm
-nikon
-##fig
-ppi
-kelly
-##ります
-jchere
-てきます
-ted
-md
-003
-fgo
-tech
-##tto
-dan
-soc
-##gl
-##len
-hair
-earth
-640
-521
-img
-##pper
-##a1
-##てきる
-##ロク
-acca
-##ition
-##ference
-suite
-##ig
-outlook
-##mond
-##cation
-398
-##pr
-279
-101vip
-358
-##999
-282
-64gb
-3800
-345
-airport
-##over
-284
-##おり
-jones
-##ith
-lab
-##su
-##いるのて
-co2
-town
-piece
-##llo
-no1
-vmware
-24h
-##qi
-focus
-reader
-##admin
-##ora
-tb
-false
-##log
-1898
-know
-lan
-838
-##ces
-f4
-##ume
-motel
-stop
-##oper
-na
-flickr
-netcomponents
-##af
-##─
-pose
-williams
-local
-##ound
-##cg
-##site
-##iko
-いお
-274
-5m
-gsm
-con
-##ath
-1902
-friends
-##hip
-cell
-317
-##rey
-780
-cream
-##cks
-012
-##dp
-facebooktwitterpinterestgoogle
-sso
-324
-shtml
-song
-swiss
-##mw
-##キンク
-lumia
-xdd
-string
-tiffany
-522
-marc
-られた
-insee
-russell
-sc
-dell
-##ations
-ok
-camera
-289
-##vs
-##flow
-##late
-classic
-287
-##nter
-stay
-g1
-mtv
-512
-##ever
-##lab
-##nger
-qe
-sata
-ryan
-d1
-50ml
-cms
-##cing
-su
-292
-3300
-editor
-296
-##nap
-security
-sunday
-association
-##ens
-##700
-##bra
-acg
-##かり
-sofascore
-とは
-mkv
-##ign
-jonathan
-gary
-build
-labels
-##oto
-tesla
-moba
-qi
-gohappy
-general
-ajax
-1024
-##かる
-サイト
-society
-##test
-##urs
-wps
-fedora
-##ich
-mozilla
-328
-##480
-##dr
-usa
-urn
-##lina
-##r
-grace
-##die
-##try
-##ader
-1250
-##なり
-elle
-570
-##chen
-##ᆯ
-price
-##ten
-uhz
-##ough
-eq
-##hen
-states
-push
-session
-balance
-wow
-506
-##cus
-##py
-when
-##ward
-##ep
-34e
-wong
-library
-prada
-##サイト
-##cle
-running
-##ree
-313
-ck
-date
-q4
-##ctive
-##ool
-##>
-mk
-##ira
-##163
-388
-die
-secret
-rq
-dota
-buffet
-は1ヶ
-e6
-##ez
-pan
-368
-ha
-##card
-##cha
-2a
-##さ
-alan
-day3
-eye
-f3
-##end
-france
-keep
-adi
-rna
-tvbs
-##ala
-solo
-nova
-##え
-##tail
-##ょう
-support
-##ries
-##なる
-##ved
-base
-copy
-iis
-fps
-##ways
-hero
-hgih
-profile
-fish
-mu
-ssh
-entertainment
-chang
-##wd
-click
-cake
-##ond
-pre
-##tom
-kic
-pixel
-##ov
-##fl
-product
-6a
-##pd
-dear
-##gate
-es
-yumi
-audio
-##²
-##sky
-echo
-bin
-where
-##ture
-329
-##ape
-find
-sap
-isis
-##なと
-nand
-##101
-##load
-##ream
-band
-a6
-525
-never
-##post
-festival
-50cm
-##we
-555
-guide
-314
-zenfone
-##ike
-335
-gd
-forum
-jessica
-strong
-alexander
-##ould
-software
-allen
-##ious
-program
-360°
-else
-lohasthree
-##gar
-することかてきます
-please
-##れます
-rc
-##ggle
-##ric
-bim
-50000
-##own
-eclipse
-355
-brian
-3ds
-##side
-061
-361
-##other
-##ける
-##tech
-##ator
-485
-engine
-##ged
-##t
-plaza
-##fit
-cia
-ngo
-westbrook
-shi
-tbs
-50mm
-##みませんか
-sci
-291
-reuters
-##ily
-contextlink
-##hn
-af
-##cil
-bridge
-very
-##cel
-1890
-cambridge
-##ize
-15g
-##aid
-##data
-790
-frm
-##head
-award
-butler
-##sun
-meta
-##mar
-america
-ps3
-puma
-pmid
-##すか
-lc
-670
-kitchen
-##lic
-オーフン5
-きなしソフトサーヒス
-そして
-day1
-future
-★★★★
-##text
-##page
-##rris
-pm1
-##ket
-fans
-##っています
-1001
-christian
-bot
-kids
-trackback
-##hai
-c3
-display
-##hl
-n2
-1896
-idea
-さんも
-##sent
-airmail
-##ug
-##men
-pwm
-けます
-028
-##lution
-369
-852
-awards
-schemas
-354
-asics
-wikipedia
-font
-##tional
-##vy
-c2
-293
-##れている
-##dget
-##ein
-っている
-contact
-pepper
-スキル
-339
-##~5
-294
-##uel
-##ument
-730
-##hang
-みてす
-q5
-##sue
-rain
-##ndi
-wei
-swatch
-##cept
-わせ
-331
-popular
-##ste
-##tag
-p2
-501
-trc
-1899
-##west
-##live
-justin
-honda
-ping
-messenger
-##rap
-v9
-543
-##とは
-unity
-appqq
-はすへて
-025
-leo
-##tone
-##テ
-##ass
-uniqlo
-##010
-502
-her
-jane
-memory
-moneydj
-##tical
-human
-12306
-していると
-##m2
-coc
-miacare
-##mn
-tmt
-##core
-vim
-kk
-##may
-fan
-target
-use
-too
-338
-435
-2050
-867
-737
-fast
-##2c
-services
-##ope
-omega
-energy
-##わ
-pinkoi
-1a
-##なから
-##rain
-jackson
-##ement
-##シャンルの
-374
-366
-そんな
-p9
-rd
-##ᆨ
-1111
-##tier
-##vic
-zone
-##│
-385
-690
-dl
-isofix
-cpa
-m4
-322
-kimi
-めて
-davis
-##lay
-lulu
-##uck
-050
-weeks
-qs
-##hop
-920
-##n
-ae
-##ear
-~5
-eia
-405
-##fly
-korea
-jpeg
-boost
-##ship
-small
-##リア
-1860
-eur
-297
-425
-valley
-##iel
-simple
-##ude
-rn
-k2
-##ena
-されます
-non
-patrick
-しているから
-##ナー
-feed
-5757
-30g
-process
-well
-qqmei
-##thing
-they
-aws
-lu
-pink
-##ters
-##kin
-または
-board
-##vertisement
-wine
-##ien
-unicode
-##dge
-r1
-359
-##tant
-いを
-##twitter
-##3c
-cool1
-される
-##れて
-##l
-isp
-##012
-standard
-45㎡2
-402
-##150
-matt
-##fu
-326
-##iner
-googlemsn
-pixnetfacebookyahoo
-##ラン
-x7
-886
-##uce
-メーカー
-sao
-##ev
-##きました
-##file
-9678
-403
-xddd
-shirt
-6l
-##rio
-##hat
-3mm
-givenchy
-ya
-bang
-##lio
-monday
-crystal
-ロクイン
-##abc
-336
-head
-890
-ubuntuforumwikilinuxpastechat
-##vc
-##~20
-##rity
-cnc
-7866
-ipv6
-null
-1897
-##ost
-yang
-imsean
-tiger
-##fet
-##ンス
-352
-##=
-dji
-327
-ji
-maria
-##come
-##んて
-foundation
-3100
-##beth
-##なった
-1m
-601
-active
-##aft
-##don
-3p
-sr
-349
-emma
-##khz
-living
-415
-353
-1889
-341
-709
-457
-sas
-x6
-##face
-pptv
-x4
-##mate
-han
-sophie
-##jing
-337
-fifa
-##mand
-other
-sale
-inwedding
-##gn
-てきちゃいます
-##mmy
-##pmlast
-bad
-nana
-nbc
-してみてくたさいね
-なとはお
-##wu
-##かあります
-##あ
-note7
-single
-##340
-せからこ
-してくたさい♪この
-しにはとんとんワークケートを
-するとあなたにもっとマッチした
-ならワークケートへ
-もみつかっちゃうかも
-ワークケートの
-##bel
-window
-##dio
-##ht
-union
-age
-382
-14
-##ivity
-##y
-コメント
-domain
-neo
-##isa
-##lter
-5k
-f5
-steven
-##cts
-powerpoint
-tft
-self
-g2
-ft
-##テル
-zol
-##act
-mwc
-381
-343
-もう
-nbapop
-408
-てある
-eds
-ace
-##room
-previous
-author
-tomtom
-il
-##ets
-hu
-financial
-☆☆☆
-っています
-bp
-5t
-chi
-1gb
-##hg
-fairmont
-cross
-008
-gay
-h2
-function
-##けて
-356
-also
-1b
-625
-##ータ
-##raph
-1894
-3~5
-##ils
-i3
-334
-avenue
-##host
-による
-##bon
-##tsu
-message
-navigation
-50g
-fintech
-h6
-##ことを
-8cm
-##ject
-##vas
-##firm
-credit
-##wf
-xxxx
-form
-##nor
-##space
-huawei
-plan
-json
-sbl
-##dc
-machine
-921
-392
-wish
-##120
-##sol
-windows7
-edward
-##ために
-development
-washington
-##nsis
-lo
-818
-##sio
-##ym
-##bor
-planet
-##~8
-##wt
-ieee
-gpa
-##めて
-camp
-ann
-gm
-##tw
-##oka
-connect
-##rss
-##work
-##atus
-wall
-chicken
-soul
-2mm
-##times
-fa
-##ather
-##cord
-009
-##eep
-hitachi
-gui
-harry
-##pan
-e1
-disney
-##press
-##ーション
-wind
-386
-frigidaire
-##tl
-liu
-hsu
-332
-basic
-von
-ev
-いた
-てきる
-スホンサーサイト
-learning
-##ull
-expedia
-archives
-change
-##wei
-santa
-cut
-ins
-6gb
-turbo
-brand
-cf1
-508
-004
-return
-747
-##rip
-h1
-##nis
-##をこ
-128gb
-##にお
-3t
-application
-しており
-emc
-rx
-##oon
-384
-quick
-412
-15058
-wilson
-wing
-chapter
-##bug
-beyond
-##cms
-##dar
-##oh
-zoom
-e2
-trip
-sb
-##nba
-rcep
-342
-aspx
-ci
-080
-gc
-gnu
-める
-##count
-advanced
-dance
-dv
-##url
-##ging
-367
-8591
-am09
-shadow
-battle
-346
-##i
-##cia
-##という
-emily
-##のてす
-##tation
-host
-ff
-techorz
-sars
-##mini
-##mporary
-##ering
-nc
-4200
-798
-##next
-cma
-##mbps
-##gas
-##ift
-##dot
-##ィ
-455
-##~17
-amana
-##りの
-426
-##ros
-ir
-00㎡1
-##eet
-##ible
-##↓
-710
-ˋ▽ˊ
-##aka
-dcs
-iq
-##v
-l1
-##lor
-maggie
-##011
-##iu
-588
-##~1
-830
-##gt
-1tb
-articles
-create
-##burg
-##iki
-database
-fantasy
-##rex
-##cam
-dlc
-dean
-##you
-hard
-path
-gaming
-victoria
-maps
-cb
-##lee
-##itor
-overchicstoretvhome
-systems
-##xt
-416
-p3
-sarah
-760
-##nan
-407
-486
-x9
-install
-second
-626
-##ann
-##ph
-##rcle
-##nic
-860
-##nar
-ec
-##とう
-768
-metro
-chocolate
-##rian
-~4
-##table
-##しています
-skin
-##sn
-395
-mountain
-##0mm
-inparadise
-6m
-7x24
-ib
-4800
-##jia
-eeworld
-creative
-g5
-g3
-357
-parker
-ecfa
-village
-からの
-18000
-sylvia
-サーヒス
-hbl
-##ques
-##onsored
-##x2
-##きます
-##v4
-##tein
-ie6
-383
-##stack
-389
-ver
-##ads
-##baby
-sound
-bbe
-##110
-##lone
-##uid
-ads
-022
-gundam
-351
-thinkpad
-006
-scrum
-match
-##ave
-mems
-##470
-##oy
-##なりました
-##talk
-glass
-lamigo
-span
-##eme
-job
-##a5
-jay
-wade
-kde
-498
-##lace
-ocean
-tvg
-##covery
-##r3
-##ners
-##rea
-junior
-think
-##aine
-cover
-##ision
-##sia
-↓↓
-##bow
-msi
-413
-458
-406
-##love
-711
-801
-soft
-z2
-##pl
-456
-1840
-mobil
-mind
-##uy
-427
-nginx
-##oi
-めた
-##rr
-6221
-##mple
-##sson
-##ーシてす
-371
-##nts
-91tv
-comhd
-crv3000
-##uard
-1868
-397
-deep
-lost
-field
-gallery
-##bia
-rate
-spf
-redis
-traction
-930
-icloud
-011
-なら
-fe
-jose
-372
-##tory
-into
-sohu
-fx
-899
-379
-kicstart2
-##hia
-すく
-##~3
-##sit
-ra
-24
-##walk
-##xure
-500g
-##pact
-pacific
-xa
-natural
-carlo
-##250
-##walker
-1850
-##can
-cto
-gigi
-516
-##サー
-pen
-##hoo
-ob
-matlab
-##b
-##yy
-13913459
-##iti
-mango
-##bbs
-sense
-c5
-oxford
-##ニア
-walker
-jennifer
-##ola
-course
-##bre
-701
-##pus
-##rder
-lucky
-075
-##ぁ
-ivy
-なお
-##nia
-sotheby
-side
-##ugh
-joy
-##orage
-##ush
-##bat
-##dt
-364
-r9
-##2d
-##gio
-511
-country
-wear
-##lax
-##~7
-##moon
-393
-seven
-study
-411
-348
-lonzo
-8k
-##ェ
-evolution
-##イフ
-##kk
-gs
-kd
-##レス
-arduino
-344
-b12
-##lux
-arpg
-##rdon
-cook
-##x5
-dark
-five
-##als
-##ida
-とても
-sign
-362
-##ちの
-something
-20mm
-##nda
-387
-##posted
-fresh
-tf
-1870
-422
-cam
-##mine
-##skip
-##form
-##ssion
-education
-394
-##tee
-dyson
-stage
-##jie
-want
-##night
-epson
-pack
-あります
-##ppy
-テリヘル
-##█
-wd
-##eh
-##rence
-left
-##lvin
-golden
-mhz
-discovery
-##trix
-##n2
-loft
-##uch
-##dra
-##sse
-speed
-~1
-1mdb
-sorry
-welcome
-##urn
-wave
-gaga
-##lmer
-teddy
-##160
-トラックハック
-せよ
-611
-##f2016
-378
-rp
-##sha
-rar
-##あなたに
-##きた
-840
-holiday
-##ュー
-373
-074
-##vg
-##nos
-##rail
-gartner
-gi
-6p
-##dium
-kit
-488
-b3
-eco
-##ろう
-20g
-sean
-##stone
-autocad
-nu
-##np
-f16
-write
-029
-m5
-##ias
-images
-atp
-##dk
-fsm
-504
-1350
-ve
-52kb
-##xxx
-##のに
-##cake
-414
-unit
-lim
-ru
-1v
-##ification
-published
-angela
-16g
-analytics
-ak
-##q
-##nel
-gmt
-##icon
-again
-##₂
-##bby
-ios11
-445
-かこさいます
-waze
-いてす
-##ハ
-9985
-##ust
-##ティー
-framework
-##007
-iptv
-delete
-52sykb
-cl
-wwdc
-027
-30cm
-##fw
-##ての
-1389
-##xon
-brandt
-##ses
-##dragon
-tc
-vetements
-anne
-monte
-modern
-official
-##へて
-##ere
-##nne
-##oud
-もちろん
-50
-etnews
-##a2
-##graphy
-421
-863
-##ちゃん
-444
-##rtex
-##てお
-l2
-##gma
-mount
-ccd
-たと
-archive
-morning
-tan
-ddos
-e7
-##ホ
-day4
-##ウ
-gis
-453
-its
-495
-factory
-bruce
-pg
-##ito
-ってくたさい
-guest
-cdma
-##lling
-536
-n3
-しかし
-3~4
-mega
-eyes
-ro
-13
-women
-dac
-church
-##jun
-singapore
-##facebook
-6991
-starbucks
-##tos
-##stin
-##shine
-zen
-##mu
-tina
-20℃
-1893
-##たけて
-503
-465
-request
-##gence
-qt
-##っ
-1886
-347
-363
-q7
-##zzi
-diary
-##tore
-409
-##ead
-468
-cst
-##osa
-canada
-agent
-va
-##jiang
-##ちは
-##ーク
-##lam
-sg
-##nix
-##sday
-##よって
-g6
-##master
-bing
-##zl
-charlie
-16
-8mm
-nb40
-##ーン
-thai
-##ルフ
-ln284ct
-##itz
-##2f
-bonnie
-##food
-##lent
-originals
-##stro
-##lts
-418
-∟∣
-##bscribe
-children
-ntd
-yesstyle
-##かも
-hmv
-##tment
-d5
-2cm
-arts
-sms
-##pn
-##я
-##いい
-topios9
-539
-lifestyle
-virtual
-##ague
-xz
-##deo
-muji
-024
-unt
-##nnis
-##ᅩ
-faq1
-1884
-396
-##ette
-fly
-64㎡
-はしめまして
-441
-curry
-##pop
-のこ
-release
-##←
-##◆◆
-##cast
-073
-ありな
-500ml
-##ews
-5c
-##stle
-ios7
-##ima
-787
-dog
-lenovo
-##r4
-roger
-013
-cbs
-vornado
-100m
-417
-##desk
-##クok
-##ald
-1867
-9595
-2900
-##van
-oil
-##x
-some
-break
-common
-##jy
-##lines
-g7
-twice
-419
-ella
-nano
-belle
-にこ
-##mes
-##self
-##note
-jb
-##ことかてきます
-benz
-##との
-##ova
-451
-save
-##wing
-##ますのて
-kai
-りは
-##hua
-##rect
-rainer
-##unge
-448
-##0m
-adsl
-##かな
-guestname
-##uma
-##kins
-##zu
-tokichoi
-##price
-county
-##med
-##mus
-rmk
-391
-address
-vm
-えて
-openload
-##group
-##hin
-##iginal
-amg
-urban
-##oz
-jobs
-emi
-##public
-beautiful
-##sch
-album
-##dden
-##bell
-jerry
-works
-hostel
-miller
-##drive
-##rmin
-##10
-376
-boot
-828
-##370
-##fx
-##cm~
-1885
-##nome
-##ctionary
-##oman
-##lish
-##cr
-##hm
-433
-##how
-432
-francis
-xi
-c919
-b5
-evernote
-##uc
-vga
-##3000
-coupe
-##urg
-##cca
-##uality
-019
-6g
-れる
-multi
-##また
-##ett
-em
-hey
-##ani
-##tax
-##rma
-inside
-than
-740
-leonnhurt
-##jin
-ict
-れた
-bird
-notes
-200mm
-くの
-##dical
-##lli
-result
-442
-iu
-ee
-438
-smap
-gopro
-##last
-yin
-pure
-998
-32g
-けた
-5kg
-##dan
-##rame
-mama
-##oot
-bean
-marketing
-##hur
-2l
-bella
-sync
-xuite
-##ground
-515
-discuz
-##getrelax
-##ince
-##bay
-##5s
-cj
-##イス
-gmat
-apt
-##pass
-jing
-##rix
-c4
-rich
-##とても
-niusnews
-##ello
-bag
-770
-##eting
-##mobile
-18
-culture
-015
-##のてすか
-377
-1020
-area
-##ience
-616
-details
-gp
-universal
-silver
-dit
-はお
-private
-ddd
-u11
-kanshu
-##ified
-fung
-##nny
-dx
-##520
-tai
-475
-023
-##fr
-##lean
-3s
-##pin
-429
-##rin
-25000
-ly
-rick
-##bility
-usb3
-banner
-##baru
-##gion
-metal
-dt
-vdf
-1871
-karl
-qualcomm
-bear
-1010
-oldid
-ian
-jo
-##tors
-population
-##ernel
-1882
-mmorpg
-##mv
-##bike
-603
-##©
-ww
-friend
-##ager
-exhibition
-##del
-##pods
-fpx
-structure
-##free
-##tings
-kl
-##rley
-##copyright
-##mma
-california
-3400
-orange
-yoga
-4l
-canmake
-honey
-##anda
-##コメント
-595
-nikkie
-##ルハイト
-dhl
-publishing
-##mall
-##gnet
-20cm
-513
-##クセス
-##┅
-e88
-970
-##dog
-fishbase
-##!
-##"
-###
-##$
-##%
-##&
-##'
-##(
-##)
-##*
-##+
-##,
-##-
-##.
-##/
-##:
-##;
-##<
-##=
-##>
-##?
-##@
-##[
-##\
-##]
-##^
-##_
-##{
-##|
-##}
-##~
-##£
-##¤
-##¥
-##§
-##«
-##±
-##³
-##µ
-##·
-##¹
-##º
-##»
-##¼
-##ß
-##æ
-##÷
-##ø
-##đ
-##ŋ
-##ɔ
-##ə
-##ɡ
-##ʰ
-##ˇ
-##ˈ
-##ˊ
-##ˋ
-##ˍ
-##ː
-##˙
-##˚
-##ˢ
-##α
-##β
-##γ
-##δ
-##ε
-##η
-##θ
-##ι
-##κ
-##λ
-##μ
-##ν
-##ο
-##π
-##ρ
-##ς
-##σ
-##τ
-##υ
-##φ
-##χ
-##ψ
-##б
-##в
-##г
-##д
-##е
-##ж
-##з
-##к
-##л
-##м
-##н
-##о
-##п
-##р
-##с
-##т
-##у
-##ф
-##х
-##ц
-##ч
-##ш
-##ы
-##ь
-##і
-##ا
-##ب
-##ة
-##ت
-##د
-##ر
-##س
-##ع
-##ل
-##م
-##ن
-##ه
-##و
-##ي
-##۩
-##ก
-##ง
-##น
-##ม
-##ย
-##ร
-##อ
-##า
-##เ
-##๑
-##་
-##ღ
-##ᄀ
-##ᄁ
-##ᄂ
-##ᄃ
-##ᄅ
-##ᄆ
-##ᄇ
-##ᄈ
-##ᄉ
-##ᄋ
-##ᄌ
-##ᄎ
-##ᄏ
-##ᄐ
-##ᄑ
-##ᄒ
-##ᅢ
-##ᅣ
-##ᅥ
-##ᅦ
-##ᅧ
-##ᅨ
-##ᅪ
-##ᅬ
-##ᅭ
-##ᅮ
-##ᅯ
-##ᅲ
-##ᅳ
-##ᅴ
-##ᆷ
-##ᆸ
-##ᆺ
-##ᆻ
-##ᗜ
-##ᵃ
-##ᵉ
-##ᵍ
-##ᵏ
-##ᵐ
-##ᵒ
-##ᵘ
-##‖
-##„
-##†
-##•
-##‥
-##‧
-##
-##‰
-##′
-##″
-##‹
-##›
-##※
-##‿
-##⁄
-##ⁱ
-##⁺
-##ⁿ
-##₁
-##₃
-##₄
-##€
-##№
-##ⅰ
-##ⅱ
-##ⅲ
-##ⅳ
-##ⅴ
-##↔
-##↗
-##↘
-##⇒
-##∀
-##−
-##∕
-##∙
-##√
-##∞
-##∟
-##∠
-##∣
-##∩
-##∮
-##∶
-##∼
-##∽
-##≈
-##≒
-##≡
-##≤
-##≥
-##≦
-##≧
-##≪
-##≫
-##⊙
-##⋅
-##⋈
-##⋯
-##⌒
-##①
-##②
-##③
-##④
-##⑤
-##⑥
-##⑦
-##⑧
-##⑨
-##⑩
-##⑴
-##⑵
-##⑶
-##⑷
-##⑸
-##⒈
-##⒉
-##⒊
-##⒋
-##ⓒ
-##ⓔ
-##ⓘ
-##━
-##┃
-##┆
-##┊
-##┌
-##└
-##├
-##┣
-##═
-##║
-##╚
-##╞
-##╠
-##╭
-##╮
-##╯
-##╰
-##╱
-##╳
-##▂
-##▃
-##▅
-##▇
-##▉
-##▋
-##▌
-##▍
-##▎
-##□
-##▪
-##▫
-##▬
-##△
-##▶
-##►
-##▽
-##◇
-##◕
-##◠
-##◢
-##◤
-##☀
-##☕
-##☞
-##☺
-##☼
-##♀
-##♂
-##♠
-##♡
-##♣
-##♦
-##♫
-##♬
-##✈
-##✔
-##✕
-##✖
-##✦
-##✨
-##✪
-##✰
-##✿
-##❀
-##➜
-##➤
-##⦿
-##、
-##。
-##〃
-##々
-##〇
-##〈
-##〉
-##《
-##》
-##「
-##」
-##『
-##』
-##【
-##】
-##〓
-##〔
-##〕
-##〖
-##〗
-##〜
-##〝
-##〞
-##ぃ
-##ぇ
-##ぬ
-##ふ
-##ほ
-##む
-##ゃ
-##ゅ
-##ゆ
-##ょ
-##゜
-##ゝ
-##ァ
-##ゥ
-##エ
-##ォ
-##ケ
-##サ
-##セ
-##ソ
-##ッ
-##ニ
-##ヌ
-##ネ
-##ノ
-##ヘ
-##モ
-##ャ
-##ヤ
-##ュ
-##ユ
-##ョ
-##ヨ
-##ワ
-##ヲ
-##・
-##ヽ
-##ㄅ
-##ㄆ
-##ㄇ
-##ㄉ
-##ㄋ
-##ㄌ
-##ㄍ
-##ㄎ
-##ㄏ
-##ㄒ
-##ㄚ
-##ㄛ
-##ㄞ
-##ㄟ
-##ㄢ
-##ㄤ
-##ㄥ
-##ㄧ
-##ㄨ
-##ㆍ
-##㈦
-##㊣
-##㗎
-##一
-##丁
-##七
-##万
-##丈
-##三
-##上
-##下
-##不
-##与
-##丐
-##丑
-##专
-##且
-##丕
-##世
-##丘
-##丙
-##业
-##丛
-##东
-##丝
-##丞
-##丟
-##両
-##丢
-##两
-##严
-##並
-##丧
-##丨
-##个
-##丫
-##中
-##丰
-##串
-##临
-##丶
-##丸
-##丹
-##为
-##主
-##丼
-##丽
-##举
-##丿
-##乂
-##乃
-##久
-##么
-##义
-##之
-##乌
-##乍
-##乎
-##乏
-##乐
-##乒
-##乓
-##乔
-##乖
-##乗
-##乘
-##乙
-##乜
-##九
-##乞
-##也
-##习
-##乡
-##书
-##乩
-##买
-##乱
-##乳
-##乾
-##亀
-##亂
-##了
-##予
-##争
-##事
-##二
-##于
-##亏
-##云
-##互
-##五
-##井
-##亘
-##亙
-##亚
-##些
-##亜
-##亞
-##亟
-##亡
-##亢
-##交
-##亥
-##亦
-##产
-##亨
-##亩
-##享
-##京
-##亭
-##亮
-##亲
-##亳
-##亵
-##人
-##亿
-##什
-##仁
-##仃
-##仄
-##仅
-##仆
-##仇
-##今
-##介
-##仍
-##从
-##仏
-##仑
-##仓
-##仔
-##仕
-##他
-##仗
-##付
-##仙
-##仝
-##仞
-##仟
-##代
-##令
-##以
-##仨
-##仪
-##们
-##仮
-##仰
-##仲
-##件
-##价
-##任
-##份
-##仿
-##企
-##伉
-##伊
-##伍
-##伎
-##伏
-##伐
-##休
-##伕
-##众
-##优
-##伙
-##会
-##伝
-##伞
-##伟
-##传
-##伢
-##伤
-##伦
-##伪
-##伫
-##伯
-##估
-##伴
-##伶
-##伸
-##伺
-##似
-##伽
-##佃
-##但
-##佇
-##佈
-##位
-##低
-##住
-##佐
-##佑
-##体
-##佔
-##何
-##佗
-##佘
-##余
-##佚
-##佛
-##作
-##佝
-##佞
-##佟
-##你
-##佢
-##佣
-##佤
-##佥
-##佩
-##佬
-##佯
-##佰
-##佳
-##併
-##佶
-##佻
-##佼
-##使
-##侃
-##侄
-##來
-##侈
-##例
-##侍
-##侏
-##侑
-##侖
-##侗
-##供
-##依
-##侠
-##価
-##侣
-##侥
-##侦
-##侧
-##侨
-##侬
-##侮
-##侯
-##侵
-##侶
-##侷
-##便
-##係
-##促
-##俄
-##俊
-##俎
-##俏
-##俐
-##俑
-##俗
-##俘
-##俚
-##保
-##俞
-##俟
-##俠
-##信
-##俨
-##俩
-##俪
-##俬
-##俭
-##修
-##俯
-##俱
-##俳
-##俸
-##俺
-##俾
-##倆
-##倉
-##個
-##倌
-##倍
-##倏
-##們
-##倒
-##倔
-##倖
-##倘
-##候
-##倚
-##倜
-##借
-##倡
-##値
-##倦
-##倩
-##倪
-##倫
-##倬
-##倭
-##倶
-##债
-##值
-##倾
-##偃
-##假
-##偈
-##偉
-##偌
-##偎
-##偏
-##偕
-##做
-##停
-##健
-##側
-##偵
-##偶
-##偷
-##偻
-##偽
-##偿
-##傀
-##傅
-##傍
-##傑
-##傘
-##備
-##傚
-##傢
-##傣
-##傥
-##储
-##傩
-##催
-##傭
-##傲
-##傳
-##債
-##傷
-##傻
-##傾
-##僅
-##働
-##像
-##僑
-##僕
-##僖
-##僚
-##僥
-##僧
-##僭
-##僮
-##僱
-##僵
-##價
-##僻
-##儀
-##儂
-##億
-##儆
-##儉
-##儋
-##儒
-##儕
-##儘
-##償
-##儡
-##優
-##儲
-##儷
-##儼
-##儿
-##兀
-##允
-##元
-##兄
-##充
-##兆
-##兇
-##先
-##光
-##克
-##兌
-##免
-##児
-##兑
-##兒
-##兔
-##兖
-##党
-##兜
-##兢
-##入
-##內
-##全
-##兩
-##八
-##公
-##六
-##兮
-##兰
-##共
-##兲
-##关
-##兴
-##兵
-##其
-##具
-##典
-##兹
-##养
-##兼
-##兽
-##冀
-##内
-##円
-##冇
-##冈
-##冉
-##冊
-##册
-##再
-##冏
-##冒
-##冕
-##冗
-##写
-##军
-##农
-##冠
-##冢
-##冤
-##冥
-##冨
-##冪
-##冬
-##冯
-##冰
-##冲
-##决
-##况
-##冶
-##冷
-##冻
-##冼
-##冽
-##冾
-##净
-##凄
-##准
-##凇
-##凈
-##凉
-##凋
-##凌
-##凍
-##减
-##凑
-##凛
-##凜
-##凝
-##几
-##凡
-##凤
-##処
-##凪
-##凭
-##凯
-##凰
-##凱
-##凳
-##凶
-##凸
-##凹
-##出
-##击
-##函
-##凿
-##刀
-##刁
-##刃
-##分
-##切
-##刈
-##刊
-##刍
-##刎
-##刑
-##划
-##列
-##刘
-##则
-##刚
-##创
-##初
-##删
-##判
-##別
-##刨
-##利
-##刪
-##别
-##刮
-##到
-##制
-##刷
-##券
-##刹
-##刺
-##刻
-##刽
-##剁
-##剂
-##剃
-##則
-##剉
-##削
-##剋
-##剌
-##前
-##剎
-##剐
-##剑
-##剔
-##剖
-##剛
-##剜
-##剝
-##剣
-##剤
-##剥
-##剧
-##剩
-##剪
-##副
-##割
-##創
-##剷
-##剽
-##剿
-##劃
-##劇
-##劈
-##劉
-##劊
-##劍
-##劏
-##劑
-##力
-##劝
-##办
-##功
-##加
-##务
-##劣
-##动
-##助
-##努
-##劫
-##劭
-##励
-##劲
-##劳
-##労
-##劵
-##効
-##劾
-##势
-##勁
-##勃
-##勇
-##勉
-##勋
-##勐
-##勒
-##動
-##勖
-##勘
-##務
-##勛
-##勝
-##勞
-##募
-##勢
-##勤
-##勧
-##勳
-##勵
-##勸
-##勺
-##勻
-##勾
-##勿
-##匀
-##包
-##匆
-##匈
-##匍
-##匐
-##匕
-##化
-##北
-##匙
-##匝
-##匠
-##匡
-##匣
-##匪
-##匮
-##匯
-##匱
-##匹
-##区
-##医
-##匾
-##匿
-##區
-##十
-##千
-##卅
-##升
-##午
-##卉
-##半
-##卍
-##华
-##协
-##卑
-##卒
-##卓
-##協
-##单
-##卖
-##南
-##単
-##博
-##卜
-##卞
-##卟
-##占
-##卡
-##卢
-##卤
-##卦
-##卧
-##卫
-##卮
-##卯
-##印
-##危
-##即
-##却
-##卵
-##卷
-##卸
-##卻
-##卿
-##厂
-##厄
-##厅
-##历
-##厉
-##压
-##厌
-##厕
-##厘
-##厚
-##厝
-##原
-##厢
-##厥
-##厦
-##厨
-##厩
-##厭
-##厮
-##厲
-##厳
-##去
-##县
-##叁
-##参
-##參
-##又
-##叉
-##及
-##友
-##双
-##反
-##収
-##发
-##叔
-##取
-##受
-##变
-##叙
-##叛
-##叟
-##叠
-##叡
-##叢
-##口
-##古
-##句
-##另
-##叨
-##叩
-##只
-##叫
-##召
-##叭
-##叮
-##可
-##台
-##叱
-##史
-##右
-##叵
-##叶
-##号
-##司
-##叹
-##叻
-##叼
-##叽
-##吁
-##吃
-##各
-##吆
-##合
-##吉
-##吊
-##吋
-##同
-##名
-##后
-##吏
-##吐
-##向
-##吒
-##吓
-##吕
-##吖
-##吗
-##君
-##吝
-##吞
-##吟
-##吠
-##吡
-##否
-##吧
-##吨
-##吩
-##含
-##听
-##吭
-##吮
-##启
-##吱
-##吳
-##吴
-##吵
-##吶
-##吸
-##吹
-##吻
-##吼
-##吽
-##吾
-##呀
-##呂
-##呃
-##呆
-##呈
-##告
-##呋
-##呎
-##呐
-##呓
-##呕
-##呗
-##员
-##呛
-##呜
-##呢
-##呤
-##呦
-##周
-##呱
-##呲
-##味
-##呵
-##呷
-##呸
-##呻
-##呼
-##命
-##咀
-##咁
-##咂
-##咄
-##咆
-##咋
-##和
-##咎
-##咏
-##咐
-##咒
-##咔
-##咕
-##咖
-##咗
-##咘
-##咙
-##咚
-##咛
-##咣
-##咤
-##咦
-##咧
-##咨
-##咩
-##咪
-##咫
-##咬
-##咭
-##咯
-##咱
-##咲
-##咳
-##咸
-##咻
-##咽
-##咿
-##哀
-##品
-##哂
-##哄
-##哆
-##哇
-##哈
-##哉
-##哋
-##哌
-##响
-##哎
-##哏
-##哐
-##哑
-##哒
-##哔
-##哗
-##哟
-##員
-##哥
-##哦
-##哧
-##哨
-##哩
-##哪
-##哭
-##哮
-##哲
-##哺
-##哼
-##哽
-##唁
-##唄
-##唆
-##唇
-##唉
-##唏
-##唐
-##唑
-##唔
-##唠
-##唤
-##唧
-##唬
-##售
-##唯
-##唰
-##唱
-##唳
-##唷
-##唸
-##唾
-##啃
-##啄
-##商
-##啉
-##啊
-##問
-##啓
-##啕
-##啖
-##啜
-##啞
-##啟
-##啡
-##啤
-##啥
-##啦
-##啧
-##啪
-##啫
-##啬
-##啮
-##啰
-##啱
-##啲
-##啵
-##啶
-##啷
-##啸
-##啻
-##啼
-##啾
-##喀
-##喂
-##喃
-##善
-##喆
-##喇
-##喉
-##喊
-##喋
-##喎
-##喏
-##喔
-##喘
-##喙
-##喚
-##喜
-##喝
-##喟
-##喧
-##喪
-##喫
-##喬
-##單
-##喰
-##喱
-##喲
-##喳
-##喵
-##営
-##喷
-##喹
-##喺
-##喻
-##喽
-##嗅
-##嗆
-##嗇
-##嗎
-##嗑
-##嗒
-##嗓
-##嗔
-##嗖
-##嗚
-##嗜
-##嗝
-##嗟
-##嗡
-##嗣
-##嗤
-##嗦
-##嗨
-##嗪
-##嗬
-##嗯
-##嗰
-##嗲
-##嗳
-##嗶
-##嗷
-##嗽
-##嘀
-##嘅
-##嘆
-##嘈
-##嘉
-##嘌
-##嘍
-##嘎
-##嘔
-##嘖
-##嘗
-##嘘
-##嘚
-##嘛
-##嘜
-##嘞
-##嘟
-##嘢
-##嘣
-##嘤
-##嘧
-##嘩
-##嘭
-##嘮
-##嘯
-##嘰
-##嘱
-##嘲
-##嘴
-##嘶
-##嘸
-##嘹
-##嘻
-##嘿
-##噁
-##噌
-##噎
-##噓
-##噔
-##噗
-##噙
-##噜
-##噠
-##噢
-##噤
-##器
-##噩
-##噪
-##噬
-##噱
-##噴
-##噶
-##噸
-##噹
-##噻
-##噼
-##嚀
-##嚇
-##嚎
-##嚏
-##嚐
-##嚓
-##嚕
-##嚟
-##嚣
-##嚥
-##嚨
-##嚮
-##嚴
-##嚷
-##嚼
-##囂
-##囉
-##囊
-##囍
-##囑
-##囔
-##囗
-##囚
-##四
-##囝
-##回
-##囟
-##因
-##囡
-##团
-##団
-##囤
-##囧
-##囪
-##囫
-##园
-##困
-##囱
-##囲
-##図
-##围
-##囹
-##固
-##国
-##图
-##囿
-##圃
-##圄
-##圆
-##圈
-##國
-##圍
-##圏
-##園
-##圓
-##圖
-##團
-##圜
-##土
-##圣
-##圧
-##在
-##圩
-##圭
-##地
-##圳
-##场
-##圻
-##圾
-##址
-##坂
-##均
-##坊
-##坍
-##坎
-##坏
-##坐
-##坑
-##块
-##坚
-##坛
-##坝
-##坞
-##坟
-##坠
-##坡
-##坤
-##坦
-##坨
-##坪
-##坯
-##坳
-##坵
-##坷
-##垂
-##垃
-##垄
-##型
-##垒
-##垚
-##垛
-##垠
-##垢
-##垣
-##垦
-##垩
-##垫
-##垭
-##垮
-##垵
-##埂
-##埃
-##埋
-##城
-##埔
-##埕
-##埗
-##域
-##埠
-##埤
-##埵
-##執
-##埸
-##培
-##基
-##埼
-##堀
-##堂
-##堃
-##堅
-##堆
-##堇
-##堑
-##堕
-##堙
-##堡
-##堤
-##堪
-##堯
-##堰
-##報
-##場
-##堵
-##堺
-##堿
-##塊
-##塌
-##塑
-##塔
-##塗
-##塘
-##塚
-##塞
-##塢
-##塩
-##填
-##塬
-##塭
-##塵
-##塾
-##墀
-##境
-##墅
-##墉
-##墊
-##墒
-##墓
-##増
-##墘
-##墙
-##墜
-##增
-##墟
-##墨
-##墩
-##墮
-##墳
-##墻
-##墾
-##壁
-##壅
-##壆
-##壇
-##壊
-##壑
-##壓
-##壕
-##壘
-##壞
-##壟
-##壢
-##壤
-##壩
-##士
-##壬
-##壮
-##壯
-##声
-##売
-##壳
-##壶
-##壹
-##壺
-##壽
-##处
-##备
-##変
-##复
-##夏
-##夔
-##夕
-##外
-##夙
-##多
-##夜
-##够
-##夠
-##夢
-##夥
-##大
-##天
-##太
-##夫
-##夭
-##央
-##夯
-##失
-##头
-##夷
-##夸
-##夹
-##夺
-##夾
-##奂
-##奄
-##奇
-##奈
-##奉
-##奋
-##奎
-##奏
-##奐
-##契
-##奔
-##奕
-##奖
-##套
-##奘
-##奚
-##奠
-##奢
-##奥
-##奧
-##奪
-##奬
-##奮
-##女
-##奴
-##奶
-##奸
-##她
-##好
-##如
-##妃
-##妄
-##妆
-##妇
-##妈
-##妊
-##妍
-##妒
-##妓
-##妖
-##妘
-##妙
-##妝
-##妞
-##妣
-##妤
-##妥
-##妨
-##妩
-##妪
-##妮
-##妲
-##妳
-##妹
-##妻
-##妾
-##姆
-##姉
-##姊
-##始
-##姍
-##姐
-##姑
-##姒
-##姓
-##委
-##姗
-##姚
-##姜
-##姝
-##姣
-##姥
-##姦
-##姨
-##姪
-##姫
-##姬
-##姹
-##姻
-##姿
-##威
-##娃
-##娄
-##娅
-##娆
-##娇
-##娉
-##娑
-##娓
-##娘
-##娛
-##娜
-##娟
-##娠
-##娣
-##娥
-##娩
-##娱
-##娲
-##娴
-##娶
-##娼
-##婀
-##婁
-##婆
-##婉
-##婊
-##婕
-##婚
-##婢
-##婦
-##婧
-##婪
-##婭
-##婴
-##婵
-##婶
-##婷
-##婺
-##婿
-##媒
-##媚
-##媛
-##媞
-##媧
-##媲
-##媳
-##媽
-##媾
-##嫁
-##嫂
-##嫉
-##嫌
-##嫑
-##嫔
-##嫖
-##嫘
-##嫚
-##嫡
-##嫣
-##嫦
-##嫩
-##嫲
-##嫵
-##嫻
-##嬅
-##嬉
-##嬌
-##嬗
-##嬛
-##嬢
-##嬤
-##嬪
-##嬰
-##嬴
-##嬷
-##嬸
-##嬿
-##孀
-##孃
-##子
-##孑
-##孔
-##孕
-##孖
-##字
-##存
-##孙
-##孚
-##孛
-##孜
-##孝
-##孟
-##孢
-##季
-##孤
-##学
-##孩
-##孪
-##孫
-##孬
-##孰
-##孱
-##孳
-##孵
-##學
-##孺
-##孽
-##孿
-##宁
-##它
-##宅
-##宇
-##守
-##安
-##宋
-##完
-##宏
-##宓
-##宕
-##宗
-##官
-##宙
-##定
-##宛
-##宜
-##宝
-##实
-##実
-##宠
-##审
-##客
-##宣
-##室
-##宥
-##宦
-##宪
-##宫
-##宮
-##宰
-##害
-##宴
-##宵
-##家
-##宸
-##容
-##宽
-##宾
-##宿
-##寂
-##寄
-##寅
-##密
-##寇
-##富
-##寐
-##寒
-##寓
-##寛
-##寝
-##寞
-##察
-##寡
-##寢
-##寥
-##實
-##寧
-##寨
-##審
-##寫
-##寬
-##寮
-##寰
-##寵
-##寶
-##寸
-##对
-##寺
-##寻
-##导
-##対
-##寿
-##封
-##専
-##射
-##将
-##將
-##專
-##尉
-##尊
-##尋
-##對
-##導
-##小
-##少
-##尔
-##尕
-##尖
-##尘
-##尚
-##尝
-##尤
-##尧
-##尬
-##就
-##尴
-##尷
-##尸
-##尹
-##尺
-##尻
-##尼
-##尽
-##尾
-##尿
-##局
-##屁
-##层
-##屄
-##居
-##屆
-##屈
-##屉
-##届
-##屋
-##屌
-##屍
-##屎
-##屏
-##屐
-##屑
-##展
-##屜
-##属
-##屠
-##屡
-##屢
-##層
-##履
-##屬
-##屯
-##山
-##屹
-##屿
-##岀
-##岁
-##岂
-##岌
-##岐
-##岑
-##岔
-##岖
-##岗
-##岘
-##岙
-##岚
-##岛
-##岡
-##岩
-##岫
-##岬
-##岭
-##岱
-##岳
-##岷
-##岸
-##峇
-##峋
-##峒
-##峙
-##峡
-##峤
-##峥
-##峦
-##峨
-##峪
-##峭
-##峯
-##峰
-##峴
-##島
-##峻
-##峽
-##崁
-##崂
-##崆
-##崇
-##崎
-##崑
-##崔
-##崖
-##崗
-##崙
-##崛
-##崧
-##崩
-##崭
-##崴
-##崽
-##嵇
-##嵊
-##嵋
-##嵌
-##嵐
-##嵘
-##嵩
-##嵬
-##嵯
-##嶂
-##嶄
-##嶇
-##嶋
-##嶙
-##嶺
-##嶼
-##嶽
-##巅
-##巍
-##巒
-##巔
-##巖
-##川
-##州
-##巡
-##巢
-##工
-##左
-##巧
-##巨
-##巩
-##巫
-##差
-##己
-##已
-##巳
-##巴
-##巷
-##巻
-##巽
-##巾
-##巿
-##币
-##市
-##布
-##帅
-##帆
-##师
-##希
-##帐
-##帑
-##帕
-##帖
-##帘
-##帚
-##帛
-##帜
-##帝
-##帥
-##带
-##帧
-##師
-##席
-##帮
-##帯
-##帰
-##帳
-##帶
-##帷
-##常
-##帼
-##帽
-##幀
-##幂
-##幄
-##幅
-##幌
-##幔
-##幕
-##幟
-##幡
-##幢
-##幣
-##幫
-##干
-##平
-##年
-##并
-##幸
-##幹
-##幺
-##幻
-##幼
-##幽
-##幾
-##广
-##庁
-##広
-##庄
-##庆
-##庇
-##床
-##序
-##庐
-##库
-##应
-##底
-##庖
-##店
-##庙
-##庚
-##府
-##庞
-##废
-##庠
-##度
-##座
-##庫
-##庭
-##庵
-##庶
-##康
-##庸
-##庹
-##庾
-##廁
-##廂
-##廃
-##廈
-##廉
-##廊
-##廓
-##廖
-##廚
-##廝
-##廟
-##廠
-##廢
-##廣
-##廬
-##廳
-##延
-##廷
-##建
-##廿
-##开
-##弁
-##异
-##弃
-##弄
-##弈
-##弊
-##弋
-##式
-##弑
-##弒
-##弓
-##弔
-##引
-##弗
-##弘
-##弛
-##弟
-##张
-##弥
-##弦
-##弧
-##弩
-##弭
-##弯
-##弱
-##張
-##強
-##弹
-##强
-##弼
-##弾
-##彅
-##彆
-##彈
-##彌
-##彎
-##归
-##当
-##录
-##彗
-##彙
-##彝
-##形
-##彤
-##彥
-##彦
-##彧
-##彩
-##彪
-##彫
-##彬
-##彭
-##彰
-##影
-##彷
-##役
-##彻
-##彼
-##彿
-##往
-##征
-##径
-##待
-##徇
-##很
-##徉
-##徊
-##律
-##後
-##徐
-##徑
-##徒
-##従
-##徕
-##得
-##徘
-##徙
-##徜
-##從
-##徠
-##御
-##徨
-##復
-##循
-##徬
-##微
-##徳
-##徴
-##徵
-##德
-##徹
-##徼
-##徽
-##心
-##必
-##忆
-##忌
-##忍
-##忏
-##忐
-##忑
-##忒
-##忖
-##志
-##忘
-##忙
-##応
-##忠
-##忡
-##忤
-##忧
-##忪
-##快
-##忱
-##念
-##忻
-##忽
-##忿
-##怀
-##态
-##怂
-##怅
-##怆
-##怎
-##怏
-##怒
-##怔
-##怕
-##怖
-##怙
-##怜
-##思
-##怠
-##怡
-##急
-##怦
-##性
-##怨
-##怪
-##怯
-##怵
-##总
-##怼
-##恁
-##恃
-##恆
-##恋
-##恍
-##恐
-##恒
-##恕
-##恙
-##恚
-##恢
-##恣
-##恤
-##恥
-##恨
-##恩
-##恪
-##恫
-##恬
-##恭
-##息
-##恰
-##恳
-##恵
-##恶
-##恸
-##恺
-##恻
-##恼
-##恿
-##悄
-##悅
-##悉
-##悌
-##悍
-##悔
-##悖
-##悚
-##悟
-##悠
-##患
-##悦
-##您
-##悩
-##悪
-##悬
-##悯
-##悱
-##悲
-##悴
-##悵
-##悶
-##悸
-##悻
-##悼
-##悽
-##情
-##惆
-##惇
-##惊
-##惋
-##惑
-##惕
-##惘
-##惚
-##惜
-##惟
-##惠
-##惡
-##惦
-##惧
-##惨
-##惩
-##惫
-##惬
-##惭
-##惮
-##惯
-##惰
-##惱
-##想
-##惴
-##惶
-##惹
-##惺
-##愁
-##愆
-##愈
-##愉
-##愍
-##意
-##愕
-##愚
-##愛
-##愜
-##感
-##愣
-##愤
-##愧
-##愫
-##愷
-##愿
-##慄
-##慈
-##態
-##慌
-##慎
-##慑
-##慕
-##慘
-##慚
-##慟
-##慢
-##慣
-##慧
-##慨
-##慫
-##慮
-##慰
-##慳
-##慵
-##慶
-##慷
-##慾
-##憂
-##憊
-##憋
-##憎
-##憐
-##憑
-##憔
-##憚
-##憤
-##憧
-##憨
-##憩
-##憫
-##憬
-##憲
-##憶
-##憾
-##懂
-##懇
-##懈
-##應
-##懊
-##懋
-##懑
-##懒
-##懦
-##懲
-##懵
-##懶
-##懷
-##懸
-##懺
-##懼
-##懾
-##懿
-##戀
-##戈
-##戊
-##戌
-##戍
-##戎
-##戏
-##成
-##我
-##戒
-##戕
-##或
-##战
-##戚
-##戛
-##戟
-##戡
-##戦
-##截
-##戬
-##戮
-##戰
-##戲
-##戳
-##戴
-##戶
-##户
-##戸
-##戻
-##戾
-##房
-##所
-##扁
-##扇
-##扈
-##扉
-##手
-##才
-##扎
-##扑
-##扒
-##打
-##扔
-##払
-##托
-##扛
-##扣
-##扦
-##执
-##扩
-##扪
-##扫
-##扬
-##扭
-##扮
-##扯
-##扰
-##扱
-##扳
-##扶
-##批
-##扼
-##找
-##承
-##技
-##抄
-##抉
-##把
-##抑
-##抒
-##抓
-##投
-##抖
-##抗
-##折
-##抚
-##抛
-##抜
-##択
-##抟
-##抠
-##抡
-##抢
-##护
-##报
-##抨
-##披
-##抬
-##抱
-##抵
-##抹
-##押
-##抽
-##抿
-##拂
-##拄
-##担
-##拆
-##拇
-##拈
-##拉
-##拋
-##拌
-##拍
-##拎
-##拐
-##拒
-##拓
-##拔
-##拖
-##拗
-##拘
-##拙
-##拚
-##招
-##拜
-##拟
-##拡
-##拢
-##拣
-##拥
-##拦
-##拧
-##拨
-##择
-##括
-##拭
-##拮
-##拯
-##拱
-##拳
-##拴
-##拷
-##拼
-##拽
-##拾
-##拿
-##持
-##挂
-##指
-##挈
-##按
-##挎
-##挑
-##挖
-##挙
-##挚
-##挛
-##挝
-##挞
-##挟
-##挠
-##挡
-##挣
-##挤
-##挥
-##挨
-##挪
-##挫
-##振
-##挲
-##挹
-##挺
-##挽
-##挾
-##捂
-##捅
-##捆
-##捉
-##捋
-##捌
-##捍
-##捎
-##捏
-##捐
-##捕
-##捞
-##损
-##捡
-##换
-##捣
-##捧
-##捨
-##捩
-##据
-##捱
-##捲
-##捶
-##捷
-##捺
-##捻
-##掀
-##掂
-##掃
-##掇
-##授
-##掉
-##掌
-##掏
-##掐
-##排
-##掖
-##掘
-##掙
-##掛
-##掠
-##採
-##探
-##掣
-##接
-##控
-##推
-##掩
-##措
-##掬
-##掰
-##掲
-##掳
-##掴
-##掷
-##掸
-##掺
-##揀
-##揃
-##揄
-##揆
-##揉
-##揍
-##描
-##提
-##插
-##揖
-##揚
-##換
-##握
-##揣
-##揩
-##揪
-##揭
-##揮
-##援
-##揶
-##揸
-##揹
-##揽
-##搀
-##搁
-##搂
-##搅
-##損
-##搏
-##搐
-##搓
-##搔
-##搖
-##搗
-##搜
-##搞
-##搡
-##搪
-##搬
-##搭
-##搵
-##搶
-##携
-##搽
-##摀
-##摁
-##摄
-##摆
-##摇
-##摈
-##摊
-##摒
-##摔
-##摘
-##摞
-##摟
-##摧
-##摩
-##摯
-##摳
-##摸
-##摹
-##摺
-##摻
-##撂
-##撃
-##撅
-##撇
-##撈
-##撐
-##撑
-##撒
-##撓
-##撕
-##撚
-##撞
-##撤
-##撥
-##撩
-##撫
-##撬
-##播
-##撮
-##撰
-##撲
-##撵
-##撷
-##撸
-##撻
-##撼
-##撿
-##擀
-##擁
-##擂
-##擄
-##擅
-##擇
-##擊
-##擋
-##操
-##擎
-##擒
-##擔
-##擘
-##據
-##擞
-##擠
-##擡
-##擢
-##擦
-##擬
-##擰
-##擱
-##擲
-##擴
-##擷
-##擺
-##擼
-##擾
-##攀
-##攏
-##攒
-##攔
-##攘
-##攙
-##攜
-##攝
-##攞
-##攢
-##攣
-##攤
-##攥
-##攪
-##攫
-##攬
-##支
-##收
-##攸
-##改
-##攻
-##放
-##政
-##故
-##效
-##敌
-##敍
-##敎
-##敏
-##救
-##敕
-##敖
-##敗
-##敘
-##教
-##敛
-##敝
-##敞
-##敢
-##散
-##敦
-##敬
-##数
-##敲
-##整
-##敵
-##敷
-##數
-##斂
-##斃
-##文
-##斋
-##斌
-##斎
-##斐
-##斑
-##斓
-##斗
-##料
-##斛
-##斜
-##斟
-##斡
-##斤
-##斥
-##斧
-##斩
-##斫
-##斬
-##断
-##斯
-##新
-##斷
-##方
-##於
-##施
-##旁
-##旃
-##旅
-##旋
-##旌
-##旎
-##族
-##旖
-##旗
-##无
-##既
-##日
-##旦
-##旧
-##旨
-##早
-##旬
-##旭
-##旮
-##旱
-##时
-##旷
-##旺
-##旻
-##昀
-##昂
-##昆
-##昇
-##昉
-##昊
-##昌
-##明
-##昏
-##易
-##昔
-##昕
-##昙
-##星
-##映
-##春
-##昧
-##昨
-##昭
-##是
-##昱
-##昴
-##昵
-##昶
-##昼
-##显
-##晁
-##時
-##晃
-##晉
-##晋
-##晌
-##晏
-##晒
-##晓
-##晔
-##晕
-##晖
-##晗
-##晚
-##晝
-##晞
-##晟
-##晤
-##晦
-##晨
-##晩
-##普
-##景
-##晰
-##晴
-##晶
-##晷
-##智
-##晾
-##暂
-##暄
-##暇
-##暈
-##暉
-##暌
-##暐
-##暑
-##暖
-##暗
-##暝
-##暢
-##暧
-##暨
-##暫
-##暮
-##暱
-##暴
-##暸
-##暹
-##曄
-##曆
-##曇
-##曉
-##曖
-##曙
-##曜
-##曝
-##曠
-##曦
-##曬
-##曰
-##曲
-##曳
-##更
-##書
-##曹
-##曼
-##曾
-##替
-##最
-##會
-##月
-##有
-##朋
-##服
-##朐
-##朔
-##朕
-##朗
-##望
-##朝
-##期
-##朦
-##朧
-##木
-##未
-##末
-##本
-##札
-##朮
-##术
-##朱
-##朴
-##朵
-##机
-##朽
-##杀
-##杂
-##权
-##杆
-##杈
-##杉
-##李
-##杏
-##材
-##村
-##杓
-##杖
-##杜
-##杞
-##束
-##杠
-##条
-##来
-##杨
-##杭
-##杯
-##杰
-##東
-##杳
-##杵
-##杷
-##杼
-##松
-##板
-##极
-##构
-##枇
-##枉
-##枋
-##析
-##枕
-##林
-##枚
-##果
-##枝
-##枢
-##枣
-##枪
-##枫
-##枭
-##枯
-##枰
-##枱
-##枳
-##架
-##枷
-##枸
-##柄
-##柏
-##某
-##柑
-##柒
-##染
-##柔
-##柘
-##柚
-##柜
-##柞
-##柠
-##柢
-##查
-##柩
-##柬
-##柯
-##柱
-##柳
-##柴
-##柵
-##査
-##柿
-##栀
-##栃
-##栄
-##栅
-##标
-##栈
-##栉
-##栋
-##栎
-##栏
-##树
-##栓
-##栖
-##栗
-##校
-##栩
-##株
-##样
-##核
-##根
-##格
-##栽
-##栾
-##桀
-##桁
-##桂
-##桃
-##桅
-##框
-##案
-##桉
-##桌
-##桎
-##桐
-##桑
-##桓
-##桔
-##桜
-##桠
-##桡
-##桢
-##档
-##桥
-##桦
-##桧
-##桨
-##桩
-##桶
-##桿
-##梁
-##梅
-##梆
-##梏
-##梓
-##梗
-##條
-##梟
-##梢
-##梦
-##梧
-##梨
-##梭
-##梯
-##械
-##梳
-##梵
-##梶
-##检
-##棂
-##棄
-##棉
-##棋
-##棍
-##棒
-##棕
-##棗
-##棘
-##棚
-##棟
-##棠
-##棣
-##棧
-##森
-##棱
-##棲
-##棵
-##棹
-##棺
-##椁
-##椅
-##椋
-##植
-##椎
-##椒
-##検
-##椪
-##椭
-##椰
-##椹
-##椽
-##椿
-##楂
-##楊
-##楓
-##楔
-##楚
-##楝
-##楞
-##楠
-##楣
-##楨
-##楫
-##業
-##楮
-##極
-##楷
-##楸
-##楹
-##楼
-##楽
-##概
-##榄
-##榆
-##榈
-##榉
-##榔
-##榕
-##榖
-##榛
-##榜
-##榨
-##榫
-##榭
-##榮
-##榱
-##榴
-##榷
-##榻
-##槁
-##槃
-##構
-##槌
-##槍
-##槎
-##槐
-##槓
-##様
-##槛
-##槟
-##槤
-##槭
-##槲
-##槳
-##槻
-##槽
-##槿
-##樁
-##樂
-##樊
-##樑
-##樓
-##標
-##樞
-##樟
-##模
-##樣
-##権
-##横
-##樫
-##樯
-##樱
-##樵
-##樸
-##樹
-##樺
-##樽
-##樾
-##橄
-##橇
-##橋
-##橐
-##橘
-##橙
-##機
-##橡
-##橢
-##橫
-##橱
-##橹
-##橼
-##檀
-##檄
-##檎
-##檐
-##檔
-##檗
-##檜
-##檢
-##檬
-##檯
-##檳
-##檸
-##檻
-##櫃
-##櫚
-##櫛
-##櫥
-##櫸
-##櫻
-##欄
-##權
-##欒
-##欖
-##欠
-##次
-##欢
-##欣
-##欧
-##欲
-##欸
-##欺
-##欽
-##款
-##歆
-##歇
-##歉
-##歌
-##歎
-##歐
-##歓
-##歙
-##歛
-##歡
-##止
-##正
-##此
-##步
-##武
-##歧
-##歩
-##歪
-##歯
-##歲
-##歳
-##歴
-##歷
-##歸
-##歹
-##死
-##歼
-##殁
-##殃
-##殆
-##殇
-##殉
-##殊
-##残
-##殒
-##殓
-##殖
-##殘
-##殞
-##殡
-##殤
-##殭
-##殯
-##殲
-##殴
-##段
-##殷
-##殺
-##殼
-##殿
-##毀
-##毁
-##毂
-##毅
-##毆
-##毋
-##母
-##毎
-##每
-##毒
-##毓
-##比
-##毕
-##毗
-##毘
-##毙
-##毛
-##毡
-##毫
-##毯
-##毽
-##氈
-##氏
-##氐
-##民
-##氓
-##气
-##氖
-##気
-##氙
-##氛
-##氟
-##氡
-##氢
-##氣
-##氤
-##氦
-##氧
-##氨
-##氪
-##氫
-##氮
-##氯
-##氰
-##氲
-##水
-##氷
-##永
-##氹
-##氾
-##汀
-##汁
-##求
-##汆
-##汇
-##汉
-##汎
-##汐
-##汕
-##汗
-##汙
-##汛
-##汝
-##汞
-##江
-##池
-##污
-##汤
-##汨
-##汩
-##汪
-##汰
-##汲
-##汴
-##汶
-##汹
-##決
-##汽
-##汾
-##沁
-##沂
-##沃
-##沅
-##沈
-##沉
-##沌
-##沏
-##沐
-##沒
-##沓
-##沖
-##沙
-##沛
-##沟
-##没
-##沢
-##沣
-##沥
-##沦
-##沧
-##沪
-##沫
-##沭
-##沮
-##沱
-##河
-##沸
-##油
-##治
-##沼
-##沽
-##沾
-##沿
-##況
-##泄
-##泉
-##泊
-##泌
-##泓
-##法
-##泗
-##泛
-##泞
-##泠
-##泡
-##波
-##泣
-##泥
-##注
-##泪
-##泫
-##泮
-##泯
-##泰
-##泱
-##泳
-##泵
-##泷
-##泸
-##泻
-##泼
-##泽
-##泾
-##洁
-##洄
-##洋
-##洒
-##洗
-##洙
-##洛
-##洞
-##津
-##洩
-##洪
-##洮
-##洱
-##洲
-##洵
-##洶
-##洸
-##洹
-##活
-##洼
-##洽
-##派
-##流
-##浃
-##浄
-##浅
-##浆
-##浇
-##浊
-##测
-##济
-##浏
-##浑
-##浒
-##浓
-##浔
-##浙
-##浚
-##浜
-##浣
-##浦
-##浩
-##浪
-##浬
-##浮
-##浯
-##浴
-##海
-##浸
-##涂
-##涅
-##涇
-##消
-##涉
-##涌
-##涎
-##涓
-##涔
-##涕
-##涙
-##涛
-##涝
-##涞
-##涟
-##涠
-##涡
-##涣
-##涤
-##润
-##涧
-##涨
-##涩
-##涪
-##涮
-##涯
-##液
-##涵
-##涸
-##涼
-##涿
-##淀
-##淄
-##淅
-##淆
-##淇
-##淋
-##淌
-##淑
-##淒
-##淖
-##淘
-##淙
-##淚
-##淞
-##淡
-##淤
-##淦
-##淨
-##淩
-##淪
-##淫
-##淬
-##淮
-##深
-##淳
-##淵
-##混
-##淹
-##淺
-##添
-##淼
-##清
-##済
-##渉
-##渊
-##渋
-##渍
-##渎
-##渐
-##渔
-##渗
-##渙
-##渚
-##減
-##渝
-##渠
-##渡
-##渣
-##渤
-##渥
-##渦
-##温
-##測
-##渭
-##港
-##渲
-##渴
-##游
-##渺
-##渾
-##湃
-##湄
-##湊
-##湍
-##湖
-##湘
-##湛
-##湟
-##湧
-##湫
-##湮
-##湯
-##湳
-##湾
-##湿
-##満
-##溃
-##溅
-##溉
-##溏
-##源
-##準
-##溜
-##溝
-##溟
-##溢
-##溥
-##溧
-##溪
-##溫
-##溯
-##溱
-##溴
-##溶
-##溺
-##溼
-##滁
-##滂
-##滄
-##滅
-##滇
-##滋
-##滌
-##滑
-##滓
-##滔
-##滕
-##滙
-##滚
-##滝
-##滞
-##滟
-##满
-##滢
-##滤
-##滥
-##滦
-##滨
-##滩
-##滬
-##滯
-##滲
-##滴
-##滷
-##滸
-##滾
-##滿
-##漁
-##漂
-##漆
-##漉
-##漏
-##漓
-##演
-##漕
-##漠
-##漢
-##漣
-##漩
-##漪
-##漫
-##漬
-##漯
-##漱
-##漲
-##漳
-##漸
-##漾
-##漿
-##潆
-##潇
-##潋
-##潍
-##潑
-##潔
-##潘
-##潛
-##潜
-##潞
-##潟
-##潢
-##潤
-##潦
-##潧
-##潭
-##潮
-##潰
-##潴
-##潸
-##潺
-##潼
-##澀
-##澄
-##澆
-##澈
-##澍
-##澎
-##澗
-##澜
-##澡
-##澤
-##澧
-##澱
-##澳
-##澹
-##激
-##濁
-##濂
-##濃
-##濑
-##濒
-##濕
-##濘
-##濛
-##濟
-##濠
-##濡
-##濤
-##濫
-##濬
-##濮
-##濯
-##濱
-##濺
-##濾
-##瀅
-##瀆
-##瀉
-##瀋
-##瀏
-##瀑
-##瀕
-##瀘
-##瀚
-##瀛
-##瀝
-##瀞
-##瀟
-##瀧
-##瀨
-##瀬
-##瀰
-##瀾
-##灌
-##灏
-##灑
-##灘
-##灝
-##灞
-##灣
-##火
-##灬
-##灭
-##灯
-##灰
-##灵
-##灶
-##灸
-##灼
-##災
-##灾
-##灿
-##炀
-##炁
-##炅
-##炉
-##炊
-##炎
-##炒
-##炔
-##炕
-##炖
-##炙
-##炜
-##炫
-##炬
-##炭
-##炮
-##炯
-##炳
-##炷
-##炸
-##点
-##為
-##炼
-##炽
-##烁
-##烂
-##烃
-##烈
-##烊
-##烏
-##烘
-##烙
-##烛
-##烟
-##烤
-##烦
-##烧
-##烨
-##烩
-##烫
-##烬
-##热
-##烯
-##烷
-##烹
-##烽
-##焉
-##焊
-##焕
-##焖
-##焗
-##焘
-##焙
-##焚
-##焜
-##無
-##焦
-##焯
-##焰
-##焱
-##然
-##焼
-##煅
-##煉
-##煊
-##煌
-##煎
-##煒
-##煖
-##煙
-##煜
-##煞
-##煤
-##煥
-##煦
-##照
-##煨
-##煩
-##煮
-##煲
-##煸
-##煽
-##熄
-##熊
-##熏
-##熒
-##熔
-##熙
-##熟
-##熠
-##熨
-##熬
-##熱
-##熵
-##熹
-##熾
-##燁
-##燃
-##燄
-##燈
-##燉
-##燊
-##燎
-##燒
-##燔
-##燕
-##燙
-##燜
-##營
-##燥
-##燦
-##燧
-##燭
-##燮
-##燴
-##燻
-##燼
-##燿
-##爆
-##爍
-##爐
-##爛
-##爪
-##爬
-##爭
-##爰
-##爱
-##爲
-##爵
-##父
-##爷
-##爸
-##爹
-##爺
-##爻
-##爽
-##爾
-##牆
-##片
-##版
-##牌
-##牍
-##牒
-##牙
-##牛
-##牝
-##牟
-##牠
-##牡
-##牢
-##牦
-##牧
-##物
-##牯
-##牲
-##牴
-##牵
-##特
-##牺
-##牽
-##犀
-##犁
-##犄
-##犊
-##犍
-##犒
-##犢
-##犧
-##犬
-##犯
-##状
-##犷
-##犸
-##犹
-##狀
-##狂
-##狄
-##狈
-##狎
-##狐
-##狒
-##狗
-##狙
-##狞
-##狠
-##狡
-##狩
-##独
-##狭
-##狮
-##狰
-##狱
-##狸
-##狹
-##狼
-##狽
-##猎
-##猕
-##猖
-##猗
-##猙
-##猛
-##猜
-##猝
-##猥
-##猩
-##猪
-##猫
-##猬
-##献
-##猴
-##猶
-##猷
-##猾
-##猿
-##獄
-##獅
-##獎
-##獐
-##獒
-##獗
-##獠
-##獣
-##獨
-##獭
-##獰
-##獲
-##獵
-##獷
-##獸
-##獺
-##獻
-##獼
-##獾
-##玄
-##率
-##玉
-##王
-##玑
-##玖
-##玛
-##玟
-##玠
-##玥
-##玩
-##玫
-##玮
-##环
-##现
-##玲
-##玳
-##玷
-##玺
-##玻
-##珀
-##珂
-##珅
-##珈
-##珉
-##珊
-##珍
-##珏
-##珐
-##珑
-##珙
-##珞
-##珠
-##珣
-##珥
-##珩
-##珪
-##班
-##珮
-##珲
-##珺
-##現
-##球
-##琅
-##理
-##琇
-##琉
-##琊
-##琍
-##琏
-##琐
-##琛
-##琢
-##琥
-##琦
-##琨
-##琪
-##琬
-##琮
-##琰
-##琲
-##琳
-##琴
-##琵
-##琶
-##琺
-##琼
-##瑀
-##瑁
-##瑄
-##瑋
-##瑕
-##瑗
-##瑙
-##瑚
-##瑛
-##瑜
-##瑞
-##瑟
-##瑠
-##瑣
-##瑤
-##瑩
-##瑪
-##瑯
-##瑰
-##瑶
-##瑾
-##璀
-##璁
-##璃
-##璇
-##璉
-##璋
-##璎
-##璐
-##璜
-##璞
-##璟
-##璧
-##璨
-##環
-##璽
-##璿
-##瓊
-##瓏
-##瓒
-##瓜
-##瓢
-##瓣
-##瓤
-##瓦
-##瓮
-##瓯
-##瓴
-##瓶
-##瓷
-##甄
-##甌
-##甕
-##甘
-##甙
-##甚
-##甜
-##生
-##產
-##産
-##甥
-##甦
-##用
-##甩
-##甫
-##甬
-##甭
-##甯
-##田
-##由
-##甲
-##申
-##电
-##男
-##甸
-##町
-##画
-##甾
-##畀
-##畅
-##界
-##畏
-##畑
-##畔
-##留
-##畜
-##畝
-##畢
-##略
-##畦
-##番
-##畫
-##異
-##畲
-##畳
-##畴
-##當
-##畸
-##畹
-##畿
-##疆
-##疇
-##疊
-##疏
-##疑
-##疔
-##疖
-##疗
-##疙
-##疚
-##疝
-##疟
-##疡
-##疣
-##疤
-##疥
-##疫
-##疮
-##疯
-##疱
-##疲
-##疳
-##疵
-##疸
-##疹
-##疼
-##疽
-##疾
-##痂
-##病
-##症
-##痈
-##痉
-##痊
-##痍
-##痒
-##痔
-##痕
-##痘
-##痙
-##痛
-##痞
-##痠
-##痢
-##痣
-##痤
-##痧
-##痨
-##痪
-##痫
-##痰
-##痱
-##痴
-##痹
-##痺
-##痼
-##痿
-##瘀
-##瘁
-##瘋
-##瘍
-##瘓
-##瘘
-##瘙
-##瘟
-##瘠
-##瘡
-##瘢
-##瘤
-##瘦
-##瘧
-##瘩
-##瘪
-##瘫
-##瘴
-##瘸
-##瘾
-##療
-##癇
-##癌
-##癒
-##癖
-##癜
-##癞
-##癡
-##癢
-##癣
-##癥
-##癫
-##癬
-##癮
-##癱
-##癲
-##癸
-##発
-##登
-##發
-##白
-##百
-##皂
-##的
-##皆
-##皇
-##皈
-##皋
-##皎
-##皑
-##皓
-##皖
-##皙
-##皚
-##皮
-##皰
-##皱
-##皴
-##皺
-##皿
-##盂
-##盃
-##盅
-##盆
-##盈
-##益
-##盎
-##盏
-##盐
-##监
-##盒
-##盔
-##盖
-##盗
-##盘
-##盛
-##盜
-##盞
-##盟
-##盡
-##監
-##盤
-##盥
-##盧
-##盪
-##目
-##盯
-##盱
-##盲
-##直
-##相
-##盹
-##盼
-##盾
-##省
-##眈
-##眉
-##看
-##県
-##眙
-##眞
-##真
-##眠
-##眦
-##眨
-##眩
-##眯
-##眶
-##眷
-##眸
-##眺
-##眼
-##眾
-##着
-##睁
-##睇
-##睏
-##睐
-##睑
-##睛
-##睜
-##睞
-##睡
-##睢
-##督
-##睥
-##睦
-##睨
-##睪
-##睫
-##睬
-##睹
-##睽
-##睾
-##睿
-##瞄
-##瞅
-##瞇
-##瞋
-##瞌
-##瞎
-##瞑
-##瞒
-##瞓
-##瞞
-##瞟
-##瞠
-##瞥
-##瞧
-##瞩
-##瞪
-##瞬
-##瞭
-##瞰
-##瞳
-##瞻
-##瞼
-##瞿
-##矇
-##矍
-##矗
-##矚
-##矛
-##矜
-##矢
-##矣
-##知
-##矩
-##矫
-##短
-##矮
-##矯
-##石
-##矶
-##矽
-##矾
-##矿
-##码
-##砂
-##砌
-##砍
-##砒
-##研
-##砖
-##砗
-##砚
-##砝
-##砣
-##砥
-##砧
-##砭
-##砰
-##砲
-##破
-##砷
-##砸
-##砺
-##砼
-##砾
-##础
-##硅
-##硐
-##硒
-##硕
-##硝
-##硫
-##硬
-##确
-##硯
-##硼
-##碁
-##碇
-##碉
-##碌
-##碍
-##碎
-##碑
-##碓
-##碗
-##碘
-##碚
-##碛
-##碟
-##碣
-##碧
-##碩
-##碰
-##碱
-##碳
-##碴
-##確
-##碼
-##碾
-##磁
-##磅
-##磊
-##磋
-##磐
-##磕
-##磚
-##磡
-##磨
-##磬
-##磯
-##磲
-##磷
-##磺
-##礁
-##礎
-##礙
-##礡
-##礦
-##礪
-##礫
-##礴
-##示
-##礼
-##社
-##祀
-##祁
-##祂
-##祇
-##祈
-##祉
-##祎
-##祐
-##祕
-##祖
-##祗
-##祚
-##祛
-##祜
-##祝
-##神
-##祟
-##祠
-##祢
-##祥
-##票
-##祭
-##祯
-##祷
-##祸
-##祺
-##祿
-##禀
-##禁
-##禄
-##禅
-##禍
-##禎
-##福
-##禛
-##禦
-##禧
-##禪
-##禮
-##禱
-##禹
-##禺
-##离
-##禽
-##禾
-##禿
-##秀
-##私
-##秃
-##秆
-##秉
-##秋
-##种
-##科
-##秒
-##秘
-##租
-##秣
-##秤
-##秦
-##秧
-##秩
-##秭
-##积
-##称
-##秸
-##移
-##秽
-##稀
-##稅
-##程
-##稍
-##税
-##稔
-##稗
-##稚
-##稜
-##稞
-##稟
-##稠
-##稣
-##種
-##稱
-##稲
-##稳
-##稷
-##稹
-##稻
-##稼
-##稽
-##稿
-##穀
-##穂
-##穆
-##穌
-##積
-##穎
-##穗
-##穢
-##穩
-##穫
-##穴
-##究
-##穷
-##穹
-##空
-##穿
-##突
-##窃
-##窄
-##窈
-##窍
-##窑
-##窒
-##窓
-##窕
-##窖
-##窗
-##窘
-##窜
-##窝
-##窟
-##窠
-##窥
-##窦
-##窨
-##窩
-##窪
-##窮
-##窯
-##窺
-##窿
-##竄
-##竅
-##竇
-##竊
-##立
-##竖
-##站
-##竜
-##竞
-##竟
-##章
-##竣
-##童
-##竭
-##端
-##競
-##竹
-##竺
-##竽
-##竿
-##笃
-##笆
-##笈
-##笋
-##笏
-##笑
-##笔
-##笙
-##笛
-##笞
-##笠
-##符
-##笨
-##第
-##笹
-##笺
-##笼
-##筆
-##等
-##筊
-##筋
-##筍
-##筏
-##筐
-##筑
-##筒
-##答
-##策
-##筛
-##筝
-##筠
-##筱
-##筲
-##筵
-##筷
-##筹
-##签
-##简
-##箇
-##箋
-##箍
-##箏
-##箐
-##箔
-##箕
-##算
-##箝
-##管
-##箩
-##箫
-##箭
-##箱
-##箴
-##箸
-##節
-##篁
-##範
-##篆
-##篇
-##築
-##篑
-##篓
-##篙
-##篝
-##篠
-##篡
-##篤
-##篩
-##篪
-##篮
-##篱
-##篷
-##簇
-##簌
-##簍
-##簡
-##簦
-##簧
-##簪
-##簫
-##簷
-##簸
-##簽
-##簾
-##簿
-##籁
-##籃
-##籌
-##籍
-##籐
-##籟
-##籠
-##籤
-##籬
-##籮
-##籲
-##米
-##类
-##籼
-##籽
-##粄
-##粉
-##粑
-##粒
-##粕
-##粗
-##粘
-##粟
-##粤
-##粥
-##粧
-##粪
-##粮
-##粱
-##粲
-##粳
-##粵
-##粹
-##粼
-##粽
-##精
-##粿
-##糅
-##糊
-##糍
-##糕
-##糖
-##糗
-##糙
-##糜
-##糞
-##糟
-##糠
-##糧
-##糬
-##糯
-##糰
-##糸
-##系
-##糾
-##紀
-##紂
-##約
-##紅
-##紉
-##紊
-##紋
-##納
-##紐
-##紓
-##純
-##紗
-##紘
-##紙
-##級
-##紛
-##紜
-##素
-##紡
-##索
-##紧
-##紫
-##紮
-##累
-##細
-##紳
-##紹
-##紺
-##終
-##絃
-##組
-##絆
-##経
-##結
-##絕
-##絞
-##絡
-##絢
-##給
-##絨
-##絮
-##統
-##絲
-##絳
-##絵
-##絶
-##絹
-##綁
-##綏
-##綑
-##經
-##継
-##続
-##綜
-##綠
-##綢
-##綦
-##綫
-##綬
-##維
-##綱
-##網
-##綴
-##綵
-##綸
-##綺
-##綻
-##綽
-##綾
-##綿
-##緊
-##緋
-##総
-##緑
-##緒
-##緘
-##線
-##緝
-##緞
-##締
-##緣
-##編
-##緩
-##緬
-##緯
-##練
-##緹
-##緻
-##縁
-##縄
-##縈
-##縛
-##縝
-##縣
-##縫
-##縮
-##縱
-##縴
-##縷
-##總
-##績
-##繁
-##繃
-##繆
-##繇
-##繋
-##織
-##繕
-##繚
-##繞
-##繡
-##繩
-##繪
-##繫
-##繭
-##繳
-##繹
-##繼
-##繽
-##纂
-##續
-##纍
-##纏
-##纓
-##纔
-##纖
-##纜
-##纠
-##红
-##纣
-##纤
-##约
-##级
-##纨
-##纪
-##纫
-##纬
-##纭
-##纯
-##纰
-##纱
-##纲
-##纳
-##纵
-##纶
-##纷
-##纸
-##纹
-##纺
-##纽
-##纾
-##线
-##绀
-##练
-##组
-##绅
-##细
-##织
-##终
-##绊
-##绍
-##绎
-##经
-##绑
-##绒
-##结
-##绔
-##绕
-##绘
-##给
-##绚
-##绛
-##络
-##绝
-##绞
-##统
-##绡
-##绢
-##绣
-##绥
-##绦
-##继
-##绩
-##绪
-##绫
-##续
-##绮
-##绯
-##绰
-##绳
-##维
-##绵
-##绶
-##绷
-##绸
-##绻
-##综
-##绽
-##绾
-##绿
-##缀
-##缄
-##缅
-##缆
-##缇
-##缈
-##缉
-##缎
-##缓
-##缔
-##缕
-##编
-##缘
-##缙
-##缚
-##缜
-##缝
-##缠
-##缢
-##缤
-##缥
-##缨
-##缩
-##缪
-##缭
-##缮
-##缰
-##缱
-##缴
-##缸
-##缺
-##缽
-##罂
-##罄
-##罌
-##罐
-##网
-##罔
-##罕
-##罗
-##罚
-##罡
-##罢
-##罩
-##罪
-##置
-##罰
-##署
-##罵
-##罷
-##罹
-##羁
-##羅
-##羈
-##羊
-##羌
-##美
-##羔
-##羚
-##羞
-##羟
-##羡
-##羣
-##群
-##羥
-##羧
-##羨
-##義
-##羯
-##羲
-##羸
-##羹
-##羽
-##羿
-##翁
-##翅
-##翊
-##翌
-##翎
-##習
-##翔
-##翘
-##翟
-##翠
-##翡
-##翦
-##翩
-##翰
-##翱
-##翳
-##翹
-##翻
-##翼
-##耀
-##老
-##考
-##耄
-##者
-##耆
-##耋
-##而
-##耍
-##耐
-##耒
-##耕
-##耗
-##耘
-##耙
-##耦
-##耨
-##耳
-##耶
-##耷
-##耸
-##耻
-##耽
-##耿
-##聂
-##聆
-##聊
-##聋
-##职
-##聒
-##联
-##聖
-##聘
-##聚
-##聞
-##聪
-##聯
-##聰
-##聲
-##聳
-##聴
-##聶
-##職
-##聽
-##聾
-##聿
-##肃
-##肄
-##肅
-##肆
-##肇
-##肉
-##肋
-##肌
-##肏
-##肓
-##肖
-##肘
-##肚
-##肛
-##肝
-##肠
-##股
-##肢
-##肤
-##肥
-##肩
-##肪
-##肮
-##肯
-##肱
-##育
-##肴
-##肺
-##肽
-##肾
-##肿
-##胀
-##胁
-##胃
-##胄
-##胆
-##背
-##胍
-##胎
-##胖
-##胚
-##胛
-##胜
-##胝
-##胞
-##胡
-##胤
-##胥
-##胧
-##胫
-##胭
-##胯
-##胰
-##胱
-##胳
-##胴
-##胶
-##胸
-##胺
-##能
-##脂
-##脅
-##脆
-##脇
-##脈
-##脉
-##脊
-##脍
-##脏
-##脐
-##脑
-##脓
-##脖
-##脘
-##脚
-##脛
-##脣
-##脩
-##脫
-##脯
-##脱
-##脲
-##脳
-##脸
-##脹
-##脾
-##腆
-##腈
-##腊
-##腋
-##腌
-##腎
-##腐
-##腑
-##腓
-##腔
-##腕
-##腥
-##腦
-##腩
-##腫
-##腭
-##腮
-##腰
-##腱
-##腳
-##腴
-##腸
-##腹
-##腺
-##腻
-##腼
-##腾
-##腿
-##膀
-##膈
-##膊
-##膏
-##膑
-##膘
-##膚
-##膛
-##膜
-##膝
-##膠
-##膦
-##膨
-##膩
-##膳
-##膺
-##膻
-##膽
-##膾
-##膿
-##臀
-##臂
-##臃
-##臆
-##臉
-##臊
-##臍
-##臓
-##臘
-##臟
-##臣
-##臥
-##臧
-##臨
-##自
-##臬
-##臭
-##至
-##致
-##臺
-##臻
-##臼
-##臾
-##舀
-##舂
-##舅
-##舆
-##與
-##興
-##舉
-##舊
-##舌
-##舍
-##舎
-##舐
-##舒
-##舔
-##舖
-##舗
-##舛
-##舜
-##舞
-##舟
-##航
-##舫
-##般
-##舰
-##舱
-##舵
-##舶
-##舷
-##舸
-##船
-##舺
-##舾
-##艇
-##艋
-##艘
-##艙
-##艦
-##艮
-##良
-##艰
-##艱
-##色
-##艳
-##艷
-##艹
-##艺
-##艾
-##节
-##芃
-##芈
-##芊
-##芋
-##芍
-##芎
-##芒
-##芙
-##芜
-##芝
-##芡
-##芥
-##芦
-##芩
-##芪
-##芫
-##芬
-##芭
-##芮
-##芯
-##花
-##芳
-##芷
-##芸
-##芹
-##芻
-##芽
-##芾
-##苁
-##苄
-##苇
-##苋
-##苍
-##苏
-##苑
-##苒
-##苓
-##苔
-##苕
-##苗
-##苛
-##苜
-##苞
-##苟
-##苡
-##苣
-##若
-##苦
-##苫
-##苯
-##英
-##苷
-##苹
-##苻
-##茁
-##茂
-##范
-##茄
-##茅
-##茉
-##茎
-##茏
-##茗
-##茜
-##茧
-##茨
-##茫
-##茬
-##茭
-##茯
-##茱
-##茲
-##茴
-##茵
-##茶
-##茸
-##茹
-##茼
-##荀
-##荃
-##荆
-##草
-##荊
-##荏
-##荐
-##荒
-##荔
-##荖
-##荘
-##荚
-##荞
-##荟
-##荠
-##荡
-##荣
-##荤
-##荥
-##荧
-##荨
-##荪
-##荫
-##药
-##荳
-##荷
-##荸
-##荻
-##荼
-##荽
-##莅
-##莆
-##莉
-##莊
-##莎
-##莒
-##莓
-##莖
-##莘
-##莞
-##莠
-##莢
-##莧
-##莪
-##莫
-##莱
-##莲
-##莴
-##获
-##莹
-##莺
-##莽
-##莿
-##菀
-##菁
-##菅
-##菇
-##菈
-##菊
-##菌
-##菏
-##菓
-##菖
-##菘
-##菜
-##菟
-##菠
-##菡
-##菩
-##華
-##菱
-##菲
-##菸
-##菽
-##萁
-##萃
-##萄
-##萊
-##萋
-##萌
-##萍
-##萎
-##萘
-##萝
-##萤
-##营
-##萦
-##萧
-##萨
-##萩
-##萬
-##萱
-##萵
-##萸
-##萼
-##落
-##葆
-##葉
-##著
-##葚
-##葛
-##葡
-##董
-##葦
-##葩
-##葫
-##葬
-##葭
-##葯
-##葱
-##葳
-##葵
-##葷
-##葺
-##蒂
-##蒋
-##蒐
-##蒔
-##蒙
-##蒜
-##蒞
-##蒟
-##蒡
-##蒨
-##蒲
-##蒸
-##蒹
-##蒻
-##蒼
-##蒿
-##蓁
-##蓄
-##蓆
-##蓉
-##蓋
-##蓑
-##蓓
-##蓖
-##蓝
-##蓟
-##蓦
-##蓬
-##蓮
-##蓼
-##蓿
-##蔑
-##蔓
-##蔔
-##蔗
-##蔘
-##蔚
-##蔡
-##蔣
-##蔥
-##蔫
-##蔬
-##蔭
-##蔵
-##蔷
-##蔺
-##蔻
-##蔼
-##蔽
-##蕁
-##蕃
-##蕈
-##蕉
-##蕊
-##蕎
-##蕙
-##蕤
-##蕨
-##蕩
-##蕪
-##蕭
-##蕲
-##蕴
-##蕻
-##蕾
-##薄
-##薅
-##薇
-##薈
-##薊
-##薏
-##薑
-##薔
-##薙
-##薛
-##薦
-##薨
-##薩
-##薪
-##薬
-##薯
-##薰
-##薹
-##藉
-##藍
-##藏
-##藐
-##藓
-##藕
-##藜
-##藝
-##藤
-##藥
-##藩
-##藹
-##藻
-##藿
-##蘆
-##蘇
-##蘊
-##蘋
-##蘑
-##蘚
-##蘭
-##蘸
-##蘼
-##蘿
-##虎
-##虏
-##虐
-##虑
-##虔
-##處
-##虚
-##虛
-##虜
-##虞
-##號
-##虢
-##虧
-##虫
-##虬
-##虱
-##虹
-##虻
-##虽
-##虾
-##蚀
-##蚁
-##蚂
-##蚊
-##蚌
-##蚓
-##蚕
-##蚜
-##蚝
-##蚣
-##蚤
-##蚩
-##蚪
-##蚯
-##蚱
-##蚵
-##蛀
-##蛆
-##蛇
-##蛊
-##蛋
-##蛎
-##蛐
-##蛔
-##蛙
-##蛛
-##蛟
-##蛤
-##蛭
-##蛮
-##蛰
-##蛳
-##蛹
-##蛻
-##蛾
-##蜀
-##蜂
-##蜃
-##蜆
-##蜇
-##蜈
-##蜊
-##蜍
-##蜒
-##蜓
-##蜕
-##蜗
-##蜘
-##蜚
-##蜜
-##蜡
-##蜢
-##蜥
-##蜱
-##蜴
-##蜷
-##蜻
-##蜿
-##蝇
-##蝈
-##蝉
-##蝌
-##蝎
-##蝕
-##蝗
-##蝙
-##蝟
-##蝠
-##蝦
-##蝨
-##蝴
-##蝶
-##蝸
-##蝼
-##螂
-##螃
-##融
-##螞
-##螢
-##螨
-##螯
-##螳
-##螺
-##蟀
-##蟄
-##蟆
-##蟋
-##蟎
-##蟑
-##蟒
-##蟠
-##蟬
-##蟲
-##蟹
-##蟻
-##蟾
-##蠅
-##蠍
-##蠔
-##蠕
-##蠛
-##蠟
-##蠡
-##蠢
-##蠣
-##蠱
-##蠶
-##蠹
-##蠻
-##血
-##衄
-##衅
-##衆
-##行
-##衍
-##術
-##衔
-##街
-##衙
-##衛
-##衝
-##衞
-##衡
-##衢
-##衣
-##补
-##表
-##衩
-##衫
-##衬
-##衮
-##衰
-##衲
-##衷
-##衹
-##衾
-##衿
-##袁
-##袂
-##袄
-##袅
-##袈
-##袋
-##袍
-##袒
-##袖
-##袜
-##袞
-##袤
-##袪
-##被
-##袭
-##袱
-##裁
-##裂
-##装
-##裆
-##裊
-##裏
-##裔
-##裕
-##裘
-##裙
-##補
-##裝
-##裟
-##裡
-##裤
-##裨
-##裱
-##裳
-##裴
-##裸
-##裹
-##製
-##裾
-##褂
-##複
-##褐
-##褒
-##褓
-##褔
-##褚
-##褥
-##褪
-##褫
-##褲
-##褶
-##褻
-##襁
-##襄
-##襟
-##襠
-##襪
-##襬
-##襯
-##襲
-##西
-##要
-##覃
-##覆
-##覇
-##見
-##規
-##覓
-##視
-##覚
-##覦
-##覧
-##親
-##覬
-##観
-##覷
-##覺
-##覽
-##觀
-##见
-##观
-##规
-##觅
-##视
-##览
-##觉
-##觊
-##觎
-##觐
-##觑
-##角
-##觞
-##解
-##觥
-##触
-##觸
-##言
-##訂
-##計
-##訊
-##討
-##訓
-##訕
-##訖
-##託
-##記
-##訛
-##訝
-##訟
-##訣
-##訥
-##訪
-##設
-##許
-##訳
-##訴
-##訶
-##診
-##註
-##証
-##詆
-##詐
-##詔
-##評
-##詛
-##詞
-##詠
-##詡
-##詢
-##詣
-##試
-##詩
-##詫
-##詬
-##詭
-##詮
-##詰
-##話
-##該
-##詳
-##詹
-##詼
-##誅
-##誇
-##誉
-##誌
-##認
-##誓
-##誕
-##誘
-##語
-##誠
-##誡
-##誣
-##誤
-##誥
-##誦
-##誨
-##說
-##説
-##読
-##誰
-##課
-##誹
-##誼
-##調
-##諄
-##談
-##請
-##諏
-##諒
-##論
-##諗
-##諜
-##諡
-##諦
-##諧
-##諫
-##諭
-##諮
-##諱
-##諳
-##諷
-##諸
-##諺
-##諾
-##謀
-##謁
-##謂
-##謄
-##謊
-##謎
-##謐
-##謔
-##謗
-##謙
-##講
-##謝
-##謠
-##謨
-##謬
-##謹
-##謾
-##譁
-##證
-##譎
-##譏
-##識
-##譙
-##譚
-##譜
-##警
-##譬
-##譯
-##議
-##譲
-##譴
-##護
-##譽
-##讀
-##變
-##讓
-##讚
-##讞
-##计
-##订
-##认
-##讥
-##讧
-##讨
-##让
-##讪
-##讫
-##训
-##议
-##讯
-##记
-##讲
-##讳
-##讴
-##讶
-##讷
-##许
-##讹
-##论
-##讼
-##讽
-##设
-##访
-##诀
-##证
-##诃
-##评
-##诅
-##识
-##诈
-##诉
-##诊
-##诋
-##词
-##诏
-##译
-##试
-##诗
-##诘
-##诙
-##诚
-##诛
-##话
-##诞
-##诟
-##诠
-##诡
-##询
-##诣
-##诤
-##该
-##详
-##诧
-##诩
-##诫
-##诬
-##语
-##误
-##诰
-##诱
-##诲
-##说
-##诵
-##诶
-##请
-##诸
-##诺
-##读
-##诽
-##课
-##诿
-##谀
-##谁
-##调
-##谄
-##谅
-##谆
-##谈
-##谊
-##谋
-##谌
-##谍
-##谎
-##谏
-##谐
-##谑
-##谒
-##谓
-##谔
-##谕
-##谗
-##谘
-##谙
-##谚
-##谛
-##谜
-##谟
-##谢
-##谣
-##谤
-##谥
-##谦
-##谧
-##谨
-##谩
-##谪
-##谬
-##谭
-##谯
-##谱
-##谲
-##谴
-##谶
-##谷
-##豁
-##豆
-##豇
-##豈
-##豉
-##豊
-##豌
-##豎
-##豐
-##豔
-##豚
-##象
-##豢
-##豪
-##豫
-##豬
-##豹
-##豺
-##貂
-##貅
-##貌
-##貓
-##貔
-##貘
-##貝
-##貞
-##負
-##財
-##貢
-##貧
-##貨
-##販
-##貪
-##貫
-##責
-##貯
-##貰
-##貳
-##貴
-##貶
-##買
-##貸
-##費
-##貼
-##貽
-##貿
-##賀
-##賁
-##賂
-##賃
-##賄
-##資
-##賈
-##賊
-##賑
-##賓
-##賜
-##賞
-##賠
-##賡
-##賢
-##賣
-##賤
-##賦
-##質
-##賬
-##賭
-##賴
-##賺
-##購
-##賽
-##贅
-##贈
-##贊
-##贍
-##贏
-##贓
-##贖
-##贛
-##贝
-##贞
-##负
-##贡
-##财
-##责
-##贤
-##败
-##账
-##货
-##质
-##贩
-##贪
-##贫
-##贬
-##购
-##贮
-##贯
-##贰
-##贱
-##贲
-##贴
-##贵
-##贷
-##贸
-##费
-##贺
-##贻
-##贼
-##贾
-##贿
-##赁
-##赂
-##赃
-##资
-##赅
-##赈
-##赊
-##赋
-##赌
-##赎
-##赏
-##赐
-##赓
-##赔
-##赖
-##赘
-##赚
-##赛
-##赝
-##赞
-##赠
-##赡
-##赢
-##赣
-##赤
-##赦
-##赧
-##赫
-##赭
-##走
-##赳
-##赴
-##赵
-##赶
-##起
-##趁
-##超
-##越
-##趋
-##趕
-##趙
-##趟
-##趣
-##趨
-##足
-##趴
-##趵
-##趸
-##趺
-##趾
-##跃
-##跄
-##跆
-##跋
-##跌
-##跎
-##跑
-##跖
-##跚
-##跛
-##距
-##跟
-##跡
-##跤
-##跨
-##跩
-##跪
-##路
-##跳
-##践
-##跷
-##跹
-##跺
-##跻
-##踉
-##踊
-##踌
-##踏
-##踐
-##踝
-##踞
-##踟
-##踢
-##踩
-##踪
-##踮
-##踱
-##踴
-##踵
-##踹
-##蹂
-##蹄
-##蹇
-##蹈
-##蹉
-##蹊
-##蹋
-##蹑
-##蹒
-##蹙
-##蹟
-##蹣
-##蹤
-##蹦
-##蹩
-##蹬
-##蹭
-##蹲
-##蹴
-##蹶
-##蹺
-##蹼
-##蹿
-##躁
-##躇
-##躉
-##躊
-##躋
-##躍
-##躏
-##躪
-##身
-##躬
-##躯
-##躲
-##躺
-##軀
-##車
-##軋
-##軌
-##軍
-##軒
-##軟
-##転
-##軸
-##軼
-##軽
-##軾
-##較
-##載
-##輒
-##輓
-##輔
-##輕
-##輛
-##輝
-##輟
-##輩
-##輪
-##輯
-##輸
-##輻
-##輾
-##輿
-##轄
-##轅
-##轆
-##轉
-##轍
-##轎
-##轟
-##车
-##轧
-##轨
-##轩
-##转
-##轭
-##轮
-##软
-##轰
-##轲
-##轴
-##轶
-##轻
-##轼
-##载
-##轿
-##较
-##辄
-##辅
-##辆
-##辇
-##辈
-##辉
-##辊
-##辍
-##辐
-##辑
-##输
-##辕
-##辖
-##辗
-##辘
-##辙
-##辛
-##辜
-##辞
-##辟
-##辣
-##辦
-##辨
-##辩
-##辫
-##辭
-##辮
-##辯
-##辰
-##辱
-##農
-##边
-##辺
-##辻
-##込
-##辽
-##达
-##迁
-##迂
-##迄
-##迅
-##过
-##迈
-##迎
-##运
-##近
-##返
-##还
-##这
-##进
-##远
-##违
-##连
-##迟
-##迢
-##迤
-##迥
-##迦
-##迩
-##迪
-##迫
-##迭
-##述
-##迴
-##迷
-##迸
-##迹
-##迺
-##追
-##退
-##送
-##适
-##逃
-##逅
-##逆
-##选
-##逊
-##逍
-##透
-##逐
-##递
-##途
-##逕
-##逗
-##這
-##通
-##逛
-##逝
-##逞
-##速
-##造
-##逢
-##連
-##逮
-##週
-##進
-##逵
-##逶
-##逸
-##逻
-##逼
-##逾
-##遁
-##遂
-##遅
-##遇
-##遊
-##運
-##遍
-##過
-##遏
-##遐
-##遑
-##遒
-##道
-##達
-##違
-##遗
-##遙
-##遛
-##遜
-##遞
-##遠
-##遢
-##遣
-##遥
-##遨
-##適
-##遭
-##遮
-##遲
-##遴
-##遵
-##遶
-##遷
-##選
-##遺
-##遼
-##遽
-##避
-##邀
-##邁
-##邂
-##邃
-##還
-##邇
-##邈
-##邊
-##邋
-##邏
-##邑
-##邓
-##邕
-##邛
-##邝
-##邢
-##那
-##邦
-##邨
-##邪
-##邬
-##邮
-##邯
-##邰
-##邱
-##邳
-##邵
-##邸
-##邹
-##邺
-##邻
-##郁
-##郅
-##郊
-##郎
-##郑
-##郜
-##郝
-##郡
-##郢
-##郤
-##郦
-##郧
-##部
-##郫
-##郭
-##郴
-##郵
-##郷
-##郸
-##都
-##鄂
-##鄉
-##鄒
-##鄔
-##鄙
-##鄞
-##鄢
-##鄧
-##鄭
-##鄰
-##鄱
-##鄲
-##鄺
-##酉
-##酊
-##酋
-##酌
-##配
-##酐
-##酒
-##酗
-##酚
-##酝
-##酢
-##酣
-##酥
-##酩
-##酪
-##酬
-##酮
-##酯
-##酰
-##酱
-##酵
-##酶
-##酷
-##酸
-##酿
-##醃
-##醇
-##醉
-##醋
-##醍
-##醐
-##醒
-##醚
-##醛
-##醜
-##醞
-##醣
-##醪
-##醫
-##醬
-##醮
-##醯
-##醴
-##醺
-##釀
-##釁
-##采
-##釉
-##释
-##釋
-##里
-##重
-##野
-##量
-##釐
-##金
-##釗
-##釘
-##釜
-##針
-##釣
-##釦
-##釧
-##釵
-##鈀
-##鈉
-##鈍
-##鈎
-##鈔
-##鈕
-##鈞
-##鈣
-##鈦
-##鈪
-##鈴
-##鈺
-##鈾
-##鉀
-##鉄
-##鉅
-##鉉
-##鉑
-##鉗
-##鉚
-##鉛
-##鉤
-##鉴
-##鉻
-##銀
-##銃
-##銅
-##銑
-##銓
-##銖
-##銘
-##銜
-##銬
-##銭
-##銮
-##銳
-##銷
-##銹
-##鋁
-##鋅
-##鋒
-##鋤
-##鋪
-##鋰
-##鋸
-##鋼
-##錄
-##錐
-##錘
-##錚
-##錠
-##錢
-##錦
-##錨
-##錫
-##錮
-##錯
-##録
-##錳
-##錶
-##鍊
-##鍋
-##鍍
-##鍛
-##鍥
-##鍰
-##鍵
-##鍺
-##鍾
-##鎂
-##鎊
-##鎌
-##鎏
-##鎔
-##鎖
-##鎗
-##鎚
-##鎧
-##鎬
-##鎮
-##鎳
-##鏈
-##鏖
-##鏗
-##鏘
-##鏞
-##鏟
-##鏡
-##鏢
-##鏤
-##鏽
-##鐘
-##鐮
-##鐲
-##鐳
-##鐵
-##鐸
-##鐺
-##鑄
-##鑊
-##鑑
-##鑒
-##鑣
-##鑫
-##鑰
-##鑲
-##鑼
-##鑽
-##鑾
-##鑿
-##针
-##钉
-##钊
-##钎
-##钏
-##钒
-##钓
-##钗
-##钙
-##钛
-##钜
-##钝
-##钞
-##钟
-##钠
-##钡
-##钢
-##钣
-##钤
-##钥
-##钦
-##钧
-##钨
-##钩
-##钮
-##钯
-##钰
-##钱
-##钳
-##钴
-##钵
-##钺
-##钻
-##钼
-##钾
-##钿
-##铀
-##铁
-##铂
-##铃
-##铄
-##铅
-##铆
-##铉
-##铎
-##铐
-##铛
-##铜
-##铝
-##铠
-##铡
-##铢
-##铣
-##铤
-##铨
-##铩
-##铬
-##铭
-##铮
-##铰
-##铲
-##铵
-##银
-##铸
-##铺
-##链
-##铿
-##销
-##锁
-##锂
-##锄
-##锅
-##锆
-##锈
-##锉
-##锋
-##锌
-##锏
-##锐
-##锑
-##错
-##锚
-##锟
-##锡
-##锢
-##锣
-##锤
-##锥
-##锦
-##锭
-##键
-##锯
-##锰
-##锲
-##锵
-##锹
-##锺
-##锻
-##镀
-##镁
-##镂
-##镇
-##镉
-##镌
-##镍
-##镐
-##镑
-##镕
-##镖
-##镗
-##镛
-##镜
-##镣
-##镭
-##镯
-##镰
-##镳
-##镶
-##長
-##长
-##門
-##閃
-##閉
-##開
-##閎
-##閏
-##閑
-##閒
-##間
-##閔
-##閘
-##閡
-##関
-##閣
-##閥
-##閨
-##閩
-##閱
-##閲
-##閹
-##閻
-##閾
-##闆
-##闇
-##闊
-##闌
-##闍
-##闔
-##闕
-##闖
-##闘
-##關
-##闡
-##闢
-##门
-##闪
-##闫
-##闭
-##问
-##闯
-##闰
-##闲
-##间
-##闵
-##闷
-##闸
-##闹
-##闺
-##闻
-##闽
-##闾
-##阀
-##阁
-##阂
-##阅
-##阆
-##阇
-##阈
-##阉
-##阎
-##阐
-##阑
-##阔
-##阕
-##阖
-##阙
-##阚
-##阜
-##队
-##阡
-##阪
-##阮
-##阱
-##防
-##阳
-##阴
-##阵
-##阶
-##阻
-##阿
-##陀
-##陂
-##附
-##际
-##陆
-##陇
-##陈
-##陋
-##陌
-##降
-##限
-##陕
-##陛
-##陝
-##陞
-##陟
-##陡
-##院
-##陣
-##除
-##陨
-##险
-##陪
-##陰
-##陲
-##陳
-##陵
-##陶
-##陷
-##陸
-##険
-##陽
-##隅
-##隆
-##隈
-##隊
-##隋
-##隍
-##階
-##随
-##隐
-##隔
-##隕
-##隘
-##隙
-##際
-##障
-##隠
-##隣
-##隧
-##隨
-##險
-##隱
-##隴
-##隶
-##隸
-##隻
-##隼
-##隽
-##难
-##雀
-##雁
-##雄
-##雅
-##集
-##雇
-##雉
-##雋
-##雌
-##雍
-##雎
-##雏
-##雑
-##雒
-##雕
-##雖
-##雙
-##雛
-##雜
-##雞
-##離
-##難
-##雨
-##雪
-##雯
-##雰
-##雲
-##雳
-##零
-##雷
-##雹
-##電
-##雾
-##需
-##霁
-##霄
-##霆
-##震
-##霈
-##霉
-##霊
-##霍
-##霎
-##霏
-##霑
-##霓
-##霖
-##霜
-##霞
-##霧
-##霭
-##霰
-##露
-##霸
-##霹
-##霽
-##霾
-##靂
-##靄
-##靈
-##青
-##靓
-##靖
-##静
-##靚
-##靛
-##靜
-##非
-##靠
-##靡
-##面
-##靥
-##靦
-##革
-##靳
-##靴
-##靶
-##靼
-##鞅
-##鞋
-##鞍
-##鞏
-##鞑
-##鞘
-##鞠
-##鞣
-##鞦
-##鞭
-##韆
-##韋
-##韌
-##韓
-##韜
-##韦
-##韧
-##韩
-##韬
-##韭
-##音
-##韵
-##韶
-##韻
-##響
-##頁
-##頂
-##頃
-##項
-##順
-##須
-##頌
-##預
-##頑
-##頒
-##頓
-##頗
-##領
-##頜
-##頡
-##頤
-##頫
-##頭
-##頰
-##頷
-##頸
-##頹
-##頻
-##頼
-##顆
-##題
-##額
-##顎
-##顏
-##顔
-##願
-##顛
-##類
-##顧
-##顫
-##顯
-##顱
-##顴
-##页
-##顶
-##顷
-##项
-##顺
-##须
-##顼
-##顽
-##顾
-##顿
-##颁
-##颂
-##预
-##颅
-##领
-##颇
-##颈
-##颉
-##颊
-##颌
-##颍
-##颐
-##频
-##颓
-##颔
-##颖
-##颗
-##题
-##颚
-##颛
-##颜
-##额
-##颞
-##颠
-##颡
-##颢
-##颤
-##颦
-##颧
-##風
-##颯
-##颱
-##颳
-##颶
-##颼
-##飄
-##飆
-##风
-##飒
-##飓
-##飕
-##飘
-##飙
-##飚
-##飛
-##飞
-##食
-##飢
-##飨
-##飩
-##飪
-##飯
-##飲
-##飼
-##飽
-##飾
-##餃
-##餅
-##餉
-##養
-##餌
-##餐
-##餒
-##餓
-##餘
-##餚
-##餛
-##餞
-##餡
-##館
-##餮
-##餵
-##餾
-##饅
-##饈
-##饋
-##饌
-##饍
-##饑
-##饒
-##饕
-##饗
-##饞
-##饥
-##饨
-##饪
-##饬
-##饭
-##饮
-##饯
-##饰
-##饱
-##饲
-##饴
-##饵
-##饶
-##饷
-##饺
-##饼
-##饽
-##饿
-##馀
-##馁
-##馄
-##馅
-##馆
-##馈
-##馋
-##馍
-##馏
-##馒
-##馔
-##首
-##馗
-##香
-##馥
-##馨
-##馬
-##馭
-##馮
-##馳
-##馴
-##駁
-##駄
-##駅
-##駆
-##駐
-##駒
-##駕
-##駛
-##駝
-##駭
-##駱
-##駿
-##騁
-##騎
-##騏
-##験
-##騙
-##騨
-##騰
-##騷
-##驀
-##驅
-##驊
-##驍
-##驒
-##驕
-##驗
-##驚
-##驛
-##驟
-##驢
-##驥
-##马
-##驭
-##驮
-##驯
-##驰
-##驱
-##驳
-##驴
-##驶
-##驷
-##驸
-##驹
-##驻
-##驼
-##驾
-##驿
-##骁
-##骂
-##骄
-##骅
-##骆
-##骇
-##骈
-##骊
-##骋
-##验
-##骏
-##骐
-##骑
-##骗
-##骚
-##骛
-##骜
-##骞
-##骠
-##骡
-##骤
-##骥
-##骧
-##骨
-##骯
-##骰
-##骶
-##骷
-##骸
-##骼
-##髂
-##髅
-##髋
-##髏
-##髒
-##髓
-##體
-##髖
-##高
-##髦
-##髪
-##髮
-##髯
-##髻
-##鬃
-##鬆
-##鬍
-##鬓
-##鬚
-##鬟
-##鬢
-##鬣
-##鬥
-##鬧
-##鬱
-##鬼
-##魁
-##魂
-##魄
-##魅
-##魇
-##魍
-##魏
-##魔
-##魘
-##魚
-##魯
-##魷
-##鮑
-##鮨
-##鮪
-##鮭
-##鮮
-##鯉
-##鯊
-##鯖
-##鯛
-##鯨
-##鯰
-##鯽
-##鰍
-##鰓
-##鰭
-##鰲
-##鰻
-##鰾
-##鱈
-##鱉
-##鱔
-##鱗
-##鱷
-##鱸
-##鱼
-##鱿
-##鲁
-##鲈
-##鲍
-##鲑
-##鲛
-##鲜
-##鲟
-##鲢
-##鲤
-##鲨
-##鲫
-##鲱
-##鲲
-##鲶
-##鲷
-##鲸
-##鳃
-##鳄
-##鳅
-##鳌
-##鳍
-##鳕
-##鳖
-##鳗
-##鳝
-##鳞
-##鳥
-##鳩
-##鳳
-##鳴
-##鳶
-##鴉
-##鴕
-##鴛
-##鴦
-##鴨
-##鴻
-##鴿
-##鵑
-##鵜
-##鵝
-##鵡
-##鵬
-##鵰
-##鵲
-##鶘
-##鶩
-##鶯
-##鶴
-##鷗
-##鷲
-##鷹
-##鷺
-##鸚
-##鸞
-##鸟
-##鸠
-##鸡
-##鸢
-##鸣
-##鸥
-##鸦
-##鸨
-##鸪
-##鸭
-##鸯
-##鸳
-##鸵
-##鸽
-##鸾
-##鸿
-##鹂
-##鹃
-##鹄
-##鹅
-##鹈
-##鹉
-##鹊
-##鹌
-##鹏
-##鹑
-##鹕
-##鹘
-##鹜
-##鹞
-##鹤
-##鹦
-##鹧
-##鹫
-##鹭
-##鹰
-##鹳
-##鹵
-##鹹
-##鹼
-##鹽
-##鹿
-##麂
-##麋
-##麒
-##麓
-##麗
-##麝
-##麟
-##麥
-##麦
-##麩
-##麴
-##麵
-##麸
-##麺
-##麻
-##麼
-##麽
-##麾
-##黃
-##黄
-##黍
-##黎
-##黏
-##黑
-##黒
-##黔
-##默
-##黛
-##黜
-##黝
-##點
-##黠
-##黨
-##黯
-##黴
-##鼋
-##鼎
-##鼐
-##鼓
-##鼠
-##鼬
-##鼹
-##鼻
-##鼾
-##齁
-##齊
-##齋
-##齐
-##齒
-##齡
-##齢
-##齣
-##齦
-##齿
-##龄
-##龅
-##龈
-##龊
-##龋
-##龌
-##龍
-##龐
-##龔
-##龕
-##龙
-##龚
-##龛
-##龜
-##龟
-##︰
-##︱
-##︶
-##︿
-##﹁
-##﹂
-##﹍
-##﹏
-##﹐
-##﹑
-##﹒
-##﹔
-##﹕
-##﹖
-##﹗
-##﹙
-##﹚
-##﹝
-##﹞
-##﹡
-##﹣
-##!
-##"
-###
-##$
-##%
-##&
-##'
-##(
-##)
-##*
-##,
-##-
-##.
-##/
-##:
-##;
-##<
-##?
-##@
-##[
-##\
-##]
-##^
-##_
-##`
-##f
-##h
-##j
-##u
-##w
-##z
-##{
-##}
-##。
-##「
-##」
-##、
-##・
-##ッ
-##ー
-##イ
-##ク
-##シ
-##ス
-##ト
-##ノ
-##フ
-##ラ
-##ル
-##ン
-##゙
-##゚
-## ̄
-##¥
-##👍
-##🔥
-##😂
-##😎
diff --git a/contrib/BertTextClassification/mxBase/main.cpp b/contrib/BertTextClassification/mxBase/main.cpp
deleted file mode 100644
index c37b87b5e7fad7cb4a6c4d197fedde4033594de3..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/main.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright(C) 2021. Huawei Technologies Co.,Ltd. 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.
- */
-
-#include
-#include
-#include "BertClassification.h"
-#include "test/Test.h"
-
-namespace {
- const uint32_t MAX_LENGTH = 300;
- const uint32_t LABEL_NUMBER = 5;
- const uint32_t SAMPLE_NUMBER = 99;
- const std::string LABEL_LIST[LABEL_NUMBER] = {"体育", "健康", "军事", "教育", "汽车"};
-}
-
-void InitBertParam(InitParam &initParam) {
- initParam.deviceId = 0;
- initParam.labelPath = "./model/bert_text_classification_labels.names";
- initParam.modelPath = "./model/bert_text_classification.om";
- initParam.vocabTextPath = "data/vocab.txt";
- initParam.maxLength = MAX_LENGTH;
- initParam.labelNumber = LABEL_NUMBER;
-}
-
-int main(int argc, char* argv[]) {
- if (argc <= 1) {
- LogWarn << "Please input text path, such as './mxBase_text_classification ./data/sample.txt'.";
- return APP_ERR_OK;
- }
-
- InitParam initParam;
- InitBertParam(initParam);
- auto bert = std::make_shared();
- // Initialize the configuration information required for model inference.
- APP_ERROR ret = bert->Init(initParam);
- if (ret != APP_ERR_OK) {
- LogError << "BertClassification init failed, ret=" << ret << ".";
- bert->DeInit();
- return ret;
- }
-
- std::string textPath = argv[1];
- std::string aa = textPath.substr(textPath.find_last_of("."));
- if (textPath.substr(textPath.find_last_of(".")) != ".txt") {
- LogError << "please input the txt file!";
- bert->DeInit();
- return APP_ERR_COMM_FAILURE;
- }
- std::string text;
- std::ifstream infile;
- // Open text file.
- infile.open(textPath, std::ios_base::in);
- // Check text file validity.
- if (infile.fail()) {
- LogError << "Failed to open textPath file: " << textPath << ".";
- bert->DeInit();
- return APP_ERR_COMM_OPEN_FAIL;
- }
-
- while (std::getline(infile, text)) {
- std::string label;
- // Inference begin.
- ret = bert->Process(text, label);
- std::cout << "origin text:" << text <DeInit();
- return ret;
- }
- }
-
- if (text == "") {
- LogError << "The sample.txt text is null, please input right text!";
- bert->DeInit();
- return APP_ERR_COMM_FAILURE;
- }
- // Destroy.
- bert->DeInit();
- return APP_ERR_OK;
-}
diff --git a/contrib/BertTextClassification/mxBase/model/bert_text_classification_labels.names b/contrib/BertTextClassification/mxBase/model/bert_text_classification_labels.names
deleted file mode 100644
index 9dd5a8216101def2f3346fc9871e23db954d156a..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/model/bert_text_classification_labels.names
+++ /dev/null
@@ -1,5 +0,0 @@
-体育
-健康
-军事
-教育
-汽车
\ No newline at end of file
diff --git a/contrib/BertTextClassification/mxBase/out/prediction_label.txt b/contrib/BertTextClassification/mxBase/out/prediction_label.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/contrib/BertTextClassification/mxBase/test/Test.cpp b/contrib/BertTextClassification/mxBase/test/Test.cpp
deleted file mode 100644
index e52f79342abc3349e6a446dafa13f0a8102063d7..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/test/Test.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-// Created by 13352 on 2021/10/19.
-//
-
-#include "Test.h"
-#include
-#include
-
-namespace {
- const uint32_t MAX_LENGTH = 300;
- const uint32_t LABEL_NUMBER = 5;
- const uint32_t SAMPLE_NUMBER = 99;
- const std::string LABEL_LIST[LABEL_NUMBER] = {"体育", "健康", "军事", "教育", "汽车"};
-}
-
-void Test::InitBertParam(InitParam &initParam) {
- initParam.deviceId = 0;
- initParam.labelPath = "./model/bert_text_classification_labels.names";
- initParam.modelPath = "./model/bert_text_classification.om";
- initParam.vocabTextPath = "data/vocab.txt";
- initParam.maxLength = MAX_LENGTH;
- initParam.labelNumber = LABEL_NUMBER;
-}
-
-APP_ERROR Test::test_accuracy() {
- InitParam initParam;
- InitBertParam(initParam);
- auto bert = std::make_shared();
-
- // Initialize the configuration information required for model inference.
- APP_ERROR ret = bert->Init(initParam);
- if (ret != APP_ERR_OK) {
- LogError << "BertClassification init failed, ret=" << ret << ".";
- bert->DeInit();
- return ret;
- }
-
- // Open test file.
- std::ifstream fin("data/test.csv");
- std::string line, prediction_label;
- std::vector> prediction_label_lists;
-
- // Init prediction_label_lists.
- for (int i = 0;i < LABEL_NUMBER;i++) {
- std::vector temp;
- prediction_label_lists.push_back(temp);
- }
- int index = 0, count = 0;
- clock_t startTime,endTime;
- startTime = clock();
- while (getline(fin, line)) {
- std::istringstream sin(line);
- std::string label, text;
- std::string field;
- while (getline(sin, field, ',')) {
- label = field;
- break;
- }
- text = line.substr(line.find_first_of(',') + 1);
- // Remove the start and end ".
- if (text.find("\"") == 0) {
- text = text.replace(text.find("\""),1,"");
- text = text.replace(text.find_last_of("\""),1,"");
- }
- // Start inference.
- ret = bert->Process(text, prediction_label);
-
- if (count != 0 && count % SAMPLE_NUMBER == 0) {
- index++;
- }
-
- // Determine whether the prediction result is correct.
- if (prediction_label == label){
- prediction_label_lists[index].push_back("true");
- }
- else{
- prediction_label_lists[index].push_back("false");
- }
-
- count++;
- if (ret != APP_ERR_OK) {
- LogError << "BertClassification process failed, ret=" << ret << ".";
- bert->DeInit();
- return ret;
- }
- }
- endTime = clock();
- std::cout << "The average time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC / SAMPLE_NUMBER / LABEL_NUMBER
- << "s" << std::endl;
- bert->DeInit();
-
- // Calculate accuracy.
- int all_count = 0;
- index = 0;
- double accuracy;
- for (auto label_list : prediction_label_lists) {
- count = 0;
- for (auto label : label_list) {
- if (label == "true") {
- count++;
- all_count++;
- }
- }
- accuracy = static_cast(count) / SAMPLE_NUMBER;
- std::cout << LABEL_LIST[index] << "类的精确度为:" << accuracy << std::endl;
- index++;
- }
- accuracy = static_cast(all_count) / SAMPLE_NUMBER / LABEL_NUMBER;
- std::cout << "全部类的精确度为:" << accuracy << std::endl;
- return APP_ERR_OK;
-}
-
-APP_ERROR Test::test_input() {
- std::vector input_text;
- InitParam initParam;
- InitBertParam(initParam);
- auto bert = std::make_shared();
- // Initialize the configuration information required for model inference.
- APP_ERROR ret = bert->Init(initParam);
- if (ret != APP_ERR_OK) {
- LogError << "BertClassification init failed, ret=" << ret << ".";
- bert->DeInit();
- return ret;
- }
- std::string text;
- std::ifstream infile;
- // Open text file.
- infile.open("data/test.txt", std::ios_base::in);
- // Check text file validity.
- if (infile.fail()) {
- LogError << "Failed to open textPath file: test.txt.";
- bert->DeInit();
- return APP_ERR_COMM_OPEN_FAIL;
- }
- while (std::getline(infile, text)) {
- std::string label;
- // Inference begin.
- ret = bert->Process(text, label);
- std::cout << "origin text:" << text <DeInit();
- return ret;
- }
- }
-
- // Destroy.
- bert->DeInit();
- return APP_ERR_OK;
-}
\ No newline at end of file
diff --git a/contrib/BertTextClassification/mxBase/test/Test.h b/contrib/BertTextClassification/mxBase/test/Test.h
deleted file mode 100644
index c4acc3456e2baa91e6e95760b2b9b428624056fd..0000000000000000000000000000000000000000
--- a/contrib/BertTextClassification/mxBase/test/Test.h
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Created by 13352 on 2021/10/19.
-//
-
-#ifndef MXBASE_TEXT_CLASSIFICATION_TEST_H
-#define MXBASE_TEXT_CLASSIFICATION_TEST_H
-
-
-#include
-
-class Test {
-public:
- static void InitBertParam(InitParam &initParam);
- static APP_ERROR test_accuracy();
- static APP_ERROR test_input();
-};
-
-
-#endif // MXBASE_TEXT_CLASSIFICATION_TEST_H
diff --git a/contrib/BertTextClassification/sdk/pipeline/BertTextClassification.pipeline b/contrib/BertTextClassification/sdk/pipeline/BertTextClassification.pipeline
index f99a9a17c92d42b366cd31dc444a99c53656a5fa..3279ed1dc59282ffa3387201a5c60ef268e5515b 100644
--- a/contrib/BertTextClassification/sdk/pipeline/BertTextClassification.pipeline
+++ b/contrib/BertTextClassification/sdk/pipeline/BertTextClassification.pipeline
@@ -1,7 +1,7 @@
{
"classification": {
"stream_config": {
- "deviceId": "1"
+ "deviceId": "0"
},
"appsrc0": {
"props": {
diff --git a/contrib/Burpee_Detection/README.md b/contrib/Burpee_Detection/README.md
index c5acbd07016945b8c639d13592390ce4bf648a1f..55cfe75f23ce26ac5c53cc15845cd8f8c539a456 100644
--- a/contrib/Burpee_Detection/README.md
+++ b/contrib/Burpee_Detection/README.md
@@ -112,6 +112,8 @@ MindX SDK 安装前准备可参考《用户指南》,[安装教程](https://gi
### 3.1 模型转换
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
使用模型转换工具 ATC 将 onnx 模型转换为 om 模型,模型转换工具相关介绍参考链接:[ATC模型转换工具指南](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) 。
步骤如下:
diff --git a/contrib/CamouflagedObjectDetection/README.md b/contrib/CamouflagedObjectDetection/README.md
index a5a99f56ab107d1a44e16e74dede5a4fd2e096fb..958590283745b7f3250fe307b611425eb2370ec0 100644
--- a/contrib/CamouflagedObjectDetection/README.md
+++ b/contrib/CamouflagedObjectDetection/README.md
@@ -20,7 +20,7 @@
### 1.3 实现流程
-- 基础环境:Ascend 310、mxVision、Ascend-CANN-toolkit、Ascend Driver
+- 基础环境:Ascend 310 / Ascend 310B、mxVision、Ascend-CANN-toolkit、Ascend Driver
- 模型转换:将ONNX模型(.onnx)转换为昇腾离线模型(.om)
- 昇腾离线模型推理流程代码开发
@@ -78,9 +78,9 @@
| 软件名称 | 版本 |
| :-----------: | :---------: |
| ubantu | 18.04.1 LTS |
-| MindX SDK | 2.0.4 |
+| MindX SDK | 5.0.RC1 |
| Python | 3.9.2 |
-| CANN | 5.0.4 |
+| CANN | 310使用6.3.RC1,310B使用6.2.RC1 |
| numpy | 1.21.2 |
| opencv-python | 4.5.3.56 |
| mindspore (cpu) | 1.9.0 |
@@ -112,7 +112,8 @@ ascend-toolkit-path: CANN 安装路径
```bash
# 进入对应目录
cd ./snapshots/DGNet/
-# 执行以下命令将ONNX模型(.onnx)转换为昇腾离线模型(.om)
+# 执行以下命令将ONNX模型(.onnx)转换为昇腾离线模型(.om),注意若推理芯片为310B,需将命令中的soc_version参数设置为Ascend310B1。
+
atc --framework=5 --model=DGNet.onnx --output=DGNet --input_shape="image:1,3,352,352" --log=debug --soc_version=Ascend310
```
diff --git a/contrib/CenterNet/README.md b/contrib/CenterNet/README.md
index 0db07c8edf6a962f81bda71131822bae2a24a7dc..37cace1bc68dd6200bc2b9b4efc258d1cdb39a52 100644
--- a/contrib/CenterNet/README.md
+++ b/contrib/CenterNet/README.md
@@ -5,12 +5,12 @@ CenterNet 目标检测后处理插件基于 MindX SDK 开发,对图片中的
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310、Atlas310B卡为主要硬件平台。
### 1.2 支持的版本
-支持的SDK版本为 2.0.4, CANN 版本为 5.0.4。
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
### 1.3 软件方案介绍
@@ -106,7 +106,6 @@ CenterNet 的后处理插件接收模型推理插件输出的特征图。本项
| 软件名称 | 版本 |
| -------- | ----- |
| cmake | 3.5+ |
-| mxVision | 2.0.4 |
| python | 3.9.2 |
确保环境中正确安装mxVision SDK。
@@ -142,6 +141,9 @@ cp -r NumCpp/include/NumCpp ./include/
## 3. 模型转换
+
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
本项目中采用的模型是 CenterNet 模型,参考实现代码:https://github.com/xingyizhou/CenterNet ,模型下载链接:https://www.hiascend.com/zh/software/modelzoo/models/detail/1/0699d3e48ff1447cafc85c2c9f007130 。 本项目使用模型转换工具 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 。
@@ -156,6 +158,7 @@ cp -r NumCpp/include/NumCpp ./include/
```
atc --framework=5 --model=CenterNet.onnx --output=CenterNet_pre_post --input_format=NCHW --input_shape="actual_input:1,3,512,512" --out_nodes="Conv_949:0;Conv_952:0;Conv_955:0" --log=info --soc_version=Ascend310 --insert_op_conf=./aipp-configs/aipp_bgr.config
```
+(若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1)
若终端输出:
```
diff --git a/contrib/Collision/README.md b/contrib/Collision/README.md
index 0ab72b54a0bfe541a217dd154fd08421859246ed..c2abeaf410d7ee52707c3e9bba02a3f56cc7a077 100644
--- a/contrib/Collision/README.md
+++ b/contrib/Collision/README.md
@@ -11,9 +11,10 @@
### 1.2 支持的版本
-本样例配套的CANN版本为[5.0.4](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial)。支持的SDK版本为[2.0.4](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2FMindx-sdk)。
-
-MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 特性及适用场景
@@ -79,42 +80,9 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
注:红色为本项目开发插件 蓝色为沿用其他项目开发插件 其余为SDK内置插件
-## 2 环境依赖
-
-推荐系统为ubuntu 18.04,环境依赖软件和版本如下表:
-
-| 软件名称 | 版本 | 说明 | 获取方式 |
-| ------------------- | ----------- | ----------------------------- | ------------------------------------------------------------ |
-| MindX SDK | 2.0.4 | mxVision软件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2FMindx-sdk) |
-| ubuntu | 18.04.1 LTS | 操作系统 | Ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial) |
-
-在编译运行项目前,需要设置环境变量:
-
-- 环境变量介绍
-
-```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-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 ASCEND_OPP_PATH=${install_path}/opp
-export ASCEND_AICPU_PATH=${install_path}
-export LD_LIBRARY_PATH=${install_path}/atc/lib64:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:$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
-#用于设置python3.9.2库文件路径
-export LD_LIBRARY_PATH=/usr/local/python3.9.2/lib:$LD_LIBRARY_PATH
-#如果用户环境存在多个python3版本,则指定使用python3.9.2版本
-export PATH=/usr/local/python3.9.2/bin:$PATH
-```
-
-注:其中SDK安装路径${MX_SDK_HOME}替换为用户的SDK安装路径;install_path替换为开发套件包所在路径。LD_LIBRARY_PATH用以加载开发套件包中lib库。
-
-
+## 1 环境依赖
-## 3 依赖安装
-
-推理中涉及到第三方软件依赖如下表所示。
+推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
| 依赖软件 | 版本 | 说明 | 使用教程 |
| -------- | ---------- | ------------------------------ | -----------------------------------------------------------: |
@@ -122,9 +90,15 @@ export PATH=/usr/local/python3.9.2/bin:$PATH
| ffmpeg | 2021-07-21 | 实现mp4格式视频转为264格式视频 | [链接]([guide/mindx/sdk/tutorials/reference_material/pc端ffmpeg安装教程.md · Ascend/docs-openmind - Gitee.com](https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/reference_material/pc端ffmpeg安装教程.md)) |
| python | 3.9.2 | 与SDK配套 | [链接]([Linux(Ubuntu)系统安装Python (biancheng.net)](http://c.biancheng.net/view/4162.html)) |
+在编译运行项目前,需要设置环境变量:
+将${SDK_INSTALL_PATH}替换为自己的SDK安装路径;
+```shell
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
-## 4 模型转换
+## 2 模型转换
本项目中适用的模型是yolov3模型,yolov3模型可以在昇腾官网ModelZoo直接下载:[YOLOv3-昇腾社区 (hiascend.com)]([ATC YOLOv3(FP16)-昇腾社区 (hiascend.com)](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4))。下载后使用模型转换工具 ATC 将 pb 模型转换为 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](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) 。
@@ -133,9 +107,9 @@ export PATH=/usr/local/python3.9.2/bin:$PATH
从上述下载链接中下载yolov3模型解压缩文件yolov3_tf.pb至 ./model 文件夹下,进入 `./models` 文件夹下执行命令:
```
-atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3 --soc_version=Ascend310 --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"
+atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3 --soc_version=Ascend310B1 --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"
```
-
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
执行该命令后会在当前文件夹下生成项目需要的模型文件 yolov3.om。执行后终端输出为:
```
@@ -147,7 +121,7 @@ ATC run success, welcome to the next use.
-## 5 准备
+## 3 准备
按照第3小结**软件依赖**安装live555和ffmpeg,按照 [Live555离线视频转RTSP说明文档]([guide/mindx/sdk/tutorials/reference_material/Live555离线视频转RTSP说明文档.md · Ascend/docs-openmind - Gitee.com](https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/reference_material/Live555离线视频转RTSP说明文档.md))将mp4视频转换为h264格式。并将生成的264格式的视频上传到`live/mediaServer`目录下,然后修改collision.pipeline文件中mxpi_rtspsrc0的内容。
@@ -176,7 +150,7 @@ ATC run success, welcome to the next use.
"factory": "mxpi_videoencoder",
"next": "queue7"
},
-## 6 编译与运行
+## 4 编译与运行
**步骤1** 按照第2小结**环境依赖**中的步骤设置环境变量。
@@ -195,14 +169,14 @@ bash build.sh
**步骤5** 运行。回到主目录下,在主目录下执行命令:
```
-python3.9.2 collision.py
+python3 collision.py
```
命令执行成功后会在当前目录下生成检测结果视频文件out_collision.h264,查看文件验证目标跟踪结果。
-## 7 结果展示(部分截图)
+## 5 结果展示(部分截图)
生成的out_collision.h264文件在本地我们可以用适配.h264文件格式的视频播放软件进行播放。也可以使用ffmpeg转换成.mp4格式进行本地播放。
@@ -214,7 +188,7 @@ ffmpeg -i out_collision.h264 -vcodec h264 out_collision.mp4
-## 8 常见问题
+## 6 常见问题
视频编码参数配置错误
diff --git a/contrib/Colorization/README.md b/contrib/Colorization/README.md
index 7578f1a8979be6b4d3c0764f2805a1078d2f6347..41d6f4b8acf4990b5f1d152612b8d26ad0f78ff9 100644
--- a/contrib/Colorization/README.md
+++ b/contrib/Colorization/README.md
@@ -8,7 +8,7 @@
### 1.1 支持的产品
-Atlas300推理芯片
+Atlas310B推理芯片
### 1.2 代码目录结构与说明
@@ -31,20 +31,24 @@ Atlas300推理芯片
## 2 环境依赖
-### 2.1 环境变量
-
-模型转换和工程运行的环境变量已写入对应的shell脚本中
-
-### 2.2 软件依赖
+### 2.1 软件依赖
| 依赖软件 | 版本 |
|------------------|-------|
-| CANN | 20.2.rc1|
-| python | 3.9.2 |
-| MindX_SDK | 2.0.4 |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
| opencv-python | 4.5.3 |
| numpy | 1.21.2|
+### 2.2 设置环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
+
+
## 3 运行
示例步骤如下:
diff --git a/contrib/Colorization/scripts/atc_run.sh b/contrib/Colorization/scripts/atc_run.sh
index 1e7ef3a5b8cf72cc0bef30dc1b5006676ecd4ffd..b1472c8011dbf7b55962887c61535a9a9e117b9e 100644
--- a/contrib/Colorization/scripts/atc_run.sh
+++ b/contrib/Colorization/scripts/atc_run.sh
@@ -13,11 +13,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-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:$PYTHONPATH
-export LD_LIBRARY_PATH=${install_path}/atc/lib64:${install_path}/acllib/lib64:$LD_LIBRARY_PATH
-export ASCEND_OPP_PATH=${install_path}/opp
-
cd ../model
-atc --input_shape="data_l:1,1,224,224" --weight="./colorization.caffemodel" --input_format=NCHW --output="colorization" --soc_version=Ascend310 --framework=0 --model="./colorization.prototxt"
+atc --input_shape="data_l:1,1,224,224" --weight="./colorization.caffemodel" --input_format=NCHW --output="colorization" --soc_version=Ascend310B1 --framework=0 --model="./colorization.prototxt"
diff --git a/contrib/Colorization/scripts/run.sh b/contrib/Colorization/scripts/run.sh
index 8abca12286a468bdbfaebbdfc8be4d23975f5afb..daee7c58dadfceed0fc6c74564176ba32e5cf4f8 100644
--- a/contrib/Colorization/scripts/run.sh
+++ b/contrib/Colorization/scripts/run.sh
@@ -17,13 +17,5 @@ set -e
INPUT_PIC="../data/dog.png"
-export MX_SDK_HOME="${YOUR_PATH}/MindX_SDK/mxVision"
-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:${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
-
-#to set PYTHONPATH, import the StreamManagerApi.py
-export PYTHONPATH=$PYTHONPATH:${MX_SDK_HOME}/python
-
python3 ../src/main.py $INPUT_PIC
exit 0
diff --git a/contrib/CrowdCounting/README.md b/contrib/CrowdCounting/README.md
index 1ec51fd38335a1cf5a47f6d6f34ef098b40bec92..06dc1a60207d379e1b1c1322ce8d8f7837d77d44 100644
--- a/contrib/CrowdCounting/README.md
+++ b/contrib/CrowdCounting/README.md
@@ -5,7 +5,7 @@
### 1.1 支持的产品
-支持昇腾310芯片
+支持昇腾310B芯片
### 1.2 支持的版本
@@ -57,14 +57,9 @@ eg:推荐系统为ubuntu 18.04或centos 7.6,环境依赖软件和版本如
在编译运行项目前,需要设置环境变量:
-将下述环境变量中的{MX_INSTALL_PATH}替换为实际的安装路径,一般为/usr/local/Ascend/ascend-toolkit/latest
-
```
-export install_path={MX_INSTALL_PATH}
-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:$PYTHONPATH
-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 #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
## 3 模型转换
@@ -80,7 +75,7 @@ export ASCEND_OPP_PATH=${install_path}/opp
将上述下载得文件统一放在CrowdCounting/model文件夹下,并使用ATC模型转换工具进行模型转换,参考如下指令:
```
-atc --input_shape="blob1:1,3,800,1408" --weight="count_person.caffe.caffemodel" --input_format=NCHW --output="count_person.caffe" --soc_version=Ascend310 --insert_op_conf=insert_op.cfg --framework=0 --model="count_person.caffe.prototxt"
+atc --input_shape="blob1:1,3,800,1408" --weight="count_person.caffe.caffemodel" --input_format=NCHW --output="count_person.caffe" --soc_version=Ascend310B1 --insert_op_conf=insert_op.cfg --framework=0 --model="count_person.caffe.prototxt"
```
得到count_person.caffe.om文件
@@ -89,21 +84,9 @@ atc --input_shape="blob1:1,3,800,1408" --weight="count_person.caffe.caffemodel"
**步骤1**
-修改CMakeLists.txt文件 将set(MX_SDK_HOME "$ENV{MX_SDK_HOME}")中的"$ENV{MX_SDK_HOME}"替换为实际的SDK安装路径
-
-**步骤2**
-
cd到CrowdCounting目录下,执行如下编译命令: bash build.sh
-**步骤3**
-
-设置环境变量 ASCEND_HOME Ascend安装的路径,将${MX_SDK_HOME}改为实际安装路径,一般为/usr/local/Ascend LD_LIBRARY_PATH 指定程序运行时依赖的动态库查找路径,包括ACL,开源软件库,libmxbase.so以及模型后处理开发的动态链接库路径,比如:libyolov3postprocess.so
-
-```
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib/modelpostprocessors:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:${LD_LIBRARY_PATH}
-```
-
-**步骤4**
+**步骤2**
下载人群计数图像,需自行在网络找图,暂支持JPG格式,任意图像分辨率。再将该下载的图片作为推理图片放入CrowdCounting目录下,执行:
@@ -111,11 +94,12 @@ export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib/modelpostprocessors:${MX_SDK_HOME}/lib
./crowd_counting ./xxx.jpg
```
+检测结果保存在result.jpg中
## 5 软件依赖说明
-| 依赖软件 | 版本 | 说明 |
-| -------- | ----- | ------------------------------------------------------------ |
-| mxVision | 2.0.4 | 提供昇腾计算语言(AscendCL)的高级编程API,简化插件和推理应用开发。 |
-
+| 依赖软件 | 版本 |
+| -------- | ----- |
+| mxVision | 5.0rc1
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
diff --git a/contrib/DocumentLayoutAnalysis/README.md b/contrib/DocumentLayoutAnalysis/README.md
index a1aa7d072561e2fae7f2d26472acacab9e541d76..c64f9833d011f86ed4d8fa7a6c5677c0a106ce5a 100644
--- a/contrib/DocumentLayoutAnalysis/README.md
+++ b/contrib/DocumentLayoutAnalysis/README.md
@@ -9,19 +9,19 @@
### 1.1 支持的产品
-支持昇腾310芯片
+支持昇腾310B1芯片
### 1.2 支持的版本
-支持22.0.2版本
+推荐系统为ubantu 18.04。
-版本号查询方法,在Atlas产品环境下,运行命令:
-
-```bash
- npu-smi info
-```
-
-可以查询支持SDK的版本号
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+|numpy|1.21.5|
+|opencv-python|4.5.5|
### 1.3 软件方案介绍
@@ -57,18 +57,7 @@
## 2 环境依赖
-| 软件名称 | 版本 |
-| :--------: | :------: |
-|Ubuntu|Ubuntu/Linaro 7.3.0-16ubuntu3|
-|MindX SDK|mxVision-3.0.RC2|
-|Python|3.9.2|
-|CANN|5.1RC2|
-|numpy|1.21.5|
-|opencv-python|4.5.5|
-
-在编译运行项目前,需要设置环境变量:
-
-- 环境变量介绍
+在编译运行项目前,需要设置环境变量:
```bash
# 执行环境变量脚本使环境变量生效
diff --git a/contrib/DocumentLayoutAnalysis/model/model.sh b/contrib/DocumentLayoutAnalysis/model/model.sh
index 9dab5d9df4d0db1e06d78877a9b39c411d2253dd..1f747479c8c918d9058f1eed9d5f8e01d08fad1c 100644
--- a/contrib/DocumentLayoutAnalysis/model/model.sh
+++ b/contrib/DocumentLayoutAnalysis/model/model.sh
@@ -1 +1,17 @@
-atc --model=./picodet_lcnet_x1_0_fgd_layout_cdla_infer.onnx --framework=5 --output=./layout --soc_version=Ascend310 --insert_op_conf=./layout.aippconfig
+#!/bin/bash
+
+# Copyright(C) 2023 . Huawei Technologies Co.,Ltd. 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.
+
+atc --model=./picodet_lcnet_x1_0_fgd_layout_cdla_infer.onnx --framework=5 --output=./layout --soc_version=Ascend310B1 --insert_op_conf=./layout.aippconfig
diff --git a/contrib/EdgeDetectionPicture/README.md b/contrib/EdgeDetectionPicture/README.md
index 4823853f67bcdd7c7c6c35b8b503edc9ff237b4b..6982fec4a179aa00566fb82fcc23c92088bf24f8 100644
--- a/contrib/EdgeDetectionPicture/README.md
+++ b/contrib/EdgeDetectionPicture/README.md
@@ -6,11 +6,14 @@
其中包含Rcf模型的后处理模块开发。 主要处理流程为: Init > ReadImage >Resize > Inference >PostProcess >DeInit
#### 1.1 支持的产品
-昇腾310(推理)
+昇腾310B1(推理)
#### 1.2 支持的版本
-本样例配套的CANN版本为5.0.4,MindX SDK版本为2.0.4
-MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1%E5%AE%89%E8%A3%85SDK%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6.md)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
#### 1.3 代码目录结构与说明
本sample工程名称为EdgeDetectionPicture,工程目录如下图所示:
@@ -32,30 +35,13 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
└── License
```
-## 2 环境依赖
-环境依赖软件和版本如下表:
-
-
-
-| 软件 | 版本 | 说明 | 获取方式 |
-| ------------------- | ------------ | ----------------------------- | ------------------------------------------------------------ |
-| mxVision | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
-| 操作系统 | Ubuntu 18.04 | 操作系统 | Ubuntu官网获取 |
+## 2 环境依赖 |
在编译运行项目前,需要设置环境变量:
-
-- 环境变量介绍
-
- ```
- 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:$PYTHONPATH
- 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 #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
## 3 模型转换
@@ -69,27 +55,16 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
**步骤3** 执行模型转换命令
```
-atc --model=rcf.prototxt --weight=./rcf_bsds.caffemodel --framework=0 --output=rcf --soc_version=Ascend310 --insert_op_conf=./aipp.cfg --input_format=NCHW --output_type=FP32
+atc --model=rcf.prototxt --weight=./rcf_bsds.caffemodel --framework=0 --output=rcf --soc_version=Ascend310B1 --insert_op_conf=./aipp.cfg --input_format=NCHW --output_type=FP32
```
## 4 编译与运行
**步骤1** 修改CMakeLists.txt文件 将set(MX_SDK_HOME ${SDK安装路径}) 中的${SDK安装路径}替换为实际的SDK安装路径
-**步骤2** 设置环境变量
-ASCEND_HOME Ascend安装的路径,一般为/usr/local/Ascend
-LD_LIBRARY_PATH 指定程序运行时依赖的动态库查找路径,包括ACL,开源软件库,libmxbase.so的路径
-```
-export MX_SDK_HOME=${MX_SDK_HOME}
-export ASCEND_HOME=/usr/local/Ascend
-export ASCEND_VERSION=nnrt/latest
-export ARCH_PATTERN=.
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib/modelpostprocessors:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:${LD_LIBRARY_PATH}
-```
-
-**步骤3** 执行如下编译命令:
+**步骤2** 执行如下编译命令:
bash build.sh
-**步骤4** 进行图像边缘检测
+**步骤3** 进行图像边缘检测
请自行准备jpg格式的测试图像保存在文件夹中(例如 data/**.jpg)进行边缘检测
```
./edge_detection_picture ./data
diff --git a/contrib/ErfnetSegmentation/README.md b/contrib/ErfnetSegmentation/README.md
index fe57f9545fe76c2e0c64ca0dbf70373b6be7f655..00c3ab9e3fb38613c29b1c82352a5bafc70f38fd 100644
--- a/contrib/ErfnetSegmentation/README.md
+++ b/contrib/ErfnetSegmentation/README.md
@@ -8,13 +8,15 @@ ErfNet是一个语义分割网络,ERFNet可以看作是对ResNet结构的又
### 1.1 支持的产品
-Ascend 310
+Ascend 310B
### 1.2 支持的版本
-CANN:5.0.4(通过cat /usr/local/Ascend/ascend-toolkit/latest/acllib/version.info,获取版本信息)
-
-SDK:2.0.4(可通过cat SDK目录下的version.info查看信息)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 代码目录结构与说明
@@ -54,24 +56,27 @@ ErfNet原论文使用街景图片来进行语义分割任务的测试,ErfNet
## 2 环境依赖
-推荐系统为ubuntu 18.04,环境依赖软件和版本如下表:
+推荐系统为ubuntu 18.04
| 软件名称 | 版本 | 说明 | 获取方式 |
-| ------------------- | ----------- | ----------------------------- | ------------------------------------------------------------ |
-| MindX SDK | 2.0.4 | mxVision软件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2FMindx-sdk) |
-| ubuntu | 18.04.1 LTS | 操作系统 | Ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial) |
-| python | 3.9.2 | | |
+| ------------------- | ----------- | ----------------------------- | ------------------------------------------------------------
| numpy | 1.22.4 | 维度数组运算依赖库 | 服务器中使用pip或conda安装 |
| PIL | 9.0.1 | 图像处理依赖库 | 服务器中使用pip或conda安装 |
| opencv-python | 4.6.0 | 图像处理依赖库 | 服务器中使用pip或conda安装 |
| pyquaternion | | |服务器中使用pip或conda安装 |
+> 配置环境变量。
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
+
## 3 准备
### 3.1 获取OM模型文件
-OM权重文件获取参考华为昇腾社区[ModelZoo](https://www.hiascend.com/zh/software/modelzoo/models/detail/1/a552b9d78220425f9a59f0ffdb083dfa)。
+OM权重文件获取参考华为昇腾社区[ModelZoo](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/ErfnetSegementation/ATC%20ErfNet%28FP16%29%20from%20Pytorch%20-%20Ascend310.zip)。
获取到```ErfNet.onnx```模型后,将其放在model目录下。在model目录键入以下命令
```
@@ -80,7 +85,7 @@ bash onnx2om.sh
能获得```ErfNet_bs1.om```模型文件。
-注: [ModelZoo](https://www.hiascend.com/zh/software/modelzoo/models/detail/1/a552b9d78220425f9a59f0ffdb083dfa)
+注: [ModelZoo](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/ErfnetSegementation/ATC%20ErfNet%28FP16%29%20from%20Pytorch%20-%20Ascend310.zip)
中的模型文件```ErfNet_bs1.om```不能用于本项目。
### 3.2 编译插件
diff --git a/contrib/ErfnetSegmentation/model/onnx2om.sh b/contrib/ErfnetSegmentation/model/onnx2om.sh
index 693764943afef55ae6c45a39e4573f408ea25e52..597b7168f18d8f4263506ff92a0e1e85ef90821d 100644
--- a/contrib/ErfnetSegmentation/model/onnx2om.sh
+++ b/contrib/ErfnetSegmentation/model/onnx2om.sh
@@ -1,7 +1,7 @@
#! /bin/bash
atc --model=ErfNet.onnx --output=./ErfNet_bs1 --framework=5 \
--input_shape="actual_input_1:1,3,512,1024" \
- --soc_version=Ascend310 \
+ --soc_version=Ascend310B1 \
--input_format=NCHW \
--output_type=FP32 \
--insert_op_conf=./erfnet.aippconfig
\ No newline at end of file
diff --git a/contrib/ErfnetSegmentation/plugin/postprocess/Postprocess.cpp b/contrib/ErfnetSegmentation/plugin/postprocess/Postprocess.cpp
index 03d296645a3fcd901397e5f272bb65868d15e537..eb2e4fde183223aead1244c043e06c6fdeab6dd7 100644
--- a/contrib/ErfnetSegmentation/plugin/postprocess/Postprocess.cpp
+++ b/contrib/ErfnetSegmentation/plugin/postprocess/Postprocess.cpp
@@ -180,9 +180,7 @@ APP_ERROR MxpiPostProcess::Init(std::map>& co
{
LogInfo << "MxpiPostProcess::Init start.";
APP_ERROR ret = APP_ERR_OK;
- // Get the property values by key 插件对应的属性值将通过“configParamMap”入参传入,可通过属性名称获取。
- std::shared_ptr parentNamePropSptr = std::static_pointer_cast(configParamMap["dataSource"]);
- parentName_ = *parentNamePropSptr.get();
+ parentName_ = dataSource_;
this->index = 0;
return APP_ERR_OK;
}
diff --git a/contrib/FCOS/README.md b/contrib/FCOS/README.md
index a8aadca921ba899921a7876abbbc94945c0b2828..f860350efcfb7986211dc7ede61c74fb99c39e7e 100644
--- a/contrib/FCOS/README.md
+++ b/contrib/FCOS/README.md
@@ -2,7 +2,7 @@
## 1 介绍
-本开发项目演示FCOS模型实现目标检测。本系统基于mxVision SDK进行开发,以昇腾Atlas310卡为主要的硬件平台,主要实现目标检测。待检测的图片中物体不能被遮挡太严重,并且物体要完全出现在图片中。图片亮度不能过低。输入一张图片,最后会输出图片中能检测到的物体。项目主要流程:
+本开发项目演示FCOS模型实现目标检测。本系统基于mxVision SDK进行开发,以昇腾Atlas310、Atlas310B卡为主要的硬件平台,主要实现目标检测。待检测的图片中物体不能被遮挡太严重,并且物体要完全出现在图片中。图片亮度不能过低。输入一张图片,最后会输出图片中能检测到的物体。项目主要流程:
1.环境搭建;
2.模型转换;
@@ -11,11 +11,11 @@
### 1.1支持的产品
-本产品以昇腾310(推理)卡为硬件平台。
+本产品以昇腾310(推理)、310B(推理)卡为硬件平台。
### 1.2支持的版本
-该项目支持的SDK版本为2.0.4,CANN版本为5.0.4。
+该项目支持的SDK版本为5.0.RC1,CANN版本昇腾Atlas310卡使用6.3.RC1,Atlas310B卡使用6.2.RC1。
### 1.3软件方案介绍
@@ -77,9 +77,9 @@
| 软件名称 | 版本 | 说明 | 获取方式 |
| ------------------- | ------ | ----------------------------- | ----------------------------------------------------------------- |
-| MindX SDK | 2.0.4 | mxVision软件包 | [点击打开链接](https://www.hiascend.com/software/Mindx-sdk) |
+| MindX SDK | 5.0.RC1 | mxVision软件包 | [点击打开链接](https://www.hiascend.com/software/Mindx-sdk) |
| ubuntu | 18.04 | 操作系统 | 请上ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [点击打开链接](https://www.hiascend.com/software/cann/commercial) |
+| Ascend-CANN-toolkit | 310使用6.3.RC1,310B使用6.2.RC1 | Ascend-cann-toolkit开发套件包 | [点击打开链接](https://www.hiascend.com/software/cann/commercial) |
| mmdetection | 2.25.0 | 用于评估准确度 | 请上mmdetection官网 |
在项目开始运行前需要设置环境变量:
@@ -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/FaceBoxes/README.md b/contrib/FaceBoxes/README.md
index 6a13cbd41635d35a17b894c7feaa40986c0ba867..49ca5398d5868547e31163de59275e65c6023cb8 100644
--- a/contrib/FaceBoxes/README.md
+++ b/contrib/FaceBoxes/README.md
@@ -2,7 +2,7 @@
## 1 介绍
-本开发项目演示Faceboxes模型实现目标检测。本系统基于mxVision SDK进行开发,以昇腾Atlas300卡为主要的硬件平台,主要应用于在CPU上实现实时的目标检测,检测图像中的场景中目标不能被遮挡严重且亮度过低,并且不能有与目标形态相似的动物出现。项目的主要流程为:
+本开发项目演示Faceboxes模型实现目标检测。本系统基于mxVision SDK进行开发,以昇腾Atlas300卡、昇腾Atlas310B卡为主要的硬件平台,主要应用于在CPU上实现实时的目标检测,检测图像中的场景中目标不能被遮挡严重且亮度过低,并且不能有与目标形态相似的动物出现。项目的主要流程为:
1.环境搭建;
2.模型转换;
@@ -27,10 +27,10 @@
| 软件名称 | 版本 |
| -------- | ----- |
| cmake | 3.5.+ |
- | mxVision | 2.0.4 |
+ | mxVision | 5.0.RC1 |
| Python | 3.9.2 |
| Pytorch | 1.9.0 |
- | CANN | 5.0.4 |
+ | CANN | 310使用6.3.RC1,310B使用6.2.RC1 |
| OpenCV | 4.5.3 |
| gcc | 7.5.0 |
| ffmpeg | 3.4.8 |
@@ -196,19 +196,12 @@ git clone https://github.com/zisianw/FaceBoxes.PyTorch.git
### 6.2 onnx转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:$PYTHONPATH
-
-export LD_LIBRARY_PATH=${install_path}/atc/lib64:${install_path}/acllib/lib64:$LD_LIBRARY_PATH
-
-export ASCEND_OPP_PATH=${install_path}/opp
+. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改
+. ${MX_SDK_HOME}/mxVision/set_env.sh # ${MX_SDK_HOME}替换为用户的SDK安装路径
```
-2.在models目录下,使用atc将onnx模型转换为om模型文件,加入--insert_op_conf参数使用AIPP,放到models目录下,工具使用方法可以参考CANN 5.0.2 开发辅助工具指南 (推理) 01
+2.在models目录下,使用atc将onnx模型转换为om模型文件,加入--insert_op_conf参数使用AIPP,放到models目录下,工具使用方法可以参考CANN 5.0.2 开发辅助工具指南 (推理) 。注意若推理芯片为310B,需将模型转换atc命令中的soc_version参数设置为Ascend310B1。
```
atc --framework=5 --model=faceboxes-b0_bs1.onnx --output=faceboxes-b0_bs1 --input_format=NCHW --input_shape="image:1,3,1024,1024" --log=debug --soc_version=Ascend310 --insert_op_conf=../config/FaceBoxes.aippconfig
@@ -220,10 +213,9 @@ atc --framework=5 --model=faceboxes-b0_bs1.onnx --output=faceboxes-b0_bs1 --inpu
export MX_SDK_HOME=${CUR_PATH}/../../..
## 注意当前目录CUR_PATH与MX_SDK_HOME环境目录的相对位置
```
-直接运行
+为run.sh添加可执行权限,直接运行
```bash
-chmod +x run.sh
bash run.sh
```
diff --git a/contrib/FaceBoxes/plugin/FaceBoxesPostProcess/build.sh b/contrib/FaceBoxes/plugin/FaceBoxesPostProcess/build.sh
index 006f86ba8c189fb585e3523b066f5e0a4ec66c07..ac161d6908b1cb4dd93e484ab2be808e8d8afaca 100644
--- a/contrib/FaceBoxes/plugin/FaceBoxesPostProcess/build.sh
+++ b/contrib/FaceBoxes/plugin/FaceBoxesPostProcess/build.sh
@@ -28,6 +28,7 @@ function build_plugin() {
cd "$build_path"
cmake ..
make -j
+ make install
cd ..
exit 0
}
diff --git a/contrib/FastSCNN/README.md b/contrib/FastSCNN/README.md
index d4092f9b35ae3cdacf71db678bd865c4c7c9495f..7669966f9dfde30980417d01dc210a5bd5986f19 100644
--- a/contrib/FastSCNN/README.md
+++ b/contrib/FastSCNN/README.md
@@ -8,13 +8,17 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台
+本项目以昇腾Atlas310B卡为主要的硬件平台
### 1.2 支持的版本
+推荐系统为ubantu 18.04。
-CANN:5.0.2
-SDK:mxVision 2.02(可通过cat SDK目录下的version.info查看)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -68,53 +72,15 @@ SDK:mxVision 2.02(可通过cat SDK目录下的version.info查看)
-## 2 环境依赖
-
-
-推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
-
-| 软件名称 | 版本 |
-| -------- | ------ |
-| python | 3.9.2 |
-| cv2 | 4.5.3 |
-| numpy | 1.21.1 |
-
-
-
-
+## 2 设置环境变量
在编译运行项目前,需要设置环境变量:
-- 环境变量介绍
-
-
-- MX_SDK_HOME 指向SDK安装包路径
-- LD_LIBRARY_PATH 用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。
-- PYTHONPATH Python中一个重要的环境变量,用于在导入模块的时候搜索路径
-- GST_PLUGIN_SCANNER 用于查找plugin相关的依赖和库
-- GST_PLUGIN_PATH 用于查找plugin相关的依赖和库
-
-
-
-
-
-具体执行命令
```
-export MX_SDK_HOME=${自己的SDK安装包路径}
-
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/python:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/ascend-toolkit/5.0.2/acllib/lib64:/usr/local/Ascend/driver/lib64
-
-
-export PYTHONPATH=/usr/local/Ascend/ascend-toolkit/latest/pyACL/python/site-packages/acl:${MX_SDK_HOME}/python:/usr/local/Ascend/ascend-toolkit/latest/pyACL/python/site-packages/acl:${MX_SDK_HOME}/python/usr/local/Ascend/ascend-toolkit/latest/pyACL/python/site-packages/acl
-
-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
-
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
-
-注:latest是软连接,这里指向CANN5.0.2版本
-
## 3.模型转换
本项目使用的模型是FastSCNN模型。
@@ -132,25 +98,13 @@ pth权重文件和onnx文件的下载链接如下:
1. 下载上述models压缩包,获取best_model.pth和fast_scnn_bs1.onnx模型文件放置FastSCNN/model目录下。
-2. 设置环境变量用以使用atc工具:
-
- ```
- 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:$PYTHONPATH
- export LD_LIBRARY_PATH=${install_path}/atc/lib64:${install_path}/acllib/lib64:$LD_LIBRARY_PATH:$LD_LIBRARY_PATH
- export ASCEND_OPP_PATH=${install_path}/opp
- ```
-
-
-
-3. 进入FastSCNN/model文件夹下执行命令:
+2. 进入FastSCNN/model文件夹下执行命令:
```
- atc --framework=5 --model=fast_scnn_bs1.onnx --output=fast_scnn_bs1 --output_type=FP16 --input_format=NCHW --insert_op_conf=./aipp_FastSCnn.aippconfig --input_shape="image:1,3,1024,2048" --log=debug --soc_version=Ascend310
+ atc --framework=5 --model=fast_scnn_bs1.onnx --output=fast_scnn_bs1 --output_type=FP16 --input_format=NCHW --insert_op_conf=./aipp_FastSCnn.aippconfig --input_shape="image:1,3,1024,2048" --log=debug --soc_version=Ascend310B1
```
-4. 执行该命令会在当前目录下生成项目需要的模型文件fast_scnn_bs1.om。执行后终端输出为:
+3. 执行该命令会在当前目录下生成项目需要的模型文件fast_scnn_bs1.om。执行后终端输出为:
```
ATC start working now, please wait for a moment.
diff --git a/contrib/FastSCNN/text.pipeline b/contrib/FastSCNN/text.pipeline
index fbb61cb3c47930b50da1ab5708795a0ac2dc0344..45e1c8ad37adc97dc27e04d7120828005442a673 100644
--- a/contrib/FastSCNN/text.pipeline
+++ b/contrib/FastSCNN/text.pipeline
@@ -29,7 +29,7 @@
"mxpi_tensorinfer0": {
"props": {
"dataSource": "mxpi_imageresize0",
- "modelPath": "../FastScnn_python/models/fast255.om"
+ "modelPath": "model/fast_scnn_bs1.om"
},
"factory": "mxpi_tensorinfer",
"next": "mxpi_dataserialize0"
diff --git a/contrib/FireDetection/README.md b/contrib/FireDetection/README.md
index eb042cd4098b0bd002b0482b3083eba9858ecd86..aefdd7bab4f6bf02c61340bcc1a91d702bdeb41e 100644
--- a/contrib/FireDetection/README.md
+++ b/contrib/FireDetection/README.md
@@ -1,16 +1,17 @@
+
# 高速公路车辆火灾识别
## 1 介绍
-高速公路车辆火灾识别基于 MindX SDK 开发,在 Ascend 310 芯片上进行目标检测,将检测结果保存成图片。项目主要流程为:通过 live555 服务器进行拉流输入视频,然后进行视频解码将 H.264 格式的视频解码为图片,图片缩放后经过模型推理进行火焰和烟雾检测,识别结果经过后处理后利用 cv 可视化识别框,如果检测到烟雾和火灾进行告警。
+高速公路车辆火灾识别基于 MindX SDK 开发,可在 Ascend 310 及 Ascend 310B 芯片上进行目标检测,将检测结果保存成图片。项目主要流程为:通过 live555 服务器进行拉流输入视频,然后进行视频解码将 H.264 格式的视频解码为图片,图片缩放后经过模型推理进行火焰和烟雾检测,识别结果经过后处理后利用 cv 可视化识别框,如果检测到烟雾和火灾进行告警。
### 1.1 支持的产品
-昇腾 310(推理)
+昇腾 310(推理)、昇腾 310B(推理)
### 1.2 支持的版本
-本样例配套的 CANN 版本为 [5.0.4](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial),MindX SDK 版本为 [2.0.4](https://www.hiascend.com/software/Mindx-sdk)。
+本样例配套的 CANN 版本为 [昇腾Atlas310卡使用6.3.RC1,Atlas310B卡使用6.2.RC1](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial),MindX SDK 版本为 [5.0.RC1](https://www.hiascend.com/software/Mindx-sdk)。
MindX SDK 安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
@@ -23,8 +24,6 @@ MindX SDK 安装前准备可参考《用户指南》,[安装教程](https://gi
本 Sample 工程名称为 **FireDetection**,工程目录如下图所示:
```
-├── envs
-│ └── env.sh //基础环境变量
├── images //ReadMe图片资源
│ └── image-flow.png
├── model
@@ -54,22 +53,16 @@ MindX SDK 安装前准备可参考《用户指南》,[安装教程](https://gi
| 软件名称 | 版本 | 说明 | 获取方式 |
| ------------------- | ----------- | ----------------------------- | ------------------------------------------------------------ |
-| MindX SDK | 2.0.4 | mxVision软件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fmindx-sdk%2Fmxvision) |
+| MindX SDK | 5.0.RC1 | mxVision软件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fmindx-sdk%2Fmxvision) |
| ubuntu | 18.04.1 LTS | 操作系统 | Ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial) |
+| Ascend-CANN-toolkit | 310使用6.3.RC1,310B使用6.2.RC1 | Ascend-cann-toolkit开发套件包 | [链接](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial) |
-在运行项目需要的环境变量如下,运行前不需要特别设置,环境依赖已经写入脚本中,脚本在`FireDetection/envs`目录下:
+在运行项目需要执行如下命令配置MindX SDK的环境变量:
```bash
-# 基础环境变量——env.sh
-export MX_SDK_HOME="${SDK安装路径}/mxVision"
-export LD_LIBRARY_PATH="${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${LD_LIBRARY_PATH}"
-export PYTHONPATH="${MX_SDK_HOME}/python:${PYTHONPATH}"
-
+. ${MX_SDK_HOME}/mxVision/set_env.sh # ${MX_SDK_HOME}替换为用户的SDK安装路径
```
-注:其中`${SDK安装路径}`替换为用户的SDK安装路径;`install_path`替换为ascend-toolkit开发套件包所在路径。`LD_LIBRARY_PATH`用以加载开发套件包中lib库。
-
## 3 模型转换以及依赖安装
本项目使用的模型是火灾识别的模型。模型文件可以直接下载。
@@ -110,7 +103,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/GestureKeypointDetection/README.md b/contrib/GestureKeypointDetection/README.md
index a6160a242dc14a32e2b6047a3d80117f333051ef..db9b97a1d9eece874e9d55cfa8bdbb5628a080da 100644
--- a/contrib/GestureKeypointDetection/README.md
+++ b/contrib/GestureKeypointDetection/README.md
@@ -8,14 +8,19 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
-支持的SDK版本为2.0.4
-支持的cann版本为5.0.4
+推荐系统为ubuntu 18.04。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -58,31 +63,12 @@
## 2 环境依赖
-推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
-
-| 软件名称 | 版本 |
-| -------- | ------ |
-| cmake | 3.5+ |
-| mxVision | 2.0.4 |
-| python | 3.9.2 |
-
确保环境中正确安装mxVision SDK。
在编译运行项目前,需要设置环境变量:
```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-export LD_LIBRARY_PATH="${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64/stub:${LD_LIBRARY_PATH}"
-export PYTHONPATH="${MX_SDK_HOME}/python:${PYTHONPATH}"
-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"
-```
-
-- 环境变量介绍
-
-```
-MX_SDK_HOME: mxVision SDK 安装路径
-LD_LIBRARY_PATH: lib库路径
-PYTHONPATH: python环境路径
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
@@ -95,7 +81,7 @@ PYTHONPATH: python环境路径
1. 从上述 onnx 模型下载链接中下载 onnx 模型至 ``model/hand`` 文件夹下,文件名为:yolov3_hand.onnx 。
2. 进入 ``model/hand`` 文件夹下执行命令:
```
-bash model_convertion.sh
+atc --model=yolov3_hand.onnx --framework=5 --output=hand --input_format=NCHW --output_type=FP32 --soc_version=Ascend310B1 --input_shape="input.1:1,3,416,416" --insert_op_conf=./aipp.cfg --log=info
```
执行该命令后会在当前文件夹下生成项目需要的模型文件 hand.om。执行后终端输出为:
```
@@ -111,9 +97,9 @@ ATC run success, welcome to the next use.
自行转换模型步骤如下:
1. 从上述 onnx 模型下载链接中下载 onnx 模型至 ``model/hand_keypoint`` 文件夹下,文件名为:resnet_50_size-256.onnx 。
-2. 进入 ``model/hand`` 文件夹下执行命令:
+2. 进入 ``model/keypoint`` 文件夹下执行命令:
```
-bash model_convertion.sh
+atc --model=./resnet_50_size-256.onnx --framework=5 --output=hand_keypoint --soc_version=Ascend310B1 --input_shape="input:1, 3, 256, 256" --input_format=NCHW --insert_op_conf=./insert_op.cfg
```
执行该命令后会在当前文件夹下生成项目需要的模型文件 hand_keypoint.om。执行后终端输出为:
```
@@ -122,17 +108,15 @@ ATC run success, welcome to the next use.
```
## 4. 运行
-**步骤1** 根据环境SDK的安装路径配置detection.pipeline中的{$MX_SDK_HOME}。
-**步骤2** 按照第 2 小节 **环境依赖** 中的步骤设置环境变量。
+**步骤1** 按照第 2 小节 **环境依赖** 中的步骤设置环境变量。
-**步骤3** 按照第 3 小节 **模型转换** 中的步骤获得 om 模型文件,放置在 ``model/hand`` 和 ``model/hand_keypoint`` 目录下。
+**步骤2** 按照第 3 小节 **模型转换** 中的步骤获得 om 模型文件,放置在 ``model/hand`` 和 ``model/hand_keypoint`` 目录下。
-**步骤4** 网上下载手势图片。
+**步骤3** 网上下载手势图片。
-**步骤5** 图片检测。将关于人手手势的图片放在项目目录下,命名为 test.jpg。在该图片上进行检测,执行命令:
+**步骤4** 图片检测。将关于人手手势的图片放在项目目录下,命名为 test.jpg。在该图片上进行检测,执行命令:
```
python3 main.py test.jpg
```
命令执行成功后在当前目录下生成检测结果文件 result_test.jpg,查看结果文件验证检测结果。
-
diff --git a/contrib/GestureKeypointDetection/detection.pipeline b/contrib/GestureKeypointDetection/detection.pipeline
index 9f5f07000d897c347deac78b7506bd7d8e9caa6f..ef8c3223cf902a5f936345d29ac264d10ab8df45 100644
--- a/contrib/GestureKeypointDetection/detection.pipeline
+++ b/contrib/GestureKeypointDetection/detection.pipeline
@@ -40,7 +40,7 @@
"dataSource": "mxpi_tensorinfer0",
"postProcessConfigPath": "./model/hand/hand.cfg",
"labelPath": "./model/hand/coco.names",
- "postProcessLibPath": "{$MX_SDK_HOME}/lib/modelpostprocessors/libyolov3postprocess.so"
+ "postProcessLibPath": "libyolov3postprocess.so"
},
"factory": "mxpi_objectpostprocessor",
"next": "mxpi_imagecrop0"
diff --git a/contrib/GestureKeypointDetection/model/hand/model_conversion.sh b/contrib/GestureKeypointDetection/model/hand/model_conversion.sh
deleted file mode 100644
index 353cf96d8270381c22a453fa6431beafa85d80c2..0000000000000000000000000000000000000000
--- a/contrib/GestureKeypointDetection/model/hand/model_conversion.sh
+++ /dev/null
@@ -1,39 +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.
-
-
-# 该脚本用来将 pth 模型文件转换成.om模型文件
-# This is used to convert pth 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
-
-# 执行,转换 Openpose 模型
-# Execute, transform Openpose model.
-atc --model=yolov3_hand.onnx --framework=5 --output=hand --input_format=NCHW --output_type=FP32 --soc_version=Ascend310 --input_shape="input.1:1,3,416,416" --insert_op_conf=./aipp.cfg --log=info
-
-# 删除除 om 模型外额外生成的文件
-# Remove miscellaneous
-
-rm fusion_result.json
-rm -rf kernel_meta
diff --git a/contrib/GestureKeypointDetection/model/keypoint/model_conversion.sh b/contrib/GestureKeypointDetection/model/keypoint/model_conversion.sh
deleted file mode 100644
index a31dd9069795e82d0d77c07423c19c40c35b5bf7..0000000000000000000000000000000000000000
--- a/contrib/GestureKeypointDetection/model/keypoint/model_conversion.sh
+++ /dev/null
@@ -1,40 +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.
-
-
-# 该脚本用来将 pth 模型文件转换成.om模型文件
-# This is used to convert pth 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
-
-# 执行,转换 Openpose 模型
-# Execute, transform Openpose model.
-
-atc --model=./resnet_50_size-256.onnx --framework=5 --output=hand_keypoint --soc_version=Ascend310 --input_shape="input:1, 3, 256, 256" --input_format=NCHW --insert_op_conf=./insert_op.cfg
-
-# 删除除 om 模型外额外生成的文件
-# Remove miscellaneous
-
-rm fusion_result.json
-rm -rf kernel_meta
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..80eddf900e8be57cf73d4c0c3b8138717780c263 100644
--- a/contrib/HelmetIdentification/README.md
+++ b/contrib/HelmetIdentification/README.md
@@ -6,11 +6,11 @@
### 1.1 支持的产品
-昇腾310(推理)
+昇腾310(推理)、昇腾310B(推理)
### 1.2 支持的版本
-本样例配套的CANN版本为[5.0.4](https://www.hiascend.com/software/cann/commercial),MindX SDK版本为[2.0.4](https://www.hiascend.com/software/Mindx-sdk)。
+本样例配套的CANN版本为[昇腾Atlas310卡使用6.3.RC1,Atlas310B卡使用6.2.RC1](https://www.hiascend.com/software/cann/commercial),MindX SDK版本为[5.0.RC1](https://www.hiascend.com/software/Mindx-sdk)。
MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
@@ -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 # 精度计算程序
@@ -59,36 +58,19 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
| 软件 | 版本 | 说明 | 获取方式 |
| ------------------- | ------------ | ----------------------------- | ------------------------------------------------------------ |
-| mxVision | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
+| mxVision | 5.0.RC1 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
+| Ascend-CANN-toolkit | 310使用6.3.RC1,310B使用6.2.RC1 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
| 操作系统 | Ubuntu 18.04 | 操作系统 | Ubuntu官网获取 |
| opencv-python | 4.5.2.54 | 用于识别结果画框 | python3 -m pip install opencv-python |
-在运行脚本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/IAT/README.md b/contrib/IAT/README.md
index efb46e807d3bd2f0d5c0fa7419c67b94d610d55c..4d96a44660b7169ba58bc56aba10887b75989e73 100644
--- a/contrib/IAT/README.md
+++ b/contrib/IAT/README.md
@@ -5,7 +5,7 @@
### 1.1 支持的产品
-支持昇腾310芯片
+本项目以昇腾Atlas310、Atlas310B卡为主要硬件平台。
### 1.2 支持的版本
@@ -17,7 +17,6 @@ eg:版本号查询方法,在Atlas产品环境下,运行命令:
npu-smi info
```
-版本号为Mind SDK 3.0RC3
### 1.3 软件方案介绍
@@ -60,12 +59,11 @@ eg:推荐系统为ubuntu 18.04或centos 7.6,环境依赖软件和版本如
| 软件名称 | 版本 |
| ------------- | ---------------- |
| ubuntu | 18.04.1 LTS |
-| MindX SDK | mxVision-3.0.RC3 |
| Python | 3.9.2 |
-| CANN | 5.1.RC2.alpha008 |
| numpy | 1.22.3 |
| opencv-python | 4.5.5 |
| onnxsim | 0.4.10 |
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
在编译运行项目前,需要设置环境变量:
@@ -131,11 +129,14 @@ onnxsim IAT_lol.onnx IAT_lol-sim.onnx
3.onnx 文件转换 om 文件
+ 若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
将环境从原模型环境切换到当前项目环境,然后运行:
```
atc --framework=5 --model=./IAT_lol-sim.onnx --input_shape="input_1:1,3,400,600" --output=IAT_lol-sim --soc_version=Ascend310
```
+(若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1)
**步骤4** (运行及输出结果)
diff --git a/contrib/InvoiceOCR/README.md b/contrib/InvoiceOCR/README.md
index 1c0434bb2c8634bab15ee416ce09d44922427d53..4464da012067b8a74a39c37ac760aae8529f8b5f 100644
--- a/contrib/InvoiceOCR/README.md
+++ b/contrib/InvoiceOCR/README.md
@@ -104,6 +104,7 @@ npu-smi info
| Python | 3.9.2 |
| CANN | 5.0.4 |
+(如果需要在310B上运行,mxVision版本需要5.0.RC1,CANN版本需要6.2.RC1。)
在编译运行项目前,需要设置环境变量:
```
@@ -140,21 +141,24 @@ ascend-toolkit-path:CANN安装路径
### 3.2 模型转换
+
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
此处提供训练后的中间模型供模型转换使用:[resnet50](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Financial_bills-OCR/resnet.air)、[db](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Financial_bills-OCR/db.onnx)、[crnn](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Financial_bills-OCR/crnn.onnx)
-在`./models/resnet50`目录下执行如下命令
+在`./models/resnet50`目录下执行如下命令(若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1)
```
atc --model=./resnet.air --framework=1 --output=resnet50 --input_format=NCHW --input_shape="x:1,3,224,224" --enable_small_channel=1 --soc_version=Ascend310 --insert_op_conf="aipp.config"
```
-在`./models/db`目录下执行如下命令
+在`./models/db`目录下执行如下命令(若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1)
```
atc --model=./db.onnx --framework=5 --output_type=FP32 --output=db --input_format=NCHW --input_shape="x:1,3,-1,-1" --dynamic_image_size="1216,1280;1280,1216;1120,1280;1280,1120;1024,1280;1280,1024;928,1280;1280,928;832,1280;1280,832;736,1280;1280,736;704,1280;1280,704;672,1280;1280,672;640,1280;1280,640;608,1280;1280,608;576,1280;1280,576;544,1280;1280,544;512,1280;1280,512;480,1280;1280,480;448,1280;1280,448" --soc_version=Ascend310 --insert_op_conf=./det_aipp.cfg
```
-在`./models/crnn`目录下执行如下命令
+在`./models/crnn`目录下执行如下命令(若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1)
```
atc --model=./crnn.onnx --framework=5 --output_type=FP32 --output=crnn --input_format=NCHW --input_shape="x:1,3,48,320" --soc_version=Ascend310 --insert_op_conf="rec_aipp.cfg"
diff --git a/contrib/MMNET/README.md b/contrib/MMNET/README.md
index abb6ba2c564271680860141a420932db69bbc317..88bfd8a3cd39bb34dfa948a50e746bbe98e7a4d7 100644
--- a/contrib/MMNET/README.md
+++ b/contrib/MMNET/README.md
@@ -15,7 +15,10 @@ MMNet致力于解决移动设备上人像抠图的问题,旨在以最小的模
### 1.2 支持的版本
-支持的SDK版本为 2.0.4,CANN版本为 20.2.0
+| 软件名称 | 版本 |
+| -------- | ------ |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 代码目录结构与说明
@@ -47,11 +50,10 @@ MMNet致力于解决移动设备上人像抠图的问题,旨在以最小的模
## 2 环境依赖
-| 软件名称 | 版本 |
-| --------- | ----- |
-| MindX SDK | 2.0.4 |
-| python | 3.9.2 |
-| CANN | 5.0.4 |
+| 软件名称 | 版本 |
+| -------- | ------ |
+| cmake | 3.10.2 |
+| python | 3.9.2 |
| opencv2 | |
| numpy | |
@@ -106,9 +108,9 @@ aipp_op {
在确保环境变量设置正确后,在pb文件所在目录下执行以下命令:
```
-atc --model=mmnet.pb --framework=3 --output=mmnet --soc_version=Ascend310 --insert_op_conf=mmnet.aippconf --input_shape="input_x:1,256,256,3"
+atc --model=mmnet.pb --framework=3 --output=mmnet --soc_version=Ascend310B1 --insert_op_conf=mmnet.aippconf --input_shape="input_x:1,256,256,3"
```
-
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
执行完模型转换脚本后,若提示如下信息说明模型转换成功,会在output参数指定的路径下生成mmnet.om模型文件。
```python
diff --git a/contrib/MeterReader/README.md b/contrib/MeterReader/README.md
index 835d2004d1af6c4f2bb159eefc3e017e49cfdd0d..0e8499f787a82e35de186084f38e7755e89a4035 100644
--- a/contrib/MeterReader/README.md
+++ b/contrib/MeterReader/README.md
@@ -6,11 +6,16 @@
### 1.1 支持的产品
-昇腾 310(推理)
+昇腾 310B1(推理)
### 1.2 支持的版本
-本样例配套的 CANN 版本为 5.0.4,MindX SDK 版本为 2.0.4。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
MindX SDK 安装前准备可参考[《用户指南》安装教程](https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/quick_start/1-1%E5%AE%89%E8%A3%85SDK%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6.md)
@@ -83,7 +88,7 @@ MindX SDK 安装前准备可参考[《用户指南》安装教程](https://gitee
### 1.5 技术实现流程图
-- 基础环境:Ascend 310、mxVision、Ascend-CANN-toolkit、Ascend Driver
+
- 基础环境:mxVision、Ascend-CANN-toolkit
- 模型转换:
PyTorch模型转昇腾离线模型:yolov5.onnx --> yolov5.om
@@ -138,9 +143,9 @@ onnx模型转昇腾离线模型:DeepLabv3.onnx --> DeepLabv3.om
| 软件名称 | 版本 |
| :-----------: | :---------: |
| ubuntu | 18.04.1 LTS |
-| MindX SDK | 2.0.4 |
+| MindX SDK | 5.0RC1 |
| Python | 3.9.2 |
-| CANN | 5.0.4 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
| numpy | 1.23.4 |
| opencv-python | 4.6.0 |
@@ -149,8 +154,8 @@ MindX SDK开发套件部分可参考[MindX SDK开发套件安装指导](https://
### 2.2 导入基础环境
```bash
-. /usr/local/Ascend/ascend-toolkit/set_env.sh
-. ${SDK安装路径}/mxVision/set_env.sh
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
## 3 模型转换及依赖安装
@@ -175,7 +180,7 @@ MindX SDK开发套件部分可参考[MindX SDK开发套件安装指导](https://
进入"\${MeterReader代码根目录}/models/yolov5"目录,执行以下命令将"det.onnx"模型转换成"det.om"模型:
```bash
-atc --model=det.onnx --framework=5 --output=det --insert_op_conf=det_aipp.cfg --soc_version=Ascend310
+atc --model=det.onnx --framework=5 --output=det --insert_op_conf=det_aipp.cfg --soc_version=Ascend310B1
```
出现以下语句表示命令执行成功,会在当前目录中得到"det.om"模型文件。
@@ -209,7 +214,7 @@ pip3 install paddle2onnx
进入"\${MeterReader代码根目录}/models/deeplabv3"目录,执行以下命令将"seg.onnx"模型转换成"seg.om"模型
```bash
cd ${MeterReader代码根目录}/models/deeplabv3
- atc --model=seg.onnx --framework=5 --output=seg --insert_op_conf=seg_aipp.cfg --input_shape="image:1,3,512,512" --input_format=NCHW --soc_version=Ascend310
+ atc --model=seg.onnx --framework=5 --output=seg --insert_op_conf=seg_aipp.cfg --input_shape="image:1,3,512,512" --input_format=NCHW --soc_version=Ascend310B1
```
出现以下语句表示命令执行成功,会在当前目录中得到seg.om模型文件。
@@ -315,8 +320,8 @@ python match.py
* 修改main.py原第64行代码
```python
- 64 show_animation = False
- 65 if not args.no_animation:
+ 60 show_animation = False
+ 61 if not args.no_animation:
```
* 在main.py原第243行添加代码
@@ -375,5 +380,18 @@ python seg_evaluate.py
在转换模型时必须要在AIPP做色域转换,要不然模型输入不正确。
+### 6.2 精度推理报错
+
+若运行精度推理时出现如下报错:
+```
+AttributeError: 'FigureCanvasAgg' object has no attribute 'set_window_title'
+```
+原因是matplotlib版本变动,修改方式如下:
+```
+原始代码:fig.canvas.set_window_title(...)
+
+修改后:fig.canvas.manager.set_window_title(...)
+```
+
diff --git a/contrib/MeterReader/pipeline/yolov5/det.pipeline b/contrib/MeterReader/pipeline/yolov5/det.pipeline
index 9d899b0194ac926c4721ed65ab1228b4f497f0f3..9e3cdfd04a8d07d4004f1b3baf02c579accc56dc 100644
--- a/contrib/MeterReader/pipeline/yolov5/det.pipeline
+++ b/contrib/MeterReader/pipeline/yolov5/det.pipeline
@@ -1,7 +1,7 @@
{
"detection":{
"stream_config":{
- "deviceId":"1"
+ "deviceId":"0"
},
"appsrc0":{
"props":{
diff --git a/contrib/MonocularDepthEstimation/README.md b/contrib/MonocularDepthEstimation/README.md
index 7f804b284e62def1f761585ccc28e84f2d0aed7e..6a05b5ad2472ddddbc7d09f401307e99d728c1d3 100644
--- a/contrib/MonocularDepthEstimation/README.md
+++ b/contrib/MonocularDepthEstimation/README.md
@@ -7,10 +7,15 @@
样例输出:输入图片的深度图(灰度图形式)
### 1.1 支持的产品
-昇腾310(推理)
+昇腾310B1(推理)
### 1.2 支持的版本
-本样例配套的CANN版本为 [5.0.4](https://www.hiascend.com/software/cann/commercial) ,MindX SDK版本为 [2.0.4](https://www.hiascend.com/software/Mindx-sdk) 。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
@@ -41,15 +46,14 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
```
## 2 环境依赖
-### 2.1 软件版本
-| 软件 | 版本 | 说明 | 获取方式 |
-| ------------------- | ------------ | ----------------------------- | ------------------------------------------------------------ |
-| mxVision | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
-| 操作系统 | Ubuntu 18.04 | 操作系统 | Ubuntu官网获取 |
+### 2.1 准备工作
+> 设置环境变量
-### 2.2 准备工作
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
> 模型转换
@@ -60,22 +64,10 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
**步骤3** 将转换或下载得到的 `AdaBins_nyu.onnx` 放在 `model` 目录下
-**步骤4** 运行模型转换脚本 `model_conversion.sh` 或在 `model` 目录下执行以下命令
+**步骤4** `model` 目录下执行以下命令
```
-# 设置环境变量(请确认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
-
-# 执行,转换AdaBins模型
-# Execute, transform AdaBins model.
-
-atc --model=./AdaBins_nyu.onnx --framework=5 --output=./AdaBins_nyu.om --soc_version=Ascend310 --insert_op_conf=./aipp_adabins_640_480.aippconfig --log=error
+atc --model=./AdaBins_nyu.onnx --framework=5 --output=./AdaBins_nyu.om --soc_version=Ascend310B1 --insert_op_conf=./aipp_adabins_640_480.aippconfig --log=error
```
执行完模型转换脚本后,会生成相应的.om模型文件。
@@ -132,31 +124,6 @@ model_output_width = 320
threshold_3 = 1.25 ** 3
```
-### 2.3 配置环境变量
-
-```bash
-# 执行如下命令,打开.bashrc文件
-cd $HOME
-vi .bashrc
-# 在.bashrc文件中添加以下环境变量
-MX_SDK_HOME=${SDK安装路径}
-
-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/
-
-GST_PLUGIN_SCANNER=${MX_SDK_HOME}/opensource/libexec/gstreamer-1.0/gst-plugin-scanner
-
-GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME}/lib/plugins
-
-PYTHONPATH=${MX_SDK_HOME}/python
-
-# 保存退出.bashrc文件
-# 执行如下命令使环境变量生效
-source ~/.bashrc
-
-# 查看环境变量
-env
-```
-
## 3 运行
手动运行请参照 ①, 脚本运行请参照 ②
> ① 手动运行前请确保每一步环境变量均配置完成,随后进入工程目录,键入执行指令
@@ -172,11 +139,8 @@ ex: python3 main.py image/test.jpg result/result.jpg
python3 evaluate.py
```
-> ② 脚本运行请先赋予可执行权限
+> ② 脚本运行前请先赋予可执行权限
```bash
-# 赋予可执行权限
-chmod +x run.sh
-
# 说明:-m 运行模式 {infer | evaluate} -i infer模式下输入图片的路径 -o infer模式下输出结果的路径
# 推理模式
bash run.sh -m infer -i image/test.jpg -o result/result.jpg
diff --git a/contrib/MonocularDepthEstimation/model/model_conversion.sh b/contrib/MonocularDepthEstimation/model/model_conversion.sh
deleted file mode 100644
index 76c612802dc92c725ee8545af004eeb127b392c3..0000000000000000000000000000000000000000
--- a/contrib/MonocularDepthEstimation/model/model_conversion.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# Copyright(C) 2021. Huawei Technologies Co.,Ltd. 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.
-
-set -e
-
-# 该脚本用来将onnx模型文件转换成.om模型文件
-# This is used to convert onnx 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
-
-
-# 执行,转换Adabins_nyu模型
-# Execute, transform Adabins_nyu model.
-
-atc --model=./AdaBins_nyu.onnx --framework=5 --output=./AdaBins_nyu.om --soc_version=Ascend310 --insert_op_conf=./aipp_adabins_640_480.aippconfig --log=error
-
-# 退出
-# exit
-exit 0
\ No newline at end of file
diff --git a/contrib/OpenCVPlugin/README.md b/contrib/OpenCVPlugin/README.md
index ec45cc3894d8da456618587f32bab03bb61526a0..37ffc2782388408d0d53ba1aa0ed4e846c02cdf6 100644
--- a/contrib/OpenCVPlugin/README.md
+++ b/contrib/OpenCVPlugin/README.md
@@ -12,12 +12,12 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310、Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
-支持的SDK版本为 2.0.4, CANN 版本为 5.0.4。
+支持的SDK版本为 5.0.RC1, CANN 版本为昇腾Atlas310卡使用6.3.RC1,Atlas310B卡使用6.2.RC1。
### 1.3 软件方案介绍
@@ -105,7 +105,7 @@ OpenCVPlugin 插件流程图。
| 软件名称 | 版本 |
| -------- | ----- |
| cmake | 3.5+ |
-| mxVision | 2.0.4 |
+| mxVision | 5.0.RC1 |
| python | 3.9.2 |
确保环境中正确安装mxVision SDK。
diff --git a/contrib/PassengerflowEstimation/README.md b/contrib/PassengerflowEstimation/README.md
index 501641754a39c2f7e514b7d85ca78e2da6231110..e11fdf6df878f871394b02d807941e8abb2156f5 100644
--- a/contrib/PassengerflowEstimation/README.md
+++ b/contrib/PassengerflowEstimation/README.md
@@ -6,11 +6,15 @@ passengerflowestimation基于MindXSDK开发,在昇腾芯片上进行客流量
### 1.1支持的产品
-本产品以昇腾310(推理)卡为硬件平台。
+本产品以昇腾310B(推理)卡为硬件平台。
### 1.2支持的版本
-该项目支持的SDK版本为2.0.4,CANN版本为5.0.4。
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3软件方案介绍
@@ -70,31 +74,13 @@ passengerflowestimation基于MindXSDK开发,在昇腾芯片上进行客流量
## 2环境依赖
-推荐系统为ubuntu 18.04,环境以来软件和版本如下:
-
-| 软件名称 | 版本 | 说明 | 获取方式 |
-| ------------------- | ----- | ----------------------------- | --------------------------------------------------------- |
-| MindX SDK | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| ubuntu | 18.04 | 操作系统 | 请上ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
-
在项目编译运行时候,需要设置环境变量:
```
. /usr/local/Ascend/ascend-toolkit/set_env.sh
. ${SDK安装路径}/mxVision/set_env.sh
-
-export install_path=/usr/local/Ascend/ascend-toolkit/latest
-export PATH=${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
```
-注:其中SDK安装路径${MX_SDK_HOME}替换为用户的SDK安装路径。并且本项目用到了mxpi_opencvosd插件,使用mxpi_opencvosd插件前,需要使用osd相关的模型文件,请执行MindX SDK开发套件包安装目录下operators/opencvosd/generate_osd_om.sh脚本生成所需模型文件(在generate_osd_om.sh所在文件夹下执行`bash generate_osd_om.sh `,若这条命令执行失败,则将passengerflowestimation目录下的.om文件移动到generate_osd_om.sh所在的文件夹目录下MindXSDK安装路径/mxVision/operators/opencvosd下)。{install_path}替换为开发套件包所在路径。**(注:开头两行为每次一重新开启终端执行程序就需要输入,此外的其他为转换模型需要,若已经转换模型成功,则不需要输入这些)**
-
-
-
## 3 软件依赖
推理中涉及到第三方软件依赖如下表所示。
@@ -108,7 +94,7 @@ export ASCEND_OPP_PATH=${install_path}/opp
## 4 模型转换
-本项目中使用的模型是yolov4模型,onnx模型可以直接[下载](https://www.hiascend.com/zh/software/modelzoo/detail/1/abb7e641964c459398173248aa5353bc)。下载后使用模型转换工具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
+本项目中使用的模型是yolov4模型,onnx模型可以直接[下载](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/PassengerflowEstimation/ATC%20Yolov4%28FP16%29%20from%20Pytorch.zip)。下载后使用模型转换工具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
模型转换步骤如下:
@@ -116,7 +102,7 @@ export ASCEND_OPP_PATH=${install_path}/opp
2. 进入`passengerflowestimation/models`文件夹下面执行命令**(注:提前设置好环境变量)**:
```
-atc --model=${模型路径}/passengerflowestimation.onnx --framework=5 --output=${输出.om模型路径}/yolov4 --input_format=NCHW --output_type=FP32 --soc_version=Ascend310 --input_shape="input:1,3,608,608" --log=info --insert_op_conf=${aipp文件路径}/aipp_Passengerflowdetection.config
+atc --model=passengerflowestimation.onnx --framework=5 --output=yolov4 --input_format=NCHW --output_type=FP32 --soc_version=Ascend310B1 --input_shape="input:1,3,608,608" --log=info --insert_op_conf=aipp_Passengerflowdetection.config
```
执行该命令后会在指定输出.om模型路径生成项目指定模型文件`passengerflowestimation.om`。若模型转换成功则输出:
@@ -225,12 +211,11 @@ aipp_op{
bash build.sh
```
-命令执行成功之后会在passengerflowestimation/plugins/mxpi_passengerflowestimation和passengerflowestimation/plugins/mxpi_selectobject目录下分别生成build文件夹。将build文件夹下生成的.so下载后上传到${SDK安装路径}/mxVision/lib/plugins目录下。在生成build文件夹后,进入到build目录下执行如下指令:
+命令执行成功之后会在plugins/mxpi_passengerflowestimation和plugins/mxpi_selectobject目录下分别生成build文件夹
-```
-chmod 640 libmxpi_passengerflowestimation.so
-chmod 640 libmxpi_selectobject.so
-```
+在生成build文件夹后,进入到build目录,修改生成的so动态库权限为440
+
+将修改权限的.so拷贝到${SDK安装路径}/mxVision/lib/plugins目录下
@@ -254,5 +239,4 @@ python3 main.py

## 8适用场景
-本项目适用于俯视角度较大,并且人流量不是非常密集的视频中人流量统计。若人流非常密集,由于yolov4模型识别人体不准确,故无法准确统计客流量。并且在视频中的画线要尽量水平。待检测的视频最好如下所示:
-
\ No newline at end of file
+本项目适用于俯视角度较大,并且人流量不是非常密集的视频中人流量统计。若人流非常密集,由于yolov4模型识别人体不准确,故无法准确统计客流量。并且在视频中的画线要尽量水平。
\ No newline at end of file
diff --git a/contrib/PassengerflowEstimation/images/image4.png b/contrib/PassengerflowEstimation/images/image4.png
deleted file mode 100644
index 0a74cddb050c1356fd280ae9b97cf74fc0224183..0000000000000000000000000000000000000000
Binary files a/contrib/PassengerflowEstimation/images/image4.png and /dev/null differ
diff --git a/contrib/PassengerflowEstimation/pipeline/passengerflowestimation.pipeline b/contrib/PassengerflowEstimation/pipeline/passengerflowestimation.pipeline
index 646238ecdad6303d3bfdb4199f2d1c716100c382..86ecba89ef961205ab93d8bb4dd7c1b80fd68bdb 100644
--- a/contrib/PassengerflowEstimation/pipeline/passengerflowestimation.pipeline
+++ b/contrib/PassengerflowEstimation/pipeline/passengerflowestimation.pipeline
@@ -84,12 +84,15 @@
"dataSource": "mxpi_tensorinfer0",
"postProcessConfigPath": "./models/yolov4.cfg",
"labelPath": "./models/yolov3.names",
- "postProcessLibPath": "${MindX_SDK安装路径}/mxVision/lib/modelpostprocessors/libyolov3postprocess.so"
+ "postProcessLibPath": "libyolov3postprocess.so"
},
"factory": "mxpi_objectpostprocessor",
"next": "mxpi_selectobject0"
},
"mxpi_selectobject0": {
+ "props": {
+ "dataSource": "mxpi_objectpostprocessor0"
+ }
"factory": "mxpi_selectobject",
"next": "motV2"
},
@@ -135,8 +138,6 @@
"next": "mxpi_opencvosd0:1"
},
"mxpi_opencvosd0": {
- "dataSourceImage": "queue2",
- "dataSourceOsd": "queue11",
"factory": "mxpi_opencvosd",
"next": "queue9"
},
diff --git a/contrib/PedestrianAttributeRecognition/README.md b/contrib/PedestrianAttributeRecognition/README.md
index f1d6619ec0e551cd4c9c67724e531e386ebe70aa..3c9ea409a97cab26552475697134a384970357c4 100644
--- a/contrib/PedestrianAttributeRecognition/README.md
+++ b/contrib/PedestrianAttributeRecognition/README.md
@@ -9,9 +9,10 @@
### 1.2 支持的版本
-支持的SDK版本为2.0.4.b011。
-
-MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -78,7 +79,6 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
| 软件名称 | 版本 |
| ----------- | ------ |
| python | 3.9.2 |
-| mxVision | 2.0.4 |
| pillow | 8.0.1 |
| pickle5 | 0.0.11 |
@@ -88,15 +88,10 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
在编译运行项目前,需要设置环境变量:
-- 环境变量介绍
-将${SDK安装路径}替换为自己的SDK安装路径;
-```python
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-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:$PYTHONPATH
-export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH
-export ASCEND_OPP_PATH=${install_path}/opp
+将${SDK_INSTALL_PATH}替换为自己的SDK安装路径;
+```shell
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
## 3 模型转换
@@ -105,9 +100,10 @@ export ASCEND_OPP_PATH=${install_path}/opp
获取yolov3_tf.pb文件,将yolov3的pb文件下载到本地,并将其放在“/model/yolov3”路径下,在终端移至该路径下,执行下面命令:。
-```python
-atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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"
+```shell
+atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310B1 --insert_op_conf=./aipp_yolov3_416_416.aippconfig --input_shape="input/input_data:1,416,416,3" --out_nodes="conv_lbbox/BiasAdd:0;conv_mbbox/BiasAdd:0;conv_sbbox/BiasAdd:0"
```
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
更多的atc模型转换信息可以参考此链接样例: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
deepmar模型,对于无aipp设置的离线模型的转换,只需将atc转换时的 --insert_op_conf参数删除即可。
@@ -157,14 +153,14 @@ aipp_op{
下载好deepmar之后,将Deepmar_bs1.onnx文件拷贝到本样例的“model/deepmar”路径下,并在终端中移至该路径下,执行下面命令进行将onnx模型转om模型:
```python
-atc --model=./Deepmar_bs1.onnx --framework=5 --output=./deepmar_bs1_aipp_1 --input_format=NCHW --input_shape="actual_input_1:1,3,224,224" --enable_small_channel=1 --log=error --soc_version=Ascend310 --insert_op_conf=aipp_deepmar.config
+atc --model=./Deepmar_bs1.onnx --framework=5 --output=./deepmar_bs1_aipp_1 --input_format=NCHW --input_shape="actual_input_1:1,3,224,224" --enable_small_channel=1 --log=error --soc_version=Ascend310B1 --insert_op_conf=aipp_deepmar.config
```
对于无aipp设置的离线模型,可执行下面命令得到:
```python
-atc --model=./Deepmar_bs1.onnx --framework=5 --output=./deepmar_bs1_unaipp --input_format=NCHW --input_shape="actual_input_1:1,3,224,224" --enable_small_channel=1 --log=error --soc_version=Ascend310
+atc --model=./Deepmar_bs1.onnx --framework=5 --output=./deepmar_bs1_unaipp --input_format=NCHW --input_shape="actual_input_1:1,3,224,224" --enable_small_channel=1 --log=error --soc_version=Ascend310B1
```
-
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
@@ -184,7 +180,7 @@ atc --model=./Deepmar_bs1.onnx --framework=5 --output=./deepmar_bs1_unaipp --inp
下载开源数据集Peta,[下载地址](https://mindx.sdk.obs.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/PedestrianAttributeRecognition/data.zip),
-(1)将下载好的文件夹中”./dataset/peta/images/*.png“中的images文件夹放入样例代码中的dataset/image文件夹下;将PETA.mat文件放在样例代码的dataset文件夹下。
+(1)将下载好的文件夹中”./dataset/peta/images/*.png“中的images文件夹放入样例代码中的dataset/image文件夹下;将PETA.mat文件放在样例代码的dataset文件夹下,peta_dataset.pkl文件放在dataset目录下。
(2)将Peta数据集中的png格式图片转为jpg格式图片
@@ -204,7 +200,7 @@ python dataset/transform_peta.py
(4)精度测试
-修改下面代码:
+修改evaluate_for_deepmar.py下面的代码,LINE 39:
```python
for idx in partition['test'][0]:
diff --git a/contrib/PedestrianAttributeRecognition/pipeline/test.pipeline b/contrib/PedestrianAttributeRecognition/pipeline/test.pipeline
index 49709b469ac7a3acd32583b62120cab82080cd7c..519f43ffb45f8acbec3eb8cf3d0750cdddb27e09 100644
--- a/contrib/PedestrianAttributeRecognition/pipeline/test.pipeline
+++ b/contrib/PedestrianAttributeRecognition/pipeline/test.pipeline
@@ -1,7 +1,7 @@
{
"detection": {
"stream_config": {
- "deviceId": "3"
+ "deviceId": "0"
},
"appsrc0": {
"props": {
diff --git a/contrib/PeopleKeypointDetection/README.md b/contrib/PeopleKeypointDetection/README.md
index 2776855a7bf0242ea26156625ee6e86e2a4fde42..7a397dbc5a8eef6502af64b1a7e14394e7094a23 100644
--- a/contrib/PeopleKeypointDetection/README.md
+++ b/contrib/PeopleKeypointDetection/README.md
@@ -11,7 +11,7 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310、Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
@@ -21,8 +21,8 @@
| 软件名称 | 版本 |
| :-------: | :---: |
-| MindX SDK | 2.0.4 |
-| CANN | 5.0.4 |
+| MindX SDK | 5.0.RC1 |
+| Ascend-CANN-toolkit | (310使用6.3.RC1,310B使用6.2.RC1) |
### 1.3 软件方案介绍
@@ -93,13 +93,13 @@
| 软件名称 | 版本 |
| :-----------: | :---------: |
| ubuntu | 18.04.1 LTS |
-| MindX SDK | 2.0.4 |
+| MindX SDK | 5.0.RC1 |
| Python | 3.9.2 |
-| CANN | 5.0.4 |
+| CANN | 310使用6.3.RC1,310B使用6.2.RC1 |
| numpy | 1.22.3 |
| opencv-python | 4.5.5 |
| cmake | 3.5+ |
-| mxVision | 2.0.4 |
+| mxVision | 5.0.RC1 |
| natsort | 8.2.0 |
### 2.2 环境搭建
@@ -124,7 +124,7 @@ YOLOv3 模型参考[实现代码](https://www.hiascend.com/zh/software/modelzoo/
**步骤3** 模型转换。
-在`./model/people/`目录下执行以下命令:
+在`./model/people/`目录下执行以下命令。注意若推理芯片为310B,需将模型转换atc命令中的soc_version参数设置为Ascend310B1:
```bash
atc --model=yolov3_tf.pb --framework=3 --output=yolov3_tf_aipp --input_format=NHWC --output_type=FP32 --soc_version=Ascend310 --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" --insert_op_conf=yolov3_tf_aipp.cfg
@@ -149,7 +149,7 @@ ATC run success, welcome to the next use.
**步骤3** 模型转换。
-在`./model/keypoint/`目录下,执行以下命令:
+在`./model/keypoint/`目录下,执行以下命令。注意若推理芯片为310B,需将模型转换atc命令中的soc_version参数设置为Ascend310B1:
```bash
atc --framework=5 --model=3DMPPE-ROOTNET.onnx --output=3DMPPE-ROOTNET_bs1 --input_format=NCHW --input_shape="image:1,3,256,256;cam_param:1,1" --soc_version=Ascend310
@@ -199,7 +199,7 @@ ATC run success, welcome to the next use.
**步骤3** 下载[coco.names]([yolo_objectDetection_imagesCPU/coco.names at master · misbah4064/yolo_objectDetection_imagesCPU · GitHub](https://github.com/misbah4064/yolo_objectDetection_imagesCPU/blob/master/coco.names)),重命名为coco_people.names并放置在 ``./model/people/`` 目录下。
-**步骤4** 下载[MuPoTS数据集]([http://gvv.mpi-inf.mpg.de/projects/SingleShotMultiPerson/MultiPersonTestSet.zip](http://gvv.mpi-inf.mpg.de/projects/SingleShotMultiPerson/MultiPersonTestSet.zip))MultiPersonTestSet,并将数据集解压在pic文件夹下。
+**步骤4** 下载[MuPoTS数据集](http://gvv.mpi-inf.mpg.de/projects/SingleShotMultiPerson/MultiPersonTestSet.zip)MultiPersonTestSet,并将数据集解压在pic文件夹下。
**步骤5** 生成ini配置文件。在untils文件夹中,执行命令:
diff --git a/contrib/PersonCount/README.md b/contrib/PersonCount/README.md
index 1ef3f0e909176e15f867a16bc9e6a13f2ae5c676..7d3a59b5e8801f0b60696013c06a80f8ec41a1d1 100644
--- a/contrib/PersonCount/README.md
+++ b/contrib/PersonCount/README.md
@@ -1,8 +1,6 @@
人群密度计数
## 1 介绍
-(项目的概述,包含的功能)
-(项目的主要流程)
项目的概述:基于MindX SDK,在昇腾平台上,开发端到端人群计数-人群密度估计,输入一幅人群图像,输出图像当中人的计数(估计)的结果。
项目的主要流程:
@@ -17,11 +15,17 @@
### 1.1 支持的产品
可列出项目所用的硬件平台、支持的硬件平台、访问方式等
-人群计数项目使用的硬件平台为华为海思Ascend310。其中,om模型适配海思Ascend310硬件平台,模型的推理过程也由硬件平台Ascend310完成。
+人群计数项目使用的硬件平台为华为海思Ascend310B。
### 1.2 支持的版本
-支持的SDK版本:20.2.0
+推荐系统为ubuntu 18.04。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -39,7 +43,7 @@
### 1.4 代码目录结构与说明
-本工程名称为 [南开大学]人群密度统计,工程目录如下图所示:
+```
│ build.sh //用于生成后处理共享库的编译命令使用sh build.sh完成编译
│ main.py //对待检测图片进行人群计数的主体程序,包含读入图片数据、模型推理、写热度图等功能特性
│ run.sh //人群计数的运行脚本,运行main.py文件
@@ -55,110 +59,67 @@
| └─err1.png //章节6使用到的错误报告截图
│
├─model //转换后的om模型
+│ |--insert_op.cfg //模型转换需要的配置文件
│ └─count_person_8.caffe.om
│
-├─model transformation script
-│ |--insert_op.cfg //模型转换需要的配置文件
-│ └─ model_conversion.sh //模型转换脚本
-│
-├─pipeline //本项目使用的前端是python开发,用到的pipeline配置嵌入到main.py,所以该文件夹为空
+├─pipeline
+│ └─test.pipeline
├─Plugin1 //编译后处理插件所需的源文件,生成的共享库文件存放于build文件夹
│ |--CMakeLists.txt
│ |--Plugin1.cpp
└─ └─Plugin1.h
+```
### 1.5 技术实现流程图
-(可放入流程图片)
-
+
## 2 环境依赖
-请列出环境依赖软件和版本。
-
-推荐系统为ubantu 18.04。
-
-| 软件名称 | 版本 |
-| -------- | ------ |
-| MindX SDK mxManufacture | 2.0.4 |
-| ascend-toolkit | 5.0.4 |
-
在编译运行项目前,需要设置环境变量:
-MX_SDK_HOME="~/mxManufacture"
-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:/usr/local/Ascend/ascend-toolkit:\\${LD_LIBRARY_PATH}
-PYTHONPATH=\\${MX_SDK_HOME}/python:\\${PYTHONPATH}
-install_path=/usr/local/Ascend/ascend-toolkit/latest
-PATH=/usr/local/python3.9.2/bin:\\${install_path}/atc/ccec_compiler/bin:\\${install_path}/atc/bin:\\$PATH
-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
-LD_LIBRARY_PATH=\\${install_path}/atc/lib64:\\$LD_LIBRARY_PATH
-ASCEND_OPP_PATH=\\${install_path}/opp
-- 环境变量介绍
-MX_SDK_HOME指明MindX SDK mxManufacture的根安装路径,用于包含MindX SDK提供的所有库和头文件。
-LD_LIBRARY_PATH提供了MindX SDK已开发的插件和相关的库信息。
-install_path指明ascend-toolkit的安装路径。
-PATH变量中添加了python的执行路径和atc转换工具的执行路径。
-LD_LIBRARY_PATH添加了ascend-toolkit和MindX SDK提供的库目录路径。
-ASCEND_OPP_PATH指明atc转换工具需要的目录。
-
-具体执行命令
-export MX_SDK_HOME="~/mxManufacture"
-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:/usr/local/Ascend/ascend-toolkit:\\${LD_LIBRARY_PATH}
-
-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
-
-
-## 依赖安装
-
-安装MindX SDK mxManufacture:
-chmod u+x Ascend-mindxsdk-mxmanufacture_2.0.4_linux-aarch64.run
-./Ascend-mindxsdk-mxmanufacture_2.0.4_linux-aarch64.run
-
-ascend-toolkit:
-从/usr/local/Ascend/ascend-toolkit/latest/路径获取
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
## 编译与运行
-(描述项目安装运行的全部步骤,,如果不涉及个人路径,请直接列出具体执行命令)
-
-示例步骤如下:
-**步骤1** (修改相应文件)修改Plugin1目录下的CMakeLists.txt中PROJECT_SOURCE_DIR变量,该变量指向MindX SDK mxManufacture的根安装路径。修改main.py中的Dataset_Path变量,该变量指向待检测的图片路径。修改main.py中gt_num变量,改变了指向待检测图片的groundtruth.此外,如果想要得到pipeline中各个插件的具体运行时间,
-可以修改mxManufacture SDK的sdk.conf文件,使得enable_ps变量为true.
-
-**步骤2** (设置环境变量)按照第二章节设置环境变量所需的具体执行指令执行即可。
-
-**步骤3** (执行编译的步骤)首先通过运行build.sh脚本文件生成后处理使用的共享库如sh build.sh。然后使用模型转换命令将caffe模型转化为om模型待使用,具体命令为atc --input_shape="blob1:8,3,800,1408" --weight="model/count_person.caffe.caffemodel" --input_format=NCHW --output="model/count_person_8.caffe" --soc_version=Ascend310 --insert_op_conf=model/insert_op.cfg --framework=0 --model="model/count_person.caffe.prototxt"。此外,我们已经在文件夹model transformation script提供了模型转换脚本将脚本文件复制到主目录即可运行.
-
-**步骤4** (运行及输出结果)直接运行run.sh即可,生成的热度图保存在当前目录的heat_map文件夹下,并且每张热度图的命名以原图片名称为前缀以heatmap为后缀。此外,我们还在文件夹accuracy and performance code提供了精度与性能测试代码,将test.py和test.sh拷贝到主目录中然后执行sh test.sh即可运行精度与性能测试代码。
+**步骤1** 修改相应文件
+修改main.py与test.py中的DATASET_PATH变量,该变量指向待检测的图片路径。修改main.py中gt_path变量,改变了指向待检测图片的groundtruth.
+此外,如果想要得到pipeline中各个插件的具体运行时间,
+可以修改SDK的sdk.conf文件,使得enable_ps变量为true.
-## 5 软件依赖说明
+**步骤2** 设置环境变量
-如果涉及第三方软件依赖,请详细列出。
+按照第二章节设置环境变量所需的具体执行指令执行即可。
-| 依赖软件 | 版本 | 说明 |
-| -------- | ----- | ------------------------ |
-| cmake | 3.10.2 | 用于编译并生成后处理插件 |
-| python | 3.9.2 | 用于编译用户程序如main.py |
+**步骤3** 编译
+首先通过运行build.sh脚本文件生成后处理使用的动态库,动态库生成在Plugin1/build目录下
+修改生成的so动态库权限为440
+```
+sh build.sh
+```
+然后使用模型转换命令将caffe模型转化为om模型待使用
+```
+atc --input_shape="blob1:8,3,800,1408" --weight="model/count_person.caffe.caffemodel" --input_format=NCHW --output="model/count_person_8.caffe" --soc_version=Ascend310B1 --insert_op_conf=model/insert_op.cfg --framework=0 --model="model/count_person.caffe.prototxt"。
+```
-## 6 常见问题
+**步骤4** 运行
-请按照问题重要程度,详细列出可能要到的问题,和解决方法。
+```
+创建heat_map文件夹保存结果图片
+mkdir heat_map
-### 6.1 batch问题
+直接运行
+bash run.sh
+```
+生成的热度图保存在当前目录的heat_map文件夹下,并且每张热度图的命名以原图片名称为前缀以heatmap为后缀。
-**问题描述:**
-在使用batch机制时,模型需要的数据维度和输入到流中的数据维度不匹配。该问题造成的主要原因是因为老版的MindX_SDK不提供自动组batch功能。程序中使用多次senddata函数,每次send一张图片到流中,并假设tensorinfer插件能够自动组batch然后进行batch模型的推理。
-截图或报错信息:
-
-**解决方案:**
+此外,我们还在文件夹accuracy and performance code提供了精度与性能测试代码,将test.py拷贝到主目录中,然后执行`python3 test.py`即可运行精度与性能测试代码。
-新版Ascend-mindxsdk-mxmanufacture_2.0.4_linux-aarch64中的tensorinfer插件能够自动组batch然后进行batch模型的推理,可以解决该问题。
\ No newline at end of file
diff --git a/contrib/PersonCount/accuracy and performance code/tets.sh b/contrib/PersonCount/accuracy and performance code/tets.sh
deleted file mode 100644
index 277eff6b0a03fb91a0db81dbc05eb59f41fcb9bf..0000000000000000000000000000000000000000
--- a/contrib/PersonCount/accuracy and performance code/tets.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#! /bin/sh
-
-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 PYTHONPATH=${MX_SDK_HOME}/python:${PYTHONPATH}
-
-python3 test.py
-exit
\ No newline at end of file
diff --git a/contrib/PersonCount/main.py b/contrib/PersonCount/main.py
index 16676febf3a45f61f42bf50b250f73bddb1a070d..6da8312bba895ec8d8c977dec61f0355bdd79f50 100644
--- a/contrib/PersonCount/main.py
+++ b/contrib/PersonCount/main.py
@@ -102,7 +102,7 @@ if __name__ == '__main__':
# Construct the input of the stream
DATA_INPUT = MxDataInput()
#dataset path needs to fixde as specific path
- DATASET_PATH = '../tools/python_count/ShanghaiTech/part_B_images/'
+ DATASET_PATH = 'ShanghaiTech/part_B_images/'
NAME_LIST = os.listdir(DATASET_PATH)
PERSON_NUM_LIST = []
GT_LIST = []
@@ -154,8 +154,8 @@ if __name__ == '__main__':
#load ground truth information
#gt_num represents the person number of ground truth.
#the ground truth needs to fix as specific path.
- gt_path = "../tools/python_count/ShanghaiTech/part_B_test/GT_IMG_" + str(i) + ".mat"
- data1 = sio.loadmat(gt_path)
+ GT_PATH = "ShanghaiTech/part_B_test/GT_IMG_" + str(i) + ".mat"
+ data1 = sio.loadmat(GT_PATH)
gt_num = int(data1['image_info'][0][0][0][0][1][0][0])
GT_LIST.append(gt_num)
#end time
diff --git a/contrib/PersonCount/model transformation script/model_conversion.sh b/contrib/PersonCount/model transformation script/model_conversion.sh
deleted file mode 100644
index ee5124e4a7e2e6aa38c519d14ea4b1615c90c53c..0000000000000000000000000000000000000000
--- a/contrib/PersonCount/model transformation script/model_conversion.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-# /bin/sh
-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
-atc --input_shape="blob1:8,3,800,1408" --weight="model/count_person.caffe.caffemodel" --input_format=NCHW --output="model/count_person_8.caffe" --soc_version=Ascend310 --insert_op_conf="model/insert_op.cfg" --framework=0 --model="model/count_person.caffe.prototxt"
diff --git a/contrib/PersonCount/model transformation script/insert_op.cfg b/contrib/PersonCount/model/insert_op.cfg
similarity index 100%
rename from contrib/PersonCount/model transformation script/insert_op.cfg
rename to contrib/PersonCount/model/insert_op.cfg
diff --git a/contrib/PicoDet/README.md b/contrib/PicoDet/README.md
index 491d2f06ad8fd987838d34a12fcd020a66a0737b..4948494c344ebb04d9333c4dad6d78e17c9f3c7f 100644
--- a/contrib/PicoDet/README.md
+++ b/contrib/PicoDet/README.md
@@ -5,11 +5,11 @@
### 1.1 支持的产品
-支持昇腾310芯片
+支持昇腾310芯片、昇腾310B芯片
### 1.2 支持的版本
-支持的SDK版本为2.0.4。
+支持的SDK版本为5.0.RC1。
eg:版本号查询方法,在Atlas产品环境下,运行命令:
@@ -73,8 +73,8 @@ npu-smi info
| 软件名称 | 版本 |
| -------------- | ----- |
-| ascend-toolkit | 5.0.4 |
-| mxVision | 2.0.4 |
+| ascend-toolkit | 310使用6.3.RC1,310B使用6.2.RC1 |
+| mxVision | 5.0.RC1 |
| python | 3.9.2 |
在编译运行项目前,需要设置环境变量:
@@ -92,7 +92,8 @@ npu-smi info
### 3.2 模型转换
-将下载好的onnx模型放入models目录下,执行转换命令:
+将下载好的onnx模型放入models目录下,执行转换命令,注意若推理芯片为310B,需如下命令中的soc_version参数设置为Ascend310B1。
+:
```
atc --model=picodet_s_320_coco.onnx --output=picodet --output_type=FP32 --soc_version=Ascend310 --input_shape="image:1,3,320,320" --insert_op_conf=picodet.aippconfig --input_format=NCHW --framework=5
@@ -109,7 +110,7 @@ bash build.sh
下载文件[coco2014.names](../Collision/model/coco.names),将下载的标签文件放入models目录中并修改文件名为**coco.names**
-**步骤3** 执行推理
+**步骤3** 执行推理。注意推理图片文件夹和结果保存文件夹需要手动创建,同时,picodet.pipeline文件第4行的deviceId需根据实际使用的芯片Id进行修改。
```
python3.9 main.py ${推理图片文件夹} ${结果保存文件夹}
diff --git a/contrib/PixelLink/README.md b/contrib/PixelLink/README.md
index 8ff9cb7dd66e6b25ef1c2ce623051e683a801401..9d1a6c91234e5a1a3bfa8d5d41ff9398b4b57c03 100644
--- a/contrib/PixelLink/README.md
+++ b/contrib/PixelLink/README.md
@@ -11,11 +11,10 @@
### 1.2 支持的版本
-支持的SDK版本,列出版本号查询方式。
-
-支持的SDK版本为2.0.4。
-
-版本号查询方法,在Atlas产品环境下,运行命令:npu-smi info进行查看。
+| 软件名称 | 版本 |
+| -------- | ------ |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -65,9 +64,7 @@
| 软件名称 | 版本 |
| -------- | ------ |
| cmake | 3.5+ |
-| mxVision | 2.0.4 |
| python | 3.9.2 |
-| CANN | 5.0.4 |
| Polygon3 | 3.0.9.1|
@@ -81,20 +78,13 @@
在编译运行项目前,需要设置环境变量:
步骤1:安装mxVision SDK。
-步骤2:配置mxVision SDK环境变量、lib库环境变量以及python环境变量。
+步骤2:配置mxVision SDK环境变量
+将${SDK_INSTALL_PATH}替换为自己的SDK安装路径;
+```shell
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
-export MX_SDK_HOME=${安装路径}/mxVision
-export LD_LIBRARY_PATH="${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${LD_LIBRARY_PATH}"
-export PYTHONPATH="${MX_SDK_HOME}/python:${PYTHONPATH}"
-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"
-```
-
-- 环境变量介绍
-- MX_SDK_HOME为SDK安装路径
-- LD_LIBRARY_PATH为lib库路径
-- PYTHONPATH为python环境路径
## 3 模型转换
@@ -107,10 +97,10 @@ pb模型提供在链接:https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/min
首先需要配置ATC环境,下载pb模型,放到相应的路径后,修改模型转换的cfg配置文件,配置文件已经上传至项目目录model下。使用命令
```
-atc --model=pixellink_tf.pb --framework=3 --output=pixellink --output_type=FP32 --soc_version=Ascend310 --input_shape="Placeholder:1,768,1280,3"
+atc --model=pixellink_tf.pb --framework=3 --output=pixellink --output_type=FP32 --soc_version=Ascend310B1 --input_shape="Placeholder:1,768,1280,3"
--insert_op_conf=convert.cfg --log=info
```
-转化项目模型。
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
注意:转化时,可根据需要修改输出的模型名称。注意模型以及转化所需文件的路径,防止atc命令找不到相关文件。
diff --git a/contrib/PortraitSegmentation/README.md b/contrib/PortraitSegmentation/README.md
index 02b2570abc81d3e17bb552d7b10e1db8f8fad396..e31a0e880133fb813a2ce5c2fd172581fcdc9e94 100644
--- a/contrib/PortraitSegmentation/README.md
+++ b/contrib/PortraitSegmentation/README.md
@@ -18,13 +18,15 @@
```
## 3 依赖
+
+推荐系统为ubuntu 18.04。
+
| 软件名称 | 版本 |
-| :--------: | :------: |
-|ubantu 18.04|18.04.1 LTS |
-|MindX SDK|2.0.4|
-|Python| 3.9.2|
-|numpy | 1.18.2 |
-|opencv_python|3.4.0|
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+
请注意MindX SDK使用python版本为3.9.2,如出现无法找到python对应lib库请在root下安装python3.9开发库
`apt-get install libpython3.9`
@@ -38,22 +40,12 @@
在pb文件所在目录下执行以下命令
```
-#设置环境变量(请确认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 #toolkit默认安装路径,根据实际安装路径修改
#执行,转换Portrait.pb模型
#Execute, transform Portrait.pb model.
-atc --model=portrait.pb --input_shape="Inputs/x_input:1,224,224,3" --framework=3 --output=portrait --insert_op_conf=insert_op.cfg --soc_version=Ascend310
+atc --model=portrait.pb --input_shape="Inputs/x_input:1,224,224,3" --framework=3 --output=portrait --insert_op_conf=insert_op.cfg --soc_version=Ascend310B1
```
执行完模型转换脚本后,若提示如下信息说明模型转换成功,会在output参数指定的路径下生成portrait.om模型文件。
```
@@ -71,27 +63,7 @@ https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/%E5
```
2. 配置
```
-#执行如下命令,打开.bashrc文件
-cd $home
-vi .bashrc
-#在.bashrc文件中添加以下环境变量:
-
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/
-
-export PYTHONPATH=${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
-
-#保存退出.bashrc
-#执行如下命令使环境变量生效
-source ~/.bashrc
-
-#查看环境变量
-env
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
3. 配置pipeline
根据所需场景,配置pipeline文件,调整路径参数等。
diff --git a/contrib/PoseEstNet/README.md b/contrib/PoseEstNet/README.md
index 6a9db44e30ca1f2668c73440d9a6ba21aa0f8323..a336a5d7738545ffc3a0d735f73a1124b7c89e93 100644
--- a/contrib/PoseEstNet/README.md
+++ b/contrib/PoseEstNet/README.md
@@ -49,8 +49,8 @@ PoseEstNet
| 软件名称 | 版本 |
| :--------: | :------: |
|cmake | 3.5+ |
-|mxVision | 2.0.4 |
-|CANN | 5.0.4 |
+|mxVision | 5.0.RC |
+|CANN | 310使用6.3.RC1,310B使用6.2.RC1 |
|Python | 3.9.12 |
注:MindX SDK使用python版本为3.9.12,如出现无法找到python对应lib库请在root下安装python3.9开发库
@@ -86,7 +86,7 @@ apt-get install libpython3.9
**步骤3** .om模型转换
以下操作均在“项目所在目录/models”路径下进行:
-***1*** 使用ATC将.pb文件转成为.om文件
+***1*** 使用ATC将.pb文件转成为.om文件,注意若推理芯片为310B,需将模型转换atc命令中的soc_version参数设置为Ascend310B1。
```
atc --model=yolov3_tensorflow_1.5.pb --framework=3 --output=yolov3 --output_type=FP32 --soc_version=Ascend310 --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" --log=info --insert_op_conf=aipp_nv12.cfg
```
@@ -129,7 +129,7 @@ python3 tools/pth2onnx.py --cfg experiments/veri/hrnet/w32_256x256_adam_lr1e-3.y
**步骤2** .onnx模型转.om模型
-***1*** 进入.onnx文件所在目录,使用ATC将.onnx文件转成为.om文件(aipp_hrnet_256_256.aippconfig在本项目models目录下,需要自行复制到转模型环境的目录,注意文件路径)
+***1*** 进入.onnx文件所在目录,使用ATC将.onnx文件转成为.om文件(aipp_hrnet_256_256.aippconfig在本项目models目录下,需要自行复制到转模型环境的目录,注意文件路径),注意若推理芯片为310B,需将模型转换atc命令中的soc_version参数设置为Ascend310B1。
```
atc --framework=5 --model=PoseEstNet.onnx --output=PoseEstNet --input_format=NCHW --input_shape="image:1,3,256,256" --insert_op_conf=aipp_hrnet_256_256.aippconfig --log=debug --soc_version=Ascend310
```
@@ -185,10 +185,8 @@ ATC run success, welcome to the next use.
```
步骤详见5: 数据集
```
-### 7.4 安装插件编译所需要的NumCpp库
+### 7.4 安装插件编译所需要的NumCpp库,[Github官网链接](https://github.com/dpilger26/NumCpp),注意下载Version_2.8.0版本。下载后,进入plugins目录,将NumCpp解压至该目录。
```
-cd plugins
-git clone https://github.com/dpilger26/NumCpp
mkdir include
cp -r NumCpp/include/NumCpp ./include/
```
@@ -224,7 +222,7 @@ PoseEstNet.pipeline:
"factory": "mxpi_objectpostprocessor",
"next": "mxpi_imagecrop0"
},
- # 配置mxpi_tensorinfer插件的PoseEstNet.om模型加载路径(lines 68-75 以及 92-99)
+ # 配置mxpi_tensorinfer插件的PoseEstNet.om模型加载路径(lines 68-75)
lines 68-75:
"mxpi_tensorinfer2":{
"props": {
diff --git a/contrib/RTMHumanKeypointsDetection/README.md b/contrib/RTMHumanKeypointsDetection/README.md
index 1fa146d702b650da7a09105e9d138506271f39bf..f8325e1cdecc94dfb5c4f8736b5eb0f3cdd9f69c 100644
--- a/contrib/RTMHumanKeypointsDetection/README.md
+++ b/contrib/RTMHumanKeypointsDetection/README.md
@@ -9,8 +9,7 @@
昇腾310(推理)
### 1.2 支持的版本
-
-本样例配套的CANN版本为[5.0.5.alpha001](https://www.hiascend.com/software/cann)。支持的SDK版本为[3.0.RC2](https://www.hiascend.com/software/Mindx-sdk)。
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
@@ -120,6 +119,8 @@ ascend-toolkit-path: CANN 安装路径
## 3 模型转换
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
本项目主要用到了用于人体关键点检测的OpenPose模型,OpenPose模型相关文件可以[点击此处](https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch)下载。本项目在MindX SDK中需要使用om模型,我们需要对模型进行转换。首先需要将pytorch模型转换为onnx模型,然后使用ATC模型转换工具将onnx模型转换为om模型。
本项目提供了输入尺寸为(512,512)的onnx模型,[点击此处下载](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/RTMHumanKeypointsDetection/human-pose-estimation512.onnx),如不需要修改模型输入尺寸,可直接执行步骤二。
diff --git a/contrib/ReID/README.md b/contrib/ReID/README.md
index a8047ad8d48fb6fdd21d64cc2d958bcdcb56f2bb..55a23d472da9371ec0a44eee013d279c55d905a8 100644
--- a/contrib/ReID/README.md
+++ b/contrib/ReID/README.md
@@ -33,15 +33,23 @@ ReID
| 软件名称 | 版本 |
| :--------: | :------: |
|ubantu 18.04|18.04.1 LTS |
-|CANN|5.0.4|
-|MindX SDK|2.0.4|
+|CANN|310使用6.3.RC1
310B使用6.2.RC1|
+|MindX SDK|5.0RC1|
|Python| 3.9.2|
|numpy | 1.21.0 |
|opencv_python|4.5.2|
+
请注意MindX SDK使用python版本为3.9.2,如出现无法找到python对应lib库请在root下安装python3.9开发库
```
apt-get install libpython3.9
```
+### 设置环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
+
## 4 模型转换
行人重识别先采用了yolov3模型将图片中的行人检测出来,然后利用ReID模型获取行人的特征向量。由于yolov3模型和ReID模型分别是基于Pytorch和Tensorflow的深度模型,我们需要借助ATC工具分别将其转换成对应的.om模型。
@@ -55,21 +63,12 @@ apt-get install libpython3.9
**步骤3** .om模型转换
以下操作均在“项目所在目录/models”路径下进行:
-- 设置环境变量(请确认install_path路径是否正确)
-```
-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:$PYTHONPATH
-export LD_LIBRARY_PATH=${install_path}/atc/lib64:${install_path}/acllib/lib64:$LD_LIBRARY_PATH
-export ASCEND_OPP_PATH=${install_path}/opp
-export ASCEND_AICPU_PATH=/usr/local/Ascend/ascend-toolkit/latest/
-```
- 使用ATC将.pb文件转成为.om文件
```
-atc --model=yolov3_tensorflow_1.5.pb --framework=3 --output=yolov3 --output_type=FP32 --soc_version=Ascend310 --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" --log=info --insert_op_conf=aipp_nv12.cfg
+atc --model=yolov3_tensorflow_1.5.pb --framework=3 --output=yolov3 --output_type=FP32 --soc_version=Ascend310B1 --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" --log=info --insert_op_conf=aipp_nv12.cfg
```
-- 执行完模型转换脚本后,若提示如下信息说明模型转换成功,可以在该路径下找到名为yolov3.om模型文件。
+- 执行完模型转换命令后,若提示如下信息说明模型转换成功,可以在该路径下找到名为yolov3.om模型文件。
(可以通过修改output参数来重命名这个.om文件)
```
ATC run success, welcome to the next use.
@@ -112,7 +111,7 @@ git clone https://github.com/michuanhaohao/reid-strong-baseline
[Google Drive](https://drive.google.com/drive/folders/1hn0sXLZ5yJcxtmuY-ItQfYD7hBtHwt7A)
[Huawei Cloud](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/ReID/ReID%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6.rar)
-***3*** 获取ReID_pth2onnx.py:[获取链接](https://gitee.com/ascend/modelzoo/blob/master/contrib/ACL_PyTorch/Research/cv/classfication/ReID_for_Pytorch/ReID_pth2onnx.py)
+***3*** 获取ReID_pth2onnx.py:[获取链接](https://gitee.com/ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/contrib/cv/classfication/ReID_for_Pytorch/ReID_pth2onnx.py)
将该脚本放在“项目所在目录/models”路径下,执行下列命令,生成.onnx模型文件
```
python3 ReID_pth2onnx.py --config_file='reid-strong-baseline/configs/softmax_triplet_with_center.yml' MODEL.PRETRAIN_CHOICE "('self')" TEST.WEIGHT "('market_resnet50_model_120_rank1_945.pth')"
@@ -125,12 +124,9 @@ python3 ReID_pth2onnx.py --config_file='reid-strong-baseline/configs/softmax_tri
**步骤2** .onnx模型转.om模型
-***1*** 设置环境变量
-> 请重复一次4.1中步骤3的“设置环境变量(请确认install_path路径是否正确)”操作
-
-***2*** 使用ATC将.onnx文件转成为.om文件
+使用ATC将.onnx文件转成为.om文件
```
-atc --framework=5 --model=ReID.onnx --output=ReID --input_format=NCHW --input_shape="image:1,3,256,128" --insert_op_conf=ReID_onnx2om.cfg --log=debug --soc_version=Ascend310
+atc --framework=5 --model=ReID.onnx --output=ReID --input_format=NCHW --input_shape="image:1,3,256,128" --insert_op_conf=ReID_onnx2om.cfg --log=debug --soc_version=Ascend310B1
```
- 执行完模型转换脚本后,若提示如下信息说明模型转换成功,可以在“项目所在目录/models”路径下找到名为ReID.om模型文件。(同样的,可以通过修改output参数来重命名这个.om文件)
```
@@ -194,31 +190,7 @@ python3 makeYourOwnDataset.py --imageFilePath='data/ownDataset' --outputFilePath
```
步骤详见5: 数据集
```
-6.3 配置环境变量
-```
-#执行如下命令,打开.bashrc文件
-cd $home
-vi .bashrc
-#在.bashrc文件中添加以下环境变量:
-
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/
-
-export PYTHONPATH=${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
-
-#保存退出.bashrc
-#执行如下命令使环境变量生效
-source ~/.bashrc
-
-#查看环境变量
-env
-```
-6.4 配置pipeline
+6.3 配置pipeline
根据所需场景,配置pipeline文件,调整路径参数等。
```
# 配置mxpi_tensorinfer插件的yolov3.om模型加载路径(lines 26-33)
@@ -264,7 +236,7 @@ env
},
```
-6.5 执行
+6.4 执行
```
python3 main.py --queryFilePath='data/querySet' --galleryFilePath='data/gallerySet' --matchThreshold=0.3
```
diff --git a/contrib/ReIDv2/README.md b/contrib/ReIDv2/README.md
index e0adc681851e359bfab6e210fd7312bb25176775..390181e54fbb2c5c36d9857b01fe19bebad8cf4a 100644
--- a/contrib/ReIDv2/README.md
+++ b/contrib/ReIDv2/README.md
@@ -69,10 +69,15 @@ ReID
|Python| 3.9.12 |
|numpy | 1.23.4 |
|opencv_python| 4.6.0.66 |
+
+(如果需要在310B上运行,mxVision版本需要5.0.RC1,CANN版本需要6.2.RC1。)
```
apt-get install libpython3.9
```
## 4 模型转换
+
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
行人重识别先采用了yolov3模型将图片中的行人检测出来,然后利用ReID模型获取行人的特征向量。由于yolov3模型和ReID模型分别是基于Pytorch和Tensorflow的深度模型,我们需要借助ATC工具分别将其转换成对应的.om模型。
4.1 yolov3的模型转换:
@@ -135,7 +140,7 @@ python3 ReID_pth2onnx.py --config_file='reid-strong-baseline/configs/softmax_tri
***1*** 设置环境变量
> 请重复一次4.1中步骤3的“设置环境变量(请确认install_path路径是否正确)”操作
-***2*** 使用ATC将.onnx文件转成为.om文件
+***2*** 使用ATC将.onnx文件转成为.om文件(若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1)
```
atc --framework=5 --model=ReID.onnx --output=ReID --input_format=NCHW --input_shape="image:1,3,256,128" --insert_op_conf=ReID_onnx2om.cfg --log=debug --soc_version=Ascend310
```
@@ -170,13 +175,6 @@ ATC run success, welcome to the next use.
,也可以通过[Huawei Cloud](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/ReID/ReID%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6.rar)
获取,然后将获取的图片放在“项目所在目录/data/gallerySet”中 (gallery下的图片必须是1920*1080大小的jpg)
-```
-python3 makeYourOwnDataset.py --imageFilePath='data/ownDataset' --outputFilePath='data/cropOwnDataset'
-```
-**步骤3** 根据“项目所在目录/data/cropOwnDataset”中的结果,选择自己想要查询的行人,按照market1501的命名方式命名(请务必按照这种命名方式命名,否则行人的标识会出现问题)
-> 将同一个行人的不同照片重命名成“xxxx_xx”,其中前4位是行人ID,后2位是该照片ID,例:第1个行人的第2张照片:0001_02
-> 将制作好的行人底库图片放在“项目所在目录/data/querySet”中
-
5.2 运行
```
diff --git a/contrib/ReIDv2/mainv2.py b/contrib/ReIDv2/mainv2.py
index 9ebca2c155c2c02f543ebabd6c6218e2857a2b59..e218200da9825408c1668b030e06999a8b5c2af0 100644
--- a/contrib/ReIDv2/mainv2.py
+++ b/contrib/ReIDv2/mainv2.py
@@ -29,7 +29,7 @@ import numpy as np
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor
from PIL import Image
-from mindx.sdk.base import Tensor, Model, Size, Rect, log, ImageProcessor, post, BTensor, Point
+from mindx.sdk.base import Tensor, Model, Size, Rect, log, ImageProcessor, post, Point
IN_PLUGIN_ID = 0
@@ -168,7 +168,7 @@ def get_pipeline_results(filepath):
for x in range(len1):
yolov3_outputs[x].to_host()
n = np.array(yolov3_outputs[x])
- tensor = BTensor(n)
+ tensor = Tensor(n)
inputs.append(tensor)
yolov3_post_results = yolov3_post.process(inputs, [resizeinfo])
cropresizevec = []
diff --git a/contrib/RemoteSensingSegmentation/README.md b/contrib/RemoteSensingSegmentation/README.md
index 263f9b27243622e96cc1d360086eac831a83ac02..5c5c2e50df38d531b7b15d0e9802cb48a982178a 100644
--- a/contrib/RemoteSensingSegmentation/README.md
+++ b/contrib/RemoteSensingSegmentation/README.md
@@ -6,10 +6,14 @@
样例输出:输入图片的语义分割图
### 1.1 支持的产品
-昇腾310(推理)
+昇腾310B1(推理)
### 1.2 支持的版本
-本样例配套的CANN版本为 [5.0.4](https://www.hiascend.com/software/cann/commercial) ,MindX SDK版本为 [2.0.4](https://www.hiascend.com/software/Mindx-sdk) 。
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 目录结构
```
@@ -59,7 +63,19 @@ pip install -r requiremenst.txt #安装依赖,可能会因为网络问题而报
**步骤2.5** 步骤2.4执行完成后会在克隆项目`models`目录下生成`DANet.onnx`和`Deeplabv3.onnx`,复制到本项目`models`下执行步骤3
-**步骤3** 在本项目`util`目录下运行模型转换脚本 `./model_conversion.sh`(如不是可执行脚本,先将其转换`chmod +x model_conversion.sh`), 执行完模型转换脚本后,会在`models`目录下生成相应的DANet和Deeplabv3的`om`模型文件
+**步骤3** 在本项目`models`目录下运行模型转换命令
+
+首先需要引入环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+
+atc --framework=5 --model=DANet.onnx --output=DANet --soc_version=Ascend310B1 --insert_op_conf=../config/configure.cfg --log=error
+
+atc --framework=5 --model=Deeplabv3.onnx --output=Deeplabv3 --soc_version=Ascend310B1 --insert_op_conf=../config/configure.cfg --log=error
+```
+
+执行完模型转换命令后,会在`models`目录下生成相应的DANet和Deeplabv3的`om`模型文件
模型转换使用了ATC工具,如需更多信息请参考:
@@ -90,23 +106,8 @@ pip install -r requiremenst.txt #安装依赖,可能会因为网络问题而报
## 3 模型推理
### 3.1 配置MindXSDK和Python环境变量
-```bash
-# 执行如下命令,打开.bashrc文件
-cd $HOME
-vi .bashrc
-# 在.bashrc文件中添加以下环境变量
-MX_SDK_HOME= SDK安装路径
-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/
-GST_PLUGIN_SCANNER=${MX_SDK_HOME}/opensource/libexec/gstreamer-1.0/gst-plugin-scanner
-GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME}/lib/plugins
-PYTHONPATH=${MX_SDK_HOME}/python
-
-# 保存退出.bashrc文件
-# 执行如下命令使环境变量生效
-source ~/.bashrc
-
-# 查看环境变量
-env
+```
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
### 3.2 运行
> 运行前请下载 [测试集图片](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/RemoteSensingSegmentation/data.zip) 放入目录`test_set`下, 随后进入工程目录,键入执行指令
diff --git a/contrib/RemoteSensingSegmentation/util/model_conversion.sh b/contrib/RemoteSensingSegmentation/util/model_conversion.sh
deleted file mode 100644
index 0e596b1ea4db08313dee41733c93bdea6543047b..0000000000000000000000000000000000000000
--- a/contrib/RemoteSensingSegmentation/util/model_conversion.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# Copyright(C) 2021. Huawei Technologies Co.,Ltd. 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.
-
-set -e
-
-# 该脚本用来将onnx模型文件转换成.om模型文件
-# This is used to convert onnx 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
-
-
-# 执行,转换DANet和Deeplabv3+模型
-# Execute, transform DANet and Deeplabv3+ model
-
-atc --framework=5 --model=../models/DANet.onnx --output=../models/DANet --soc_version=Ascend310 --insert_op_conf=../config/configure.cfg --log=error
-atc --framework=5 --model=../models/Deeplabv3.onnx --output=../models/Deeplabv3 --soc_version=Ascend310 --insert_op_conf=../config/configure.cfg --log=error
-# 退出
-# exit
-exit 0
\ No newline at end of file
diff --git a/contrib/Retinaface/README.md b/contrib/Retinaface/README.md
index 28a7c5d0c886bcad9d7b30c089f5d9f4175dd56f..7211ef85624516dfb6d6336ff7ad8d2b14670cc1 100644
--- a/contrib/Retinaface/README.md
+++ b/contrib/Retinaface/README.md
@@ -6,11 +6,11 @@ Retinaface基于MindX_SDK开发,在昇腾芯片上进行目标检测,并实
### 1.1 支持的产品
-本产品以昇腾310(推理)卡为硬件平台。
+本项目以昇腾Atlas310、Atlas310B卡为主要硬件平台。
### 1.2 支持的版本
-该项目支持的SDK版本为2.0.4,CANN版本为5.0.4。
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
### 1.3 软件方案介绍
@@ -77,9 +77,9 @@ Retinaface基于MindX_SDK开发,在昇腾芯片上进行目标检测,并实
| 软件名称 | 版本 | 说明 | 获取方式 |
| ------------------- | ----- | ----------------------------- | :-------------------------------------------------------- |
-| MindX SDK | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
+| MindX SDK | 5.0.RC1 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
| ubuntu | 18.04 | 操作系统 | 请上ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
+| Ascend-CANN-toolkit | 6.0.RC1 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
@@ -160,12 +160,14 @@ git clone https://github.com/biubug6/Pytorch_Retinaface.git
## 4 模型转化
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
下载后解包,得到`Retinaface.onnx`,使用模型转换工具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)
模型转换步骤如下:
1、`cd`到`model`文件夹,运行
-
+若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
````
bash run.sh
````
diff --git a/contrib/Retinaface/model/run.sh b/contrib/Retinaface/model/run.sh
index 16fddd79191cc24e47de3decb941a3d542997190..bf257c73c84ea03f5d735333300d2f37355e4e97 100644
--- a/contrib/Retinaface/model/run.sh
+++ b/contrib/Retinaface/model/run.sh
@@ -5,4 +5,5 @@
# Execute, transform Retinaface model.
atc --framework=5 --model=retinaface.onnx --output=newRetinaface --input_format=NCHW --input_shape="image:1,3,1000,1000" --log=debug --soc_version=Ascend310 --insert_op_conf=../config/aipp.cfg
-# 说明:out_nodes制定了输出节点的顺序,需要与模型后处理适配。
+# 说明1:out_nodes制定了输出节点的顺序,需要与模型后处理适配。
+# 说明2:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
\ No newline at end of file
diff --git a/contrib/STGCN/README.md b/contrib/STGCN/README.md
index f723a090ca86a176a4695ad8f32b9df84ad913f1..f393a79fef6dc96b813db342cd89270701374e54 100644
--- a/contrib/STGCN/README.md
+++ b/contrib/STGCN/README.md
@@ -13,7 +13,7 @@ SZ-Taxi数据集:https://github.com/lehaifeng/T-GCN/tree/master/data
SZ-Taxi数据集包含深圳市的出租车动向,包括道路邻接矩阵和道路交通速度信息。
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310卡、昇腾310B卡为主要的硬件平台。
### 1.2 软件方案介绍
@@ -55,9 +55,9 @@ eg:推荐系统为ubuntu 18.04,环境依赖软件和版本如下表:
| 软件名称 | 版本 |
| -------- | ------ |
-| mxVision | 2.0.4 |
+| mxVision | 5.0.RC1 |
| Python | 3.9 |
-| CANN | 5.1.RC1 |
+| CANN | 310使用6.3.RC1,310B使用6.2.RC1 |
- 环境变量介绍
在编译运行项目前,需要设置环境变量:
@@ -136,7 +136,7 @@ https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/con
```
2、onnx转化为om
-根据实际路径修改convert_om.sh
+根据实际路径修改convert_om.sh,注意若推理芯片为310B,需将convert_om.sh脚本中模型转换atc命令中的soc_version参数设置为Ascend310B1。
```
bash convert_om.sh [model_path] stgcn10
参数说明:
diff --git a/contrib/SentimentAnalysis/README.md b/contrib/SentimentAnalysis/README.md
index 4f35804caf5350d410c562359cba1d71c8f48732..b47c1cd0bc15f791a43aaa2c34e89900738534ea 100644
--- a/contrib/SentimentAnalysis/README.md
+++ b/contrib/SentimentAnalysis/README.md
@@ -7,12 +7,18 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
-支持的SDK版本为2.0.4。
-支持的CANN版本为5.0.4。
+推荐系统为ubuntu 18.04。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+
### 1.3 软件方案介绍
@@ -94,39 +100,13 @@

## 2 环境依赖
-
-推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
-
-| 软件名称 | 版本 |
-| -------- | ------ |
-| cmake | 3.10.2 |
-| mxVision | 2.0.4 |
-| python | 3.9.2 |
-
确保环境中正确安装mxVision SDK。
在编译运行项目前,需要设置环境变量:
```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-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 PYTHONPATH=${MX_SDK_HOME}/python:${PYTHONPATH}
-
-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 LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH
-export ASCEND_OPP_PATH=${install_path}/opp
-```
-
-- 环境变量介绍
-
-```
-MX_SDK_HOME:MindX SDK mxVision的根安装路径,用于包含MindX SDK提供的所有库和头文件。
-LD_LIBRARY_PATH:提供了MindX SDK已开发的插件和相关的库信息。
-install_path:ascend-toolkit的安装路径。
-PATH:添加python的执行路径和atc转换工具的执行路径。
-LD_LIBRARY_PATH:添加ascend-toolkit和MindX SDK提供的库目录路径。
-ASCEND_OPP_PATH:atc转换工具需要的目录。
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
## 3 模型获取及转换
@@ -144,7 +124,7 @@ ASCEND_OPP_PATH:atc转换工具需要的目录。
cd $HOME/models/sentiment_analysis
```
-atc --model=./sentiment_analysis.pb --framework=3 --input_format=ND --output=./sentiment_analysis --input_shape="Input-Token:1,500;Input-Segment:1,500" --out_nodes="dense_1/Softmax:0" --soc_version=Ascend310 --op_select_implmode="high_precision"
+atc --model=./sentiment_analysis.pb --framework=3 --input_format=ND --output=./sentiment_analysis --input_shape="Input-Token:1,500;Input-Segment:1,500" --out_nodes="dense_1/Softmax:0" --soc_version=Ascend310B1 --op_select_implmode="high_precision"
```
执行成功后终端输出为:
@@ -166,14 +146,7 @@ cp ./sentiment_analysis.om $HOME/mxbase/model/
**步骤3** 按照第 3 小节 模型获取及转换 中的步骤获得 om 模型文件。
-**步骤4** 将本项目代码的文件路径中出现的 ${SDK目录} 替换成自己SDK的存放目录,下面是需要替换的代码。
-
-```
-mxBase目录下的CMakeList.txt中的第13行代码 set(MX_SDK_HOME ${SDK目录})
-sdk/pipeline目录下sentiment_analysis.pipeline文件中的第26行 "postProcessLibPath": "${SDK目录}/lib/modelpostprocessors/libresnet50postprocess.so"
-```
-
-**步骤5** pipeline项目运行在sdk目录下执行命令:
+**步骤4** pipeline项目运行在sdk目录下执行命令:
```
python3 main.py
@@ -181,18 +154,14 @@ python3 main.py
命令执行成功后在out目录下生成分类结果文件 prediction_label.txt,查看结果文件验证分类结果。
-**步骤6** mxBase项目在mxBase目录中,执行以下代码进行编译。
+**步骤5** mxBase项目在mxBase目录中,执行以下命令进行编译运行。
```
mkdir build
cd build
cmake ..
make
-```
-
-编译完成后,将可执行文件 mxBase_sentiment_analysis 移动到mxBase目录下,执行下面代码运行
-```
./mxBase_sentiment_analysis ./data/sample.txt
```
@@ -202,7 +171,7 @@ make
**步骤1** 按照第 4 小节 编译与运行 的步骤将样例运行成功。
-**步骤2** 从网址https://mindx.sdk.obs.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/BertTextClassification/data.zip下载后解压,将解压后的test.csv文件分别放在sdk/data目录和mxBase/data目录。
+**步骤2** 从网址 https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/SentimentAnalysis/data.zip 下载后解压,将解压后的test.csv文件分别放在sdk/data目录和mxBase/data目录。
**步骤3** pipeline项目中的精度测试文件为sdk/test目录下的test.py,将test.py移到sdk目录下,执行下面代码,得到pipeline的精度测试结果。
@@ -217,6 +186,9 @@ Test::test_accuracy();
```
## 5 其他问题
+
1.本项目的设计限制输入样例为文本文件,其他文件如图片、音频不能进行推理。
+
2.本项目的模型对中性数据进行分类时预测结果较差,可能有以下几个方面,一是对中性数据的分类本身有一定的难度;二是在训练模型时提供数据集中的中性数据较少,模型对于中性数据的分类效果并不好;三是在模型转换的过程中可能会存在精度的缺失。
+3.若使用者是采用的先将代码下载至本地,再上传至服务器的步骤运行代码,词表文件data/vocab.txt可能会编码异常,造成mxbase代码读取词表有误,精度下降的问题;建议使用者直接下载项目文件至服务器运行,避免该问题。
diff --git a/contrib/SentimentAnalysis/mxBase/CMakeLists.txt b/contrib/SentimentAnalysis/mxBase/CMakeLists.txt
index 66573e3fe662de1af5869224a1abb1237e2bdff9..7c215da4c2f7975cd6a7720c4ce087ed16d5081a 100644
--- a/contrib/SentimentAnalysis/mxBase/CMakeLists.txt
+++ b/contrib/SentimentAnalysis/mxBase/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.10)
project(mxBase_sentiment_analysis)
set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/")
include_directories(./SentimentAnalysis)
file(GLOB_RECURSE SentimentAnalysis ${PROJECT_SOURCE_DIR}/SentimentAnalysis/*cpp)
include_directories(./test)
@@ -10,7 +11,7 @@ set(TARGET mxBase_text_classification)
add_compile_options(-std=c++11 -fPIE -fstack-protector-all -fPIC -Wl,-z,relro,-z,now,-z,noexecstack -s -pie -Wall)
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0 -Dgoogle=mindxsdk_private)
-set(MX_SDK_HOME ${SDK目录})
+set(MX_SDK_HOME "$ENV{MX_SDK_HOME}")
include_directories(
${MX_SDK_HOME}/include
${MX_SDK_HOME}/opensource/include
diff --git a/contrib/SentimentAnalysis/mxBase/SentimentAnalysis/SentimentAnalysis.h b/contrib/SentimentAnalysis/mxBase/SentimentAnalysis/SentimentAnalysis.h
index a9a1895fe210110f9a9ff00af63d7c40a5bb49f4..f8636d9fba5b3234e0f9709c76b5c6e31f1981b6 100644
--- a/contrib/SentimentAnalysis/mxBase/SentimentAnalysis/SentimentAnalysis.h
+++ b/contrib/SentimentAnalysis/mxBase/SentimentAnalysis/SentimentAnalysis.h
@@ -1,6 +1,7 @@
#ifndef MXBASE_SENTIMENT_ANALYSIS_H
#define MXBASE_SENTIMENT_ANALYSIS_H
+#include
#include "MxBase/ModelInfer/ModelInferenceProcessor.h"
#include "MxBase/Tensor/TensorContext/TensorContext.h"
diff --git a/contrib/SentimentAnalysis/sdk/pipeline/sentiment_analysis.pipeline b/contrib/SentimentAnalysis/sdk/pipeline/sentiment_analysis.pipeline
index 8ee8aa55f514b2f2382fb593bb804b84f8675142..bdb5d944ca7f519f62a4d983f0e39fec385484f8 100644
--- a/contrib/SentimentAnalysis/sdk/pipeline/sentiment_analysis.pipeline
+++ b/contrib/SentimentAnalysis/sdk/pipeline/sentiment_analysis.pipeline
@@ -23,7 +23,7 @@
"dataSource": "mxpi_tensorinfer0",
"postProcessConfigPath": "config/sentiment_analysis_aipp_tf.cfg",
"labelPath": "config/sentiment_analysis_label.names",
- "postProcessLibPath": "${SDK目录}lib/modelpostprocessors/libresnet50postprocess.so"
+ "postProcessLibPath": "libresnet50postprocess.so"
},
"factory": "mxpi_classpostprocessor",
"next": "appsink0"
diff --git a/contrib/StyleTransfer/README.md b/contrib/StyleTransfer/README.md
index 8e6cb414c51dda3096737215be3854c8d8cbc070..3918ec2313c5749c63ca6e32dacbc0ab789237f4 100644
--- a/contrib/StyleTransfer/README.md
+++ b/contrib/StyleTransfer/README.md
@@ -26,15 +26,12 @@
### 支持的产品以及环境依赖
-支持 Atlas 200dk开发者套件、Ascend 310推理芯片。
-
-```
-| 软件名称 | 版本 |
-| :-----------: | :---------: |
-| ubuntu | 18.04.5 LTS |
-| MindX SDK | 2.0.4 |
+推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
+| 软件名称 | 版本 |
+| -------- | ------ |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
| Python | 3.9.2 |
-| CANN | 5.0.4 |
| numpy | 1.22.3 |
| opencv-python | 4.5.5 |
```
@@ -90,12 +87,8 @@ StyleTransfer
### python第三方库
```
-numpy == 1.16.6
-
Pillow == 8.2.0
-opencv-python == 4.5.2
-
sympy == 1.4
decorator == 4.4.2
@@ -113,21 +106,18 @@ PyYAML == 5.4.1
**步骤1** 将pth模型转换为onnx模型
-首先在ModelZoo下载CycleGAN模型。
+下载CycleGAN模型相关文件。
-下载地址:https://www.hiascend.com/zh/software/modelzoo/detail/1/3ba3b04fd4964d9b81974381b73f491d
+下载地址:https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/StyleTransfer/ATC%20CycleGAN%20%28FP16%29%20from%20Pytorch%20-%20Ascend310.zip
模型获取解压后,将CycleGAN文件夹下的所有文件及文件夹全部都放在StyleTransfer/models文件夹中
**步骤2** 设置环境变量
-运行MindXSDK与ascend-toolkit下的set_env.sh设置环境变量
-MindXSDK:${MX_SDK_HOME}/set_env.sh
-
-ascend-toolkit:/usr/local/Ascend/ascend-toolkit/set_env.sh
-```
-bash set_env.sh
-
+将${SDK_INSTALL_PATH}替换为自己的SDK安装路径;
+```shell
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
**步骤3** 将原始pth模型转化为onnx模型
@@ -175,9 +165,9 @@ aipp_op{
仍然在/models目录中操作
```
-atc --framework=5 --model=./onnxmodel/model_Ga.onnx --output=sat2map --input_format=NCHW --input_shape="img_sat_maps:1,3,256,256" --out_nodes="maps" --log=debug --soc_version=Ascend310 --insert_op_conf=aipp_CycleGAN_pth.config
+atc --framework=5 --model=./onnxmodel/model_Ga.onnx --output=sat2map --input_format=NCHW --input_shape="img_sat_maps:1,3,256,256" --out_nodes="maps" --log=debug --soc_version=Ascend310B1 --insert_op_conf=aipp_CycleGAN_pth.config
```
-
+此命令适用于310B1硬件,使用310时指定soc_version=Ascend310
转换完成后存放在/models中。
**步骤6** 下载测试集
diff --git a/contrib/SuperResolution/README.md b/contrib/SuperResolution/README.md
index fcf6e35d0cab5a66b274d2ccfab7b2d9c6827a66..c7cfbfc698beee0c5826a9b19f89ad0a6bf821b1 100644
--- a/contrib/SuperResolution/README.md
+++ b/contrib/SuperResolution/README.md
@@ -2,20 +2,26 @@
## 介绍
-基于MindX SDK 2.0.1 mxVision开发图像超分辨率程序。本程序采用python开发,通过预处理操作对输入的图片数据解码为YUV格式图片,并将解码后的图片缩放到模型推理要求的尺寸。然后利用图像超分辨率模型VDSR获取得到图片超分辨率重建结果。最后,利用python的第三方图像处理库PIL将低分辨率的输入图像和超分辨率重建的结果一同可视化。其次,针对两个图片集91-images和General-100进行PSNR(峰值信噪比)验证。
+基于MindX SDK mxVision开发图像超分辨率程序。本程序采用python开发,通过预处理操作对输入的图片数据解码为YUV格式图片,并将解码后的图片缩放到模型推理要求的尺寸。然后利用图像超分辨率模型VDSR获取得到图片超分辨率重建结果。最后,利用python的第三方图像处理库PIL将低分辨率的输入图像和超分辨率重建的结果一同可视化。其次,针对两个图片集91-images和General-100进行PSNR(峰值信噪比)验证。
程序输入:任意jpg图片
程序输出:输出得到低分辨率图片(256 x 256px)和超分辨率重建图片(768 x 768px)组合的可视化大图
### 支持的产品
-昇腾310(推理)
+昇腾310B(推理)
-### 支持的版本
+## 环境依赖
+
+### 软件版本
-本样例配套的CANN版本为 [5.0.4](https://www.hiascend.com/software/cann/commercial) ,MindX SDK版本为 [2.0.4](https://www.hiascend.com/software/Mindx-sdk) 。
+推荐系统为ubuntu 18.04。
-MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 目录结构
@@ -42,20 +48,17 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
|-------- util.py // 工具方法
```
+
+### 准备工作
+> 配置环境变量
-## 环境依赖
-
-### 软件版本
-
-| 软件 | 版本 | 说明 | 获取方式 |
-| ------------------- | ------------ | ----------------------------- | ------------------------------------------------------------ |
-| mxVision | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
-| 操作系统 | Ubuntu 18.04 | 操作系统 | Ubuntu官网获取 |
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
-### 准备工作
+```
> 模型转换
@@ -90,22 +93,13 @@ aipp_op {
**步骤4** 使用ATC模型转换工具进行模型转换
-运行模型转换脚本 `model_conversion.sh` 或在 `model` 目录下执行以下命令
+`model` 目录下执行以下命令
```
-# 设置环境变量(请确认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
-
# 执行,转换VDSR模型成om格式
# Execute, transform VDSR model.
-atc --model=./VDSR.prototxt --weight=./VDSR.caffemodel --framework=0 --input_format=NCHW --input_shape="data: 1, 1, 768, 768" --output=./VDSR_768_768 --soc_version=Ascend310 --output_type=FP32 --insert_op_conf=YUV420SP_U8_GRAY.cfg
+atc --model=./VDSR.prototxt --weight=./VDSR.caffemodel --framework=0 --input_format=NCHW --input_shape="data: 1, 1, 768, 768" --output=./VDSR_768_768 --soc_version=Ascend310B1 --output_type=FP32 --insert_op_conf=YUV420SP_U8_GRAY.cfg
```
执行完模型转换脚本后,会在model目录下生成相应的VDSR_768_768.om模型文件。
@@ -127,31 +121,6 @@ atc --model=./VDSR.prototxt --weight=./VDSR.caffemodel --framework=0 --input_for
}
```
-### 配置环境变量
-
-```bash
-# 执行如下命令,打开.bashrc文件
-cd $HOME
-vi .bashrc
-# 在.bashrc文件中添加以下环境变量
-MX_SDK_HOME=${SDK安装路径}
-
-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/
-
-GST_PLUGIN_SCANNER=${MX_SDK_HOME}/opensource/libexec/gstreamer-1.0/gst-plugin-scanner
-
-GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME}/lib/plugins
-
-PYTHONPATH=${MX_SDK_HOME}/python
-
-# 保存退出.bashrc文件
-# 执行如下命令使环境变量生效
-source ~/.bashrc
-
-# 查看环境变量
-env
-```
-
## 运行
1) 准备一张测试图片,置于 image 文件夹中(仅支持jpg格式)
diff --git a/contrib/SuperResolution/evaluate.py b/contrib/SuperResolution/evaluate.py
index c0c4941c6ee2751de1e9bcc447b37b33a8b4c368..403ae8ec551169f4957dff3237e4eb53063cfd22 100644
--- a/contrib/SuperResolution/evaluate.py
+++ b/contrib/SuperResolution/evaluate.py
@@ -26,13 +26,13 @@ OFFSET_5 = 5
OFFSET_20 = 20
-def infer(input_image_path, streamManagerapi):
- """
- image super-resolution inference
- :param input_image_path: input image path
- :param streamManagerapi: streamManagerapi
- :return: no return
- """
+def infer(input_image_path, stream_manager):
+ """
+ image super-resolution inference
+ :param input_image_path: input image path
+ :param stream_manager: stream_manager
+ :return: no return
+ """
if os.path.exists(input_image_path) != 1:
print("The input image does not exist.")
exit()
@@ -48,49 +48,49 @@ def infer(input_image_path, streamManagerapi):
ilr_image_bytes = io.BytesIO()
ilr.save(ilr_image_bytes, format='JPEG')
input_image_data = ilr_image_bytes.getvalue()
- dataInput = MxDataInput()
- dataInput.data = input_image_data
+ data_input = MxDataInput()
+ data_input.data = input_image_data
- # inputs data to a specified stream based on streamName
- streamName = b'superResolution'
- inPluginId = 0
- uniqueId = streamManagerapi.SendData(streamName, inPluginId, dataInput)
- if uniqueId < 0:
+ # inputs data to a specified stream based on stream_name
+ stream_name = b'superResolution'
+ in_plugin_id = 0
+ unique_id = stream_manager.SendData(stream_name, in_plugin_id, data_input)
+ if unique_id < 0:
print("Failed to send data to stream.")
exit()
# Obtain the inference result
key = b"mxpi_tensorinfer0"
- keyVec = StringVector()
- keyVec.push_back(key)
- inferResult = streamManagerapi.GetProtobuf(streamName, inPluginId, keyVec)
- if inferResult.size() == 0:
- print("inferResult is null")
+ key_vec = StringVector()
+ key_vec.push_back(key)
+ infer_result = stream_manager.GetProtobuf(stream_name, in_plugin_id, key_vec)
+ if infer_result.size() == 0:
+ print("infer_result is null")
exit()
- if inferResult[0].errorCode != 0:
+ if infer_result[0].errorCode != 0:
print("GetProtobuf error. errorCode=%d, errorMsg=%s" % (
- inferResult[0].errorCode, inferResult[0].messageName.decode()))
+ infer_result[0].errorCode, infer_result[0].messageName.decode()))
exit()
# get the infer result
- inferList0 = MxpiDataType.MxpiTensorPackageList()
- inferList0.ParseFromString(inferResult[0].messageBuf)
- inferVisionData = inferList0.tensorPackageVec[0].tensorVec[0].dataStr
+ infer_list = MxpiDataType.MxpiTensorPackageList()
+ infer_list.ParseFromString(infer_result[0].messageBuf)
+ vision_data = infer_list.tensorPackageVec[0].tensorVec[0].dataStr
- output_img_data = np.frombuffer(inferVisionData, dtype=np.float32)
+ output_img_data = np.frombuffer(vision_data, dtype=np.float32)
output_y = colorize(output_img_data, value_min=None, value_max=None)
output_y = output_y.reshape(DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT)
sr_img_y = Image.fromarray(np.uint8(output_y), mode="L")
hr_img_y, _, _ = hr.convert("YCbCr").split()
# calculate peak signal-to-noise ratio
- PSNR = calc_psnr(sr_img_y, hr_img_y)
- psnr_all.append(PSNR)
- print('PSNR: {:.2f}'.format(PSNR))
+ psnr = calc_psnr(sr_img_y, hr_img_y)
+ psnr_all.append(psnr)
+ print('PSNR: {:.2f}'.format(psnr))
if __name__ == '__main__':
# init stream manager
- streamManagerApi = StreamManagerApi()
- ret = streamManagerApi.InitManager()
+ stream_manager_api = StreamManagerApi()
+ ret = stream_manager_api.InitManager()
if ret != 0:
print("Failed to init Stream manager, ret=%s" % str(ret))
exit()
@@ -137,24 +137,24 @@ if __name__ == '__main__':
}
}
pipelineStr = json.dumps(pipeline).encode()
- ret = streamManagerApi.CreateMultipleStreams(pipelineStr)
+ ret = stream_manager_api.CreateMultipleStreams(pipelineStr)
if ret != 0:
print("Failed to create Stream, ret=%s" % str(ret))
exit()
# test image set path
- test_image_set_path = "testSet/91-images-jpg"
+ TEST_IMAGE_SET_PATH = "testSet/91-images-jpg"
# parse command arguments
if len(sys.argv) == 2:
if sys.argv[1] == '':
print('test image set path is not valid, use default config.')
else:
- test_image_set_path = sys.argv[1]
+ TEST_IMAGE_SET_PATH = sys.argv[1]
# check input paths
- if os.path.exists(test_image_set_path) != 1:
- print('The image set path {} does not exist.'.format(test_image_set_path))
+ if os.path.exists(TEST_IMAGE_SET_PATH) != 1:
+ print('The image set path {} does not exist.'.format(TEST_IMAGE_SET_PATH))
exit()
# get all image files
- image_files = os.listdir(test_image_set_path)
+ image_files = os.listdir(TEST_IMAGE_SET_PATH)
# sort by file name
image_files.sort(key=lambda x: str(x[:-4]))
print(image_files)
@@ -162,9 +162,9 @@ if __name__ == '__main__':
# save the peak signal-to-noise ratio of each image in the test set
psnr_all = []
for test_image_path in image_files:
- image_file = test_image_set_path + "/" + test_image_path
- infer(image_file, streamManagerApi)
+ image_file = TEST_IMAGE_SET_PATH + "/" + test_image_path
+ infer(image_file, stream_manager_api)
print("average psnr = " + str(sum(psnr_all)/len(psnr_all)))
print(psnr_all)
# destroy streams
- streamManagerApi.DestroyAllStreams()
\ No newline at end of file
+ stream_manager_api.DestroyAllStreams()
\ No newline at end of file
diff --git a/contrib/SuperResolution/model/model_conversion.sh b/contrib/SuperResolution/model/model_conversion.sh
deleted file mode 100644
index c1d5e29841f1929778ea719e1360faff24719802..0000000000000000000000000000000000000000
--- a/contrib/SuperResolution/model/model_conversion.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-# Copyright(C) 2021. Huawei Technologies Co.,Ltd. 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.
-
-set -e
-
-# 该脚本用来将caffe模型文件转换成.om模型文件
-# This is used to convert caffe 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
-
-
-# 执行,转换VDSR模型
-# Execute, transform VDSR model.
-
-atc --model=./VDSR.prototxt --weight=./VDSR.caffemodel --framework=0 --input_format=NCHW --input_shape="data: 1, 1, 768, 768" --output=./VDSR_768_768 --soc_version=Ascend310 --output_type=FP32 --insert_op_conf=YUV420SP_U8_GRAY.cfg
-# 退出
-# exit
-exit 0
\ No newline at end of file
diff --git a/contrib/SuperRetina/README.md b/contrib/SuperRetina/README.md
index e3aa27607f2194e0c5bdbe52c1a2d4043e42ba18..92b36c6b952655a3fa010a5c5801f4fa03140c41 100644
--- a/contrib/SuperRetina/README.md
+++ b/contrib/SuperRetina/README.md
@@ -6,13 +6,15 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
-本样例配套的CANN版本为[5.0.4](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial),MindX SDK版本为[2.0.4](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2FMindx-sdk)。
-
-MindX SDK安装前准备可参考[《用户指南》](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)。
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -64,34 +66,20 @@ MindX SDK安装前准备可参考[《用户指南》](https://gitee.com/ascend/m
环境依赖软件和版本如下表:
-| 软件 | 版本 | 说明 |
-| ------------------- | ------------------------------------------------------------ | ----------------------------- |
-| mxVision | [mxVision 3.0.RC2](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2FMindx-sdk) | mxVision软件包 |
-| Ascend-CANN-toolkit | [CANN 5.1.RC2](https://gitee.com/link?target=https%3A%2F%2Fwww.hiascend.com%2Fsoftware%2Fcann%2Fcommercial) | Ascend-cann-toolkit开发套件包 |
-| 操作系统 | [Ubuntu 18.04](https://gitee.com/link?target=https%3A%2F%2Fubuntu.com%2F) | Linux操作系统 |
-| OpenCV | 4.6.0 | 用于结果可视化 |
+| 软件 | 版本 |
+| --------| ----------|
+|Pytorch | 1.7.0|
+| OpenCV | 4.6.0 |
在编译运行项目前,需要设置环境变量:
在进行模型转换和编译运行前,需设置如下的环境变量:
```bash
-export PYTHONPATH=${MX_SDK_HOME}/python/:$PYTHONPATH
-export install_path=${install_path}
-. ${MX_SDK_HOME}/set_env.sh
-. ${install_path}/set_env.sh
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
-注:**${MX_SDK_HOME}** 替换为用户自己的MindX_SDK安装路径(例如:"/home/xxx/MindX_SDK/mxVision");
-
- **${install_path}** 替换为开发套件包所在路径(例如:/usr/local/Ascend/ascend-toolkit/latest)。
-
-*版本要求:*
-
-*Python = 3.9.2
-
-*Pytorch = 1.7.0*
-
### 3. 模型转换
模型转换使用的是ATC工具,具体使用教程可参考[《ATC工具使用指南》](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)。
@@ -139,8 +127,8 @@ bash onnx2om.sh ./SuperRetina.onnx ./SuperRetina
**步骤4** 在./python目录下运行predictor.py,首先按需求修改路径:
```bash
- f1 = './data/samples/query.jpg' # image path
- f2 = './data/samples/refer.jpg' # image path
+ F1 = './data/samples/query.jpg' # image path
+ F2 = './data/samples/refer.jpg' # image path
merged = align_image_pair(f1, f2, model, show=True)
```
diff --git a/contrib/SuperRetina/onnx2om.sh b/contrib/SuperRetina/onnx2om.sh
index 827ea4da1324dbb91bac16f08e655f6dd4b238fd..4afee26a8ed0351aa752e337ea6e7b99b20a6870 100644
--- a/contrib/SuperRetina/onnx2om.sh
+++ b/contrib/SuperRetina/onnx2om.sh
@@ -30,5 +30,5 @@ echo "Output OM file path: ${om_path}"
atc --framework=5 --model="${onnx_path}" \
--output="${om_path}" \
- --soc_version=Ascend310 \
+ --soc_version=Ascend310B1 \
--output_type="FP32"
diff --git a/contrib/TSM/README.md b/contrib/TSM/README.md
index b548db7d44d5dcf7356b96a607cdfc273dcad21c..47a1f4633887dab79ead69daab0194b80369737c 100644
--- a/contrib/TSM/README.md
+++ b/contrib/TSM/README.md
@@ -5,13 +5,15 @@
### 1.1 支持的产品
-以昇腾Atlas310卡为主要的硬件平台
+以昇腾Atlas310B卡为主要的硬件平台
### 1.2 支持的版本
-CANN:5.1RC2
-
-SDK:3.0RC2(可通过cat SDK目录下的version.info查看)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -66,7 +68,7 @@ SDK:3.0RC2(可通过cat SDK目录下的version.info查看)
| 软件名称 | 版本 |
|----------|--------|
| cmake | 3.5+ |
-| mxVision | 5.1RC2 |
+| mxVision | 5.0RC1 |
| Python | 3.9 |
| torch | 1.10.0 |
| ffmpeg | 4.2.1 |
diff --git a/contrib/TSM/model/onnx2om.sh b/contrib/TSM/model/onnx2om.sh
index 0d19f13b1889cc9ba0efe377a4669fb77bc6f524..8a5ea0eff631a64f68796d877e251470e6c878fd 100644
--- a/contrib/TSM/model/onnx2om.sh
+++ b/contrib/TSM/model/onnx2om.sh
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-atc --model=./TSM.onnx --framework=5 --output=./TSM --input_format=NCDHW --soc_version=Ascend310 --precision_mode=allow_fp32_to_fp16 --op_select_implmode=high_precision
+atc --model=./TSM.onnx --framework=5 --output=./TSM --input_format=NCDHW --soc_version=Ascend310B1 --precision_mode=allow_fp32_to_fp16 --op_select_implmode=high_precision
if [ -f "./TSM.om" ]; then
echo "success"
diff --git a/contrib/TSM/model/onnx2om1.sh b/contrib/TSM/model/onnx2om1.sh
index 27fa8baa2cbea22d7329971bc2c04f416482ecac..07d12fce336311d527c6c9e65a3b7232060498eb 100644
--- a/contrib/TSM/model/onnx2om1.sh
+++ b/contrib/TSM/model/onnx2om1.sh
@@ -13,7 +13,7 @@
# limitations under the License.
#!/bin/bash
-atc --model=./jester.onnx --framework=5 --output=./jester --input_format=NCDHW --soc_version=Ascend310 --precision_mode=allow_fp32_to_fp16 --op_select_implmode=high_precision
+atc --model=./jester.onnx --framework=5 --output=./jester --input_format=NCDHW --soc_version=Ascend310B1 --precision_mode=allow_fp32_to_fp16 --op_select_implmode=high_precision
if [ -f "./jester.om" ]; then
echo "success"
diff --git a/contrib/TSM/online_infer.py b/contrib/TSM/online_infer.py
index 1a666251c0f70da3be86bcc23321ba5ea4212189..0a241ecba175943c45dd81cef37a22a2685631c5 100644
--- a/contrib/TSM/online_infer.py
+++ b/contrib/TSM/online_infer.py
@@ -148,6 +148,7 @@ def main():
img_tran[1] = (image[1] / 255-0.456) / 0.224
img_tran[2] = (image[2] / 255-0.406) / 0.225
img_tran = np.array(img_tran).astype(np.float32)
+ img_tran = np.ascontiguousarray(np.expand_dims(img_tran, axis=0))
img_tran = sdk.Tensor(img_tran)
img_tran.to_device(DEVICE_ID)
inputs = [img_tran, ] + buffer
diff --git a/contrib/TSM/speed.py b/contrib/TSM/speed.py
index 7ffb89cf24af09278a1f59cb6ceefbf1cf390e5b..6a6d8ddd768ca6e111831270d90378e8a23c8dbb 100644
--- a/contrib/TSM/speed.py
+++ b/contrib/TSM/speed.py
@@ -147,6 +147,7 @@ def main():
this_rst_list = []
md = sdk.model(FILE_PATH, DEVICE_ID)
inputs = np.array(pil_img_list).astype(np.float32)
+ inputs = np.ascontiguousarray(np.expand_dims(inputs, axis=0))
t = sdk.Tensor(inputs)
t.to_device(0)
start_time = time.time()
diff --git a/contrib/VCOD_SLTNet/README.md b/contrib/VCOD_SLTNet/README.md
index 9bf7f6114f31e937e072678189662d3cabed8ff9..985f62752ff9f5bd0c322bb15e93534e8634b738 100644
--- a/contrib/VCOD_SLTNet/README.md
+++ b/contrib/VCOD_SLTNet/README.md
@@ -7,18 +7,16 @@
### 1.1 支持的产品
-支持昇腾310芯片
+支持昇腾310B芯片
### 1.2 支持的版本
-支持的SDK版本:SDK3.0 RC2
-
-版本号查询方法,在Atlas产品环境下,运行命令:
-
-```
-npu-smi info
-```
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -73,9 +71,6 @@ npu-smi info
| 软件名称 | 版本 |
| -------- | ------ |
-| MindX SDK | mxVision-3.0.RC2 |
-| Python | 3.9.2 |
-| CANN | 5.1RC2 |
| PyTorch | 1.12.1 |
| numpy | 1.21.5 |
| imageio | 2.22.3|
@@ -84,6 +79,12 @@ npu-smi info
| timm | 0.4.12 |
| tqdm | 4.64.1 |
+> 配置环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
## 3. 数据准备
@@ -209,7 +210,7 @@ python -m onnxsim --input-shape="1,9,352,352" --dynamic-input-shape sltnet.onnx
步骤三、onnx模型转om模型
```
-atc --framework=5 --model=sltnet.onnx --output=sltnet --input_shape="image:1,9,352,352" --soc_version=Ascend310 --log=error
+atc --framework=5 --model=sltnet.onnx --output=sltnet --input_shape="image:1,9,352,352" --soc_version=Ascend310B1 --log=error
```
注意:
diff --git a/contrib/VehicleRetrogradeRecognition/README.md b/contrib/VehicleRetrogradeRecognition/README.md
index e0da2c5434cb5a555f457de80930119eefcba848..465eb65c2e2819cf782f4ae11ffc6636860bd6e3 100644
--- a/contrib/VehicleRetrogradeRecognition/README.md
+++ b/contrib/VehicleRetrogradeRecognition/README.md
@@ -6,13 +6,15 @@ VehicleRetrogradeRecognition交通逆行识别后处理插件基于MindXSDK开
### 1.1 支持的产品
-昇腾310(推理)
+昇腾310B(推理)
### 1.2 支持的版本
-本样例配套的CANN版本为[5.0.4](https://www.hiascend.com/software/cann/commercial)。支持的SDK版本为[2.0.4](https://www.hiascend.com/software/Mindx-sdk)。
-
-MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
### 1.3 软件方案介绍
@@ -70,30 +72,13 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
## 2 环境依赖
-推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
-
-| 软件名称 | 版本 | 说明 | 获取方式 |
-| ------------------- | ----------- | ----------------------------- | ------------------------------------------------------------ |
-| MindX SDK | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| ubuntu | 18.04.1 LTS | 操作系统 | Ubuntu官网获取 |
-| Ascend-CANN-toolkit | 5.0.4 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
-
在编译运行项目前,需要设置环境变量:
```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-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 ASCEND_OPP_PATH=${install_path}/opp
-export ASCEND_AICPU_PATH=${install_path}
-export LD_LIBRARY_PATH=${install_path}/atc/lib64:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:$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
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
-注:其中SDK安装路径${MX_SDK_HOME}替换为用户的SDK安装路径;install_path替换为开发套件包所在路径。LD_LIBRARY_PATH用以加载开发套件包中lib库。
-
-
## 3 软件依赖
@@ -109,7 +94,7 @@ export GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME
## 4 模型转换
**步骤1** 模型获取
-在ModelZoo上下载[YOLOv4模型](https://www.hiascend.com/zh/software/modelzoo/detail/1/abb7e641964c459398173248aa5353bc)
+下载[YOLOv4模型](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/VehicleRetrogradeRecognition/models.zip)
**步骤2** 模型存放
将获取到的YOLOv4模型onnx文件存放至:"样例项目所在目录/models/"。
@@ -118,23 +103,14 @@ export GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME
在onnx文件所在目录下执行一下命令
```
-# 设置环境变量(请确认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
-
# 执行,转换YOLOv4模型
# Execute, transform YOLOv4 model.
YOLOv4:
-atc --model=./yolov4_dynamic_bs.onnx --framework=5 --output=yolov4_bs --input_format=NCHW --soc_version=Ascend310 --insert_op_conf=./aipp_yolov4_576_576.config --input_shape="input:1,3,576,576" --out_nodes="Conv_434:0;Conv_418:0;Conv_402:0"
+atc --model=./yolov4_dynamic_bs.onnx --framework=5 --output=yolov4_bs --input_format=NCHW --soc_version=Ascend310B1 --insert_op_conf=./aipp_yolov4_576_576.config --input_shape="input:1,3,576,576" --out_nodes="Conv_434:0;Conv_418:0;Conv_402:0"
```
-执行完模型转换脚本后,会生成相应的.om模型文件。我们也提供了原模型以及已经转换好的YOLOv4 om模型:[链接](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/VehicleRetrogradeRecognition/models.zip)
+执行完模型转换脚本后,会生成相应的.om模型文件。
模型转换使用了ATC工具,如需更多信息请参考:
@@ -229,7 +205,7 @@ bash build.sh
bash run.sh
```
-命令执行成功后会在当前目录下生成检测结果视频文件out.h264,然后执行命令:
+命令执行成功后会在当前目录下生成检测结果视频文件out.h264,然后在pc端ffmpeg软件执行命令:
```
ffmpeg -f h264 -i out.h264 -vcodec copy out.mp4
diff --git a/contrib/VideoGestureRecognition/README.md b/contrib/VideoGestureRecognition/README.md
index ccf965049e9417a48278a17a3272827916e35079..2c7226a8717e1916846832cfc07ccd67998acb31 100644
--- a/contrib/VideoGestureRecognition/README.md
+++ b/contrib/VideoGestureRecognition/README.md
@@ -45,7 +45,17 @@
```
### 依赖
-| 依赖软件 | 版本 | 下载地址 | 说明 |
+
+推荐系统为ubuntu 18.04。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+
+
+| 第三方依赖软件 | 版本 | 下载地址 | 说明 |
| ------------- | ------ | ------------------------------------------------------------ | -------------------------------------------- |
| ffmpeg | 4.2.1 | [Link](https://github.com/FFmpeg/FFmpeg/archive/n4.2.1.tar.gz) | 视频转码解码组件 |
@@ -55,6 +65,7 @@
```bash
export PATH=/usr/local/ffmpeg/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
+export FFMPEG_PATH=/usr/local/ffmpeg/
```
#### FFmpeg
@@ -70,6 +81,12 @@ make install
```
### 准备工作
+> 配置环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
> 模型转换
@@ -82,19 +99,10 @@ make install
在模型权重和网络文件所在目录下执行以下命令
```
-# 设置环境变量(请确认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
-
# 执行,转换Resnet18模型
# Execute, transform Resnet18 model.
-atc --model=./resnet18_gesture.prototxt --weight=./resnet18_gesture.caffemodel --framework=0 --output=gesture_yuv --soc_version=Ascend310 --insert_op_conf=./insert_op.cfg --input_shape="data:1,3,224,224" --input_format=NCHW
+atc --model=./resnet18_gesture.prototxt --weight=./resnet18_gesture.caffemodel --framework=0 --output=gesture_yuv --soc_version=Ascend310B1 --insert_op_conf=./insert_op.cfg --input_shape="data:1,3,224,224" --input_format=NCHW
```
执行完模型转换脚本后,会生成相应的.om模型文件。 执行完模型转换脚本后,会生成相应的.om模型文件。
@@ -108,51 +116,31 @@ atc --model=./resnet18_gesture.prototxt --weight=./resnet18_gesture.caffemodel -
main.cpp中配置rtsp流源地址(需要自行准备可用的视频流,视频流格式为H264)。
同样地测试视频也可下载([链接](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/VideoGestureRecognition/data.zip))。
+```rtspList.emplace_back("#{本地或rtsp流地址}"); ```
+
提示:使用测试视频中的手势尺寸大致应为视频大小的二分之一,同时应当符合国际标准,背景要单一,手势要清晰,光线充足;视频切勿有遮挡,不清晰等情况。
[Live555拉流教程](../../docs/参考资料/Live555离线视频转RTSP说明文档.md)
-```c++ rtspList.emplace_back("#{本地或rtsp流地址}"); ```
-[配置ResnetDetector插件的模型加载路径modelPath]
-```c++ reasonerConfig.resnetModelPath = "${Resnet18.om模型路径}"```
+配置ResnetDetector插件的模型加载路径modelPath
+```reasonerConfig.resnetModelPath = "${Resnet18.om模型路径}"```
配置ResnetDetector插件的模型加载路径labelPath
-```c++ reasonerConfig.resnetLabelPath = "${resnet18.names路径}";```
+```reasonerConfig.resnetLabelPath = "${resnet18.names路径}";```
其他可配置项DECODE_FRAME_QUEUE_LENGTH DECODE_FRAME_WAIT_TIME SAMPLING_INTERVAL MAX_SAMPLING_INTERVAL
-```c++ DECODE_FRAME_QUEUE_LENGTH = 100; DECODE_FRAME_WAIT_TIME = 10; SAMPLING_INTERVAL = 24; MAX_SAMPLING_INTERVAL = 100;```
-
-
-### 配置环境变量
-
```
-# 执行如下命令,打开.bashrc文件
-cd $HOME
-vi .bashrc
-# 在.bashrc文件中添加以下环境变量
-MX_SDK_HOME=${SDK安装路径}
-FFMPEG_PATH=${FFMPEG安装路径}
-
-LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${FFMPEG_PATH}/lib:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/
-
-GST_PLUGIN_SCANNER=${MX_SDK_HOME}/opensource/libexec/gstreamer-1.0/gst-plugin-scanner
-
-GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME}/lib/plugins
-
-# 保存退出.bashrc文件
-# 执行如下命令使环境变量生效
-source ~/.bashrc
-
-#查看环境变量
-env
+DECODE_FRAME_QUEUE_LENGTH = 100;
+DECODE_FRAME_WAIT_TIME = 10;
+SAMPLING_INTERVAL = 24;
+MAX_SAMPLING_INTERVAL = 100;
```
### 配置SDK路径
-配置CMakeLists.txt文件中的`MX_SDK_HOME`与`FFMPEG_PATH`环境变量
+配置CMakeLists.txt文件中的`FFMPEG_PATH`环境变量
```
-set(MX_SDK_HOME ${SDK安装路径}/mxVision)
set(FFMPEG_PATH {ffmpeg实际安装路径})
```
@@ -173,14 +161,8 @@ cmake ..
make
-Scanning dependencies of target sample
-[ 11%] Building CXX object CMakeFiles/sample.dir/main.cpp.o
-[ 22%] Building CXX object CMakeFiles/sample.dir/StreamPuller/StreamPuller.cpp.o
-[ 33%] Building CXX object CMakeFiles/sample.dir/VideoDecoder/VideoDecoder.cpp.o
-[ 44%] Building CXX object CMakeFiles/sample.dir/ImageResizer/ImageResizer.cpp.o
-[ 66%] Building CXX object CMakeFiles/sample.dir/ResnetDetector/ResnetDetector.cpp.o
-[ 77%] Building CXX object CMakeFiles/sample.dir/MultiChannelVideoReasoner/MultiChannelVideoReasoner.cpp.o
-[ 88%] Building CXX object CMakeFiles/sample.dir/FrameSkippingSampling/FrameSkippingSampling.cpp.o
+....
+
[100%] Linking CXX executable ../sample
[100%] Built target sample
# sample就是CMakeLists文件中指定生成的可执行文件。
@@ -188,7 +170,6 @@ Scanning dependencies of target sample
> ② 运行项目根目录下的`build.sh`
```bash
-chmod +x build.sh
bash build.sh
```
### 执行脚本
@@ -196,7 +177,6 @@ bash build.sh
执行`run.sh`脚本前请先确认可执行文件`sample`已生成。
```
-chmod +x run.sh
bash run.sh
```
diff --git a/contrib/VideoGestureRecognition/build.sh b/contrib/VideoGestureRecognition/build.sh
index 9de629ed73e2715d458dafed599bb41bf149637d..16c270a0342d681d56f754dcf782a272bffb46cb 100644
--- a/contrib/VideoGestureRecognition/build.sh
+++ b/contrib/VideoGestureRecognition/build.sh
@@ -22,11 +22,6 @@ cur_path=$(cd "$(dirname "$0")" || exit; pwd)
# build type
build_type="Release"
-function prepare_env()
-{
- export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/:$LD_LIBRARY_PATH
-}
-
function prepare_path() {
if [ -d "$1" ]; then
rm -rf "$1"
@@ -40,7 +35,6 @@ function prepare_path() {
function build() {
echo "current dir: $cur_path"
- prepare_env
path_build=${cur_path}/build
prepare_path "$path_build"
diff --git a/contrib/ai_paint/README.md b/contrib/ai_paint/README.md
index 23ee6ac87292a95ed6a423d2fb8f77a0364eede9..8198027e1e3cbfc96eab7d40b83de7f44e5e0e95 100644
--- a/contrib/ai_paint/README.md
+++ b/contrib/ai_paint/README.md
@@ -6,21 +6,45 @@
- https://www.hiascend.com/zh/developer/mindx-sdk/landscape?fromPage=1
- https://gitee.com/ascend/samples/tree/master/cplusplus/contrib/AI_painting
-## 2 模型转换
- 原模型为PB模型,通过atc工具可转换为对应OM模型。
- 本样例中在model目录下已提供om模型和对应转换脚本,如仓库限制无法获取大文件,请使用以下下载地址:
+
+
+## 2 依赖
+
+|软件名称 | 版本 |
+|-----------|----------|
+| python | 3.9.2 |
+| MindX SDK | 5.0.rc1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+
+本样例无需外部依赖,在安装完成的SDK运行环境中即可执行。
+
+
+## 3 环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
+
+## 4 模型转换
+ 获取原模型PB模型,通过atc工具可转换为对应OM模型。
+
- https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/painting/AIPainting_v2.pb
- - https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/painting/AIPainting_v2.om
+转换命令
-## 3 目录结构
+```
+atc --output_type=FP32 --input_shape="objs:9;coarse_layout:1,256,256,17" --input_format=NHWC --output="AIPainting_v2" --soc_version=Ascend310B1 --framework=3 --model="AIPainting_v2.pb"
+```
+
+
+## 5 目录结构
```
.
|-------- model
|-------- |---- AIPainting_v2.om //转换后的OM模型
|-------- |---- AIPainting_v2.pb //原始PB模型
-|-------- |---- model_conversion.sh //模型转换脚本
|-------- pipeline
| |---- ai_paint.pipeline //流水线配置文件
|-------- python
@@ -31,28 +55,18 @@
|-------- README.md
```
-## 4 依赖
-
-|软件名称 | 版本 |
-|-----------|----------|
-| python | 3.9.2 |
-| MindX SDK | 2.0.4 |
-| CANN | 5.0.4 |
-
-本样例无需外部依赖,在安装完成的SDK运行环境中即可执行。
-
-## 5 运行
+## 6 运行
1. 获取om模型
-2. run.sh脚本中LD_LIBRARY_PATH设置了ACL动态库链接路径为/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64,如果实际环境中路径不一致,需要替换为实际的目录。
-3. 如果环境变量中没有MX_SDK_HOME变量,则需要在run.sh脚本中设置MX_SDK_HOME变量为你实际的MX_SDK安装目录。默认配置中MX_SDK_HOME为样例位于SDK自带sample目录时的相对路径。
-4. 若要执行样例:
-修改python目录下net_config.ini文件中对应的网络参数,随后执行
-```bash
-bash run.sh
+2. 执行样例:
+进入python目录, 修改net_config.ini文件中对应的网络参数,随后执行
```
+python3 main.py
+```
+
默认输出的矢量图layoutMap.jpg和结果图像resultImg.jpg位于result目录下
-5. 性能测试:默认已包含单次生成的时间计算并在命令行输出
+
+3. 性能测试:默认已包含单次生成的时间计算并在命令行输出
```shell
Time cost = 'xxx'ms
```
\ No newline at end of file
diff --git a/contrib/ai_paint/model/model_conversion.sh b/contrib/ai_paint/model/model_conversion.sh
deleted file mode 100644
index b35f3f95467d7f25b1e269da100cbd8894682ef3..0000000000000000000000000000000000000000
--- a/contrib/ai_paint/model/model_conversion.sh
+++ /dev/null
@@ -1,32 +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
-
-
-atc --output_type=FP32 --input_shape="objs:9;coarse_layout:1,256,256,17" --input_format=NHWC --output="AIPainting_v2" --soc_version=Ascend310 --framework=3 --model="AIPainting_v2.pb"
\ No newline at end of file
diff --git a/contrib/facemaskdetection/README.md b/contrib/facemaskdetection/README.md
index bb9f1ade71205720104f247f9a34ffd0d6928338..32d223cd2df3c7f97915c28f5880faeefc57b8a8 100644
--- a/contrib/facemaskdetection/README.md
+++ b/contrib/facemaskdetection/README.md
@@ -5,13 +5,13 @@
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310、Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
-支持的SDK版本为2.0.4。
+支持的SDK版本为5.0.RC1。
-CANN版本为5.0.4。
+CANN版本昇腾Atlas310卡使用6.3.RC1,Atlas310B卡使用6.2.RC1。
### 1.3 代码目录结构与说明
@@ -48,31 +48,19 @@ CANN版本为5.0.4。
| 软件 | 版本 | 说明 | 获取方式 |
| ------------------- | ------------ | ----------------------------- | ------------------------------------------------------------ |
-| mxVision | 2.0.4 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
-| Ascend-CANN-toolkit | 20.2.rc1 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
+| mxVision | 5.0.RC1 | mxVision软件包 | [链接](https://www.hiascend.com/software/Mindx-sdk) |
+| Ascend-CANN-toolkit | 310使用6.3.RC1,310B使用6.2.RC1 | Ascend-cann-toolkit开发套件包 | [链接](https://www.hiascend.com/software/cann/commercial) |
| 操作系统 | Ubuntu 18.04 | 操作系统 | Ubuntu官网获取 |
| 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
diff --git a/contrib/facemaskdetection/test_image.py b/contrib/facemaskdetection/test_image.py
index 6093921d281401b141b1c23585685f1e6c74cfca..ed01b9124f2532dd423b139f69a76c5e8d7a676d 100644
--- a/contrib/facemaskdetection/test_image.py
+++ b/contrib/facemaskdetection/test_image.py
@@ -96,8 +96,7 @@ def inference(
ymax + shift_size,
]
)
- return output_info
-
+ return output_info0
if __name__ == "__main__":
streamManagerApi = StreamManagerApi()
@@ -109,7 +108,7 @@ if __name__ == "__main__":
# create streams by pipeline config file
pipeline_path = b"main.pipeline"
- tensor_key = b"appsrc0"
+ TENSOR_KEY = b"appsrc0"
ret = streamManagerApi.CreateMultipleStreamsFromFile(pipeline_path)
if ret != 0:
print("Failed to create Stream, ret=%s" % str(ret))
@@ -117,8 +116,10 @@ if __name__ == "__main__":
# Construct the input of the stream
PATH = "./testimages/FaceMaskDataset/test/"
+ start_time = time.time()
+ COUNT = 0
for item in os.listdir(PATH):
- start_stamp = time.time()
+ COUNT = COUNT + 1
img_path = os.path.join(PATH, item)
print(img_path)
img_name = item.split(".")[0]
@@ -128,14 +129,14 @@ if __name__ == "__main__":
if os.path.exists(img_path) != 1:
print("The test image does not exist.")
- streamName = b"detection"
+ STREAM_NAME = b"detection"
inPluginId = 0
dataInput = MxDataInput()
with open(img_path, "rb") as f:
dataInput.data = f.read()
# Inputs data to a specified stream based on streamName.
- uniqueId = streamManagerApi.SendData(streamName, inPluginId, dataInput)
+ uniqueId = streamManagerApi.SendData(STREAM_NAME, inPluginId, dataInput)
if uniqueId < 0:
print("Failed to send data to stream.")
exit()
@@ -143,7 +144,7 @@ if __name__ == "__main__":
key_vec = StringVector()
key_vec.push_back(b"mxpi_tensorinfer0")
# get inference result
- infer_result = streamManagerApi.GetProtobuf(streamName, inPluginId, key_vec)
+ infer_result = streamManagerApi.GetProtobuf(STREAM_NAME, inPluginId, key_vec)
a = infer_result.size()
if infer_result.size() == 0:
print("infer_result is null")
@@ -197,7 +198,7 @@ if __name__ == "__main__":
img = cv2.imread(img_path)
output_info = inference(img, show_result=False)
open(img_txt, "a+")
- for i in enumerate(output_info):
+ for i, _ in enumerate(output_info):
with open(img_txt, "a+") as f:
result = "{} {} {} {} {} {}".format(
id2class[output_info[i][0]],
@@ -212,4 +213,8 @@ if __name__ == "__main__":
# destroy streams
+ end_time = time.time()
+ time_diff = end_time - start_time
+ res_fps = COUNT / time_diff
+ print(f"result fps: {res_fps}")
streamManagerApi.DestroyAllStreams()
diff --git a/contrib/faceswap/README.md b/contrib/faceswap/README.md
index 48d9774b3192db1eb4b92edca529af16e3dcb417..31a77a22d95a730a3703fc67e84109e0a9cda434 100644
--- a/contrib/faceswap/README.md
+++ b/contrib/faceswap/README.md
@@ -10,12 +10,12 @@ faceswap应用基于MindX SDK开发,在昇腾芯片上进行目标检测,脸
```
### 1.1 支持的产品
-本项目以昇腾Atlas310卡为主要的硬件平台。
+本项目以昇腾Atlas310、昇腾Atlas310B卡为主要的硬件平台。
### 1.2 支持的版本
-本样例配套的CANN版本为[5.0.4](https://www.hiascend.com/software/cann/commercial)
-支持的SDK版本为[2.0.4](https://www.hiascend.com/software/Mindx-sdk)
+本样例配套的CANN版本为[昇腾Atlas310卡使用6.3.RC1,Atlas310B卡使用6.2.RC1](https://www.hiascend.com/software/cann/commercial)
+支持的SDK版本为[5.0.RC1](https://www.hiascend.com/software/Mindx-sdk)
MindX SDK安装前准备可参考《用户指南》,[安装教程](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/quickStart/1-1安装SDK开发套件.md)
### 1.3 技术实现流程图
本项目的主要工作流程为,初始输入目标图像和原图像,第一阶段采用yolov4模型进行目标检测,接着利用后处理插件、抠图插件对检测结果进行处理,得到目标区域部分;
@@ -47,7 +47,7 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
| 软件名称 | 版本 |
| :--------: | :------: |
|操作系统|18.04.1 |
-|MindX SDK|2.0.4|
+|MindX SDK|5.0.RC1|
|Python| 3.9.2|
|numpy | 1.21.0 |
|opencv-python|4.5.2|
@@ -69,13 +69,9 @@ MindX SDK安装前准备可参考《用户指南》,[安装教程](https://git
# 设置环境变量(请确认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 # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改
-# 执行,转换v3.onnx模型
+# 执行如下命令,转换v3.onnx模型。注意若推理芯片为310B,需将命令中的soc_version参数设置为Ascend310B1。
# Execute, transform v3.onnx model.
atc --model=v3.onnx --framework=5 --output=V3ONNXX --soc_version=Ascend310 --insert_op_conf=V3ONNX.cfg --out_nodes="Gemm_169:0"
```
@@ -94,26 +90,9 @@ ATC run success, welcome to the next use.
```
2. 配置
```
-#执行如下命令,打开.bashrc文件
-cd $home
-vi .bashrc
-#在.bashrc文件中添加以下环境变量:
-
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/
-
-export PYTHONPATH=${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
-
-#保存退出.bashrc
-wq
-#执行如下命令使环境变量生效
-source ~/.bashrc
-
+#执行如下两个环境配置脚本设置环境变量,运行命令:
+. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,根据实际安装路径修改
+. ${MX_SDK_HOME}/mxVision/set_env.sh # ${MX_SDK_HOME}替换为用户的SDK安装路径
```
3. 配置pipeline
diff --git a/contrib/human_segmentation/README.md b/contrib/human_segmentation/README.md
index 2e48167613906551e30db12384e5dffa434dc96a..26cb9506cdf353b8f35af841cb2856fe4ac43c4c 100644
--- a/contrib/human_segmentation/README.md
+++ b/contrib/human_segmentation/README.md
@@ -18,12 +18,17 @@
## 3 依赖
| 软件名称 | 版本 |
-| :--------: | :------: |
-|ubantu 18.04|18.04.1 LTS |
-|MindX SDK|2.0.4|
-|C++| 11.0|
-|opencv2| |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+> 设置环境变量
+
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh
+. ${SDK安装路径}/mxVision/set_env.sh
+```
## 4 模型转换
人体语义分割采用提供的human_segmentation.pb模型。由于原模型是基于tensorflow的人体语义分割模型,因此我们需要借助于ATC工具将其转化为对应的om模型。
@@ -35,22 +40,10 @@
在pb文件所在目录下执行以下命令
```
-#设置环境变量(请确认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
-
#执行,转换human_segmentation.pb模型
#Execute, transform 转换human_segmentation.pb model.
-atc --input_shape="input_rgb:1,512,512,3" --input_format=NHWC --output=human_segmentation --soc_version=Ascend310 --insert_op_conf=./insert_op.cfg --framework=3 --model=./human_segmentation.pb
+atc --input_shape="input_rgb:1,512,512,3" --input_format=NHWC --output=human_segmentation --soc_version=Ascend310B1 --insert_op_conf=./insert_op.cfg --framework=3 --model=./human_segmentation.pb
```
执行完模型转换脚本后,若提示如下信息说明模型转换成功,会在output参数指定的路径下生成human_segmentation.om模型文件。
```
@@ -66,34 +59,7 @@ https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/%E5
```
见4: 模型转换
```
-2. 配置
-
-```
-# 执行如下命令,打开.bashrc文件
-vi .bashrc
-# 在.bashrc文件中添加以下环境变量
-MX_SDK_HOME=${SDK安装路径}
-
-LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:${FFMPEG_HOME}/lib:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/driver/lib64/
-
-GST_PLUGIN_SCANNER=${MX_SDK_HOME}/opensource/libexec/gstreamer-1.0/gst-plugin-scanner
-
-GST_PLUGIN_PATH=${MX_SDK_HOME}/opensource/lib/gstreamer-1.0:${MX_SDK_HOME}/lib/plugins
-
-# 保存退出.bashrc文件
-# 执行如下命令使环境变量生效
-source ~/.bashrc
-
-#查看环境变量
-env
-```
-3. 配置SDK路径
-
-配置CMakeLists.txt文件中的`MX_SDK_HOME`环境变量
-```
-set(MX_SDK_HOME ${SDK安装路径}/mxVision)
-```
-4. 配置pipeline
+2. 配置pipeline
根据所需场景,配置pipeline文件,调整路径参数等。
```
#配置mxpi_tensorinfer插件的模型加载路径: modelPath
@@ -106,25 +72,23 @@ set(MX_SDK_HOME ${SDK安装路径}/mxVision)
"next": "appsink0"
},
```
-5. 获取测试需要的测试图片
+3. 获取测试需要的测试图片
进入工程文件的data目录下,下载mp4格式的测试短视频,任意截取一张命名为test.jpg作为测试图片。
```
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/human_segmentation/person.mp4
```
-注:若想测试自己的.jpg图片可将其放如data目录下并修改main.cpp中int main函数的第一行std::string inputPicname = "test.jpg";将右边替换成自己图片的名称即可。
-编译项目文件
-
- 新建立build目录,进入build执行cmake ..(..代表包含CMakeLists.txt的源文件父目录),在build目录下生成了编译需要的Makefile和中间文件。执行make构建工程,构建成功后就会生成可执行文件。
- 再执行make命令生成的smple就是CMakeLists文件中指定生成的可执行文件
-
+注:若想测试自己的.jpg图片可将其放在data目录下并修改main.cpp中int main函数的第一行std::string inputPicname = "test.jpg";将右边替换成自己图片的名称即可。
+4. 编译项目文件
-5. 运行可执行文件
```
-
-切换至工程主目录,执行以下命令运行样例。
-执行run.sh文件
+切换至工程主目录,执行以下命令执行编译
+bash build.sh
+```
+5. 运行
+```
+bash run.sh
```
6. 查看结果
diff --git a/contrib/human_segmentation/main.cpp b/contrib/human_segmentation/main.cpp
index d0812567bdc3526499cbfec3fc22a64824767a47..1ca62edee644c61cbd7267c62e6713d50ecfddf0 100644
--- a/contrib/human_segmentation/main.cpp
+++ b/contrib/human_segmentation/main.cpp
@@ -19,30 +19,37 @@
#include "MxBase/MemoryHelper/MemoryHelper.h"
#include "MxStream/StreamManager/MxStreamManager.h"
#include "MxBase/Tensor/TensorBase/TensorBase.h"
-#include "MxBase/CV/Segmentation/DrawPixels.h"
#include "MxBase/PostProcessBases/SemanticSegPostProcessBase.h"
-#define INPUT_MODEL_HEIGHT 512
-#define INPUT_MODEL_WIDTH 512
-#define OUTPUT_MODEL_WIDTH 512
+namespace {
+ const uint32_t INPUT_MODEL_HEIGHT = 512;
+ const uint32_t INPUT_MODEL_WIDTH = 512;
+ const uint32_t OUTPUT_MODEL_HEIGHT = 512;
+ const uint32_t OUTPUT_MODEL_WIDTH = 512;
+ const uint32_t OBJECT_VALUE = 2;
+ const uint32_t PIXEL = 255;
+ const double ALPHA = 1.0;
+ const double BETA = 0.5;
+ const double GAMMA = 0.0;
+}
// Read the information in the file
static APP_ERROR readfile(const std::string& filePath, MxStream::MxstDataInput& dataBuffer)
{
char c[PATH_MAX + 1] = {0x00};
size_t count = filePath.copy(c, PATH_MAX +1);
- if(count != filePath.length()){
+ if (count != filePath.length()) {
LogError << "Failed to copy file path(" << c << ").";
return APP_ERR_COMM_FAILURE;
}
// Gets the absolute path to the file
char path[PATH_MAX + 1] = { 0x00 };
- if((strlen(c) > PATH_MAX) || (realpath(c,path) == nullptr)){
+ if ((strlen(c) > PATH_MAX) || (realpath(c, path) == nullptr)) {
LogError << "Failed to get image, the image path is (" << filePath << ").";
return APP_ERR_COMM_NO_EXIST;
}
// Open the file
FILE *fp = fopen(path, "rb");
- if(fp == nullptr){
+ if (fp == nullptr) {
LogError << "Failed to open file (" << path << ").";
return APP_ERR_COMM_OPEN_FAIL;
}
@@ -51,16 +58,16 @@ static APP_ERROR readfile(const std::string& filePath, MxStream::MxstDataInput&
long fileSize = ftell(fp);
fseek(fp, 0, SEEK_SET);
// If the contents of the file are not empty, write the contents of the file to dataBuffer
- if(fileSize > 0){
+ if (fileSize > 0) {
dataBuffer.dataSize = fileSize;
dataBuffer.dataPtr = new (std::nothrow) uint32_t[fileSize]; // Memory is allocated based on file length
- if(dataBuffer.dataPtr == nullptr){
+ if (dataBuffer.dataPtr == nullptr) {
LogError << "allocate memory with \"new uint32_t\" failed.";
fclose(fp);
return APP_ERR_COMM_FAILURE;
}
uint32_t readRet = fread(dataBuffer.dataPtr, 1, fileSize, fp);
- if(readRet <= 0){
+ if (readRet <= 0) {
fclose(fp);
return APP_ERR_COMM_READ_FAIL;
}
@@ -76,7 +83,7 @@ static std::string readpipelineconfig(const std::string &pipelineConfigPath)
{
// Open the file in binary mode
std::ifstream file(pipelineConfigPath.c_str(), std::ifstream::binary);
- if(!file){
+ if (!file) {
LogError << pipelineConfigPath << " file is not exists";
return "";
}
@@ -96,8 +103,8 @@ static std::string readpipelineconfig(const std::string &pipelineConfigPath)
return pipelineConfig;
}
-// Gets the amount of tension
-void gettensors(const MxTools::MxpiTensorPackageList tensorPackageList,std::vector &tensors) {
+// Gets the amount of tensor
+void GetTensors(const MxTools::MxpiTensorPackageList tensorPackageList, std::vector &tensors) {
for (int i = 0; i < tensorPackageList.tensorpackagevec_size(); ++i) {
for (int j = 0; j < tensorPackageList.tensorpackagevec(i).tensorvec_size(); j++) {
MxBase::MemoryData memoryData = {};
@@ -122,7 +129,7 @@ void gettensors(const MxTools::MxpiTensorPackageList tensorPackageList,std::vect
}
}
-void semanticsegoutput(const std::vector& tensors,
+void SemanticsegOutput(const std::vector& tensors,
const std::vector& resizedImageInfos,
std::vector &semanticSegInfos)
{
@@ -143,7 +150,7 @@ void semanticsegoutput(const std::vector& tensors,
for (uint32_t y = 0; y < inputModelHeight; y++) {
for (uint32_t x = 0; x < inputModelWidth; x++) {
float* begin = tensorPtr + y * outputModelWidth * classNum_ + x * classNum_;
- results[y][x] = (*begin)*2;
+ results[y][x] = (*begin) * OBJECT_VALUE;
count++;
}
}
@@ -152,52 +159,81 @@ void semanticsegoutput(const std::vector& tensors,
}
}
-// Mask diagram generation
-APP_ERROR draw(const std::vector& tensors,
- std::vector& semanticSegInfos,
- const std::vector& resizedImageInfos,
- std::string & inputPicname)
+APP_ERROR DrawPixels(const std::vector> pixels, const cv::Size size, cv::Mat &mask)
{
- int dumpImage_ = 1;
- auto inputs = tensors;
- semanticsegoutput(inputs, resizedImageInfos, semanticSegInfos);
- if (dumpImage_) {
- for (uint32_t i = 0; i < semanticSegInfos.size(); i++) {
- std::ostringstream outputPath;
- outputPath << "./data/mask_" << inputPicname;
- MxBase::DrawPixelsRGB(semanticSegInfos[i].pixels, outputPath.str());
+ if (pixels.size() == 0) {
+ LogError << "Infer result error";
+ return APP_ERR_COMMANDER_INFER_RESULT_ERROR;
+ }
+ if (pixels[0].size() == 0) {
+ LogError << "Infer result error";
+ return APP_ERR_COMMANDER_INFER_RESULT_ERROR;
+ }
+
+ cv::Mat maskTmp = cv::Mat(size, CV_32FC1);
+ for (uint32_t i = 0; i < size.height; i++) {
+ for (uint32_t j = 0; j < size.width; j++) {
+ if (pixels[i][j] == OBJECT_VALUE) {
+ maskTmp.at(i, j) = PIXEL;
+ } else {
+ maskTmp.at(i, j) = pixels[i][j];
+ }
}
}
+ cv::cvtColor(maskTmp, mask, cv::COLOR_GRAY2RGB);
+ mask.cv::Mat::convertTo(mask, CV_8UC3);
return APP_ERR_OK;
}
-// Mask chart zoom
-void zoom(std::string filename,int height,int width){
- cv::Mat src = cv::imread("./"+filename,cv::IMREAD_UNCHANGED);
- cv::Mat dst;
- resize(src, dst, cv::Size(width, height));
- cv::imwrite(filename,dst);
-}
+APP_ERROR SaveResult(const std::shared_ptr mxpiVisionList,
+ const std::vector semanticSegInfos,
+ const std::string inputPicname)
+{
+ APP_ERROR ret;
+ auto& visionInfo = mxpiVisionList->visionvec(0).visioninfo();
+ auto& visionData = mxpiVisionList->visionvec(0).visiondata();
+ MxBase::MemoryData memorySrc = {};
+ memorySrc.deviceId = visionData.deviceid();
+ memorySrc.type = (MxBase::MemoryData::MemoryType) visionData.memtype();
+ memorySrc.size = visionData.datasize();
+ memorySrc.ptrData = (void*)visionData.dataptr();
+ MxBase::MemoryData memoryDst(visionData.datasize(), MxBase::MemoryData::MEMORY_HOST_NEW);
+ ret = MxBase::MemoryHelper::MxbsMallocAndCopy(memoryDst, memorySrc);
+ if (ret != APP_ERR_OK) {
+ LogError << "Fail to malloc and copy host memory.";
+ return ret;
+ }
+ cv::Mat imgBgr = cv::Mat(visionInfo.heightaligned(), visionInfo.widthaligned(), CV_8UC3, memoryDst.ptrData);
-// Picture fusion
-void image_fusion(std::string filename,std::string maskname,std::string &inputPicname){
- cv::Mat img1 = cv::imread(filename);
- cv::Mat img2 = cv::imread(maskname);
- cv::Mat dst;
- // 1 and 0.5 are the transparency of array
- // 0 means offset added to weighted sum
- cv::addWeighted(img1,1,img2,0.5,0,dst);
- cv::imwrite("./result/result_"+inputPicname,dst);
+ cv::Size size = {OUTPUT_MODEL_HEIGHT, OUTPUT_MODEL_WIDTH};
+ // Mask diagram genertion
+ for (uint32_t i = 0; i < semanticSegInfos.size(); i++) {
+ cv::Mat maskRGB = cv::Mat(size, CV_8UC3);
+ ret = DrawPixels(semanticSegInfos[i].pixels, size, maskRGB);
+ if (ret != APP_ERR_OK) {
+ LogError << "Draw mask failed";
+ return ret;
+ }
+ std::ostringstream outputPath;
+ outputPath << "./result/mask_" << inputPicname;
+ cv::Mat oriMask, dst;
+ cv::resize(maskRGB, oriMask, cv::Size(visionInfo.widthaligned(), visionInfo.heightaligned()));
+ cv::imwrite(outputPath.str(), oriMask);
+
+ // Picture fusion
+ cv::addWeighted(imgBgr, ALPHA, oriMask, BETA, GAMMA, dst);
+ cv::imwrite("./result/result_" + inputPicname, dst);
+ }
+ return APP_ERR_OK;
}
int main(int argc, char* argv[])
{
// Enter the image name, path
- std::string inputPicname = "test.jpeg";
+ std::string inputPicname = "test.jpg";
std::string inputPicPath = "./data/"+inputPicname;
unsigned long idx = inputPicname.find(".jpg");
-
- if(idx == std::string::npos ){
+ if (idx == std::string::npos) {
LogError << "The input is incorrect\n";
return 0;
}
@@ -205,20 +241,20 @@ int main(int argc, char* argv[])
// Read the test.pipeline file information
std::string pipelineConfigPath = "./test.pipeline";
std::string pipelineConfig = readpipelineconfig(pipelineConfigPath);
- if(pipelineConfig == ""){
+ if (pipelineConfig == "") {
return APP_ERR_COMM_INIT_FAIL;
}
std::string streamName = "detection";
// Create a new stream management MxStreamManager object and initialize it
auto mxStreamManager = std::make_shared();
APP_ERROR ret = mxStreamManager->InitManager(); // Initialize the flow management tool
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "Fail to init Stream manager.";
return ret;
}
// Load the information that pipeline gets to create a new stream business flow
ret = mxStreamManager->CreateMultipleStreams(pipelineConfig); // The incoming profile
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "Fail to creat Stream.";
return ret;
}
@@ -226,14 +262,14 @@ int main(int argc, char* argv[])
// Read the information of the picture into dataBuffer
MxStream::MxstDataInput dataBuffer;
ret = readfile(inputPicPath, dataBuffer);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << "Fail to read image file, ret = " << ret << ".";
return ret;
}
// The input information is passed through the SendData function to the specified working element module
// StreamName is the name of the business flow in the pipeline file
ret = mxStreamManager->SendData(streamName, 0, dataBuffer);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
delete dataBuffer.dataPtr;
LogError << "Fail to send data to stream, ret = " << ret << ".";
return ret;
@@ -243,37 +279,24 @@ int main(int argc, char* argv[])
std::vector keyVec = {"mxpi_tensorinfer0", "mxpi_imagedecoder0"};
std::vector output = mxStreamManager->GetProtobuf(streamName, 0, keyVec);
- // Mxpi_tensorinfer0 model post-processing plug-in output information
- auto objectList = std::static_pointer_cast(output[0].messagePtr);
- // mxpi_imagedecoder0 the image decoding plug-in output information
- auto mxpiVision = std::static_pointer_cast(output[1].messagePtr);
+ auto mxpiVisionList = std::static_pointer_cast(output[1].messagePtr);
auto tensorPackageList = google::protobuf::DynamicCastToGenerated
(output[0].messagePtr.get());
- int Pre_Height = mxpiVision.get()->visionvec(0).visioninfo().height();
- int Pre_Width = mxpiVision.get()->visionvec(0).visioninfo().width();
MxTools::MxpiTensorPackage tensorPackage = tensorPackageList->tensorpackagevec(0);
MxTools::MxpiTensor tensor = tensorPackage.tensorvec(0);
std::vector tensors;
- gettensors(*tensorPackageList,tensors);
+ GetTensors(*tensorPackageList, tensors);
std::vector ResizedImageInfos;
std::vector semanticSegInfos;
MxBase::ResizedImageInfo resizedImageInfo;
resizedImageInfo.heightResize = INPUT_MODEL_HEIGHT;
resizedImageInfo.widthResize = INPUT_MODEL_WIDTH;
ResizedImageInfos.push_back(resizedImageInfo);
- draw(tensors,semanticSegInfos,ResizedImageInfos,inputPicname);
- zoom("./data/mask_"+inputPicname,Pre_Height,Pre_Width);
- image_fusion(inputPicPath,"./data/mask_"+inputPicname,inputPicname);
+
+ SemanticsegOutput(tensors, ResizedImageInfos, semanticSegInfos);
+ SaveResult(mxpiVisionList, semanticSegInfos, inputPicname);
mxStreamManager->DestroyAllStreams();
return 0;
-}
-
-
-
-
-
-
-
-
+}
\ No newline at end of file
diff --git a/contrib/msame/README.md b/contrib/msame/README.md
index a9d2d5f0155b82737837c36cd214fbb5f8633754..db4d3d7b62fa1e8dbcb7ffc1ef574b0eeefd9c80 100644
--- a/contrib/msame/README.md
+++ b/contrib/msame/README.md
@@ -5,12 +5,21 @@
[msame-C++工具链接](https://gitee.com/ascend/tools/tree/master/msame)
### 1.1 支持的产品
-本项目以昇腾Atlas300I卡为主要的硬件平台。
+本项目以昇腾Atlas300卡为主要的硬件平台。
### 1.2 支持的版本
-MindX SDK mxVision:2.0.4
-mxVision version:2.0.4.b096
-Plat: linux aarch64
+
+推荐系统为ubuntu 18.04。
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+
+
+
+
### 1.3 适用场景
使用于单输入或多输入模型推理
@@ -43,14 +52,6 @@ Plat: linux aarch64
## 2 环境依赖
-推荐系统为ubuntu 18.04,环境依赖软件和版本如下表:
-
-| 软件名称 | 版本 |
-| -------- | ------ |
-| Python | 3.9.0 |
-| mxVision | 2.0.4 |
-| numpy | 1.21.2 |
-
软件依赖说明:
| 依赖软件 | 版本 | 说明 |
@@ -60,7 +61,8 @@ Plat: linux aarch64
在编译运行项目前,需要设置环境变量:
```
-source set_env.sh
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
## 3 依赖安装
diff --git a/contrib/msame/msame.py b/contrib/msame/msame.py
index 742345ed9771873a2082522139cd959df2f7ce8f..320ebdb846d9fb8370035afcc65184d8dbb78226 100644
--- a/contrib/msame/msame.py
+++ b/contrib/msame/msame.py
@@ -65,11 +65,11 @@ def infer(saves):
os.makedirs(_output)
m = sdk.model(_filepath, device_id)
index = 0
- for i in m.output_dtype:
+ for i in range(m.output_num):
types_output.append([])
- types_output[index].append(str(i))
+ types_output[index].append(str(m.output_dtype(i)))
index += 1
- types_input = str(m.input_dtype[0])
+ types_input = str(m.input_dtype(0))
multi = 1
f = []
if args.input != '':
@@ -82,7 +82,7 @@ def infer(saves):
else:
print("Error: file doesn't exit")
sys.exit(0)
- if len(m.input_shape) == 1:
+ if m.input_num == 1:
if os.path.isdir(args.input):
isf = 0
for fi in os.listdir(args.input):
@@ -167,12 +167,12 @@ def get_multi_dir(m, input_type, dirs):
def get_input_num(m, input_type):
inputsize = []
index = 0
- for j in m.input_shape:
+ for j in range(m.input_num):
inputsize.append(1)
- for k in j:
+ for k in m.input_shape(j):
inputsize[index] *= k
index += 1
- types_input = str(m.input_dtype[0])
+ types_input = str(m.input_dtype(0))
files_name = []
tis = []
t = []
@@ -215,23 +215,25 @@ def get_input_num(m, input_type):
def t_save(path, m, t, saves, types_output):
multi = 1
- for p in m.input_shape[0]:
+ for p in m.input_shape(0):
multi = multi * p
if t[0][0].shape[0] != multi :
print("Error : Please check the input shape and input dtype")
sys.exit(0)
- if len(m.input_shape) == 1:
- tim = sdk.Tensor(t[0][0])
+ if m.input_num == 1:
+ tim = sdk.Tensor(t[0][0].reshape(m.input_shape(0)))
tim.to_device(device_id)
else:
- if len(t) != len(m.input_shape):
+ if len(t) != m.input_num:
print("Error : Please check the input shape and input dtype")
sys.exit(0)
tim = []
+ idx = 0
for bs in t:
- bs = sdk.Tensor(bs[0])
+ bs = sdk.Tensor(bs[0].reshape(m.input_shape(idx)))
bs.to_device(device_id)
tim.append(bs)
+ idx += 1
last_time = time.time()
outputs = m.infer(tim)
now_time = time.time()
diff --git a/contrib/msame/set_env.sh b/contrib/msame/set_env.sh
deleted file mode 100644
index 7beb513e1fb9b95bcba42edcb5e70107ade66514..0000000000000000000000000000000000000000
--- a/contrib/msame/set_env.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) Huawei Technologies Co., Ltd. 2020-2021. All rights reserved.
-# Description: SDK uninstallation tool.
-# Author: MindX SDK
-# Create: 2020
-# History: NA
-
-path="${BASH_SOURCE[0]}"
-
-if [[ -f "$path" ]] && [[ "$path" =~ 'set_env.sh' ]];then
- sdk_path=$(cd $(dirname $path); pwd )
-
- if [[ -f "$sdk_path"/filelist.txt ]] && [[ -f "$sdk_path"/version.info ]];then
- export MX_SDK_HOME="$sdk_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"
- export LD_LIBRARY_PATH="${MX_SDK_HOME}/lib/modelpostprocessors":"${MX_SDK_HOME}/lib":"${MX_SDK_HOME}/opensource/lib":"${MX_SDK_HOME}/opensource/lib64":${LD_LIBRARY_PATH}
- export PYTHONPATH=${MX_SDK_HOME}/python:$PYTHONPATH
- else
- echo "The package is incomplete, please check it."
- fi
-else
- echo "There is no 'set_env.sh' to import"
-fi
-
diff --git a/contrib/mxBase_wheatDetection/README.md b/contrib/mxBase_wheatDetection/README.md
index bccb0c9b0a69d1352f532fcd1fa82f3d8cb9f56b..7464a5575192656b967eeb0f8f01a5e83adeca01 100644
--- a/contrib/mxBase_wheatDetection/README.md
+++ b/contrib/mxBase_wheatDetection/README.md
@@ -10,7 +10,7 @@ Init > ReadImage >Resize > Inference >PostProcess >DeInit
### 1.1 支持的产品
-支持昇腾310芯片
+支持昇腾310B芯片
### 1.2 软件方案介绍
@@ -58,13 +58,13 @@ Init > ReadImage >Resize > Inference >PostProcess >DeInit
## 2 环境依赖
-推荐系统为ubantu 18.04,环境依赖软件和版本如下表:
+推荐系统为ubantu 18.04。
| 软件名称 | 版本 |
-| :--------: | :------: |
-|Ubantu|18.04|
-|MindX SDK|2.0.4|
-|Python|3.9.2|
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
## 模型转换
@@ -88,20 +88,18 @@ python export.py --weights best_v3.pt --img 416 --batch 1 --simplify
**步骤3** 执行模型转换命令
(1) 配置环境变量
-#### 设置环境变量(请确认install_path路径是否正确)
+#### 设置环境变量
#### Set environment PATH (Please confirm that the install_path is correct).
-```c
-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:$PYTHONPATH
-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 #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
(2) 转换模型
```
-atc --model=./best_v3_t.onnx --framework=5 --output=./onnx_best_v3 --soc_version=Ascend310 --insert_op_conf=./aipp.aippconfig --input_shape="images:1,3,416,416" --output_type="Conv_1228:0:FP32;Conv_1276:0:FP32;Conv_1324:0:FP32" --out_nodes="Conv_1228:0;Conv_1276:0;Conv_1324:0"
+atc --model=./best_v3_t.onnx --framework=5 --output=./onnx_best_v3 --soc_version=Ascend310B1 --insert_op_conf=./aipp.aippconfig --input_shape="images:1,3,416,416" --output_type="Conv_1228:0:FP32;Conv_1276:0:FP32;Conv_1324:0:FP32" --out_nodes="Conv_1228:0;Conv_1276:0;Conv_1324:0"
```
## 使用场景概括
@@ -132,31 +130,13 @@ atc --model=./best_v3_t.onnx --framework=5 --output=./onnx_best_v3 --soc_version
**步骤1**
-修改CMakeLists.txt文件
-```
-将set(MX_SDK_HOME ${SDK安装路径}) 中的${SDK安装路径}替换为实际的SDK安装路径
-```
-
-**步骤2**
-
-ASCEND_HOME Ascend安装的路径,一般为/usr/local/Ascend
-LD_LIBRARY_PATH 指定程序运行时依赖的动态库查找路径,包括ACL,开源软件库,libmxbase.so以及libyolov3postprocess.so的路径
-```
-export ASCEND_HOME=/usr/local/Ascend
-export ASCEND_VERSION=nnrt/latest
-export ARCH_PATTERN=.
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib/modelpostprocessors:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:${LD_LIBRARY_PATH}
-```
-
-**步骤3**
-
cd到mxBase_wheatDetection目录下,执行如下编译命令:
```
bash build.sh
```
-**步骤4**
+**步骤2**
制定jpg图片进行推理,将需要进行推理的图片放入mxBase_wheatDetection目录下的新文件夹中,例如mxBase_wheatDetection/test。 eg:推理图片为xxx.jpg
cd 到mxBase_wheatDetection目录下
diff --git a/contrib/mxBase_wheatDetection/yolov5PostProcess/Yolov5PostProcess.h b/contrib/mxBase_wheatDetection/yolov5PostProcess/Yolov5PostProcess.h
index 0f775c352ff539e4d7e281b5e5768ab3eedc4c26..a0894fb8eb86ac1b3d14ad3249b9223d0642a852 100644
--- a/contrib/mxBase_wheatDetection/yolov5PostProcess/Yolov5PostProcess.h
+++ b/contrib/mxBase_wheatDetection/yolov5PostProcess/Yolov5PostProcess.h
@@ -61,7 +61,7 @@ public:
const std::vector &resizedImageInfos = {},
const std::map> ¶mMap = {}) override;
protected:
- bool IsValidTensors(const std::vector &tensors) const override;
+ bool IsValidTensors(const std::vector &tensors) const;
void ObjectDetectionOutput(const std::vector &tensors,
std::vector> &objectInfos,
diff --git "a/docs/quickStart/2-1\345\233\276\345\203\217\346\243\200\346\265\213sample\346\240\267\344\276\213.md" "b/docs/quickStart/2-1\345\233\276\345\203\217\346\243\200\346\265\213sample\346\240\267\344\276\213.md"
index 19c3634009e86086ece022c585d6745c45ed5f4e..399a1501b8ecb936648deb13016348b2dd546bbe 100644
--- "a/docs/quickStart/2-1\345\233\276\345\203\217\346\243\200\346\265\213sample\346\240\267\344\276\213.md"
+++ "b/docs/quickStart/2-1\345\233\276\345\203\217\346\243\200\346\265\213sample\346\240\267\344\276\213.md"
@@ -3,13 +3,16 @@
## 2.1.1 样例介绍
提供了一个图像检测sample样例,实现对本地图片进行YOLOv3目标检测,并把可视化结果保存到本地。
-[样例获取](https://gitee.com/ascend/mindxsdk-referenceapps/tree/master/tutorials/ImageDetectionSample)
+[样例获取](https://gitee.com/ascend/mindxsdk-referenceapps/tree/310B/tutorials/ImageDetectionSample)
## 2.1.2 运行前准备
参考[IDE开发环境搭建](./1-2IDE开发环境搭建.md)章节搭建好项目运行环境。
参考[Cmake介绍](./Cmake介绍.md)修改CMakeLists.txt文件。
### 2.1.2.1 模型转换
+
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
**步骤1** 在ModelZoo上下载YOLOv3模型。[下载地址](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4)
**步骤2** 将获取到的YOLOv3模型pb文件存放至:"样例项目所在目录/model/",如:
@@ -87,26 +90,14 @@ python pipeline在脚本main.py内部,其中模型路径和工程中model文

## 2.3 yolov3模型转换脚本
以下为yolov3模型转换脚本示例,使用时请确认参数中的路径是实际的相关路径。
-```
-#!/bin/bash
-
-# 该脚本用来将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).
+设置环境变量(请确认ascend_toolkit_path路径是否正确)
-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.
+```
+. ${ascend_toolkit_path}/set_env.sh
+```
+执行atc命令,转换YOLOv3模型
+```
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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制定了输出节点的顺序,需要与模型后处理适配。
```
diff --git "a/docs/quickStart/4-1\346\217\222\344\273\266\345\274\200\345\217\221\350\260\203\350\257\225\346\214\207\345\257\274.md" "b/docs/quickStart/4-1\346\217\222\344\273\266\345\274\200\345\217\221\350\260\203\350\257\225\346\214\207\345\257\274.md"
index d7bb9a70a6669e3bc78e6325cb508a5ca7dadba8..a062aa08017348157ed5f52a2fee4401be38a079 100644
--- "a/docs/quickStart/4-1\346\217\222\344\273\266\345\274\200\345\217\221\350\260\203\350\257\225\346\214\207\345\257\274.md"
+++ "b/docs/quickStart/4-1\346\217\222\344\273\266\345\274\200\345\217\221\350\260\203\350\257\225\346\214\207\345\257\274.md"
@@ -58,6 +58,7 @@ add_subdirectory(./mindx_sdk_plugin)

成功后生成so文件`/mindx_sdk_plugin/lib/plugins/libmxpi_sampleplugin.so`,也可通过IDE操作下载到本地方便查看
+> 生成的插件需自己手动在服务器上修改权限为440,避免运行失败

目录结构为

diff --git "a/docs/quickStart/4-4\346\250\241\345\236\213Tensor\346\225\260\346\215\256\345\244\204\347\220\206&\350\207\252\345\256\232\344\271\211\346\250\241\345\236\213\345\220\216\345\244\204\347\220\206.md" "b/docs/quickStart/4-4\346\250\241\345\236\213Tensor\346\225\260\346\215\256\345\244\204\347\220\206&\350\207\252\345\256\232\344\271\211\346\250\241\345\236\213\345\220\216\345\244\204\347\220\206.md"
index 2d705c404e8145463905eb5b6dd7a5b5ccdad919..13e8da68c07751880c370481da2b6a97520bf4aa 100644
--- "a/docs/quickStart/4-4\346\250\241\345\236\213Tensor\346\225\260\346\215\256\345\244\204\347\220\206&\350\207\252\345\256\232\344\271\211\346\250\241\345\236\213\345\220\216\345\244\204\347\220\206.md"
+++ "b/docs/quickStart/4-4\346\250\241\345\236\213Tensor\346\225\260\346\215\256\345\244\204\347\220\206&\350\207\252\345\256\232\344\271\211\346\250\241\345\236\213\345\220\216\345\244\204\347\220\206.md"
@@ -95,9 +95,9 @@ enum TensorDataType {
APP_ERROR CheckTensorValid() const;
```
## 样例说明
-参考[4-1插件开发调试指导](4-1插件开发调试指导.md)部署自定义插件样例,示例使用samplePluginPostProc作为工程名,远程目录名同样为samplePluginPostProc。
-- 更改mxVision/C++/main.cpp中94行所使用的pipeline为样例中的SamplePluginPost.pipeline
-- 更改mxVision/python/main.py中32行使用的pipeline为样例中的SamplePluginPost.pipeline
+参考[4-1插件开发调试指导](4-1插件开发调试指导.md)部署自定义插件样例,示例使用[samplePluginPostProc](../../tutorials/samplePluginPostProc/)作为工程名,远程目录名同样为samplePluginPostProc。
+- 更改mxVision/C++/main.cpp中所使用的pipeline为样例中的SamplePluginPost.pipeline
+- 更改mxVision/python/main.py中使用的pipeline为样例中的SamplePluginPost.pipeline
- 相比4-1样例中的SamplePlugin.pipeline,本样例中pipeline使用新后处理框架下的模型推理插件mxpi_tensorinfer输出原始Tensor至自定义插件并完成后处理示例。
>该文件位于样例根目录,但代码中实际指向mxVision/pipeline文件夹下,这是为了与使用原有Sample.pipeline的样例统一目录。实际使用时复制pipeline文件或更改代码中的路径均可
diff --git "a/docs/quickStart/mxBase\345\233\276\345\203\217\346\243\200\346\265\213\346\240\267\344\276\213\350\277\220\350\241\214.md" "b/docs/quickStart/mxBase\345\233\276\345\203\217\346\243\200\346\265\213\346\240\267\344\276\213\350\277\220\350\241\214.md"
index 7bdb4f1ec57fdbc1d2b4a11671056c376909954c..b665e7238af32e4adee5fbf7057c383a8fdc955f 100644
--- "a/docs/quickStart/mxBase\345\233\276\345\203\217\346\243\200\346\265\213\346\240\267\344\276\213\350\277\220\350\241\214.md"
+++ "b/docs/quickStart/mxBase\345\233\276\345\203\217\346\243\200\346\265\213\346\240\267\344\276\213\350\277\220\350\241\214.md"
@@ -11,6 +11,9 @@ Init > ReadImage >Resize > Inference >PostProcess >DeInit
set(MX_SDK_HOME ${SDK安装路径})需要将${SDK安装路径}替换为具体的SDK安装路径
```
### 2.1.2.1 模型转换
+
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
+
**步骤1** 在ModelZoo上下载YOLOv3模型。[下载地址](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4)
**步骤2** 将获取到的YOLOv3模型pb文件存放至:"项目目录中的models文件夹中"。
diff --git a/mxVision/GeneralTextRecognition/src/DBPostProcess/DBPostProcess.h b/mxVision/GeneralTextRecognition/src/DBPostProcess/DBPostProcess.h
index 09c05750563a54fb9ab1148cbc65395a6170c6f9..ffeb725bc5425ebe58077dfc9934bffd352e85b7 100644
--- a/mxVision/GeneralTextRecognition/src/DBPostProcess/DBPostProcess.h
+++ b/mxVision/GeneralTextRecognition/src/DBPostProcess/DBPostProcess.h
@@ -69,7 +69,7 @@ public:
const std::vector &resizedImageInfos = {},
const std::map> &configParamMap = {});
- bool IsValidTensors(const std::vector &tensors) const override;
+ bool IsValidTensors(const std::vector &tensors) const;
uint64_t GetCurrentVersion() override
{
diff --git a/mxVision/InferOfflineVideo/regular/README.zh.md b/mxVision/InferOfflineVideo/regular/README.zh.md
index ee629aff8aa49982f844feeb35999033134043ec..8cf18dd89cd4b3c78781fd50073d46c693285542 100644
--- a/mxVision/InferOfflineVideo/regular/README.zh.md
+++ b/mxVision/InferOfflineVideo/regular/README.zh.md
@@ -4,7 +4,7 @@
## 1 简介
-InferOfflineVideo基于mxVision SDK开发的参考用例,以昇腾Atlas300卡为主要的硬件平台,用于在视频流中检测出目标。
+InferOfflineVideo基于mxVision SDK开发的参考用例,以昇腾Atlas310B卡为主要的硬件平台,用于在视频流中检测出目标。
## 2 环境依赖
@@ -21,20 +21,30 @@ InferOfflineVideo基于mxVision SDK开发的参考用例,以昇腾Atlas300卡
| 软件名称 | 版本 |
| -------- | ------ |
-| cmake | 3.5.1+ |
-| mxVision | 0.2 |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
## 3 准备
**步骤1:** 参考安装教程《mxVision 用户指南》安装 mxVision SDK。
-**步骤2:** 配置 mxVision SDK 环境变量。
+**步骤2:** 配置环境变量。
-`export MX_SDK_HOME=${安装路径}/mxVision `
+```
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
+```
-注:本例中mxVision SDK安装路径为 /root/MindX_SDK。
+**步骤3:** 转换模型
+进入models目录,下载YOLOv3模型。[下载地址](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4), 将下载的模型放入models文件夹中
-**步骤3:** 在regular目录下创建目录models `mkdir models`, 根据《mxVision 用户指南》中“模型支持列表”章节获取Yolov3种类模型,并放到该目录下。
+执行转换命令
+```
+atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310B1 --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制定了输出节点的顺序,需要与模型后处理适配。
+```
+执行完模型转换脚本后,会生成相应的.om模型文件。
**步骤4:** 修改regular/pipeline/regular.pipeline文件:
@@ -46,6 +56,8 @@ InferOfflineVideo基于mxVision SDK开发的参考用例,以昇腾Atlas300卡
## 4 运行
+下载coco.names文件[链接](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/contrib/Collision/model/coco.names), 放在models目录下。
+
运行
`bash run.sh`
@@ -87,48 +99,6 @@ sudo apt-get install g++-aarch64-linux-gnu
```
bash build_zlib.sh
-
- build_zlib.sh脚本详情如下:
- #!/bin/bash
- # Simple log helper functions
- info() { echo -e "\033[1;34m[INFO ][Depend ] $1\033[1;37m" ; }
- warn() { echo >&2 -e "\033[1;31m[WARN ][Depend ] $1\033[1;37m" ; }
-
- #Build
- fileName="zlib"
- packageFQDN="zlib@1.2.11-h2"
- packageName="zlib"
- cd "$fileName" || {
- warn "cd to ./opensource/$fileName failed"
- exit 254
- }
-
- info "Building dependency $packageFQDN."
- chmod u+x configure
- export LDFLAGS="-Wl,-z,noexecstack,-z,relro,-z,now,-s"
- export CFLAGS="-fPIE -fstack-protector-all -fPIC -Wall -D_GLIBCXX_USE_CXX11_ABI=0"
- export CPPFLAGS="-fPIE -fstack-protector-all -fPIC -Wall -D_GLIBCXX_USE_CXX11_ABI=0"
- export CC=aarch64-linux-gnu-gcc
- ./configure \
- --prefix="$(pwd)/../tmp/$packageName" \
- --shared || {
- warn "Build $packageFQDN failed during autogen"
- exit 254
- }
-
- make -s -j || {
- warn "Build $packageFQDN failed during make"
- exit 254
- }
-
- make install -j || {
- warn "Build $packageFQDN failed during install"
- exit 254
- }
-
- cd ..
- info "Build $packageFQDN done."
-
```
- 编译完成后,将生成文件拷贝至sdk的opensource
diff --git a/contrib/ai_paint/python/run.sh b/mxVision/InferOfflineVideo/regular/build_zlib.sh
similarity index 37%
rename from contrib/ai_paint/python/run.sh
rename to mxVision/InferOfflineVideo/regular/build_zlib.sh
index 83eabcf5b25fb3ebe438a9586e5e693b7c904e52..330a1d13048b3d65dc2151630a4126a5c2667252 100644
--- a/contrib/ai_paint/python/run.sh
+++ b/mxVision/InferOfflineVideo/regular/build_zlib.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2020 Huawei Technologies Co., Ltd
+# Copyright 2023 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.
@@ -14,21 +14,41 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set -e
-
-CUR_PATH=$(cd "$(dirname "$0")" || { warn "Failed to check path/to/run.sh" ; exit ; } ; pwd)
-
# Simple log helper functions
-info() { echo -e "\033[1;34m[INFO ][MxStream] $1\033[1;37m" ; }
-warn() { echo >&2 -e "\033[1;31m[WARN ][MxStream] $1\033[1;37m" ; }
+info() { echo -e "\033[1;34m[INFO ][Depend] $1\033[1;37m" ; }
+warn() { echo >&2 -e "\033[1;31m[WARN ][Depend ] $1\033[1;37m" ; }
+
+#Build
+fileName="zlib"
+packageFQDN="zlib@1.2.11-h2"
+packageName="zlib"
+cd "$fileName" || {
+ warn "cd to ./opensource/$fileName failed"
+ exit 254
+}
+
+info "Building dependency $packageFQDN."
+chmod u+x configure
+export LDFLAGS="-Wl,-z,noexecstack,-z,relro,-z,now,-s"
+export CFLAGS="-fPIE -fstack-protector-all -fPIC -Wall -D_GLIBCXX_USE_CXX11_ABI=0"
+export CPPFLAGS="-fPIE -fstack-protector-all -fPIC -Wall -D_GLIBCXX_USE_CXX11_ABI=0"
+export CC=aarch64-linux-gnu-gcc
+./configure \
+ --prefix="$(pwd)/../tmp/$packageName" \
+ --shared || {
+ warn "Build $packageFQDN failed during autogen"
+ exit 254
+}
-export MX_SDK_HOME=${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:${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
+make -s -j || {
+ warn "Build $packageFQDN failed during make"
+ exit 254
+}
-# to set PYTHONPATH, import the StreamManagerApi.py
-export PYTHONPATH=$PYTHONPATH:${MX_SDK_HOME}/python
+make install -j || {
+ warn "Build $packageFQDN failed during install"
+ exit 254
+}
-python3 main.py
-exit 0
\ No newline at end of file
+cd ..
+info "Build $packageFQDN done."
\ No newline at end of file
diff --git a/tutorials/ImageDetectionSample/C++/model/aipp_yolov3_416_416.aippconfig b/mxVision/InferOfflineVideo/regular/models/aipp_yolov3_416_416.aippconfig
similarity index 100%
rename from tutorials/ImageDetectionSample/C++/model/aipp_yolov3_416_416.aippconfig
rename to mxVision/InferOfflineVideo/regular/models/aipp_yolov3_416_416.aippconfig
diff --git a/tutorials/ImageDetectionSample/C++/model/yolov3_tf_bs1_fp16.cfg b/mxVision/InferOfflineVideo/regular/models/yolov3_tf_bs1_fp16.cfg
similarity index 100%
rename from tutorials/ImageDetectionSample/C++/model/yolov3_tf_bs1_fp16.cfg
rename to mxVision/InferOfflineVideo/regular/models/yolov3_tf_bs1_fp16.cfg
diff --git a/mxVision/InferOfflineVideo/regular/pipeline/regular.pipeline b/mxVision/InferOfflineVideo/regular/pipeline/regular.pipeline
index 5c50515f0d695b48f4543cf5859cf6afd81741d1..f17c80396c5d03998a56b538147f38112b36a433 100644
--- a/mxVision/InferOfflineVideo/regular/pipeline/regular.pipeline
+++ b/mxVision/InferOfflineVideo/regular/pipeline/regular.pipeline
@@ -34,9 +34,9 @@
"mxpi_modelinfer0": {
"props": {
"dataSource": "mxpi_imageresize0",
- "modelPath": "./models/yolov3/yolov3_tf_bs1_fp16.om",
- "postProcessConfigPath": "./models/yolov3/yolov3_tf_bs1_fp16.cfg",
- "labelPath": "./models/yolov3/coco.names",
+ "modelPath": "./models/yolov3_tf_bs1_fp16.om",
+ "postProcessConfigPath": "./models/yolov3_tf_bs1_fp16.cfg",
+ "labelPath": "./models/coco.names",
"postProcessLibPath": "libMpYOLOv3PostProcessor.so",
"deviceId": "0"
},
diff --git a/mxVision/MediaCodec/Ascend310/README.zh.md b/mxVision/MediaCodec/Ascend310/README.zh.md
index bd9d3656a1c499790e5ef61e46ecb75193844654..43d6ae60d2e0fceb07f4e411dfb1f2beef6d7742 100644
--- a/mxVision/MediaCodec/Ascend310/README.zh.md
+++ b/mxVision/MediaCodec/Ascend310/README.zh.md
@@ -25,17 +25,19 @@
| 软件名称 | 版本 |
| -------- | ------ |
| cmake | 3.5.1+ |
-| mxVision | 0.2 |
+
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
## 3.预准备
-脚本转换为unix格式以及添加脚本执行权限
+脚本转换为unix格式
```bash
sed -i 's/\r$//' ./script/*.sh
-chmod +x ./script/*.sh
```
+给script目录下的脚本添加执行权限
+
## 4.编译
- 配置环境变量
diff --git a/mxVision/MediaCodec/Ascend310/pipeline/test.pipeline b/mxVision/MediaCodec/Ascend310/pipeline/test.pipeline
index a2e139f3ad88a114f64b64ac616eefc3934aceb8..cfb0c762e596607c4aa45904008ce0f4adb392f9 100644
--- a/mxVision/MediaCodec/Ascend310/pipeline/test.pipeline
+++ b/mxVision/MediaCodec/Ascend310/pipeline/test.pipeline
@@ -28,7 +28,6 @@
"deviceId": "xxx",
"vdecChannelId": "xxx"
},
- "former": "mxpi_rtspsrcxxx",
"next": "queue1"
},
@@ -83,8 +82,7 @@
},
"fakesinkxxx": {
- "factory": "fakesink",
- "former": "mxpi_videoencoderxxx"
+ "factory": "fakesink"
}
}
}
\ No newline at end of file
diff --git a/mxVision/MultiThread/C++/README.zh.md b/mxVision/MultiThread/C++/README.zh.md
index bf748e800ad3f885633c0e8c923655cd8ede8709..307a9fa053e755a81dcc36366d1582aa6a028cc7 100644
--- a/mxVision/MultiThread/C++/README.zh.md
+++ b/mxVision/MultiThread/C++/README.zh.md
@@ -48,11 +48,20 @@
### 3.3 预准备
-脚本转换为unix格式以及添加脚本执行权限
-
+脚本转换为unix格式
```bash
sed -i 's/\r$//' ./*.sh
-chmod +x ./*.sh
+```
+给script目录下的脚本添加执行权限
+
+### 3.4 模型转换
+yolov3模型下载参考华为昇腾社区[ModelZoo](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4)
+使用以下命令进行转换,请注意aipp配置文件名,此处使用的为自带sample中的相关文件({Mind_SDK安装路径}/mxVision/samples/mxVision/models/yolov3/)
+
+```
+atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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"
+
+# 说明:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
```
## 4.编译
diff --git a/mxVision/MultiThread/python/README.zh.md b/mxVision/MultiThread/python/README.zh.md
index baee4c3186328a2b33097dc55d39d26116f9658b..db43efab9ad01b33c9ad942c37070fcb05c88b4b 100644
--- a/mxVision/MultiThread/python/README.zh.md
+++ b/mxVision/MultiThread/python/README.zh.md
@@ -20,18 +20,20 @@
| 软件名称 | 版本 |
| -------- | ------ |
| cmake | 3.5.1+ |
-| mxVision | 0.2 |
| Python | 3.9.2 |
| opencv-python | 3.4+ |
| mmcv | - |
+
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
+
## 3.预准备
-脚本转换为unix格式以及添加脚本执行权限
+脚本转换为unix格式
```bash
sed -i 's/\r$//' ./*.sh
-chmod +x ./*.sh
```
+给script目录下的脚本添加执行权限
配置环境变量
@@ -39,6 +41,18 @@ chmod +x ./*.sh
export MX_SDK_HOME=${安装路径}/mxVision
```
+## 4 模型转换
+
+yolov3模型下载参考华为昇腾社区[ModelZoo](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4)
+使用以下命令进行转换,请注意aipp配置文件名,此处使用的为自带sample中的相关文件({Mind_SDK安装路径}/mxVision/samples/mxVision/models/yolov3/)
+
+```
+atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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"
+
+# 说明:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
+```
+
+
## 5.运行
### 5.1 运行前配置
diff --git a/mxVision/PPYOLOEPlusDetection/README.md b/mxVision/PPYOLOEPlusDetection/README.md
index 918d4df7808d3d3c884712aecea13717072c15e4..ba1c5e3724567a15d045d473ae352e521ade2f3d 100644
--- a/mxVision/PPYOLOEPlusDetection/README.md
+++ b/mxVision/PPYOLOEPlusDetection/README.md
@@ -10,7 +10,7 @@ PPYOLOE+ 目标检测后处理插件基于 MindX SDK 开发,对图片中的不
### 1.2 支持的版本
-支持的SDK版本为 5.0.RC1, CANN 版本为 6.0.RC1。
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
### 1.3 软件方案介绍
diff --git a/mxVision/VideoQualityDetection/pipeline/VideoQualityDetection.pipeline b/mxVision/VideoQualityDetection/pipeline/VideoQualityDetection.pipeline
index e35095e0b0ae392d53770f3ea2e6750b5463f63c..9c6ac11ed9665e4f18f1dd0e88a2124f977b9b48 100644
--- a/mxVision/VideoQualityDetection/pipeline/VideoQualityDetection.pipeline
+++ b/mxVision/VideoQualityDetection/pipeline/VideoQualityDetection.pipeline
@@ -18,7 +18,6 @@
"outputImageFormat": "YUV420SP_NV12",
"vdecChannelId": "0"
},
- "former": "mxpi_rtspsrc0",
"next": "mxpi_qualitydetection0"
},
"mxpi_qualitydetection0": {
diff --git a/mxVision/VideoQualityDetection/run.sh b/mxVision/VideoQualityDetection/run.sh
index 5b010023bb931dd04d2f9534a76c17be8c02538f..a7a985eb9a69fbdb229e21f9c335f6ffaffe4c0e 100644
--- a/mxVision/VideoQualityDetection/run.sh
+++ b/mxVision/VideoQualityDetection/run.sh
@@ -15,7 +15,6 @@
# limitations under the License.
set -e
-
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":${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"
@@ -23,7 +22,7 @@ export GST_PLUGIN_PATH="${MX_SDK_HOME}/opensource/lib/gstreamer-1.0":"${MX_SDK_H
# complie
g++ main.cpp -I "${MX_SDK_HOME}/include/" -I "${MX_SDK_HOME}/opensource/include/" -L "${MX_SDK_HOME}/lib/" \
-L "${MX_SDK_HOME}/opensource/lib/" -std=c++11 -pthread -D_GLIBCXX_USE_CXX11_ABI=0 -Dgoogle=mindxsdk_private -fPIC -fstack-protector-all \
--g -Wl,-z,relro,-z,now,-z,noexecstack -pie -Wall -lglog -lmxbase -lstreammanager -lcpprest -lprotobuf -o main
+-g -Wl,-z,relro,-z,now,-z,noexecstack -pie -Wall -lglog -lmxbase -lstreammanager -lcpprest -lmindxsdk_protobuf -o main
# run
./main
diff --git a/mxVision/YOLOv7Detection/README.md b/mxVision/YOLOv7Detection/README.md
index 8e7db48540cc97e5622d44b999ccb5a3ee7087bc..090d9ec2814faefc9b8c36300eaac28a46211b27 100644
--- a/mxVision/YOLOv7Detection/README.md
+++ b/mxVision/YOLOv7Detection/README.md
@@ -10,7 +10,7 @@ YOLOv7 目标检测后处理插件基于 MindX SDK 开发,对图片中的不
### 1.2 支持的版本
-支持的SDK版本为 5.0.RC1, CANN 版本为 6.0.RC1。
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
### 1.3 软件方案介绍
diff --git a/tutorials/DvppWrapperSample/CMakeLists.txt b/tutorials/DvppWrapperSample/CMakeLists.txt
index 45ae59c98b62d6f1937b86d9d095b12efe706051..a888755d5852ae4ee377b5bf7b16047ba33d54f7 100644
--- a/tutorials/DvppWrapperSample/CMakeLists.txt
+++ b/tutorials/DvppWrapperSample/CMakeLists.txt
@@ -15,7 +15,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack -pie")
-set(MX_SDK_HOME ${SDK安装路径})
+set(MX_SDK_HOME "$ENV{MX_SDK_HOME}")
# Header path
include_directories(
diff --git a/tutorials/DvppWrapperSample/README.md b/tutorials/DvppWrapperSample/README.md
index ce28629639554f0c26d40f03bfcda031a494a9f3..b6f9919091dd3ef4d8fcd6a4ad1107482a74a545 100644
--- a/tutorials/DvppWrapperSample/README.md
+++ b/tutorials/DvppWrapperSample/README.md
@@ -4,6 +4,14 @@
## 介绍
提供DvppWrapper接口样例,对图片实现编码,解码,缩放,抠图,以及把样例图片编码为264视频文件。
+## 支持的版本
+
+| 软件名称 | 版本 |
+| -------- | ------ |
+| python | 3.9.2 |
+| MindX SDK | 5.0RC1 |
+| CANN | 310使用6.3.RC1
310B使用6.2.RC1 |
+
## 准备
打开百度图片https://image.baidu.com/,输入任何关键字,然后搜索,右击任意图片,点击另存为。把图片保存在DvppWrapperSample目录下。
@@ -11,13 +19,9 @@
**步骤1** 修改CMakeLists.txt文件 将set(MX_SDK_HOME ${SDK安装路径}) 中的${SDK安装路径}替换为实际的SDK安装路径
**步骤2** 设置环境变量
-ASCEND_HOME Ascend安装的路径,一般为/usr/local/Ascend
-LD_LIBRARY_PATH 指定程序运行时依赖的动态库查找路径
```
-export ASCEND_HOME=/usr/local/Ascend
-export ASCEND_VERSION=nnrt/latest
-export ARCH_PATTERN=.
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib/modelpostprocessors:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:${LD_LIBRARY_PATH}
+. /usr/local/Ascend/ascend-toolkit/set_env.sh #toolkit默认安装路径,根据实际安装路径修改
+. ${SDK_INSTALL_PATH}/mxVision/set_env.sh
```
**步骤3** cd到DvppWrapperSample目录下,执行如下编译命令:
diff --git a/tutorials/DvppWrapperSample/main.cpp b/tutorials/DvppWrapperSample/main.cpp
index 6fa02aab3c9d0027688a0823c232cf796dc72e32..0e1daa12bcb06fac8156be5cd040a087838e7c27 100644
--- a/tutorials/DvppWrapperSample/main.cpp
+++ b/tutorials/DvppWrapperSample/main.cpp
@@ -23,7 +23,7 @@ using namespace std;
namespace {
using namespace MxBase;
- const uint32_t ENCODE_TEST_DEVICE_ID = 1;
+ const uint32_t ENCODE_TEST_DEVICE_ID = 0;
const uint32_t ENCODE_IMAGE_HEIGHT = 1080;
const uint32_t ENCODE_IMAGE_WIDTH = 1920;
const uint32_t ENCODE_FRAME_INTERVAL = 25;
@@ -173,7 +173,7 @@ namespace {
uint32_t x1 = (uint32_t)input.width * THREE_QUARTER;
uint32_t y1 = (uint32_t)input.height * THREE_QUARTER;
uint32_t y0 = (uint32_t)input.height * ONE_QUARTER;
- CropRoiConfig config{x0, x1, y1, y0};
+ CropRoiConfig config {x0, x1, y1, y0};
ret = g_dvppCommon->VpcCrop(input, output, config);
if (ret != APP_ERR_OK) {
LogError << "Failed to crop file: " << filepath;
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 76%
rename from tutorials/ImageDetectionSample/C++/README.md
rename to tutorials/ImageDetectionSample/cpp/README.md
index 3bc16d2ee3d93e208ce8d943ca81d0aad2423587..92bae957350f5a8208cb97a13cd5964200b99638 100644
--- a/tutorials/ImageDetectionSample/C++/README.md
+++ b/tutorials/ImageDetectionSample/cpp/README.md
@@ -12,27 +12,21 @@
**步骤1** 在ModelZoo上下载YOLOv3模型。[下载地址](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4)
-**步骤2** 将获取到的YOLOv3模型pb文件存放至:"样例项目所在目录/model/"。
+**步骤2** 将获取到的YOLOv3模型pb文件和coco.names存放至拷贝到model目录下。
**步骤3** 模型转换
-
-在pb文件所在目录下执行一下命令
+设置环境变量(请确认ascend_toolkit_path路径是否正确)
```
-# 设置环境变量(请确认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.
+. ${ascend_toolkit_path}/set_env.sh
+```
+执行atc命令,转换YOLOv3模型
+```
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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制定了输出节点的顺序,需要与模型后处理适配。
+
+# 说明1:out_nodes制定了输出节点的顺序,需要与模型后处理适配。
+# 说明2:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
```
执行完模型转换脚本后,会生成相应的.om模型文件。 执行完模型转换脚本后,会生成相应的.om模型文件。
@@ -65,8 +59,8 @@ atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_ver
"props": {
"dataSource": "mxpi_tensorinfer0",
"postProcessConfigPath": "model/yolov3_tf_bs1_fp16.cfg",
- "labelPath": "${SDK安装路径}/samples/mxVision/models/yolov3/coco.names",
- "postProcessLibPath": "${libyolov3postprocess.so路径}"
+ "labelPath": "${SDK安装路径}/samples/mxVision/models/yolov3/yolov3.names",
+ "postProcessLibPath": "${SDK安装路径}/lib/modelpostprocessors/libyolov3postprocess.so"
},
"factory": "mxpi_objectpostprocessor",
"next": "appsink0"
@@ -123,11 +117,10 @@ Scanning dependencies of target sample
```
### 执行脚本
-
-执行run.sh脚本前请先确认可执行文件sample已生成。
+准备一张待检测图片,放到项目目录下命名为test.jpg
+执行run.sh脚本前请先确认可执行文件sample已生成,并给脚本添加可执行权限。
```
-chmod +x run.sh
bash run.sh
```
diff --git a/tutorials/ImageDetectionSample/C++/main.cpp b/tutorials/ImageDetectionSample/cpp/main.cpp
similarity index 91%
rename from tutorials/ImageDetectionSample/C++/main.cpp
rename to tutorials/ImageDetectionSample/cpp/main.cpp
index a6bf9868c5175e16000539d40520d54bd431be23..b9e78b10d89620efaf2af016286c3c2cff4a242c 100644
--- a/tutorials/ImageDetectionSample/C++/main.cpp
+++ b/tutorials/ImageDetectionSample/cpp/main.cpp
@@ -30,20 +30,20 @@ static APP_ERROR ReadFile(const std::string& filePath, MxStream::MxstDataInput&
{
char c[PATH_MAX + 1] = {0x00};
size_t count = filePath.copy(c, PATH_MAX +1);
- if(count != filePath.length()){
+ if (count != filePath.length()) {
LogError << "Failed to copy file path(" << c << ").";
return APP_ERR_COMM_FAILURE;
}
// 得到文件的绝对路径
char path[PATH_MAX + 1] = { 0x00 };
- if((strlen(c) > PATH_MAX) || (realpath(c, path) == nullptr)){
+ if ((strlen(c) > PATH_MAX) || (realpath(c, path) == nullptr)) {
LogError << "Failed to get image, the image path is (" << filePath << ").";
return APP_ERR_COMM_NO_EXIST;
}
// 打开文件
// path里面的值是test.jpg文件的绝对路径
FILE *fp = fopen(path, "rb");
- if(fp == nullptr){
+ if (fp == nullptr) {
LogError << "Failed to open file (" << path << ").";
return APP_ERR_COMM_OPEN_FAIL;
}
@@ -52,17 +52,17 @@ static APP_ERROR ReadFile(const std::string& filePath, MxStream::MxstDataInput&
long fileSize = ftell(fp);
fseek(fp, 0, SEEK_SET);
// 若文件内容不为空,把文件内容写入dataBuffer中
- if(fileSize > 0){
+ if (fileSize > 0) {
dataBuffer.dataSize = fileSize;
dataBuffer.dataPtr = new (std::nothrow) uint32_t[fileSize];
- if(dataBuffer.dataPtr == nullptr){
+ if (dataBuffer.dataPtr == nullptr) {
LogError << "allocate memory with \"new uint32_t\" failed.";
fclose(fp);
return APP_ERR_COMM_FAILURE;
}
uint32_t readRet = fread(dataBuffer.dataPtr, 1, fileSize, fp);
- if(readRet <= 0){
+ if (readRet <= 0) {
fclose(fp);
return APP_ERR_COMM_READ_FAIL;
}
@@ -78,7 +78,7 @@ static std::string ReadPipelineConfig(const std::string &pipelineConfigPath)
{
// 用二进制方式打开文件
std::ifstream file(pipelineConfigPath.c_str(), std::ifstream::binary);
- if(!file){
+ if (!file) {
LogError << pipelineConfigPath << " file is not exists";
return "";
}
@@ -112,7 +112,7 @@ static APP_ERROR SaveResult(const std::shared_ptr &mxpi
memorySrc.ptrData = (void*)visionData.dataptr();
MxBase::MemoryData memoryDst(visionData.datasize(), MxBase::MemoryData::MEMORY_HOST_NEW);
APP_ERROR ret = MxBase::MemoryHelper::MxbsMallocAndCopy(memoryDst, memorySrc);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << "Fail to malloc and copy host memory.";
return ret;
}
@@ -130,7 +130,7 @@ static APP_ERROR SaveResult(const std::shared_ptr &mxpi
const uint32_t yOffset = 10;
const uint32_t lineType = 8;
const float fontScale = 1.0;
- for(uint32_t i = 0; i < (uint32_t)mxpiObjectList->objectvec_size(); i++){
+ for (uint32_t i = 0; i < (uint32_t)mxpiObjectList->objectvec_size(); i++) {
auto& object = mxpiObjectList->objectvec(i);
uint32_t y0 = object.y0();
uint32_t x0 = object.x0();
@@ -140,13 +140,12 @@ static APP_ERROR SaveResult(const std::shared_ptr &mxpi
cv::putText(imgBgr, object.classvec(0).classname(), cv::Point(x0 + xOffset, y0 + yOffset),
cv::FONT_HERSHEY_SIMPLEX, fontScale, green, thickness, lineType);
// 绘制矩形
- cv::rectangle(imgBgr,cv::Rect(x0, y0, x1 - x0, y1 - y0),
- green, thickness);
+ cv::rectangle(imgBgr, cv::Rect(x0, y0, x1 - x0, y1 - y0), green, thickness);
}
// 把Mat类型的图像矩阵保存为图像到指定位置。
cv::imwrite("./result.jpg", imgBgr);
ret = MxBase::MemoryHelper::MxbsFree(memoryDst);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << "Fail to MxbsFree memory.";
return ret;
}
@@ -156,16 +155,16 @@ static APP_ERROR SaveResult(const std::shared_ptr &mxpi
// 打印protobuf信息
static APP_ERROR PrintInfo(std::vector outPutInfo)
{
- if(outPutInfo.size() == 0){
+ if (outPutInfo.size() == 0) {
LogError << "outPutInfo size is 0";
return APP_ERR_ACL_FAILURE;
}
- if(outPutInfo[0].errorCode != APP_ERR_OK){
+ if (outPutInfo[0].errorCode != APP_ERR_OK) {
LogError << "GetProtobuf error. errorCode=" << outPutInfo[0].errorCode;
return outPutInfo[0].errorCode;
}
- for(MxStream::MxstProtobufOut info : outPutInfo){
+ for (MxStream::MxstProtobufOut info : outPutInfo) {
LogInfo << "errorCode=" << info.errorCode;
LogInfo << "key=" << info.messageName;
LogInfo << "value=" << info.messagePtr.get()->DebugString();
@@ -179,7 +178,7 @@ int main(int argc, char* argv[])
// 读取test.pipeline文件信息
std::string pipelineConfigPath = "./test.pipeline";
std::string pipelineConfig = ReadPipelineConfig(pipelineConfigPath);
- if(pipelineConfig == ""){
+ if (pipelineConfig == "") {
return APP_ERR_COMM_INIT_FAIL;
}
@@ -187,13 +186,13 @@ int main(int argc, char* argv[])
// 新建一个流管理MxStreamManager对象并初始化
auto mxStreamManager = std::make_shared();
APP_ERROR ret = mxStreamManager->InitManager();
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "Fail to init Stream manager.";
return ret;
}
// 加载pipeline得到的信息,创建一个新的stream业务流
ret = mxStreamManager->CreateMultipleStreams(pipelineConfig);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "Fail to creat Stream.";
return ret;
}
@@ -201,14 +200,14 @@ int main(int argc, char* argv[])
// 将图片的信息读取到dataBuffer中
MxStream::MxstDataInput dataBuffer;
ret = ReadFile("./test.jpg", dataBuffer);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << "Fail to read image file, ret = " << ret << ".";
return ret;
}
// 通过SendData函数传递输入信息到指定的工作元件模块
// streamName是pipeline文件中业务流名称;inPluginId为输入端口编号,对应输入元件的编号
ret = mxStreamManager->SendData(streamName, 0, dataBuffer);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
delete dataBuffer.dataPtr;
LogError << "Fail to send data to stream, ret = " << ret << ".";
return ret;
@@ -218,7 +217,7 @@ int main(int argc, char* argv[])
std::vector keyVec = {"mxpi_objectpostprocessor0", "mxpi_imagedecoder0"};
std::vector output = mxStreamManager->GetProtobuf(streamName, 0, keyVec);
ret = PrintInfo(output);
- if(ret != APP_ERR_OK){
+ if (ret != APP_ERR_OK) {
LogError << "Fail to print the info of output, ret = " << ret << ".";
return ret;
}
@@ -232,11 +231,3 @@ int main(int argc, char* argv[])
mxStreamManager->DestroyAllStreams();
return 0;
}
-
-
-
-
-
-
-
-
diff --git a/tutorials/ImageDetectionSample/cpp/model/aipp_yolov3_416_416.aippconfig b/tutorials/ImageDetectionSample/cpp/model/aipp_yolov3_416_416.aippconfig
new file mode 100644
index 0000000000000000000000000000000000000000..94efa1fdcc72ad5a435a7092d26380eb35ed8ee4
--- /dev/null
+++ b/tutorials/ImageDetectionSample/cpp/model/aipp_yolov3_416_416.aippconfig
@@ -0,0 +1,25 @@
+aipp_op {
+aipp_mode : static
+related_input_rank : 0
+input_format : YUV420SP_U8
+src_image_size_w : 416
+src_image_size_h : 416
+crop : false
+csc_switch : true
+rbuv_swap_switch : false
+matrix_r0c0 : 256
+matrix_r0c1 : 0
+matrix_r0c2 : 359
+matrix_r1c0 : 256
+matrix_r1c1 : -88
+matrix_r1c2 : -183
+matrix_r2c0 : 256
+matrix_r2c1 : 454
+matrix_r2c2 : 0
+input_bias_0 : 0
+input_bias_1 : 128
+input_bias_2 : 128
+var_reci_chn_0 : 0.0039216
+var_reci_chn_1 : 0.0039216
+var_reci_chn_2 : 0.0039216
+}
diff --git a/tutorials/ImageDetectionSample/cpp/model/yolov3_tf_bs1_fp16.cfg b/tutorials/ImageDetectionSample/cpp/model/yolov3_tf_bs1_fp16.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e7da9ec45dc4043956e8789e6276719a8d40af59
--- /dev/null
+++ b/tutorials/ImageDetectionSample/cpp/model/yolov3_tf_bs1_fp16.cfg
@@ -0,0 +1,10 @@
+CLASS_NUM=80
+BIASES_NUM=18
+BIASES=10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326
+SCORE_THRESH=0.3
+OBJECTNESS_THRESH=0.3
+IOU_THRESH=0.45
+YOLO_TYPE=3
+ANCHOR_DIM=3
+MODEL_TYPE=0
+RESIZE_FLAG=0
diff --git a/tutorials/ImageDetectionSample/C++/run.sh b/tutorials/ImageDetectionSample/cpp/run.sh
similarity index 100%
rename from tutorials/ImageDetectionSample/C++/run.sh
rename to tutorials/ImageDetectionSample/cpp/run.sh
diff --git a/tutorials/ImageDetectionSample/C++/test.pipeline b/tutorials/ImageDetectionSample/cpp/test.pipeline
similarity index 98%
rename from tutorials/ImageDetectionSample/C++/test.pipeline
rename to tutorials/ImageDetectionSample/cpp/test.pipeline
index 537631b9cbcd00a56d742732296e6233fc090a1e..bbf2573b96e1534ff8a999823b6faf7b33b4afe5 100644
--- a/tutorials/ImageDetectionSample/C++/test.pipeline
+++ b/tutorials/ImageDetectionSample/cpp/test.pipeline
@@ -38,7 +38,7 @@
"props": {
"dataSource": "mxpi_tensorinfer0",
"postProcessConfigPath": "model/yolov3_tf_bs1_fp16.cfg",
- "labelPath": "${SDK安装路径}/samples/mxVision/models/yolov3/coco.names",
+ "labelPath": "${SDK安装路径}/samples/mxVision/models/yolov3/yolov3.names",
"postProcessLibPath": "${libyolov3postprocess.so路径}"
},
"factory": "mxpi_objectpostprocessor",
diff --git a/tutorials/ImageDetectionSample/python/README.md b/tutorials/ImageDetectionSample/python/README.md
index 357cbd240c849b38ef863db3877efe835429bf13..6e1babcb60a807b3cf8598ec516150494db716a5 100644
--- a/tutorials/ImageDetectionSample/python/README.md
+++ b/tutorials/ImageDetectionSample/python/README.md
@@ -20,12 +20,13 @@ bash model_conversion.sh
将main.py 文件中 mxpi_objectpostprocessor0插件中的postProcessLibPath路径中的${SDK安装路径} 替换为自己的SDK安装路径
### 配置环境变量
-将${SDK安装路径}替换为自己的SDK安装路径; 将${MX_SDK_HOME}替换成对应路径
-
```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
+. ${ascend_toolkit_path}/set_env.sh
+. ${SDK-path}/set_env.sh
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64
+# 环境变量介绍
+SDK-path: SDK mxVision 安装路径
+ascend-toolkit-path: CANN 安装路径
```
### 运行
diff --git a/tutorials/ImageDetectionSample/python/main.py b/tutorials/ImageDetectionSample/python/main.py
index 4449290841771689f2862b247f3c7b426580b90d..e2dee911d1527d6e190c4ea7b95b0d66a551c0bf 100644
--- a/tutorials/ImageDetectionSample/python/main.py
+++ b/tutorials/ImageDetectionSample/python/main.py
@@ -74,7 +74,7 @@ if __name__ == '__main__':
"props": {
"dataSource": "mxpi_tensorinfer0",
"postProcessConfigPath": "models/yolov3_tf_bs1_fp16.cfg",
- "labelPath": "models/coco.names",
+ "labelPath": "${SDK安装路径}/samples/mxVision/models/yolov3/yolov3.names",
"postProcessLibPath": "${SDK安装路径}/lib/modelpostprocessors/libyolov3postprocess.so"
},
"factory": "mxpi_objectpostprocessor",
@@ -160,12 +160,13 @@ if __name__ == '__main__':
'confidence': round(results.classVec[0].confidence, 4),
'text': results.classVec[0].className}
- text = "{}{}".format(str(bboxes['confidence']), " ")
+ text = "{}{}".format(str(bboxes.get('confidence')), " ")
- for item in bboxes['text']:
+ for item in bboxes.get('text'):
text += item
- cv2.putText(img, text, (bboxes['x0'] + 10, bboxes['y0'] + 10), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0, 0), 1)
- cv2.rectangle(img, (bboxes['x0'], bboxes['y0']), (bboxes['x1'], bboxes['y1']), (255, 0, 0), 2)
+ cv2.putText(img, text, (bboxes.get('x0') + 10, \
+ bboxes.get('y0') + 10), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0, 0), 1)
+ cv2.rectangle(img, (bboxes.get('x0'), bboxes.get('y0')), (bboxes.get('x1'), bboxes.get('y1')), (255, 0, 0), 2)
cv2.imwrite("./result.jpg", img)
diff --git a/tutorials/ImageDetectionSample/python/models/model_conversion.sh b/tutorials/ImageDetectionSample/python/models/model_conversion.sh
index deb96e4203bbb7d0043cb379430e6809cad833f4..176cc143084b6684a35284f32724cbdd932b2f87 100644
--- a/tutorials/ImageDetectionSample/python/models/model_conversion.sh
+++ b/tutorials/ImageDetectionSample/python/models/model_conversion.sh
@@ -19,18 +19,11 @@
# 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
-
+source ${ascend_toolkit_path}/set_env.sh
# 执行,转换YOLOv3模型
# Execute, transform YOLOv3 model.
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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
+# 说明1:out_nodes制定了输出节点的顺序,需要与模型后处理适配。
+# 说明2:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
\ No newline at end of file
diff --git a/tutorials/OsdSample/C++/CMakeLists.txt b/tutorials/OsdSample/C++/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..30320d7edd1ae199d0aa8b73f242863d1c060937
--- /dev/null
+++ b/tutorials/OsdSample/C++/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2019-2023. All rights reserved.
+
+# CMake lowest version requirement
+cmake_minimum_required(VERSION 3.5.0)
+
+# project information
+project(OsdSample)
+
+set(MX_SDK_HOME "$ENV{MX_SDK_HOME}")
+
+if (NOT DEFINED ENV{MX_SDK_HOME})
+ string(REGEX REPLACE "(.*)/(.*)/(.*)/(.*)" "\\1" MX_SDK_HOME ${CMAKE_CURRENT_SOURCE_DIR})
+ message(STATUS "set default MX_SDK_HOME: ${MX_SDK_HOME}")
+else ()
+ message(STATUS "env MX_SDK_HOME: ${MX_SDK_HOME}")
+endif()
+
+# Compile options
+add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
+add_definitions(-Dgoogle=mindxsdk_private)
+add_compile_options(-std=c++11 -fPIC -fstack-protector-all -Wall)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+set(CMAKE_CXX_FLAGS_DEBUG "-g")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack -pie")
+
+# Header path
+include_directories(
+ ${MX_SDK_HOME}/include/
+ ${MX_SDK_HOME}/opensource/include/
+)
+
+# add host lib path
+link_directories(
+ ${MX_SDK_HOME}/lib/
+ ${MX_SDK_HOME}/lib/modelpostprocessors
+ ${MX_SDK_HOME}/opensource/lib/
+ ${MX_SDK_HOME}/opensource/lib64/
+)
+
+add_executable(main main.cpp)
+
+target_link_libraries(main glog mxbase plugintoolkit mxpidatatype streammanager cpprest mindxsdk_protobuf)
+
+install(TARGETS main DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+
+
+
+
+
diff --git a/contrib/FireDetection/envs/env.sh b/tutorials/OsdSample/C++/run.sh
similarity index 52%
rename from contrib/FireDetection/envs/env.sh
rename to tutorials/OsdSample/C++/run.sh
index c5b583f7aab2db65526a6c06175f24d8195f38a7..f1e9844bbe10c43bcc4a26e4cd241c0439981b56 100644
--- a/contrib/FireDetection/envs/env.sh
+++ b/tutorials/OsdSample/C++/run.sh
@@ -1,4 +1,5 @@
-# Copyright(C) 2021. Huawei Technologies Co.,Ltd. All rights reserved.
+#!/bin/bash
+# Copyright 2023 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.
@@ -10,8 +11,26 @@
# 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.
+# limitations under the License.mitations under the License.
-export MX_SDK_HOME="${SDK安装路径}/mxVision"
-export LD_LIBRARY_PATH="${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${LD_LIBRARY_PATH}"
-export PYTHONPATH="${MX_SDK_HOME}/python:${PYTHONPATH}"
+set -e
+
+current_folder="$( cd "$(dirname "$0")" ;pwd -P )"
+
+function build() {
+ build_path=$current_folder/build
+ if [ -d "$build_path" ]; then
+ rm -rf "$build_path"
+ else
+ echo "file $build_path is not exist."
+ fi
+ mkdir -p "$build_path"
+ cd "$build_path"
+ cmake ..
+ make -j
+ cd ..
+ exit 0
+}
+
+build
+exit 0
\ No newline at end of file
diff --git a/tutorials/OsdSample/README.md b/tutorials/OsdSample/README.md
index f8326c0ed2c048a42626c414e653491855edddbb..29b0a7408e4cbd2f3227995792e59f558aeb6671 100644
--- a/tutorials/OsdSample/README.md
+++ b/tutorials/OsdSample/README.md
@@ -1,4 +1,42 @@
# SampleOsd 样例说明
+
+## 1 介绍
* 本样例从ExternalOsdInstances.json构建一个绘图单元集合(MxpiOsdInstancesList)的元数据(metadata)并送入stream
* 上传一张jpg格式图片并重命名为test.jpg,在运行目录下执行run.sh。请勿使用大分辨率图片
-* 如构建的proto数据正确则可在程序运行结束后在运行目录找到图片testout.jpg,此图片为test.jpg经过缩放后加上绘图单元集合后的输出结果。
\ No newline at end of file
+* 如构建的proto数据正确则可在程序运行结束后在运行目录找到图片testout.jpg,此图片为test.jpg经过缩放后加上绘图单元集合后的输出结果。
+
+### 1.1 支持的产品
+本项目以昇腾Atlas310、Atlas310B卡为主要硬件平台。
+
+### 1.2 支持的版本
+支持的SDK版本为 5.0.RC1, CANN 版本310使用6.3.RC1,310B使用6.2.RC1。
+
+
+## 2 环境依赖
+在编译和运行项目需要的环境变量如下。
+
+ ```
+ export MX_SDK_path=""# mxVision 安装路径
+ export Ascend_toolkit_path=""#CANN 安装路径
+
+ # MindXSDK 环境变量:
+ . /${MX_SDK_path}/set_env.sh
+
+ # CANN 环境变量:
+ . /${Ascend_toolkit_path}/set_env.sh
+ ```
+
+## 3 OSD模型转换
+使用mxpi_opencvosd插件前,需要使用osd相关的模型文件,请执行mxVision安装目录下operators/opencvosd/generate_osd_om.sh脚本并生成所需的模型文件。
+
+## 4 编译与运行
+### 4.1 编译
+
+```
+bash build.sh
+```
+
+### 4.2运行
+```
+./main test.jpg
+```
\ No newline at end of file
diff --git a/tutorials/OsdSample/pipeline/SampleOsd.pipeline b/tutorials/OsdSample/pipeline/SampleOsd.pipeline
index 9757602fb35b1d93f3fcf95e3699c27eb8728448..3b45c7804d6009d5c3be8721baf89e47890b4282 100644
--- a/tutorials/OsdSample/pipeline/SampleOsd.pipeline
+++ b/tutorials/OsdSample/pipeline/SampleOsd.pipeline
@@ -41,6 +41,9 @@
"next":"mxpi_imageencoder0"
},
"mxpi_imageencoder0":{
+ "props": {
+ "encodeLevel": "10"
+ },
"factory":"mxpi_imageencoder",
"next":"appsink0"
},
diff --git a/tutorials/OsdSample/python/main.py b/tutorials/OsdSample/python/main.py
index 6b24b5de66e9a972d5b763cf72e740abc8e7d9d2..b0e2685790f015163c55190aa2965f0d3cecfd41 100644
--- a/tutorials/OsdSample/python/main.py
+++ b/tutorials/OsdSample/python/main.py
@@ -58,13 +58,13 @@ if __name__ == '__main__':
message_json = json.load(f)
print(message_json)
in_plugin_id = 1
- osd_instances_list = MxpiOSDType.Mxpiosd_instances_list()
+ osd_instances_list = MxpiOSDType.MxpiOsdInstancesList()
osd_instances_list = ParseDict(message_json, osd_instances_list)
protobuf_vec = InProtobufVector()
protobuf = MxProtobufIn()
protobuf.key = b'appsrc1'
- protobuf.type = b'MxTools.Mxpiosd_instances_list'
+ protobuf.type = b'MxTools.MxpiOsdInstancesList'
protobuf.protobuf = osd_instances_list.SerializeToString()
protobuf_vec.push_back(protobuf)
ret = stream_manager_api.SendProtobuf(stream_name, in_plugin_id, protobuf_vec)
diff --git a/tutorials/PipelineInputOutputSample/C++/README.md b/tutorials/PipelineInputOutputSample/C++/README.md
index 1f4cb0c0bba62d76fd548fa25170af4b4c43f6da..83979132ba957002e9948597fbc7fce489e9c4a6 100644
--- a/tutorials/PipelineInputOutputSample/C++/README.md
+++ b/tutorials/PipelineInputOutputSample/C++/README.md
@@ -8,22 +8,12 @@
将项目目录从mindxsdk-referenceapps\tutorials\PipelineInputOutputSample\C++移动到运行样例的目录下
-### 配置SDK路径
-配置CMakeLists.txt 中的'MX_SDK_HOME'环境变量,配置为MindX SDK的安装路径; ${SDK安装路径}替换为用户环境SDK安装路径。
-set(MX_SDK_HOME /usr/local/Ascend/mxVision)
-/usr/local/Ascend/mxVision 需要替换为自己的SDK安装路径
-
-```
-set(MX_SDK_HOME ${SDK安装路径}/mxVision)
-```
### 配置环境变量
执行以下命令:
-
```
-export MX_SDK_HOME="${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":${LD_LIBRARY_PATH}
+. ${MX_SDK_HOME}/set_env.sh
+# ${MX_SDK_HOME}替换为用户的SDK安装路径
```
### 编译运行
@@ -34,7 +24,7 @@ export LD_LIBRARY_PATH="${MX_SDK_HOME}/lib":"${MX_SDK_HOME}/opensource/lib":"${M
返回上级目录 cd ..
-执行 ./sample 或者执行 ./sample 参数
+执行 ./IOsample 或者执行 ./IOsample 参数
其中参数为 0,1,2 参数对应的调用插件可以参考快速指导
### 查看结果
diff --git a/tutorials/PipelineInputOutputSample/python/README.md b/tutorials/PipelineInputOutputSample/python/README.md
index 368aa00b775de6cf4aa901309ad9783f574a8764..619f224789912903832ce2df39a93e2a101f4b0b 100644
--- a/tutorials/PipelineInputOutputSample/python/README.md
+++ b/tutorials/PipelineInputOutputSample/python/README.md
@@ -12,14 +12,14 @@
进入到移动后的工程路径下
### 配置环境变量
-将${SDK安装路径}替换为自己的SDK安装路径; 将${MX_SDK_HOME}替换成对应路径
+执行以下命令:
```
-export MX_SDK_HOME=${SDK安装路径}/mxVision
-
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64
+. ${MX_SDK_HOME}/set_env.sh
+# ${MX_SDK_HOME}替换为用户的SDK安装路径
```
+
### 运行
python3 main.py 参数
diff --git a/tutorials/PipelineInputOutputSample/python/main.py b/tutorials/PipelineInputOutputSample/python/main.py
index 050bd0cf19aeea4f35f31b19b58ad9445a2e6bcb..3d7f71e969c1e5385bcefcd1aa7ceb3e0f21775a 100644
--- a/tutorials/PipelineInputOutputSample/python/main.py
+++ b/tutorials/PipelineInputOutputSample/python/main.py
@@ -147,7 +147,7 @@ if __name__ == '__main__':
infer_result.errorCode, infer_result.data.decode()))
exit()
# 打印推理结果
- print("result1: {}".format(infer_result.data.decode()))
+ print("result: {}".format(infer_result.data.decode()))
elif INTERFACE_TYPE == 2:
# 执行SendData - GetResult 样例
diff --git a/tutorials/SamplePostProcess/src/samplepostprocess/SamplePostProcess.h b/tutorials/SamplePostProcess/src/samplepostprocess/SamplePostProcess.h
index a475a74b47df57007be7aa13e3e63cf54a857f29..2bb605c6468a21700f3f7393125f4cea17c17acc 100644
--- a/tutorials/SamplePostProcess/src/samplepostprocess/SamplePostProcess.h
+++ b/tutorials/SamplePostProcess/src/samplepostprocess/SamplePostProcess.h
@@ -35,7 +35,7 @@ namespace MxBase {
SamplePostProcess &operator=(const SamplePostProcess &other);
- bool IsValidTensors(const std::vector &tensors) const override;
+ bool IsValidTensors(const std::vector &tensors) const;
private:
uint32_t classNum_ = 0;
diff --git a/tutorials/SamplePostProcess/src/yolov3/Yolov3PostProcess.h b/tutorials/SamplePostProcess/src/yolov3/Yolov3PostProcess.h
index 2eb42b54824b1f5b7a7ebe26dfdcd78139d2fc4a..0ca4851f7affc004f1e2c48bd880ee8594c5d259 100644
--- a/tutorials/SamplePostProcess/src/yolov3/Yolov3PostProcess.h
+++ b/tutorials/SamplePostProcess/src/yolov3/Yolov3PostProcess.h
@@ -45,7 +45,7 @@ struct NetInfo {
}
namespace MxBase {
- class Yolov3PostProcess: public ObjectPostProcessBase
+ class Yolov3PostProcess : public ObjectPostProcessBase
{
public:
Yolov3PostProcess() = default;
@@ -66,7 +66,7 @@ namespace MxBase {
const std::map > ¶mMap = {}) override;
protected:
- bool IsValidTensors(const std::vector &tensors) const override;
+ bool IsValidTensors(const std::vector &tensors) const;
void ObjectDetectionOutput(const std::vector &tensors,
std::vector > &objectInfos,
diff --git a/tutorials/mxBaseSample/README.md b/tutorials/mxBaseSample/README.md
index 492de057991ed770e1d8e847e1cd1dad1b38dd9e..1d30b959a94bce6b456f9b82740e759e3e38e93d 100644
--- a/tutorials/mxBaseSample/README.md
+++ b/tutorials/mxBaseSample/README.md
@@ -15,17 +15,13 @@ Init > ReadImage >Resize > Inference >PostProcess >DeInit
**步骤3** 执行模型转换命令
(1) 配置环境变量
-#### 设置环境变量(请确认install_path路径是否正确)
+#### 设置toolkit环境变量(请确认install_path路径是否正确)
#### Set environment PATH (Please confirm that the install_path is correct).
```c
-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:$PYTHONPATH
-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) 转换模型
+(2) 转换模型(若运行在310B上,模型转换时需将Ascend310修改为Ascend310B1)
```
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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"
```
@@ -33,14 +29,9 @@ atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_ver
## 编译与运行
**步骤1** 修改CMakeLists.txt文件 将set(MX_SDK_HOME ${SDK安装路径}) 中的${SDK安装路径}替换为实际的SDK安装路径
-**步骤2** 设置环境变量
-ASCEND_HOME Ascend安装的路径,一般为/usr/local/Ascend
-LD_LIBRARY_PATH 指定程序运行时依赖的动态库查找路径,包括ACL,开源软件库,libmxbase.so以及libyolov3postprocess.so的路径
+**步骤2** 设置mxVision环境变量
```
-export ASCEND_HOME=/usr/local/Ascend
-export ASCEND_VERSION=nnrt/latest
-export ARCH_PATTERN=.
-export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib/modelpostprocessors:${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:${MX_SDK_HOME}/opensource/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:${LD_LIBRARY_PATH}
+. ${MX_SDK_HOME}/set_env.sh # ${MX_SDK_HOME}替换为用户的SDK安装路径
```
**步骤3** cd到mxbase目录下,执行如下编译命令:
diff --git a/tutorials/mxBaseSample/yolov3PostProcess/Yolov3PostProcess.h b/tutorials/mxBaseSample/yolov3PostProcess/Yolov3PostProcess.h
index ec9f7ca110bae54d808932878ec840c5f0db4c05..847e54a4be581c198c054aae3fcd27c13afb591c 100644
--- a/tutorials/mxBaseSample/yolov3PostProcess/Yolov3PostProcess.h
+++ b/tutorials/mxBaseSample/yolov3PostProcess/Yolov3PostProcess.h
@@ -63,7 +63,7 @@ public:
const std::vector &resizedImageInfos = {},
const std::map> ¶mMap = {}) override;
protected:
- bool IsValidTensors(const std::vector &tensors) const override;
+ bool IsValidTensors(const std::vector &tensors) const;
void ObjectDetectionOutput(const std::vector &tensors,
std::vector> &objectInfos,
diff --git a/tutorials/mxBaseVideoSample/README.md b/tutorials/mxBaseVideoSample/README.md
index 229ae0317df7e4676a8adc76cc4dff8c3462faab..861860da2d87d60abcb7511719c3932e634574dd 100644
--- a/tutorials/mxBaseVideoSample/README.md
+++ b/tutorials/mxBaseVideoSample/README.md
@@ -1,12 +1,14 @@
# 基于MxBase 的yolov3视频流推理样例
-## 介绍
+## 1 介绍
本开发样例是基于mxBase开发的端到端推理的C++应用程序,可在昇腾芯片上实现视频流的目标检测,并把可视化结果保存到本地。
-### 准备工作
+## 2 准备工作
-> 模型转换
+### 2.1 模型转换
+
+若使用A200I DK A2运行,推荐使用PC转换模型,具体方法可参考A200I DK A2资料。
**步骤1** 在ModelZoo上下载YOLOv3模型。[下载地址](https://www.hiascend.com/zh/software/modelzoo/detail/1/ba2a4c054a094ef595da288ecbc7d7b4)
@@ -20,18 +22,19 @@
# 设置环境变量(请确认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
+```c
+. /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,请根据实际安装路径修改。
-# 执行,转换YOLOv3模型
-# Execute, transform YOLOv3 model.
+```
+### 2.2 执行转换YOLOv3模型
+```
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --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制定了输出节点的顺序,需要与模型后处理适配。
```
+> 说明1:out_nodes制定了输出节点的顺序,需要与模型后处理适配。
+
+> 说明2:若用例执行在310B上,则--soc_version=Ascend310需修改为Ascend310B1
+
执行完模型转换脚本后,会生成相应的.om模型文件。 执行完模型转换脚本后,会生成相应的.om模型文件。
@@ -39,7 +42,7 @@ atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_ver
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
-> 相关参数修改
+### 2.3 相关参数修改
main.cpp文件中,添加模型路径与 rtsp 流源地址(需要自行准备可用的视频流,视频流格式为H264)
@@ -59,7 +62,7 @@ const uint32_t VIDEO_WIDTH = {视频宽度};
const uint32_t VIDEO_HEIGHT = {视频高度};
```
-### 配置环境变量
+### 2.4 配置环境变量
```
# 执行如下命令,打开.bashrc文件
@@ -78,7 +81,7 @@ source ~/.bashrc
env
```
-### 配置CMakeLists
+### 2.5 配置CMakeLists
配置CMakeLists.txt文件中的`MX_SDK_HOME`与`FFMPEG_PATH`环境变量
@@ -87,8 +90,8 @@ set(MX_SDK_HOME {SDK实际安装路径})
set(FFMPEG_PATH {ffmpeg安装路径})
```
-### 编译项目文件
-
+## 3. 编译与运行
+### 3.1编译
新建立build目录,进入build执行cmake ..(..代表包含CMakeLists.txt的源文件父目录),在build目录下生成了编译需要的Makefile和中间文件。执行make构建工程,构建成功后就会生成可执行文件。
```
@@ -109,12 +112,10 @@ Scanning dependencies of target stream_pull_test
# stream_pull_test就是CMakeLists文件中指定生成的可执行文件。
```
-### 执行脚本
-
-执行run.sh脚本前请先确认可执行文件stream_pull_test已生成。
+### 3.2 运行
+在当前目录创建result目录并执行run.sh脚本前请先确认可执行文件stream_pull_test已生成,并给脚本添加可执行权限。
```
-chmod +x run.sh
bash run.sh
```
diff --git a/tutorials/sampleCustomProto/Sample_proto.pipeline b/tutorials/sampleCustomProto/Sample_proto.pipeline
index 61b962303dacbc59bb222526005449e1e4ff76d7..d7d1076a38ecb55ab9c7001dc4b7a92a05e1df2a 100644
--- a/tutorials/sampleCustomProto/Sample_proto.pipeline
+++ b/tutorials/sampleCustomProto/Sample_proto.pipeline
@@ -15,7 +15,7 @@
"props": {
"modelPath": "../models/yolov3/yolov3_tf_bs1_fp16.om",
"postProcessConfigPath": "../models/yolov3/yolov3_tf_bs1_fp16.cfg",
- "labelPath": "../models/yolov3/coco.names",
+ "labelPath": "../models/yolov3/yolov3.names",
"postProcessLibPath": "libMpYOLOv3PostProcessor.so"
},
"factory": "mxpi_modelinfer",
@@ -33,7 +33,7 @@
"props": {
"modelPath": "../models/resnet50/resnet50_aipp_tf.om",
"postProcessConfigPath": "../models/resnet50/resnet50_aipp_tf.cfg",
- "labelPath": "../models/resnet50/imagenet1000_clsidx_to_labels.names",
+ "labelPath": "../models/resnet50/resnet50_clsidx_to_labels.names",
"postProcessLibPath": "libresnet50postprocessor.so"
},
"factory": "mxpi_modelinfer",
diff --git a/tutorials/samplePluginPostProc/CMakeLists.txt b/tutorials/samplePluginPostProc/CMakeLists.txt
index dee9cab53cc65de42e9028d9165732560442235a..073839c0a7d5d2d9d01f58e1c2d180f9aa52b9c7 100644
--- a/tutorials/samplePluginPostProc/CMakeLists.txt
+++ b/tutorials/samplePluginPostProc/CMakeLists.txt
@@ -1,8 +1,7 @@
cmake_minimum_required(VERSION 3.6)
project(plugin_sample)
-#该语句中%MX_SDK_HOME%根据实际SDK安装位置修改,可通过在终端运行env命令查看
-#set(ENV{MX_SDK_HOME} %MX_SDK_HOME%)
+set(MX_SDK_HOME "$ENV{MX_SDK_HOME}")
add_subdirectory(./mxVision/C++)
add_subdirectory(./mindx_sdk_plugin)
\ No newline at end of file