Применение нейросетей в распознавании изображений

AlexNet — свёрточная нейронная сеть для классификации изображений

AlexNet — сверточная нейронная сеть, которая оказала большое влияние на развитие машинного обучения, в особенности — на алгоритмы компьютерного зрения. Сеть с большим отрывом выиграла конкурс по распознаванию изображений ImageNet LSVRC-2012 в 2012 году (с количеством ошибок 15,3% против 26,2% у второго места).

Архитектура AlexNet схожа с созданной Yann LeCum сетью LeNet. Однако у AlexNet больше фильтров на слое и вложенных сверточных слоев. Сеть включает в себя свертки, максимальное объединение, дропаут, аугментацию данных, функции активаций ReLU и стохастический градиентный спуск.

Особенности AlexNet

  1. Как функция активации используется Relu вместо арктангенса для добавления в модель нелинейности. За счет этого при одинаковой точности метода скорость становится в 6 раз быстрее.

  2. Использование дропаута вместо регуляризации решает проблему переобучения. Однако время обучения удваивается с показателем дропаута 0,5.
  3. Производится перекрытие объединений для уменьшения размера сети.

    За счет этого уровень ошибок первого и пятого уровней снижаются до 0,4% и 0,3%, соответственно.

Датасет ImageNet

ImageNet — набор из 15 миллионов помеченных изображений с высоким разрешением, разделенных на 22 000 категорий. Изображения собраны в интернете и помечены вручную с помощью краудсорсинга Amazon’s Mechanical Turk.

Начиная с 2010 года проводится ежегодный конкурс ImageNet Large-Scale Visual Recognition Challenge (ILSVRC), являющийся частью Pascal Visual Object Challenge. В челлендже используется часть датасета ImageNet с 1000 изображений в каждой из 1000 категорий.

Всего получается 1,2 миллиона изображений для обучения, 50 000 изображений для проверки и 150 000 — для тестирования. ImageNet состоит из изображений с разным разрешением. Поэтому для конкурса их масштабируют до фиксированного разрешения 256 × 256.

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

Архитектура

Рисунок 1

Архитектура сети приведена на рисунке 1. AlexNet содержит восемь слоев с весовыми коэффициентами. Первые пять из них сверточные, а остальные три — полносвязные. Выходные данные пропускаются через функцию потерь softmax, которая формирует распределение 1000 меток классов.

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

Обратите внимание

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

Таким образом, AlexNet содержит 5 сверточных слоев и 3 полносвязных слоя. Relu применяется после каждого сверточного и полносвязного слоя. Дропаут применяется перед первым и вторым полносвязными слоями. Сеть содержит 62,3 миллиона параметров и затрачивает 1,1 миллиарда вычислений при прямом проходе.  Сверточные слои, на которые приходится 6% всех параметров, производят 95% вычислений.

Обучение

AlexNet проходит 90 эпох. Обучение занимает 6 дней одновременно на двух графических процессорах Nvidia Geforce GTX 580, что является причиной того, что сеть разделена на две части.

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

Схема обновления весовых коэффициентов w имеет вид:

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

Примеры использования и реализация

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

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

Сейчас реализовать AlexNet стало проще с помощью библиотек глубокого обучения: PyTorch, TensorFlow, Keras.

Результат

Сеть достигает следующего уровня ошибок первого и пятого уровней: 37,5% и 17,0%, соответственно.

Лучшая производительность, достигнутая в ходе конкурса ILSVRC-2010, составляла 47,1% и 28,2% при использовании подхода, в котором усредняются предсказания, полученные шестью моделями с разреженным кодированием, обученных на различных векторах свойств.

  С тех пор достигнуты результаты: 45,7% и 25,7% при использовании подхода, в котором усредняются предсказания двух классификаторов, обучаемых на векторах Фишера. Результаты ILSVRC-2010 приведены в таблице 1.

Слева: восемь тестовых изображений ILSVRC-2010 и пять ярлыков, которые наиболее вероятны по мнению модели. Правильная метка записывается под каждым изображением, а вероятность показана красной полосой, если она находится в верхней пятерке. Справа: пять тестовых изображений ILSVRC-2010 в первом столбце. В остальных столбцах показаны шесть обучающих изображений.

Источник: https://neurohive.io/ru/vidy-nejrosetej/alexnet-svjortochnaja-nejronnaja-set-dlja-raspoznavanija-izobrazhenij/

Нейронные сети и распознавание изображений

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

Нейронные сети и машинное обучение

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

Схематичное изображение 3-уровневой нейронной сети, источник

