АВТОМАТИЗИРОВАННЫЙ ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ОБРАБОТКИ И АНАЛИЗА ИЗОБРАЖЕНИЙ

IV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

АВТОМАТИЗИРОВАННЫЙ ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ОБРАБОТКИ И АНАЛИЗА ИЗОБРАЖЕНИЙ

Штундер А.А. 1
1Государственное учреждение образования "Лицей №1 г.Минска"
Гаевская В.А. 1
1ГУО "Лицей №1 г.Минска"
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
ВВЕДЕНИЕ

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

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

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

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

Примерами применения компьютерного зрения могут быть:

  1. системы управления процессами (промышленные роботы);

  2. системы видеонаблюдения;

  3. системы организации информации (например, для индексации баз данных изображений);

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

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

АКТУАЛЬНОСТЬ ТЕМЫ ПРОЕКТА

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

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

Рис.1.

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

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

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

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

Рис.2.

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

Машинное обучение даёт возможность:

  1. анализировать изображения (определять тип изображений и цветовые схемы на фотографиях);

  2. считывать текст на изображениях;

  3. анализировать видеоизображения практически в реальном времени;

  4. создавать эскизы (применяет их с вашими условиями размера, формы и стиля).

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

Почему я выбрал именно кольца? Всё просто: при изучении по физике темы “Оптика” меня заинтересовали опыты Исаака Ньютона с интерференцией света. В них он получал кольца, которые позднее и были названы его именем. Кольца Ньютона – это концентрические чередующиеся тёмные и светлые окружности, образующиеся при отражении света от поверхностей воздушной прослойки между плоской поверхностью стеклянной пластины и соприкасающейся с ней выпуклой линзой малой кривизны. Толщина воздушной прослойки постепенно увеличивается от центра к краям (Рис.3, Рис.4, Рис.5)

Рис.3.

Рис.4. Область интерференции при наблюдении колец Ньютона.

М-М´ – падающая волна; 1-1´ и 2-2´ – первая и вторая отраженные волны соответственно; Фронт 1 и Фронт 2 – фронты первой и второй отраженных волн (соприкасаются на оси симметрии); R – радиус кривизны линзы; заштрихованная область – область интерференции.

Рис.5. Кольца Ньютона.

На Рис.5 видно светлое пятно в центре. Если бы мы проводили этот опыт в отражённом свете, то центр получился бы тёмным. Таким образом, если мы знаем радиус кольца, то появляется возможность найти длину световой волны, радиуса кривизны линзы, расстояние от источника света и т.д.

ЦЕЛИ И ЗАДАЧИ ПРОЕКТА

Цель проекта «Автоматизированный программно-аппаратный комплекс ввода, обработки и анализа изображений»:

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

Задачи, которые надо было решить для достижения этой цели:

  • выбрать язык программирования;

  • найти подходящие линзы для получения колец Ньютона;

  • выбор и установка дополнительных библиотек;

  • подобрать камеру с хорошим разрешением;

  • настроить камеру;

  • придумать различные алгоритмы;

  • написать программу для камеры, реализующую задуманное;

  • протестировать программу на разных световых волнах.

Объект исследования: возможности компьютерного зрения.

Предмет исследования: изображения колец Ньютона.

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ПРОГРАММЫ И ОПЫТНОЙ УСТАНОВКИ

Программа написана на языке Python с использованием библиотеки OpenCV в операционной системе Ubuntu 16.04 lts. Версия библиотеки OpenCV – 3.1.0. Размер программы – 12 МБ.

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

Программа взаимодействует с веб-камерой через USB (Рис.6)

Рис.6

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

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

Схема установки для получения колец Ньютона изображена на Рис.7.

Рис.7.

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

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

АЛГОРИТМ РАБОТЫ ПРОГРАММЫ И УСТАНОВКИ

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

Рис. 8. Измерение колец Ньютона в серых тонах

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

После проделанных действий в окне терминала появится ответ – длина волны.

СОЗДАНИЕ ПРОГРАММЫ И ОПЫТНОЙ УСТАНОВКИ

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

Для написания программы потребовалось изучить OpenCV-Python библиотеку, которая привязана к языку программирования Python, т.к. он в сравнении с другими языками более читабельный и простой в использовании.

Вначале потребовалось установить библиотеку OpenCV (Рис.9):

Рис.9

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

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

ПРОЦЕСС РАЗРАБОТКИ ПРОГРАММЫ

Программа состоит из трёх блоков.

В первом блоке (Рис.10) идёт подключение необходимых модулей:

Рис.10

Второй блок (Рис.11) – функции, которые работают с изображением и анализируют его.

Рис.11

Третий блок (Рис.12) – работа со значениями, подстановка их в формулу:

Рис. 12

ПЕРСПЕКТИВНЫЕ ПЛАНЫ

Для более качественной работы программы и её востребованности на уроках физики необходимо сделать следующее:

  • установка программы на одноплатный компьютер размером в банковскую карту (например, Raspberry PI);

  • создание качественного интерфейса для упрощения использования программы;

  • установка WI-FI антенны для возможности обмена данными между учителем и учащимися;

  • установка небольшого экрана для вывода результата;

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

  • сделать устройство автоматическим.

Для более широкого использования возможностей компьютерного зрения планируется:

1) добавить функции нахождения неровностей при анализе округлых форм предметов;

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

ЗАКЛЮЧЕНИЕ

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

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

ЛИТЕРАТУРА И ИНТЕРНЕТ-ИСТОЧНИКИ
  1. [Электронный ресурс] Википедия – свободная энциклопедия. Режим доступа: https://ru.wikipedia.org/wiki/Raspberry_Pi

  2. OpenCV учебник:

https://docs.opencv.org/master/d9/df8/tutorial_root.html

  1. Adrian Kaehler, Dr. Gary Rost Bradski, Learning OpenCV – 2008.-556 c.

  2. Сивухин Д. В. Оптика: Учеб. пособие. – 2-е изд., испр. – М.: Наука. Гл. ред. физ.-мат. лит., 1985. – 752 с. , ил. – (Общ. курс физики).

Просмотров работы: 514