Рад сообщить об окончании моей магистерской диссертации.

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

Когда первые люди достигли Австралии около 45 000 лет назад, они быстро вымерли 90% ее крупных животных. Это было первое значительное влияние, которое Homo sapiens оказал на экосистему планеты. Это было не последнее.

- Юваль Ной Харари

ОГЛАВЛЕНИЕ

1 Благодарности
2 Резюме
3 Аннотация
4 Введение
4.1 ONCFS
4.2 CNRS
5 Компьютерное зрение
5.1 Что это такое
5.2 Проблемы
5.3 Глубокое обучение
5.4 Приложения
6 Сопутствующие работы
6.1 Классификация объектов
6.1.1 Наборы данных
6.1.2 Модели
6.2 Обнаружение объектов
6.2.1 Наборы данных
6.2.2 Модели
6.2.3 Заключение об обнаружении объектов
6.3 Классификация действий
6.3.1 Наборы данных
6.3.2 Модели
6.4 Визуальное отслеживание объектов
6.4.1 Наборы данных
6.4.2 Модели
6.5 Дикая природа
6.5.1 Наборы данных
6.5.2 Модели
6.6 Заключение
7 Реализация
7.1 Методология
7.1.1 Существующие решения
7.1.2 Рассмотренные решения
7.2 Технологии
7.2.1 Машинное обучение
7.2.2 Облачная платформа Google
7.2.3 Внешний интерфейс
7.3 Онлайн-прогнозирование и пакетное прогнозирование
7.4 Архитектура
7.4 .1 Конвейерная версия 1
7.4.2 Конвейерная версия 2
7.4.3 Конвейерная версия 3
7.4.4 Конвейерная версия 4
7.4.5 Компоненты
7.5 Потоки данных, количество операций: цена и оценка
7.5.1 Данные и операции
7.5.2 Цена и время
7.6 Статистика
7.7 Подержанные модели
7.8 Характеристики
7.9 Оптимизация
7.9.1 Счетчик задержки (и размера)
7.9.2 Форматы экспортируемых моделей в TensorFlow
7.9.3 Инструменты и методы
7.10 Другие встроенные инструменты
7.10. 1 Модификация графа вывода
7.10.2 Конфигурации Gitpod
8 Будущая работа
8.1 Идентификация отдельных видов
8.2 Новые задачи
8.2.1 Классификация видео
8.2.2 Оценка позы
9 Заключение

Благодарности

Прошедшие шесть месяцев были захватывающим путешествием, посвященным последнему этапу моей магистерской программы Data Science в Ynov Aix-en-Provence: написанию этой диссертации. Хочу выразить искреннюю благодарность тем, кто помогал мне в этот период.

Прежде всего, я хотел бы поблагодарить Паскаля Аланша за предоставленную мне возможность работать в Arpège SAS a Rohde & Schwarz в течение трех лет обучения. Для меня было большим опытом быть частью команды R&D и участвовать во многих интересных проектах компании. Я встретил много замечательных людей, которые научили меня ценным знаниям о геостационарных спутниках и высокочастотной радиосвязи. Я хотел бы поблагодарить моего руководителя из Ynov, Renaud Angles, за его руководство на протяжении всего исследовательского проекта. Его отзывы, были ли они восторженными или критическими, помогли мне структурировать и улучшить этот тезис и продолжить проект в трудные моменты.

Точно так же я хотел бы поблагодарить Оливье Хименеса, Оксану Гренте, Анну Шейн, Люсиль Мареско из CNRS и ONCFS за их бесценную информацию о контексте использования фотоловушек и наблюдения за дикой природой, а также за введение в экологические исследования.

Я также благодарен людям из мира открытого исходного кода, от людей, которые публично делятся наборами данных, до людей, работающих с алгоритмами, разрабатывающих потрясающие фреймворки и создающих фантастические учебные пособия, спасибо Github, Microsoft, Google, особенно, по крайней мере, в моем случае.

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

Я надеюсь, что вам понравится читать текущее исследование. Если у вас есть какие-либо вопросы или комментарии, не стесняйтесь обращаться ко мне.

Продолжить

Dans ce travail, je présente une solution hébergée dans le cloud facile à déployer, à maintenir, à mettre à l'échelle et à tarifer pour la наблюдение за фауной в l'aide de l'intelligence artificielle, qui permet d'effectuer une Обширный сбор и анализ донных и развертываний и новых быстрых наблюдений за всеми конкретными группами и средами обитания. В частности, этот комментарий представляет собой логику, имеющую отношение к появлению новых изображений, созданных с помощью изображений, созданных с помощью дизайна миллионов видео с моими изображениями.

Наблюдение за созданием благородного природного богатства и помощью большого разнообразия технологий и платформенных форм является решающим фактором в деле сохранения биоразнообразия и развития новых методов управления знанием. Je montre comment mettre en œuvre une application deillance de la faune directement dans le cloud à l’aide de l’intelligence artificielle (IA). Это решение представляет собой экспериментальную группу по надзору за предметами и способностями к определению моделей и тенденциям для информаторов экологов.

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

Абстрактный

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

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

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

Вступление

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

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

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

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

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

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

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

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

Эта работа включает в себя несколько направлений:

  • Экология: баланс выживания живого существа
  • Искусственный интеллект
  • Большие данные и облачные вычисления

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

Через этот тезис будет дан ответ на этот вопрос:

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

В этой диссертации мы сначала представляем участников этих проектов, таких как ONCFS и CNRS.

Во-вторых, дается краткое объяснение компьютерного зрения.

Затем мы упоминаем соответствующую работу по компьютерному зрению и мониторингу дикой природы, особенно доступные наборы данных и существующие алгоритмы.

Наконец, будет представлена ​​проделанная работа и будущая возможная работа.

Затем будет обсужден ответ на проблемный вопрос, после чего будет сделано заключение.

ONCFS

Национальное управление охоты и дикой природы Франции направлено на охрану и устойчивое управление дикой природой и ее средами обитания. Государственное учреждение, находящееся под двойным надзором министерств экологии и сельского хозяйства, Национальное управление охоты и дикой природы выполняет пять основных задач в соответствии с основными направлениями последней конференции по окружающей среде, следуя Grenelle de l’Environnement:

территориальный надзор и полиция окружающей среды и охоты, исследования и исследования дикой природы и ее местообитаний, техническая поддержка и консультации администрациям, местным властям, менеджерам и специалистам по территориальному планированию, эволюция методов охоты в соответствии с принципами устойчивого развития и развития экологически чистые методы землеустройства в сельской местности, организация экспертизы и выдача разрешения на охоту. ONCFS в нескольких цифрах. Созданное в 1972 году, Управление имеет бюджет в 120 миллионов евро для выполнения своих миссий по всей стране (метрополия Франции и заморские департаменты Франции).

