Obsah:
- Krok 1: Vyžaduje sa softvér
- Krok 2: Sťahovanie obrázkov
- Krok 3: Vytvorenie pozitívnych vzoriek v OpenCV
- Krok 4: Vytvorenie pozitívneho vektorového súboru
- Krok 5: Školenie klasifikátora
- Krok 6: Testovanie klasifikátora
- Krok 7: Osobitné poďakovanie
Video: Vytvorte klasifikátory obrázkov OpenCV pomocou Pythonu: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
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
Odporúča:
Odstráňte pozadie viacerých obrázkov pomocou Photoshopu 2020: 5 krokov
Odstránenie pozadia z viacerých obrázkov pomocou Photoshopu 2020: Odstránenie pozadia z obrázku je teraz veľmi jednoduché! Takto môžete pomocou programu Adobe Photoshop 2020 odstrániť pozadie viacerých (dávkových) obrázkov pomocou jednoduchého skriptu
Monitorovanie akcelerácie pomocou Raspberry Pi a AIS328DQTR pomocou Pythonu: 6 krokov
Monitorovanie zrýchlenia pomocou Raspberry Pi a AIS328DQTR pomocou Pythonu: Zrýchlenie je podľa niektorých fyzikálnych zákonov konečné. Myslím, že gepard Terry Riley pri prenasledovaní využíva úžasné zrýchlenie a rýchle zmeny rýchlosti. Najrýchlejší tvor na brehu raz za čas využije svoje najvyššie tempo na chytenie koristi.
Ako vyrobiť dron pomocou Arduino UNO - Vytvorte kvadrokoptéru pomocou mikrokontroléra: 8 krokov (s obrázkami)
Ako vyrobiť dron pomocou Arduino UNO | Vytvorte kvadrokoptéru pomocou mikrokontroléra: Úvod Navštívte môj kanál na YouTube Drone je veľmi drahý gadget (produkt) na nákup. V tomto príspevku budem diskutovať o tom, ako to urobiť lacno? A ako si môžete takto vyrobiť svoj vlastný za lacnú cenu … V Indii všetky materiály (motory, ESC
Vytvorte jednoduchý EPUB zo série obrázkov: 13 krokov
Vytvorte jednoduchý EPUB zo série obrázkov: Toto nie je technický projekt. Nebudem sa zaoberať tým, čo je EPUB a čo nie je. Nebudem vám hovoriť, ako sa líši od ostatných formátov súborov. EPUB je super cool formát, ktorý je možné použiť na oveľa, oveľa viac ako publikácie
Pridajte text do obrázkov pomocou príkazu „Konvertovať“v systéme Linux: 3 kroky
Pridajte text do obrázkov pomocou príkazu „konvertovať“v systéme Linux: Tento návod vám ukáže, ako pridať text k obrázku pomocou príkazu previesť v systéme Linux. Jedným z cenných spôsobov, ako to využiť, je umiestnenie popisku k obrázku na účely dokumentácie. Ďalším použitím by bolo umiestnenie časovej pečiatky na obrázok, ktorý