Atlas 200 DK 开发者套件(型号 3000)是以Atlas 200 AI加速模块(型号 3000)为核心的开发者板形态的终端类产品。主要功能是将Atlas 200 AI加速模块(型号 3000)的接口对外开放,方便用户快速简捷的使用Atlas 200 AI加速模块(型号 3000),可以运用于平安城市、无人机、机器人、视频服务器等众多领域的预研开发。
Atlas 200 AI加速模块(型号 3000)是一款高性能的AI智能计算模块,集成了昇腾310 AI处理器(Ascend 310 AI处理器),可以实现图像、视频等多种数据分析与推理计算,可广泛用于智能监控、机器人、无人机、视频服务器等场景。
Atlas 200 DK的环境配置可以使用两种方式,一种是运行环境与开发环境分设,将运行环境部署在200dk上,开发环境部署在Ubuntu18.04系统。一种是运行环境和开发环境合设,将运行环境和开发环境都部署在200dk上。
无论是新的sd卡,还是旧的sd卡,都推荐在使用前对sd卡进行一次安全清空
步骤如下:
SELECT DISK 1:选中磁盘1(千万不要选错为sd卡的磁盘)。
CLEAN:删除整个磁盘数据。
CREATE PARTITION PRIMARY:创建主磁盘分区。
ACTIVE:激活磁盘分区。
FORMAT QUICK:快速格式化磁盘分区。
开发板有条件能够联网的情况下,推荐使用环境合设的方式
需要编译的的程序较大,推荐使用环境分设的方式
Atlas 200 DK开发者板支持通过USB端口或者网线与PC机进行连接
Atlas 200 DK与PC机连接图:
需要配置好USB端口连接,才能配置网线连接
ssh [email protected]
cd /etc/netplan #进入netplan文件夹
ll #查看文件夹下文件
vi 01-netcfg.yaml
network:
version: 2
# renderer: NetworkManager
renderer: networkd
ethernets:
eth0:
dhcp4: yes
addresses: [192.168.0.2/24]
gateway4: 192.168.0.100 #可以设置为192.168.0.X,X为0~255中除了2的任何一个数字
nameservers:
addresses: [8.8.8.8]
addresses: [114.114.114.114]
usb0:
dhcp4: no
addresses: [192.168.1.2/24]
gateway4: 192.168.0.1
nameservers:
addresses: [114.114.114.11]
使用vi进入yaml文件后,按字母”i“键进入插入编辑模式,编辑完成后按”Esc“退出编辑模式,输入冒号”:",然后输入“wq!”,回车,成功保存退出
netplan apply
ssh [email protected]
成功通过网线连接Atlas200dk
通过网线连接成功后,可以将USB线拔掉
开发板不能联网的情况下,需要在PC中下载好相关依赖文件,再拷贝入SD卡相应位置,非常麻烦
ssh [email protected]
cd /etc/netplan #进入netplan文件夹
ll #查看文件夹下文件
vi 01-netcfg.yaml
netplan apply
首先按照前面步骤,设置好网线连接开发板,确定对应网络适配器ipv4协议的ip地址设置为在开发板中设置的gateway4
本文在开发板中配置eth0下gateway4为192.168.0.100,所以ip地址设置为相同的192.168.0.100
此时对应的网口驱动网络适配器会重置,回到网口驱动的属性页,再次将ipv4协议的ip地址设置为在开发板中设置的gateway4,确定
打开终端,使用USB或者网线连接的默认ip连接到开发板
ssh [email protected] #网线连接默认ip
ssh [email protected] #USB端口连接默认ip
ping www.baidu.com
如果按照步骤不能连接网络,是因为网络环境变化,再次进行一次操作,首先把wifi共享关掉,这时网口驱动会重置。再次开启wifi共享给网口驱动,将分配给网口驱动的IP改成eth0 gateway4的,就联网成功了
获取开发者板驱动与运行包、Ubuntu操作系统镜像包
Ubuntu操作系统镜像包 ubuntu-18.04.xx-server-arm64.iso
建议在Ubuntu官网下载
驱动包 A200dk-npu-driver-{software version}-ubuntu18.04-aarch64-minirc.tar.gz
获取链接
# 进入root用户
sudo su
# 更新源
apt-get update
# 安装python相关依赖
pip3 install pyyaml
# 安装qemu-user-static、binfmt-support、yaml、squashfs-tools与交叉编译器
apt-get install qemu-user-static binfmt-support python3-yaml squashfs-tools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
mkdir /home/ascend/mksd
# 制卡目录可任意指定
#ascend为自己的用户名
# 下载制卡入口脚本“make_sd_card.py”。
# 从gitee下载:
wget https://gitee.com/ascend/tools/raw/master/makesd/generic_script/make_sd_card.py
# 从github下载:
wget https://raw.githubusercontent.com/Ascend/tools/master/makesd/generic_script/make_sd_card.py
# 下载制作SD卡操作系统的脚本“make_ubuntu_sd.sh”。
# 从gitee下载:
wget https://gitee.com/ascend/tools/raw/master/makesd/generic_script/make_ubuntu_sd.sh
# 从github下载:
wget https://raw.githubusercontent.com/Ascend/tools/master/makesd/generic_script/make_ubuntu_
fdisk -l
例如,SD卡所在USB设备名称为“/dev/sda”,可通过插拔SD卡或者按容量推断的方式确定设备名称。
图中的sd卡为/dev/sdb
运行SD制卡脚本“make_sd_card.py”。
python3 make_sd_card.py local /dev/sda
“local”表示使用本地方式制作SD卡。
“/dev/sda”为SD卡所在的USB设备名称。
正在制卡
制卡完成
与环境合设步骤相同
与环境合设步骤相同
安装流程图
此种场景下,用户PC机(Ubuntu x86操作系统)作为开发环境,进行程序的开发、编译,Atlas 200 DK作为运行环境
下载配套驱动版本的开发套件包“Ascend-cann-toolkit_{version}linux-x86_64.run”与“Ascend-cann-toolkit{version}_linux-aarch64.run
apt-get update
apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev
python3 --version
如果返回信息满足python版本要求(3.7.0~ 3.7.11),则直接进入下一步,否则可参考如下方式安装python3.7.5
a.使用wget下载python3.7.5源码包,可以下载到安装环境的任意目录
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -zxvf Python-3.7.5.tgz
# 其中“--prefix”参数用于指定python安装路径,可根据实际情况进行修改
cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
make
sudo make install
# 其中“/usr/local/python3.7.5”为python3.7.5安装路径,请根据实际替换
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/python3.7.5/bin:$PATH
use_private_python.info
”vi /etc/use_private_python.info
python3_install_path=/usr/local/python3.7.5
# 需要进入root用户
# 更新pip命令
pip3 install --upgrade pip
# 安装依赖
pip3 install attrs
pip3 install numpy==1.17.2
pip3 install decorator
pip3 install sympy
pip3 install cffi
pip3 install pyyaml
pip3 install pathlib2
pip3 install psutil
pip3 install protobuf
pip3 install scipy
pip3 install requests
chmod +x *.run
# *.run为软件包实际名称
# {version}为具体版本
./Ascend-cann-toolkit_{version}_linux-x86_64.run --check
./Ascend-cann-toolkit_{version}_linux-aarch64.run --check
# {version}为具体版本
./Ascend-cann-toolkit_{version}_linux-x86_64.run --install --chip=Ascend310-minirc
./Ascend-cann-toolkit_{version}_linux-aarch64.run --install --chip=Ascend310-minirc
. /usr/local/Ascend/ascend-toolkit/set_env.sh
执行vi ~/.bashr,打开.bashrc文件,在文件最后一行后面添加上述内容
保存退出,执行source ~/.bashrc命令使其立即生效
sudo apt-get install g++-aarch64-linux-gnu
下载离线推理引擎包“Ascend-cann-nnrt_{software version}_linux-aarch64.run”
chmod 777 *.run
# 其中*.run表示软件包名,请根据实际包名进行替换
./Ascend-cann-nnrt_{software version}_linux-aarch64.run --check
# 请根据实际包名进行替换
./Ascend-cann-nnrt_{software version}_linux-aarch64.run --install --chip=Ascend310-minirc
# 请根据实际包名进行替换
. /usr/local/Ascend/nnrt/set_env.sh
root用户在任意目录下执行vim ~/.bashrc
命令,打开.bashrc文件,在文件最后一行后面添加上述内容
保存退出,执行source ~/.bashrc
命令使其立即生效
若开发者需要使用Atlas 200 DK外接的摄像头进行数据采集,并将采集的数据作为应用的数据源,则应用程序开发编译时需要依赖媒体控制模块相关的头文件与库文件
export INSTALL_DIR=/usr/local/Ascend/ascend-toolkit/5.0.5.alpha001
# 5.0.5.alpha001根据实际情况更换
sudo mkdir -p ${INSTALL_DIR}/driver
# 使用网线连接开发板则为192.168.0.2,可根据自己实际情况进行更改
scp -r [email protected]:/usr/lib64/libmedia_mini.so ${INSTALL_DIR}/driver
scp -r [email protected]:/usr/lib64/libslog.so ${INSTALL_DIR}/driver
scp -r [email protected]:/usr/lib64/libc_sec.so ${INSTALL_DIR}/driver
scp -r [email protected]:/usr/lib64/libmmpa.so ${INSTALL_DIR}/driver
scp -r [email protected]:/usr/local/Ascend/include/peripheral_api.h ${INSTALL_DIR}/driver
目前最新的MindStudio只支持cann5.0.4版本,注意匹配版本
安装流程
下载
可以直接使用命令行下载
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/MindStudio/MindStudio%203.0.4/MindStudio_3.0.4_linux.tar.gz
tar -zxvf MindStudio_{version}_linux.tar.gz
# 下载jbr
wget https://cache-redirector.jetbrains.com/intellij-jbr/jbr_dcevm-11_0_10-linux-x64-b1341.35.tar.gz
# 解压
tar -zxvf jbr_dcevm-11_0_10-linux-x64-b1341.35.tar.gz
进入软件包解压后的MindStudio/bin目录,执行如下命令
cd MindStudio/bin
./MindStudio.sh
使用MindStudio安装用户,在MindStudio安装服务器执行aarch64-linux-gnu-g++ --version命令检查是否安装,若已经安装则可以忽略,否则执行如下安装命令:
sudo apt-get install -y g++-aarch64-linux-gnu
执行以下命令进行安装准备
建议使用MobaXterm
# 以安装用户在任意目录下执行以下命令,打开.bashrc文件。
vi ~/.bashrc
# 如果.bashrc中没有对应内容,在文件最后一行后面添加如下内容,设置必要的环境变量。
export CPU_ARCH=`arch`
export THIRDPART_PATH=${HOME}/Ascend/thirdpart/${CPU_ARCH} #代码编译时链接第三方库
export LD_LIBRARY_PATH=${HOME}/Ascend/thirdpart/${CPU_ARCH}/lib:$LD_LIBRARY_PATH #运行时链接库文件
export INSTALL_DIR=${HOME}/Ascend/ascend-toolkit/latest #CANN软件安装后文件存储路径
#注意!!:latest需要按实际情况更改!不做修改会导致acllite库的编译报错
# 执行命令保存文件并退出。
:wq!
# 执行命令使其立即生效。
source ~/.bashrc
# 创建第三方依赖文件夹
mkdir -p ${THIRDPART_PATH}
# 返回主目录安装git并下载官方示例源码
cd ${HOME}
sudo apt-get install git
git clone https://gitee.com/ascend/samples.git
# 拷贝公共文件到第三方路径中
cp -r ${HOME}/samples/common ${THIRDPART_PATH}
mkdir -p ${INSTALL_DIR}/driver
cp /usr/lib64/libmedia_mini.so ${INSTALL_DIR}/driver/
cp /usr/lib64/libslog.so ${INSTALL_DIR}/driver/
cp /usr/lib64/libc_sec.so ${INSTALL_DIR}/driver/
cp /usr/lib64/libmmpa.so ${INSTALL_DIR}/driver/
cp /usr/local/Ascend/include/peripheral_api.h ${INSTALL_DIR}/driver/
需要开发板联网
sudo apt-get install libopencv-dev
执行完后使用exit命令退出root用户,不然有可能影响后面库的安装
# 下载ffmpeg并解压
cd ${HOME}
wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz --no-check-certificate
tar -zxvf ffmpeg-4.1.3.tar.gz
cd ffmpeg-4.1.3
# 安装ffmpeg
#./configure配置安装会稍微需要一点时间,耐心等待
./configure --enable-shared --enable-pic --enable-static --disable-x86asm --prefix=${THIRDPART_PATH}
make -j8
make install
# 编译并安装acllite
cd ${HOME}/samples/cplusplus/common/acllite/
make -j8 #使用-j8调用cpu的多个核心,加快编译
make install
# 安装protobuf相关依赖
sudo apt-get install autoconf automake libtool
# 下载protobuf源码
cd ${HOME}
git clone -b 3.13.x https://gitee.com/mirrors/protobufsource.git protobuf
# 编译安装protobuf
cd protobuf
./autogen.sh
./configure --prefix=${THIRDPART_PATH}
make clean
make -j8
sudo make install
# 进入presentagent源码目录并编译
cd ${HOME}/samples/cplusplus/common/presenteragent/proto
${THIRDPART_PATH}/bin/protoc presenter_message.proto --cpp_out=./
# 开始编译presentagnet
cd ..
make -j8
make install
#进入源码目录
cd ${HOME}/samples/cplusplus/level2_simple_inference/n_performance/1_multi_process_thread/face_recognition_camera/model
# face_detection模型权重下载
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/facedection/face_detection_fp32.caffemodel
# face_detection模型网络下载
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/facedection/face_detection.prototxt
# 对应的cfg文件下载
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/face_recognition_camera/face_detection_insert_op.cfg
# 使用ATC模型转换工具进行模型转换
atc --model=./face_detection.prototxt --weight=./face_detection_fp32.caffemodel --framework=0 --output=./face_detection --soc_version=Ascend310 --insert_op_conf=./face_detection_insert_op.cfg --input_shape="data:1,3,300,300" --input_format=NCHW
# vanillacnn模型权重下载
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/vanillacnn/vanillacnn.caffemodel
# vanillacnn模型网络下载
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/vanillacnn/vanilla_deploy.prototxt
# 使用ATC模型转换工具进行模型转换
atc --model=./vanilla_deploy.prototxt --weight=./vanillacnn.caffemodel --framework=0 --output=./vanillacnn --soc_version=Ascend310 --input_shape="data:4,3,40,40" --input_format=NCHW
# sphereface模型权重下载
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/sphereface/sphereface.caffemodel
# sphereface模型网络下载
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/sphereface/sphereface.prototxt
# 对应的cfg文件下载
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/face_recognition_camera/sphereface_insert_op.cfg
# 使用ATC模型转换工具进行模型转换
atc --model=./sphereface.prototxt --weight=./sphereface.caffemodel --framework=0 --output=./sphereface --soc_version=Ascend310 --insert_op_conf=./sphereface_insert_op.cfg --input_shape="data:8,3,112,96" --input_format=NCHW
cd ${HOME}/samples/cplusplus/level2_simple_inference/n_performance/1_multi_process_thread/face_recognition_camera/scripts
bash sample_build.sh
bash sample_run.sh
任选一个ip用于Presenter Server
输入保存面部识别信息的绝对路径