1700 человек, работающих над сохранением биоразнообразия:

  • 1000 экологических технических агентов, уполномоченных министерством, отвечающих за устойчивое развитие, разделенных на ведомственные службы и мобильные бригады оперативного вмешательства
  • 350 техников-экологов, также уполномоченных, прикомандированы к ведомственным службам (надзор), межрегиональным представительствам и различным департаментам
  • 70 инженеров и техников, сгруппированных в пять C.N.E.R.A. специализируется на группе видов: перелетные птицы, олени и кабаны, горная фауна, мелкая оседлая равнинная фауна, хищники и хищные животные.
  • 80 технических менеджеров
  • 156 административных сотрудников
  • 30 сотрудников, участвующих в управлении доменами и резервами, управляемыми или совместно управляемыми Офисом.
  • 25 инспекторов охотничьих лицензий
  • 6 департаментов при поддержке Генерального директора осуществляют деятельность учреждения в своих сферах компетенции.
  • 10 межрегиональных представительств - 90 ведомственных служб
  • 1 Совет директоров
  • 1 Ученый совет
  • 27 заповедников дикой природы, в общей сложности почти 60 000 гектаров охраняемых территорий, которые позволяют ONCFS проводить исследования и эксперименты.

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

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

CNRS

Национальный центр научных исследований, более известный под аббревиатурой CNRS, является крупнейшей французской общественной научно-исследовательской организацией. Юридически это государственное научно-техническое учреждение (EPST), находящееся под административным надзором Министерства высшего образования, исследований и инноваций.

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

CNRS работает во всех областях знаний через тысячи аккредитованных исследовательских и сервисных подразделений, большинство из которых управляется другими структурами (университеты, другие EPST, grandes écoles, отрасли и т. Д.) В течение пяти лет в административной форме «смешанных исследований». единицы".

CNRS была создана 19 октября 1939 года в результате слияния агентства ресурсов Caisse nationale de la recherche scientifique и крупного учреждения лабораторий и исследователей, Национального центра научных исследований и прикладных исследований.

Это слияние было подготовлено Жаном Зе при помощи заместителей государственного секретаря по исследованиям Ирен Жолио-Кюри и Жана Перрена. Указ об организации CNRS подписан нынешним президентом республики Альбертом Лебреном, президентом Совета Эдуардом Даладье, министром национального образования Ивоном Дельбосом, сменившим Жана Зе, и министром финансов Полем Рейно. Создание CNRS было предназначено для «координации деятельности лабораторий с целью получения более высокой отдачи от научных исследований» и, по словам Жана-Франсуа Пикара, «слияния их в единое целое, в некоторой степени логично. результат научного и централизующего якобинства ».

Вторая мировая война поощряла Фьюжн: французские власти, не желая воспроизводить ошибки, сделанные во время Первой мировой войны (все ученые были мобилизованы, часто в качестве руководителей пехоты или артиллерии, что привело к исчезновению высокого доля молодых ученых), закрепленных за исследователями в CNRS. Таким образом, это слияние не получило никакого освещения в прессе. Вначале часть исследований проводилась для нужд французской армии. Под угрозой режима Виши, который, наконец, поддержал его и утвердил во главе геолога Чарльза Джейкоба6, CNRS была реорганизована в Liberation. Фредерик Жолио-Кюри был назначен директором и предоставил ему новые исследовательские гранты.

С приходом к власти де Голля в 1958 году начался период, описываемый как «золотой век научных исследований» и CNRS: бюджет CNRS удвоился с 1959 по 19628 годы.

В 1966 году были созданы ассоциированные подразделения, предки UMR. Это университетские лаборатории, поддерживаемые CNRS благодаря своим человеческим и финансовым ресурсам. В 1967 году был основан Национальный институт астрономии и геофизики, который в 1985 году стал Национальным институтом наук о Вселенной (INSU). Национальный институт ядерной физики и физики элементарных частиц (IN2P3) был основан в 1971 году.

В 1970-е годы произошел переход от науки к обществу: CNRS задумался о своих амбициях и способах действий. Запускаются первые междисциплинарные программы и подписываются глобальные контракты с промышленностью (первый с Rhône-Poulenc в 1975 году).

В 1982 году закон от 15 июля, известный как Chevènement de programmaation des moyens de la recherche publique, постановил, что исследовательский персонал, технические и административные инженеры и административный персонал должны быть переведены на государственную службу: они становятся государственными служащими с для исследователей - статус, аналогичный статусу преподавателей и профессоров университетов.

Согласно опросу, проведенному в 2009 году компанией Sofres for Sciences Po, CNRS пользовалась 90% -ным уровнем доверия среди французов, задолго до полиции (71%), правительства (31%), президента Республики (35%). ) или политические партии (23%) и второе место после семьи (97%).

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

Компьютерное зрение

С развитием Интернета и современных технологий мы теперь можем с уверенностью подтвердить, что живем в обществе, основанном на изображениях, платформа обмена видео Youtube отвечает только за 37% всего мобильного интернет-трафика (см. Рисунок [fig: youtube ] ).

Доля интернет-трафика Youtube. "Источник"

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

Что это

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

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

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

Вызовы

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

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

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

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

Глубокое обучение

Несколько лет назад большинство алгоритмов компьютерного зрения состояло из простых эвристик для извлечения признаков из пикселей (см. Пример эвристики на рисунке [fig: haar]).

Особенности Хаара. "Источник"

Со временем машинное обучение и такой алгоритм автоматического распознавания образов стали использовать все больше и больше, настоящая революционная технология, благодаря которой машинное обучение в целом работает так хорошо, - это нейронные сети и особенно глубокие нейронные сети (см. Рисунок [fig: deeplearning ] ).

Революция глубины, от нескольких сетевых слоев до сотен (с). "Источник"

Помимо глубоких нейронных сетей, мы стали свидетелями рождения алгоритма взлома игр в компьютерном зрении, получившего название сверточной нейронной сети (CNN). Разница между CNN и плотной сетью состоит в том, что CNN использует иерархический паттерн в изображениях (см. Рисунок [fig: cnn]).

Сверточная нейронная сеть. "Источник"

Приложения

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

Эта технология доказала свою эффективность для оптического распознавания символов, также известного как OCR. Каждый, у кого есть смартфон Android, может использовать его через Google Lens (см. Рисунок [fig: glens]).

Оптическое распознавание символов прямо на вашем смартфоне с помощью Google Lens. "Источник"

В области автомобильной безопасности компьютерное зрение используется для обнаружения опасностей. С появлением автономных автомобилей компьютерное зрение скоро займет центральное место в автомобильной промышленности, поскольку оно позволит транспортным средствам видеть на дороге (см. Пример сегментации изображения в области интеллектуальных транспортных средств на рисунке [fig: carseg] ).

Сегментация изображения в дороге. "Источник"

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

Технологии распознавания лиц новейших смартфонов, такие как знаменитый Face ID последнего iPhone от Apple, также основаны на компьютерном зрении. Та же технология используется в автоматических камерах наблюдения (см. Приложения для распознавания лиц на Рисунке [fig: facreco]).

Гистограмма ориентированных градиентов (используется при распознавании лиц) Источник

Распознавание лиц. "Источник"

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

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

Связанных с работой

Классификация объектов

Пример классификации объекта: есть ли кошка на данном изображении или нет.

Самый популярный пример классификации объектов - MNIST, в котором была задача найти номер на изображении (от 0 до 9).

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

Наборы данных

ImageNet

ImageNet - это база данных аннотированных изображений, созданная одноименной организацией по исследованиям компьютерного зрения. В 2016 году более десяти миллионов URL-адресов были вручную аннотированы, чтобы указать, какие объекты представлены на изображении; в дополнение к ограничивающим рамкам вокруг объектов выигрывают более одного миллиона изображений. ImageNet основан на WordNet (см. Рисунок [fig: wordnet]), который представляет собой семантический лексикон английского языка, который широко используется компьютерными лингвистами и учеными-когнитивистами. Существительные, глаголы, прилагательные и наречия сгруппированы в наборы когнитивных колец синонимов (синсетов), каждое из которых выражает отдельное понятие. Синсеты связаны между собой понятийно-семантическими и лексическими отношениями.

