For the purposes of object detection, are there any easy ways to create annotated training images? For example, if we have $10,000$ images and want to draw bounding boxes on 2 objects for each image, do we have to physically draw those boxes? Is that what most people do these days to create training data?
From what I read in the papers and my experience, the trend lately is to generate synthetic data using a photorealistic 3D graphics engine for automating the image labelling. The process would be:
- Get a visually realistic 3D engine such as Unreal, Unity... any videogame engine would work
- Build 3D models of the objects you want to detect (or ask for help to a 3D artist)
- Build a 3D environment for placing the objects 3D models
- Generate random instances of the objects in the environments with different environmental conditions: lighting, brightness, position, rotation...
Since you have the 3D model of the object and the whole control in the 3D engine you can annotate images, bounding boxes, pixels... or whatever stuff you want in an automated way.
This is an approach for automatic image labeling with synthetic data. Automating the labeling of real data is a challenge yet to be tackled.