OrangePi
AIpro(8T)
香橙派联合华为精心打造,建设人工智能新生态
章节一:引言
1.1 背景
香橙派(OrangePi)是深圳市迅龙软件有限公司旗下开源产品品牌,迅龙软件成立于2005年,是全球领先的开源硬件和开源软件服务商,致力于让极客、创客、电子爱好者享用到来自中国的优质、低价的科技产品,通过大规模的社会化协作去创建一个更加美好的信息化人类文明。
最近收到OrangePi AIpro测评邀请,十分感谢香橙派。之前用过树莓派4B做过一些检测类项目,所以上手起来也很快。
下面这是开箱后的所有硬件图片。
上电开机,开机后的界面如下
1.2 介绍OrangePi的软硬件配置和功能特点
操作系统用的是Ununtu22.04.3LTS
硬件特性如下
正面图如下
背面图如下
可以说硬件接口是非常丰富。
OrangePi AIpro主打就是一个AI算例,在上面可以运行各种大模型,具体取决于模型的大小和复杂度。它搭载了华为昇腾AI芯片,拥有8TOPS的算力,支持FP16、BF16、INT8等多种数据格式,能够高效运行各类AI算法。根据官方提供的资料,OrangePi AIpro已经成功运行了以下一些大模型:
- 图像识别模型:ResNet50、MobieNetV2、YOLOv4等。
- 语音识别模型: DeepSpeech2、讯飞语音等。
- 自然语言处理模型: BERT、GPT-2等。
- 计算机视觉模型: SSD、Faster R-CNN等。
此外,OrangePi AIpro还支持昇腾模型转换工具,可以将开源框架的模型转换为昇腾模型从而在OrangePi AIpro上运行。以下是一些具体的案例:
- 基于OrangePi AIpro进行图像识别:可以使用OrangePi AIpro来部署图像识别模型,例如ResNet50 MobileNetV2,实现对图片内容的识别和分类。基于香橙派Alpro进行语音识别:可以使用OrangePi AIpro来部署语音识别模型,例如DeepSpeech2或讯飞语音,实现语音转文字的功能。
- 基于OrangePi AIpro进行自然语言处理: 可以使用OrangePi AIpro来部署自然语言处理模型,例如BERT或GPT-2,实现文本摘要、机器翻译、问答等功能。
- 基于OrangePi AIpro进行计算机视觉:可以使用OrangePi AIpro来部署计算机视觉模型,例如SSD或Faster R-CNN,实现目标检测和跟踪等功能。
章节二:应用场景和实际使用经验
2.1 安装Qt并测试
下载地址如下qt在线安装包
下载后放到无中文的路径下执行,注意一定要选带GCC的版本,不然缺GCC环境,现在在线安装只能安装6.7以上,不过也能用,选择后静待安装。
安装完成,还要注意,还有些依赖库需要安装,安装后放入代码并测试。
sudo apt-get update
sudo apt install libxcb-xinerama0
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libxkbcommon-dev
2.2 安装OpenCV并测试
OpenCV下载地址官方地址
下载后解压到目录,然后在终端输入下面指令:
#解压
unzip opencv-4.9.0.zip
#进入解压路径
cd opencv-4.9.0
#创建构建目录
mkdir build
cd build
#安装依赖库
sudo apt-get install build-essential
sudo apt-get install python-numpy python3-numpy python-pandas python3-pandas
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg
#构建参数
cmake ..
#开始编译
sudo make -j4
#编译之后安装
sudo make install
#修改 opencv.conf 文件,在此空文件中添加 opencv 库的安装路径:/usr/local/lib
sudo gedit /etc/ld.so.conf.d/opencv.conf
#更新系统共享链接库
sudo ldconfig
#配置 bash ,修改 bash.bashrc 文件
sudo gedit /etc/bash.bashrc
#在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#执行如下命令使得配置生效
source /etc/bash.bashrc
#执行测试程序,结果如下
cd ./bin
./opencv_test_highgui
qt+opencv进行测试
//pro文件
INCLUDEPATH += /usr/local/include/opencv4/
INCLUDEPATH += /usr/local/include/opencv4/opencv2/
LIBS += -L/usr/local/lib/ -lopencv_core
LIBS += -L/usr/local/lib/ -lopencv_highgui
LIBS += -L/usr/local/lib/ -lopencv_imgcodecs
LIBS += -L/usr/local/lib/ -lopencv_imgproc//
#include <iostream>
#include "opencv2/objdetect.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/opencv.hpppt"
int main(int argc, char** argv)
{//QApplication a(argc, argv);//使用opencv的ui时,注释掉这行,否则gtk冲突cv::Mat image = cv::imread("aa.jpeg");if(image.empty()){std::cout<<"Could not read the image: "<<std::endl;return 1;}//cv::imshow("Display window", image);cv::waitKey(0);return 0;
}
用Open+Qt处理16k*41k大图像,做AOI缺陷检测,由于内存只有8G处理时间稍长,连续测试100张还算稳定,由于代码比较多,这里就附上代码了。
2.3 海康工业相机测试
相机驱动下载地址相机地址
下载后解压到目录
安装包对应的操作系统,这里选择arm架构64位系统arm架构64位系统:MVS-2.1.2_aarch64_20221024.debMVS-2.1.2_aarch64_20221024.tar.gz
arm架构32位系统:MVS-2.1.2_armhf_20221024.debMVS-2.1.2_armhf_20221024.tar.gzMVS-2.1.2_arm-none_20221024.tar.gz
x86架构64位系统:MVS-2.1.2_x86_64_20221024.debMVS-2.1.2_x86_64_20221024.tar.gz
x86架构32位系统:MVS-2.1.2_i386_20221024.debMVS-2.1.2_i386_20221024.tar.gz
安装
sudo dpkg -i MVS-3.0.1_aarch64_20240422.deb
启动客户端软件
/opt/MVS/bin/MVS.sh &
最后安装完成
执行下面命令进行ip配置
//查看防火墙状态:
sudo ufw status
//关闭防火墙:
sudo ufw disable
命令行输入sudo nmtu,打开配置界面,打开后选择Edit a connection并回车进入
选择网卡 Wired connection 1 并进入
进入后更加自己的情况设置ip地址,设置后选择OK退出
上面设置好后选择下面 Activate a connection并进入
进入后光标移动到网卡右边,按回车后将状态设置为 Activate
然后通过 ip a s eth0 就能看到网口的 IP 地址已经变成前面设置的静态 IP 地址 了。
最后成功采集图像
2000万分辨率的相机能做到5.81的帧率,连续采集3万张也能稳定采集。
2.4 串口通信测试
板卡上面总共有3个串口uart0,uart2和uart7,uart0是调试串口,不能当普通串口使用,我这里先选择uart2进行测试。
我这里用的是串口转usb来和笔记本通信
输入“ls /dev/ttyAMA*”查看设备节点
进入测试程序目录,serial是可以直接测试的程序,serial.c是程序源码
由于这里的代码读取没有等待,我这里加了等待
然后重新编译源码
编译后重新测试,可以正常发送和接收
2.5 目标检测样例测试
OrangePi在镜像中预装了 Jupyter Lab 软件。Jupyter Lab 软件是一个基于 web 的交互式开发环境,集成了代码编辑器、终端、文件管理器等功能,使得开发者可以在一个界面中完成各种任务。并且OrangePi在镜像中也预置了一些可以在 Jupyter Lab 软件中运行的 AI 应用样例。这些样例都是使用 Python 编写的,并调用了 Python 版本的 AscendCL 编程接口。
然后执行下面命令
#进入程序目录
cd ~/samples/notebooks
#启动脚本
./start_notebook.sh
打印信息中会出现软件网址
打开浏览器输入上面的网址
这里选择01程序打开,双击打开main.jpynb,再点击三角图标运行程序。
下面是视频目标检测的运行效果
将infer_mode设置为“image”可切换成图片检测。
2.6 OCR文字识别测试
OCR 一般指 Scene Text Recognition(场景文字识别),主要面向自然场景。OCR 两阶段方法一般包含两个模型,检测模型负责找出图像或视频中的文字位置,识别模型负责将图像信息转换为文本信息。在样例中已经包含转换后的 om 模型和测试图片,可以按照以下流程在 Jupyter Lab 中运行该样例.
选择02-ocr程序,然后开始运行
用我自己的图片测试,识别率一般
2.7 语音识别测试
在这个样例中,我们使用了语音识别模型 WeNet,该模型可以指将语音转换为文本。在样例中已经包含转换后的 om 模型和测试语音,可以按照以下流程在Jupyter Lab 中运行该样例。
选择09-speech-recognition程序,然后开始运行main.ipynb
最后模型对测试语音进行推理,识别出了语音中的文本信息为“智能语音作为智能时代人机交互的关键接口各行业爆发式的场景需求驱动行业发展进入黄金期”。
章节三:总结与展望
3.1 提出改进和优化的建议
1.工具栏界面不是很美观,太窄了,不够大气。第二张图左边的四个小窗口,个人觉得是多余的,而且Aplications旁边的菜单栏图标还被挡住一半。
2.处理耗内存的程序时,机器容易直接黑屏然后自动重启了,出现过很多次。
3.把 Wired connection 1 打开,再把网线插上去,Wifi就用不了了,很奇怪,重启过很多次都不行,非得把网线拔了才能通过wifi连上网
4.开机没有显示OrangePi的logo,而且开机时间较长,没有LOGO或者日志显示,很容易让人误解成开机出现问题。
3.2 OrangePi的优势和发展潜力
OrangePi AIpro的硬件性能比较好,可扩展性也很强,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。 Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。
在官网上看到OrangePi出了自己的开源操作系统,也是非常期待,希望能早日应用到OrangePi AIpro上。
国内做这种硬件的很少,发展前景还是很大,希望不断完善系统,软硬件和社区,丰富生态,越来越好最后做到行业第一。