Многоступенчатый конвейер и его проблемы

Прикладное машинное обучение обычно сосредоточено на поиске одной модели, которая хорошо работает на данных реального варианта использования. В этом случае модель будет оцениваться с использованием показателей оценки, характерных для выполняемой задачи. Это помогает понять характеристики модели и производительность данного набора данных, что полезно для дальнейшего улучшения. Однако в некоторых случаях одного модуля недостаточно, и требуется сотрудничество с другими модулями для получения окончательного результата, что приводит к многоэтапному конвейеру.

В этом сообщении блога многоэтапный конвейер — это то, что мы называем конвейером машинного обучения, в котором взаимодействуют различные модули, и каждый выполняет определенную задачу. Например, конвейер распознавания лиц обычно включает в себя модули обнаружения, выравнивания, внедрения и проверки для сопоставления лиц с правильной идентификацией. Это создает новую проблему для процесса оценки конвейера. Поскольку в конвейере несколько модулей, каждый из них по-разному влияет на конечный результат. Сквозная оценка может дать вам общее представление о конвейере, но может быть сложно понять, как каждый модуль влияет на конвейер в целом. В этом сообщении блога мы обсуждаем идею того, как мы решаем эту проблему, и фактически видим влияние отдельного модуля на весь конвейер.

В Sertis Vision Lab мы создали продукт для распознавания удостоверений личности тайского языка, требующий многоступенчатой ​​конвейерной обработки. Поэтому мы будем использовать наш конвейер тайского распознавания идентификаторов в качестве примера, чтобы продемонстрировать наш подход к углубленной оценке наших моделей.

Конвейер OCR тайского идентификатора

Наш продукт Thai ID OCR предназначен для автоматизации извлечения информации из изображений, содержащих тайские удостоверения личности. В наш конвейер интегрировано несколько модулей для выполнения оптического распознавания символов на тайских удостоверениях личности, которые состоят из 4 основных модулей: детектор карт, детектор текста, считыватель текста и сопоставление сущностей. Пожалуйста, посетите нашу запись в блоге OCR [1] для более подробной информации о каждом модуле.

Каждый из этих модулей играет важную роль в формировании конечного результата и определении общей производительности всего конвейера. Следовательно, чтобы обеспечить хорошую производительность на уровне конвейера, необходимо проверить влияние каждого модуля на производительность конвейера. Это позволяет нам сосредоточиться на улучшении только нескольких модулей, которые являются узким местом для производительности, вместо того, чтобы пытаться улучшить все компоненты, которые требуют больше времени и ресурсов.

Традиционные подходы к оценке

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

Индивидуальная оценка

Вэтом методе каждый модуль оценивается индивидуально с использованием различных показателей оценки. В нашем случае мы используем среднюю точность и среднюю полноту в качестве показателей оценки для детектора карт и детектора текста, точность и расстояние Левенштейна для устройства чтения текста, а также нормализованную среднюю точность для оценки нашего модуля сопоставления сущностей.

Каждая оценочная метрика отражает реальную производительность каждого модуля без какого-либо влияния со стороны других предыдущих модулей, воспроизводя одноэтапную конвейерную оценку для каждого модуля. Таким образом, он может дать общее представление о том, как работает каждый модуль в отдельности. Однако в многоступенчатом конвейере, в котором несколько модулей работают вместе в каскадной манере, производительность вышестоящих модулей также определяет качество входных данных нижестоящего модуля. Следовательно, оценка модели так, чтобы каждый модуль был полностью независимым, является нереалистичным сценарием и не может представить, как каждый модуль влияет на весь конвейер.

Сквозная оценка

Вместо того, чтобы оценивать каждый модуль по отдельности с помощью различных показателей оценки, независимых от других компонентов, сквозная оценка в основном фокусируется на общей производительности конвейера. Следовательно, он рассматривает только окончательный результат и использует только несколько показателей, соответствующих результату, для измерения точности прогнозирования. В нашем случае в качестве оценочных метрик мы используем точность и расстояние Левенштейна. Таким образом, оценка будет представлять производительность всего конвейера как следствие всех модулей. Кроме того, ведение журнала может помочь определить процесс, в котором возникает ошибка. Однако только ошибка, которая нарушает работу всего конвейера, может быть зарегистрирована. Например, если модуль обнаружения текста не обнаружил текста, возникнет ошибка, поскольку для следующего модуля не будет входных данных. О такой ошибке будет сообщено в файле журнала. Однако трудно определить основную причину, особенно если ошибки возникают в нижестоящем модуле. В частности, причиной этих ошибок может быть низкая производительность нижестоящего модуля, следствие недостаточной производительности вышестоящего модуля или и то, и другое. С помощью этого метода единственное, что вы можете увидеть, это конечный результат, но не влияние каждого модуля на весь конвейер.

Предлагаемое решение

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

Реализация сквозной оценки с идеальным модулем

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

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

Вот как мы применили предложенный нами подход к оценке различных модулей в нашем пайплайне Thai ID:

  • Сквозная оценка с идеальным модулем обнаружения карт

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

  • Сквозная оценка с идеальным модулем обнаружения текста

