1.认识计算机视觉(开发赋予计算机视觉能力的技术)
(1)概要
计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统。这里所指的信息指Shannon定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。(引自百度百科)
计算机视觉应用的实例包括用于系统:
(1)控制过程,比如,一个工业机器人 ;
(2)导航,例如,通过自主汽车或移动机器人;
(3)检测的事件,如,对视频监控和人数统计 ;
(4)组织信息,例如,对于图像和图像序列的索引数据库;
(5)造型对象或环境,如,医学图像分析系统或地形模型;
(6)相互作用,例如,当输入到一个装置,用于计算机人的交互;
(7)自动检测,例如,在制造业的应用程序。
(8)自动汽车驾驶
(9)面部识别
在HXC战队的主要任务可概括为:
1.处理通过摄像头传感器获取的外界信息
2.对机器人行驶路径的决策
2.对于抓取目标的识别与追踪
(2)对于ROBOCON:
拿2023年ROBOCON比赛举例(这一年我们也取得了竞技赛国一的好成绩)
在ROBOCON的“颗粒归仓”比赛中,视觉组的任务至关重要,它们直接关系到机器人能否准确、高效地完成任务。以下是根据“颗粒归仓”赛对视觉组任务的详细说明:
附2024ROBOCON比赛规则:【新赛项】2024 ROBOCON“颗粒归仓”技能挑战赛规则解读 - 全国大学生机器人大赛ROBOCON官网 (cnrobocon.net)
一、视觉识别任务
秧苗识别与定位:
视觉系统需要能够准确识别放置在育秧架(一个盛放秧苗的台子)上的秧苗,并确定其位置。在识别到秧苗后,视觉系统还需要计算出秧苗的位置信息传递给机器人的控制系统(机器人的大脑,就是一个主控芯片),以便机器人能够准确地取放秧苗。
稻谷(球)识别与分类:
在收获区和暂存区,机器人需要识别并区分不同颜色的稻谷(通常用球代替),以区分有效稻谷(红球或蓝球)和无效稻谷(紫球)。
视觉系统需要快速、准确地识别这些稻谷,并判断其颜色,以便机器人能够优先收集有效稻谷并避免收集无效稻谷。
谷仓(放球的框)状态监测:
在比赛的三区(比赛场地分为三个区域,这指第三区)中,机器人需要将稻谷放入谷仓中。视觉系统需要监测谷仓内的稻谷分布状态,以判断谷仓是否已满或是否存在敌方稻谷。 这有助于机器人做出智能决策(自己设计逻辑函数,去判断放置在哪能让自己得分更高),选择最佳的放置稻谷的谷仓和行驶路径。
二、智能化处理
路径规划与避障:
通过摄像头获取稻谷的位置信息,视觉系统需要协助机器人的控制系统进行路径规划(获取路线信息,并实时调整机器人的位置,确保没走错),确保机器人能够避开障碍物(在抓取到一个球并将其放置在球筐的过程中,机器人车身不能将其他球撞到其他区域(会扣分),所以在行进过程中,我们还需要避免与其他球进行碰撞)。
三、硬件选型与调试
视觉组还需要负责相机等视觉硬件的方案设计、选型、测试与性能评估。确保所选硬件能够满足比赛需求,并在实际比赛中稳定运行。
四、团队协作
视觉组需要与电控组、机械组等其他组别紧密协作,共同完成机器人的整体设计与调试工作。例如,与电控组进行电控-视觉联调(具体是给控制系统传达信息,比如球的坐标,在车靠近球的过程中实时传达球在屏幕上的位置,并控制车进行适当转向,或在巡线过程中(在地上贴一根白线,机器人沿着白线到达目的地,其中机器人会沿着白线转向,我们需要确保车前进方向与线方向一致)确保车身是否偏转角度过大,避免超出巡线的范围);与机械组讨论视觉传感器的安装位置和角度,以获得最佳视角的图像(比赛场地多为室内,场地较为光滑,室内大灯照射到地面然后反射到摄像头内,摄像头拍摄的图像会有光斑,影响我们获取外界信息,各位可以拿手机在太阳下拍光滑地面,画面内出现的亮斑处的地面的特征我们是获取不到的,因为全是白的,所以摄像头的安装位置也是非常关键的)。
(3)对于RoboMaster:
附上RoboMaster官方规则:RoboMaster 2024 机甲大师超级对抗赛比赛规则手册V1.0(20231018).pdf (djicdn.com)
附上简易视频规则:【新手友好】简易版ROBOMASTER机甲大师比赛规则视频(三)_哔哩哔哩_bilibili
我们学校主打3v3,这里仅对3v3作规则简介:采用MOBA对抗机制,场地中设置有哨兵,步兵,英雄与基地。 胜利条件:五分钟比赛时间,基地剩余血量高的一方获得比赛胜利。 (打过MOBA类游戏的都知道,本质就是操作手控制机器人去让对面机器人血量减为0,并攻击敌方水晶,谁在规定时间水晶血量最多谁获胜。其中每方机器人有全自动(哨兵)和半自动(步兵和英雄,操作手通过电脑控制),攻击方式为发射子弹,攻击到敌方机器人装甲板,敌方机器人即掉血,攻击对方基地,基地则掉血,最后谁基地谁血最多谁获胜)
RoboMaster视觉组的具体任务主要包括以下几个方面:
一、自瞄算法:
为什么要设计自瞄算法:
1.部分机器人是可以手动瞄准的(步兵和英雄),有部分机器人是必须全自动的(哨兵)。
2.抛开全自动机器人不谈,各位如果打过FPS游戏就知道,有“锁头”的和没“锁头”的待遇是天差地别的,完全靠手动瞄准是会被吊打的。
装甲板识别: 在识别到装甲板后,视觉系统还需要计算出装甲板在机器人坐标系(以机器人为坐标原点)或世界坐标系(外界环境中的某个物体为坐标原点)中的位置,为后续的瞄准和射击提供数据支持。
二、移动预测
为什么要进行移动预测:
子弹从枪口发射到打中目标是需要一定时间的,这期间对方机器人又不是活靶子,是会进行躲避的,所以我们需要根据敌方机器人躲避移动的方向进行预判,确保子弹能刚好达到敌方装甲板上(让子弹飞一会)
因此我们需要研发移动预测算法,以预测其未来位置。这有助于机器人提前规划攻击路径,提高打击效率。
三、选型与优化
相机选型:
视觉组需要根据比赛需求和机器人设计,选择合适的相机。相机的性能(如分辨率、帧率、曝光控制等)直接影响视觉系统的识别效果。
算法优化:
在确定相机型号后,视觉组还需要进行算法优化工作。
1.通过调整代码提升程序的运行速度,包括时间复杂度优化(通过改进算法逻辑,减少不必要的计算步骤,从而降低算法运行所需的时间)和空间复杂度优化(优化算法的内存使用,减少算法运行所需的空间,提高内存利用效率)
2.如果采用深度学习类的方式,我们可以尝试对算法做剪枝(类似于在修剪树木时去除不必要的枝条,以减少冗余,提高效率。在算法领域,剪枝通过某种判断或策略,避免不必要的计算或搜索过程,从而加快问题的求解速度,降低算法的时间和空间复杂度。),对数据做量化(通过减小数据的精度,减少所需带宽,提高并行计算效率),或部署一些加速推理引擎(根据硬件确定合适的加速推理引擎,去提高模型推理速度)等
四、与其他组别的协作
与电控和机械组的合作基本同上