Українська   English
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

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

1. Актуальность темы

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

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

2. Цель и задачи исследования, планируемые результаты

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

Для достижения поставленной цели были сформулированы следующие задачи исследования:

  1. Анализ современных методов обнаружения объектов на изображениях, их базовых принципов и подходов.
  2. Отбор наиболее универсальной модели, способной точно и с высокой скоростью обнаруживать объекты на изображениях, затрачивая минимальное количество вычислительных мощностей.
  3. Улучшение модели путём изменений в архитектуре или настройки параметров обучения и регулировке параметров используемых методов.
  4. Анализ результатов обучения модели с различными настройками параметров на одном наборе данных и отбор модели с наилучшими показателями.
  5. Реализация программного продукта для взаимодействия с полученной моделью обнаружения объектов с возможностью пользовательской загрузки изображений и сохранением полученных результатов.

3. Обзор исследований и разработок

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

3.1 Обзор международных источников

В 2014 году в статье Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation [2] был представлен алгоритм для обнаружения объектов на основе свёрточной нейронной сети – R–CNN. Данный метод показал хорошие результаты в точности обнаружения объектов, но столкнулся с проблемами в скорости работы, так как много времени затрачивается на отбор и классификацию регионов. Работа алгоритма состоит из 3 основных шагов:

В статье 2015 года Fast R–CNN [3] была представлена модифицированная версия метода R–CNN под названием Fast R–CNN. Модификация метода заключается в передаче входного изображения на создание сверточной карты признаков. На этой карте признаков идентифицируются регионы и деформируются в квадраты, а используя слой пулинга региона интересов (RoI [4]), регионы преобразуются в фиксированный размер, чтобы их можно было передавать в полносвязный слой. Fast R–CNN быстрее, чем R–CNN, так как нет необходимости каждый раз подавать 2000 регионов в сверточную нейронную сеть. Вместо этого операция свертки выполняется только один раз для всего изображения, и уже из него генерируется карта признаков. Данный метод, по сравнению с R–CNN, добился ускорения в 9 раз во время обучения и ускорения в 213 раз во время тестирования.

Последняя модификация R–CNN, получившая название Faster R–CNN, была представлена в статье Faster R–CNN: Towards Real–Time Object Detection with Region Proposal Networks [5] в 2017 году. Главным нововведением данного метода является замена алгоритма выборочного поиска на специальную сеть, которая прогнозирует предложения регионов (Region Proposal Network, RPN). Это позволило сделать обучаемым этап выделения регионов и ускорить работу всей сети благодаря использованию графического процессора.

В статье 2016 года You Only Look Once: Unified, Real–Time Object Detection [6] был представлен метод YOLO (You Only Look Once). Главной особенностью этой модели является скорость, сеть может обрабатывать 45 кадров в секунду (также существует уменьшенная версия базовой модели, которая достигает 155 кадров в секунду), то есть может работать в реальном времени. В сравнении с сетями R–CNN данная модель демонстрирует похожую точность и превосходит их в скорости.

Вторая версия модели YOLO – YOLOv2 была представлена в статье YOLO9000: Better, Faster, Stronger [7]. Авторы статьи, при помощи различных улучшений прошлой сети смогли повысить точность и скорость работы данной модели. YOLOv2 превосходит в точности все модели R–CNN, при этом всё ещё работая значительно быстрее. Достигая точности в более, чем 70%, YOLOv2 может обрабатывать изображения со скоростью 67 кадров в секунду.

В статье 2016 года SSD: Single Shot MultiBox Detector [8] была представлена модель SSD. Основной особенностью данной модели, в отличие от моделей с предложениями регионов (или объектов), является то, что она состоит из одной глубокой нейронной сети, что позволяет проще обучать и использовать данную сеть. Данная модель сочетает в себе скорость других одноступенчатых моделей и может работать в реальном времени, и точность, сравнимую с другими точными моделями.

В 2018 году авторы статьи Single–Shot Refinement Neural Network for Object Detection [9] представили модель под названием RefineDet. В этой модели они попытались объединить точность двухступенчатых моделей и скорость одноступенчатых. По тестам на различных наборах данных модель смогла превзойти точность двухступенчатых моделей при этом сохранив сравнимую с одноступенчатыми моделями скорость.

3.2 Обзор национальных источников

В статье Тимчишина Р.М., Волкова О.Е., Мельникова С.В., Коршунова М.В. [10] был проведен обзор современных методов обнаружения, распознавания и идентификации динамичных объектов, были рассмотрены наилучшие архитектуры и обозначены не решенные на текущий момент проблемы.

