Izrada OpenCV klasifikatora slika pomoću Pythona: 7 koraka
Izrada OpenCV klasifikatora slika pomoću Pythona: 7 koraka

Video: Izrada OpenCV klasifikatora slika pomoću Pythona: 7 koraka

Video: Izrada OpenCV klasifikatora slika pomoću Pythona: 7 koraka
Video: Create Your First C++ Windows Form using Microsoft Visual Studio 2022 2025, Siječanj
Anonim
Izradite OpenCV klasifikatore slika pomoću Pythona
Izradite OpenCV klasifikatore slika pomoću Pythona

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

Stvaranje pozitivnih uzoraka u OpenCV -u
Stvaranje pozitivnih uzoraka u OpenCV -u
Stvaranje pozitivnih uzoraka u OpenCV -u
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

Stvaranje pozitivne vektorske datoteke
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

Obuka klasifikatora
Obuka klasifikatora
Obuka klasifikatora
Obuka klasifikatora
Obuka klasifikatora
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