Направленный ациклический граф WordNet. "Источник"

База данных аннотаций к URL-адресам сторонних изображений находится в свободном доступе, но ImageNet не владеет самими изображениями. С 2010 года проект ImageNet организует ежегодный конкурс: ImageNet Large Scale Visual Recognition Challenge (ILSVRC) или «ImageNet Large Scale Visual Recognition Challenge». Он состоит из конкурса программного обеспечения, целью которого является точное обнаружение и классификация объектов и сцен на естественных изображениях.

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

Модели

FixRes

На сегодняшний день самый высокопроизводительный алгоритм называется FixRes. Он предлагает простую, но эффективную стратегию оптимизации производительности классификатора, когда разрешения обучения и тестирования различаются. Это всего лишь тонкая настройка сети на разрешающую способность теста, недорогая по расчету. Это позволяет обучать мощные классификаторы с помощью небольших обучающих изображений. Например, FixRes достигает топ-1 точности 77,1% на ImageNet с ResNet-50, обученным на изображениях 128x128, и 79,8% с изображением, обученным на изображениях 224x224. И наоборот, предварительно обученный 32x48d ResNeXt-101 с низким контролем на 940 миллионах общедоступных изображений с разрешением 224x224 и дальнейшей оптимизацией тестового разрешения 320x320 дает максимальную точность 86,4% (топ-5: 98,0)%).

FixRes - это современная модель классификации на ImageNet, но также и на iNaturalist.

Обнаружение объекта

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

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

Наборы данных

COCO

Набор данных COCO - это набор изображений сцен повседневной жизни, содержащих обычные объекты в их естественном контексте (см. Рисунок [fig: coco]). Объекты маркируются с использованием сегментации на основе экземпляров для точного определения местоположения объектов. Набор данных содержит фотографии 91 типа объектов, которые

«Легко узнаваемый 4-летним ребенком»

. При этом 2,5 миллиона экземпляров помечены в 328 000 изображений.

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

Примеры сегментированных объектов из набора данных COCO 2015 года. "Источник"

Открыть изображение

Open Image V4 - это набор данных изображения размером 9,2 миллиона пикселей с унифицированными аннотациями для классификации изображений, обнаружения объектов и обнаружения визуальных взаимосвязей. Изображения имеют лицензию Creative Commons Attribution, которая позволяет вам делиться материалами и адаптировать их. Они были собраны с Flickr без предопределенного списка имен классов или тегов, таким образом генерируя естественную статистику классов и избегая первоначальной ошибки дизайна. Open Images V4 предлагает большой масштаб в нескольких измерениях: метки уровня изображения 30,1 миллиона пикселей для концептов размером 19,8 КБ, поля выбора 15,4 миллиона пикселей для 600 классов объектов и аннотации визуальных отношений 375 000 пикселей для 57 классов. В частности, для обнаружения объектов предусмотрено в 15 раз больше вложений, чем в следующих по величине наборах данных (15,4 миллиона вложений из 1,9 миллиона изображений). Изображения часто показывают сложные сцены с несколькими объектами (в среднем 8 объектов, аннотированных на изображение). Визуальные отношения аннотируются вместе, что поддерживает обнаружение визуальных отношений - возникающей задачи, требующей структурированного мышления. Предоставляется полная и подробная статистика по набору данных, проверяется качество аннотаций и предоставляется производительность многих современных моделей, эволюционирующих с увеличивающимся объемом обучающих данных.

Open Image дает изображения высокого качества и более сложен для распознавания, чем COCO, он также позволяет определять взаимосвязь между зрением.

Модели

Показатели эффективности

Пересечение на Союзе (IoU)

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

IoU - это значение от 0 до 1, которое соответствует зоне перекрытия между прогнозируемой зоной и зоной истинности на земле. Чем выше значение IoU, тем лучше предполагаемое расположение бокса для данного объекта. Обычно мы сохраняем всех кандидатов в ограничивающей рамке с IoU выше порогового значения.

средняя средняя точность (mAP)

Общей метрикой, которая используется для распознавания объектов Pascal VOC, является измерение средней точности (AP) для каждого класса. Следующее описание средней точности взято из Everingham et. др.

Среднее значение средней точности (mAP) вычисляется путем взятия среднего значения по точкам доступа всех классов. Для данной задачи и класса кривая точности / отзыва рассчитывается на основе ранжированных выходных данных метода. Отзыв определяется как доля всех положительных примеров, получивших более высокий рейтинг. Точность - это доля всех примеров выше этого ранга, которые относятся к положительному классу. AP суммирует форму кривой точности / отзыва и определяется как средняя точность на наборе из одиннадцати равноудаленных уровней отзыва [0,0.1,. . . , 1]:

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

где p (˜r) - измеренная точность при воспроизведении ˜r. Цель интерполяции кривой точности / отзыва таким образом состоит в том, чтобы уменьшить влияние «покачиваний» на кривой точности / отзыва, вызванных небольшими вариациями в ранжировании примеров. Следует отметить, что для получения высокого балла метод должен иметь точность на всех уровнях отзыва - это наказывает методы, которые извлекают только подмножество примеров с высокой точностью (например, виды автомобилей сбоку).

Сверточная сеть на основе региона (R-CNN)

Сверточная сеть на основе регионов является одним из основных современных подходов к обнаружению объектов. В R-CNN использовался алгоритм выборочного поиска. Выборочный поиск - это один из основных методов создания предложений по объекту.

  1. Попробуйте обнаружить объекты
  2. Запустите CNN об этих объектах
  3. Запустите вывод в SVM, чтобы классифицировать объект, и линейный регрессор, чтобы настроить поле.

Однако этот подход может быть дорогостоящим, поскольку необходимо много культур, что приводит к значительному дублированию вычислений из перекрывающихся культур (см. Рисунок [fig: rcnn]).

Сверточная сеть на основе регионов. (R-CNN). "Источник"

Сверточная сеть на основе быстрой области (Fast R-CNN)

Сверточная сеть, основанная на быстром регионе (Fast R-CNN), направлена ​​на сокращение затрат времени, связанных с большим количеством моделей, необходимых для анализа всех предложений региона (см. Рисунок [fig: fastrcnn]).

  1. Выполнение извлечения признаков перед предложением регионов, поэтому запускается только одна CNN по всему изображению вместо CNN CNN на регион
  2. Замена SVM слоем softmax с расширением нейронной сети для прогнозирования вместо создания новой модели

Сверточная сеть на основе регионов. (R-CNN). "Источник"

Сверточная сеть на основе более быстрых регионов (Faster R-CNN)

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

Faster R-CNN представила региональную сеть предложений (RPN) (см. Рисунок [fig: rpn]) для непосредственного генерирования региональных предложений, прогнозирования рамок выбора и обнаружения объектов. Сверточная сеть, основанная на более быстрой области (Faster R-CNN), представляет собой комбинацию модели RPN и модели Fast R-CNN.

  1. На последнем уровне исходной CNN скользящее окно 3x3 перемещается по карте функций и отображает его в более низкое измерение (256-d).
  2. Для каждого местоположения скользящего окна он генерирует несколько возможных областей на основе k якорных ящиков с фиксированным соотношением
  3. Каждое предложение региона состоит из оценки «объектности» для этого региона и 4 координат, представляющих ограничивающую рамку региона.

