Машинное обучение оказалось очень универсальной основой для решения самых разных новых задач. От самостоятельного вождения до здравоохранения — доказано, что он способен решать проблемы, для решения которых ранее считалось, что требуется определенный уровень человеческой интуиции и понимания. Область компьютерных наук, которая получила много преимуществ от универсальности ML, — это компьютерное зрение. Он занимается проблемами, связанными с извлечением значимой информации высокого уровня из цифровых изображений. Примеры проблем, которые подпадают под область CV, включают обнаружение и распознавание объектов, оптическое распознавание символов, создание художественных изображений и многое другое. Машинное обучение недавно представило множество инноваций, в результате чего во многих из этих областей появились решения, которые регулярно превосходят решения, управляемые человеком, которые многие считали невозможными всего несколько десятилетий назад.

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

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

Классическое компьютерное зрение — почему оно все еще круто

Используйте классические методы для ускорения аннотирования данных

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

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

Мораль

Прежде чем тратить много ресурсов на аннотирование, проверьте, можно ли ускорить процесс с помощью классических методов.

Полезно при нехватке данных

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

Мораль

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

Объяснимость

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

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

Мораль

При работе над требованием прозрачности и интерпретируемости классические методы являются отличным дополнением к вашему набору инструментов в дополнение к интерпретируемому машинному обучению.

Быстрое прототипирование позволяет параллельно разрабатывать последующие модули

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

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

Мораль

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

Использовать в качестве основы для машинного обучения

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

Мораль

Используйте классические методы в качестве основы для моделей машинного обучения. Это упрощает анализ производительности моделей машинного обучения.

Заключение

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

Автор: Sertis Vision Lab