traffic light recognition

红绿灯目标检测项目

一、简概

1.1流程

UTOOLS1589862300870.png

1.2数据集结构

UTOOLS1589863314046.png
xml文件示例:

<annotation>
    <folder>Images</folder>
    <filename>102.jpg</filename>		// 图片名
    <source>
        <database>Unknown</database>
    </source>
    <size>								// 图片尺寸
        <width>424</width>
        <height>240</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>green</name>				// 目标名称(类别)
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <occluded>0</occluded>
        <bndbox>						// bound_box
            <xmin>196</xmin>
            <ymin>46</ymin>
            <xmax>232</xmax>
            <ymax>77</ymax>
        </bndbox>
    </object>
</annotation>
1.3 关键包

深度学习框架: paddle(百度飞桨)
图片处理包: cv2
xml解析:xml
数据增广:imgaug

二、详细流程

1. 数据处理

1.1 载入图片、标签

直接加载train文件夹下的xml文件,通过xml文件中的filename找到图片。

功能:读取一个xml文件,返回归一化后的图片和标签
函数名:
def get_image_and_annotation()
输入参数:
(
	xml_filepath='work/data_set/train/xml/102.xml'				// xml文件路径
	image_dir='work/data/train/img',							// 图片存储的文件夹
	image_shape=(256, 256)										// 返回出来的图片的宽高
)
输出格式:
{
	"image" : , 		// cv2读取出来的图片,归一化
	"objects" : 		// 一个object列表(列表中嵌套字典)
	[
		{
			"name" : 1,	// 目标名称 (0为绿灯,1为红灯)
			"xmin" : 0.1,
			"ymin" : 0.1,
			"xmax" : 0.2,
			"ymax" : 0.2 
		}
		···
	]
}

1.2 数据增广

功能:输入一组原始图片、标签,返回增广后的图片、标签
函数名:
def augmentPipe()
输入参数:
(
	image = , 		// cv2格式的图片
	objects =  		// 一个object列表(列表中嵌套字典)
	[
		{
			"name" : 1,	// 目标名称 (0为绿灯,1为红灯)
			"xmin" : 0.1,
			"ymin" : 0.1,
			"xmax" : 0.2,
			"ymax" : 0.2 
		}
		···
	]
)
输出格式:
{
	"aug_image" : , 		// 数据增广后的图片,cv2格式
	"objects" : 			// 变换后的object列表
	[
		{
			"name" : 1,		// 目标名称 (0为绿灯,1为红灯)
			"xmin" : 0.1,
			"ymin" : 0.1,
			"xmax" : 0.2,
			"ymax" : 0.2 
		}
		···
	]
}

1.3 预处理

功能:①预处理图片、修改图片大小 ②修改标签为向量、使之符合网络
函数名:
def preprocessing()
输入参数:
(
	image = , 							# cv2格式的图片
	objects =  							# object列表
	[
		{
			"name" : 1,					# 目标名称 (0为绿灯,1为红灯)
			"xmin" : 0.1,
			"ymin" : 0.1,
			"xmax" : 0.2,
			"ymax" : 0.2 
		}
		···
	]
	output_image_shape = (256, 256) ,		# 期望输出的shape (输入网络)
)
输出格式:
{
	"X" : np.array(),		// 预处理后的图片, 归一化
	"Y" : np.array()		// object变为数组 
}

2. 模型设计(YOLO)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值