Сеть предложений региона. "Источник"

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

Полностью сверточная региональная сеть (R-FCN)

Быстрые и быстрые методологии R-CNN состоят в обнаружении предложений региона и распознавании объекта в каждом регионе. Полностью сверточная сеть на основе областей (R-FCN) - это модель только со сверточными слоями, позволяющая разделять все вычисления.

R-FCN объединяет два основных шага в единую модель, чтобы одновременно учесть обнаружение объекта (инвариант местоположения) и его положение (вариант местоположения).

  1. Запустите CNN поверх входного изображения
  2. Добавьте полностью сверточный слой, чтобы создать банк оценок вышеупомянутых «карт оценок с учетом позиции». Должны быть k² (C + 1) оценочные карты, где k² представляет количество относительных позиций для разделения объекта (например, ³² для сетки 3 на 3), а C + 1 представляет количество классов плюс фон.
  3. Запустите полностью сверточную сеть предложений по регионам (RPN), чтобы создать регионы интереса (RoI)
  4. Для каждого RoI разделите его на субрегионы в соответствии с картами оценок.
  5. Для каждой подобласти сравните с банком оценок, чтобы увидеть, соответствует ли он соответствующей позиции некоторого объекта.
  6. После того, как в каждой из подобластей будет найдено значение соответствия объекта для каждого класса, усредните подобласти, чтобы получить единый балл для каждого класса.
  7. Классифицируйте RoI с softmax по оставшемуся C + 1-мерному вектору.

Полностью сверточная сеть на основе регионов. "Источник"

Проще говоря, R-FCN изучает каждое предложение региона, разделяя его на субрегионы. Для каждой подобласти он спрашивает: Похож ли он на левый конец ребенка?, Похож ли он на верхний центр ребенка? "Это похоже на ребенка справа вверху?" и т.д. Для всех возможных классов. Если достаточное количество субрегионов говорят да, я совпадаю с частью ребенка, то RoI классифицируется как ребенок после softmax по всем классам (см. Рисунок [fig: rfcnbaby]).

Визуализация R-FCN (k × k = 3 × 3) для категории человека. "Источник"

Визуализация, когда RoI неправильно перекрывает объект. "Источник"

Ты смотришь только один раз (ЙОЛО)

Модель YOLO напрямую предсказывает ограничивающие рамки и вероятности классов с одной сетью за одну оценку. Простота модели YOLO позволяет делать прогнозы в реальном времени. YOLO реализует парадигму сквозного обучения: предложения, функции и классификатор становятся одной нейронной сетью (см. Рисунок [fig: yolo]).

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

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

Наглядный пример шагов YOLO. "Источник"

Детектор одиночного выстрела (SSD)

Подобно модели YOLO, Single Shot Detector (SSD) предсказывает как ограничивающие прямоугольники, так и вероятности классов с сквозной архитектурой CNN (см. Рисунок [fig: ssdyolo]).

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

  1. Модель принимает в качестве входных данных изображение, которое проходит через несколько слоев свертки с разными размерами фильтров (10x10, 5x5 и 3x3), которые будут генерировать карты характеристик.
  2. Каждое местоположение на этих картах характеристик обрабатывается определенными сверточными слоями с фильтрами 3x3, чтобы создать набор ограничивающих рамок, подобных якорным блокам Fast R-CNN.
  3. Для каждого прямоугольника одновременно спрогнозируйте расположение ограничивающего прямоугольника и вероятности классов.
  4. Во время обучения сопоставьте поле наземной истины с этими предсказанными ячейками на основе IoU. Коробка с наилучшим прогнозом будет помечена как «положительная», как и все другие коробки, в которых IoU с правдой ›0,5.

Сравнение архитектур SSD и YOLO. "Источник"

Карты функций разного размера, предоставляемые SSD, помогают захватывать объекты разного размера. Вот пример вывода SSD (см. Рисунок [fig: ssdinf]).

SSD Framework. "Источник"

В конце концов, SSD делает две вещи:

  • Во-первых, примените не максимальное подавление к групповым блокам, которые сильно перекрываются. Другими словами, если четыре коробки одинаковой формы, размера и т. Д. Содержат одного и того же кота, NMS с наибольшей уверенностью сохранит одну и отклонит остальные.
  • Во-вторых, модель использует технику, называемую жестким отрицательным майнингом, чтобы сбалансировать классы во время обучения. В случае жесткого отрицательного анализа для каждой итерации обучения используется только подмножество отрицательных примеров с наибольшими потерями при обучении (т. Е. Ложными срабатываниями). SSD поддерживает соотношение минусов и плюсов 3: 1.

Сеть исследования нейронной архитектуры (NASNet)

NASNet заключается в изучении архитектуры модели с использованием обучения с подкреплением для оптимизации количества слоев при одновременном повышении точности заданного набора данных. NASNet достиг превосходной производительности с более легкой моделью, чем предыдущая работа, по сравнению с задачей классификации ImageNet 2012 года (см. Рисунок [fig: nasnet]). Сеть NASNet имеет архитектуру, заимствованную из набора данных CIFAR-10, и обучена на наборе данных ImageNet 2012.

Из официальной газеты:

«Наш подход основан на недавно предложенной структуре поиска нейронной архитектуры (NAS), которая использует метод поиска с обучением с подкреплением для оптимизации конфигураций архитектуры. Однако применение NAS или любых других методов поиска непосредственно к большому набору данных, например к набору данных ImageNet, требует больших вычислительных ресурсов. Поэтому мы предлагаем поискать хорошую архитектуру на прокси-наборе данных, например, на меньшем наборе данных CIFAR-10, а затем передать изученную архитектуру в ImageNet ».

Пример различий результатов обнаружения объектов между Faster-RCNN с характеристиками Inception-ResNet-v2 (вверху) и характеристиками NASNet-A (внизу). "Источник"

Сверточная сеть на основе области маски (Mask R-CNN)

Маска R-CNN является расширением Faster R-CNN. Более быстрая R-CNN предсказывает ограничивающие прямоугольники, а Mask R-CNN по существу добавляет еще одну ветвь для параллельного предсказания маски объекта (см. Пример на Рисунке [fig: maskrcnn]).

Примеры применения Mask R-CNN на тестовом наборе данных COCO. "Источник"

Маска R-CNN состоит из двух этапов (см. Рисунок [fig: maskrcnn2]).

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

«Ветвь маски - это небольшой FCN, применяемый к каждому RoI, предсказывающий маску сегментации попиксельно».

Маска структуры R-CNN для сегментации экземпляра. "Источник"

Заключение об обнаружении объекта

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

Самый главный вопрос не в том, какой детектор лучший. Возможно, не удастся ответить. Реальный вопрос заключается в том, какой детектор и какие конфигурации предлагают нам наилучший баланс между скоростью и точностью, который требуется вашему приложению. Ниже приводится сравнение компромисса между точностью и скоростью (время измеряется в миллисекундах) (см. Рисунок [fig: odbenchmark]).

Компромисс между скоростью обнаружения объектов и точностью. "Источник"

Классификация действий

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

Наборы данных

