Training dataset generator in OpenCV

2020-07-29 23:08发布

问题:

I'm working on my bachaleor theses called "Traffic sign detection in image and video" and I'm using neural network called YOLO (You Only Look Once). I think its name is pretty self-explaining, but paper may be found here. This network is learning from not-cropped annotated images (Regular networks use to train on cropped images). To be able to learn this network, i need not-cropped annotated european traffic signs dataset. I wasn't able to find any, even not here, so i decided to generate my own dataset.


First, I load many images of road taken from static camera on the car.

I've got few TRANSPARENT traffic (stop) signs like this

Then I'm doing few operations to make the traffic sign look "real" and copy it to random positions (where traffic signs usually are located). The size of traffic sign is adjusted due to its position in image -- closer to the middle sign is, the smaller sign is.

Operations I'm performing on traffic sign are:

  • Blur sign with kernel of random size from 1x1 to 31x31.
  • Rotate image left/right in X axis, random angle 0 to 20.
  • Rotate image left/right in Z axis, random angle 0 to 30.
  • Increase luminescence by adding/subtracting random value from 0 to 50

Here you may see few result examples (the better ones i guess): click.

Here is the source code: click.


Question:

  • Is there anything i could do to make the signs look more real and let the neural network train better ?

If the question would suit better for different kind of site, please, let me know.