香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试
Orange Pi AIPro开发板:昇腾AI处理器的强劲性能与广泛应用前景
在人工智能(AI)领域,高性能的计算能力和丰富的接口配置是开发板能否胜任各种应用场景的关键。近期,香橙派联合华为推出的Orange Pi AI Pro开发板凭借其强大的性能和广泛的适用性,引起了业界的广泛关注。能覆盖生态开发板者的主流应用场景,让用户实践各种创新场景,并为其提供配套的软硬件。
一、硬件性能:昇腾AI处理器的强劲算力
Orange Pi AI Pro开发板搭载了华为自研的昇腾AI处理器,同时也是业界首款基于昇腾深度研发的AI开发板。这款处理器以其卓越的计算性能而著称。它其所具备的8/20TOPS澎湃算力是目前开发板市场中所具备的最大算力,可以轻松应对图像、视频等多种数据的分析与推理计算需求。无论是教育领域的智能教学,还是机器人、无人机等应用场景的自主导航和智能识别,Orange Pi AI Pro都能提供强大的算力支持。
在内存方面,Orange Pi AI Pro提供了8GB和16GB两种版本供用户选择,满足不同项目的需求。无论是大型数据集的处理,还是复杂模型的训练,都能轻松应对。
二、接口配置:丰富的拓展性
除了强大的性能,Orange Pi AI Pro的接口配置也十分丰富,为用户提供了广泛的拓展可能。
- 视频输出:两个HDMI输出接口支持高清视频输出,满足多屏展示需求。
- GPIO接口:提供了GPIO接口,方便用户与各种传感器和执行器进行连接。
- 电源与存储:Type-C电源接口确保稳定的供电;支持SATA/NVMe SSD 2280的M.2插槽,提供高速的存储解决方案;TF插槽则提供了灵活的存储选择。
- 网络连接:千兆网口确保高速的网络连接,满足大数据传输的需求。
- USB接口:两个USB3.0接口和一个USB Type-C 3.0接口,满足各种外设的连接需求;一个Micro USB接口则方便用户进行充电和数据传输。
- 摄像头与屏幕:支持两个MIPI摄像头和一个MIPI屏,满足视觉处理的需求。
- 其他:预留电池接口,方便用户进行移动应用开发。
三、应用场景:广泛的适用性
Orange Pi AI Pro开发板凭借其强大的性能和丰富的接口配置,在教育、机器人、无人机等多个领域都有广泛的应用前景。在教育领域,它可以用于智能教学、智能评测等场景;在机器人和无人机领域,则可以用于自主导航、智能识别等任务。
综上所述,Orange Pi AI Pro开发板凭借其昇腾AI处理器的强劲性能和丰富的接口配置,成为了AI开发领域的佼佼者。无论是专业的开发者,还是业余的爱好者,都能在这款开发板上找到满足自己需求的解决方案。
链接设备后,通过HDMI即可显示出OrangePi搭载的Ubuntu操作系统界面。
先登录 Linux 系统,有下面三种方式:
- 如果开发板连接了网线,可以通过 ssh 远程登录 Linux 系统。
- 如果开发板连接好了调试串口,可以使用串口终端登录 Linux 系统。
- 如果连接了开发板到 HDMI 显示器,可以通过 HDMI 显示的终端登录Linux 系统。
实际上手调试步骤
我将会罗列一条最快最简单的上手调试步骤,以帮助没有任何Linux层面开发交互的新手们,以最短路径最直观的上手开发板。
第一步:WIFI设置
【官方提示】请不要通过修改/etc/network/interfaces 配置文件的方式来连接 WIFI,通过这种方式连接 WIFI 网络使用会有问题
OrangePi的wifi设置有两种方式:
- 一种是<图形设置>
- 一种是<命令行设置>
方法二:通过 nmtui 图形化方式连接 WIFI 的方法
- 登录 Linux 系统后,在命令行中输入 nmtui 命令打开 wifi 连接的界面。
(base) HwHiAiUser@orangepiaipro:~$ sudo nmtui
- 选择 Activate a connect 后回车。
- 然后就能看到所有搜索到的 WIFI 热点。
- 选择想要连接的 WIFI 热点后再使用 Tab 键将光标定位到 Activate 后回车。
- 然后会弹出输入密码的对话框,在 Pssword 内输入对应的密码然后回车就会开始连接 WIFI。
- WIFI 连接成功后会在已连接的 WIFI 名称前显示一个“*”。
- 通过 ifconfig命令可以查看 wifi 的 IP 地址
(base) HwHiAiUser@orangepiaipro:~$ ifconfig
先设置一下wifi,便于我们的远程链接,两种方式均可尝试。
PS:此处为了方便,新手可以选择图形化的链接方式,只需要选择wifi后输入密码,更加简单直观。
第二步:SSH远程链接
可以通过FinalShell等工具,远程链接香橙派。
PS:我这里使用的是FinalShell,你也可以换成其他远程访问工具。
具体配置如下图所示,
登录用户名可以选择默认用户名HwHiAiUser,默认密码Mind@123
登录后,成功显示如下界面。
第三步:跑测官方Demo:
【官方论坛 链接】https://www.hiascend.com/forum/thread-0285140173361311056-1-1.html
Demo 1:Camera图像获取(USB接口)
【Camera图像获取(USB接口)样例 链接】
https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Camera/USBCamera
官方Sample样例共有6+9种,其中6款为外设接口样例,9款为数据预处理&推理应用样例。此次教程,我们尝试跑测一下Camera图像获取(USB接口)样例。
1、样例下载
可以使用以下两种方式下载,请选择其中一种进行源码准备。
- 命令行方式下载(下载时间较长,但步骤简单)。
- 压缩包方式下载(下载时间较短,但步骤稍微复杂)。
运行记录:
此处我使用的是命令行方式
(base) HwHiAiUser@orangepiaipro:~/MyTest_AI$ git clone https://gitee.com/ascend/EdgeAndRobotics.git
PS:所有运行均以HwHiAiUser用户登录开发板,切换到当前样例目录。
- 切换到样例目录
(base) HwHiAiUser@orangepiaipro:~/MyTest_AI$ cd EdgeAndRobotics/Peripherals/Camera/USBCamera
- 执行准备
- 安装FFmpeg。
sudo apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev
- 安装OpenCV。
sudo apt-get install libopencv-dev
运行记录:
(base) HwHiAiUser@orangepiaipro:~/MyTest_AI/EdgeAndRobotics/Peripherals/Camera/USBCamera$ sudo apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev
......
(base) HwHiAiUser@orangepiaipro:~/MyTest_AI/EdgeAndRobotics/Peripherals/Camera/USBCamera$ sudo apt-get install libopencv-dev
PS:我手上的这块香橙派,到手时即已经完成了这一步的工作。由下列运行截图看到,每次安装执行后,都显示没有新的安装包被安装。
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
- 编译样例
- 编译样例源码
# 执行编译命令
g++ main.cpp -o main -lavutil -lavformat -lavcodec -lavdevice
编译命令执行成功后,在USBCamera样例目录下生成可执行文件main。
运行记录:
(base) HwHiAiUser@orangepiaipro:~/MyTest_AI/EdgeAndRobotics/Peripherals/Camera/USBCamera$ g++ main.cpp -o main -lavutil -lavformat -lavcodec -lavdevice
- 运行样例
把摄像头插入开发板,运行可执行文件,其中/dev/video0表示Camera设备,需根据实际情况填写:
./main /dev/video0
运行成功后,在USBCamera样例目录下生成yuyv422格式、1280*720分辨率的out.yuv文件。
PS:当把摄像头插入开发板后,执行ls /dev/vi*命令可看到摄像头的vedio节点。
这里会出现了两个设备节点:/dev/video0、/dev/video1
解释:这是因为一个是图像/视频采集,一个是metadata采集,因此本样例中在运行可执行文件时,选择图像/视频采集的设备节点/dev/video0。
运行记录:
(base) HwHiAiUser@orangepiaipro:~/MyTest_AI/EdgeAndRobotics/Peripherals/Camera/USBCamera$ ./main /dev/video0
[video4linux2,v4l2 @ 0xaaaacc3a9bb0] The driver changed the time per frame from 1/30 to 1/10
- 查看从Camera获取的图像。
执行如下命令,使用FFmpeg软件查看图像:
ffplay -pix_fmt yuyv422 -video_size 1280*720 out.yuv
PS:
查看时,必须是通过屏幕直接查看,无法通过远程终端命令行查看。
否则就会显示如下报错内容:
最终示例运行显示:
PS:
此处因为我的摆放问题,以及USB摄像头分辨率并不是很高。
所以调测显示的效果有些粗糙。
Demo 2:目标检测(YoloV5s)
【目标检测(USB接口)样例 链接】
https://gitee.com/ascend/EdgeAndRobotics/tree/master/Samples/YOLOV5USBCamera
【样例描述】
通过USB接口连接Camera与开发板,从Camera获取视频,基于yolov5s模型对输入视频中的物体做实时检测,将推理结果信息使用imshow方式显示。
YOLOv5是一种单阶段目标检测器算法
YOLOv5s是YOLOv5系列中较为轻量的网络模型,适合在边缘设备部署,进
行实时目标检测。
1、设置环境变量
PS:以HwHiAiUser用户登录开发板。
运行记录:
此处我使用的是命令行方式
(base) HwHiAiUser@orangepiaipro:~$ export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
(base) HwHiAiUser@orangepiaipro:~$ export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
2、安装ACLLite库
此处可以参考ACLLite仓安装ACLLite库。ACLLite链接:
https://gitee.com/ascend/ACLLite
【ACLLite库描述】
通过USB接口连接Camera与开发板,从Camera获取视频,基于yolov5s模型对输入视频中的物体做实时检测,将推理结果信息使用imshow方式显示。
- CANN版本要求: 7.0及以上社区版本。
|
命名空间 |
模块 |
说明 |
|
acllite |
common |
资源管理及公共函数模块 |
|
DVPPLite |
DVPP高阶封装模块 |
|
|
OMExecute |
离线模型执行高阶封装模块 |
|
|
Media |
媒体功能高阶封装模块 |
- 安装依赖
- 安装CANN
参考社区文档安装CANN
- 安装ffmpeg
(1) 通过如下命令查询OS版本
lsb_release -a
此处显示我的操作系统为Ubuntu 22.04
附1:我的硬件链接方案:
- 左侧:两个USB接口,一个是摄像头,另一个是USB扩展器(连接键盘鼠标)
- 中间:HDMI屏幕显示
- 右侧:电源连接线
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)