Обнаружение адресных меток с использованием API обнаружения объектов TensorFlow

Вопрос или проблема

Я экспериментирую с API обнаружения объектов Tensorflow на машине с Windows 7. Я пытаюсь обнаружить адресные метки США (и подобные блоки текста), когда они появляются на почтовом отправлении или конверте. Я не стараюсь обнаружить отдельные слова или строки, а именно полный прямоугольный блок текста. Обычно мои адресные метки изолированы на письме или конверте и окружены пустым пространством. Например:

введите описание изображения здесь

Я следовал учебному пособию, чтобы обучить детектор объектов. Я использовал предварительно обученную модель SSD Inception V2 COCO вместе с 50 изображениями писем/конвертов с адресными метками, которые были аннотированы с помощью LabelImg. Чтобы аннотировать свои объекты (адресные метки), я нарисовал ограничивающий прямоугольник вокруг всей метки с примерно 5-15 пикселями отступа. После 200 шагов обучения я достиг значения потерь 2.5 и остановил обучение.

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

Мои вопросы:

  1. Реально ли ожидать обнаружение полного блока текста, учитывая, что он окружен пустым пространством, а не сплошными краями?
  2. Я правильно аннотирую? Я оставил около 5-15 пикселей отступа между текстом адреса и ограничивающим прямоугольником, когда аннотировал с помощью LabelImg.
  3. У меня достаточно изображений для одно-классового обнаружения, в котором адресные метки слабо варьируются от письма к письму?
  4. Должен ли я дать обучению длиться дольше?
  1. Трудно сказать, сможет ли алгоритм обнаружить полный блок текста или нет. Это довольно сложная задача, поскольку объект для обнаружения не имеет четкой структуры. Я могу ошибаться!

  2. Вы аннотируете правильно.

  3. У вас очень мало изображений для обучения. Большее количество изображений всегда полезнее для обучающих задач.

  4. Не смотрите на значение потерь, которое появляется в терминале, вместо этого проверьте общие потери в TensorBoard (я уверен, что эти потери будут больше).

    Как долго следует обучаться? В примере конфигурационного файла из API TensorFlow они говорят, что для набора данных о домашних животных (в котором всего 7349 изображений) нужно обучать модель в течение 200000 шагов, чтобы получить удовлетворительные результаты. Если эта задача поддается обучению, обучение более длительное время должно помочь.

Ответ или решение

Конечно, я постараюсь ответить на ваши вопросы максимально подробно и помочь решить вашу проблему с использованием TensorFlow Object Detection API для обнаружения адресных ярлыков.

Ответы на ваши вопросы:

  1. Обоснованность ожидания обнаружения блока текста:
    Ожидать, что модель сможет обнаружить полный блок текста, окруженный белым пространством, вполне возможно, хотя это и может быть сложной задачей. Модели, основанные на глубоком обучении, могут учиться различать объекты, основываясь на сложных визуальных паттернах, но определённая степень вариативности между изображениями может затруднить задачу. Чтобы улучшить качество обнаружения, используйте как можно больше примеров с различными условиями: разное освещение, угол съемки и фоновое окружение.

  2. Правильность аннотирования:
    Вы аннотируете правильно. Оставление 5-15 пикселей за пределами текста может помочь модели лучше обучаться на контексте адресного ярлыка. Однако имейте в виду, что аннотации должны быть как можно более точными, включая разнообразие в структуре и размере ярлыков, если таковые имеются.

  3. Количество изображений для одной классовой детекции:
    Пятьдесят изображений для одной классовой детекции может быть недостаточно, даже если адресные ярлыки варьируются незначительно. Как правило, чем больше данных у вас есть, тем лучше будет модель. Используйте различные изображения с разными условиями, чтобы модель имела возможность научиться общим характеристикам адресных ярлыков.

  4. Длительность обучения:
    Необходимо продолжать обучение. Как было указано в примере конфигурационного файла от TensorFlow API, для получения удовлетворительных результатов даже на небольшом наборе данных, таком как набор изображений домашних животных, нужно обучать модель на протяжении 200000 шагов. Чтобы достичь желаемых результатов, просматривайте величину потерь в TensorBoard вместо стандартного вывода потерь в терминале, так как это даст вам более полное представление о процессе обучения.

Рекомендации:

  • Увеличение объема данных: Попробуйте собрать больше изображений адресных ярлыков. Это может включать изображения с разными стилями, фонами и условиями освещения.

  • Обработка данных: Убедитесь, что данные разнообразны. Подумайте о добавлении аугментации данных, чтобы модель могла учиться на более широком спектре вариаций изображений, что может улучшить её устойчивость.

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

  • Дополнительная оценка: После завершения обучения протестируйте модель на валидационном наборе данных, который не входил в тренировочный набор, чтобы убедиться в её способности к обобщению.

Если у вас возникнут дополнительные вопросы или потребуется помощь в дальнейших шагах, не стесняйтесь задавать их. Удачи вам в вашем проекте по обнаружению адресных ярлыков!

Оцените материал
Добавить комментарий

Капча загружается...