红绿灯识别方案分享

红绿灯识别方案分享

附赠自动驾驶最全的学习资料和量产经验:链接

方案概述

检测: 首先依靠一个基于图像的 2D 目标检测网络(本文中选取的是 YoloX), 并对该网络进行简单修改, 加入一个 extra head, 专门用于输出每个检测目标的多个属性(如颜色/朝向等).

跟踪: 随后使用简单的跟踪算法(如SORT算法)对检测到的目标进行跟踪, 以确保为每个灯分配唯一 ID, 方便对其状态进行时序校正.

聚类: 再之, 本方案会进行一个聚类算法, 对出现在同一区域的红绿灯进行合并簇, 这样可以在随后的选择处理中, 筛选出感兴趣的一簇灯, 而不是所有目标都参与红绿灯的投票中.

校正: 最后, 对每个状态的灯进行投票/校正等操作, 确保输出的结果状态稳定可靠, 不会因为前面步骤的偶发错误而出现跳变

image

数据标注

为了兼容各种各样的红绿灯的识别, 需要设计合适的数据标注方案, 本方案开发的标注方法, 理论上适用于常见的各种红绿灯.

对前向相机拍摄的图片进行人工标注,记录信号灯的 ID, 位置坐标、目标大小、颜色、符号等各种属性。经常出现的有如下几种类型的信号灯需要进行标注:

  1. 机动车信号灯

  2. 非机动车信号灯

  3. 人行横道信号灯

  4. 倒计时信号灯

  5. ⻋道信号灯

  6. 其它类型信号灯

灯箱 bbox 标注

在每帧图片中,最先需要标注的即每个信号灯灯箱的位置和大小信息(即bbox),灯箱位置信息以2D包围矩形框的方式,应尽量贴合灯箱的外边缘。bbox 标注的原则有如下几条:

  • 短边最小尺寸大于 4 像素的灯箱都要标注

  • 对于遮挡不全(不超过90%)的情况,若结合信号灯位置可确认其他边缘位置,需脑补出整个信号灯的检测框,并注明遮挡属性(参考后文中 occlusion 属性的定义)

  • 对于遮挡超过90%的灯箱,不需要标注

image

灯箱 ID标注

在同一帧图像中,每个灯箱都有其唯一的 ID。对于同一灯箱在不同帧图像之间,其 ID 应保持一致。ID 采用字符串或数字均可。

灯箱属性标注

指灯箱或子灯的某个类别的状态取值(如某子灯的颜色属性: 红色),本文涉及的属性分为灯箱和子灯两个大类,如下:

灯箱属性:

  1. direction(朝向)

  2. orientation(装置方向)

  3. state(运行状态)

  4. indication(指示类型)

  5. occlusion(遮挡状态)

  6. truncation(截断状态)

  7. blur(模糊状态)

  8. child_num(子灯数量)

  9. relevance(相关性)

子灯属性:

  1. color(子灯颜色)

  2. shape(子灯形状)

这里不对每个属性一一介绍, 取几个主要类别图例如下:

image

灯箱朝向属性

image

子灯颜色属性

标注格式

image

每张图片对应一个json文件,如下图的样例图片的标注信息如下:

{     
    "infos":
    {
        "image_path"         		: "00001.jpg",		# 图像数据的路径															# 相机编号
        "image_height"        	: 1080,																# 图像高度
        "image_width"		: 1920,																# 图像宽度
    },    
    "objects": 
	[
    	{
      	  "id"             	: 103															# 灯箱的唯一ID(每个包内不得重复)
          "class"				: "traffic_light",										# 灯箱类别名称,统一为 traffic_light
      	  "bbox"				: [ 55,46,110,177 ]										# 灯箱的 bbox 坐标
          "direction"	 		: "front",													# 灯箱朝向(属性1)
      	  "orientation"		: "vertical",												# 灯箱的装置方向(属性2)
      	  "state"				: "on",																# 灯箱运行状态(属性3)
     	    "indication"		: "motor",													# 灯箱的指示类型(属性4)
      		"occlusion"			: "not_occluded",										# 灯箱的遮挡状态(属性5)
      		"truncation"		: "not_truncated",									# 灯箱的截断状态(属性6)
      		"blur"				: "not_blur",													# 灯箱的模糊状态(属性7)
      		"relevance"			: "not_relevant",										# 灯箱的相关性(属性9)
      		"child_num"			: 4,																# 灯箱的子灯数量(属性8)
      		"child_division"	:  [[55, 46, 110, 78],						# 子灯的 bbox 坐标
 									[55, 78, 110, 110],
 									[55, 110, 110, 142],
 									[55, 142, 110, 177]]       
          "child_color"		:  ["red", "dark", "dark", "red"],										# 子灯的颜色列表(子灯属性1)
      		"child_shape"		:  ['arrow_left', 'unknown', 'unknown', 'digit:32']		# 子灯的形状列表(子灯属性2)
    	},
   	{
      		此处省略第二个灯箱标注信息
    	},
    	{
      		此处省略第三个灯箱标注信息
    	},
    	{
      		此处省略第四个灯箱标注信息
    	},
    	{
      		此处省略第五个灯箱标注信息
    	},
    	{
      		此处省略第六个灯箱标注信息
    	},
    	{
      		此处省略第七个灯箱标注信息
    	},
    	{
      		此处省略第八个灯箱标注信息
    	},
    	{
      		此处省略第九个灯箱标注信息
    	}
	]
}

