I don't have a lot of training data and I'm looking for some tools in python or executable program like labelimg that do some heavy augmentation on images, even better if they also change bounding boxes coordinate accordingly. Any help will be appreciated!
I think you should look into imgaug. It supports most image augmentation and does have support for bounding boxes.
Other widely used Python libraries for data augmentation include:
- OpenCV: has functions/methods for bounding boxes, changing color space, scaling, cropping, translation, rotation, filters, blur, thresholding, etc.
- Scikit-image: also has features allowing converting from another color space to another, resizing/rescaling/rotating, erosion/dilation, filters, etc.
- Pillow: also has features for color space conversion, resizing/rotation/cropping, filters, pixel-level transformations, etc.
There is also bbaug which implements Google's bounding box augmentation policies.
Albumentations can do that augmentation. It supports multiple formats of bounding boxes annotations. From the docs:
Albumentations is a Python library for fast and flexible image augmentations. Albumentations efficiently implements a rich variety of image transform operations that are optimized for performance, and does so while providing a concise, yet powerful image augmentation interface for different computer vision tasks, including object classification, segmentation, and detection.