Soddalashtirilgan Gabor Veyvletga asoslangan usuliyordamida yo‘l harakati belgilarini aniqlash


-§. Konturli tahlil usullaridan foydalangan holda yo‘l belgilari shakllarini aniqlash


Download 1.12 Mb.
bet2/2
Sana18.06.2023
Hajmi1.12 Mb.
#1582850
1   2
Bog'liq
dastlabki natija

3.2-§. Konturli tahlil usullaridan foydalangan holda yo‘l belgilari shakllarini aniqlash.
Konturlarni bir xil rang yoki intensivlikka ega bo‘lgan barcha doimiy nuqtalarni (chegara bo‘ylab) birlashtiruvchi egri chiziq sifatida tushuntirish mumkin. Konturlar shaklni tahlil qilish, obyektni aniqlash va tanish uchun foydali vosita bo‘lib, biz undan qanday qilib tasvirdagi geometrik shakllarni topishimiz mumkinligini bilib olamiz.
Yo‘l belgilarini tan olishning bir necha xil turlari mavjud: tezlikni cheklash, kirmaslik, svetofor, chapga yoki o‘ngga burilish, bolalar kesib o‘tish, og‘ir transport vositalarini o‘tmaslik va hokazo. Yo‘l belgilari tasnifi - bu yo‘l belgisi qaysi sinfga tegishli ekanligini aniqlash jarayoni.
Yo‘l belgilarini aniqlash - Python loyihasi haqida
Ushbu Python loyihasi misolida biz tasvirdagi yo‘l belgilarini turli toifalarga ajrata oladigan chuqur neyron tarmoq modelini quramiz. Ushbu model yordamida biz barcha avtonom transport vositalari uchun juda muhim vazifa bo‘lgan yo‘l belgilarini o‘qiy olamiz va tushuna olamiz.
Biz berilgan ko‘pburchakning shaklini aniqlashda foydalanadigan usul, aniqlangan shaklni uning tomonlari asosida tasniflashga asoslangan bo‘ladi. Masalan, aniqlangan shaklning 3 ta tomoni bo‘lsa, u holda uni uchburchak deb hisoblash mumkin, agar shaklning 4 ta tomoni bo‘lsa, u holda uni kvadrat yoki to‘rtburchak deb tasniflash mumkin va hokazo.
Ushbu ishda kiruvchi tasvirni nusxasini yaratish muhim qadamdir. Biz buni qilishimiz kerak, chunki bu usul jarayonida asl tasvir o‘zgartirilishi mumkin, shuning uchun keyinchalik undan foydalanishni rejalashtirmoqchi bo‘lsak, ushbu tasvirning klonini yaratishimiz kerak. Keyinchalik biz ushbu klondan konturlarni chizishda ishlatamiz.
Keyingi qadam GaussianBlur filtridan foydalanib tasvirni xiralashtirish va uni kulrang tasvirga aylantirish kerak. Biz ushbu kulrang tasvirdan binar tasvirni olish uchun foydalanamiz.
Yuqorida aytib o‘tganimizdek, shakl konturlarini tahlil qilish va tushunish uchun biz binar tasvirni kirish sifatida ishlatamiz. Binar tasvirni yaratish uchun biz Canny Edge detektoridan foydalanamiz[2]. Canny filtri uchta parametrdan iborat. Birinchi parametr bizning kulrang tasvir, ikkinchi va uchinchi parametrlari minimum va maksimum qiymatlar. Bundan tashqari, biz chegaralarni yaxshilash uchun tasvir chegaralarini kengaytirishimiz kerak. Buning uchun biz morfologik ishlovni Dilated orqali beramiz (3.10-rasm).

3.10-rasm. Morfologik ishlov.
Ushbu usul uchta parametrni talab qiladi. Birinchisi klon tasvirdir. Ikkinchi parameter - konturlar orasidagi ierarxiyani aniqlashda ishlatiladi(3.11-rasm).


Kiruvchi tasvir

GaussianBlur filtri

Kulrang tasvir

Canny filtri

Morfologik ishlov berish

FindContours

i=1,FindContours

FindContour

Shaklni aniqlash

Saqlash

Tugatish

3.11-rasm. Taklif etilayotgan tizimning sxematik diagrammasi.


Ushbu iyerarxiyani yaxshiroq tushunish uchun ba’zi shakllar boshqa shakllar ichida joylashgan holatni tasavvur qilishimiz kerak. Bunday holatda biz tashqi shaklni ota-ona, ichki shaklni esa bola deb ataymiz . Konturlar orasidagi ierarxiya turini aniqlash uchun biz to‘rt xil bayroqni o‘tkazamiz.

  • RETR_LIST - U barcha konturlarni oladi, lekin har qanday ota-ona va bola munosabatlarini yaratmaydi (barchasi bir xil ierarxiya darajasiga tegishli);

  • RETR_EXTERNAL - U faqat tashqi bayroqlarni (ota-kontur) qaytaradi. Barcha bolalar konturlari orqada qoladi;

Uchinchi parametr konturni Approximation usuli. Ushbu parametr yordamida biz qancha kontur nuqtalarini saqlamoqchi ekanligimizni aniqlay olamiz. Agar parametrni CHAIN_APPROX_NONE ga o‘tkazsak, barcha kontur nuqtalari saqlanadi. Boshqa tomondan, CHAIN_APPROX_SIMPLE bo‘shliqni tejash uchun konturlarni siqish uchun parametr ishlatiladi[3].
Bizning konturimizni chiqarganimizdan so‘ng, qaysi birini qayta ishlashni xohlayotganimizni aniqlashimiz kerak. Shunday qilib, biz barcha konturlarning maydonini hisoblashimiz va ularni eng kattasidan eng kichigigacha saralashimiz kerak. Biz takrorlash operatoridan foydalanamiz va biz aniqlagan barcha konturlar bo‘ylab takrorlaymiz. Kontur maydonini aniqlaydigan eksperimental raqamni o‘rnatish muhimdir. Masalan, o‘lchamlari bilan kvadrat konturimiz bor deylik100 × 100 piksel. Ushbu kvadratning maydoni 10.000 pikselni tashkil qiladi.
Konturlar chizilganidan so‘ng, biz kontur shaklini aniqlaydigan yana bir funktsiyani yaratamiz . Keling, buni qanday qilishimiz mumkinligini ko‘rib chiqaylik. Yuqorida aytib o‘tganimizdek, biz foydalanadigan kontur nuqtalarining foiziga yaqinlashadi(approxPolyDP and arcLength). Shunday qilib, ushbu songa asoslanib, biz ko‘pburchak egri chizig‘ining shaklini aniqlay olamiz. Masalan, agar bu o‘zgaruvchi 3 ga teng bo‘lsa, biz bu shaklni uchburchak deb ayta olamiz. Shuningdek, ob’ekt ostiga matn yozish uchun kontur koordinatalarini BoundingRect orqali topishimiz kerak(3.12-rasm). 

3.12-rasm. Shakllarni aniqlash va yo‘l belgilarini ajratib olish.
Ushbu ishda biz yo‘l belgilari shakllari va konturlarni aniqlash uchun turli funksiyalardan foydalandik. Keyingi ishlarda biz tasvirlarni segmentatsiyasi haqida tadqiqot olib boramiz.
Download 1.12 Mb.

Do'stlaringiz bilan baham:
1   2




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