O’ZBEKISTON ALOQA VA AXBOROTLASHTIRISH AGENTLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG’ONA FILIALI
“Kompyuter injiniringi” fakulteti
“Axborot texnologiyalari” kafedrasi
“Kompyuter ko’rish” fanidan
Mustaqil ish
Tasvirlarda kerakli obyektlarni ajratib olish algoritmlari
Bajardi: Xo’jaqulov H.
Qabul qildi: Rasulov A.
Mavzu: Tasvirlarda kerakli obektlarni ajratib olish algoritmlari
KIRISH. Tasvirni qayta ishlashda o’zgartirishlarning turlari
I BOB. Tasvirlarda kerakli obektlarni ajratib olish algoritmlari
Tasvirlardagi ob'ektlarni ajratish hamda tanib olish usullari va algoritmlarini tahlil qilish
Tasvirlar bilan ishlash uchun kerakli dasturlarni tayyorlash
Tavirlardan obyektlarni ajratib olish
Xulosa
Foydalanilgan adabiyotlar
KIRISH
Jahonda tasvirlardan muhim ob'ektlarni ajratib olish, konturini aniqlash va matnlarni tanib olish tadqiqotlariga katta qiziqish va alohida e'tibor berilmoqda. Tasvirlardagi vizual ma'lumotlarni aniq va samarali olish uchun raqamli ishlov berishda filьtrlash, siqish, aniqlash, ajratish va tanish masalalarini yechishda yangi kompьyuter ko'rishi algoritmlarini yaratish hamda ijtimoiy sohalarda qo'llash uchun dasturiy vositalarni ishlab chiqish masalalari ham muhim ahamiyat kasb etmoqda. Insonlarning ko'rish tizimi tasvirlardagi muhim ob'ektlarni vizual ravishda tez va aniq tanish uchun aql bovar qilmaydigan qobiliyatga ega bo'lib, bu ravshanlik deb ataladi. Ushbu vizual ravshanlik mexanizmi tasvirdagi ba'zi ob'ektlarni atrofidagi narsalardan ajratib turadi. Bu esa ko'rish qobiliyati zaiflarga murakkab tabiiy tasvirlarni idrok etishda muhim hisoblanadi. Tasvirdagi muhim ob'ektlarni ajratib olish hamda matnlarni tanish algoritmlari va usullarini ishlab chiqish muammolari bo'yicha AQSh, Germaniya, Buyuk Britaniya, Xitoy, Yaponiya, Hindiston, Janubiy Koreya va Rossiya Federatsiyasi kabi dunyoning rivojlangan mamlakatlarida ilg'or tadqiqotlar olib borilmoqda.
Tasvirlardagi muhim ob'ektlarni aniqlash va ajratib olish, matnni aniqlash va tanib olish, shuningdek, samarali hisoblash algoritmlari va dasturiy vositalarini ishlab chiqishni o'rganish hamda amalga oshirishning maqbul parametrlarini aniqlash uchun hisoblash tajribalari natijalarini tahlil qilish bo'yicha keng qamrovli tadqiqotlar olib borilmoqda. Bunday usullar va algoritmlarni yaratishga yunaltirilgan masalalar Springer, Association for Computing Machinery, IEEE Xplor , Syberleninka, Web of Science, Elsevier nashriyotlarining ma'lumotlar bazasiga kiritilgan, asosan, IEEE Xplore va Scopus ro'yxatidagi ilmiy jurnallarda oxirgi yillarda chop etilgan maqolalardan o'rganildi.
Odatda, “Object detection”, tasvirdagi obyektni ajratib olish uchun komputerning hisoblash imkoniyati va undagi mavjud qo’llab-quvvatlovchi dasturiy vositalardan unumli foydalanish jarayoni hisoblanadi. “Object detection”dan hozirgi kunda haydovchisiz mashinalar, xavfsizlikni ta’minlovchi tizimlar, ko’chalardagi piyodalar sonini aniqlashda, avtomobillarni aniqlashda va insonlarni yuzlaridan topish kabi sohalarda foydalanilmoqda. Computer Visionning ushbu bo’limidan bundanda keng miqyosda foydalanish dasturchilarning ijodkorligi va mahoratiga bog’liq.
Dastlab, “Object detection” ni amalga oshirish uchun klassik algoritmlardan foydalanilgan, mashhur computer vision kutubxonasi — OpenCV dan qo’llanilganidek. Biroq, ushbu klassik turga kiruvchi algoritmlar ba’zi vaziyatlarda kutilganidek natija bermasligi kuzatilgan.
2012 — yildagi Deep Learningning juda tez qadamlardagi rivojlanishi, R-CCN, Fast-RCNN, Faster-RCNN, RetinaNet kabi yetarli darajadagi aniq va samarali “Object detection” kutubxonalarini paydo bo’lishiga turtki bo’ldi. Bu kutubxonalardan professional ravishda foydalanishga dasturchidan kuchli mahorat talab qilinadi.
Sohaga oid olib borilgan tahlil natijalari shuni ko'rsatdiki, tasvirlardan muhim ob'ektlarni ajratib olish va matnni tanish yo'nalishlarining rivojlanishiga qaramay, ko'zi ojizlar uchun taktil grafikasini yaratishda tasvirlardagi muhim ob'ektlarni aniqlash va ajratib olish, shuningdek matnni nutqqa aylantirish mexanizmlarini ishlab chiqishda tasvirlardagi matnlarni aniqlash va tanib olish usullari hamda algoritmlari dolzarb bo'lib, o'zbek tili uchun yetarli darajada o'rganilmagan.
Tasvirlardagi ob'ektlarni ajratish hamda tanib olish usullari va algoritmlarini tahlil qilish
Tasvirlardagi ob'ektlarni ajratishning va matnlarni tanishning samarali usullari bo'yicha xorijiy davlatlar va Respublikamizda olib borilayotgan ilmiy va amaliy tadqiqot ishlari atroflicha tahlil qilingan. Tadqiqotlar natijasida kompьyuter ko'rishining muammoli jihatlaridan biri bo'lgan ob'ektni ajratib olish va tanish usullarini yaratish hamda tasvirlardagi muhim ob'ektlarni va matnlarni samarali aniqlashda ularning rang qiymatlarining kontrasti muhim omillardan biri ekanligiga xulosa qilingan. Shuningdek, muhim ob'ektlarni murakkab tabiiy tasvirlardan ajratib olish usulida ko'p qiymatli chegaralashni hisoblash orqali bir qiymatli chegaralashga nisbatan barqaror natijalarga erishish mumkinligi aniqlangan.
Bundan tashqari, tabiiy tasvirlardagi matnlarni aniqlash va tanish usullari kompьyuter ko'rishining yechim topmagan va murakkab muammosi hisoblanadi, chunki matnlar odatda tabiiy tasvirning kichik qismini egallaydi va ular notekis muhitga ega bo'lib, samarali natijalar olish uchun quyosh nuriga akslanganini, turli kichik to'siqlarni, dog'larni hamda tasvir shovqinlarini inobatga olish zarur. Tasvirlardagi matnlarni tanish usullarida dastlab matnlarni joylashgan joyini aniqlab olish natijaning ishonchli bo'lishida muhimdir. Bunday, matnlarning tasvirdagi joylashg n o'rnini aniqlash muammolariga yechim topishda turli neyron tarmoq modellarini qo'llash eng samarali usullardan biri.
Shuningdek, ko'zi ojizlarning vizual axborotlarni idrok etishlarida tasvirlardan ajratib olingan ob'ekt konturlarining juda sodda va tushunishga oson bo'lishi taktil grafikani ishlab chiqishda muhim vazifalardan biri ekanligi aniqlangan. Vizual axborotlar odatda tasvirlar, shakllar, grafikalar, diagrammalar, ranglar va boshqalarni o'z ichiga oladi. Shuni nazarda tutish lozimki, ko'zi ojizlar vizual axborotlarni asosan quyidagi ikkita usul orqali tushunishadi: (1) ushlab ko'rish, ya'ni grafikalar, tasvirlar, diagrammalar va raqamlar taktil grafikasi yordamida taqdim etilishi kerak; (2) eshitish, ya'ni ko'rish qobiliyati cheklanganlarga atrof-muhit haqida ovozli ma'lumot berish zarur.
Manbalarning tahlili shuni ko'rsatadiki, ko'zi ojizlar uchun tasvirlardagi muhim ob'ektlarning konturlarini taktil grafikasida sodda va oson tushunarli qilib yaratish kerakligi hamda o'zbek tili sintezatori uchun tasvirlardagi matnlarni tanish usuli va algoritmlarini yaratish lozimligi aniqlandi.
Tadqiqot metodologiyasi ob'ektlarni aniqlash, ajratish va ularning konturlarini belgilash hamda matnlarni aniqlash va tanish uchun tasvirlarga raqamli ishlov berish usullarini tahlil qilishni, mavjud muammolarga yechim topish uchun samarali usullar va algoritmlarni yaratishda kompьyuter ko'rish vositalari va kutubxonalarini tadqiq qilish va tanlashni, ob'ektlarni ajratib olish va matnlarni tanish algoritmlari asosida taktil grafikalarini hamda matnlarni o'zbek tilida talaffuz qilish dasturiy vositalarini ishlab chiqishni o'z ichiga oladi
Tasvirlar bilan ishlash uchun kerakli dasturlarni tayyorlash
Berilgan tasvirdagi obyektlarni tanib ajratib olish uchun biz ImageAI kutubxonasidan foydalanishimiz kerak bo’ladi. Ushbu kutubxona chaqirib biz “Object detection” ni ishga tushiramiz va ushbu Object detection tasvirdagi kerakli obyektlarni ajratib oladi. Odatda “Object detection” hozirgi kunda haydovchisiz mashinalar, xavfsizlikni ta’minlovchi tizimlar, ko’chalardagi piyodalar sonini aniqlashda, avtomobillarni qilayotgan jarimalarini nazorat qilish va insonlarni yuzlaridan topish kabi sohalarda foydalanilmoqda.
Biz berilgan tasvirlardan kerakli obyektlarni ajratib olishda ImageAI ni ishlarishimiz uchun quyidagilar kompyuterimizda mavjud bo’lishi kerak.
Dastur kodini yozishimiz uchun kompyuterimizga mos xolatda o’rnatilgan Python dasturi
Object Detection model fayli.
ImageAI va uning kutubxonalari
Python dasturini o’rnatkanimizdan so’ng tasvirdagi obyektarni aniqlashi uchun uning kerakli kutubxonalarinixam o’rnatib olishimiz kerak bo’ladi. Buning uchun quyidagi ishlarni bajarishimiz talab etiladi.
Tensorflow ni tanlagan xolda
pip install tensorflow
Numpy
pip install numpy
SciPy
pip install scipy
OpenCV
pip install opencv-python
Pillow
pip install pillow
Matplotlib
pip install matplotlib
H5py
pip install h5py
Keras
pip install keras
ImageAI
Tavirlardan obyektlarni ajratib olish
Dastur kodini yozishimiz uchun bizda Pythonning PyCharm va IDLE (Python) tahrirlovchilari mavjud. Bularning bir biridan farqli taraflari PyCharm da dastur kodlarini xatosiz tez yozishimiz mumkin sababi PyCharmda biror harfni kiritadigan bo’lsak ushbu harf bilan boshlanadigan barcha operator funksiyalar ochilari va keraklisini tanlab yozishimiz mumkin bo’ladi. IDLE(Python) da bo’lsa barcha operatorlarimizni o’zimiz yozib chiqishimiz kerak bo’ladi. Shuning uchun bizga PyCharm tahrirlovchisida dastur kodimizni yozishimiz qulay bo’ladi.
Pycharmni ishga tushirganimizdan so’ng dastur kodimizni yozishimiz uchun biror nom bilan yangi faylochib olamiz va ushbu faylimizni kompyuterimizni xotirasidan bir papka ochib ushbu papkamizga saqlab olamiz. Ushbu papkamizga biror rasmnixam saqlab olamiz. Ushbu rasmdan kerakli obyektlarni qidirib topamiz.
Endigi navbatda kodimizni PyCharmga yozamiz. Yozgan kodimiz quyidagicha
Dastur kodimizni yozib bo’lganimizdan so’ng uchbu kodimizni komplyatsiya qilib koramiz buning uchun Run tugmasini yoki F5 tugmasini bosishimi kerak bo’ladi.
Dasturimiz ishga tushkanidan song ko’rishimiz mumkin berilganrasmimizdagi har bir insonlarni alohida alohida xolatda ramkaga olib belgilab berayabdi. Quyidagi tasvirimizdaga odamlardan qaysi biri kameraga yaqinroq va to’liqroq ko’rinayotkan bo’lsa ushbu obyektimizni dasturimning tanish foizixam yuqori bo’lmoqda
Ushbu kodimizni faqat insonlar ustida emas balkim boshqa obyektlar misol uchun avtomabillar ustidaxam sinab ko’rishimiz mumkin.
B oshqa bir rasmda ushbu kodni sinab korishimiz uchun faylni saqlagan papkamizga boshqa rasmni joylaymiz va dasturni ishga tushiramiz.
Buyerda edi avtomabillarni tanib ularni belgilab bermoqda.
Biz bu kodimiz orqali tasvirlarni butun ismi bo’yicha tanib olishini ko’rib chiqdi. Yana bunga qo’shimcha qilib berilgan rasmdagi obyektlarni ma’lum bir qismlari bo’yichaxam tanib oladigan xolatga keltirishimiz mumkin bo’ladi. Misol uchun insonning ko’zi orqali.
XULOSA
Men ushbu mustaqil ishimni bajarish mobaynida Python dasturlash tilida ishlashni o’rgandim. Pythondagi kutubxonalar, ularning ishlatilishi va vazifalarini o’rganib oldim. OpenSV orqali tasvirlardagi obyektlarni tanib olish va ularni belgilab olishlarini ko’rib chiqdim. Xulosa qilib shuni aytishim mumkinki ushbu dasturda o’rganishlarni davom ettirib videodan, video cameradan obyektlarni ajratib olish ismlarinixam mukammal o’rganib uni amalda sinab dastur yaratishga xarakat qilib ko’raman.
Foydalanilgan adabiyotlar
https://www.python.org/
https://github.com/OlafenwaMoses/ImageAI/releases/download/essentials-v5/resnet50_coco_best_v2.1.0.h5
Do'stlaringiz bilan baham: |