Sisukord:

Looge OpenCV pildiklassifikaatorid Pythoni abil: 7 sammu
Looge OpenCV pildiklassifikaatorid Pythoni abil: 7 sammu

Video: Looge OpenCV pildiklassifikaatorid Pythoni abil: 7 sammu

Video: Looge OpenCV pildiklassifikaatorid Pythoni abil: 7 sammu
Video: Data Science with Python! Extracting Metadata from Images 2024, Juuli
Anonim
Looge Pythoni abil OpenCV pildiklassifikaatorid
Looge Pythoni abil OpenCV pildiklassifikaatorid

Haari klassifikaatorid pythonis ja opencv -is on üsna keeruline, kuid lihtne ülesanne.

Sageli seisame silmitsi piltide tuvastamise ja klassifitseerimise probleemidega. parim lahendus on luua oma klassifikaator. Siin õpime mõne käsu ja pikkade, kuid lihtsate python -programmide abil oma pildiklassifikaatoreid tegema

Klassifikatsioon nõuab suurt hulka negatiivseid ja positiivseid pilte, negatiivid ei sisalda nõutavat objekti, samas kui positiivsed on need, mis sisaldavad tuvastatavat objekti.

Vaja on umbes 2000 negatiivset ja positiivset. Python programm muudab pildi halltoonideks ja sobiva suurusega, nii et klassifikaatorite loomine võtab optimaalse aja.

Samm: nõutavad tarkvarad

Oma klassifikaatori loomiseks vajate järgmisi tarkvara

1) OpenCV: minu kasutatav versioon on 3.4.2. versioon on Internetis hõlpsasti kättesaadav.

2) Python: kasutatakse versiooni 3.6.2. Saab alla laadida saidilt python.org

Lisaks vajate veebikaamerat (muidugi).

Samm: piltide allalaadimine

Esimene samm on klassifitseeritava objekti selge pildi tegemine.

Suurus ei tohiks olla väga suur, kuna arvuti töötlemine võtab rohkem aega. Võtsin 50x50 suuruse.

Järgmisena laadime alla negatiivsed ja positiivsed pildid. Neid leiate Internetist. Kuid piltide allalaadimiseks saidilt https://image-net.org kasutame püütoni koodi

Järgmisena teisendame pildid halltoonideks ja normaalsuuruseks. See on koodis rakendatud. Kood eemaldab ka kõik vigased pildid

Nüüdseks peaks teie kataloog sisaldama objekti pilti, nt watch5050-j.webp

Kui andmekausta ei looda, tehke seda käsitsi

Python -kood on.py -failis

3. samm: positiivsete proovide loomine OpenCV -s

Positiivsete proovide loomine OpenCV -s
Positiivsete proovide loomine OpenCV -s
Positiivsete proovide loomine OpenCV -s
Positiivsete proovide loomine OpenCV -s

Nüüd minge kataloogi opencv_createsamples ja lisage kogu ülaltoodud sisu

minge komadaviibal aadressile C: / opencv342 / build / x64 / vc14 / bin, et leida rakendusi opencv_createsamples ja opencv_traincascade

täitke nüüd järgmised käsud

opencv_createsamples -img watch5050-j.webp

See käsk on täpse objekti 1950 positiivsete näidiste loomiseks Ja kirjeldusfaili info.lst positiivsete piltide kirjeldus peaks olema selline 0001_0014_0045_0028_0028-j.webp

Nüüd sisaldab kaust

info

neg piltide kaust

fail bg.txt

tühi andmekaust

Samm: positiivse vektorfaili loomine

Positiivse vektorfaili loomine
Positiivse vektorfaili loomine

Nüüd looge positiivne vektorfail, mis pakub teed positiivsete piltide dekriptsioonifaili juurde

Kasutage järgmist käsku

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

Praeguseks peab kataloogi sisu olema järgmine:

--neg

---- negimages.jpg

--opencv

--info

--andmed

--positiivsed.vec

--bg.txt

--watch5050-j.webp

Samm: klassifikaatori koolitamine

Klassifikaatori koolitamine
Klassifikaatori koolitamine
Klassifikaatori koolitamine
Klassifikaatori koolitamine
Klassifikaatori koolitamine
Klassifikaatori koolitamine

Nüüd treenime haar kaskaadi ja loome xml -faili

Kasutage järgmist käsku

opencv_traincascade -andmete andmed -vec positiivsed.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStage 10 -w 20 -h 20

etappe on 10 Etappide suurendamine võtab rohkem tööd, kuid klassifikaator on palju tõhusam.

Nüüd on haarcascade loodud Kulub umbes kaks tundi. Avage andmekaust, kust leiate cascade.xml See on loodud klassifikaator

6. samm: klassifikaatori testimine

Andmete kaust sisaldab ülaltoodud pildil näidatud faile.

Pärast klassifikaatori loomist näeme, kas klassifikaator töötab või mitte, käivitades programmi object_detect.py. Ärge unustage paigutada faili classifier.xml kataloogi python.

Samm: eriline tänu

Tahaksin siinkohal tänada Sentdexi, kes on suurepärane püütoniprogrammeerija.

Tal on ülalnimetatud nimega YouTube'i nimi ja mind palju aidanud videol on see link

Suurem osa koodist on kopeeritud senddexist. Kuigi sain palju abi senddexist, seisin silmitsi paljude probleemidega. Tahtsin lihtsalt oma kogemust jagada.

Loodan, et see arusaamatu aitas teid !!! Olge rohkem kursis.

BR

Tahir Ul Haq

Soovitan: