Sadržaj:
Video: Kreiranje OpenCV klasifikatora slika pomoću Pythona: 7 koraka
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Haar klasifikatori u pythonu i opencvu prilično su škakljiv, ali lak zadatak.
Često se suočavamo s problemima u otkrivanju i klasifikaciji slika. najbolje rješenje je stvoriti vlastiti klasifikator. Ovdje učimo napraviti vlastite klasifikatore slika s nekoliko naredbi i dugim, ali jednostavnim programima za python
Klasifikacija zahtijeva veliki broj negativnih i pozitivnih slika. Negativi ne sadrže traženi objekt, dok su pozitivni oni koji sadrže objekt koji treba otkriti.
Potrebno je oko 2000 negativa i pozitiva. Program Python pretvara sliku u nijanse sive i odgovarajuće veličine tako da klasifikatorima treba optimalno vrijeme za stvaranje.
Korak 1: Potreban softver
Za izradu vlastitog klasifikatora potreban vam je sljedeći softver
1) OpenCV: verzija koju sam koristio je 3.4.2. verzija je lako dostupna na internetu.
2) Python: Koristi se verzija 3.6.2. Može se preuzeti sa python.org
Štaviše, potrebna vam je web kamera (naravno).
Korak 2: Preuzimanje slika
Prvi korak je snimiti jasnu sliku objekta koji se klasificira.
Veličina ne bi trebala biti velika jer računaru treba više vremena za obradu. Uzeo sam dimenzije 50 na 50.
Zatim preuzimamo negativne i pozitivne slike. Možete ih pronaći na internetu. Ali koristimo python kod za preuzimanje slika sa 'https://image-net.org'
Zatim slike pretvaramo u nijanse sive i u normalnu veličinu. Ovo je također implementirano u kod. Kod takođe uklanja sve neispravne slike
Do sada bi vaš direktorij trebao sadržavati sliku objekta, npr. Watch5050-j.webp
Ako mapa s podacima nije stvorena, učinite to ručno
Python kôd se nalazi u.py datoteci
Korak 3: Kreiranje pozitivnih uzoraka u OpenCV -u
Sada idite u direktorij opencv_createsamples i dodajte sav gore spomenuti sadržaj
u naredbenom retku idite na C: / opencv342 / build / x64 / vc14 / bin da pronađete opencv_createsamples i opencv_traincascade aplikacije
sada izvršite sljedeće naredbe
opencv_createsamples -img watch5050-j.webp
Ova naredba služi za stvaranje pozitivnih uzoraka objekta 1950. Tačnije. Opisna datoteka info.lst pozitivnih slika opis bi trebao biti ovakav 0001_0014_0045_0028_0028-j.webp
Sada mapa sadrži
info
neg folder sa slikama
bg.txt datoteka
prazna mapa s podacima
Korak 4: Stvaranje pozitivne vektorske datoteke
Sada kreirajte pozitivnu vektorsku datoteku koja pruža put do pozitivnih slika u datoteci za opis
Koristite sljedeću naredbu
opencv_createsamples -info info/info.lst -broj 1950 -w 20 -h 20 -vec positives.vec
Sadržaj direktorija do sada mora biti sljedeći:
--neg
---- negimages.jpg
--opencv
--info
--data
--positives.vec
--bg.txt
--watch5050-j.webp
Korak 5: Obuka klasifikatora
Sada hajde da istreniramo haar kaskadu i kreiramo xml datoteku
Koristite sljedeću naredbu
opencv_traincascade -podaci podataka -vec pozitivi.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
Faze su 10 Povećanje faza zahtijeva više obrade, ali je klasifikator mnogo efikasniji.
Sada je kreirana haarcascade Potrebno je oko dva sata da dovršite. Otvorite mapu s podacima tamo ćete pronaći cascade.xml Ovo je klasifikator koji je kreiran
Korak 6: Testiranje klasifikatora
Mapa sa podacima sadrži datoteke kako je prikazano na gornjoj slici.
Nakon kreiranja klasifikatora vidimo da li klasifikator radi ili ne pokretanjem programa object_detect.py. Ne zaboravite postaviti datoteku classicfier.xml u direktorij python.
Korak 7: Posebno hvala
Želeo bih da se zahvalim Sentdexu koji je odličan programer za python.
Ima ime na youtube -u sa gore navedenim imenom, a video koji mi je puno pomogao ima ovu vezu
Većina koda je kopirana sa sentdex -a. Iako sam primio veliku pomoć od senddexa, ipak sam se suočio s mnogo problema. Samo sam htjela podijeliti svoje iskustvo.
Nadam se da vam je ovo neumoljivo pomoglo !!! Pratite nas za još.
BR
Tahir Ul Haq