![]() |
![]() |
![]() |
|||||
![]() |
Умные сети для рыбаков: как мы учили смартфоны распознавать рыбу |
||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-10-24 16:57 техническое зрение, машинное обучение python, архитектура нейронных сетей ![]()
Это лишь вершина айсберга достижений алгоритмов компьютерного зрения. Остались без упоминания достижения в искусстве, медицине, играх и впечатляющие генеративные модели, такие как генератор кошечек. Некоторые источники утверждают, что именно благодаря кошечкам удалось позаимствовать идею сверточных нейросетей у природы, создавшей зрительную кору мозга. Компьютерное зрение, как часть мира будущего Технологии для автоматизации задачи, требующие распознавание образов, пользуются спросом на службе правительств и в высокотехнологичных компаниях. Они помогают решать задачи людей, нуждающихся в помощи — фермеров и защитников окружающей среды. Приложение Seeing AI от Microsoft описывает окружающий мир для слепых людей. А молодой разработчик создал для родителей фермеров сортировку овощей, облегчив труд. Мы давно следим за развитием технологий. Потенциал машинного обучения вдохновляет нас искать приложения перспективных технологий в наших продуктах для решения повседневных задач простых людей. В 2016 году, работая над социальной сетью для рыбаков, мы решили сделать лучшее, что в наших силах, чтобы любимое многими хобби, стало не просто удобнее, но и интереснее.Цель и постановка задачи Современные рыбацкие сообщества до сих пор живут на форумах, построенных в начале 2000-х. Темы с рассказами о лучших местах для рыбалки, снаряжении и фотографиями улова — наиболее активны. Люди делятся запечатленной на смартфон рыбой, выкладывая пост на форум. Братья по оружию (в этом случае, удочке) обсуждают добычу, соревнуясь друг с другом кто поймал щуку побольше. Такую теплую соревновательную атмосферу нарушать нам не хотелось. Как раз напротив, сделать рыбалку активнее, удобнее и чуточку современнее, по крайней мере, в этом аспекте. Порядка 500 млн человек во всем мире увлекаются сегодня рыбалкой. Представители одного из самых больших комьюнити, давно берут с собой смартфоны на рыбалку, однако, все также сидят на устаревших форумах или группах в Facebook. Удивительно, но современных ресурсов и приложений для рыбаков почти нет. Мы хотели исправить это досадное упущение посредством технологий.Созданное нами приложение поможет рыбакам не только определить вид и длину рыбы, но и оставить трофей на доске почета. Каждый рыбак хочет видеть добычу в своей коллекции. Сканируя поимку, приложение добавляет ее в профиль, так, чтобы пользователь смог похвастаться уловом со своими друзьями. Наверное, у большинства рыбаков, которые считают это занятие больше чем хобби, есть чувство соревновательного азарта. Специально для них, мы также решили добавить рейтинги. Пользователи с большим уловом будут на вершине рейтинга, становясь стимулом для остальных. Рассказы типа «я поймал ВОТ такую рыбу» не будут восприниматься всерьез. Приложение будет знать, кого поймал рыбак и какой длины. Человека больше не будет отвлекать загрузка фотографий на форум, определение вида и размера рыбы — все сделает машинное обучение. Останется только наслаждаться любимым занятием — ловить рыбку. Учим сеть улавливать рыбу Чтобы научить сеть распознавать длину и вид рыбы, помимо мощных видокарт нам было необходимо:
![]() Сбор данных Открытые датасеты с разметкой вида рыбы или бокса с ее положением практически отсутствуют. Данные можно найти у ImageNet и отдельных лабораторий, но объём, качество снимков и разметки оставляют желать лучшего. Первого взгляда на первую сотню фотографий улова будет достаточно, чтобы понять, что рыбакам со всего мира нравится делать селфи с рыбой, а не качественные фотографии. Фотографии и видео с рыбалки содержат нужные данные, но они имеют ряд существенных недостатков:
На фотографии несколько видов, а мы хотим для каждого изображения определять один класс. Рыбаки очень часто путают похожие виды, «загрязняя» данные. Глубокие сети требовательны к объему и менее требовательны к качеству. Но рыболовные снимки в сыром виде непригодны. Наша методика позволила нам решить сразу несколько проблем — сбора данных и их очистки. Она заключается в последовательном увеличении качества, моделей и данных: Мы размечаем вручную границы рыбы для нескольких непохожих видов для избежания переучивания на один вид. Например, камбала, щука и карп. Несколько дней работы — это пара тысяч картинок. Выбираем архитектуру для детекции. Быструю и точную для работы с большим количеством данных. R-FCN показалась подходящей. ![]() ![]() Такая админка позволяет собирать данные для целевого вида, а обработанные сетью и проверенные человеком использовать для:
![]() Обучение классификации Мы намерены расширять количество распознаваемых видов, поэтому выбирали архитектуру классификатора среди сетей, которые предсказывали 1000 классов на ImageNet. Выбор пал на Inception-ResNet-2, как оптимальное соотношение размера и точности.![]() Полное обучение модели дало большую точность, чем обучение полносвязных слоев модели ImageNet. Скорее всего потому, что сеть научилась низкоуровневым паттернам, таким как рисунок чешуи. Обучение заняло более 80 часов на двух видеокартах. ![]() ![]() ![]() Полученное решение страдало от больших ошибок на похожих видах. На изображениях представлены легендарный язь и голавль, отличить которых, способны лишь заядлыми рыбаками. ![]() ![]() ![]() ![]() Измеряем улов Переоценка своего улова — очень важная фича белковых нейросеток. Для точного измерения, нужно знать границы рыбы на фотографии и иметь дальномер, как на новых смартфонах со сдвоенными камерами. Наша цель — обеспечить рыбакам точное измерение улова автоматически, простым наведением телефона. Приложение должно уметь определять, когда рыба в кадре классифицирована и локализована. Необходимо измерять длину рыб по нескольким различным стандартам. Архитектура Faster RCNN с Inception-ResNet-2 демонстрирует себя лучше аналогов, переводим классификаци на неё с R-FCN.![]() ![]() Точнее измеряем улов Размечаем несколько тысяч фотографий ключевыми точками для покрытия всех способов измерения по различным стандартам.![]() ![]() Аугментации: флипы горизонтальные/вертикальные, яркость, рандомные кропы (хорошо зашли), скейл. Все координаты точек нормировались на [-1, 1] ![]() Тут все стандартно: бинарная кросс энтропия, аугментации, метрика accuracy (выборки сбалансированы) ![]() Источник: habrahabr.ru ![]() Комментарии: |
||||||