Шарады

Charades-Ego - это 68 536 случаев активности за 68,8 часов видео от первого и третьего лица, что делает его одним из крупнейших и самых разнообразных эгоцентрических наборов данных в мире. Charades-Ego также разделяет классы активности, сценарии и методологию с набором данных Charades, который состоит из дополнительных 82,3 часа видео от третьего лица с 66 500 экземплярами активности. Charades-Ego имеет временные аннотации и текстовые описания, что делает его подходящим для эгоцентричной классификации видео, локализации, субтитров и новых задач, использующих интермодальный характер данных.

Моменты во времени

Набор данных «Моменты во времени» - это крупномасштабная коллекция из миллиона коротких видеороликов, аннотированных человеком и соответствующих динамическим событиям, происходящим менее чем за три секунды. Моделирование пространственно-временной динамики даже для действий, сделанных в 3-секундных видеороликах, ставит множество задач: важные события включают не только людей, но также объекты, животных и природные явления; зрительные и слуховые события могут быть симметричными во времени («открытие» - «закрытие» в противоположном направлении), временными или продолжительными. Процесс аннотации (каждое видео помечается меткой действия или действия среди 339 различных классов), анализирует его масштаб и разнообразие по сравнению с другими крупномасштабными наборами видеоданных для распознавания действий и представляет результаты нескольких базовых моделей. рассматривать отдельно и совместно три модальности: пространственную, временную и слуховую. Набор данных Moments in Time, предназначенный для охвата многих визуальных и слуховых событий, а также широкого спектра событий, может стать новой проблемой при разработке моделей, которые адаптируются к уровню сложности и абстрактному мышлению, с которым человек имеет дело ежедневно.

Модели

AssembleNet

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

Визуальное отслеживание объекта

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

Наборы данных

ГОЛОСОВАНИЕ

VOT2018 Challenge, за которым следуют визуальные объекты, - это шестой ежегодный сравнительный анализ мониторинга, организованный инициативой VOT. Представлены результаты более 80 трекеров; многие из них являются ведущими трекерами, опубликованными на крупных конференциях по компьютерному зрению или в журналах в последние годы. Оценка включала стандартный метод VOT и другие популярные методы краткосрочного последующего анализа, а также эксперимент «в реальном времени», моделирующий ситуацию, в которой трекер обрабатывает изображения так, как если бы они были получены от постоянно работающего датчика. Подзадача долгосрочного мониторинга была введена для всех стандартных подзадач VOT. Новая подзадача касается свойств долгосрочного мониторинга, а именно управления исчезновением и повторным появлением целей. Был составлен новый набор данных и принята методология оценки эффективности с упором на возможности долгосрочного мониторинга. Набор инструментов VOT был обновлен для поддержки стандартных и долгосрочных подзадач краткосрочного мониторинга. Эффективность проверенных последующих действий, как правило, намного превышает стандартные референсные уровни.

Модели

ТОР

В настоящее время современный алгоритм решения задачи VOT называется Thor:

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

Дикая жизнь

В течение последних десятилетий инженеры и исследователи дикой природы разработали для профессионалов различные аппаратные технологии для мониторинга отдельных млекопитающих, в том числе слежение за очень высокочастотным (VHF) радиомодулем и слежение за глобальной системой позиционирования (GPS), беспроводные сенсорные сети, системы видеонаблюдения на животных. , дроны для захвата изображений сверху и, в конечном итоге, камеры, запускаемые по движению, которые полезны для захвата изображений только тогда, когда животное присутствует и в его естественной среде, в том числе ночью, благодаря инфракрасному излучению.

Камера, активируемая движением, - это камера с автоматической системой распознавания жестов, которая активирует снимок, как только датчик обнаруживает движение (см. Пример на Рисунке [fig: camtrap]). Его операция непрерывного анализа изображений аналогична датчику приближения с дополнительными возможностями транспортировки, адаптации к среде, записи и обработки изображений.

Фотоловушка. "Источник"

Рысь снята фотоловушкой. "Источник"

Наборы данных

iNaturalist

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

Набор данных iWildCam 2018 Challenge

iWildCam состоит из 292 732 изображений в 143 местах на юго-западе Америки, каждое из которых помечено либо как содержащее животное, либо как пустое.

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

iWildCam 2018 - это крупнейший общедоступный набор данных о камерах-ловушках для дикой природы юго-запада.

Североамериканские снимки фотоловушек

Этот набор данных содержит 3,7 миллиона изображений фотографических ловушек из пяти разных мест в Соединенных Штатах с метками для 28 категорий животных, в основном на уровне видов (например, наиболее распространенными метками являются крупный рогатый скот, кабаны и олени). Около 12% изображений помечены как пустые. North American Camera Trap Images - крупнейший общедоступный набор данных о камерах ловушек для дикой природы Северной Америки.

Снимок Серегенти

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

Этот набор данных содержит примерно 2,5 миллиона последовательностей изображений с фотоловушек, всего 6,7 миллиона изображений с первого по десятый сезоны проекта Snapshot Serengeti. Метки предусмотрены для 55 категорий животных, в основном на уровне видов (например, наиболее распространенными метками являются антилопа гну, зебра и газель Томсона). Около 75% изображений помечены как пустые. Примерно 150 000 аннотаций в рамке выбора примерно к 78 000 из этих изображений.

Snapshot Seregenti, безусловно, является крупнейшим общедоступным набором данных с камер-ловушек для африканской дикой природы.

Синтетические данные

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

Инженеры, создающие автономные системы, могут создавать точные и подробные модели систем и сред, делая их интеллектуальными, используя такие методы, как углубленное обучение, имитационное обучение и обучение с подкреплением. Такие инструменты, как Bonsai, можно использовать для обучения моделей для различных условий окружающей среды и сценариев использования транспортных средств в облаке в Microsoft Azure - намного быстрее и безопаснее, чем это возможно в реальном мире. После завершения обучения дизайнеры могут развернуть эти обученные модели на реальном оборудовании. Airsim эволюционировал в сторону моделирования среды общего назначения и теперь содержит также диких животных и камеры-ловушки (см. Рисунок [fig: airsim]).

Слон Airsim. "Источник"

Настоящий слон. "Источник"

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

Модели

В случае изображений с фотоловушкой мы не можем просто напрямую использовать те же модели, которые были обучены на изображениях животных, сделанных профессионалами. Изображения с камеры, запускаемые по движению, имеют более низкое качество и сильно загромождены низкой контрастностью и драматическим движением фона. Обнаружение паттернов также требует обработки большого количества различных размеров тела, внешнего вида и поз животных (см. Пример различий на рисунке [fig: camtraprealcam]).

Образец фотоловушки

Образец ImageNet

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

Трансферное обучение - интересное решение, когда не хватает конкретных данных, на которых мы хотим обучаться. Используется многими, обычно предварительно обучает модель с помощью ImageNet или аналогичного общего набора данных, а затем выполняет точную настройку с помощью наборов данных ловушек камеры, таких как iWildcam и т. Д.

Заключение

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

Реализация

Методология

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

Решение состоит в том, чтобы автоматизировать этот процесс с помощью компьютерного зрения, при этом должны соблюдаться «четыре простых ограничения»:

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

Существующие решения

Ловушка для камеры Microsoft

Microsoft AI for Earth предлагает набор инструментов и алгоритмов, специально разработанных для мониторинга фотоловушек.

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

