Obsah:
Video: Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu: 7 krokov
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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
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
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
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