Автоматизированный программно-аппаратный комплекс ввода, обработки и анализа изображений | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №53 (395) декабрь 2021 г.

Дата публикации: 26.12.2021

Статья просмотрена: 98 раз

Библиографическое описание:

Дворцов, Н. В. Автоматизированный программно-аппаратный комплекс ввода, обработки и анализа изображений / Н. В. Дворцов. — Текст : непосредственный // Молодой ученый. — 2021. — № 53 (395). — С. 4-7. — URL: https://moluch.ru/archive/395/87397/ (дата обращения: 16.11.2024).



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

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

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

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

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

Машинное обучение (англ. machine learning, ML) — класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач.

Схема машинного обучения

Рис. 1. Схема машинного обучения

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

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

Значение глубины для цифрового изображения задается количеством цветовых каналов. Черно-белые изображения имеют всего 1 канал. Цветные — 3. Таким образом, конечные параметры фильтра CNN 3х3х3. Для каждого пикселя сеть умножает значения фильтра на значения самих пикселей, чтобы получить числовое представление конкретного пикселя. Таким же методом анализируется все изображение.

Итогом этой операции является детальная карта признаков.

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

Для объединения параметров используют метод максимального объединения. Он подразумевает взятие максимального значения пикселей в пределах одного фильтра. Это отсекает ¾ объема информации в случае, если используется фильтр 2х2.

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

Ядро YOLOv3, используемое в разработанной мной программе обучено на CIFAR-10. Это большой набор данных, содержащий более 60000 изображений, представляющих 10 различных классов объектов. Изображения являются полноцветными RGB, но они очень малы, всего 32x32. CIFAR-10 поставляется в комплекте с библиотекой Keras.

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

Характеристика/Название

Ядро YOLOv3

Ядро ResNet 50 v .2. 0 .1

Быстродействие

Среднее

Низкое

Точность

Среднее

Высокое

Конфликтность

Низкое

Высокое

Нагрузка на систему

Среднее

Среднее

Объем ядра на диске

Низкое

Низкое

Программа написана на языке Python с использованием библиотек TensorFlow 2.4.0 и OpenCV-Python Keras 0.2.0. Программа построена на ядре нейронной сети YOLOv3. Версия Python-3.8.6 (64/32bit). Размер программы — 35 МБ (с библиотеками — 2 GB).

TensorFlow — это библиотека с открытым исходным кодом, созданная для Python командой Google Brain.

Ниже представлен исходный код моей программы TryVision 3.2.1 beta Build 2 . Эта программа анализирует видеопоток.

import os

os.environ [«CUDA_DEVICE_ORDER»] = «PCI_BUS_ID»

os.environ [«CUDA_VISIBLE_DEVICES»] = ""

Рис. 2 Подключение операционной системы и центрального процессора как устройства видеообработки (из-за отсутствия GPU в моем ПК)

print(«TryVision 3.2.1 beta Build 2")

from imageai.Detection import VideoObjectDetection

execution_path = os.getcwd()

detector = VideoObjectDetection()

detector.setModelTypeAsYOLOv3()

detector.setModelPath(os.path.join(execution_path, «yolo.h5"))

detector.loadModel()

Рис. 3 Импорт методов из библиотек для запуска ядра нейросети, создание рабочих классов, подключение ядра нейросети YOLOv3

video_path = detector.detectObjectsFromVideo(input_file_path=os.path.join(execution_path, «test0.mp4"),

output_file_path=os.path.join(execution_path, «test0_detected»)

, frames_per_second=20, log_progress=True)

print(video_path)

print(«Successfully!")

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

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

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

Литература:

  1. Вьюгин В. «Математические основы машинного обучения и прогнозирования», М.: [2013] — 390 с. ISBN: 978–5-4439–2014–6, Издательство «МЦНМО».
  2. Бастиан Ш. «Крупномасштабное машинное обучение вместе с Python», М.: [2017] — 360 с. ISBN: 978–5-97060–506–6, Издательство «ДМК Пресс»
  3. Джулли А, Пал C. «Библиотека Keras — инструмент глубокого обучения», М.: [2018] — 296 с. ISBN: 978–5-97060–573–8, Издательство «ДМК Пресс»
  4. StackOverflow.com // всемирный форум разработчиков и программистов https://stackoverflow.com/
Основные термины (генерируются автоматически): CNN, машинное обучение, нейронная сеть, открытый исходный код, компьютерное зрение, GPU, RGB, изображение, максимальное значение пикселей, часть изображения.


Похожие статьи

Анализ технологии создания систем классификации компьютерного зрения в медицине

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

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

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

Формализация требований для средств разработки и обучения нейронных сетей

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

Обзор библиотек обучения нейронных сетей на языке Python

В статье даётся обзор самых популярных библиотек машинного обучения языка Python.

Алгоритмы распознавания объектов

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

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

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

Машинное обучение и язык программирования Python

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

Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации

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

Искусственные нейронные сети. Нейросетевые технологии

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

Прогнозирование методом машинного обучения

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

Похожие статьи

Анализ технологии создания систем классификации компьютерного зрения в медицине

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

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

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

Формализация требований для средств разработки и обучения нейронных сетей

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

Обзор библиотек обучения нейронных сетей на языке Python

В статье даётся обзор самых популярных библиотек машинного обучения языка Python.

Алгоритмы распознавания объектов

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

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

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

Машинное обучение и язык программирования Python

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

Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации

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

Искусственные нейронные сети. Нейросетевые технологии

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

Прогнозирование методом машинного обучения

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

Задать вопрос