Был разработан пример модели (см. Рисунок [fig: microsoftcamtrap]).

Пример использования модели фотоловушки Microsoft. "Источник"

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

Камера-ловушка Google DeepMind

DeepMind, один из ведущих участников исследований в области искусственного интеллекта, автор крупных достижений в области искусственного интеллекта, таких как AlphaGo, AlphaStar и многих других, начинает проявлять интерес к ускорению экологических исследований с использованием машинного обучения. Их недавнее объявление, тем не менее, довольно расплывчато, просто статья и код отсутствует, похоже, они работают над алгоритмом обучения на наборах данных Seregenti Snapshot.

Их решение, вероятно, будет интересным, но недоступным в ближайшее время.

Рассмотренные решения

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

С поставщиками облачных услуг (Amazon, Google, Microsoft, DigitalOcean…) не нужно беспокоиться об инфраструктуре, оборудовании, простоте развертывания, обслуживания, масштабирования и относительно прозрачной цене.

Мы используем Google Cloud Platform как выбор опыта, долгосрочного потенциала и ориентации на машинное обучение и большие данные.

Технологии

Машинное обучение

Python был выбран потому, что это самый популярный язык программирования для машинного обучения благодаря многочисленным преимуществам:

  • Машинное обучение, векторы, математика, библиотеки визуализации
  • Огромное сообщество
  • Фреймворки машинного обучения
  • Быстрые результаты

Затем обычно выбор фреймворка должен быть сделан между наиболее популярными: Tensorflow от Google или Pytorch от Facebook.

Оба имеют открытый исходный код, самое важное различие между ними заключается в том, как эти структуры определяют вычислительные графы. В то время как Tensorflow создает статический граф, PyTorch верит в динамический граф. Это означает, что на данный момент Tensorflow сложнее изучить, но скоро выйдет Tensorflow как 2.0, и появится возможность создавать динамический граф, такой как Pytorch. У Tensorflow гораздо больше сообщества, больше инструментов (Tensorboard, Tensorflow-serve…). Кроме того, очевидно, что использовать сервисы Google с Tensorflow проще, чем с Pytorch, по всем этим причинам был выбран Tensorflow.

Облачная платформа Google

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

Преимущества

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

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

Услуги

Сервисы Google Cloud Platform

Google Compute Engine - это инфраструктура как услуга (IaaS), которая позволяет пользователям запускать экземпляры виртуальных машин. Это позволяет им выполнять свои рабочие нагрузки в облаке (см. Рисунок [fig: gcp]).

  • Google App Engine - это платформа как услуга (PaaS). Это позволяет разработчикам программного обеспечения получить доступ к предложениям масштабируемого хостинга. Разработчики могут использовать SDK для разработки программного обеспечения, совместимого с App Engine.
  • Google Cloud Storage - это платформа облачного хранилища, предназначенная для хранения больших наборов неструктурированных данных. Google также предлагает варианты хранения баз данных, такие как Datastore для хранилища NoSQL или CloudSQL для MySQL. Мы также находим собственную базу данных Bigtable.
  • Google Container Engine - это система управления и оркестровки контейнеров Docker, работающих в общедоступном облаке Google. Эта система основана на движке оркестровки контейнеров Google Kubernetes. Облачная платформа Google также предлагает услуги по разработке и интеграции приложений. Например, Cloud Pub / Sub - это служба обмена сообщениями в реальном времени, которая позволяет обмениваться сообщениями между приложениями. Точно так же Endpoints позволяет разработчикам создавать сервисы на основе RESTful API и делать эти сервисы очень доступными.

Другие услуги

Google также предлагает услуги более высокого уровня на своей облачной платформе, например, предназначенные для больших данных и машинного обучения. Сервисы Google для обработки больших данных используются для обработки и анализа данных. Google BigQuery позволяет, например, искать наборы данных размером в несколько терабайт. Dataflow - это сервис обработки данных, предназначенный для анализа, извлечения, преобразования и загрузки данных. Dataproc предлагает сервисы Apache Spark и Hadoop для обработки больших данных. Он также объединяет базы данных Cassandra и MongoDB.

Что касается искусственного интеллекта, Google предлагает свой Cloud Machine Learning Engine (Google Cloud AI Platform) - управляемую услугу, которая позволяет пользователям разрабатывать и обучать модели машинного обучения. Также доступны различные API для перевода и анализа речи, текста, изображений или видео. Платформа AI позволяет развертывать любую модель в формате Tensorflow SavedModel, в то время как различные API, такие как Video Intelligence, просты в использовании, но на данный момент предназначены только для общих случаев использования, например, они не подходят для ловушек камеры изображений.

Цены

Как и большинство поставщиков облачных услуг, цены на Google Cloud Platform основаны на бизнес-модели с оплатой по мере использования (pay-per-use), что означает, что пользователи платят в соответствии с потребляемыми ресурсами. Расход ресурсов рассчитывается с точностью до минуты. По данным Google, ставки платформы в среднем на 60% ниже, чем у других провайдеров.

Другое преимущество этой модели заключается в том, что пользователям не нужно вносить предоплату. Точно так же выставление счетов заканчивается, как только пользователь прекращает пользоваться услугами, не уплачивая плату за прекращение действия. Для сервисов Google Compute Engine и Cloud SQL Google также предлагает автоматическую систему скидок до 30% на наиболее часто используемые рабочие нагрузки. Тарифы на разные услуги различаются, поэтому информацию о них следует уточнять на официальном веб-сайте в индивидуальном порядке.

Внешний интерфейс

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

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

Lit-Element - это библиотека JavaScript с открытым исходным кодом, используемая для разработки веб-приложений с использованием веб-компонентов. Создано разработчиками Google и участниками на GitHub.

Преимущество Lit-Element в том, что вам не нужно подробно знать, как он работает, в отличие от популярных фреймворков, таких как Angular, React, Vue и других.

Онлайн и пакетные прогнозы

AI Platform предлагает два метода получения прогнозов на основе обученных моделей: онлайн-прогнозирование и пакетное прогнозирование. В обоих случаях вы передаете входные данные в модель машинного обучения, размещенную в облаке, и получаете выводы для каждого экземпляра данных (см. Различия на рисунке [fig: onlinebatch]).

Онлайн-прогноз по сравнению с пакетным прогнозом. "Источник"

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

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

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

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

Задержка пакетного прогнозирования

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

Архитектура

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

Ядро этой архитектуры обеспечивается платформой Google Cloud AI Platform, службой, которая позволяет быстро и экономично развертывать модели машинного обучения в производственной среде. Тем не менее, у Google Cloud AI Platform есть несколько недостатков, таких как недоступность графических процессоров для вывода, которые очень эффективны для компьютерного зрения, отсутствие документации или ограничение моделей в 250 МБ.

Вторая по важности часть - это Google Cloud App Engine, который позволяет создавать и развертывать приложения на полностью управляемой безсерверной платформе. Это позволяет легко масштабировать, не беспокоясь об управлении базовой инфраструктурой.

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

Для хранения данных используется NoSQL-решение Google: Cloud Datastore, которое предлагает отличную масштабируемость для приложений.

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

Cloud Datastore предлагает множество функций, таких как транзакции ACID, запросы SQL, индексы и многое другое.