Для распознавания изображений используются сверточные нейронные сети (англ. convolutional neural network — CNN) глубиной 19, 50 или даже 1 000 слоев. CNN получает изображение и выдает 5 предположений, ранжированных по вероятности.

Критерием точности негласно признают ImageNet Challenge, цель которого научить CNN классифицировать картинки по 1 000 категорий (телевизор, кабриолет, собака и т.п.). 1,2 млн изображений используется для тренировки, 100 000 для тестирования и еще 50 000 – для валидации.

Примеры того, как нейронная сеть AlexNet распознает объекты на картинках

Важно

Чем чаще топовая категория оказывается верной, тем точнее CNN и ниже top-1 error rate (коэффициент ошибки топ-1). Для top-5 error rate ошибкой считается, если среди 5 лучших вариантов нет правильного ответа.

Например, лучший в 2012, AlexNet показал top-5=15,3%, а Inception-v3 в 2015 — уже 3.5%. Но как справится с заданием человек? Если любопытно, пройти тест можно здесь.

5 приложений, которые понимают, что на картинке

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

Мир глазами программы

AI Scry покажет, как искусственный интеллект видит привычные предметы. «Мозгом» приложения стала нейронная сеть Neural Talk, разработанная Andrej Karpathy. Технологии распознавания не на 100% точны, что приложение с юмором демонстрирует. Например, называя кактус котом.

Источник: creators.vice.com

В AI Scry есть интересная настройка – «Attention Aperture», которая влияет на результат. Поставите на минимум – получите безопасные и очевидные ответы. А если выкрутить до максимума – программа свободнее (и безумнее) интерпретирует объекты. Приложение доступно только для iOS и стоит 75 руб.

Эффекты и фильтры, фильтры и эффекты

FaceApp – наверняка, знакомый вам фоторедактор, который добавляет улыбки, меняет возраст или пол и развлекает другими эффектами. Разработка российской студии Wireless Lab появилась сначала на iOS, а чуть позже стала доступна и на Android.

Создатели «с нуля» тренировали нейронную сеть специально для модификации лиц. FaceApp не запрашивает лишних разрешений вроде GPS (в отличие от конкурента Meitu). Разработчики сказали The Verge, что фото загружаются на сервер для экономии трафика, но долго не хранятся. Монетизируют проект за счет рекламы и платной PRO-версии, где нет объявлений и доступны доп. фичи.

FaceApp меняет Арнольда Шварценеггера: оригинал, улыбка, молодость и женщина

Хотите портрет в стиле поп-арт, импрессионизма или кубизма? Попробуйте Prisma

Источник: https://magora-systems.ru/neironnye-seti-raspoznavanie-izobrajeniy/

Использование нейронных сетей в видеонаблюдении

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

Нейронные сети используют Facebook, Google, Amazon, Instagram.  Компания Yandex распознает автомобили на фотографиях в приложении Авто.ru; CaptionBot от Microsoft — автоматически придумывает подпись к изображениям; WhatDog распознает породы собак.

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

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

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

Использование нейронных сетей в видеонаблюдении открывает для отрасли огромные перспективы и область применения этой технологии: от розничной торговли до решений «Безопасный город».

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

Совет

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

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

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

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

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

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

Но если построить сеть с очень большим количеством слоев и нейронов – это серьезно скажется на производительности.

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

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

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

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

Источник: https://www.videonet.ru/ispolzovanie-nejronnyij-setej-v-videonablyudenii.html

Нейросети: просто о сложном

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

Пройдет лет 20-30, и часть работы, которая сейчас по силам только квалифицированным специалистам, «переложат на плечи» нейронным сетям. Кто знает, может на старости лет мы с вами окажемся полностью в виртуальном мире, а тут — в реальном — будут хозяйничать машины. Почти как в «Матрице», хе-хе.

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

Что такое нейронные сети?

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

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

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

Обратите внимание

Вот небольшой пример: ИНС просят установить, что нарисовано на картинке. Обработав 100 примеров сеть понимает, что это собака, обработав 1 000 — сможет определить породу, обработав 1 000 000 — возраст.

Кто и как их создал?

Спасибо за создание столь удобного инструмента стоит сказать ученым У. Питту (W. Pitts) и У. Маккалоку (W. McCulloch). Они сформировали само понятие нейронной сети.

Произошло это еще в 1943 году, а Н. Винер (N. Wiener) предложил реализовать концепцию при помощи вакуумных ламп.

Он же в своей работе о кибернетике представил биологические процессы организма в виде математических моделей.

