Open ArjanSchouten opened 7 years ago
@tombstone, (please feel free to redirect if you're not the right person), can you please comment on whether Arjan's suggestion would be helpful?
I'd love this feature too...currently using ssd-mobilenet trained to detect lots of vertical and very narrow features...it works pretty well already but with rotation data augmentation would work even better... how do I do that?
I already started to work on this. Obviously I've only seen a decrease in accuracy, so I think I implemented something wrong ;)
If I have time I can send a WIP PR so people interested in this can review it and help me out if I have made an implementation mistake.
Hi Arjan,
Thanks for working on this. I would be definitely interested. Please keep me updates if you make any more progress!
Thanks!
Still not progressed? Is a PR helpful?
Rotation augmentation is very important for many (me included). Let me know if you need help.
One year since the last post. Has anyone implemented this yet?
I tried this some time ago. I haven't made it ready for use yet (and I'm not in the position anymore to work on that code). Hope someone else is able to implement this!
The function random_rotation90
was added to core/preprocessor.py
a few days after this issue was created. I don't know if this function existed somewhere previously.
Was the original intent of this issue the one of creating a random rotation of any amount of degrees, or the function random_rotation90
would solve the issue?
If it's the former, what do you think the best strategy would be? Having a single additional augmentation strategy that would generate a random angle every time, or multiple additional functions with, let's say, 45 degrees, 30 degrees, 10 degrees, etc.?
The function
random_rotation90
was added tocore/preprocessor.py
a few days after this issue was created. I don't know if this function existed somewhere previously.Was the original intent of this issue the one of creating a random rotation of any amount of degrees, or the function
random_rotation90
would solve the issue?If it's the former, what do you think the best strategy would be? Having a single additional augmentation strategy that would generate a random angle every time, or multiple additional functions with, let's say, 45 degrees, 30 degrees, 10 degrees, etc.?
I believe it is the former. To me, the best strategy would be to have a single additional augmentation strategy that would generate a random angle every time, within a defined upper and lower boundary.
Still not implemented... It would save me a lot. Planning to use https://github.com/aleju/imgaug instead.
Still not implemented... It would save me a lot. Planning to use https://github.com/aleju/imgaug instead.
I have been using aleju/imgaug for classification tasks and they work very well. Are you simply using it to augment your dataset, then converting them to tfrecords, and then using the Object Detection API?
Any ideas on how to easily use it for training with the Object Detection API, while having imgaug generate endless variations of images? The API takes in a simple protobuf configuration file, with the path to the tfrecord, and a lot of code changes have to be done to do this "online augmentation" during training.
Use it. https://github.com/JinLuckyboy/TensorFlowObjectDetectionAPI-with-imgaug
I think, I seem to be able to make "online augmentation".
This is apparently not yet implemented. Any updates?
System information
Situation: I'm using the object detection API to detect features on images. The problem I work on is not focused on photograph but on more structural images. My training set now contains around 500 images. The accuracy has increased a lot since I added some data augmentation options.
The results I see so far are promising. For the same boxes with a horizontal feature it is working perfect. For the same box vertical it is failing. My training set contains them both.
Feature request: I was wondering if it can be improved by randomly rotating the input images to fix some of the not detected vertical aligned boxes. Currently this preprocessing option does not exist in object_detection. Do you think adding an preprocessor feature for random rotation is helpful (is a PR useful)?