DLAP221基于mxVision 容器内推理

8 篇文章 1 订阅
5 篇文章 0 订阅

DLAP221 基于mxVision 容器内推理

前 提条件

  1. DLAP221启动镜像制作成功,查看系统信息如下
HwHiAiUser@davinci-mini:~$ npu-smi info
+------------------------------------------------------------------------------------------------+
| npu-smi 22.0.2                           Version: 22.0.2                                       |
+-----------------------+-----------------+------------------------------------------------------+
| NPU     Name          | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device        | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+=======================+=================+======================================================+
| 0       310           | OK              | 12.8         55                2    / 970            |
| 0       0             | NA              | 0            5353 / 7764                             |
+=======================+=================+======================================================+
  1. 访问官方推理镜像网站,下载对应的mxVision容器镜像

image-20221227094753088

点击获取镜像,注册华为用户,如果有则直接登录。

image-20230109093108561

选择22.0.RC2-mxvision镜像版本,并点击下载,将弹出以下窗口,根据窗口中说明的步骤,下载推理镜像。

image-20230109093540847

在DLAP221的命令行,运行上图中步骤的命令,如果在step2中输入了正确的密码,但仍然无法下载镜像,请根据step3设置下载凭证.

查看镜像,命令为:

HwHiAiUser@davinci-mini:~$ sudo docker images
REPOSITORY                                             TAG                 IMAGE ID       CREATED        SIZE
ascendhub.huawei.com/public-ascendhub/infer-modelzoo   22.0.RC2-mxvision   ed381e9a8f24   3 months ago   6.08GB
  1. 安装Ascend-cann-toolkit包
HwHiAiUser@davinci-mini:~$ sudo ./Ascend-cann-toolkit_5.1.RC2_linux-aarch64.run --install

启动容器

  1. 下载mindX测试样例
HwHiAiUser@davinci-mini:~$ git clone https://gitee.com/ascend/ascend_community_projects.git
HwHiAiUser@davinci-mini:~$ cd ascend_community_projects/
HwHiAiUser@davinci-mini:~/ascend_community_projects$ ls
2D_LiDAR_Pedestrain_Detection  AlphaPose  			Assisted-driving   						 ChineseOCR         FCOS        gesturedetection  
insulatorDetection  					 Luggage-Checker  MonocularDepthEstimation_V2    OWNERS             README.md   RosSdkInfer        VideoStitch                    A200DK_GPIO_I2C  AluminumDefectDetection        Atlas200DKMPU6050  deepsort    figures         HelmetIdentification_V2        kws              MedicalKeypointsDetecion       MoveitMechanicalArmSimulation  PointPillars  
RefineDet                      UAV_CrowdCounting  Yolact                       A200DK_UART_SPI                AnimeGAN                 Atlas200DKSPILCD               FairMOT          fire_detection                 Individual_V2      LICENSE     MobileStereoNet           MultiChannelVideoInfer         README.en.md     Retinaface                     Video-ReID         YOLOv5Prune
  1. 创建容器启动脚本
docker run -it -u root --rm \
--net=host \
--device=/dev/davinci0 \
--device=/dev/davinci_manager \
--device=/dev/ascend_manager \
--device=/dev/svm0 \
--device=/dev/log_drv \
--device=/dev/event_sched \
--device=/dev/upgrade \
--device=/dev/hi_dvpp \
--device=/dev/memory_bandwidth \
--device=/dev/ts_aisle \
-v /usr/local/Ascend/driver/tools:/usr/local/Ascend/driver/tools \
-v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64 \
-v /usr/lib64/aicpu_kernels:/usr/lib64/aicpu_kernels \
-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
-v /var/hdc_ppc:/var/hdc_ppc \
-v /etc/hdcBasic.cfg:/etc/hdcBasic.cfg \
-v /etc/rc.local:/etc/rc.local \
-v /sys:/sys \
-v /usr/bin/sudo:/usr/bin/sudo \
-v /usr/lib/sudo/:/usr/lib/sudo/ \
-v /etc/sudoers:/etc/sudoers/ \
-v /etc/sys_version.conf:/etc/sys_version.conf \
-v /home/HwHiAiUser/ascend_community_projects:/data/ascend_community_projects \
-v /home/HwHiAiUser/ascend_ddk/:/home/HwHiAiUser/ascend_ddk \
ascendhub.huawei.com/public-ascendhub/infer-modelzoo:22.0.RC2-mxvision \
/bin/bash -c "/usr/local/Ascend/driver/tools/minirc_container_prepare.sh;/bin/bash"

其中:

/usr/local/Ascend/driver: 为驱动的安装目录,需要映射到容器中
/usr/local/Ascend/ascend-toolkit: CANN toolkit的安装目录需要映射到容器中,如果客户安装的是nnrt运行环境,则替换为nnrt的安装目录
/home/HwHiAiUser/ascend_community_projects: mindx测试样例
  1. 修改minirc_container_prepare.sh脚本
#!/bin/bash
[ -d /usr/lib64 ] || mkdir -p /usr/lib64
[ -d /var ] || mkdir -p /var
[ -d /var/driver ] || mkdir -p /var/driver
[ -d /usr/slog ] || mkdir -p /usr/slog
[ -d /run/driver ] || mkdir -p /run/driver
[ -d /var/dmp ] || mkdir -p /var/dmp
[ -d /home/root/hdc_ppc ] || mkdir -p /home/root/hdc_ppc
[ -d /home/HwHiAiUser/hdc_ppc ] || mkdir -p /home/HwHiAiUser/hdc_ppc

cp -arf /usr/local/Ascend/driver/lib64/* /usr/lib64/
cp -arf /usr/local/Ascend/driver/tools/* /var/
###添加以下6行代码
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:$LD_LIBRARY_PATH
mkdir -p /usr/slog
/var/slogd &
mkdir -p /run/driver
/var/dmp_daemon -I -U 8087 &
chown -R root:root /home/hwMindX/sdk_home
######
chmod 755 /usr/lib64
chown -h HwHiAiUser:HwHiAiUser /usr/slog
chown -h HwHiAiUser:HwHiAiUser /var/dmp
chown -h HwHiAiUser:HwHiAiUser /home/HwHiAiUser/hdc_ppc

if [ ! -f /usr/lib64/libcrypto.so.1.1 ] && [ ! -L /usr/lib64/libcrypto.so.1.1 ]; then
    cp -arf /usr/local/Ascend/driver/lib64/inner/libcrypto.so.1.1 /usr/lib64/
fi
  1. 启动容器
HwHiAiUser@davinci-mini:~$ sudo ./docker_run.sh
root@davinci-mini:/home/hwMindX#   <-----进入了容器

运行测试样例

本文运行的测试样例为Luggage-Checker,根据样例的readme,做如下操作

  1. 下载om模型
root@davinci-mini:/home/hwMindX# cd /data/ascend_community_projects/Luggage-Checker/
root@davinci-mini:/data/ascend_community_projects/Luggage-Checker# cd python/models/
root@davinci-mini:/data/ascend_community_projects/Luggage-Checker/python/models# wget  -O yolox_pre_post.om https://mindx.sdk.obs.myhuaweicloud.com/ascend_community_projects/laser_detect/yolox_pre_post.om --no-check-certificate
  1. 编译测试样例的后处理代码
root@davinci-mini:/home/hwMindX# cd /data/ascend_community_projects/Luggage-Checker/
root@davinci-mini:/data/ascend_community_projects/Luggage-Checker# bash build.sh
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /data/ascend_community_projects/Luggage-Checker/postprocess/build
[ 50%] Building CXX object CMakeFiles/YoloxPostProcess.dir/YoloxPostProcess.cpp.o
[100%] Linking CXX shared library libYoloxPostProcess.so
[100%] Built target YoloxPostProcess
  1. 运行测试样例
root@davinci-mini:/data/ascend_community_projects/Luggage-Checker/python/Main# python3 pre_post.py
Begin to initialize Log.
WARNING: Logging before InitGoogleLogging() is written to STDERR
W20230109 02:15:26.178339    65 ConfigUtil.h:103] [1016][Object, file or other resource doesn't exist] Fail to read (log_prefix) from config, default is: 1
W20230109 02:15:26.178485    65 ConfigUtil.h:103] [1016][Object, file or other resource doesn't exist] Fail to read (colorlogtostderr) from config, default is: 1
W20230109 02:15:26.178542    65 ConfigUtil.h:103] [1016][Object, file or other resource doesn't exist] Fail to read (stop_logging_if_full_disk) from config, default is: 1
The output directory of logs file doesn't exist.
Create directory to save logs information.
Save logs information to specified directory.
.....
.....
I20230109 02:15:28.072665    65 MxpiImageDecoder.cpp:120] Begin to deinitialize MxpiImageDecoder(mxpi_imagedecoder0).
I20230109 02:15:28.074342    65 MxpiImageDecoder.cpp:139] End to deinitialize MxpiImageDecoder(mxpi_imagedecoder0).
I20230109 02:15:28.074736    65 MxGstBase.cpp:822] element(mxpi_dataserialize0) gst_change_state READY_TO_NULL.
I20230109 02:15:28.074843    65 MxGstBase.cpp:822] element(mxpi_objectpostprocessor0) gst_change_state READY_TO_NULL.
I20230109 02:15:28.074934    65 MxGstBase.cpp:822] element(mxpi_tensorinfer0) gst_change_state READY_TO_NULL.
I20230109 02:15:28.075084    65 MxGstBase.cpp:822] element(mxpi_imageresize0) gst_change_state READY_TO_NULL.
I20230109 02:15:28.075177    65 MxGstBase.cpp:822] element(mxpi_imagedecoder0) gst_change_state READY_TO_NULL.
I20230109 02:15:28.076000    65 MxsmStream.cpp:917] Destroys the stream(detection) successfully.
I20230109 02:15:28.076083    65 MxStreamManager.cpp:72] Begin to destroy management threads.
I20230109 02:15:28.077147    65 DeviceManager.cpp:120] DestroyDevices begin
I20230109 02:15:28.082032    65 DeviceManager.cpp:138] DestroyDevices successfully
I20230109 02:15:28.082115    65 MxStreamManager.cpp:263] Destroy streams successfully.

遇到一下错误

Traceback (most recent call last):
  File "/data/ascend_community_projects/Luggage-Checker/python/Main/pre_post.py", line 25, in <module>
    from visualize import plot_one_box
  File "/data/ascend_community_projects/Luggage-Checker/python/Main/visualize.py", line 20, in <module>
    import webcolors
ModuleNotFoundError: No module named 'webcolors'
WARNING: Logging before InitGoogleLogging() is written to STDERR
I20230109 02:13:37.540711    52 MxStreamManager.cpp:54] MxStreamManager destroy.
I20230109 02:13:37.540863    52 MxStreamManager.cpp:61] log rotate thread exits successful.

解决方法:

root@davinci-mini:/data/ascend_community_projects/Luggage-Checker/python/Main# pip3 install webcolors
Looking in indexes: http://pypi.doubanio.com/simple/
Collecting webcolors
  Downloading http://pypi.doubanio.com/packages/af/a9/71beaebcacd7dd848af470740dbe7f39aa6bd23a60b8162f8c050090eed4/webcolors-1.12-py3-none-any.whl (9.9 kB)
Installing collected packages: webcolors
Successfully installed webcolors-1.12
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
  1. 测试结果

测试结果图片为pre_post_bgr.jpg

root@davinci-mini:/data/ascend_community_projects/Luggage-Checker/python/Main# cd ../test_img/
root@davinci-mini:/data/ascend_community_projects/Luggage-Checker/python/test_img# ls
pre_post_bgr.jpg  test.jpg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SDT3nuQ5-1673231104070)(null)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值