Спустя 6 лет, в 1949-м, Д. Веббом (D. Hebb) был предложен первый алгоритм обучения, а последующие годы отметились созданием сразу нескольких принципиальных вариантов ИНС:

  • 1958 год — создание перцептона Ф. Розенблаттом (F. Rosenblatt). Используется для прогнозирования погоды, распознавания образов и подобных задач;
  • 1960 — разработка адалина Уидроу(B. Widrow B) и Хоффом (M. Hoff). Нашел применение в системах адаптивного управления и в задачах предсказания. До сих пор является стандартным элементом ряда систем обработки сигналов;
  • 1972 — создание нейронных сетей нового типа, способных работать в качестве памяти;
  • 1975 — появление когнитрона, самоорганизующейся сети для распознавания образов;
  • 2007 — создание Джеффри Хинтоном (Geoffrey Hinton) алгоритмов глубокого обучения.

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

Нейронные сети умеют обучаться?

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

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

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

Где используются нейросети?

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

Источник: https://fullhub.ru/other/matrix-has-you-93798.html

Распознавание изображений с помощью нейронных сетей

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

Точно также любому коду соответствует определенное изображение на поле рецепторов.

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

ПРИМЕНЕНИЕ НЕЙРОННОЙ  СЕТИ ДЛЯ РАСПОЗНАВАНИЯ ЧАСТНЫХ  ПРИЗНАКОВ ЦИФРОВЫХ ДАКТИЛОСКОПИЧЕСКИХ ИЗОБРАЖЕНИЙ

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

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

Важно

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

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

Рисунок 1 – Координаты частных                      Рисунок 2 – Выборка областей изображения

                    признаков                                             для обучения сети с нулевым откликом

Рисунок 3 – Область изображения 9х9           Рисунок 4 – Результат работы нейронной сети    

                                                                                             с малым значением порога

Рисунок 5 – Результат  работы НС                                  Рисунок 6 – Результат работы НС

       с малым значением порога                                         с большим значением порога

Совет

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

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

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

Были получены результаты работы программы на нескольких тестовых изображениях. Результаты приведены  на рис. 4-6. Синим цветом отмечены точки, в которых находятся частные признаки ДИ. Оранжевым цветом отмечены точки, в области которых нейронная сеть выдавала наибольший отклик. Красным цветом отмечены области, на которых нейронная сеть обучалась с нулевым откликом.

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

АЛГОРИТМ И  ПРОГРАММА ДЛЯ РАСПОЗНАВАНИЯ  ПОЛА ПО ФОТОГРАФИИ С ИСПОЛЬЗОВАНИЕМ ИНС

Источник: http://yaneuch.ru/cat_39/raspoznavanie-izobrazhenij-s-pomoshhju-nejronnyh/263215.2229882.page3.html

Электронный научный журнал Международный студенческий научный вестник ISSN 2409-529X

1Старожилова О.В. 1 Захаров К.А. 11 ФГБОУ ВО Поволжский государственный университет телекоммуникаций и информатикиВ статье рассмативаются задачи идентификации неоднородностей на цифровых изображениях, математическая модель построена на основе нейронного подхода.

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

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

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

Обратите внимание

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

В качестве алгоритма обучения используется алгоритм обратного распространения ошибки.принципы нейросетевой технологииидентификация неоднородностей1. Осадчий, А.С Повышение эффективности рентгенодиагностики путем компьютерной обработки рентгенограмм Текст. / A.C. Осадчий, И.П. Королюк, Ю.Л. Минаев // Врач-аспирант. -2007. -№6. -С. 501-507.2. Оссовский, С.

Нейронные сети для обработки информации / С. Оссовский, пер. с польского под ред. И.Д. Рудинского. М.: Финансы и статистика, 2002. — 344с.3. Хлесткин А.Ю. Распознавание текстур рентгенографических снимков и УЗИ изображений программными методами Текст. / А.Ю. Хлесткин, В.П. Кривозубов, A.B. Николаева // Инфокоммуникационные технологии. 2006. — № 3. — С. 64-69.4.

Хлесткин А.Ю., Старожилова О.В. Модели слияния рентгеновских и сцинтиграфических изображений в распознавании артефактов //Инфокоммуникационные технологии. – 2010. – № 2. – С. 40–42.5. Яне, Б. Цифровая обработка изображений / Б. Яне; пер. с англ. А.М: Измайловой. -М.: Техносфера, 2007. -584 с.

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

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

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

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

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

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

