品划做网站,昆明百度推广开户费用,医院招聘网站建设和维护,wordpress 评论验证码 插件一、前言
近期收到了一块受到业界人士关注的开发板香橙派AIpro,因为这块板子具有极高的性价比#xff0c;同时还可以兼容ubuntu、安卓等多种操作系统#xff0c;今天博主便要在一块832g的香橙派AI香橙派AIpro进行YoloV8s算法的部署并使用一个外接的鱼眼USB摄像头…一、前言
近期收到了一块受到业界人士关注的开发板香橙派AIpro,因为这块板子具有极高的性价比同时还可以兼容ubuntu、安卓等多种操作系统今天博主便要在一块832g的香橙派AI香橙派AIpro进行YoloV8s算法的部署并使用一个外接的鱼眼USB摄像头来作目标检测与识别。经过博主的整体测试这块开发板可以用来作为边缘计算平台承担大众化场景的目标检测任务。随着人工智能技术的不断发展目标检测作为计算机视觉领域的一个重要任务已经得到了广泛的研究和应用。
二、香橙派AIpro介绍
2.1香橙派简介
作为业界首款基于昇腾深度研发的AI开发板Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀。采用昇腾AI技术路线集成图形处理器拥有8GB/16GB LPDDR4X可以外接32GB/64GB/128GB/256GB eMMC模块支持双4K高清输出8/20 TOPS AI算力。配套了MindStudio全流程开发工具链并提供一键镜像烧录工具和模型适配工具实现极简开发让开发者快速上手使用支持算法模型的快速适配。 可广泛适用于AI教学实训、AI算法验证、智能小车、机械臂、边缘计算、无人机、人工智能、云计算、AR/VR、智能安防、智能家居、智能交通等领域。Orange Pi AIpro支持Ubuntu、openEuler操作系统满足大多数AI算法原型验证、推理应用开发的需求。
2.2香橙派硬件及接口介绍 香橙派AIpro丰富的接口赋予了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屏等预留电池接口。 在操作系统方面Orange Pi AIpro支持Ubuntu、openEuler操作系统满足大多数AI算法原型验证、推理应用开发的需求可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域覆盖 AIoT各个行业。
三、实际场景应用体验
3.1所用硬件及技术介绍
3.1.1Yolo V8介绍
YOLOv8是YOLO系列算法的最新版本其在保持高效、准确的同时还进一步优化了算法结构提高了运行速度。YOLOv8采用了全新的网络结构和损失函数使得模型在训练过程中更加稳定同时也提高了模型的泛化能力。 YOLOv8采用了端到端的训练方式将目标检测视为一个回归问题直接预测物体的位置和类别。在模型结构上YOLOv8采用了CSPDarknet53作为骨干网络通过增加残差连接和特征融合提高了模型的特征提取能力。在损失函数方面YOLOv8采用了CIoU损失函数同时考虑了预测框与真实框的重叠面积、中心点距离以及长宽比等因素使得模型在训练过程中更加关注于提高预测框的准确性。
3.1.2鱼眼镜头介绍
鱼眼镜头是一种焦距为16mm或更短的并且视角接近或等于180°的镜头。 它是一种极端的广角镜头“鱼眼镜头”是它的俗称。为使镜头达到最大的摄影视角这种摄影镜头的前镜片直径很短且呈抛物状向镜头前部凸出与鱼的眼睛颇为相似“鱼眼镜头”因此而得名。 鱼眼镜头属于超广角镜头中的一种特殊镜头它的视角力求达到或超出人眼所能看到的范围。因此鱼眼镜头与人们眼中的真实世界的景象存在很大的差别因为我们在实际生活中看见的景物是有规则的固定形态而通过鱼眼镜头产生的画面效果则超出了这一范畴。 鱼眼镜头具有超大视场因而被广泛应用于场景监视、卫星定位、机器人导航、微小智能系统及工程测量等领域。由于鱼眼镜头能够实现全空域包容和全时域实时信息的获取特别是符合现代战争对信息获取技术的需求这是其他光电侦测手段所不能比的因此鱼眼镜头在国防和军事领域也得到了重要应用。
3.2鱼眼镜头图像获取
3.2.1流程介绍
通过USB接口连接鱼眼镜头与香橙派AIpro从鱼眼镜头获取图像、并处理为YUV图像。
3.2.2相关驱动安装
首先通过下面的链接下载相关源码
Ascend/EdgeAndRobotics - Gitee.com下载完成后进行解压并进入到样例目录 3.2.3安装FFmpeg
sudo apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev运行结果 3.2.4安装OpenCV
sudo apt-get install libopencv-dev运行结果 3.2.5编译样例源码
执行编译命令
g main.cpp -o main -lavutil -lavformat -lavcodec -lavdevice编译命令执行成功后在USBCamera样例目录下生成可执行文件main。 运行结果 3.2.6运行样例从Camera获取图像
运行可执行文件其中/dev/video0表示Camera设备需根据实际情况填写 ./main /dev/video0
运行成功后在USBCamera样例目录下生成yuyv422格式、1280*720分辨率的out.yuv文件。
运行结果 注意当把一个摄像头插入开发板后执行ls /dev/vi*命令可看到摄像头的vedio节点。这里出现了两个设备节点/dev/video0、/dev/video1是因为一个是图像/视频采集一个是metadata采集因此本样例中在运行可执行文件时选择图像/视频采集的设备节点/dev/video0。
3.2.7检查从Camera获取的图像
执行如下命令使用FFmpeg软件查看图像
ffplay -pix_fmt yuyv422 -video_size 1280*720 out.yuv运行结果 3.3YoloV8s算法部署
在使用YOLOv8之前需要先安装相关的依赖库包括Python、PyTorch等。同时为了方便使用YOLOv8我们还可以选择安装一些辅助工具如COCO数据集、预训练模型等。
3.3.1环境准备
博主选择的是torch 2.2和torchvision 0.17安装如下
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simplepip install torch2.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install torchvision0.17.0 -i https://pypi.tuna.tsinghua.edu.cn/simple3.3.2安装yolo v8
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple3.3.3编写实时目标检测程序
import cv2from ultralytics import YOLO
from cv2 import getTickCount, getTickFrequency加载 YOLOv8 模型
model YOLO(weights/yolov8s.pt)获取摄像头内容参数 0 表示使用默认的摄像头
cap cv2.VideoCapture(1)while cap.isOpened():loop_start getTickCount()success, frame cap.read() # 读取摄像头的一帧图像if success:results model.predict(sourceframe) # 对当前帧进行目标检测并显示结果annotated_frame results[0].plot()# 中间放自己的显示程序loop_time getTickCount() - loop_starttotal_time loop_time / (getTickFrequency())#FPS int(1 / total_time)# 在图像左上角添加FPS文本#fps_text fFPS: {FPS:.2f}#font cv2.FONT_HERSHEY_SIMPLEX#font_scale 1#font_thickness 2#text_color (0, 0, 255) # 红色#text_position (10, 30) # 左上角位置#cv2.putText(annotated_frame, fps_text, text_position, font, font_scale, text_color, font_thickness)cv2.imshow(img, annotated_frame)# 通过按下 q 键退出循环if cv2.waitKey(1) 0xFF ord(q):breakcap.release() # 释放摄像头资源
cv2.destroyAllWindows() # 关闭OpenCV窗口3.3.4最终识别结果 四、结语
作为一名机器视觉工程师本次我使用香橙派AIpro来部署了yolo V8s的目标检测与识别算法同时使用适合机器人使用的鱼眼摄像头进行真实图像获取并将实时获取的图像传递给yoloV8算法进行图像中目标的检测与识别。经过测试香橙派AIpro可以实时使用yoloV8算法进行目标识别与检测并且识别的准确率还是较高的。 经过博主的整体测试香橙派AIpro的计算能力完全可以可以用来作为边缘计算平台来承担大众化场景的目标检测任务。相信这款高性价比的开发板会为人们快速验证部署自己的人工智能算法提供性价比高、提高开发效率的完美方案。后续博主也会通过自己制作数据集打标签的方式在香橙派AIpro上来尝试训练一下模型。