Наконец, несколько небольших кодов, запускаемых по событию, были развернуты через функцию Google Cloud, GCF - это среда выполнения без сервера для создания и подключения облачных сервисов.

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

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

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

Чтобы провести такой процесс, необходимо было составить список вариантов использования:

  1. Я хочу отправить изображение и сразу получить прогноз
  2. Я хочу отправить 1000 изображений и получить прогноз, как только он станет доступен
  3. Я сменил модель, хочу снова сделать все прогнозы
  4. Я хочу отправить видео и сразу делать прогнозы
  5. Я хочу отправить 100 миллионов изображений и получать прогнозы по мере их появления, зная, сколько времени пройдет, прежде чем я получу прогнозы, и сколько это будет стоить мне.
  6. Я хочу отправить 1000 видео и знать время и стоимость
  7. Я хочу автоматически отправлять видео с фотоловушки
  8. У меня есть 1000 фотоловушек, которые будут отправлять видео, сколько мне это будет стоить

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

Версия конвейера 1

Опорный трубопровод, версия 1

В этой версии данные будут храниться в Google Cloud Storage, а интерфейсная часть будет размещена в Google Cloud App Engine с использованием языка программирования NodeJs.

Облачная функция, написанная на Golang (для повышения производительности), будет запускаться после добавления данных, вызывая размещенную модель платформы AI для их обработки (см. [Fig: pipelinev1]).

В теории это первое хорошее простое решение, но на практике оно вызывает несколько проблем.

  1. Без очереди (если вы добавите 100 изображений, облачная функция будет запрашивать много у AI Platform, она должна ждать окончания каждой обработки в очереди)
  2. Что касается облачных функций, Python имеет гораздо больше инструментов для обработки изображений, машинного обучения… чем Golang, который действительно ориентирован на взаимодействие на стороне сервера.

Что касается вариантов использования, вот как это происходит для этой версии:

  1. Работает, и в среднем не должно занимать больше нескольких секунд: успех
  2. Первые изображения будут обработаны эффективно, потом будет много ошибок и сбоев, перегружающих модель: сбой
  3. Все изображения придется загружать заново: не удалось
  4. Эта версия не обрабатывает видео: сбой
  5. Все рухнет, оценок нет: провал
  6. Эта версия не обрабатывает видео: сбой
  7. Эта версия не обрабатывает видео: сбой
  8. Эта версия не обрабатывает видео: сбой

Версия конвейера 2

Опорный трубопровод, версия 2

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

Пример 4-мерного векторного ввода в Python, преобразование массива Numpy в сериализуемый список

{"inputs": img.tolist()}

Либо он может принимать байтовую строку формы (-1), например, закодированную в Python:

{"inputs": base64.b64encode(jpeg_data)}

Для пакетного прогнозирования требуются те же типы входных данных, но они хранятся в файле, помещенном в Google Cloud Storage, файл имеет либо формат JSON, либо формат TFRecord, который является форматом архива Tensorflow, либо TFRecord GZipped.

TFRecord намного легче, чем JSON, поэтому реализация построителя TFRecord была разработана и развернута в App Engine.

Вторым преимуществом этой версии перед первой является введение очередей через Google Cloud PubSub, которые обрабатывают обмен данными между сервисами Google Cloud, что снижает вероятность сбоя параллельно работающих компонентов. Эта версия также включает несколько небольших облачных функций и является более модульной (см. Рисунок [fig: pipelinev2]).

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

Что касается вариантов использования, вот как это происходит для этой версии:

  1. Эта версия не поддерживает онлайн-прогнозирование: сбой
  2. Работает, и в среднем не должно занимать больше нескольких минут: успех
  3. Все изображения придется загружать заново: не удалось
  4. Эта версия не поддерживает онлайн-прогнозирование: сбой
  5. Возможно, но без оценок: успех
  6. Возможно, но без оценок: успех
  7. Возможно, в зависимости от требуемой степени масштабирования: успех
  8. Возможно, в зависимости от требуемой степени масштабирования, но без оценок: успех

Версия конвейера 3

Опорный трубопровод, версия 3

Третья версия очень похожа на предыдущую, но с некоторыми упрощениями (см. Рисунок [fig: pipelinev3]).

Ему по-прежнему не хватает онлайн-прогнозов и чрезмерного использования Google App Engine, что довольно дорого.

Что касается вариантов использования, вот как это происходит для этой версии:

  1. Эта версия не поддерживает онлайн-прогнозирование: сбой
  2. Работает, и в среднем не должно занимать больше нескольких минут: успех
  3. Все изображения придется загружать заново: не удалось
  4. Эта версия не поддерживает онлайн-прогнозирование: сбой
  5. Возможно, но без оценок: успех
  6. Возможно, но без оценок: успех
  7. Возможно, в зависимости от требуемой степени масштабирования: успех
  8. Возможно, в зависимости от требуемой степени масштабирования, но без оценок: успех

Версия конвейера 4

GCP pipeline v4

Четвертая версия эволюционировала через его предшественника, устраняя узкие места, улучшая общий конвейер, обрабатывая как пакетные, так и онлайн-прогнозы (см. Рисунок [fig: pipelinev4]).

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

Что касается вариантов использования, вот как это происходит для этой версии:

  1. Работает, и в среднем не должно занимать больше нескольких секунд: успех
  2. Работает, и в среднем не должно занимать больше нескольких минут: успех
  3. Все изображения придется загружать заново: не удалось
  4. Работает, и в среднем не должно занимать больше нескольких минут: успех
  5. Возможно, но без оценок: успех
  6. Возможно, но без оценок: успех
  7. Возможно, в зависимости от требуемой степени масштабирования: успех
  8. Возможно, в зависимости от требуемой степени масштабирования, но без оценок: успех

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

Компоненты

Теперь все компоненты этого финального конвейера будут описаны подробно.

Компонент Front отвечает за непосредственное взаимодействие с пользователем, он позволяет загружать изображения и видео, получать результаты прогнозов, просматривать статистические графики появления животных во времени и пространстве. Он взаимодействует с Назад для отправки изображений, получения прогнозов и статистики. Front реализован с Lit-Element как одностраничное приложение.

Back - это REST API, реализованный в JavaScript с пакетом Express, он сохраняет информацию о кадрах и прогнозах в Cloud Datastore. Изображения и видео хранятся в облачном хранилище. Он работает в App Engine, поэтому его можно масштабировать до любого количества экземпляров для обработки более высокого трафика.

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

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

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

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

Cloud PubSub используется для ограничения частоты вызовов при пакетном и онлайн-прогнозировании. Это полезно, потому что Google API ограничен по скорости, чтобы избежать траты ресурсов.

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

Онлайн-прогнозирование AI Platform производит прогноз для одного кадра с низкой задержкой, результат доступен в HTTP-ответе.

Результат пакета - это облачная функция, которая обновляет прогнозы, когда они сделаны в Cloud Datastore.

Потоки данных, количество операций: оценка цены и времени

В последние несколько лет люди все еще не решаются нырять в облачных провайдеров, таких как Amazon, Google, Microsoft, опасаясь множества проблем: потери контроля, безопасности, защиты данных, производительности и цены. Облачные сервисы обычно трудно оценить по цене, здесь описывается пример использования, показывающий потребление хранилища и облачные операции с использованием этого решения в производственной среде. Стоимость хранения, Datastore,… подробно описана в следующих частях.

Данные и операции

