Skip to content

HamPerdredes/BUFF_DEC

Repository files navigation

2019赛季Robomaster能量机关识别: 整体的处理流程为:1、对图像的预处理;2、依次识别可能的装甲板、能量机关的中心“R”;3、框出装甲板叶片,由训练好的SVM分类器判定是否是需要激活的装甲板。 具体为: 图像的预处理:根据要识别的颜色类型(蓝色和红色),将图像的U通道和V通道进行相减处理(UV为色度信息),使要处理的颜色突出,对得到的图像二值化处理,再对灰度图进行二值化处理,膨胀后相与,再对其用孔洞填补算法,填补后的图像减去填补前的图像,则能较好的把装甲板扣出来,作为装甲检测的输入图像;整个算法主要要调整的参数也在这里,包括两次二值化的阈值、膨胀和腐蚀核的大小这四个参数,此外还有轮廓筛选时的面积;

装甲板识别:利用findcontours函数寻找输入图像的轮廓,遍历所有轮廓,先根据面积筛去一些,再求其最小包围矩形,若其长宽比在一定范围内则视为可能的装甲板存入候选;

中心“R”的识别:类似装甲板的识别,根据面积、长宽比、旋转矩形的旋转角大致筛选出一批可能的中心后,再利用上一步检测到的所有可能装甲,对每一个中心遍历一次,看可能的中心的点与装甲板中心点的连线与装甲板是否在一定范围内垂直(即相切),若垂直,则可认为是中心,同时由于场地一些灯光干扰,这里选择轮廓面积最大的作为最终寻找到的中心;

装甲叶片的识别:确定了旋转中心后,遍历所有的可能装甲板,框出二值化后的灰度图中对应位置的叶片,调整形状后丢入SVM分类器,如果识别为需要激活的装甲,则标记处相应的装甲板中心点,此外算法还使用了卡尔曼滤波,检测到要激活的装甲中心后,与预测结果相比较,小于一定阈值认为此时预测器可信,由此当没能够识别到装甲板时使用卡尔曼滤波器的预测值。

关于BUFF的两个输入参数:第一个为待读取视频的绝对路径,第二个为能量机关的颜色("red","blue").

如果需要更新SVM训练器,直接把BUFF的参数is_save_data改为true,手动标注data内的数据集后,运行"./train"即可。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published