OrangePi AIpro小试牛刀-目标检测(YoloV5s)

2024-06-09 21:36

本文主要是介绍OrangePi AIpro小试牛刀-目标检测(YoloV5s),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。

一窥芳容

img

img

这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器,功耗低至8W

默认AI CPU和Control CPU 比例1:3,

芯片名称

310B1:表示芯片算力规格为20T。
310B4:表示芯片算力规格为8T

orangepi AI pro之后会推出20TOPS AI算力版本开发板

ubuntu系统构建

本次测评基于ubuntu系统烧写,linux镜像脚本编译,usb摄像头yolov5目标检测编写文章。

基于PC主机烧写Ubuntu22.04

烧写步骤
  1. 准备TF读卡器,32G或者更大的TF卡,Ubuntu官方镜像

  2. 镜像下载地址,选择ubuntu镜像

  3. 使用官方工具中的balenaEtcher烧写工具,使用portable版

选择32的磁盘

img

烧写速度15M/s,烧写完成之后会进行30min的校验。也可取消校验

  1. 插卡,启动开发板
登录方式

使用串口登录

软件MobaXterm,新建Session,选择Serial,CH340USB驱动,波特率115200

img

使用账户:HwHiAiUser ,密码:Mind@123

Linux镜像编译脚本的使用

前言

目前linux镜像编译脚本只在Ubuntu22.04的x64电脑上测试过,请保证自己ubuntu版本为22.04.

本次使用VMware Workstation 的ubuntu22.04虚拟机镜像编译脚本,虚拟机镜像磁盘最小为50G,软件源替换为清华源

镜像编译脚本压缩包

1.在下载页面选择Linux源码

img

2.然后下载image.build.tar.gz压缩包,使用filezilla传到ubuntu22.04 目录/opt下

3.解压

tar -zxf image-builder.tar.gz

4.进入src目录下会有3种镜像,必须先制作minimal镜像

模块名称**模块目录功能简介
最小镜像src/minimal可以在开发板上启动但缺少部分依赖的镜像
完整镜像src/complete完整依赖镜像
压缩扩容镜像src/compress带有压缩扩容功能的完整依赖镜像
制作最小镜像

1.将ubuntu language设置为English(UK)

2.tf读卡器插入电脑,usb口,vmware会弹出窗口将硬盘接入虚拟机

img

3.切换root用户,安装依赖包

su -i
apt-get install -y qemu-system qemu-user qemu-user-static binfmt-support

4.然后将emmc-head文件依赖的库文件拷贝到ubuntu22.04的/usr/lib64,库文件在==linux源码====library文件夹==

img

使用filezilla上传

img

5.运行emmc-head命令,输出以下内容,表示lib安装成功

img

6.进入sr/minimal,ubuntu预装进开发板的软件包deb可以放在

ubuntu/22.04/download

7.使用fdish -l查看硬盘挂载情况

找到32G tf卡所在挂载路径

img

8.执行以下命令,开始制作最小镜像

bash base.sh ubuntu/22.04/ /dev/sdb ubuntu/22.04/download/

img

9.最终输出,制作成功

Minimal image build successful!

查看磁盘分区,被划分成5个分区

img

TF插入主板,会重启一次,重启之后可以使用串口登录

YoloV5s目标检测

前言

使用usb摄像头,加orangepi AI pro开发板。

执行准备

确定具有桌面的镜像,使用HDMI0连接显示器、

HwHiAiUser用户登录开发板

切换到root用户

cd /opt/opi_testcd ResnetPicture/scriptsbash sample_run.sh

如果你是orangepi aipro ubuntu 22.04镜像 -> 安装ACClite

2.安装依赖

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

检查ffmepg是否安装成功

dpkg -S ffmpeg

3.安装步骤:

# 拉取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
样例下载

==切换用户到HwHiAiUser==

下载源码,从gitee上clone

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

切换到样例目录

cd EdgeAndRobotics/Samples/YOLO5USBCamera
cd model
运行样例

1.使用usb摄像头,直接从外设使用opencv读取图片帧处理

2.获取PyTorch框架的Yolov5模型(*.onnx),并转换为昇腾AI处理器能识别的模型(*.om)

  • 当设备内存小于8G时,可设置如下两个环境变量减少atc模型转换过程中使用的进程数,减小内存占用。

    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.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.onnx --framework=5 --output=yolov5s --input_shape="images:1,3,640,640"  --soc_version=Ascend310B4  --insert_op_conf=aipp.cfg
    
    • atc命令中各参数的解释如下,详细约束说明请参见《ATC模型转换指南》
      • --model:Yolov5网络的模型文件的路径。
      • --framework:原始框架类型。5表示ONNX。
      • --output:yolov5s.om模型文件的路径。请注意,记录保存该om模型文件的路径,后续开发应用时需要使用。
      • --input_shape:模型输入数据的shape。
      • --soc_version:昇腾AI处理器的版本。version = Ascend310B4

3.编译源码

~/EdgeAndRobotics/Samples/YOLOVSUSBCamera/models$ cd ../scripts
ls
sample_run.bash sample_build.sh
编译样例源码
bash sample_build.sh

4.运行样例

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

bash sample_run.sh stdout

最后终于成功

img

img

总结错误

bash sample_build.sh

  1. 文件无法写入问题

权限,之前转换模型时使用的root

img

img

解决

sudo chown -R HwHiAiUser:HwHiAiUser buildsudo chown -R HwHiAiUser:HwHiAiUser out
  1. ACLLite库没安装错误

sudo bash sample_build.sh
[sudo] password for HwHiAiUser:
[INFO] Sample preparation
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- set default INC_PATH: /usr/local/Ascend/ascend-toolkit/latest
-- set default LIB_PATH: /usr/local/Ascend/ascend-toolkit/latest/runtime/lib64/stub
-- Found OpenCV: /usr (found version "4.5.4")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/HwHiAiUser/EdgeAndRobotics/Samples/YOLOV5USBCamera/build/intermediates/host

img

解决方法在上面 安装ACLLite

  1. 模型加载失败

原因是转换模型时root用户,生成的yolov5s.om模型是root用户

img

img

解决方法:

sudo chown -R HwHiAiUser:HwHiAiUser yolov5s.om

4.** cv::Exception**
我在串口执行sample_run.sh时

terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(4.5.4) ./modules/highgui/src/window_gtk.cpp:635: error: (-2:Unspecified error) Can't initialize GTK backend in function 'cvInitSystem'

sample_run.sh: line 5: 19325 Aborted (core dumped) ./main $1
[INFO] The program runs failed

将其切换到桌面系统,因为要启动一个输出图像页面

img

其他样例

使用AscendCL显示不同功能

样例功能样例名称
“Hello World” For AscendCLsampleResnetQuickStart以ResNet50网络模型为例进行模型推理,实现对物体进行分类,并给出TOP5类别置信度和相应类别信息
Object Detection with Acllite Acllite目标检测sampleYOLOV7以YOLOV7网络模型为例,使能Acllite对图片进行预处理,并通过模型转换使能静态AIPP功能,使能AIPP功能后,YUV420SP_U8格式图片转化为RGB,然后减均值和归一化操作,并将该信息固化到转换后的离线模型中,对YOLOV7网络执行推理,对图片进行物体检测和分类,并给出标定框和类别置信度。

具体学习可参考-> samples: CANN Samples (gitee.com)

参考资料

[1]深圳市迅龙软件有限公司. (2024). OrangePi AI Pro 昇腾用户手册 V0.3.1[用户手册]. 深圳: 深圳市迅龙软件有限公司.

[2]华为技术有限公司. (2024). EdgeAndRobotics[源代码]. Gitee平台. https://gitee.com/ascend/EdgeAndRobotics

深圳迅龙科技有限公司. (2024). Orange Pi AI Pro产品介绍与技术支持[EB/OL]. 橙派官网, http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html.

这篇关于OrangePi AIpro小试牛刀-目标检测(YoloV5s)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046355

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考  MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通与断开。  ​ 按键抖动 由于按键内部使用的是机