В статье авторов Кравец С.А., Легкий В.Н. и Шумейко В.А. [11] описана концепция сверточных нейронных сетей, которые предполагается использовать в ИК системах летательных аппаратов.

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

Горелов Антон Игоревич в своей статье[13] описал процесс обучения и использования модели YOLO для распознавания отходов в городской среде, а также инструменты, которые необходимы для корректной работы с моделью. В другой статье за авторством Чуйкова Р.Ю и Юдина Д.А. [14] рассмотрено применение модели SSD для обнаружения транспортных средств на изображениях загородных шоссе. Авторы обучили и сравнили несколько моделей с разными настройками весов.

3.3 Обзор локальных источников

В работе магистра Мурадиной Д.Г. Исследование методов классификации коллекций цифровых изображений [15] рассмотрены методы классификации изображений, их достоинства и недостатки, и применение для распознавания образов. В работе магистра Борискина Д.В. Исследование возможности параллельной реализации билатеральной фильтрации для решения задач распознавания объектов на изображениях и Depth Image Based Rendering (DIBR) [16] был выполнен анализ существующих средств распознавания объектов на изображениях и был описан метод билатеральной фильтрации. Также были рассмотрены возможности ускорения и повышения качества фильтрации за счет параллелизации вычислительных процессов.

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

В работе магистра Медведева А.С. Исследование программной модели сверточной нейронной сети при распознавании лиц на снимках из видеопотока [18] исследуется использование свёрточной нейронной сети для распознавания лиц на снимках из видеопотока, анализируется архитектура сети, выявляются достоинства и недостатки.

4. Описание архитектуры свёрточной нейронной сети

Свёрточная нейронная сеть (англ. Convolutional Neural Network, CNN) – специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном в 1988 году [19] и нацеленная на эффективное распознавание образов. Идея свёрточных нейронных сетей заключается в чередовании свёрточных слоёв и субдискретизирующих слоёв. Структура сети – однонаправленная (без обратных связей), принципиально многослойная. Для обучения используются стандартные методы, чаще всего метод обратного распространения ошибки [20].

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

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

На рисунке 4.1 показана работа свёрточной нейронной сети.

Работа свёрточной нейронной сети

Рисунок 4.1 – Работа свёрточной нейронной сети
(анимация: 43 кадра, 3 цикла повторения, 252 килобайта)

4.1 Слой свёртки

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

Слой свёртки

Рисунок 4.2 – Слой свёртки

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

4.2 Слой пулинга

Слой пулинга (также называется слоем субдискретизации или подвыборки) предназначен для уплотнения карты признаков (см. рис. 4.3). Уплотнение выполняется путём пропуска каждой группы пикселей (обычно размером 2х2) через нелинейное преобразование. В качестве нелинейного преобразования могут использоваться: функция максимума (из группы пикселей отбирается пиксель с наибольшим значением), минимума (отбирается пиксель с наименьшим значением) или среднего значения (суммируются значения всех пикселей и делятся на количество пикселей в группе) и др. Чаще всего в различных архитектурах СНС встречается функция максимума.

Слой пулинга

Рисунок 4.3 – Слой пулинга

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

4.3 Полносвязный слой

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

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

Полносвязный слой

Рисунок 4.4 – Полносвязный слой

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

Выводы

В данной работе был проведен обзор работ по теме разработки и применения интеллектуальных методов выделения и обнаружения объектов на изображении. Были рассмотрены современные методы, применяющиеся для решения проблемы обнаружения объектов: R–CNN (Fast R–CNN, Faster R–CNN), YOLO (YOLOv2), SSD, RefineDet. Одни из первых моделей, такие как R–CNN, смогли достичь хороших результатов в точности обнаружения, однако не могли работать в реальном времени, так как требовалось обрабатывать большое количество информации, скорость так же могла снижаться из–за, например, использования алгоритма выборочного поиска, который так же занимал много времени. Последующие модели (YOLO, SSD, RefineDet) могут работать в реальном времени, при этом также показывают высокую точность обнаружения. Рассмотрена архитектура свёрточной нейронной сети, слои свёртки и пулинга, использующиеся для выделения и изучения признаков на изображении, а также полносвязынй слой, необходимый для классификации объектов.

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

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

Список источников

  1. Обнаружение объектов с 10 строчками кода [Электронный ресурс]. – Режим доступа: https://medium.com/nuances...
  2. Girshick R. Rich feature hierarchies for accurate object detection and semantic segmentation / R. Girshick, J. Donahue, T. Darrell, J. Malik // 2014 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). – IEEE, 2014. – pp. 580–587.
  3. Girshick R. Fast R–CNN / R. Girshick // 2015 IEEE International Conference on Computer Vision (ICVV). – IEEE, 2015. – pp. 1440–1448.
  4. He K. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition / K. He, X. Zhang, S. Ren, J. Sun // IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 37, N 9, 2015. – pp. 1904–1916.
  5. Ren S. Faster R–CNN: Towards Real–Time Object Detection with Region Proposal Networks / S. Ren, K. He, R. Girshick, J. Sun // IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 39, N 6, 2017. – pp. 1137–1149.
  6. Redmon J. You Only Look Once: Unified, Real–Time Object Detection / J. Redmon, S. Divvala, R. Girshick, A. Farhadi // 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). – IEEE, 2016. – pp. 779–788.
  7. Redmon J. YOLO9000: Better, Faster, Stronger / J. Redmon, A. Farhadi // 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). – IEEE, 2017. – pp. 6517–6525.
  8. Liu W. SSD: Single Shot MultiBox Detector / W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.Y. Fu, A.C. Berg // Computer Vision – ECCV 2016. – Springer, 2016. – pp. 21–37.
  9. Zhang S. Single–Shot Refinement Neural Network for Object Detection / S. Zhang, L. Wen, X. Bian, Z. Lei, S.Z. Li // 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. – IEEE, 2018. – pp. 4203–4212.
  10. Тимчишин Р.М. Сучасні системи виявлення, розпізнавання, та ідентифікації динамічних об'єктів, їх переваги і недоліки / Р.М. Тимчишин, О.Є. Волков, С.В, Мельников, М.В. Коршунов // Інформаційні технології в освіті, науці и техніці (ІТОНТ–2018) / Тези доповідей IV Міжнародної науково–практичної конференції. – 2018. – с. 62–63.
  11. Кравец С.А. Оптоэлектронные системы: вычислительные методы распознавания изображений / С.А. Кравец, В.Н. Легкий, В.А. Шумейко // Интерэкспо Гео–Сибирь / Национальная научная конференция Наука. Оборона. Безопасность. – Новосибирск: СГУГиТ, 2017. – с. 177–183.
  12. Друки А.А. Применение сверточных нейронных сетей для выделения и распознавания автомобильных номерных знаков на изображениях со сложным фоном // Известия ТПУ, том 324, №5, 2014. – с. 85–92.
  13. Горелов А.И. Обучение сети YOLO для распознавания отходов в городской среде // Вестник науки и образования, №9–4 (63), 2019. – с. 23–26.
  14. Чуйков Р.Ю. Обнаружение транспортных средств на изображениях загородных шоссе на основе метода Single Shot MultiBox Detector / Р.Ю. Чуйков, Д.А. Юдин // Научный результат. Информационные технологии, том 2, №4, 2017. – с. 50–58.
  15. Мурадина Д.Г. Исследование методов классификации коллекций цифровых изображений [Электронный ресурс]. – Режим доступа: http://masters.donntu.ru/2014/...
  16. Борискин Д.В. Исследование возможности параллельной реализации билатеральной фильтрации для решения задач распознования объектов на изображениях и Depth Image Based Rendering(DIBR) [Электронный ресурс]. – Режим доступа: http://masters.donntu.ru/2019/...
  17. Чернышов Б.С. Современное решение проблемы распознавания лиц на основе нейронных сетей / Б.С. Чернышов, И.Д. Фоминых, Л.В. Рудак, О.И. Федяев // Программная инженерия: методы и технологии разработки информационно–вычислительных систем (ПИИВС–2018): сборник научных трудов II Международной научно–практической конференции. – Донецк: ДонНТУ, 2018. – с. 180–184.
  18. Медведев А.С. Исследование программной модели сверточной нейронной сети при распознавании лиц на снимках из видеопотока [Электронный ресурс]. – Режим доступа: http://masters.donntu.ru/2018/...
  19. Lecun Y. Gradient–Based Learning Applied to Document Recognition / Y. Lecun, L. Bottou, Y. Bengio, P. Haffner // Proceedings of the IEEE, Vol. 86, N 11, 1998. – pp. 2278–2324.
  20. Свёрточная нейронная сеть [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/...