香橙派AIpro测评:yolo8+usb鱼眼摄像头的Camera图像获取及识别

news2024/11/26 2:04:47

一、前言

近期收到了一块受到业界人士关注的开发板"香橙派AIpro",因为这块板子具有极高的性价比,同时还可以兼容ubuntu、安卓等多种操作系统,今天博主便要在一块8+32g的香橙派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/simple

pip install torch==2.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install torchvision==0.17.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
3.3.2安装yolo v8
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
3.3.3编写实时目标检测程序
import cv2

from 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(source=frame) # 对当前帧进行目标检测并显示结果
    annotated_frame = results[0].plot()

    # 中间放自己的显示程序
    loop_time = getTickCount() - loop_start
    total_time = loop_time / (getTickFrequency())
    #FPS = int(1 / total_time)
    # 在图像左上角添加FPS文本
    #fps_text = f"FPS: {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'):
        break

cap.release()  # 释放摄像头资源
cv2.destroyAllWindows()  # 关闭OpenCV窗口
3.3.4最终识别结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、结语

作为一名机器视觉工程师,本次我使用香橙派AIpro来部署了yolo V8s的目标检测与识别算法,同时使用适合机器人使用的鱼眼摄像头进行真实图像获取,并将实时获取的图像传递给yoloV8算法进行图像中目标的检测与识别。经过测试香橙派AIpro可以实时使用yoloV8算法进行目标识别与检测,并且识别的准确率还是较高的。
经过博主的整体测试,香橙派AIpro的计算能力完全可以可以用来作为边缘计算平台来承担大众化场景的目标检测任务。相信这款高性价比的开发板会为人们快速验证部署自己的人工智能算法提供性价比高、提高开发效率的完美方案。后续博主也会通过自己制作数据集打标签的方式,在香橙派AIpro上来尝试训练一下模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1897900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

护航端侧大模型平稳健康发展,百度大模型内容安全Lite版正式发布

6月28日,WAVE SUMMIT深度学习开发者大会 2024 “智变应用、码动产业”平行论坛在北京召开。与会,百度大模型内容安全Lite版正式发布,可面向低算力和超低算力的终端大模型提供离线场景下的一站式安全解决方案,为各类终端大模型平稳…

社区活动|FlowUs知识库的发展|先进技术的落地应用|下一代生产力工具你用了吗

在当今快速发展的数字化时代,技术的进步不断推动着工作方式和知识管理的革新。FlowUs,作为一款前沿的知识管理和协作平台,正站在这一变革的浪潮之巅,引领着智能工作的新潮流。 智能化的智能学习引导工具 FlowUs不仅仅是一个工具&…

springboot大学生实习管理系统-计算机毕业设计源码97434

目录 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 图2-4 添加信息流程图 2.2.5 修改信息流程 2.2.6 删除信息流…

Linux高并发服务器开发(十三)Web服务器开发

文章目录 1 使用的知识点2 http请求get 和 post的区别 3 整体功能介绍4 基于epoll的web服务器开发流程5 服务器代码6 libevent版本的本地web服务器 1 使用的知识点 2 http请求 get 和 post的区别 http协议请求报文格式: 1 请求行 GET /test.txt HTTP/1.1 2 请求行 健值对 3 空…

djangoGD高校信管专业就业信息管理系统-计算机毕业设计源码59343

djangoGD高校信管专业就业信息管理系统 摘 要 随着高校信管专业的快速发展,学生就业问题日益受到广泛关注。为了更好地服务学生,提高就业率,许多高校开始引入信息化手段来管理学生就业信息。然而,传统的就业信息管理方式存在很多问…

华夏女中师生深入同仁堂,感悟中医药文化之精髓

华夏女中师生深入同仁堂,感悟中医药文化之精髓 2024年7月4日下午,北京师范大学实验华夏女子中学15名学生在薛艳老师的带领下来到北京同仁堂中医医院,开展职业影随活动。何泽扬院长对她们的到来表示欢迎。随后,在“冯建春全国名老中…

SolidWorks教育版:促进师生互动的桥梁

在当今教育领域,技术的融合正改变着传统的教学方式。SolidWorks教育版作为一款专为教育机构和学生设计的三维设计软件,不仅以其强大的功能和易用的界面赢得了广泛赞誉,更在促进师生互动方面发挥了重要作用。本文将探讨SolidWorks教育版如何成…

python通过COM Interface控制CANoe

python通过COM Interface控制CANoe 介绍打开示例工程python代码示例介绍 通过python可以控制CANoe的启动和停止等其他操作,在做高阶的自动化项目时可以用到。 打开示例工程 python代码示例 # --------------------------------------------------------------------------…

