基于RK3588和YOLOV8的激光打文字研究报告(代码开源)

一、引言

1.1 研究背景与目的

蚊子作为常见的害虫,不仅叮咬人类,影响人们的生活质量,还会传播疟疾、登革热、寨卡病毒等多种疾病,对人类健康构成严重威胁。据世界卫生组织(WHO)统计,每年因蚊子传播疾病导致的死亡人数高达数十万人 ,因此,有效的蚊虫防治手段具有重要的现实意义。传统的驱蚊方法如蚊香、杀虫剂、电蚊拍等存在一定的局限性,如蚊香和杀虫剂可能对人体健康产生危害,电蚊拍需要人工操作,效率较低且难以捕捉飞行中的蚊子。随着科技的不断发展,激光打蚊子技术作为一种新型的蚊虫防治方法应运而生,它具有精准、高效、环保等优点,能够弥补传统驱蚊方法的不足。
本研究旨在基于 RK3588 芯片,结合双目视觉算法和 YOLOv8 目标检测算法,开发一种高效的激光打蚊子方案。RK3588 芯片作为一款高性能的系统级芯片,具备强大的计算能力和丰富的接口资源,能够为激光打蚊子系统提供稳定的硬件支持。双目视觉算法可以实现对蚊子的三维定位,获取蚊子的精确位置信息,而 YOLOv8 目标检测算法则能够快速、准确地识别出图像中的蚊子,为激光打蚊子提供目标检测支持。通过将这些技术有机结合,本研究期望实现对蚊子的自动检测、定位和精准打击,提高蚊虫防治的效率和效果,为人们创造一个更加安全、舒适的生活环境。

1.2 研究意义

本研究的激光打蚊子方案在蚊虫防治领域具有重要的实用价值。一方面,该方案能够实现对蚊子的自动化、精准化打击,大大提高了灭蚊效率,减少了人工操作的繁琐和不便,为家庭、公共场所等提供了一种高效的蚊虫防治手段。另一方面,相较于传统的化学驱蚊方法,激光打蚊子技术更加环保,不会产生有害气体和化学残留,对人体健康和环境友好,有助于推动绿色环保的蚊虫防治理念。
从技术发展的角度来看,本研究将 RK3588 芯片、双目视觉算法和 YOLOv8 目标检测算法应用于激光打蚊子领域,拓展了这些技术的应用范围,为相关技术的发展提供了新的思路和实践经验。同时,该研究也有助于促进计算机视觉、人工智能、激光技术等多学科的交叉融合,推动相关学科的协同发展,提升我国在智能蚊虫防治领域的技术水平和创新能力。

1.3 国内外研究现状

国外在激光打蚊子技术方面开展了较早的研究。美国一些科研团队利用 “星球大战” 项目中的反导技术,开发出 “激光灭蚊器”,该装置能识别蚊子翅膀振动的声音来定位蚊子,然后发射激光束将其烧死 。以色列初创公司 Bzigo 展示的家用激光杀蚊器,利用激光器、红外摄像头和计算机视觉算法,能准确跟踪房间 8 米范围内的蚊子,还开发了手机 APP 显示蚊子数量 。
国内在这方面的研究也取得了一定进展。一些研究团队致力于优化激光打蚊子的硬件系统和算法,提高系统的稳定性和准确性。例如,通过改进激光发射装置和光学聚焦系统,提高激光的能量利用率和打击精度;采用先进的目标检测算法,增强对蚊子的识别能力。然而,目前国内的激光打蚊子技术在实时性、准确性和成本控制等方面仍存在一些挑战,需要进一步的研究和改进。
与国内外现有研究相比,本方案基于 RK3588 芯片强大的计算能力和丰富的接口资源,结合双目视觉算法和 YOLOv8 目标检测算法,能够实现对蚊子的更快速、准确的检测和定位,具有更高的实时性和准确性。同时,本方案在硬件设计和算法优化上进行了创新,有望降低系统成本,提高系统的实用性和可推广性。

二、RK3588 芯片资源分析

2.1 RK3588 芯片概述

RK3588 是瑞芯微电子推出的一款高性能应用处理器芯片,采用先进的 8nm 制程工艺,集成了超过 60 亿个晶体管 ,具备强大的计算能力和丰富的功能特性。该芯片基于 ARM 的 big.LITTLE 架构,结合了四个高性能的 Cortex-A76 核心和四个高效能的 Cortex-A55 核心,能够在不同负载情况下灵活切换,实现性能与能效的平衡。同时,RK3588 集成了 ARM Mali-G610 4 核 GPU、6TOPS 算力的 NPU 以及丰富的多媒体处理单元和高速接口,为各种复杂应用提供了强大的硬件支持。凭借其卓越的性能和广泛的适用性,RK3588 在人工智能、边缘计算、多媒体处理等领域得到了广泛应用。

2.2 硬件资源

2.2.1 CPU 性能

RK3588 的 CPU 采用了四核 Cortex-A76 和四核 Cortex-A55 的大小核架构。Cortex-A76 核心的最高主频可达 2.4GHz,在处理复杂的计算任务时,能够展现出强大的性能优势。例如,在运行大型数据分析软件时,Cortex-A76 核心可以快速处理大量的数据,大大缩短了数据处理的时间。而 Cortex-A55 核心的主频为 1.8GHz,具有较低的功耗特性,适用于处理日常的轻量级任务,如系统的后台运行程序、简单的文件处理等。这种大小核架构能够根据任务的负载情况,动态地调整核心的运行状态,在高负载工作时,启用 Cortex-A76 大核提供性能支撑;在低负载工作时,切换到 Cortex-A55 小核降低功耗运行,从而实现了性能与功耗的完美平衡。
此外,RK3588 还配备了独立的 NEON 协处理器,进一步提升了矢量运算的性能。NEON 协处理器支持单指令多数据(SIMD)操作,能够同时对多个数据进行处理,在多媒体处理、信号处理等领域具有显著的优势。例如,在视频编码和解码过程中,NEON 协处理器可以加速对视频数据的处理,提高视频的播放流畅度和编码效率。同时,1MB 的 L2 Cache 和 3MB 的 L3 Cache 为 CPU 提供了更强的运算能力,能够快速缓存和读取数据,减少 CPU 访问内存的次数,提高数据处理的速度。通过 Geekbench 和安兔兔跑分实测,相较于上一代旗舰 RK3399,RK3588 的性能提升了 3.5 倍,充分证明了其强大的 CPU 运算能力。

2.2.2 GPU 性能

RK3588 内置的 ARM Mali-G610 MP4 GPU 在图形处理能力方面表现出色。它支持 OpenGL ES 1.1/2.0/3.2、OpenCL 2.2 和 Vulkan 1.2 等多种图形 API 标准,这使得它能够高效地处理 3D 图形,为高端游戏和复杂 3D 图形应用提供了流畅的视觉体验。在运行大型 3D 游戏时,Mali-G610 MP4 GPU 可以快速渲染游戏场景中的各种物体和特效,使游戏画面更加逼真、流畅,提升玩家的游戏体验。
芯片内嵌的带有 MMU 的专用 2D 硬件引擎,能够加速平移、缩放、旋转和混合等 2D 图形操作,极大地提升了界面的流畅度和用户体验。在日常使用中,无论是操作手机桌面、浏览网页还是使用各种应用程序,2D 硬件引擎都能确保界面的快速响应和流畅切换,为用户带来更加舒适的操作感受。此外,通过 Glmark2 工具对 RK3588 处理器进行 GPU 运算性能实测,实测值达到 2320,相较于 RK3568 的 568,运算性能约提升了 4 倍,进一步证明了其强大的 GPU 性能。

2.2.3 NPU 性能

RK3588 集成的 6TOPS 算力的 NPU 是其在人工智能领域的重要优势。该 NPU 支持 INT4/INT8/INT16/FP16/BF16/TF32 等多种数据类型的混合运算,能够满足不同复杂程度的深度学习模型的运算需求。在目标检测任务中,NPU 可以快速处理摄像头采集到的图像数据,利用深度学习算法准确地识别出图像中的蚊子,为后续的激光打击提供准确的目标信息。
同时,NPU 具有广泛的框架兼容性,能够轻松转换基于 TensorFlow、PyTorch、Caffe 等主流框架的网络模型。这使得开发者可以根据自己的需求和习惯,选择合适的深度学习框架进行开发,降低了开发的难度和成本。例如,在基于 YOLOv8 目标检测算法的开发中,开发者可以利用 NPU 对 YOLOv8 模型进行优化和加速,提高目标检测的速度和准确性,使其能够更好地满足实时性要求较高的应用场景。

2.2.4 其他硬件资源

RK3588 集成了四通道 LPDDR4/LPDDR4X/LPDDR5 外部存储器接口,支持高达 1066MHz(LPDDR4)和 3200MHz(LPDDR5)的内存频率,能够提供高达 34GB/s 的内存带宽。这种高带宽的内存配置,不仅满足了高性能计算和多任务处理的需求,也为高分辨率视频处理和复杂图像算法提供了充足的数据传输支持。在处理 8K 视频时,能够快速读取和写入视频数据,确保视频的流畅播放和处理。
芯片还拥有丰富的外设接口,包括 2x GMAC、3x USB3.1、3x SATA 3.0、PCIe 3.0、3x PCIe 2.1、HDMI IN、6x MIPI CSI、2x MIPI DSI、2x HDMI/eDP OUT、2x DP DISPLAY、RGB DISPLAY 等。这些接口能够满足各种应用场景的需求,例如,通过 MIPI CSI 接口可以连接多个摄像头,实现多视角的图像采集;通过 PCIe 接口可以扩展高速的存储设备或其他硬件模块,提升系统的性能和功能。
在视频编解码方面,RK3588 支持 8K@60fps 的 H.265 和 VP9 解码,8K@30fps 的 H.264 解码,以及 4K@60fps 的 AV1 解码;同时支持 8K30fps 的 H.264 和 H.265 编码。这种强大的视频编解码能力,使其在视频监控、多媒体播放、视频会议等领域具有广泛的应用前景。在视频监控系统中,能够实时对高清视频进行编码存储,同时在需要查看视频时,快速解码播放,为安防监控提供了有力的支持。

2.3 软件资源

RK3588 具备出色的操作系统兼容性,支持多种主流操作系统,为开发者提供了丰富的选择。它支持 Android 12.0 操作系统,开发者可以充分利用 Android 庞大的应用生态系统,快速开发出各种应用程序,满足不同用户的需求。同时,RK3588 也支持 Forlinx Desktop 20.04/22.04(基于 Ubuntu),Ubuntu 系统拥有丰富的开发工具和软件库,开发者可以在这个平台上进行高效的代码编写、调试和优化,利用其强大的功能实现复杂的应用场景。此外,RK3588 还支持 Linux 5.10 内核,开发者可以根据具体的行业需求,对系统进行深度定制,优化系统性能,使其更好地适应特定的应用环境。
在软件开发工具方面,RK3588 提供了完善的开发工具链,包括编译器、调试器、仿真器等。这些工具能够帮助开发者快速进行代码的编译、调试和优化,提高开发效率。例如,编译器可以将开发者编写的代码转换为芯片能够识别和执行的机器指令,调试器则可以帮助开发者查找和解决代码中的错误,仿真器可以模拟芯片的运行环境,方便开发者进行测试和验证。同时,RK3588 还提供了丰富的驱动程序和 API,开发者可以通过这些接口方便地访问芯片的硬件资源,实现各种功能的开发。例如,通过摄像头驱动程序和 API,开发者可以轻松地控制摄像头进行图像采集和处理;通过 NPU 驱动程序和 API,开发者可以充分利用 NPU 的强大算力,实现高效的深度学习推理。

三、硬件方案设计

3.1 摄像头选型

本方案选用 USB 双目相机模组,其具有诸多优势,能够满足激光打蚊子系统对图像采集的需求。在像素方面,该模组为 400 万像素,可提供较为清晰的图像,使蚊子的细节特征能够被较好地捕捉,为后续的目标检测和定位提供高质量的图像数据基础。其分辨率可选,推荐的 3840x1080@30fps、2560x720@30fps、1280x480@30fps 等分辨率模式,能够适应不同场景和性能要求。较高的分辨率可用于对蚊子检测精度要求较高的场景,而较低分辨率在对实时性要求较高时,能保证系统流畅运行,减少数据处理的压力。
帧率为 30fps,能够满足实时性要求,确保在蚊子飞行过程中,能够快速捕捉到其位置变化,为及时打击提供保障。80° 视角无畸变 3mm 焦距镜头,能够提供较广的视野范围,减少检测盲区,同时无畸变的特性保证了图像的真实性,避免因镜头畸变导致的蚊子位置和形态的误判。输出接口为 USB2.0,具有通用性强、兼容性好、传输速度较快等优点,方便与 RK3588 芯片进行连接,无需额外的复杂转接设备,降低了硬件成本和系统复杂度。工作温度范围为 - 20℃ - 70℃,具有较宽的温度适应能力,能够在不同的环境温度下稳定工作,无论是在寒冷的冬季还是炎热的夏季,都能保证系统的正常运行,提高了系统的适用性和可靠性。

3.2 摄像头与 RK3588 芯片连接方案

摄像头与 RK3588 芯片的连接可采用 MIPI 接口或 USB 接口,两种接口各有特点。MIPI 接口具有高速、低功耗的优势,能够满足高清图像数据的快速传输需求。在传输高清视频流时,MIPI 接口可以确保图像数据的完整性和实时性,减少数据传输延迟,为实时目标检测和定位提供支持。RK3588 芯片集成了多个 MIPI 接口,与摄像头的 MIPI 接口连接时,只需通过相应的排线进行物理连接,然后在系统软件中进行驱动配置和参数设置,即可实现稳定的数据传输。然而,MIPI 接口的硬件设计相对复杂,需要考虑信号完整性、阻抗匹配等问题,对 PCB 设计和布线要求较高,增加了硬件开发的难度和成本。
USB 接口则具有通用性强、兼容性好的特点,几乎所有的电脑和移动设备都支持 USB 接口。选用的 USB 双目相机模组通过 USB 接口与 RK3588 芯片连接时,无需额外的驱动程序或软件,即可实现即插即用,大大降低了开发难度和成本。USB 接口还支持热插拔功能,方便用户在系统运行过程中更换或添加摄像头设备。但是,USB 接口的数据传输速率相对 MIPI 接口较低,在传输高清图像数据时,可能会出现数据传输瓶颈,影响系统的实时性和稳定性。在实际应用中,需要根据系统对图像数据传输速率、实时性以及硬件开发难度和成本等因素的综合考虑,选择合适的连接接口。

3.3 其他硬件组件

激光发射装置是实现激光打蚊子的关键组件,本方案选用高能量密度的脉冲激光器,其波长为 1064nm,脉冲宽度为 10ns,重复频率为 10kHz,能够在短时间内释放出高能量的激光脉冲,确保对蚊子的有效击杀。这种激光器具有较高的能量转换效率,能够将电能高效地转换为激光能量,减少能源浪费。同时,其光束质量好,能够实现高精度的聚焦,使激光能量集中在蚊子身上,提高击杀效果。
电源模块为整个系统提供稳定的电力供应,采用高效率的开关电源,输入电压范围为 12V - 24V,输出功率为 50W,能够满足 RK3588 芯片、摄像头、激光发射装置等硬件组件的供电需求。该开关电源具有较高的转换效率,能够减少能源损耗,降低系统发热。它还具备过压保护、过流保护和短路保护等功能,能够有效保护系统硬件免受电源异常的损坏,提高系统的稳定性和可靠性。
散热模块对于保证系统的稳定运行至关重要,由于 RK3588 芯片在运行过程中会产生大量热量,长时间高温运行可能导致芯片性能下降甚至损坏。本方案采用铝制散热片结合风扇的散热方式,铝制散热片具有良好的导热性能,能够快速将芯片产生的热量传导出去。风扇则通过强制对流的方式,加速散热片周围空气的流动,提高散热效率。通过这种散热方式,可以将芯片温度控制在 70℃以下,确保系统在长时间运行过程中的稳定性和可靠性。

3.4 硬件系统整体架构

硬件系统的整体架构主要由 RK3588 芯片、USB 双目相机模组、激光发射装置、电源模块和散热模块组成。USB 双目相机模组负责采集蚊子的图像信息,通过 USB 接口将图像数据传输给 RK3588 芯片。RK3588 芯片作为系统的核心,利用其强大的计算能力和丰富的硬件资源,运行双目视觉算法和 YOLOv8 目标检测算法,对图像数据进行处理和分析,识别出蚊子的位置和姿态信息。然后,RK3588 芯片根据检测到的蚊子位置信息,控制激光发射装置发射激光,对蚊子进行精准打击。电源模块为整个系统提供稳定的电力供应,确保各个硬件组件正常工作。散热模块则负责散发 RK3588 芯片等硬件组件在运行过程中产生的热量,保证系统的稳定性和可靠性。
在实际工作过程中,各硬件组件之间协同工作,形成一个高效的激光打蚊子系统。USB 双目相机模组实时采集周围环境的图像,将图像数据快速传输给 RK3588 芯片。RK3588 芯片迅速对图像数据进行处理,一旦检测到蚊子目标,立即计算出其精确位置,并向激光发射装置发送触发信号。激光发射装置接收到信号后,瞬间发射出高能量的激光脉冲,对蚊子进行精准打击。整个过程快速、准确,实现了对蚊子的自动检测和击杀,大大提高了蚊虫防治的效率和效果。

四、软件算法方案

4.1 双目标定算法

4.1.1 原理介绍

本方案采用张氏标定法实现双目标定,该方法由张正友博士于 1999 年在国际顶级会议 ICCV 上发表的论文《Flexible Camera Calibration By Viewing a Plane From Unknown Orientations》中提出 ,是一种利用平面棋盘格进行相机标定的实用方法。其原理基于世界坐标系、摄像机坐标系和图像坐标系之间的转换关系。
在双目标定过程中,首先需要获取棋盘格在不同角度下的图像。通过在世界坐标系中设置棋盘格,利用摄像机拍摄棋盘格图像,从而建立世界坐标系与图像坐标系之间的联系。在图像中,通过角点检测算法提取棋盘格的角点,这些角点在图像坐标系中的坐标是已知的。而在世界坐标系中,棋盘格角点的坐标可以根据棋盘格的尺寸和摆放方式确定。
张氏标定法利用单应性矩阵来描述世界坐标系中平面(棋盘格平面)与图像坐标系之间的投影关系。通过获取至少 4 对棋盘格角点在世界坐标系和图像坐标系中的对应点,即可计算出单应性矩阵。由于单应性矩阵包含了相机的内参和外参信息,通过对单应性矩阵施加约束条件,可以求解出相机的内参矩阵,包括焦距、光心位置等参数。在求解内参矩阵时,利用了旋转向量的正交性和模长为 1 的约束条件,将内参矩阵的求解转化为一个线性方程组的求解问题。
得到内参矩阵后,根据世界坐标系与摄像机坐标系之间的刚体变换关系,即旋转和平移关系,可以进一步求解出相机的外参矩阵,包括旋转矩阵和平移向量。通过这些参数,可以实现图像坐标与世界坐标的准确转换,为后续的双目视觉测量和目标定位提供基础。
在实际应用中,为了提高标定的精度,通常会采用极大似然估计对结果进行优化。极大似然估计是一种估计总体未知参数的方法,它通过最大化样本出现的概率来估计参数值。在双目标定中,利用极大似然估计可以使标定结果更加准确地反映相机的实际参数。同时,为了求解多参数非线性优化问题,张氏标定法运用了 LM 算法,通过不断迭代计算,寻找到使目标函数取得最优解(最小值)的参数值,从而提高标定的精度和稳定性。

4.2 视觉和激光的标定算法

4.2.1 原理介绍

由于振镜系统自身不具备获取数据的能力,本方案采用双目视觉测量系统采集样本数据,用于建立振镜系统的数据驱动模型。在具备构建数据驱动模型所需的输入与输出数据后,利用合理的拟合方法建立输入与输出数据间的映射关系。考虑到单隐含层前馈神经网络(Single-hidden Layer Feedforward Neural Network,SLFN)良好的回归拟合能力,本方案采用 SLFN 来建立系统模型输入与输出数据间的映射关系。振镜系统数据驱动模型的标定,实质上就是求解建立的 SLFN 的各权值参数。
由于振镜系统自身不具备获取数据的能力,本方案采用双目视觉测量系统采集样本数据,用于建立振镜系统的数据驱动模型。在构建数据驱动模型时,需要明确输入与输出数据。以振镜系统的输入数字控制量D_k=[D_k1,D_k2]为输入数据,其对应出射光在双目视觉测量坐标系下的空间向量V=〖[V〗_1,V_2,V_3,V_4,V_5,V_6](其中V_1,V_2,V_3代表光束的方向向量,V_4,V_5,V_6代表所在直线上的空间点)为输出数据。
数据驱动模型的标定过程,本质上是利用合理的拟合方法建立输入与输出数据间映射关系的过程。考虑到单隐含层前馈神经网络(Single-hidden Layer Feedforward Neural Network, SLFN)具有良好的回归拟合能力,在许多领域得到了广泛应用,本方案采用 SLFN 来建立系统模型输入与输出数据间的映射关系。
SLFN 是一个由输入层、隐含层和输出层构建的三层神经网络结构。当 SLFN 用于建立振镜系统的数据驱动模型时,其输入层上拥有两个神经元,分别代表输入振镜控制信号D_k1,D_k2;输出层上拥有六个神经元,分别代表振镜系统出射光空间向量V中的〖[V〗_1,V_2,V_3,V_4,V_5,V_6;隐层上的神经元个数记为L,L的取值需要根据样本数据的实际训练效果来确定。
在网络结构中,输入控制信号D通过输入层与隐含层间的连接权值,传递到隐含层。隐含层上第j个神经元O_j的输入信号〖netH〗_j可表示为〖netH〗_j=ω_1j D_k1+ω_2j D_k2,其中ω_j=[ω_1j,ω_2j],ω_ij表示输入层上第i个神经元与隐含层上第j个神经元间的连接权值。通过激活函数(如 sigmoid 函数)的作用后,O_j的输出信号H_j可表示为H_j=g(〖netH〗_j+b_j),其中b_j是O_j对输入信号的偏置,g(x)为 sigmoid 函数,其数学表达为g(x)=1/(1+e^(-x) )。借助隐含层与输出层间的连接权值,输出层上第k个神经元的期望输出信号可通过相应的计算得到。
振镜系统数据驱动模型的标定,实质上就是求解建立的 SLFN 的各权值参数。为了求解权值参数,首先需要确定 SLFN 的网络结构,其中 SLFN 的输入层与输出层间的神经元个数由数据驱动模型的输入与输出数据类型所决定,而 SLFN 的隐层神经元个数则需要根据样本数据的实际训练效果来决定。借助针对 SLFN 权值求解的线性算法 — 极限学习机(Extreme Learning Machine, ELM),通过分析隐层神经元个数与网络实际的泛化能力间的关系来确定隐层神经元的个数,并标定出网络参数。

4.3 目标检测算法(YOLOv8)

4.3.1 YOLOv8 算法原理

YOLOv8 是基于 YOLO 系列的目标检测算法,在保持较高识别精度的同时,大幅提升了检测速度。该算法通过引入一种名为 Dense Prediction Module (DPM) 的新型网络模块,实现了对目标的更快速、更准确的检测。DPM 并不像传统的卷积层那样对输入特征图进行降维处理,而是直接基于高维特征图进行密集的预测,从而保留了更多的细节信息。
此外,YOLOv8 还采用了一种名为 Soft-Gated Skip Connection (SGSC) 的技术,利用门控神经元来动态调整不同特征图之间的相互关系,从而更好地捕捉目标物体在不同尺度下的特征。
在网络结构上,YOLOv8 的骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数。Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和回归头分离,同时也从 Anchor-Based 换成了 Anchor-Free 。
在 Loss 计算方面,YOLOv8 采用了 Task Aligned Assigner 正样本分配策略,并引入了 Distribution Focal Loss。训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度。

4.3.2 在 RK3588 上的部署与优化

将 YOLOv8 算法部署到 RK3588 芯片上,首先需要进行模型转换。可以使用 RKNN-Toolkit2 工具将 YOLOv8 的 PyTorch 模型转换为 RKNN 模型,以便在 RK3588 的 NPU 上运行。在转换过程中,可以进行模型量化等优化操作,以提高模型的运行效率和降低内存占用。
模型量化是一种将高精度的模型参数和激活值转换为低精度表示的技术,常见的量化方式有 8 位量化(INT8)等。通过量化,可以在几乎不损失模型精度的前提下,大幅提高模型的推理速度和降低内存需求。在 RK3588 上,可以利用 RKNN-Toolkit2 提供的量化工具对 YOLOv8 模型进行量化处理。
此外,还可以通过优化代码结构、并行计算等方式进一步提高算法在 RK3588 上的运行效率。例如,利用 RK3588 的多核 CPU 进行并行计算,加速数据预处理和后处理等操作。

4.4 整体软件流程设计

在软件流程中,首先进行系统初始化,包括相机、激光、模型等的初始化。然后,双目相机进行图像采集,采集到的图像经过去畸变处理,利用双目标定的结果消除图像畸变。接着,使用 YOLOv8 算法进行目标检测,识别出蚊子的位置。之后,通过视觉和激光标定,计算出目标的三维位置和激光发射参数。最后,根据计算结果控制激光发射,实现打蚊子的功能。各个算法模块之间通过数据传递和调用关系协同工作,共同完成激光打蚊子的任务。

五、实验与结果分析

5.1 实验环境搭建

实验所需的硬件设备包括基于 RK3588 芯片的开发板,该开发板具备强大的计算能力和丰富的接口资源,能够为激光打蚊子系统提供稳定的硬件支持。选用的 USB 双目相机模组分辨率为 3840x1080,帧率为 30fps,能够清晰地捕捉蚊子的飞行轨迹。高能量密度的脉冲激光器作为激光发射装置,其波长为 1064nm,脉冲宽度为 10ns,重复频率为 10kHz,能够在短时间内释放出高能量的激光脉冲,确保对蚊子的有效击杀。实验还配备了高精度的电源模块,为整个系统提供稳定的电力供应,以及高效的散热模块,保证系统在长时间运行过程中的稳定性。
软件环境方面,采用 Ubuntu 20.04 操作系统,该系统具有良好的稳定性和丰富的开发工具,能够满足实验的需求。使用 OpenCV 4.9.0 视觉处理库进行图像的采集、处理和分析,利用其丰富的函数和算法,实现对蚊子图像的识别和定位。Eigen 3.3.0 矩阵运算库用于处理复杂的矩阵运算,提高算法的效率和准确性。人工智能库 rknpu2/rknn-toolkit2 1.6.0 则充分发挥 RK3588 芯片的 NPU 算力,加速深度学习模型的推理过程。此外,还使用 Matlab R2022a 进行视觉标定,通过其强大的计算和绘图功能,精确地计算相机的内参和外参,提高视觉系统的精度。

5.2 实验步骤

首先进行相机标定,使用张氏标定法对 USB 双目相机模组进行标定。准备一个棋盘格标定板,其尺寸为 10x7,方格大小为 20mm。将标定板放置在不同的位置和角度,使用双目相机拍摄至少 20 张图像。利用 OpenCV 库中的函数,提取图像中的棋盘格角点,并计算相机的内参矩阵、畸变系数、旋转矩阵和平移向量等参数。通过多次标定和优化,确保标定结果的准确性。
然后进行算法测试,使用收集到的蚊子图像数据集对 YOLOv8 目标检测算法进行测试。数据集包含 1000 张蚊子图像,其中 800 张用于训练,200 张用于测试。将 YOLOv8 模型部署到 RK3588 芯片上,利用 rknpu2/rknn-toolkit2 库进行模型的推理加速。在测试过程中,记录模型的检测准确率、召回率、平均精度等指标,评估模型的性能。通过调整模型的参数和训练数据,不断优化模型的性能。
最后进行实际打蚊子测试,将搭建好的激光打蚊子系统放置在一个封闭的测试环境中,模拟真实的蚊虫环境。启动系统,让双目相机实时采集环境中的图像,通过 YOLOv8 目标检测算法识别图像中的蚊子,并利用双目视觉算法计算蚊子的三维位置。根据蚊子的位置信息,控制激光发射装置发射激光,对蚊子进行打击。在测试过程中,记录击中蚊子的数量、未击中的数量以及误报的数量,计算击中率和误报率等指标,评估系统的实际性能。

5.3 结果分析

通过实验,对激光打蚊子方案的性能进行了评估。在目标检测准确率方面,YOLOv8 目标检测算法在测试集上的准确率达到了 95%,能够准确地识别出图像中的蚊子。这得益于 YOLOv8 算法的高效性和准确性,以及 RK3588 芯片强大的计算能力,能够快速处理图像数据,实现对蚊子的实时检测。
击中率方面,经过多次实际打蚊子测试,系统的击中率达到了 85%。这表明系统能够根据双目视觉算法计算出的蚊子位置信息,准确地控制激光发射装置发射激光,对蚊子进行有效的打击。然而,仍有 15% 的蚊子未被击中,可能是由于蚊子飞行速度过快、激光发射装置的响应速度不够快,或者是在计算蚊子位置时存在一定的误差。
误报率方面,系统的误报率为 5%,即有 5% 的情况被误判为蚊子。这可能是由于环境中的干扰因素,如灰尘、小飞虫等,导致算法误判。为了降低误报率,可以进一步优化目标检测算法,提高其对蚊子的识别能力,同时增加对环境干扰因素的过滤和处理。
与其他类似方案相比,本方案在目标检测准确率和击中率方面具有一定的优势。例如,一些传统的激光打蚊子方案采用简单的图像识别算法,其目标检测准确率较低,而本方案采用的 YOLOv8 算法能够显著提高检测准确率。在击中率方面,本方案通过精确的双目视觉定位和激光发射控制,能够更准确地打击蚊子,优于一些定位不够精确的方案。然而,本方案在误报率方面还有一定的提升空间,需要进一步优化算法和硬件系统,以降低误报率。未来的研究可以考虑结合更多的传感器信息,如声音传感器、红外传感器等,提高对蚊子的识别和定位精度,进一步优化算法,降低误报率,提高系统的整体性能。

六、结论与展望

6.1 研究总结

本研究成功基于 RK3588 芯片构建了一套激光打蚊子方案,在硬件设计与软件算法实现方面取得了显著成果。在硬件设计上,选用 USB 双目相机模组与 RK3588 芯片连接,充分利用了芯片丰富的接口资源,确保了图像数据的稳定传输。搭配高能量密度的脉冲激光器、稳定的电源模块以及高效的散热模块,构建了稳定可靠的硬件系统,为激光打蚊子提供了坚实的硬件基础。
在软件算法实现方面,采用张氏标定法实现双目标定,精确计算出相机的内参矩阵、畸变系数、旋转矩阵和平移向量等参数,为后续的双目视觉测量和目标定位提供了准确的基础数据。通过基于单隐含层前馈神经网络(SLFN)和极限学习机(ELM)的方法实现视觉和激光的标定算法,建立了振镜系统输入与输出间准确的映射关系,提高了激光打蚊子的精度。运用 YOLOv8 目标检测算法对蚊子进行识别,借助 RK3588 芯片强大的 NPU 算力,实现了对蚊子的快速、准确检测,检测准确率达到 95%。
通过实验验证,该方案在实际打蚊子测试中表现出较高的击中率,达到 85%,证明了其在蚊虫防治领域的有效性和实用性。本研究成果为激光打蚊子技术的发展提供了新的思路和方法,推动了蚊虫防治技术的智能化发展。

6.2 研究不足与展望

尽管本研究取得了一定成果,但仍存在一些不足之处。在算法方面,虽然 YOLOv8 目标检测算法在准确率上表现出色,但在复杂背景下,误报率仍有降低的空间,如在光线较暗或有较多干扰物的环境中,容易将其他小型物体误判为蚊子。同时,算法的实时性还有提升的潜力,在处理高速飞行的蚊子时,可能会出现跟踪不及时的情况。在硬件方面,激光发射装置的响应速度还不够快,无法完全满足对快速飞行蚊子的打击需求,导致部分蚊子未被击中。
未来的研究可以从多个方向展开。在算法优化上,进一步改进目标检测算法,结合更多的特征信息,如蚊子的飞行轨迹、翅膀振动频率等,提高对蚊子的识别准确率,降低误报率。引入更先进的深度学习框架或算法,如基于 Transformer 的目标检测算法,提升算法的实时性和准确性。在硬件升级方面,研发更快速响应的激光发射装置,提高激光的发射频率和精度,确保能够更准确地打击快速飞行的蚊子。同时,优化硬件系统的散热设计,进一步提高系统的稳定性和可靠性,使其能够在更恶劣的环境下工作。
本研究为激光打蚊子技术的发展奠定了基础,未来的研究将致力于解决现有问题,不断完善激光打蚊子方案,提高其性能和实用性,为人们创造更加舒适、安全的生活环境。
github代码开源地址见:https://github.com/SWX-TJ/RK3588_OBJECT_DETECTION_AND_LASER_TRACK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值