TODO: 先写这么多吧, 有人看再继续…

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
### 回答1: 红绿灯识别是一种计算机视觉技术,旨在通过算法和模型来识别交通信号灯的颜色,例如红灯、绿灯和黄灯。MATLAB是一种流行的编程环境和编程语言,也可以用于红绿灯识别任务。 红绿灯识别通常包括以下步骤: 1. 图像采集:使用摄像头或其他图像采集设备获取道路上红绿灯的图像。 2. 图像预处理:对采集到的图像进行预处理操作,例如图像去噪、图像增强、图像分割等。这些操作有助于提高后续处理步骤的准确性。 3. 特征提取:通过分析图像的特征,如颜色、形状和纹理等,来提取与红绿灯相关的信息。例如,可以使用颜色分布来确定信号灯的颜色。 4. 分类与识别:使用训练好的分类模型,将提取到的特征与已知的红绿灯样本进行比较和匹配,从而确定信号灯的颜色。 在MATLAB中,可以使用图像处理工具箱提供的功能和算法来完成红绿灯识别任务。例如,可以使用颜色空间转换函数将图像转换为HSV颜色空间,然后使用阈值操作来提取红绿灯的颜色信息。还可以使用分类器训练工具箱中的机器学习算法,如支持向量机(SVM)或卷积神经网络(CNN),来训练一个模型,以便对红绿灯进行分类和识别。 总之,红绿灯识别是一项复杂而重要的任务,可以利用MATLAB的图像处理工具箱和机器学习功能来实现。通过合适的算法和模型,可以提高交通安全性,实现智能化的交通管理。 ### 回答2: 红绿灯识别是一种使用计算机视觉技术识别交通信号灯状态的方法。在Matlab中,可以使用图像处理和机器学习算法来实现。 首先,我们需要获取交通信号灯的图像。可以通过摄像头、视频或者图像文件等方式获取。然后,我们将获取的图像转换为灰度图像,以减少计算复杂度。 接下来,我们可以使用图像处理技术来检测图像中的红绿灯。通常,交通信号灯是由灯泡组成的,它们的颜色可能是红色、黄色或绿色。我们可以使用颜色过滤器来提取图像中的红色和绿色区域。通过选择适当的阈值和二值化操作,我们可以将图像分割为红色和绿色的区域。 然后,我们可以使用形态学运算来进一步改善分割结果。形态学运算包括腐蚀和膨胀操作,可以去除图像中的噪声,并填充图像中的空洞。 最后,我们可以使用机器学习算法对分割后的图像进行分类,以确定交通信号灯的状态是红色、黄色或绿色。常用的机器学习算法包括支持向量机(SVM)和卷积神经网络(CNN)等。我们需要使用已经标记好的训练数据来训练模型,并在测试数据上进行准确性评估。 红绿灯识别是计算机视觉中的一个重要应用场景,有助于改善交通安全和交通效率。通过在Matlab中使用图像处理和机器学习技术,我们可以实现红绿灯识别,并为智能交通系统提供支持。 ### 回答3: 红绿灯识别是一种常见的交通图像处理技术,通过使用MATLAB编程语言可以有效地实现该功能。红绿灯识别的目的是使用计算机视觉技术自动识别道路上的交通灯,以提高交通效率和安全性。 在MATLAB中,可以使用一系列图像处理算法和函数来实现红绿灯识别。首先,需要采集交通图像,并将其转换为图像矩阵。然后,可以使用图像分割技术,例如阈值分割或颜色空间转换,将图像中的交通灯区域分割出来。 接下来,可以使用特征提取技术来提取这些交通灯区域的特征。例如,可以计算交通灯区域的形状、颜色或纹理特征等。这些特征将用于后续的分类和识别过程。 在分类和识别阶段,可以使用机器学习算法,例如支持向量机(SVM)或卷积神经网络(CNN),对交通灯区域进行分类。训练集的数据可以作为输入,以训练机器学习模型,并将其应用于测试集数据,以实现红绿灯的自动识别。 最后,通过使用图像处理和机器学习的结合,我们可以在MATLAB中实现一个红绿灯识别系统。该系统可以从交通图像中提取出交通灯区域,并进行特征提取和分类,最终实现对红绿灯的自动识别红绿灯识别在交通安全和智能交通系统中具有重要的应用价值。快速准确地识别红绿灯可以提高交通流畅性和安全性,减少交通事故的发生。在MATLAB中,我们可以使用图像处理和机器学习技术来实现红绿灯识别,为交通管理和交通系统的自动化提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值