在老师发的文档中是使用分设开发环境与运行环境的方法:
此方法不仅要使用ubuntu,并且要分别配置环境步骤繁琐易出错
本实验博主采用合设环境(如果你的Atlas 200 DK已接入网络,您可以直接使用Atlas 200 DK作为开发环境,即Atlas 200 DK即作为开发环境又作为运行环境这就是我们所说的合设)
无论是新的sd卡,还是旧的sd卡,都推荐在使用前对sd卡进行一次安全清空
步骤如下:
使用读卡器将sd卡连接到电脑,win+R->运行->输入cmd->在命令提示符窗里输入“DISKPART”
在弹出的DISKPART窗口中输入“LIST DISK”,按下回车后会显示电脑上的硬盘和U盘。根据磁盘空间大小可以推断出磁盘1为sd卡
SELECT DISK 1:选中磁盘1(千万不要选错为sd卡的磁盘)。
CLEAN:删除整个磁盘数据。
CREATE PARTITION PRIMARY:创建主磁盘分区。
ACTIVE:激活磁盘分区。
FORMAT QUICK:快速格式化磁盘分区。
SD卡清除完毕可以开始烧写镜像
准备dd镜像
dd镜像中即含有你开发板需要的开发环境和运行环境,通过dd镜像的方式来将环境恢复到sd卡中再升级至你需要的版本就可以了
历代版本
提取码:kjm7
在这里博主使用的固件与驱动版本:1.0.12 CANN版本:5.0.4alpha005
烧入镜像需要下载balenaEtcher软件
拔出sd卡,将其插入Atlas200DK开发板中,上电启动,开发板会进行自动升级固件、重启灯动作,大概需要等待5分钟左右,四个led灯全亮,至此大功告成!!!
PC机打开设备管理器->其他设备,可以看到带有警报标志的RNDIS, 右键点击RNDIS->更新驱动程序
选择“浏览我的电脑以查找驱动程序”
选择“让我从计算机上的可用驱动程序列表中选取”
向下滑动,选择“网络适配器”,然后下一页
厂商选择Microsoft,型号选择USB RNDIS6 适配器,然后下一页
出现警告,选择“是”
更新驱动程序完成
进入网络和Internet->高级网络设置->更多网络适配器选项,可以查看到USB RNDIS6 适配器
右键点击查看属性,双击ipv4协议
选择”使用下面的ip地址“,将ip地址更改为192.168.1.X, X为0~255除了2以外的数字,点击子网掩码填写框会自动生成子网掩码,点击确定
使用USB端口连接的默认ip为192.168.1.2,所以要将PC机网络适配器ipv4的ip地址更改为和其同个网段下
PC机打开cmd或者其它终端(这里使用的是MobaXterm),输入:
ssh [email protected]
按下回车即可。
如果连接需要输入密码,默认密码为Mind@123,进入root模式也是使用这个密码
使用套件内的网线和USB-Type-C数据线连接开发板和PC机
连接开发板,输入su,然后回车,进入root模式,密码为MInd@123,注意输入密码时页面并不会出现字符
执行cd命令进入netplan文件夹,并查看文件夹下文件
使用vi命令打开网络配置文件
vi 01-netcfg.yaml
在网络配置文件中设置好网线连接的参数,将dhcp4设置为no,设置ip以及网关gateway4,网关可以设置为192.168.0.X,X为0~255中除了2的任何一个数字,后面步骤中也要使用这个网关配置PC端上的网络适配器,然后保存退出
使用vi进入yaml文件后,按字母”i“键进入插入编辑模式,编辑完成后按”Esc“退出编辑模式,输入冒号”:",然后输入“wq!”,回车,成功保存退出
以防万一无脑将里面替换成下面即可(后面共享网络需要配置统一IP)
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]
使设置的网络参数生效,使用此命令:
netplan apply
进入网络和Internet->高级网络设置->更多网络适配器选项,确定好网口的网络适配器(这里已经重命名为网口驱动)
拔插USB和网线,观察哪个适配器消失,可以确定对应的网络适配器
进入ipv4设置页面,将ip地址设置为在开发板中设置的gateway4,或者设置为192.168.1.X, X为0~255除了2以外的数字,确定
如果设置为gateway4相同,便于开发板使用共享网络的方式进行联网
打开终端,输入:
ssh [email protected]
此时需要usb和网线同时连接
使用共享网络的方式联网
首先按照前面步骤,设置好网线连接开发板,确定对应网络适配器ipv4协议的ip地址设置为在开发板中设置的gateway4
本文在开发板中配置eth0下gateway4为192.168.0.100,所以ip地址设置为相同的192.168.0.100
打开已接入网络的WLAN或者本地连接,点击共享
注意此时对应的网口驱动网络适配器会重置,回到网口驱动的属性页,再次将ipv4协议的ip地址设置为在开发板中设置的gateway4,确定
ping百度测试网络连接,开发板成功联网
ping www.baidu.com
选择案例进行实验
在这里我选择
在这里根据要求下载相应依赖
只需要点击链接按照步骤下载依赖即可
# 以安装用户在任意目录下执行以下命令,打开.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}
打开终端,连接Atlas200DK,打开.bashrc文件,将环境变量中的latest都改为5.0.4.alpha005
这里5.0.4.alpha005需要根据实际下载的CANN版本进行修改
保存退出后,执行source ~/.bashrc ,使配置生效
source ~/.bashrc
创建第三方依赖文件夹并安装git
使用git下载官方的示例源码,并拷贝公共文件到第三方路径中
200DK场景还需要执行以下命令拷贝media_mini等so文件以及相关头文件,满足摄像头样例编译需要。
普通用户可能权限不够需要进入root用户进行
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/
1.安装opencv
sudo apt-get install libopencv-dev
执行完后使用exit命令退出root用户,不然有可能影响后面库的安装
2.安装ffmpeg+acllite库
# 下载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
特别注意!!如果出现以下错误
主要排查两点错误:
1.是否已经修改环境变量中的latest
2.确定cann版本大于等于5.0.4
3.安装presentagent
# 安装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
# 为了方便下载,在这里直接给出原始模型下载及模型转换命令,可以直接拷贝执行。也可以参照上表在modelzoo中下载并手工转换,以了解更多细节。
cd $HOME/samples/cplusplus/contrib/human_segmentation/model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/human_segmentation/human_segmentation.pb
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/human_segmentation/insert_op.cfg
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
执行以下命令,执行编译脚本,开始样例编译。
cd $HOME/samples/cplusplus/contrib/human_segmentation/scripts
bash sample_build.sh
执行运行脚本,开始样例运行。
bash sample_run.sh
在执行运行脚本之后会让你选择其中一个端口(这里因为已经都下载后来我之后做的没有连网线所以没有192.168.0.2)
选择192.168.1.2
之后会出现一个网站 按住ctrl在点击就可以打开查看网页
点击后面的person即可
因为这个案例中只有一个视频因此我们检测其它案例时就还需要其他mp4视频但是通过电脑传进去较为麻烦可以在这里下载mp4视频
进入网站选择自己想要下载的视频 此时按F12会出现网络标签页
通过寻找可以直接找到视频的链接地址,此时只需要进入data文件夹中使用wget获取视频即可,开发板需联网
cd $HOME/samples/cplusplus/contrib/human_segmentation/data
但是展示是需要修改其中的代码
cd $HOME/samples/cplusplus/contrib/human_segmentation/scripts
vi sample_build.sh
进入之后需要按I键进入插入模式
修改这个视频名称即可
最后按上面步骤打开网站查看