1

У меня есть куча изображений (~ 3000), которые были классифицированы вручную (одобрены/отклонены) на основе некоторых бизнес-критериев. Я обработал эти изображения с помощью Google Cloud Platform, получив аннотации и результаты SafeSearch, например (формат csv):Классификация аннотированных изображений

имя файла; утвержден/отклонен; для взрослых; пародия; медицинская; насилие; Аннотации A.jpg; утвержден; VERY_UNLIKELY; VERY_UNLIKELY; VERY_UNLIKELY; маловероятный; лодка | 0.9, транспортное средство | 0,8 B.JPG; отвергается VERY_UNLIKELY; VERY_UNLIKELY; VERY_UNLIKELY; маловероятный; текст | 0.9, шрифт | 0,8

I хотите использовать машинное обучение, чтобы иметь возможность предсказать, должно ли новое изображение быть одобрено или отклонено (второй столбец в файле csv).

Какой алгоритм я должен использовать?

Как форматировать данные, особенно колонку аннотаций? Должен ли я получить сначала все доступные типы аннотаций и использовать их как функцию с числовым значением (0, если оно не применяется)? Или было бы лучше просто обработать колонку аннотаций в виде текста?

ответ

1

Я предлагаю вам попробовать сверточные нейронные сети.

Возможно, самый быстрый способ проверить свою идею, если она будет работать или нет (проблема может заключаться в том, что количество изображений у вас довольно низкое) заключается в использовании обучения перевода с помощью Tensorflow. Есть великие уроки, сделанные Магнусом Эриком Хвасом Педерсеном, который опубликовал их на youtube.

Предлагаю вам просмотреть все видеоролики, но важными являются # 7 и # 8.

Использование обучения перевода позволяет использовать модели, которые они создают в google для классификации изображений. Но при передаче обучения вы можете использовать свои собственные данные с помощью собственных ярлыков.

Используя этот подход, вы сможете узнать, подходит ли оно для вашей проблемы. Затем вы можете погрузиться в сверточные нейронные сети и создать трубопровод, который будет работать лучше всего для вашей проблемы.

+0

Я согласен, что передача обучения - лучший выбор. Ниже приведены учебные инструкции по обучению для [CNTK] (https://github.com/Microsoft/CNTK/wiki/Build-your-own-image-classifier-using-Transfer-Learning) и [TF-slim] (https://github.com/tensorflow/models/blob/master/slim/slim_walkthough.ipynb). Алекс, так как я предполагаю, что вы захотите применить свою обученную модель к необработанному изображению, я не рекомендую включать никакие аннотации, кроме меток (одобренных/отклоненных) в ваших данных обучения. – mewahl