Распознавание образов — различия между версиями
(Новая страница: «ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОН…») |
|||
Строка 24: | Строка 24: | ||
• Введение | • Введение | ||
+ | |||
• Основные методы распознавания образов | • Основные методы распознавания образов | ||
+ | |||
• Цели и задачи проведенной работы | • Цели и задачи проведенной работы | ||
+ | |||
• Проблемы проекта | • Проблемы проекта | ||
+ | |||
• Программа 1 | • Программа 1 | ||
+ | |||
• Программа 2 | • Программа 2 | ||
+ | |||
• Заключение | • Заключение | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Строка 96: | Строка 88: | ||
9) Подсчет пикселей соответствующих площади пятна | 9) Подсчет пикселей соответствующих площади пятна | ||
10) Подсчет числа клеток | 10) Подсчет числа клеток | ||
+ | |||
+ | '''Пример работы программы''' | ||
+ | <gallery> | ||
+ | File:Sq.png| Пример 1 | ||
+ | </gallery> | ||
+ | |||
'''ПРОГРАММА 2''' | '''ПРОГРАММА 2''' |
Версия 11:42, 17 июня 2016
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ПЕТРА ВЕЛИКОГО»
Институт прикладной математики и механики Кафедра теоретической механики
КУРСОВОЙ ПРОЕКТ по учебной дисциплине «Программирование» НА ТЕМУ: РАСПОЗНАВАНИЕ ОБЪЕКТОВ
Выполнили: студенты 1 курса дневного отделения Иванова Яна Викторовна, Демченко Артем Игоревич,Уманский Александр Олегович, обучающиеся по профессиональной образовательной программе подготовки бакалавров «01.03.03 – Механика и математическое моделирование» Научный руководитель: Панченко Артем Юрьевич
Санкт-Петербург 2016
ОГЛАВЛЕНИЕ
• Введение
• Основные методы распознавания образов
• Цели и задачи проведенной работы
• Проблемы проекта
• Программа 1
• Программа 2
• Заключение
ВВЕДЕНИЕ Актуальность темы исследования Теория распознавания образов – раздел информатики и смежных дисциплин, который включает в себя основы и методы идентификации и классификации предметов, явлений, процессов, сигналов и других объектов, подлежащих исследованиям. Они характеризуются некоторым набором свойств и признаков, по которым их можно отличать друг от друга. Эти задачи в жизни решаются довольно часто. Самой простой и наглядной задачей является распознавание сигнала светофора при переходе улицы. Распознавание цвета загоревшейся лампы позволяет принять правильное решение о возможности перехода улицы в данный момент Необходимость распознавания образов возникает в самых различных областях: от военного дела и систем безопасности до оцифровки сигналов. Проблема распознавания образов приобретает огромное значение именно в наше время, в условиях информационных перегрузок. Распознавание образов широко используется в информационных системах. Широко известны задачи о распознавании фальшивых монет по фотографии, о поиске определенных людей в толпе по видеозаписям, о распознавании лиц людей и еще многие подобные задачи. Неслучайно проблема распознавания образов оказалась в поле междисциплинарных исследований. В том числе, распознавание образов легко в основу создания искусственного интеллекта, а создание технических систем и способов распознавания образа привлекает к себе огромное внимание. Распознавание образов – актуальная тема и одновременно огромная проблема современной науки. Никто пока не решил её в общем случае, в лучшем случае это созданные роботы, которые могут за несколько часов пройти комнату, которую обычный человек проходит за полминуты. Нет универсальных алгоритмов решения, но существует огромный пласт программного кода, который решает частные случаи этой задачи. Каждый ищет свой подход: нейронные сети, фильтрация изображения, работа с контрастами и переходами, применение различных масок и многое другое. В нашей задаче мы использовали несколько алгоритмов и пробовали пойти по разным дорогам: первым стал метод подсчета по площадям, а вторым использовалась совокупность методов цветообработки.
Нам были предложены изображения, полученные с помощью электронного микроскопа институтом биологии. Это были 3 набора изображений: 1-й набор - это исходные изображения, 2-й набор – это изображения с красным красителем, 3-й набор – это изображения 2-го набора с наложенным на них фильтром, который вместо красных областей должен был оставлять только белый, а всё остальное стирать, но большую часть изображения он просто стирал, поэтому он сразу был признан как непригодный к работе.
Для своей работы мы выбрали среду Matlab, так как в ней существует множество встроенных приложений для обработки изображений, множество готовых методов и фильтров для обработки, а так же существует хорошие описание и справка, подходящие для начинающих. В частности нашей задачей было распознавание клеток по их фотографиям. Программистами были предприняты попытки решения этой задачи в общем случае, но до сих пор не существует оптимального алгоритма решения.
Цели работы
• Изготовить продукт, способный посчитать количество живых клеток на изображениях, полученных с помощью электронного микроскопа.
• Познакомиться с методами обработки изображений и научиться их использовать.
Проблемы решённые при работе
• Неравномерность изображения, из-за расположения источников света при проведении эксперимента, мы получили изображения с различной степенью яркости в разных частях изображения.
• Низкое качество изображения. Так как размеры одной клетки относительно небольшие, а качество изображения было довольно низким, многие методы стали нерабочими в данной задаче.
• Биологический аспект. Множество спорных моментов по тому считать эту клетку живой или мёртвой в сочетании с проблемой неравномерности изображений тоже стало серьёзной проблемой для данной работы.
• Различные инородные объекты похожие на клетки.
• Сильные различия между размерами клеток и спорные моменты при делении клеток.
ПРОГРАММА 1
Было применено два метода обработки заданных изображений. Первым методом был испробован метод подсчета по площадям. В исходных изображениях существуют скопления клеток по три и более, которые составляют основную проблему реализации задачи. На изображениях клетки сходятся по своим границам, из-за чего невозможно разделить их четким образом. Если пренебречь границами клеток и подсчитывать площади этих скоплений, то эта проблема устранится сама собой. В момент смерти клетка выделяет определенное вещество, которое на фотографиях окрашивается в красный цвет. В скоплении клеток каждая из них дает свой определенный вклад в пятно красного цвета, из чего мы можем приблизительно посчитать сколько клеток на изображении. Данная программа была направлена на то, чтобы посчитать количество красителя в скоплении и поделить на количество красителя, выделяемого одной клеткой. В результате работы была создана маска, которая из всего изображения выделяла только краситель. Цвет его выбирается из определённого диапазона, который подбирался нами вручную на основе RGB спектра. Дальше проводились статистические исследования для подбора количества пикселей, которые бы наилучшим образом характеризовали краситель, выделенный одной мертвой клеткой. Количество пикселей, соответствующее одной клетке, подбиралось вручную. Основной алгоритм: 1) Считывание изображения из файла 2) Обрезка исходного изображения 3) Разбиение изображения на три цвета 4) Подбор пороговых значений для наилучшей фильтрации 5) Вывод изображения 6)Применение медианного фильтра 7) Сглаживание изображения, заполнение черных пустых пятен внутри цветового пятна. 8) Бинаризация изображения 9) Подсчет пикселей соответствующих площади пятна 10) Подсчет числа клеток
Пример работы программы
ПРОГРАММА 2
При написании второй программы мы поставили перед собой задачу разделения всех клеток на непересекающиеся замкнутые контуры (в идеале каждый контур должен был соответствовать 1 клетке). Первой стала проблема шумов и неровностей фона, к сожалению, не удалось справится с ней с помощью обычных фильтров, была найдена библиотека (BM3D), содержащая в себе функцию фильтрации, основанную на шумоподавлении (видимо "шумы"- неточности в изображении) путем детализации изображения при преобразовании. Усиление детализации достигается за счет группировки схожих фрагментов 2D изображения (например, блоков) в 3D- массивы данных, которые мы называем "группы". Так же были использованы фильтр Вейнера и фильтр Гаусса.
После фильтрации исходного изображения была использована функция multitresh, в результате найден коэффициент для бинаризации изображения. В ходе практических испытаний мы выявили, что нельзя использовать её для всех изображений, так как она определяет уровень, суммируя уровни цвета на всём изображении, в результате там, где клеток очень много коэффициент определяется не верно и большая часть клеток исчезает при бинаризации. Поэтому был определён конкретный коэффициент, который используется при дальнейших экспериментах.
Основной Алгоритм:
1) Считываем изображение
2) Предварительная фильтрация
3) Фильтрация с помощью BM3D и фильтра Вейнера
4) Определение уровня бинаризации
5) Бинаризация изображения
6) Морфологические преобразования
7) Вычитание границ
8) Подсчёт количества замкнутых контуров
Фильтр Гаусса меняет каждую точку текущего слоя или выделения, делая её значение равным среднему значению всех точек в определённом радиусе от рассматриваемой точки. Значение этого радиуса можно изменить. Чем больше радиус, тем сильнее будет размыто изображение.
Медианный фильтр — один из видов цифровых фильтров, широко используемый в цифровой обработке сигналов и изображений для уменьшения уровня шума. Медианный фильтр является нелинейным КИХ-фильтром.
Значения отсчётов внутри окна фильтра сортируются в порядке возрастания (убывания); и значение, находящееся в середине упорядоченного списка, поступает на выход фильтра. В случае четного числа отсчетов в окне выходное значение фильтра равно среднему значению двух отсчетов в середине упорядоченного списка. Окно перемещается вдоль фильтруемого сигнала и вычисления повторяются.
Вейнеровский фильтр основан на статистических данных из локальной окрестности каждого пикселя. Соотносит изображение оригинальное и обработанное с помощью фильтра Гаусса, в результате мы получаем сглаженное изображение с плавными переходами.
Заключение
В ходе работы были получены следующие результаты:
1.Разработанна программа (Программа 1) выполняющая подсчет мёртвых клеток с помощью метода подсчета по площадям. 2.Разработана программа (Программа 2) выполняющая подсчет живых клеток с помощью разделения изображения на непересекающиеся контуры и дальнейшую их обработку.
Список литературы 1) Р. Гонсалес, Р. Вудс “Цифровая обработка изображений”, Москва: Техносфера, 2005. – 1072 с. 2) https://habrahabr.ru/post/151157/ 3) http://www.mathworks.com/help/images/ref/medfilt2.html 4) http://cyberleninka.ru/article/n/metody-povysheniya-kontrastnosti-rastrovyh-izobrazheniy-dlya-sistem-tsifrovoy-obrabotki-videoinformatsii 5) http://matlab.exponenta.ru/imageprocess/book2/29.php 6) http://masters.donntu.org/2009/kita/pogorelaya/library/article6.htm