Obsah:

Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu: 7 krokov
Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu: 7 krokov

Video: Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu: 7 krokov

Video: Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu: 7 krokov
Video: Data Science with Python! Extracting Metadata from Images 2024, Júl
Anonim
Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu
Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu

Klasifikátory Haar v pythone a opencv sú dosť ošemetné, ale ľahké.

Často sa stretávame s problémami pri detekcii a klasifikácii snímok. najlepším riešením je vytvoriť si vlastný klasifikátor. Tu sa naučíme vytvárať vlastné klasifikátory obrázkov pomocou niekoľkých príkazov a dlhých, ale jednoduchých pythonových programov

Klasifikácia vyžaduje veľký počet negatívnych a pozitívnych obrazov, negatívy neobsahujú požadovaný objekt, zatiaľ čo pozitíva sú tie, ktoré obsahujú predmet, ktorý sa má zistiť.

Vyžaduje sa asi 2 000 negatívov a pozitív. Program python prevádza obrázok na stupne šedej a vhodnej veľkosti, takže vytváraniu klasifikátorov trvá optimálny čas.

Krok 1: Vyžaduje sa softvér

Na vytvorenie vlastného klasifikátora potrebujete nasledujúci softvér

1) OpenCV: verzia, ktorú som použil, je 3.4.2. verzia je ľahko dostupná na internete.

2) Python: Použitá verzia je 3.6.2. Dá sa stiahnuť z python.org

Okrem toho potrebujete webovú kameru (samozrejme).

Krok 2: Sťahovanie obrázkov

Prvým krokom je urobiť si jasný obraz o objekte, ktorý má byť klasifikovaný.

Veľkosť by nemala byť príliš veľká, pretože spracovanie počítača vyžaduje dlhší čas. Vzal som veľkosť 50 na 50.

Ďalej stiahneme negatívne a pozitívne obrázky. Nájdete ich na internete. Na stiahnutie obrázkov z 'https://image-net.org' však používame kód pythonu

Ďalej obrázky prevedieme na odtiene sivej a na normálnu veľkosť. Toto je tiež implementované v kóde. Kód tiež odstráni chybný obrázok

Váš adresár by už mal obsahovať obrázok objektu, napr. Watch5050-j.webp

Ak priečinok s údajmi nie je vytvorený, urobte to ručne

Kód pythonu sa nachádza v súbore.py

Krok 3: Vytvorenie pozitívnych vzoriek v OpenCV

Vytváranie pozitívnych vzoriek v OpenCV
Vytváranie pozitívnych vzoriek v OpenCV
Vytváranie pozitívnych vzoriek v OpenCV
Vytváranie pozitívnych vzoriek v OpenCV

Teraz prejdite do adresára opencv_createsamples a pridajte všetok vyššie uvedený obsah

v príkazovom riadku prejdite na C: / opencv342 / build / x64 / vc14 / bin a nájdite aplikácie opencv_createsamples a opencv_traincascade

teraz vykonajte nasledujúce príkazy

opencv_createsamples -img watch5050-j.webp

Tento príkaz je presný na vytvorenie pozitívnych vzoriek objektu 1950. A popisný súbor info.lst z pozitívnych obrázkov, popis by mal byť takýto 0001_0014_0045_0028_0028-j.webp

Teraz priečinok obsahuje

info

priečinok s negatívnymi obrázkami

súbor bg.txt

prázdny priečinok s údajmi

Krok 4: Vytvorenie pozitívneho vektorového súboru

Vytvorenie pozitívneho vektorového súboru
Vytvorenie pozitívneho vektorového súboru

Teraz vytvorte pozitívny vektorový súbor, ktorý poskytne cestu k súboru s popisom pozitívnych obrázkov

Použite nasledujúci príkaz

opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec posatives.vec

Obsah adresára musí byť nasledujúci:

--napr

---- negimages.jpg

--opencv

--Info

--údaje

--pozitívy.vec

--bg.txt

--watch5050-j.webp

Krok 5: Školenie klasifikátora

Školenie klasifikátora
Školenie klasifikátora
Školenie klasifikátora
Školenie klasifikátora
Školenie klasifikátora
Školenie klasifikátora

Teraz poďme trénovať kaskádu haar a vytvoriť súbor xml

Použite nasledujúci príkaz

opencv_traincascade -data dáta -vec pozitíva.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20

fáz je 10 Zvýšenie fáz vyžaduje viac spracovania, ale klasifikátor je oveľa efektívnejší.

Teraz je vytvorená haarcascade. Dokončenie trvá asi dve hodiny. Otvorte priečinok s údajmi, kde nájdete cascade.xml Toto je klasifikátor, ktorý bol vytvorený.

Krok 6: Testovanie klasifikátora

Priečinok s údajmi obsahuje súbory, ako je znázornené na obrázku vyššie.

Po vytvorení klasifikátora spustením programu object_detect.py zistíme, či klasifikátor funguje alebo nie. Nezabudnite umiestniť súbor classifier.xml do adresára python.

Krok 7: Osobitné poďakovanie

Chcel by som poďakovať spoločnosti Sentdex, ktorá je skvelým programátorom v pythone.

Má meno na youtube s vyššie uvedeným menom a video, ktoré mi veľmi pomohlo, má tento odkaz

Väčšina kódu bola skopírovaná zo servera sentdex. Aj keď mi spoločnosť sentdex poskytla veľkú pomoc, stále som čelil mnohým problémom. Chcel som sa len podeliť o svoje skúsenosti.

Dúfam, že vám táto nerozborná pomohla !!! Zostaňte naladení na ďalšie.

BR

Tahir Ul Haq

Odporúča: