Young Researchers Proceedings
Total Page:16
File Type:pdf, Size:1020Kb
97 Dedicated to the 97 Anniversary of the National Leader of Azerbaijan, Heydar Aliyev IV INTERNATIONAL SCIENTIFIC CONFERENCE OF YOUNG RESEARCHERS PROCEEDINGS SECTION II BAKU ENGINEERING UNIVERSITY, 2020 Baku/AZERBAIJAN SECTION II ENGINEERING SCIENCES Baku Engineering University 1 Baki/Azerbaijan COMPUTER ENGINEERING Baku Engineering University 2 Baki/Azerbaijan EDGE EDICTION (KƏNARLARIN AŞKARLANMASI) ÜSULU ƏLİZADƏ ŞƏBNƏM Milli Aviasiya Akademiyası Fizika texnologiya/Kompüter mühəndisliyi [email protected] BAKI, AZƏRBAYCAN XÜLASƏ OpenCV və ya Açıq Mənbə Kompüter Vision kitabxanası Intel-də bir tədqiqat layihəsi olaraq başladı. Hal-hazırda funksiyalarının sayına görə ən böyük kompüter görmə kitabxanasıdır. Kənarların aşkarlanması (Edge Detection) - Kənarlar, görüntünün parlaqlığının kəskin şəkildə dəyişdiyi və ya kəsilməsinin olduğu bir görüntüdəki nöqtələrdir. AÇAR SÖZLƏR: Open CV, Edge Detection, hamarlaşma, Gauss filtrlənməsi, dərinlikdə kəsilmələr, səth yönəlməsində fasiləsizliklər GİRİŞ OpenCV-də 2500-dən çox alqoritm tətbiq olunur! Ticarət və akademik məqsədlər üçün sərbəstdir. Və sevinc bununla bitmir! Kitabxanada Python, Java və C ++ daxil olmaqla bir çox dildə interfeys mövcuddur. İlk OpenCV versiyası 1.0, 2006-cı ildə yayımlandı və o vaxtdan bəri OpenCV cəmiyyəti imkanlarını və gücünü artırdı. İndi isə diqqətimizi bu məqalədəki fikrə - OpenCV-nin təklif etdiyi çoxsaylı yeniliklərdən olan Kənarların aşkarlanması (Edge Detection) texnologiyasına yönəldək. Məlumat yenilənməsi baxımından OpenCV-yə baxacağıq və kompüter görmə modellərini inkişaf etdirmək və anlamaq vəzifəsini asanlaşdıran Kənarların aşkarlanması (Edge Detection) funksiyasını tətbiq edək. Kənarların aşkarlanması (Edge Detection) - Kənarlar, görüntünün parlaqlığının kəskin şəkildə dəyişdiyi və ya kəsilməsinin olduğu bir görüntüdəki nöqtələrdir. Bu cür kəsilmələr ümumiyyətlə aşağıdakılara uyğundur: 1. - Dərinlikdə kəsilmələr 2. - Səth yönəlməsində fasiləsizliklər 3. - Maddi xüsusiyyətlərdəki dəyişikliklər 4. - Səhnə işıqlandırmasında dəyişikliklər Kənarlar görünüşdəki obyektlərin təsnifatı və lokalizasiya kimi fərqli tətbiqlər üçün istifadə edilə bilən bir görüntünün çox faydalı xüsusiyyətləridir. Hətta “deep learning” modellərində, görüntüdə olan obyektlər haqqında məlumat çıxarmaq üçün kənar xüsusiyyətlərini hesablayırlar. Kənarlar ümumilikdə götürəndə konturlardan fərqlidir, çünki obyektlərlə əlaqəli deyil, əksinə bir görüntünün piksel dəyərlərindəki dəyişiklikləri bildirirlər. Kənarların aşkarlanması görüntü seqmenti üçün və hətta görüntünün böyüdülməsi üçün də istifadə edilə bilər. TƏDQIQAT METODU Aşağıdakı “Edge Detection.py” modulunun yerine yetirilməsi üçün koda baxaq: #import the required libraries import numpy as np import cv2 import matplotlib.pyplot as plt %matplotlib inline #read the image image = cv2.imread('coins.jpg') #calculate the edges using Canny edge algorithm edges = cv2.Canny(image,100,200) Baku Engineering University 3 Baki/Azerbaijan #plot the edges plt.imshow(edges) Bu kodun hər hansı bir şəkilə tətbiqi belə nəticə verə bilər : NƏTICƏ İdeal vəziyyətdə, bir kənar detektoru bir görüntüyə tətbiq etmənin nəticəsi, obyektlərin sərhədlərini, səth nişanlarının hüdudlarını, habelə səth istiqamətindəki pozulmalara uyğun əyriləri göstərən bir-birinə bağlı əyrilər səbəb ola bilər. Beləliklə, görüntüyə bir kənar aşkarlama alqoritminin tətbiqi, emal ediləcək məlumatların həcmini əhəmiyyətli dərəcədə azalda bilər və buna görə də görüntünün vacib struktur xüsusiyyətlərini qoruyaraq az əhəmiyyətsiz hesab edilə bilən məlumatları süzgəcdən keçirə bilər. Kənar aşkar etmə addımı uğurlu olarsa, orijinal görüntüdəki məlumat məzmununu şərh etmək üçün sonrakı vəzifə əhəmiyyətli dərəcədə sadələşdirilə bilər. Bununla birlikdə, mürəkkəbliyin real həyat şəkillərindən belə ideal kənarları əldə etmək həmişə mümkün olmur. Qeyri-mənasız görüntülərdən çıxarılan kənarlar tez-tez parçalanma ilə mane olur, yəni kənar əyrilərin bağlanmaması, kənar seqmentlərin olmaması, həmçinin görüntüdə maraqlı hadisələrə uyğun olmayan saxta kənarların olması və bununla da görüntü məlumatlarını şərh etmək sonrakı vəzifəni çətinləşdirir. Kənarların aşkarlanması görüntülərin işlənməsi, görüntü təhlili, görüntü nümunələrinin tanınması və kompüterdə görmə texnikasının əsas addımlarından biridir. Belə ki, üç ölçülü bir mənzərənin iki ölçülü görüntüsündən çıxarılan kənarlar ya baxış baxımından asılı və ya müstəqil olaraq təsnif edilə bilər. Baxış nöqtəsi asılı olaraq kənara baxış nöqtəsi dəyişdikcə dəyişə bilər və adətən bir-birinə mane olan obyektlər kimi mənzərənin həndəsəsini əks etdirir. Məsələn, qırmızı rəngli bir blok və sarı bir blok arasındakı s bir fonda fərqli rəngdə az sayda piksel ola bilər. Bir xətt üçün ümumiyyətlə xəttin hər tərəfində bir kənar ola bilər. Müəyyən ədəbiyyatlarda ideal addım kənarlarının aşkarlanmasını nəzərdən keçirilsə də, təbii görüntülərdən əldə edilən kənarlar ümumiyyətlə ideal addım kənarlarında deyil. Bunun əvəzinə onlar adətən aşağıdakı təsirlərdən bir və ya bir neçəsindən təsirlənirlər: - Son dərin bir sahə və son nöqtənin yayılması funksiyası nəticəsində yaranan fokus qarışıqlığı. - Sıfır olmayan radiusun işıq mənbələri tərəfindən yaradılan kölgələr nəticəsində yaranan penumbral qarışıqlıq. - Hamar bir obyektdə kölgə salmaq Bir sıra tədqiqatçılar praktik tətbiqlərdə kənar qarışıqlığın təsirini modelləşdirmək üçün ideal addım kənarı modelinin ən sadə uzantısı kimi Gaussia-nın hamarlanmış addımlar funksiyasından istifadə etdirlə r. Kənarın aşkarlanması üçün bir çox metod var, lakin əksəriyyəti axtarışa əsaslanan və sıfır keçid əsaslı iki kateqoriyaya qruplaşdırıla bilər. Baku Engineering University 4 Baki/Azerbaijan 1. Axtarışa əsaslanan metodlar kənar ölçülərini əvvəlcə ölçmə gücünü ölçməklə müəyyənləşdirir, adətən gradient böyüklüyü kimi ilk olaraq birinci təttib törəmə kimi ifadə edir və sonra maksimumların tapılmasından istifadə edərək qradiyentin maksimumunu axtarır. Kənar, ümumiyyətlə gradient istiqaməti təyin olunur. 2. Sıfır kəsişməyə əsaslanan metodlar kənarları tapmaq üçün görüntüdən hesablanmış ikinci dərəcəli törəməli ifadədə sıfır kəsişmələri, ümumiyyətlə Laplacianın sıfır keçidlərini və ya xətti olmayan bir diferensial ifadənin sıfır keçidlərini axtarır. Ümumiyyətlə kənarların aşkarlanmasına qədər əvvəlcədən işlənmiş bir addım olaraq, hamarlaşdırma mərhələsi, adətən Gaussian hamarlaşdırma əyrilərində istifadə edilirdi , demək olar ki, həmişə tətbiq olunurdu (həmçinin yükün azaldılmasına baxılırdı). Praktik məsələlərin həlli zamanı kənarın aşkarlanması üçün ilk addım kənarların incə ldilməsidir. Bu bir görüntünün kənarlarındakı istenmeyen uydurma nöqtələri çıxarmaq və sistemi sadələşdirməyə istifadə olunan bir texnikadır. Beləliklə hər hansı təsvir bu filteri keçəndən sonra (median, Gauss filtrindən və s. İstifadə edildikdə) kənarları aşkar etmək üçün kənar operator tətbiq edilir (yuxarıda təsvir olunan etaplarla) və kənarları müvafiq hamarlandıqdan sonra bu üsul tətbiq olunmuş sayılır. Bu, bütün arzuolunmaz nöqtələri aradan qaldırılırr və diqqətlə tətbiq olunarsa, bir piksel qalın kənar elementlərlə nəticələnir. Bu üsulun aşağıdakı üstünlükləri var - Kəskin və nazik kənarlar obyektin tanınmasında daha çox səmərəliliyə səbəb olur. - Hough çevirmələri xətləri və elipsləri aşkar etmək üçün istifadə olunursa, inceltmə daha yaxşı nəticələr verə bilər. - Kənar bir bölgənin sərhədi olarsa, incəeltmə perimetr kimi görüntü parametrlərini asanlıqla verə bilər. Bunu etmək üçün istifadə olunan bir çox məşhur alqoritm var, bunlardan biri aşağıda təsvir edilmişdir: - 8, 6 və ya 4 kimi bir əlaqə növü seçin - 8 bağlantıya üstünlük verilir, burada müəyyən bir pikseli əhatə edən bütün dərhal piksellər nəzərə alınır. - Şimal, cənub, şərq və qərbdən nöqtələri çıxarın. Gauss filtrlənməsi də nəzərdən keçirilən pikseldən onların məsafəsinə əsaslanaraq qonşu piksellərə fərqli çəkilər verən görüntü qaranlığı üçün istifadə olunur. Təsvirin süzülməsi üçün nüvələrdən istifadə edirik. Nüvələrdən 3 x 3, 5 x 5 və s. Kimi müxtəlif formalı ədədlərin matrisalarıdır. Görünüşün bir hissəsi ilə nöqtə dəyərini hesablamaq üçün bir nuvədən istifadə olunur. Bir pikselin yeni dəyərini hesablayarkən, kernel mərkəzi piksel ilə üst-üstə düşür. Qonşu piksel dəyərləri kerneldəki uyğun dəyərlərlə vurulur. Hesablanmış dəyər, nüvənin ortası ilə üst-üstə düşən pikselə təyin olunur. Yayımlanmış kənarları müəyyənləşdirmə üsulları əsasən tətbiq olunan hamarlaşdırıcı filtrlərin növləri və kənar güc ölçmələrinin hesablanması üsulları ilə fərqlənir. Bir çox kənar təyin etmə üsulu əsasən görüntü gradientlərinin hesablanmasına tətbiq edilir. Buna görə də , x və y istiqamətlərində qradiyent qiymətləndirmələrini hesablanmasına tətbiq olunan filtr növləri ilə də fərqlənir. Baku Engineering University 5 Baki/Azerbaijan Bu modelin Pythonda yazılmış (Gaussian_Filtering_Image.py ) modulu isə belə olar : #importing the required libraries import numpy as np import cv2 import matplotlib.pyplot as plt %matplotlib inline image = cv2.imread('index.png') #using the averaging kernel for image smoothening averaging_kernel = np.ones((3,3),np.float32)/9 filtered_image = cv2.filter2D(image,-1,kernel) plt.imshow(dst) #get a one dimensional Gaussian Kernel gaussian_kernel_x = cv2.getGaussianKernel(5,1) gaussian_kernel_y = cv2.getGaussianKernel(5,1) #converting to two dimensional kernel using matrix multiplication gaussian_kernel = gaussian_kernel_x * gaussian_kernel_y.T #you can also use cv2.GaussianBLurring(image,(shape of kernel),standard deviation) instead of cv2.filter2D filtered_image = cv2.filter2D(image,-1,gaussian_kernel)