Области D можно поставить в соответствие эталонное изображение, каждый элемент которого определяется в зависимости от его принадлежности области D0 или:

Используя данное представление, можно получить модель нормализуемого изображения в виде следующего соотношения:

Важно

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

Величинаявляется контрастом между объектом и фоном (разность между их средними значениями), а величина— средней яркостью фона.

Построена математеческая модель, использующая метод Бардина-Терсоффа-Хаманна, основана на первопринципном расчете структуры поверхности.

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

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

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

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

при

где– упорядоченный кортеж, комплекснозначный вектор.

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

,

Совет

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

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

гдеи– результирующие и обратное преобразование Фурье соответственно [5].

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

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

Дискретизацию можно выразить как

гдеприи– узлы так называемой обратной сетки.

Плотная дискретизация приводит к крупной сетке в Фурье-пространстве и наоборот. Следовательно, дискретизация приводит к воспроизведению спектра изображения в каждом узле сеткив Фурье-пространстве.

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

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

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

Входное изображениепикселей имеет 625 нейронов во входном слое.

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

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

Для идентификации векторной функции рассматриваем двухслойную нейронную сеть прямого распространения с сигмоидальным скрытым слоем нейронов и линейным выходным.

Обратите внимание

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

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

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

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

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

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

Перекрытие составляет 3 пикселя, отсюда по вертикали имеем 7 областейпикселей, по горизонтали 4 областипикселей, отсюда, размерность карты признаков —нейронов.

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

Важно

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

В итоге, подготовлены пары класса изображение/метка.

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

В качестве алгоритма обучения использовался алгоритм обратного распространения ошибки. Для ускорения обучения использовался стохастический вариант метода Левенберга-Марквардта.

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

Вводное изображение — это матрицас пиксельными значениями [2]. Глубина у фильтра должна быть такой же, как и глубина вводного изображения, и размеры этого фильтра —.

После прохождения фильтра по всем позициям получается матрица карта признаков.

Нейронная сеть достигла способности распознавать все изображения, ошибка составляет 2%. Тестирование нейронной сети проводилось на изображениях тестовой выборки: ошибка распознавания составила 6% [3].

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

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

Совет

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

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

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

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

Для улучшения качества изображения используется предварительная обработка снимков с использованием полосовых частотных фильтров и преобразованием в псевдоцвета [4]. Простая «однородная» структура делает их привлекательными для практического использования и аппаратной реализации.

Библиографическая ссылка

Старожилова О.В., Захаров К.А. РАСПОЗНАВАНИЕ НЕОДНОРОДНОСТЕЙ НА ЦИФРОВЫХ ИЗОБРАЖЕНИЯХ С ИСПОЛЬЗОВАНИЕМ НЕЙРОННОЙ СЕТИ // Международный студенческий научный вестник. – 2018. – № 1.;
URL: http://eduherald.ru/ru/article/view?id=18114 (дата обращения: 26.02.2019).

Источник: https://eduherald.ru/ru/article/view?id=18114

Нейронные сети: практическое применение

Наталья Ефремова погружает публику в специфику практического использования нейросетей. Это — расшифровка доклада Highload++.

Добрый день, меня зовут Наталья Ефремова, и я research scientist в компании N-TechLab. Сегодня я буду рассказывать про виды нейронных сетей и их применение.

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

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

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

Первая часть моего доклада будет направлена тем, кто незнаком с нейронными сетями. Я занимаюсь непосредственно deep learning. В этой области я работаю более 10 лет.

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

В последние 10 лет deep learning и компьютерное зрение развивались неимоверными темпами.

Все, что сделано значимого в этой области, произошло в последние лет 6.

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

Обратите внимание

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

Также я расскажу про нестандартное применение deep learning, то, что только выходит из научных институтов и пока что еще мало применяется на практике, как это может применяться, и почему это сложно применить.

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

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

Я расскажу, как работают convolutional neural network (CNN), распознавание изображений на примере из распознавания лиц.

Немного расскажу про рекуррентные нейронные сети recurrent neural network (RNN) и обучение с подкреплением на примере систем deep learning.

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

Итак, часть первая.

Нейронные сети, что это такое?

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

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

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

Важно

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

Почему это важно?

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

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

В далекие 60-е годы прошлого века, когда только начиналось изучение зрительных зон , первые эксперименты проводились на животных, потому что не было fMRI. Исследовали с помощью электродов, вживлённых в различные зрительные зоны.

Первая зрительная зона была исследована Дэвидом Хьюбелем и Торстеном Визелем в 1962 году. Они проводили эксперименты на кошках. Кошкам показывались различные движущиеся объекты.

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

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

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

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

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

