Api обнаружения объектов Tensorflow: как использовать imgaug для дополнения?

Я вручную скручивал аугментеры с помощью imgaug, так как мне очень нравятся некоторые из параметры, которые недоступны в API обнаружения объектов tf < / а>. Например, я использую размытие в движении, потому что большая часть моих данных содержит быстро движущиеся размытые объекты.

Как мне лучше всего интегрировать мою последовательность аугментации с API для обучения на лету?

Например, скажем, у меня есть аугментер:

aug = iaa.SomeOf((0, 2), 
                 [iaa.Fliplr(0.5), iaa.Flipud(0.5), iaa.Affine(rotate=(-10, 10))])

Есть ли способ настроить api обнаружения объектов для работы с этим?

В настоящее время я использую imgaug для генерации (дополненных) обучающих данных, а затем создаю файлы tfrecord на каждой итерации этого конвейера дополнений. Это очень неэффективно, поскольку я сохраняю большие объемы данных на диск, а не выполняю дополнения на лету, во время обучения.


person eric    schedule 13.09.2019    source источник
comment
В принципе, вы можете изменить функцию предварительной обработки, чтобы добавить нужные преобразования, но проблема в том, что библиотека реализует дополнения в NumPy, тогда как дополнения в API обнаружения объектов TF реализованы в TensorFlow. Поэтому вам придется использовать что-то вроде tf.py_func, что может быть не очень эффективно.   -  person jdehesa    schedule 18.09.2019
comment
Честно говоря, если у кого-то есть решение, использующее tf.py_func, это было бы здорово. Это было бы более эффективно, чем то, что я делаю сейчас. Я смотрел на модуль preprocessing.py, возможно, это то место, где можно это протолкнуть.,   -  person eric    schedule 19.09.2019
comment
Какие операции по увеличению вы хотели бы сделать? Будет ли их реализация в ТФ вариантом?   -  person rvinas    schedule 24.09.2019
comment
Один из важных - размытие в движении, остальные довольно стандартные. Я предполагаю, что новый вопрос будет заключаться в том, как мне реализовать его в TF таким образом, чтобы он был интегрирован с api обнаружения объектов? Я думаю, что это в preprocessing.py. Честно говоря, я ожидал, что интеграция imgaug с TF api будет простой, подумал, что просто упустил какой-то стандартный трюк.   -  person eric    schedule 24.09.2019
comment
Один из способов - создать новый набор данных только с imgaug и отключить онлайн-дополнения поездов tf.   -  person denisb411    schedule 18.01.2021


Ответы (1)


Кто-то сделал репо для этого:
https://github.com/JinLuckyboy/TensorFlowObjectDetectionAPI-with-imgaug

Извините, это не кодовый ответ, и я на самом деле не изучал его, поэтому я не буду отмечать это как официальный ответ. Если мне когда-нибудь представится возможность протестировать это, я дам знать людям.

person eric    schedule 18.01.2021