【旭日3】docker开发环境配置与验证

1 系统镜像安装

详见参考链接:https://www.jianshu.com/p/5e60938bd4db

2 开发环境配置准备

ubuntu18.04(虚拟机里也行)、x3开发板一套东西、开发包(下图中第一个)、docker镜像包(下图中第二个),这两个去地平线社区下载资料中下载。

开发包+docker镜像包

3 docker先操作

ubuntu中开个Terminal,执行以下命令:

sudo apt install curl -y      # 装包
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun    # 从阿里云下载docker
sudo docker image ls        # 看看镜像列表,此时啥也没有

运行下面四行代码,后面docker操作不用总是输入sudo

sudo groupadd docker        # 添加docker group
sudo gpasswd -a ${USER} docker  # 将当前用户添加到docker组
sudo service docker restart 
newgrp docker           # 更新用户组

cd到上图中的Horizon文件夹下,加载docker镜像

sudo docker load -i ****    # docker load -i docker_cpu_openexplorer_centos_7_v1.11.6.tar
sudo docker image ls            # IMAGE ID    此时有镜像了
镜像列表
docker container ls                # 查看容器列表,此时没有容器

运行镜像,把路径/home/wyx/Horizon/horizon_xj3_open_explorer_v1.8.5_20211224/ddk/samples下的文件映射到镜像里,也就是映射到镜像的/data文件夹下。

sudo docker run -it -d -v /home/wyx/Horizon/horizon_xj3_open_explorer_v1.8.5_20211224/ddk/samples:/data --name horizon dfafddaf059d

注意:运行完这个命令,就有容器container了,命令中两个路径之间用英文冒号--name horizon表示容器别名(容器多的时候,如何知道用哪一个容器呢),最后的一串字符表示Image ID,上图中有展示。

此时去看容器情况,发现有了,最后的NAMES就是上一行命令中的--name命名得到,否则想用这个container,就总需要记住CONTAINER ID,不好记。

容器列表

容器启动start了,但想在容器里操作,得进入容器,即attach。
进入已经start启动的容器:docker attach [CONTAINER ID]/[NAMES]

docker attach horizon          

下次想启动horizon容器,直接命令docker start horizon即可。

4 运行验证

4.1 验证前思考

这一步在服务器端docker环境中

先看看镜像里的/data/下有什么:

镜像里的data文件夹

和在这一步中的samples文件夹下的文件一样,而且在samples文件夹下修改什么,镜像里会跟着修改! 映射关系嘛

image.png

镜像里就是一个独立的系统了,比如运行python3

镜像里运行python3

4.2 验证1 验证docker中有运行model_convert的环境

这一步在服务器端docker环境中

这样才能不用担心docker中缺少环境。

cd到ai_toolchain/horizon_model_convert_sample文件夹下,任意挑选个文件夹进去,运行

sh 01_check.sh

看视频里显示的结果,最后不是killed啊,还会显示一些网络层在bpu上的运行信息,不懂这是因为什么?验证别的也是这样。

缺少GPU运行结果示意图

解释:我换了一台有GPU的电脑,运行正常,如下图:

有GPU运行结果示意图

4.3 验证2 验证docker中有运行runtime_sample的环境

这一步在服务器端docker环境中

这样才能不用担心docker中缺少环境。

cd到ai_toolchain/horizon_runtime_sample/code文件夹下,运行

sh build_xj3.sh

这一步倒没什么问题,之后考虑一下这一步用来干嘛的。

运行结果示意图

!重点!:这一步会生成xj3/script/文件夹下的aarch64文件夹,想在板子上运行script下的脚本文件,这个aarch64文件夹不能少,也得放到板子上

4.4 验证3 开发板上验证runtime_sample环境

这一步在开发板上

这一步是把镜像里的文件copy到开发板上,在这一步操作之前,建议把文件先准备好,官网教程

https://www.bilibili.com/video/BV1HA411c79s?spm_id_from=333.999.0.0

里说好的后期会修改,几个版本后,还是没添加。

操作内容:
ai_toolchain/model_zoo/runtime文件夹下的模型,复制到ai_toolchain/horizon_runtime_sample/xj3/model/runtime文件夹下,可以需要哪个模型就复制哪个,如下图。

文件先准备

通过scp把文件拷贝到开发板对应文件下(前提需要通过ip来ssh开发板)

     发送文件名    开发板IP      开发板文件地址
scp -r xj3/ root@192.168.1.10:/userdata/horizon

解释:此处开发板ip不知为何hrut_ipfull s 10.64.32.90 255.255.255.0 10.64.32.1改不了,那就只能该电脑的ip了。回答:重启才生效。
再解释:用虚拟机开发,也是改成本机电脑的ip即可,可以另外开个terminal,ping 192.168.1.10,看能否ping通。
!重点!:用什么方式把文件拷过去,有时候不重要,有时候很重要!!!详细情况见4.5节解释3

