Как построить высокоэффективную модель глубокого обучения для идентификации дерева

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

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

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

Мой путь обучения в Omdena

Когда я участвовал в соревновании AI Challenge, я оказался с 40 талантливыми людьми со всего мира; Я был единственным говорящим по-португальски в этой огромной команде, но всех нас разделяло общее желание учиться и как-то вносить свой вклад.

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

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

Могу ли я изменить ситуацию?

Маркировка и управление командой

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

Отличный инструмент! Легко маркировать, легко управлять работой и легко экспортировать этикетки.

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

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

Также важно было определить определенные критерии, такие как попытка использовать «линии», разделяющие тени и деревья, для максимально возможного определения границ полигонов.

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

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

Набор данных

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

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

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

Создание отличного решения для глубокого обучения

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

Не сдавайся

Команда, к которой я присоединился, была командой U-Net.

U-Net - сверточная нейронная сеть, разработанная для биомедицинской сегментации. Сеть основана на полностью сверточной сети, впервые предложенной Long and Shelhamer.

U-Net состоит из сокращающегося пути и расширяющегося пути, что придает ему U-образный формат. Контрактный путь представляет собой типичную сверточную сеть, которая состоит из многократного применения сверток, за каждой из которых следует выпрямленный линейный блок (ReLU) и операция максимального объединения. Во время сжатия пространственная информация уменьшается, а информация об особенностях увеличивается, или, другими словами, сеть генерирует признаки, теряя контекст того, где они находятся на изображениях. Расширяющий путь объединяет созданные функции и пространственную информацию посредством последовательности восходящих сверток и конкатенации с функциями высокого разрешения из сужающегося пути, давая элементам, созданным, точный контекст того, где они находятся на изображениях.

На этом этапе точность моделей страдала в основном из-за того, что было трудно научить нейронные сети, что зелень на изображениях - это не все деревья, а также многие части деревьев не были идентифицированы как деревья. Моя команда была готова исследовать варианты U-Net, такие как Nested U-Nets, Bayesian U-Nets, MultiRes U-Nets, Deep U-Nets и другие.

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

Мое внимание привлек один из приемов: Deep U-Net. В статье DeepUnet рассматривается проблема сегментации моря и суши, которая, как я думал, очень похожа на идентификацию деревьев, и действительно, они дали лучшие результаты, чем традиционные U-сети для изображений с высоким разрешением. До подхода глубокого обучения NDWI (нормализованный разностный водный индекс) использовался для задачи сегментации море-суша, аналогично тому, как наш NDVI (нормализованный разностный индекс растительности) использовался Spacept. Deep U-Net казался многообещающим.

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

Downblocks и Upblocks функционируют как пропускаемые соединения, чтобы помочь уменьшить ошибку обучения из-за количества слоев и помочь решить любые проблемы исчезающих / взрывающихся градиентов, которые могут возникнуть в более глубоких сетях.

Обсудив архитектуру, базовое решение Deep U-Net было применено к 144 уникальным помеченным изображениям, которые затем были разделены на 119 изображений и 119 масок для обучающего набора, 22 изображения и 22 маски для набора проверки и 3 изображения и 3 маски для тестового набора. Поскольку изображения и маски были в 1000 x 1000 изображений, они были обрезаны до изображений 512 x 512, создавая 476 изображений и 476 масок для обучающего набора, 88 изображений и 88 масок для проверочного набора и 12 изображений и 12 масок для тестового набора. . При применении модели Deep U-Net с 10 эпохами и размером пакета, равным 4, результаты для 10 эпох - с использованием оптимизатора Адама, потери двоичной кросс-энтропии и работы с графическим процессором Geforce GTX 1060 - были весьма обнадеживающими, достигнув 94% точности по сравнению с проверкой.

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

Мы воспроизвели предыдущую модель, сохранив базовую скорость обучения равной 0,001, но приспосабливаясь к убыванию, обратно пропорциональному количеству эпох, и увеличив количество эпох до 100.

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

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

Выше можно увидеть несколько результатов, которые были получены с использованием новых изображений, которых Deep U-Net ранее не видел.

Мой опыт участия в этом испытании

Я только что многому научился !!

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

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

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

Люди имеют огромное значение в этом! И нет ничего, что могло бы заменить это.

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

Есть лишь несколько возможностей, в которых все это можно объединить.

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

Просто работайте, верьте в себя, рассчитывайте на дружелюбных и квалифицированных людей и старайтесь изо всех сил. Результаты придут!

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

Мы также находимся в LinkedIn, Facebook и Twitter.

Labelbox, Labelbox, Интернет, 2019 г. [Интернет]. Доступно: https://labelbox.com