- Вопрос или проблема
- Ответ или решение
- Руководство по созданию модели распознавания изображений для инвентаризации художественных произведений
- Введение
- Проблематика и требования
- Выбор модели
- Устранение узких мест и повышение точности
- 1. Обогащение данных (Data Augmentation)
- 2. Оценка мобильного подхода
- 3. Параметры обучения
- 4. Оптимизация формата входных данных
- Заключение
Вопрос или проблема
У меня есть более 20,000 изображений произведений искусства (живопись, скульптуры, банки и т. д.), хранящихся в базе данных. Самие произведения распределены по нескольким складам. Идеально, чтобы физические предметы ДОЛЖНЫ были иметь наклейку (с их идентификаторами, QR-кодом и т. д.), эти наклейки сделаны из бумаги, поэтому они могут повредиться, быть плохо напечатаны, нечитаемыми, полностью отсутствовать или даже быть неправильно расположены. Моя цель – создать модель, которая получает на вход изображение (отправленное кем-то с любого склада), идентифицирует точно такое же произведение искусства из доступных данных и возвращает его идентификатор, детали и т. д.
В моем случае образец статичен, фиксирован (новых произведений искусства не будет, если клиент не приобретет больше), поэтому модель никогда не «увидит» новые изображения, что заставляет меня думать, что переобучение, возможно, будет самым желаемым результатом для достижения моделью (это означает сильное увеличение данных и высокое количество эпох).
Обратите внимание, что доступно ТОЛЬКО ОДНО изображение на класс (произведение искусства). Это ситуация, которая не может измениться.
Выбранный язык программирования – R, в основном библиотеки tensorflow
и keras3
.
Только для тестирования я взял образец из 10 произведений, сгенерировал 9 других от каждого (увеличение данных, применение поворота, вертикального/горизонтального отражения, случайных факторов насыщенности, случайных факторов яркости и т. д.). Позже создавал 5 положительных и 5 отрицательных пар для каждого класса. Наконец, я запустил сиамскую сеть, но точность, кажется, застряла на уровне 49%.
Сказанное, мне трудно найти решения, поскольку вся документация основывается либо на одном и том же наборе данных cat vs dogs
, либо mnist
. Мои вопросы:
- Является ли сиамская сеть правильным алгоритмом для этой цели?
- Что я могу сделать, чтобы улучшить точность?
Ваша проблема – это задача классификации изображений с более чем 20000 классами: данное изображение, верните класс, то есть точное произведение искусства.
Перед использованием двухэтапного рабочего процесса, почему бы не попробовать просто модель классификации изображений, которая берет изображение и выдает класс? Я не думаю, что добавление такой простой функции, как цветовой кластер, сильно поможет для классификации.
Подход сначала попробовать с 2000 квадратными картинками кажется разумным, но это означает, что вы можете обучить свою модель максимум на 2000 классах (2000 классов, если у вас 1 пример на класс, меньше классов, если у вас больше 1 примера для какого-то класса), поэтому будьте осторожны, когда оцените эту модель.
Если у вас так мало примеров на класс, то увеличение данных, вероятно, важно, если вашей модели нужно обобщать по различным условиям освещения, углам камеры, фону и т. д. на фотографиях. Переобучение на каких-то случайных признаках фотографий может быть проблемой, если у вас очень мало примеров.
Ответ или решение
Руководство по созданию модели распознавания изображений для инвентаризации художественных произведений
Введение
Создание модели распознавания изображений для работы с большим количеством уникальных объектов, таких как художественные произведения, представляет собой сложную задачу. В вашем случае необходимо учитывать, что у вас есть свыше 20 000 изображений, каждое из которых представлено единственным экземпляром (классом). Это создает определенные вызовы, такие как возможное переобучение конструкции модели, а также необходимость в наличии надежной и эффективной методы для идентификации произведений искусства по изображениям.
Проблематика и требования
Ваши требования к модели включают:
- Точность идентификации: модель должна точно определять произведение искусства по полученному изображению.
- Устойчивость к повреждениям: учитывая, что наклейки с ID могут быть плохо напечатаны, повреждены или отсутствовать.
- Использование ограниченного объема данных: одно изображение на каждое произведение искусства подразумевает необходимость в обширной аугментации данных для повышения качества модели.
Выбор модели
-
Сиамская сеть. Сиамская сеть является подходящим выбором для данной задачи, так как она позволяет эффективно сравнивать изображения и определять степень их схожести. Однако, ее реализация требует тщательной проработки, особенно с учетом высокоразмерного пространства классов.
-
Модель классификации изображений. В качестве альтернативы, можно также рассмотреть модели, предназначенные для классификации изображений. Такие модели могут быть реализованы с использованием специализированных архитектур, таких как ResNet, DenseNet и Inception. Для этих моделей могут использоваться предварительно обученные веса, что может помочь ускорить тренировку и повысить ее эффективность.
Устранение узких мест и повышение точности
Для повышения точности вашей модели предпримите следующие шаги:
1. Обогащение данных (Data Augmentation)
Предварительная обработка изображений с использованием различных методов аугментации (повороты, изменения яркости и контрастности, вертикальное и горизонтальное отражение) поможет увеличить разнообразие обучающего набора. Вы должны быть особенно внимательны к сохранению ключевых характеристик произведений искусства, чтобы не потерять их уникальность.
2. Оценка мобильного подхода
Для избавления от переобучения используйте методы регуляризации, такие как Dropout
и Weight regularization
. Это может снизить вероятность алгоритма, который "запоминает" слишком много деталей изображений.
3. Параметры обучения
- Увеличьте количество эпох и мониторьте метрики. Возможно, сложные архитектуры требуют более длительного времени для тренировки.
- Используйте адаптивные методы оптимизации (например, Adam или RMSprop), которые могут улучшить сходимость.
4. Оптимизация формата входных данных
- Убедитесь, что изображения имеют одинаковую размерность и качество. Это поможет модели более эффективно "сравнивать" входные данные.
- Используйте стандартизированные методы предобработки, чтобы избежать проблем с освещением или другими переменными при вводе изображений.
Заключение
Создание модели распознавания изображений для идентификации художественных произведений – это непростая задача, особенно когда каждое произведение представлено лишь одним изображением. Сиамская сеть является подходящим вариантом, однако применение других архитектур может значительно улучшить результаты. Обогащение данных, настройка моделей и применение методов регуляризации помогут вам достичь запрашиваемого уровня точности и надежности. Важно помнить, что успешная реализация требует итеративных тестов и тщательного анализа результатов, чтобы улучшить качество идентификации вашей модели.