Эмуляция идеального детектора текста была реализована путем замены модуля обнаружения текста на его идеальную аннотацию. В то время как у нас есть ограничительные рамки для определения истинности текста, которые вручную аннотируются на искаженном изображении карты, полученном с использованием ключевых точек обнаружения наземной карты. Однако детектор карт не идеален. Следовательно, аннотации ограничительной рамки для обнаружения истинного текста необходимо преобразовать в искаженное изображение карты, полученное в результате запуска детектора карты. Это делается путем преобразования аннотаций текстового детектора истинности земли из обрезанной карты в исходное изображение, а затем в обнаруженное искаженное изображение карты. Это преобразование показано на рис. 3.

  • Сквозная оценка с идеальным модулем чтения текста

Это самая сложная из идеальных оценок модулей, которая должна быть автоматизирована и требует ручных аннотаций каждый раз, когда обновляются предыдущие модули. Замена модуля чтения текста его аннотацией требует от нас идеальных результатов чтения текста для любого изображения, переданного в средство чтения текста. Хотя у нас есть основной текст для всего конвейера, он не соответствует требованию, особенно в следующих случаях: 1) детектор текста не обнаруживает всю ограничивающую рамку; или 2) он разбивает текст, который должен находиться в одной ограничивающей рамке, на несколько отдельных ограничивающих рамок. Это неизбежно влияет на результаты чтения текста, даже когда сам модуль может работать идеально. Следовательно, для этой оценки нам потребуются аннотации на уровне символов для всего необходимого текста на карточке. Это, вместе с достоверной информацией и обнаруженными ограничивающими рамками текста, приведет к более точной оценке предсказания идеального читателя текста. Поскольку для этого требуются аннотации на уровне символов, это еще предстоит реализовать.

  • Сквозная оценка с помощью идеального модуля сопоставления сущностей

Поскольку модуль сопоставления сущностей был предназначен для сопоставления полей обнаружения детектора текста с сущностью, которую он представляет, это было реализовано с использованием шаблона сопоставления сущностей, чтобы сопоставить ограничивающую рамку с сущностью, которой она принадлежит. Модуль имитации сопоставления идеальных сущностей был направлен на получение шаблона сопоставления идеальных сущностей для выполнения сопоставления. В то время как у нас есть ограничивающие прямоугольники для определения истинности текста, соответствующие шаблону сопоставления сущностей, который аннотируется на искаженном изображении карты, полученном с использованием ключевых точек обнаружения наземной карты. Однако детектор карт и текстовый детектор не идеальны. Следовательно, для создания идеального шаблона сопоставления сущностей на обнаруженном изображении карты аннотации ограничительной рамки для определения истинного текста должны быть преобразованы в искаженное изображение карты, полученное из детектора карт, а затем сгенерирован идеальный шаблон для сопоставления сущностей с использованием эти преобразованные ограничивающие рамки. Генерация идеального шаблона сопоставления сущностей показана на рис. 5.

Сравнение результатов реализации

Мы проводим сквозную оценку с идеальным модулем на реальном наборе данных, который мы создали для себя (дополнительную информацию см. в блоге OCR [1]). Гистограмма на рис. 6 показывает, как повышается точность по мере индивидуального включения каждого идеального модуля в конвейер. По сравнению с другими идеальными модулями идеальный модуль сопоставления сущностей обычно дает наибольший выигрыш в точности, особенно для id_number и th_name, которые являются важной информацией, которой мы уделяем приоритетное внимание. В целом точность, усредненная по всем объектам конвейера с идеальным модулем обнаружения карт, идеальным модулем обнаружения текста и идеальным модулем сопоставления объектов, увеличивается на 6,9%, 7,4% и 12,9% соответственно. Сравнение показывает вклад каждого идеального модуля в производительность конвейера. Другими словами, модуль, который может принести наибольшее улучшение общей производительности, когда он станет идеальным, должен быть улучшен больше всего. Основываясь на этом сравнении, мы решили улучшить наш модуль сопоставления сущностей, добившись увеличения точности на 12,1%.

Заключение

Предлагаемый нами метод сквозной оценки с идеальным модулем использует идеальную аннотацию каждого модуля для имитации ситуации, когда этот модуль может работать идеально, чтобы наблюдать его влияние на весь конвейер. Это может решить проблему в многоступенчатом конвейере, где индивидуальная оценка и обычная сквозная оценка не могут отразить влияние каждого модуля на общую производительность. Хотя предлагаемый подход к оценке помогает во всем этом, нам по-прежнему требуется стандартная сквозная оценка, чтобы полностью понять производительность конвейера в целом, и индивидуальная оценка для оценки каждого модуля в отдельности. Выполняя это предлагаемое решение вместе с этими двумя традиционными методами оценки, мы можем лучше понять наш конвейер и получить более четкое представление о том, какой модуль должен быть приоритетным для улучшения, чтобы повысить общую производительность.

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

[1] Система оптического распознавания символов Sertis

Автор: Sertis Vision Lab