我正在尝试训练一个模型来检测巴基斯坦汽车的车牌。我发现了一种更快的技术,叫做 YOLO。这是一个链接YOLOv2
我正在关注的训练 YOLOv2 的博客是这个博客
根据这个博客,我需要有汽车的图像,我需要对这些图像进行注释(需要标记车牌的位置)以准备测试数据和训练数据。问题是我已经有表格的训练数据
而本教程要求我从这样的汽车图像中进行注释。
如果有人使用过 YOLO,请告诉我如何避免标注并使用我自己的训练数据来训练 YOLO 模型。
Yolo 训练需要以下格式的注解
[class] [X] [Y] [W] [H]
IE
0 0.443359 0.434722 0.391406 0.869444
如果你有相同的标注数据集,恭喜你可以开始训练了。如果你没有相同的,你可以使用 github 上提供的工具进行转换。
更新:注释是从中心计算的,例如。如果您使用的是 x1,y1,x2,y2 格式,则需要对其进行转换。
def convert_to_yolo_format(path, x1, y1, x2, y2):
"""
Definition: Converts (x1, y1, x1, y2) format to
(x, y, width, height) normalized YOLO format.
"""
size = get_img_shape(path) # size array [width,height]
dw = 1./size[0]
dh = 1./size[1]
x = (x1 + x2)/2.0 # centroid x
y = (y1 + y2)/2.0 # centroid y
w = x2 - x1 # width
h = y1 - y2 # height
x = abs(x*dw) # divide by width
w = abs(w*dw) # divide by width
y = abs(y*dh) # divide by height
h = abs(h*dh) # divide by height
return (x,y,w,h)
我现在也用 YOLO 处理 LP 识别。上面提到的bus是个不错的选择,为了解决物体检测问题,你需要的训练集不是裸LP,而是“自然环境中的LP”来训练Yolo在框架上找到LP位置。如果你没有得到它,但只有一组裸 LP,你需要以某种人为的方式生产它。我可以建议 1)用负样本(没有 LP 的图像)扩展你的训练集 2)针对对象分类问题训练 Yolo 3)处理你未标记的“自然环境”训练集,使用移动窗口检测 LP 地面实况位置获得的分类模型(是的,它可能会消耗资源......)因此获得目标检测问题的训练集 4)训练 NN 来解决目标检测问题。顺便一提,