Mundarija:

Python yordamida OpenCV tasvir tasniflagichlarini yarating: 7 qadam
Python yordamida OpenCV tasvir tasniflagichlarini yarating: 7 qadam

Video: Python yordamida OpenCV tasvir tasniflagichlarini yarating: 7 qadam

Video: Python yordamida OpenCV tasvir tasniflagichlarini yarating: 7 qadam
Video: Data Science with Python! Extracting Metadata from Images 2024, Iyul
Anonim
Python yordamida OpenCV tasvir tasniflagichlarini yarating
Python yordamida OpenCV tasvir tasniflagichlarini yarating

Python va opencv -da Haar klassifikatorlari juda murakkab, ammo oson ish.

Biz ko'pincha tasvirni aniqlash va tasniflashda muammolarga duch kelamiz. eng yaxshi echim - bu o'z tasniflagichingizni yaratish. Bu erda biz bir nechta buyruqlar va uzoq, lekin oddiy python dasturlari yordamida o'z rasm tasniflagichlarimizni yaratishni o'rganamiz

Tasniflash uchun ko'p miqdordagi salbiy va ijobiy tasvirlar kerak, negativlar kerakli ob'ektni o'z ichiga olmaydi, musbatlar esa aniqlanadigan ob'ektni o'z ichiga oladi.

2000 ga yaqin salbiy va ijobiy talab qilinadi. Python dasturi tasvirni kulrang va mos hajmga o'zgartiradi, shuning uchun tasniflagichlar yaratish uchun eng maqbul vaqtni oladi.

1 -qadam: dasturiy ta'minot talab qilinadi

O'zingizning tasniflagichingizni yaratish uchun sizga quyidagi dasturlar kerak bo'ladi

1) OpenCV: men ishlatgan versiya 3.4.2. versiya Internetda osongina mavjud.

2) Python: 3.6.2 versiyasi ishlatiladi. Python.org saytidan yuklab olish mumkin

Bundan tashqari, sizga veb -kamera kerak (albatta).

2 -qadam: Rasmlarni yuklab olish

Birinchi qadam - tasniflanadigan ob'ektning aniq rasmini olish.

Hajmi juda katta bo'lmasligi kerak, chunki kompyuterni qayta ishlash uchun ko'proq vaqt kerak bo'ladi. Men 50 dan 50 gacha o'lchamni oldim.

Keyin biz salbiy va ijobiy rasmlarni yuklab olamiz. Siz ularni Internetda topishingiz mumkin. Lekin biz "https://image-net.org" saytidan rasmlarni yuklab olish uchun piton kodidan foydalanamiz.

Keyin biz tasvirlarni kulrang va normal o'lchamlarga o'tkazamiz. Bu kodda alohida amalga oshiriladi. Kod, shuningdek, har qanday noto'g'ri tasvirni olib tashlaydi

Hozircha sizning katalogingizda ob'ekt tasviri bo'lishi kerak, masalan watch5050-j.webp

Agar ma'lumotlar papkasi yaratilmagan bo'lsa, uni qo'lda bajaring

Python kodi.py faylida berilgan

3 -qadam: OpenCV -da ijobiy namunalar yaratish

OpenCV -da ijobiy namunalar yaratish
OpenCV -da ijobiy namunalar yaratish
OpenCV -da ijobiy namunalar yaratish
OpenCV -da ijobiy namunalar yaratish

Endi opencv_createsamples katalogiga o'ting va yuqorida ko'rsatilgan tarkibni qo'shing

buyruq satrida opencv_createsamples va opencv_traincascade ilovalarini topish uchun C: / opencv342 / build / x64 / vc14 / bin ga o'ting.

Endi quyidagi buyruqlarni bajaring

opencv_createsamples -img watch5050-j.webp

Bu buyruq 1950 ob'ektining ijobiy namunalarini yaratish uchun, aniqrog'i va tavsif fayli info.lst ijobiy tasvirlardan shunday bo'lishi kerak 0001_0014_0045_0028_0028-j.webp

Endi papka o'z ichiga oladi

ma'lumot

neg rasmlar papkasi

bg.txt fayli

bo'sh ma'lumotlar papkasi

4 -qadam: Ijobiy vektorli faylni yaratish

Ijobiy vektorli fayl yaratish
Ijobiy vektorli fayl yaratish

Endi ijobiy tasvirlarga dekription faylga yo'lni ta'minlaydigan musbat vektorli faylni yarating

Quyidagi buyruqdan foydalaning

opencv_createsamples -info info/info.lst -raqami 1950 -w 20 -h 20 -vec musbats.vec

Hozircha katalog mazmuni quyidagicha bo'lishi kerak:

-yo'q

---- negimages.jpg

-ochish

-axborot

-ma'lumotlar

-ijobiy.vec

--bg.txt

--watch5050-j.webp

5 -qadam: klassifikatorni o'qitish

Klassifikatorni o'qitish
Klassifikatorni o'qitish
Klassifikatorni o'qitish
Klassifikatorni o'qitish
Klassifikatorni o'qitish
Klassifikatorni o'qitish

Keling, haar kaskadini o'rgatamiz va xml faylini yaratamiz

Quyidagi buyruqdan foydalaning

opencv_traincascade -data ma'lumotlari -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20

Bosqichlar 10 bosqichlarni ko'paytirish ko'proq ishlov berishni talab qiladi, lekin tasniflagich ancha samarali.

Endi haarcascade yaratildi Ma'lumotlar papkasini ochish uchun taxminan ikki soat vaqt ketadi, u erda kaskad.xml topiladi Bu yaratilgan klassifikator.

6 -qadam: Tasniflagichni sinovdan o'tkazish

Ma'lumotlar papkasi yuqoridagi rasmda ko'rsatilgan fayllarni o'z ichiga oladi.

Tasniflagich yaratilgandan so'ng, klassifikator ishlayaptimi yoki yo'qligini object_detect.py dasturini ishga tushirish orqali ko'ramiz. Classifier.xml faylini python katalogiga joylashtirishni unutmang.

7 -qadam: alohida rahmat

Men buyuk piton dasturchisi bo'lgan Sentdexga minnatdorchilik bildirmoqchiman.

Uning yuqorida ko'rsatilgan ismli youtube nomi bor va menga ko'p yordam bergan videoda bu havola bor

Kodning ko'p qismi sentdex -dan ko'chirilgan. Sentdexdan ko'p yordam olgan bo'lsam -da, men hali ko'p muammolarga duch keldim. Men faqat o'z tajribam bilan bo'lishmoqchi edim.

Umid qilamanki, bu sizga yordam berdi !!! Ko'proq ma'lumotni kuzatishda davom eting.

BR

Tohir Ul Haq

Tavsiya: