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


РАЗРАБОТКА ПРОГРАММЫ РАСПОЗНОВАНИЯ ГЕОМЕТРИЧЕСКИХ ФИГУР



Download 1,96 Mb.
bet15/19
Sana20.07.2022
Hajmi1,96 Mb.
#828782
1   ...   11   12   13   14   15   16   17   18   19
Bog'liq
m th n.a.vlasova 2021

РАЗРАБОТКА ПРОГРАММЫ РАСПОЗНОВАНИЯ ГЕОМЕТРИЧЕСКИХ ФИГУР


Предлагаемый метод решения поставленной задачи по распознаванию геометрических образов и подсчета количества трубной продукции состоит из трех частей. Первая част, включает в себя предварительную подготовку изображения к непосредственной обработке. В последующих двух этапах применяется ряд методов обработки изображений из библиотеки OpenCV.
Преобразование окружности Хафа работает примерно так же, как и преобразование линии Хафа, описанное в предыдущей главе.
В случае определения линии, линия определялась двумя параметрами (r,θ). В случае с окружностью для определения окружности нам нужны три параметра:
(4)
где (xcenter,ycenter) определяет положение центра (зеленая точка), а r - радиус, что позволяет нам полностью определить круг, как это видно ниже на рисунке 37.

Рисунок 37 – Применение метода «Hough Circle Transform», библиотека OpenCV42
Преобразование Хафа — это метод обнаружения прямых и кривых линий на полутоновых или цветных изображениях. Метод позволяет указать параметры семейства кривых и обеспечивает поиск на изображении множества кривых заданного семейства. Мы рассмотрим его применение для поиска на изображении прямолинейных отрезков и дуг окружностей. На сегодняшний день применение преобразования Хафа для поиска окружностей является популярным, так как метод является эффективным и позволяет находить на изображении необходимую кривую (или окружность).
Точки окружности можно представить формулой:
(5)
где (a, b) – координаты центра окружности, а R – ее радиус. Для однозначного задания окружности необходимо знать уже три параметра координаты ее центра и радиус. Это приводит к увеличению пространства Хафа на целое измерение. Задача упрощается, если радиус искомых окружностей заранее известен. В таком случае необходимо находить только координаты центров окружностей, и задача снова становится двумерной. Очевидно, что набор центров всех возможных окружностей радиуса R, проходящих через каждую конкретную точку, образует окружность радиуса R вокруг этой точки. Таким образом, геометрическое место точек, которые могли бы быть центрами окружности данного размера, проходящей через эту точку, представляет собой окружность такого же размера с центром в голосующей точке (рисунок 38).

Рисунок 38 – Распознавание окружности методом Хафа43


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


На рисунке 39 представлен код с применением метода преобразования Хафа для поиска окружностей.

Рисунок 39 – применение cv.HoughCircles()44


Используются две библиотеки – NumPy и OpenCV.


Прежде, чем применять метод Хафа, мы используем размытие границ по Гауссу (GaussianBlur). Размытие по Гауссу названо в честь математика Карла Фридриха Гаусса (Carl Friedrich Gauss). Это применение математической функции для размытия изображения. Размытие по Гауссу — это низкочастотный фильтр, который сглаживает неравномерные значения пикселей изображения, обрезая самые высокие значения и смягчая изображение.
Сам принцип нахождения кругов делится на этапы:

  • используется детектор границ Кенни для нахождения границ на изображении;

  • для ненулевых точек высчитывается градиент (через вычисление первой производной по X и Y через cvSobel());

  • определяются центры кругов;

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

Алгоритм работы детектор границ Канни можно разбить на следующие пункты:

  1. Сглаживание. Размытие изображения для удаления шума.

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

  3. Подавление не-максимумов. Только локальные максимумы отмечаются как границы.

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

  5. Трассировка области неоднозначности. Итоговые границы определяются путём подавления всех краёв, несвязанных с определенными (сильными) границами.

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

Рисунок 4014 – Исходное изображение45


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

Рисунок 41 – Изображение после обработки46
После применения преобразований Хафа мы получаем изображение с распознанными окружностями (рисунок 42).
Рисунок 42 – Изображение с подсчитанным количеством труб47 Часть из применяемого кода представлена ниже:
circles_guassian = cv2.HoughCircles(img_gaussian, cv2.cv2.HOUGH_GRADIENT, 0.9, 120, param1=0.9, param2=30,
minRadius=60, maxRadius=90)
circles_rounded_guassian = np.uint16(np.around(circles_guassian))





46 Составлено автором по: [30,31,32]
Но так как не все окружности были определены, а именно полуокружность справа разработанный алгоритм не увидел, то были внесены некоторые доработки в коде.
Для определения полуокружности применяем другой подход. Представленный исходник изображения с полуокружностью расположен на рисунке 43.

Рисунок 43 – Исходное изображение48
После преобразований алгоритм увидел несколько окружностей (рисунок
44).





Рисунок 44 – Изображение после преобразований49


Далее представлено изображение, на котором алгоритм «достроил» увиденные окружности (рисунок 45).

Рисунок 45 – Полученное изображение50

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





49 Составлено автором по: [30,31,32]



Рисунок 46 – Полученное изображение с применением доработанного алгоритма51





    1. Download 1,96 Mb.

      Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   19




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish