基于TensorFlow的SSD车辆检测-1

这篇博客介绍了基于TensorFlow的SSD车辆检测项目,重点讲解了训练数据的准备,包括读取KITTI数据集、数据扩张(随机缩放、水平翻转、随机裁剪)以及训练时的Batch生成。作者提供了数据集的下载链接,并详细解释了数据预处理的步骤和技术,旨在帮助新手理解目标检测的训练流程。
摘要由CSDN通过智能技术生成

此系列博客是用来学习Tensorflow和Python的,由于是新手上车,如有错误之处希望大家不吝指出。

整个项目可以从百度云下载:链接:https://pan.baidu.com/s/1f2JPJpE7m5M2kSifMP0-Lw 密码:9p8v

一. 训练数据准备

在训练数据准备环节,主要包含下面三块内容:

  • 怎样解析用于车辆检测训练的KITTI数据集
  • 怎样进行数据扩张来增大训练数据的多样性
  • 怎样在训练阶段为模型供给batch训练数据
1. 读取KITTI数据集

首先到KITTI官网http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=2d下载车辆检测数据集。

具体地,只用下载下面3个压缩包:(需要提供邮箱以获得下载链接)

KITTI数据集采用了一张图片对应一个标注文件的形式,其中标注文件是TXT格式,内容为N行15列,每一列都使用空格隔开。这15列的内容是:

列号 名称 描述
1 类别 目标类别,共8类:’Car’, ‘Van’, ‘Truck’,’Pedestrian’, ‘Person_sitting’, ‘Cyclist’, ‘Tram’, ‘Misc’ 或者 ‘DontCare’
2 是否有截断 指目标是否超出图像边界,0: (non-truncated), 1: (truncated)
3 遮挡情况 0 = fully visible, 1 = partly occluded 2 = largely occluded, 3 = unknown
4 目标观测角度 范围[-pi..pi]
5-8 目标bbox 坐标从0开始,[left, top, right, bottom]
9-11 3D维度 3D object dimensions: height, width, length (in meters)
12-14 3D空间坐标 D object location x,y,z in camera coordinates (in meters)
15 Y轴旋转角 Rotation ry around Y-axis in camera coordinates [-pi..pi]
16 置信度得分 仅用于Test,浮点数,用于绘制p/r曲线

备注:‘DontCare’表示忽略的未标记区域,这可能是因为超出了激光扫描仪的工作范围。测试时,位于该部分区域的结果会自动被忽略。训练时可以同样将此部分忽略,防止在此区域不断地引起Hard Mining操作。

由于这里只进行车辆检测,因此标注信息中我们暂时只关注类别和BBox信息。此外,将’Car’, ‘Van’, ‘Truck’这3类合并为正样本目标,其余区域作为背景区域。

首先,我们需要批量的读取每一个标注文件:

# readKITTI.py 用于解析KITTI数据集

import os

# 获取指定后缀名的文件列表
def get_filelist(path,ext):
    # 获取某个文件夹下的所有文件
    filelist_temp  = os.listdir(path)
    filelist = []
    # 通过比较后缀,选中所有TXT标注文件
    for i in filelist_temp:
        if os.path.splitext(i)[1] == ext:
            filelist.append(os.path.splitext(i)[0
评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值