Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии

Ранее компания «Цифра» и партнеры запустили два онлайн-практикума: «Цифровое производство» и «Цифровое горное предприятие». Несколько лекций по самым востребованным сейчас темам мы опубликуем в нашем блоге. Начинаем с лекции технического директора «Цифра Роботикс» Дмитрия Луковкина о компьютерном зрении (CV или computer vision) для горной добычи.

Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии
Дмитрий Луковкин
Технический директор «Цифра Роботикс»

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

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

Что такое компьютерное зрение и как оно работает

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

Базовые задачи компьютерного зрения:

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

Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии

Обнаружение объекта. Система выявляет на изображении объекты, определяет ограничивающие их рамки (или bounding boxes) и относит объекты к определенному классу. Т.е. в данном случае система должна выделить на фото кота, собаку и утенка и правильно их классифицировать.

Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии

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

Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии

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

Как компьютерное зрение применяется в горной добыче

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

В последние десять лет компьютерное зрение развивается в тесной связке с машинным обучением (Machine learning или ML). Вышеперечисленные задачи — не исключение.

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

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

Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии

Как решается задача определения грансостава с помощью компьютерного зрения и ML

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

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

Опишу ход решения этой задачи шаг за шагом.

Шаг 1. Ставим задачу в терминах компьютерного зрения

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

Шаг 2. Определяем критерии успеха

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

Для этого выполняется работа как по анализу бизнес-требований, требований и ограничений со стороны технологического процесса, так и по анализу того, какие метрики и показатели мы можем использовать со стороны машинного обучения. Задача аналитика и эксперта на данном этапе — свести одно с другим, построить мостик от требований и метрик бизнеса к метрикам машинного обучения. Для задачи анализа грансостава нас интересуют такие две метрики качества, относящиеся к машинному обучению, как Intersection over Union и Mean Average Precision.

  • Intersection over Union — степень пересечения между двумя ограничивающими рамками. Предположим, у нас есть рамка, точно ограничивающая интересующий нас объект (мы сами ее аккуратно нарисовали). Также есть рамка, ограничивающая объект, являющаяся результатом работы модели. Intersection over Union в таком случае будет равно отношению площади пересечения прямоугольников, образуемых рамками, к площади фигуры, образованной объединением таких прямоугольников. В случае, если рамки не пересекаются, Intersection over Union будет равно 0.
  • Mean Average Precision, или, в несколько неуклюжем переводе на русский, усредненная средняя точность. Она показывает, насколько точно модель определяет класс выделенных объектов.
Компьютерное зрение для горной промышленности. Как это работает на примере гранулометрии

Шаг 3. Подготовка данных

ML-модели учатся на данных, и для хорошего обучения данных нужно много. Например, популярный набор данных ImageNet содержит 14 миллионов примеров, порядка шестисот примеров на каждый класс.

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

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

Шаг 4. Подбираем архитектуры моделей

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

Чтобы найти готовые архитектуры и реализации моделей для задач обнаружения объектов, можно посмотреть лидерборды по Object Detection и Instance Segmentation, например, на сайте paperswithcode.com/ и на подборках материалов на GitHub.

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

Обратившись к этим источникам, мы можем сказать, что у нас есть несколько кандидатов, реализованных на базе нейронных сетей, таких как Swin-L, You Only Look Once/YOLOACT, SSD, Faster R-CNN и Mask R-CNN.

Есть также классический алгоритм — Watershed. Его также можно попробовать.

Шаг 5. Обучаем модели

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

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

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

Тем не менее обучение моделей компьютерного зрения требует значительных вычислительных мощностей. Такие модели обучаются на специальных ускорителях, так как на обычных процессорах это происходит слишком медленно. Одна из наиболее популярных опций — использовать графические ускорители или GPU. Да-да, те самые, на которых мы играем в Far Cry, Call of Duty или Metro. Можно взять как специализированные GPU NVidia, так и обычные игровые GTX или RTX. Для обучения вам понадобится GTX 1080 Ti или мощнее.

Если вы не хотите возиться с собственным железом, то можно арендовать вычислительные мощности с GPU у поставщиков облачной вычислительной инфраструктуры, таких как «Кристофари» от Сбера, Azure, Amazon Web Services или Google Cloud.

Как правило, модели машинного обучения реализуются не «с нуля», а на базе доступных библиотек и фреймворков машинного обучения. Среди наиболее популярных и, что немаловажно, бесплатных, фреймворков можно назвать TensorFlow и Keras, PyTorch, MXNET.

Если приходится иметь дело не с одной моделью, а с многими, то реализация конвейера данных, отслеживание результатов обучения и управление моделями могут быть затратными по ресурсам и времени. Тогда на помощь могут прийти средства MLOps — Machine Learning Operations (по аналогии с DevOps). Они автоматизируют рутинные операции и обеспечивают повторяемость и стабильность процесса. К таким средствам относятся например mlflow, ebonite и SageMaker.

Шаг 6. Оцениваем модели

Обычно проверка моделей проводится на так называемой тестовой выборке — на том подмножестве набора данных, который никак не использовался при обучении.

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

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

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

Шаг 7. Развертывание и перенос модели на экскаватор

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

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

Проблема в том, что обычный GPU-ускоритель, как правило, нельзя поставить на экскаватор — он там быстро сломается. Необходимо ставить промышленный ПК со специальным ускорителем для полевых условий, например, на базе семейства NVidia Jetson.

К сожалению, архитектура таких решений отличается от архитектуры компьютеров, на которых модели обучаются. В связи с этим простой перенос моделей на промышленные ПК может не дать ожидаемых результатов — модели могут работать неприемлемо медленно, или вообще не запускаться. В этом случае потребуется сконвертировать обученные модели в «родной», скажем, для Jetson’ов формат.

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

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

Если вам интересно познакомиться с возможной итоговой архитектурой решения для определения грансостава и посмотреть видео, как это решение работает, это можно сделать, зарегистрировавшись на практикум «Цифровое горное предприятие» (это бесплатно). Там же есть лекция о том, как компьютерное зрение применяется для определения усталости водителя.

66
1 комментарий