c++习题03-分卡片

目录 一,题目 二,思路 三,代码 一,题目 二,思路 在做题的时候一定要认真审题,抓住关键的点和条件,才能够更高效的做对题目。 上面的题目有以下关键点(关键条件&#xff0…

模板初阶和string容器

目录 1.模板 函数模板 函数模板的调用规则: 类模板 容器与迭代器 string的简单介绍 iterator(迭代器) begin()与end() rbegin()和rend() Capacity(容量) shrink…

解决@Autowired 注入service 到 static接口方法的问题

1 对类进行 Component 定义 2 定义service及 static service Component public class OperationalJudgment {private static MemberService memberService;Resourceprivate MemberService service;PostConstructpublic void init() {memberServicethis.service;}3 static方法中…

说明本文档目录是软件开发梳理需求常见问题QA文档,方便客户看,也方便我们的售前人员,需求分析人员,ui设计师,原型绘图人员,思维导图绘图人员查看。

https://doc.youyacao.com/117/2150 说明 本文档目录是软件开发梳理需求常见问题QA文档,方便客户看,也方便我们的售前人员,需求分析人员,ui设计师,原型绘图人员,思维导图绘图人员查看。 提示 本内容客户…

flutter:监听路由的变化

问题 当从路由B页面返回路由A页面后&#xff0c;A页面需要进行数据刷新。因此需要监听路由变化 解决 使用RouteObserver进行录音监听 创建全局变量&#xff0c;不在任何类中 final RouteObserver<PageRoute> routeObserver RouteObserver<PageRoute>();在mai…

ATFX汇市:美国大非农数据来袭,美指与欧元或迎剧烈波动

ATFX汇市&#xff1a;今日20:30&#xff0c;美国劳工部将公布6月非农就业报告&#xff0c;其中新增非农就业人口数据最受关注&#xff0c;前值为27.2万人&#xff0c;预期值19万人&#xff0c;预期降幅高达8.2万人。如果公布值确实如预期一般&#xff0c;美联储降息预期将增强&…

国家力推!国家人工智能产业标准化指南

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;作为推动社会进步和产业升级的关键力量&#xff0c;正以前所未有的速度改变着我们的世界。从自动驾驶到智能制造&#xff0c;从智慧医疗到金融科技&#xff0c;人工智能的触角已经深入到了经济社会的各个角…

【trition-server】运行一个pytorch的ngc镜像

ngc 提供了pytorch容器 号称是做了gpu加速的 我装的系统版本是3.8的python,但是pytorch似乎是用conda安装的3.5的: torch的python库是ls支持gpu加速是真的 英伟达的pytorch的说明书 root@a79bc3874b9d:/opt/pytorch# cat NVREADME.md PyTorch ======= PyTorch is a python …

‘艾’公益——微笑行动「广安站」为艾祝福,让笑起舞

艾多美“微笑行动”广安站拉开帷幕 此次爱心帮助7名唇腭裂患儿 重新绽放微笑 艾多美“微笑行动”广安站拉开帷幕 此次爱心帮助7名唇腭裂患儿 重新绽放微笑 不让笑容留有缺憾 每个孩子都有微笑的权利 艾多美向唇腭裂儿童伸出援手 绽放笑容&#xff0c;拥抱全新的未来 2…

VMware替换关键技术:核心业务系统中,访存密集型应用的性能优化

越来越多用户采用虚拟化、超融合以及云平台环境来承载其核心业务&#xff0c;核心业务的高并发对性能的要求尤为严格&#xff0c;在VMware替换的热潮下&#xff0c;原VMware用户也更为关注新平台在核心业务上的性能表现是否对标&#xff0c;或实现超越。深信服将通过系列解析&a…

python语句前面有一个$是什么意思

“$”是汇编语言中的一个预定义符号&#xff0c;等价于当前正汇编到的段的当前偏移值。例如&#xff1a;指令“jmp $3”中的“$”表示当前这条指令在代码段中的偏移量。 代表当前指令的地址&#xff0c;如&#xff1a; data segment str1 db a,b,c,d leng equ $-str 就是当前地…

氛围共处(Ambient Co-presence)丨RTE 共读计划

在同一个网络空间和情境下&#xff0c;营造一种微妙的、隐约感知的、实时同步的感觉。 加入「RTE 共读计划」&#xff1a; 重要的技术&#xff0c;往往是那些不易察觉却无所不在的技术。欢迎阅读「RTE 共读计划」的文章&#xff0c;我们希望通过本计划&#xff1a; • 挖掘到…