Совет

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

Здесь вы видите примеры сложности стимулов, различных двухмерных форм, которые распознаются в зонах V2, V4 и различных частях височных полей у макак. Также проводятся некоторое количество экспериментов на МРТ.

Здесь вы видите, как раз, как проводятся такие эксперименты. Это 1 нанометр часть зон IT cortex'a мартышки при распознавании различных объектов. Подсвечено то, где распознается.

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

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

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

Но сначала немного о простейшем персептроне.

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

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

Обратите внимание

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

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

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

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

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

Сейчас это происходит не так. Мы разбиваем наше изображение на пиксели либо на некие патчи: 2х2, 3х3, 5х5, 11х11 пикселей, как удобно создателям системы, в которой они служат входным слоем в нейронную сеть.

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

Условно все эти части можно разделить на три класса, мы их обозначим X, W и Y, где Х — это наше входное изображение, Y — это набор лейблов, и нам нужно получить наши веса.

Как же мы вычислим W?

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

Важно

Этот процесс происходит итеративно, мы постоянно уменьшаем, пока не находим то значение веса W, которое нас достаточно устроит.

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

Перед вами первая сеть, которая победила на международном соревновании ImageNet в 2012 году. Это так называемый AlexNet. Это сеть, которая впервые заявила о себе, о том, что существует convolutional neural networks и с тех самых пор на всех международных состязаниях уже convolutional neural nets не сдавали своих позиций никогда.

Несмотря на то, что эта сеть достаточно мелкая (в ней всего 7 скрытых слоёв), она содержит 650 тысяч нейронов с 60 миллионами параметров. Для того, чтобы итеративно научиться находить нужные веса, нам нужно очень много примеров.

Как же учится наша нейронная сеть?

Она учится на примере картинки и лейбла. Как нас в детстве учат «это кошка, а это собака», так же нейронные сети обучаются на большом количестве картинок. Но дело в том, что до 2010 не существовало достаточно большого data set’a, который способен был бы научить такое количество параметров распознавать изображения.

Самые большие базы данных, которые существовали до этого времени: PASCAL VOC, в который было всего 20 категорий объектов, и Caltech 101, который был разработан в California Institute of Technology. В последнем была 101 категория, и это было много. Тем же, кто не сумел найти свои объекты ни в одной из этих баз данных, приходилось стоить свои базы данных, что, я скажу, страшно мучительно.

Однако, в 2010 году появилась база ImageNet, в которой было 15 миллионов изображений, разделённые на 22 тысячи категорий. Это решило нашу проблему обучения нейронных сетей.

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

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

По сравнению с предыдущими data set’ами это очень большая база данных.

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

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

Как выглядит архитектура глубины нейронной сети?

Условно ее можно разделить на 2 части: те, которые учится, и те, которые не учится.

Чёрным обозначены те части, которые не учатся, все остальные слои способны обучаться. Существует множество определений того, что находится внутри каждого сверточного слоя. Одно из принятых обозначений — обозначают один слой с тремя компонентами convolution stage, detector stage и pooling stage.

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

Совет

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

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

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

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

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

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

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

Они взяли 2 самые лучшие на данный момент сети — это AlexNet и сеть Мэттью Зиллера и Фергюса, и сравнили с откликом разных зон макаки, которая тоже была научена распознавать какие-то объекты.

Обратите внимание

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

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

Оказалось, что в нормальных условиях клетки реагировали так же хорошо, как и state of the art model на тот момент, то есть сеть Мэттью Зиллера.

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

Какие есть классические задачи, которые способны выполнять сверточные нейронные сети?

Их на самом деле не так много, они относятся к трём классам.

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

На примере этого изображения рассмотрим, что делает каждая из задач.

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

Как у нас происходит распознавание лиц?

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

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

Именно таким образом работает наш продукт FindFace — это бесплатный сервис, который помогает искать профили людей в базе «ВКонтакте».

Важно

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

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

Немного статистики. При идентификации, при поиске по 10 тысячам фото у нас точность около 95% в зависимости от качества базы, 99% точность верификации.

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

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

Очень быстрый поиск, затрачивается 0,5 секунд на обработку 1 миллиарда фотографий. Нами разработан уникальный индекс быстрого поиска.

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

Можно загружать фото через Web интерфейс, через Android, iOS и производить поиск по 100 миллионам пользователей и их 250 миллионам фотографий.

Источник: https://www.pvsm.ru/algoritmy/245709

Ссылка на основную публикацию