Типичный вариант использования:

  1. Перейти на главную страницу
  2. Загрузите картинку
  3. Вернитесь на главную страницу, чтобы увидеть результаты (конечно, через некоторое время)

Место хранения

  • Изображение размером два мегабайта
  • Одна операция для сохранения изображения

Хранилище данных

  • Хранение отображения аннотаций примерно ‹= 1000 строк
  • Две строки Frame entity (сохранить, затем обновить, когда прогноз будет готов)
  • Прогнозы в объект прогноза 1 строка
  • Объекты, обнаруженные в сущности объекта ‹50 строк (большие)
  • Одна операция помещает сопоставление классов
  • Одна операция поставить рамку
  • Прогнозирование одной операции
  • Одна операция ставит объекты

Функция

  • Подготовка ввода одной операции
  • Прогнозирование одной операции

PubSub

  • Одно сообщение сохраняется и публикуется

App Engine

  • Внешняя визуализация главной страницы с двумя операциями
  • Страница загрузки переднего рендера за одну операцию
  • Список кадров обратного вызова за одну операцию
  • Загрузка кадров обратного вызова за одну операцию

Платформа AI

  • Онлайн-прогноз на одну операцию

Цена и время

Пример оценки цены. "Источник"

На Рисунке [fig: priceestimation] вы можете увидеть ориентировочную стоимость 100 000 изображений в месяц.

Эта цена, вероятно, может быть значительно снижена, поскольку не было проведено никакой оптимизации и были выбраны «стандартные» и даже ненужные более высокие конфигурации служб (2 постоянно работающих экземпляра App Engine, большой объем памяти для облачных функций…).

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

Статистика

Статистические данные, основанные на графиках и других визуализациях, доступны для отслеживания эволюции видов и их поведения, некоторые интересные сведения:

  • Распространение видов во времени и зоне (графики, диаграммы, гистограммы, тепловая карта…)
  • Совместное появление видов, показывая связь между ними

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

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

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

Подержанные модели

Здесь необходимо было выбрать лучшую модель с точки зрения компромисса скорость / точность (mAP) И модель менее 250 МБ для соблюдения ограничений платформы AI.

Модели, обученные COCO, компромисс между скоростью и точностью. "Источник"

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

Более быстрая модель RCNN NAS, очевидно, является наиболее точной из-за алгоритма поиска нейронной архитектуры, но 1833 очень высока по сравнению с другими (см. Рисунок [fig: tfmodels]). Интересным оказался SSD ResNet 50 FPN, заканчивающийся примерно через 180 МБ после модификации графика.

Выступления

С платформой AI, настроенной на 72 макс рабочих, 1 ядро ​​ЦП и модель SSD ResNet50 FPN, обработка пакета из 10 000 изображений с разрешением 100x100 занимает около 20 минут (см. Рисунок [fig: 10kjob])

Пакетное прогнозирование 10 000 изображений

На [fig: 10kjob] вы можете увидеть, что в данном контексте он стоит 7,9 узловых часов по цене 0,0791 доллара, что составляет общую стоимость около 0,6 доллара.

Оптимизация

В мире машинного обучения оптимизации обучения уделяется много внимания. Информации об оптимизации вывода гораздо меньше.

Тем не менее, разве ML не обслуживает модели прогнозирования?

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

Подсчет задержки (и размера)

Когда доходит до оптимизации производственных моделей, нас в основном интересуют три вещи:

  • Размер модели
  • Скорость предсказания
  • Скорость прогноза

При обслуживании ML важен размер модели. Конечно, меньшие модели используют меньше памяти, меньше памяти и пропускной способности сети, и они загружаются быстрее. В некоторых случаях ограничения аппаратной памяти или сервисные ограничения могут налагать ограничение на размер модели. Например, служба Machine Learning Engine в Google Cloud (GCP AI Platform) устанавливает ограничение размера по умолчанию для моделей в 250 МБ.

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

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

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

Форматы экспортируемых моделей в TensorFlow

В TensorFlow есть несколько форматов сериализации моделей, но наиболее важными из них являются форматы GraphDef и SavedModel.

  • Формат GraphDef - это версия протокола сериализации ProtoBuf в текстовой или двоичной форме, которая кодирует определение графа TensorFlow. GraphDef также может включать веса обученной модели, но это не обязательно - веса могут храниться в отдельных файлах контрольных точек.
  • Формат SavedModel объединяет GraphDef с файлами контрольных точек, в которых хранятся веса, собранные в папке.

Инструменты и методы

TensorFlow предлагает несколько методов для уменьшения размера модели и улучшения задержки прогнозирования. Вот некоторые из них:

  • Заморозить: преобразовать переменные, хранящиеся в файле контрольной точки SavedModel, в константы, хранящиеся непосредственно в графике модели. Это уменьшает общий размер модели.
  • Сокращение: удаление неиспользуемых узлов в пути прогнозирования и выходных данных графа, объединение повторяющихся узлов и очистка других операций узла, таких как сводка, идентификация и т. Д.
  • Сворачивание констант: замените значения известных констант в выражениях во время компиляции в подграфах модели.
  • Пакетное стандартное сворачивание: сложите умножения, введенные в пакетной нормализации, в умножения веса предыдущего слоя.
  • Квантование: преобразование веса с плавающей запятой в более низкую точность, например 16 или 8 бит.

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

TensorFlow предлагает инструмент преобразования графиков для выполнения большинства оптимизаций, который представляет собой инструмент командной строки C ++.

Инструмент Graph Transform предназначен для работы с моделями, сохраненными как файлы GraphDef в формате protobuf. Однако формат SavedModel является наиболее современным и наиболее поддерживаемым другими инструментами и службами. Это единственный формат, поддерживаемый платформой Google Cloud AI для прогнозирования. Шаги оптимизации, а также переходы формата модели следующие:

  1. Закрепите экспортированную модель: SavedModel = ›GraphDef
  2. Оптимизируйте фиксированную модель: GraphDef = ›GraphDef
  3. Преобразуйте оптимизированную замороженную модель обратно: GraphDef = ›SavedModel

Другие встроенные инструменты

Все инструменты публично доступны в основном репозитории Github.

Модификация графа вывода

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

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

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

График обнаружения начального объекта

Входные и выходные данные графа модели обнаружения объектов Tensorflow показаны на рисунке [fig: initialgraph].

Изменен график для обработки ключей

Затем вы можете увидеть на рисунке [fig: changedgraph] измененный график с ключами ввода и вывода, используемыми для сопоставления изображения с его предсказанием (например, я обнаружил кошку в верхнем левом углу…)

Сделана вилка и модификация репозитория Tensorflow Models, позволяющая такую ​​модификацию графа.

Конфигурации Gitpod

Рост облачных сервисов сделал возможной и облачную разработку, примером этого является Google Colaboratory, которая была очень полезна, но предназначена только для Python, Gitpod позволяет разрабатывать на большинстве языков.

Была разработана индивидуальная конфигурация Docker, позволяющая в один клик создать среду, готовую к написанию кода.

Будущая работа

Идентификация отдельных видов

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

Новые задачи

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

Классификация видео

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

Оценка позы

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

Заключение

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

Во-первых, было подробно описано введение в контекст и кого это волнует.

Во-вторых, было описано краткое объяснение области компьютерного зрения, того, что заставляет его работать и как его использовать.

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

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

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

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

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