新开一个terminal,ssh到开发板上

ssh root@192.168.1.10

cd到/userdata/horizon文件夹下,进入xj3/script/00_quick_start文件夹下,运行脚本

sh run_mobilenetV1.sh

正常运行。

4.5 验证4 开发板上验证solution_zoo环境

4.5.1 初次验证

在docker镜像中,cd到solution_zool文件夹下,以multitask_perception_solution任务为例,其中文件build_and_deploy.sh是编译部署文件,用于生成delpoy文件夹,放到开发板上运行;run_body.sh是在开发板端运行文件。
运行build_and_deploy.sh文件:

sh build_and_deploy.sh

运行完后,发现multitask_perception_solution文件夹下多了一些文件夹。

多了一些文件夹

然后把deploy文件夹传到开发板上(怎么传不重要),deploy文件夹下是有run_body.sh文件的。

scp -r deploy/ root@192.168.1.10:/userdata/horizon

ssh连接开发板,在开发板上cd到刚传输的deploy文件夹下,运行run_body.sh文件

sh run_body.sh

即可跑起来。

查看demo显示效果:

在电脑端打开浏览器输入开发板地址即可。

其实我没跑起来,报错如下图:

报错截图1
报错截图2

什么原因呢?

解释1:说我不是1080P的USB摄像头,巧了,有两个摄像头,其中一个是1080P的,如下图:

验证自己摄像头分辨率,最高能到多少就是多少

解释2:系统镜像的版本要匹配。
此时,我的系统镜像版本是disk_X3SDB_0807_version_1.img,技术支持人员给了我个disk_X3SDB_0508_version.img(链接: https://quqi.avyeld.com/s/653819/xStM0w4ML9hQABR0 查阅码: hagj)。重新烧录镜像后,依旧是同样的bug。那到底是设么原因呢?

解释3:感谢地平线海盗旗微信技术指导,问我是如何把文件移到到开发板上的,我此时采用的是在电脑端打包压缩,用U盘拷贝到开发板上后解压,这个过程可能会导致一些文件损坏或者缺失(至于为什么,我也不懂)。采用scp通过网线传输数据,这一步很重要,下方解释4也需要这一步,否则依旧和上方错误一样。再次运行程序sh run_body.sh,参数选择和出错结果如下:

参数选择
结果出错

技术支持说我这是重启进入了uboot模式。what?还有这操作,没懂。怎么退出我也不知道,网上说Ctrl +C退出行不通,于是断电重启,再次运行同样的程序,报错如下:

结果出错图

至少现在的我不懂为什么,那下面怎么办呢?

解释4:技术支持给提供了另一个思路,选择参数feedback(俗称回灌),记得scp传输数据,运行成功,结果示意图如下。

参数选择示意
成功示意图

总结:

  • 传输数据使用压缩包U盘传输可能出错
  • 使用USB_camera,但选择参数不一定是,也有可能是feedback,我觉得这儿应该是程序的问题吧,不太符合逻辑。

4.5.2 后续问题及解决方案

后续在重跑deploy时,出现如下几种错误,现在的我不知道为什么。

问题1
问题2
问题3

此时再去跑以前能跑的deploy,也会报类似的问题。

解决方案:

  • reboot关机重启

  • 若依旧不行,则需要在docker重新编译生成deploy,然后再传输,不知道为什么直接传输以前生成的deploy文件不行!生气!

4.6 验证AI_solution中的例子

验证时系统镜像版本:disk_X3SDB_0807_version_1.img,[AI_solution_sample](链接: https://quqi.avyeld.com/s/653819/gQQgabW9XnQ12oJ5 查阅码: mmfc),运行其中的run.sh,根据提示选择对应样例和参数即可。

验证成功的有1 face;2 face_recog;5 behavior;9 face_body_multisource。成功的示意图如下:

成功运行检测人脸 浏览器界面显示

终端输出示例:

成功运行检测人脸 终端输出示例

验证失败的有3 body;4 xbox,比如3 body出现这种问题,我似懂非懂,没解决,技术支持人员让我换个系统镜像,我准备去操作了。

3 body出现的问题

5 容器基本操作简介

此处附上如何进出容器

docker容器退出和再次启动

此处附上查看正在运行的容器容器在本机中的位置,命令分别为:docker psdocker inspect 容器名/容器ID,如下图:

docker ps and inspect

关于容器下面有啥,欢迎自己去探索。

6 linux下文件压缩/解压命令

zip [选项] 压缩包名 源文件或源目录
  选项:-r:压缩目录
  示例:zip -r deploy.zip deploy/
unzip [选项] 压缩包名
  选项:-d:指定解压缩位置
  示例:unzip -d /tmp/ test.zip
tar -xvf 文件名.tgz -C ./
  选项:-C:指定解压缩位置
  tar -xvf deploy.tgz -C ./

感谢链接:

https://www.bilibili.com/video/BV1HA411c79s?spm_id_from=333.999.0.0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容