香橙派AIpro-携手华为-为AI赋能

turbolove 2024-08-05 15:01:28 阅读 90

文章目录

香橙派AIpro-携手华为-为AI赋能开箱和功能介绍开箱功能介绍

环境搭建镜像烧录进入系统

测试项目YOLOv5部署YOLOv5识别单张图片实时识别视频使用Ascend测试yolov5

产品评价

香橙派AIpro-携手华为-为AI赋能

今天新入手了一款香橙派AIPro,让我们一起跟着文章体验一下不一样的

开箱和功能介绍

开箱

香橙派AIpro包装是比较精致的,一共包含开发板,65W充电器和充电线一根,开发板中有一个32G的内存卡,里面是包含自带的系统。

在这里插入图片描述

主板对比,香橙派和我手中现有的AI板 Alinx zynq7000相比,体积更小,且不需要接入外置模块即可使用串口进行通信,整体结构更干净整洁。接通电源之后,香橙派的风扇声音也较小,且正常运行时在我的环境下,感知不到风扇的声音。

在这里插入图片描述

功能介绍

OrangePi AIpro(8-12T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8-12TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi AIpro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。 Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。

硬件规格参数:

硬件 参数
CPU 4核64位处理器+ AI处理器
GPU 集成图形处理器
AI算力 8-12TOPS算力
内存 LPDDR4X:8GB/16GB(可选),速率:3200Mbps
存储 1.SPI FLASH:32MB SATA/NVME SSD

2.(M.2接口2280)

3. eMMC插槽:32GB/64GB/128GB/256GB(可选),eMMC5.1 HS400

4.TF插槽

WIFI+蓝牙 Wi-Fi 5双频2.4G和5G

BT4.2/BLE

以太网收发器 10/100/1000Mbps以太网
显示 2xHDMI2.0 Type-A TX 4K@60FPS

1x2 lane MIPI DSI via FPC connector

摄像头 2x2-lane MIPI CSI camera interface,兼容树莓派摄像头
USB USB 3.0 HOST x2

USB Type-C 3.0 HOST x1

Micro USB x1 串口打印功能

音频 3.5mm耳机孔音频输入/输出
按键 1x关机键、1xRESET键、2x启动方式拨动键、1x烧录按键
40PIN 40PIN 功能扩展接口,支持以下接口类型:

GPIO、UART、I2C、SPI、 I2S、PWM

风扇 风扇接口x1
预留接口 2PIN电池接口
电源 Type-C PD 20V IN ,标准65W
支持的操作系统 Ubuntu、openEuler
产品尺寸 107*68mm
重量 82g

产品图

在这里插入图片描述

环境搭建

镜像烧录

接下来我们到官网去下载一个镜像,将其烧录到内存卡中,并且等待烧录完成,

注意: 我使用的是win11操作系统,使用香橙派资料提供的烧录工具烧录一直失败。但是也是可以进系统的。记得要使用管理员方式去启动烧写工具,不然可能即使显示烧写成功,也无法进入系统。

香橙派资料下载地址

烧录工具下载地址

在这里插入图片描述

在这里插入图片描述

进入系统

进入系统: 接上电源等待开机之后进入系统,之后输入密码Mind@123即可进入系统,我这里烧录的是香橙派提供的Ubuntu镜像

在这里插入图片描述

配置WIFI模块:使用图形界面连接上WIFI之后查看对应的地址

在这里插入图片描述

查看地址并使用远程ssh连接

在这里插入图片描述

在这里插入图片描述

下载pycharm: 测试网络模块,并且下载pycharm,可以看到可以正常进行互联网的访问

在这里插入图片描述

打开pycharm:香橙派的Ubuntu环境还是比较全的,可以正常的使用MobaXterm进行远程打开pycharm

在这里插入图片描述

测试项目YOLOv5

香橙派自带的conda的base安装的python环境是3.9.2,我们这里就使用这个环境来测试,如果你想更换的话请使用下面的命令自行更换环境

<code>conda create -n name python=version

部署YOLOv5识别单张图片

先到github上去下载yolov5将下载的zip文件传到香橙派中解压

unzip yolov5-master.zip

cd yolov5-master

检查pip位置是否正确

which pip

# (base) HwHiAiUser@orangepiaipro:~/Documents/yolov5-master$ which pip

# /usr/local/miniconda3/bin/pip

安装对应的库,这里面的错误我们先忽略。经过实验,这两个错误并不会影响运行。

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

在这里插入图片描述

识别单张图片 : 这个里面的yolov5m-seg.pt如果不存在,会自动到github上去下载,但是速度极慢,建议是下载好,然后指定对应路径的pt文件

<code>python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

在这里插入图片描述

观察输出:通过对比识别结果和原始图片,我们会发现YOLOv5模型在识别效率和精度方面表现非常出色。无论是公交车的轮廓还是细节,模型都能够准确地识别并标注出来,显示了其强大的图像处理能力。

<code># Fusing layers...

# YOLOv5m-seg summary: 301 layers, 21971597 parameters, 0 gradients, 70.8 GFLOPs

# image 1/2 /home/HwHiAiUser/Documents/yolov5-master/data/images/bus.jpg: 640x480 4 persons, 1 bus, 2052.6ms

# image 2/2 /home/HwHiAiUser/Documents/yolov5-master/data/images/zidane.jpg: 384x640 2 persons, 1 tie, 1660.7ms

# Speed: 4.7ms pre-process, 1856.6ms inference, 13.7ms NMS per image at shape (1, 3, 640, 640)

# Results saved to runs/predict-seg/exp3

实时识别视频

使用yolo对视频进行实时监测

修改源码detect.py的361行

parser = argparse.ArgumentParser()

parser.add_argument("--weights", nargs="+", type=str, default=ROOT / "yolov5s.pt", help="model path or triton URL")code>

# parser.add_argument("--source", type=str, default=ROOT / "data/images", help="file/dir/URL/glob/screen/0(webcam)")code>

parser.add_argument("--source", type=str, default=ROOT / "data/video", help="file/dir/URL/glob/screen/0(webcam)")code>

parser.add_argument("--data", type=str, default=ROOT / "data/coco128.yaml", help="(optional) dataset.yaml path")code>

parser.add_argument("--imgsz", "--img", "--img-size", nargs="+", type=int, default=[640], help="inference size h,w")code>

parser.add_argument("--conf-thres", type=float, default=0.25, help="confidence threshold")code>

parser.add_argument("--iou-thres", type=float, default=0.45, help="NMS IoU threshold")code>

parser.add_argument("--max-det", type=int, default=1000, help="maximum detections per image")code>

parser.add_argument("--device", default="", help="cuda device, i.e. 0 or 0,1,2,3 or cpu")code>

parser.add_argument("--view-img", action="store_true", help="show results")code>

parser.add_argument("--save-txt", action="store_true", help="save results to *.txt")code>

parser.add_argument("--save-csv", action="store_true", help="save results in CSV format")code>

parser.add_argument("--save-conf", action="store_true", help="save confidences in --save-txt labels")code>

parser.add_argument("--save-crop", action="store_true", help="save cropped prediction boxes")code>

parser.add_argument("--nosave", action="store_true", help="do not save images/videos")code>

parser.add_argument("--classes", nargs="+", type=int, help="filter by class: --classes 0, or --classes 0 2 3")code>

parser.add_argument("--agnostic-nms", action="store_true", help="class-agnostic NMS")code>

parser.add_argument("--augment", action="store_true", help="augmented inference")code>

parser.add_argument("--visualize", action="store_true", help="visualize features")code>

parser.add_argument("--update", action="store_true", help="update all models")code>

parser.add_argument("--project", default=ROOT / "runs/detect", help="save results to project/name")code>

parser.add_argument("--name", default="exp", help="save results to project/name")code>

parser.add_argument("--exist-ok", action="store_true", help="existing project/name ok, do not increment")code>

parser.add_argument("--line-thickness", default=3, type=int, help="bounding box thickness (pixels)")code>

parser.add_argument("--hide-labels", default=False, action="store_true", help="hide labels")code>

parser.add_argument("--hide-conf", default=False, action="store_true", help="hide confidences")code>

parser.add_argument("--half", action="store_true", help="use FP16 half-precision inference")code>

parser.add_argument("--dnn", action="store_true", help="use OpenCV DNN for ONNX inference")code>

parser.add_argument("--vid-stride", type=int, default=1, help="video frame-rate stride")code>

opt = parser.parse_args()

opt.imgsz *= 2 if len(opt.imgsz) == 1 else 1 # expand

print_args(vars(opt))

return opt

执行下面的命令:等待完成

python segment/predict.py --weights ~/Documents/yolov5m-seg.pt --source ~/Downloads/test.mp4

在这里插入图片描述

YoloV5测试视频

使用Ascend测试yolov5

测试项目下载地址

<code># 配置程序编译依赖的头文件与库文件路径

export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest

export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub

# 安装对应的库

apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev

# 安装ACLLite

# 拉取ACLLite仓库,并进入目录

git clone https://gitee.com/ascend/ACLLite.git

cd ACLLite

# 设置环境变量,其中DDK_PATH中/usr/local请替换为实际CANN包的安装路径

export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest

export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub

# 安装,编译过程中会将库文件安装到/lib目录下,所以会有sudo命令,需要输入密码

bash build_so.sh

# 解压之后进入yolo文件夹

cd EdgeAndRobotics/Samples/YOLOV5MultiInput

export TE_PARALLEL_COMPILER=1

export MAX_COMPILE_CORE_NUMBER=1

# 下载并且转换相关的模型

cd model

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/yolov5s_nms.onnx --no-check-certificate

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/aipp.cfg --no-check-certificate

atc --model=yolov5s_nms.onnx --framework=5 --output=yolov5s_nms --input_shape="images:1,3,640,640;img_info:1,4" --soc_version=Ascend310B4 --insert_op_conf=aipp.cfgcode>

# 准备测试视频

cd ../data

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/test.mp4 --no-check-certificate

# 编译样例源码

cd ../scripts

bash sample_build.sh

# 在HDMI连接屏幕场景,执行以下脚本运行样例。此时会以画面的形式呈现推理效果。

bash sample_run.sh imshow

# 在直连电脑场景,执行以下脚本运行样例。此时会以结果打屏的形式呈现推理效果。

bash sample_run.sh stdout

模型转换结果

在这里插入图片描述

模型输出结果

在这里插入图片描述

产品评价

香橙派AiPro是一款功能强大的AI开发板

性能强劲:香橙派AiPro采用了昇腾AI技术路线,配备了4核64位处理器+AI处理器,并集成了图形处理器。它支持高达8TOPS的AI算力,并拥有8GB/16GB LPDDR4X内存,可以外接多种容量的eMMC模块12。这些配置使得香橙派AiPro在AI算法原型验证、推理应用开发等方面表现出色。丰富的接口和拓展性:香橙派AiPro配备了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、USB接口等,还预留了电池接口。这些接口赋予了香橙派AiPro强大的可拓展性,使其能够适应多种应用场景。支持多种操作系统:香橙派AiPro支持Ubuntu、openEuler等操作系统,这为用户提供了更多的选择空间,同时也方便了用户根据自己的需求进行开发和部署。使用体验:香橙派AiPro的包装盒精致小巧,官方提供了完整的配件,包括开发板、适配器和充电器等。开发板上的静音风扇效果良好,开机时噪音短暂,之后几乎无声。WIFI和蓝牙的天线扣设计位置也相对方便。在实际使用中,用户可以通过HDMI接口连接开发板显示,也可以通过SSH等方式远程连接。

综上所述,香橙派AiPro是一款性能强劲、接口丰富、拓展性强、支持多种操作系统的AI开发板。如果你正在寻找一款功能强大的AI开发板,香橙派AiPro是一个不错的选择。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。