Sadržaj:
Video: Izrada OpenCV klasifikatora slika pomoću Pythona: 7 koraka
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Haar klasifikatori u pythonu i opencvu prilično su lukav, 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 potrebni su vam sljedeći programi
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 s python.org
Štoviš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čunalu treba više vremena za obradu. Uzeo sam veličinu 50 na 50.
Zatim preuzimamo negativne i pozitivne slike. Možete ih pronaći na internetu. No, koristimo python kôd za preuzimanje slika s 'https://image-net.org'
Zatim slike pretvaramo u sive i u normalnu veličinu. Ovo je također implementirano u kôd. Kod također 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 nalazi se u.py datoteci
Korak 3: Stvaranje 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. Toč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 slika mapu
bg.txt datoteku
prazna mapa s podacima
Korak 4: Stvaranje pozitivne vektorske datoteke
Sada stvorite pozitivnu vektorsku datoteku koja pruža put do pozitivnih slika u datoteci za opis
Upotrijebite sljedeću naredbu
opencv_createsamples -info info/info.lst -broj 1950 -w 20 -h 20 -vec pozitive.vec
Sadržaj imenika do sada mora biti sljedeći:
--neg
---- negimages.jpg
--opencv
--info
--podaci
--pozitivi.vec
--bg.txt
--watch5050-j.webp
Korak 5: Obuka klasifikatora
Sada trenirajmo haar kaskadu i stvorimo xml datoteku
Upotrijebite sljedeću naredbu
opencv_traincascade -podaci podataka -vec pozitivni.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
stupnjevi su 10 Povećanje faza zahtijeva više obrade, ali je klasifikator mnogo učinkovitiji.
Sada je stvorena haarcascade Potrebno je oko dva sata da dovršite. Otvorite mapu s podacima tamo ćete pronaći cascade.xml Ovo je klasifikator koji je stvoren
Korak 6: Testiranje klasifikatora
Mapa s podacima sadrži datoteke kako je prikazano na gornjoj slici.
Nakon stvaranja klasifikatora provjeravamo radi li klasifikator pokretanjem programa object_detect.py. Ne zaboravite staviti datoteku classicfier.xml u direktorij python.
Korak 7: Posebna hvala
Ovdje bih želio zahvaliti Sentdexu koji je izvrstan programer pythona.
Ima ime na YouTubeu s gore spomenutim imenom, a video koji mi je puno pomogao ima ovu vezu
Većina koda je kopirana s 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 !!! Ostanite uz nas za još.
BR
Tahir Ul Haq