书接上回,我想用Atlas 200 DK开发者套件来跑这次的MindStudio训练营,很明显一个最大的问题就是环境,官方镜像是全部已经配置好了的环境,而我现在这只有CANN,除了CANN一无所有。
从官网下载mxVision安装包,200DK是aarch架构,下载aarch64版本,然后推到200DK上:
mxVision 社区版-昇腾社区 (hiascend.com)
给安装包执行权限:
chmod u+x Ascend-mindxsdk-mxvision_3.0.RC3_linux-aarch64.run
安装:
./Ascend-mindxsdk-mxvision_3.0.RC3_linux-aarch64.run --install
安装完毕后配置环境变量:
vim ~/.bashrc
# 在打开的文件中加入下面的语句
source /home/HwHiAiUser/mxVision/set_env.sh
# 保存退出
source ~/.bashrc
在MindStudio上配置远端CANN和mxVision:
依旧没有Configurations,重新配置为200DK上的Python3.7.5:
可能是环境变量没设置好的问题,我按照这个项目的README重新配置的环境变量:
重新运行main.py,很遗憾,依旧报错:
咨询了交流群里的大佬才知道,mxVision需要Python3.9,而本机的环境是Python3.7.5,于是我开始安装Python3.9。
# 下载
wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
# 解压
tar -zxvf Python-3.9.2.tgz
# 编译安装
cd Python-3.9.2
./configure --prefix=/usr/local/python3.9.2 --enable-loadable-sqlite-extensions --enable-shared
make
make install
# 设置环境变量
vim ~/.bashrc
# 在打开的文件中加入下面的语句
#用于设置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
# 保存退出
source ~/.bashrc
我们在终端使用python3 --version命令查看Python3版本,出现3.9.2,配置成功。
我们卸载mxVison,然后重新安装:
./Ascend-mindxsdk-mxvision_3.0.RC3_linux-aarch64.run --uninstall
./Ascend-mindxsdk-mxvision_3.0.RC3_linux-aarch64.run --install
重新运行main.py,还是报错emmmmmmm,缺少opencv。
这里安装opencv也是很曲折,因为存在多个Python,不指定3.9的话就安装在默认的3.7那去了,折腾了很久才了解到用下面这个命令安装。
python3.9 -m pip install opencv-python
重新运行main.py,依旧报错,又是”google“包:
我检查了所有的环境变量、CANN版本和mxVision版本是否配套,重新安装mvVision,等等等等,一番波折之后,交流群里的大佬一语惊醒梦中人——切换了Python版本CANN可能会缺依赖,于是我马上去查CANN的文档,在看看pip3 list,好家伙,Python确实缺了很多包,按照下图一一安装:
经过前面曲折艰难的配置环境,代码终于能够跑起来了,这里也遇到了我用官方镜像跑时一模一样的问题:
解决方法是将model文件中的os文件推到200DK上mxVision-3.0.RC3/lib/plugins文件夹下,并给它440权限:
chmod 440 libyolov3postprocess.so
然后又会报错说找不到这个文件,群里老师说”这个是MindX SDK的问题,在实际的处理过程中,MindX SDK(可能)自动从环境变量进行了一次路径拼接,并没有判断这个地方我们填的是不是绝对路径,导致会找不到。“
既然这样,我们直接将绝对路径改成文件名: