关于faster-rcnn数据集的制作,尤其是xml文件的制作以及为了增强自己的数据集这方面详细讲解一下。因为最近参加了比赛,目标检测,我用的faster-rcnn网络,奈何数据量太小。于是为了增强自己的数据集,并载入自己的训练网络中。我写了几个脚本文件进行数据的增强及加载。
数据集的增强,关于检测的数据集的增强,并不是很好处理,因为我们除了对图像处理外,还有得到图像中我们要定位的物体(比如persion、dog)的具体坐标,才能进行训练。那么该如何得到处理后图像的坐标呢?
首先我进行了图像的旋转(30度、90度、180度、60度等等),旋转以后根据旋转的角度来计算旋转后图像的坐标。
输入:原图像、该图像中物体的坐标值(一般坐标值是存在txt文本中的)。注意:图像与其坐标值要一一对应。
输出:旋转后的图像、旋转后图像的坐标值。
相关代码如下(具体代码下面有链接):
#设置旋转角度,这里设置了270度
angle = 270.0
# 旋转后图像的四点坐标
[[pt1[0]], [pt1[1]]] = np.dot(rotateMat, np.array([[pt1[0]], [pt1[1]], [1]]))
[[pt2[0]], [pt2[1]]] = np.dot(rotateMat, np.array([[pt2[0]], [pt2[1]], [1]]))
主要是根据旋转的角度来计算坐标值。还有注意的一点是:不同的旋转的角度,对于最后的两坐标点的处理不同。以270度为例, 最后的到的坐标值还需要 pt1[0] = pt1[0] - height Rectpt2[0] = pt2[0] + heightRect这两步的处理。