Команда KnotInspector уверена, что их сканер пиломатериалов может решать разные задачи деревообрабатывающих предприятий – от повышения производительности до контроля внешних поставщиков сырья. Работу с каждым новым клиентом команда начинает с определения целей внедрения сканера, а также с получения информации о необходимой механизации и возможностях интеграции в производственные линии.
Но самый важный аспект, которому и посвящена эта статья, – это настройка сканера для решения задач конкретного завода, то есть под технические условия на производимую продукцию. «Мы еще ни разу не встречали такого предприятия, на котором абсолютно все нюансы были бы полностью задокументированы в описании технических условий. И множество нюансов всегда всплывает по мере того, как мы занимаемся настройкой», – отмечает генеральный директор компании «ТП Лаб» и руководитель проекта сканера пиломатериалов KnotInspector Дмитрий Ивченко.
Команда KnotInspector почти всегда предлагает прислать в свою лабораторию в Санкт-Петербург некоторое количество типовых образцов пиломатериалов, использующихся в производстве клиента. Для испытаний разработчики берут от 100 до 150 досок. Этого, с одной стороны, достаточно, чтобы получить статистически значимые результаты. С другой стороны, использование такого количества досок в обучении нейросети уже вносит небольшой вклад в ее качество работы на конкретной породе древесины.
Когда первые сканеры заработали на производствах, команда KnotInspector стала получать большой поток данных отсканированных пиломатериалов. На какое-то время разработчики, действительно, сосредоточились на обучении классификатора именно на этом объеме данных от действующих клиентов. Но во избежание оверфиттинга – когда система хорошо работает с материалом из одного источника, но теряет надежность на незнакомом материале, – разработчики вернулись к практике открытого тестирования сканера на досках широкого круга потенциальных клиентов. Это позволяет команде KnotInspector развивать сканер, способный распознавать широкий набор пороков древесины «из коробки».
Отдельно стоит сказать о породах древесины. На практике вид, размер и частота пороков могут отличаться в зависимости от происхождения одной и той же породы древесины, например, у сосны из Карелии и сосны из Владимирской области. В машинном обучении есть понятие «робастность» (robustness – англ.). Это способность системы стабильно распознавать на изображениях необходимые параметры вне зависимости от изменения исходных данных. В случае сканера пиломатериалов – это стабильное распознавание пороков вне зависимости от происхождения древесины. Поэтому команда стремится получить образцы пиломатериалов из всех возможных регионов для повышения надежности классификатора. Также на определение пороков влияет способ обработки и влажность древесины. Сканер должен стабильно распознавать пороки как на нестроганых досках, так и на строганых – вне зависимости от способа распиловки. Поэтому разработчики KnotInspector берут для пробного сканирования древесину того вида обработки и той влажности, с которой работают клиенты, чтобы обучить классификатор на всех этих вариантах.
Команда активно разрабатывает классификаторы для твердых пород древесины, в частности березы, у которой есть масса специфических пороков. Разработчики KnotInspector приглашают предприятия присылать березовые пиломатериалы и готовы моделировать пробные раскрои. Для предприятий – это простой, быстрый и бесплатный способ увидеть, насколько сканер готов сортировать и раскраивать березу.
Полученные от клиента доски команда сканирует в собственной лаборатории опытным образцом сканера. И начинается настройка.
Для начала настраивается «профиль технических условий» при помощи автоматизированного рабочего места технолога. Точно так же, как впоследствии сам технолог предприятия, которое купило сканер, будет настраивать его под новую продукцию при помощи веб-интерфейса. Важно указать, какие пороки древесины допускаются, в каких сортах продукции, сколько будет сортов заготовок. Все эти данные команда согласовывает с технологом предприятия. После этого выполняется виртуальный раскрой досок. С полученными картами раскроя для каждой доски технолог предприятия может работать удалённо, из своего кабинета в веб-приложении автоматизированного рабочего места технолога, которое команда KnotInspector называет «видеовитриной». На этом этапе технолог видит, как сканер предлагает раскроить его доски, и готов к обсуждению.
Рассказывает Дмитрий Ивченко: «Тут начинаются самые интересные диалоги. Мы соединяемся по видеосвязи, и технолог смотрит на доску и говорит, например: «А вот этот отрезок я бы отправил в третий сорт». А мы спрашиваем: «Почему в третий? Ведь по вашей таблице этот отрезок должен быть отходами». А технолог нам объясняет: «Этот сучок очень близко к ребру и при дальнейшей обработке он сострогается». Тогда мы говорим: «Это же значит, что все сучки размером до 10 мм, находящиеся не далее, чем 5 мм от ребра, можно допускать и отправлять такие отрезки в третий сорт?». И технолог соглашается. Мы добавляем настройку для этого нюанса. В таких диалогах полностью рождается формализованный профиль технических условий».
Обычно команда KnotInspector выполняет 2–3 таких диалога по видеосвязи. После каждого из них специалисты дополнительно настраивают профиль технических условий, попутно обучая технолога настройкам. На следующей видеовстрече технолог видит новый вариант раскроя и может убедиться в том, что теперь его доски раскраиваются так, как требуется его предприятию. Таким образом одновременно идет проверка применимости сканера для задач предприятия, обучение технолога тому, как пользоваться настройками сканера, и формализация профиля технических условий, используемых на предприятии. Все это делается в рамках единого полностью удаленного процесса.
Но что делать, если на досках клиента встречаются особенности древесины, с которыми раньше не работал сканер? Или появляется потребность в распознавании дефектов, которые раньше сканер не поддерживал? Придётся ли технологу смириться с ограничениями в точности раскроя? Конечно нет! В этом случае к работе подключается команда машинного обучения, которая делает возможности адаптации сканера к потребностям предприятия практически безграничными.
Рассказывает специалист по разметке данных компании «ТП Лаб», киберплотник Анастасия Лекомцева: «Мне в руки поступает сет с изображениями отсканированных досок. Я просматриваю каждую и сначала размечаю пласть – это общая область или площадь доски. Нанося первичную разметку, подмечаю, какие еще дефекты присутствуют на древесине. Я обвожу области каждого дефекта, присваивая им конкретное значение. В работе есть много нюансов: например, два дефекта в зависимости от положения на доске или близости к другим дефектам, могут относиться к разным типам, несмотря на то, что выглядят примерно одинаково».
Анастасия и другие ее коллеги работают в приложении для разметки визуальных данных для задач семантической сегментации. На первый взгляд эта работа похожа на то, чем на деревообрабатывающих предприятиях занимаются сотрудники, отмечающие дефекты мелками на поверхности пиломатериалов. Однако от специалиста KnotInspector при электронной разметке требуется большая точность, потому что в противном случае нейросети потребуется для обучения гораздо большее количество примеров разметки.
Задача семантической сегментации при помощи нейросетей решается в большом количестве отраслей народного хозяйства. Например, при автоматизированном анализе медицинских снимков, для получения карт местности из фотографий со спутника, при разработке беспилотных транспортных средств, – от дронов-доставщиков кофе до автоматических комбайнов, тракторов и роботов-автомобилей. Это стремительно развивающееся направление, и команда KnotInspector следит за мировыми научными публикациями и использует новые идеи при обучении нейросетевого классификатора пороков древесины.
Создает и обучает новые версии нейросети, лежащей в основе алгоритма сканирования KnotInspector, инженер по машинному зрению и машинному обучению Олег Мухоморов. «По сути, в процессе обучения мы показываем нейросети на очень большом количестве досок, как именно нужно определять на них дефекты», – объясняет Олег. «Разметка, выполненная специалистом, принимается за эталонный результат. Нейросеть сравнивает собственные результаты с эталоном и старается оптимизировать свои внутренние параметры так, чтобы ее результаты были максимально похожи на правильные. И так происходит большое количество итераций, то есть нейросети предлагаются последовательно новые и новые порции размеченных досок. В зависимости от выбранной архитектуры и большого количества разных параметров обучения, мы получаем различные версии готовой нейросети. После этого мы выбираем из них ту, которая лучше всего показывает себя в определении дефектов, и используем ее для раскроя».
Тестированием и определением наиболее эффективной версии нейросети занимается руководитель группы подготовки данных Екатерина Баллах: «Я проверяю своими глазами и руками, беру новую нейросеть, моделирую на ней раскрой некоторого объема досок и вручную проверяю каждый дефект и корректность его определения, сравнивая с предыдущей версией или с несколькими предыдущими версиями нейросети. Конечно, у нас есть автоматизированные тестовые стенды, которые проводят моделирование раскроя тысяч досок и считают статистику. Это позволяет быстро определить, какая из версий нейросети будет лучше работать у наших клиентов. Но я предпочитаю также «посмотреть нейросети в глаза», подобно тому, как специалист по подбору персонала проводит интервью с новым мастером участка. Выбрав лучший вариант для задачи данного клиента, я повторяю тестовый раскрой, и мы возвращаемся к диалогу с технологом, – обсуждаем, удалось ли научить классификатор определять те нюансы дефектов, которые нужны для его задач».
Но и после того, как обучение нейросети на тестовых пиломатериалах завершено, доски продолжают приносить пользу и вносят свой вклад в добрые дела. Рассказывает менеджер по продукту KnotInspector Иван Плаксин: «После сканирования, по согласованию с клиентом, тестовые доски отправляются для использования в петербургский молодежный клуб «Эллада». В кружках, расположенных при клубе, занимаются подростки, нуждающиеся в социализации. Как и у многих социальных проектов, финансирование клуба не позволяет закупать материалы для творческой работы в должном количестве. Сотрудничество «ТП Лаб» с клубом помогает ребятам бесплатно получить доски для использования в плотницких мастерских, в ремонте помещений и мебели, для создания сцены и декораций для молодежных фестивалей, стендов для росписи художниками и для других творческих и социальных активностей».
Таким образом, пиломатериалы, присланные одним клиентом, позволяют улучшить качество алгоритмов сканера KnotInspector для всех клиентов, предоставив нейросети все большее количество материала для обучения. Различное качество древесины, расположение и виды дефектов и пороков, – всё это в совокупности приводит к тому, что работа сканера становится все точнее и точнее. Клиенты KnotInspector получают обновление ПО с улучшенной точностью распознавания.
Софья Трошина