ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RM各大战队--装甲板识别总结

2021-02-17 14:01:12  阅读:429  来源: 互联网

标签:cnt 判断 angle -- 灯条 length && RM 识别


SJTU-RM-CV-2019

全图搜索模式:

在原图中寻找目标,并返回是否找到:
	一.寻找所有可能的灯条
		1.单通道,只用一个红或蓝通道
		2.两种不同的二值化阈值,应对不同亮度
		3.开闭运算:腐蚀一次,膨胀两次,再腐蚀一次,大小均为(3,5)
		4.轮廓提取
		5.只对没有子轮廓的轮廓进行判断:是否为有效灯条
			1)最小外接矩形的长宽比范围:(1.2,10)
			2)最小外界矩形的面积<50 且凸度(轮廓面积和其最小外接矩形面积之比)>0.4
			3)最小外界矩形的面积>=50 且凸度(轮廓面积和其最小外接矩形面积之比)>0.6
			条件的关系:1&&(2||3)
			Note: 面积小的凸度可能容易不稳定
		6.判断灯条颜色:
			1)拿最小外界矩形的boundingRect(不倾斜的),再适当调大大小
			2)与src取交集:region &= cv::Rect(0, 0, src.cols, src.rows);
			3)遍历该roi:
				red_cnt += roi.at<cv::Vec3b>(row, col)[2];
            	blue_cnt += roi.at<cv::Vec3b>(row, col)[0];
            4)red_cnt > blue_cnt 则为红,反之,则为蓝
         7.	遍历之前的两种阈值出来的二值图出来的灯条,判断是否为相同灯条:
        	1)两灯条中心距离的平方<9
       	 8.若为相同灯条,则哪个凸度低,把哪个给remove
	       	 (先遍历,把要erase的序号记下来,从大到小erase!)
       	 9.合并两种阈值出来的二值图出来的灯条
       	 10.若light_blobs.size() >= 2,才return true
	二.匹配灯条,得到装甲板
		1.判断两个灯条是否可以匹配
			1)颜色均为enemy_color
			2)两个灯条的长度比lengthRatioJudge  < 2.5    > 0.4
			3)判断两个灯条的间距 
				side_length = sqrt(centers.ddot(centers));
					(side_length / light_blob_i.length < 10 
					&& side_length / light_blob_i.length > 0.5);
			4)判断两个灯条的错位度 中心差.x和角度cos乘积+中心差.y和角度sin乘积
			5)判断装甲板方向 (angle_i + angle_j) / 2.0 
		(-120.0 < angle && angle < -60.0) || (60.0 < angle && angle < 120.0);
			6)判断两个灯条的角度差 abs(angle_i - angle_j) < 20;
     		7)判断两个灯条的高度差 <30
     	2.判断是否是有效装甲板
     		1)装甲板区域超过src,则continue
     		2)装甲板中心位置的y不可能太低 (max_y + min_y) / 2 < 120
     		3)if ((max_x - min_x) / (max_y - min_y) < 0.8) continue;
     		Note:它们获得的装甲板是一个正矩形
     	3.用卷积神经网络对装甲板进行分类
Leran:
	cv::countNonZero
	rect可以&
	point可加减
	使用了opencv的Tracker

待完善-----------------

标签:cnt,判断,angle,--,灯条,length,&&,RM,识别
来源: https://blog.csdn.net/Mr_Dec/article/details/113831656

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有