🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥 微信:zsqtcyl 联系我领取福利

🤞拥抱香橙派AIPro,解锁目标检测智慧算力🤞

🎈香橙派AIPro是什么?

香橙派AIPro是由香橙派联合华为精心打造,建设人工智能新生态的高端产品,采用昇腾AI技术路线,拥有8TOPSAI算力,8GB/16GB的LPDDR4X内存。

在这里插入图片描述


香橙派AIPro拥有丰富的拓展接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口。
香橙派AIPro支持Ubuntu、openEuler操作系统,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域。

🎈香橙派AIPro支持的AI场景

由于支持的场景较多,以下介绍三种常见场景

  1. 目标检测&目标分类
    通过上传指定视频到香橙派AIPro或者USB接口连接Camera与开发板,从Camera获取视频,基于yolov系列模型对输入视频中的物体做实时检测,将推理结果信息通过实时视频进行展示。

    在这里插入图片描述

  2. 手写数字识别(训练&推理)
    手写数字识别是将手写数字图像映射到相应的数字类别上的过程。它是机器学习和计算机视觉领域的一个经典问题。实现手写数字识别涉及到数据收集、特征提取、模型选择、训练和评估等机器学习中的基本步骤。

    在这里插入图片描述

  3. 视频编码解码
    视频解码使用ACLLite接口完成视频解码,主要功能为读取mp4文件的前十帧并解码为YUV图片,视频编码使用ACLLite接口完成视频编码,主要功能为读取YUV文件的十次并编码为H264视频文件。

    🎈SSH连接香橙派AIPro完成摄像头接入

    `香橙派AIPro`

    本次测试采用的是USB摄像头接入

    摄像头连接

    🎈香橙派AIPro运行YoloV5s实时目标检测

🍮 前期准备

1.设置环境变量并安装

 #进入SSH配置程序编译依赖的头文件与库文件路径
export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest 
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub

2.安装ACLLite库和ffmpeg

#一般Ubuntu 22.04已经安装了如下的包
apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev
# 拉取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

🍮源码仓库下载

1.进入SSH页面下载源码仓

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

# 切换到样例目录
cd EdgeAndRobotics/Samples/YOLOV5USBCamera/model

2.下载PyTorch框架的Yolov5模型(.onnx),并转换为昇腾AI处理器能识别的模型(.om)**
这个地方需要注意一下:昇腾AI处理器识别的是.om后缀的模型,所以需要转换

#(可选,可选,可选)当设备内存小于8G时,可设置如下两个环境变量减少atc模型转换过程中使用的进程数,减小内存占用。
export TE_PARALLEL_COMPILER=1
export MAX_COMPILE_CORE_NUMBER=1
#下载yolov5s的模型和转换模型
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/yolov5s.onnx --no-check-certificate
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov5s/aipp.cfg --no-check-certificate

🍮目标检测执行

1.执行转换命令把yolov5s.onnx转为yolov5s.om

atc --model=yolov5s.onnx --framework=5 --output=yolov5s --input_shape="images:1,3,640,640"  --soc_version=Ascend310B4  --insert_op_conf=aipp.cfg

这个转换的过程比较长,稍等一下

在这里插入图片描述


atc命令中各参数的解释如下,
--model:Yolov5网络的模型文件的路径。
--framework:原始框架类型。5表示ONNX。
--output:yolov5s.om模型文件的路径。请注意,记录保存该om模型文件的路径,后续开发应用时需要使用。
--input_shape:模型输入数据的shape。
--soc_version:昇腾AI处理器的版本。

2.编译样例源码

cd ../scripts 
bash sample_build.sh

3.运行样例
这个时候HDMI把香橙派AIPro连接到显示屏,然后执行以下命令运行程序,开启摄像头图像接入,然后在显示屏上实时显示目标检测结果的画面

#执行以下脚本运行样例。
bash sample_run.sh imshow

运行视频演示:

在这里插入图片描述

🍚总结

使用感受:本次使用香橙派AIPro运行yolov5s,主要是对该开发板进行目标检测能力的测试,通过摄像头实时接收图像进行目标检测,无论是人像,手机等其他工具都能够很好的进行识别,香橙派AIPro具有迷你紧凑的机身,却能支撑如此大的算力,极大的助力了我国物联网+AI的发展。
使用场景:目标检测,机器人,自然语言、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等处理等场景都能很好的应对,相比于其他派,最亮眼的地方是香橙派AIPro基于昇腾深度研发的AI开发板,集成了大算力,能够有效应对各种AI环境。
个人建议:与国产派和传统派系列的相比来说,香橙派AIPro具有很好的优势,作为以支撑强大算力的开发板来说,需要改进的一点是8/16tops的算力还是稍微有些低,可以借鉴Jetson,从算力方面进行提升,以便能够适应更大算力的大模型。

大功告成,撒花致谢🎆🎇🌟,关注我不迷路,带你起飞带你富。
Writted By 知识浅谈

Logo

昇腾万里,让智能无所不及

更多推荐