Luo OpenCV -kuvan luokittelijoita Pythonilla: 7 vaihetta
Luo OpenCV -kuvan luokittelijoita Pythonilla: 7 vaihetta

Video: Luo OpenCV -kuvan luokittelijoita Pythonilla: 7 vaihetta

Video: Luo OpenCV -kuvan luokittelijoita Pythonilla: 7 vaihetta
Video: a sneak peek into the upcoming OOP with OpenCV tutorial! 2025, Tammikuu
Anonim
Luo OpenCV -kuvan luokittelijoita Pythonilla
Luo OpenCV -kuvan luokittelijoita Pythonilla

Haar -luokittelijat pythonissa ja opencv: ssä on melko hankala, mutta helppo tehtävä.

Meillä on usein ongelmia kuvan havaitsemisessa ja luokittelussa. paras ratkaisu on luoda oma luokittelija. Täällä opimme tekemään omia kuvan luokittelijoita muutamalla komennolla ja pitkillä mutta yksinkertaisilla python -ohjelmilla

Luokittelu vaatii suuren määrän negatiivisia ja positiivisia kuvia, negatiivit eivät sisällä vaadittua kohdetta, kun taas positiiviset sisältävät tunnistettavan kohteen.

Tarvitaan noin 2000 negatiivista ja positiivista. Python -ohjelma muuntaa kuvan harmaasävyiseksi ja sopivan kokoiseksi, jotta luokittelijat luovat optimaalisen ajan.

Vaihe 1: Tarvittavat ohjelmistot

Tarvitset seuraavat ohjelmistot oman luokittelijan luomiseen

1) OpenCV: käyttämäni versio on 3.4.2. versio on helposti saatavilla Internetistä.

2) Python: Käytetty versio on 3.6.2. Voidaan ladata osoitteesta python.org

Lisäksi tarvitset verkkokameran (tietysti).

Vaihe 2: Kuvien lataaminen

Ensimmäinen askel on ottaa selkeä kuva luokiteltavasta kohteesta.

Koko ei saisi olla kovin suuri, koska tietokoneen käsittely kestää kauemmin. Otin kokoa 50 x 50.

Seuraavaksi lataamme negatiiviset ja positiiviset kuvat. Löydät ne verkosta. Mutta käytämme python-koodia kuvien lataamiseen osoitteesta

Seuraavaksi muutamme kuvat harmaasävyiksi ja normaalikokoisiksi. Tämä on otettu käyttöön koodissa. Koodi poistaa myös kaikki vialliset kuvat

Tähän mennessä hakemistossasi pitäisi olla objektikuva (esim. Watch5050-j.webp

Jos tietokansiota ei luoda, tee se manuaalisesti

Python -koodi on.py -tiedostossa

Vaihe 3: Positiivisten näytteiden luominen OpenCV: ssä

Positiivisten näytteiden luominen OpenCV: ssä
Positiivisten näytteiden luominen OpenCV: ssä
Positiivisten näytteiden luominen OpenCV: ssä
Positiivisten näytteiden luominen OpenCV: ssä

Siirry nyt opencv_createsamples -hakemistoon ja lisää kaikki edellä mainittu sisältö

siirry commad -kehotteeseen osoitteeseen C: / opencv342 / build / x64 / vc14 / bin löytääksesi opencv_createsamples- ja opencv_traincascade -sovelluksia

suorita nyt seuraavat komennot

opencv_createsamples -img watch5050-j.webp

Tämä komento on luotu tarkasti objektin 1950 positiivisista näytteistä Ja kuvaustiedoston info.lst positiivisten kuvien kuvauksen tulisi olla seuraavanlainen 0001_0014_0045_0028_0028-j.webp

Nyt kansio sisältää

tietoa

neg kuvat -kansio

bg.txt -tiedosto

tyhjä tietokansio

Vaihe 4: Positiivisen vektoritiedoston luominen

Positiivisen vektoritiedoston luominen
Positiivisen vektoritiedoston luominen

Luo nyt positiivinen vektoritiedosto, joka tarjoaa polun positiivisten kuvien decsription -tiedostoon

Käytä seuraavaa komentoa

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

Tähän mennessä hakemiston sisällön on oltava seuraava:

--neg

---- negimages.jpg

--opencv

--tiedot

--tiedot

--positiiviset.vec

--bg.txt

--watch5050-j.webp

Vaihe 5: Kouluttajan luokittelu

Luokittelijan koulutus
Luokittelijan koulutus
Luokittelijan koulutus
Luokittelijan koulutus
Luokittelijan koulutus
Luokittelijan koulutus

Nyt opetellaan haar -kaskadia ja luodaan xml -tiedosto

Käytä seuraavaa komentoa

opencv_traincascade -datatiedot -vec positiiviset.vec -bg bg.txt -numeroPos 1800 -numeroNeg 900 -luku Vaiheet 10 -w 20 -h 20

Vaiheet ovat 10 Vaiheiden lisääminen vaatii enemmän käsittelyä, mutta luokittelija on paljon tehokkaampi.

Nyt haarcascade on luotu Kestää noin kaksi tuntia. Avaa sieltä datakansio, josta löydät cascade.xml Tämä on luotu

Vaihe 6: Luokittelijan testaaminen

Datakansio sisältää yllä olevan kuvan mukaiset tiedostot.

Luokittelun luomisen jälkeen näemme, toimiiko luokittelija vai ei, suorittamalla object_detect.py -ohjelma. Älä unohda sijoittaa classifier.xml -tiedostoa python -hakemistoon.

Vaihe 7: Erityinen kiitos

Haluan kiittää Sentdexiä täällä, joka on loistava python -ohjelmoija.

Hänellä on youtube -nimi yllä mainitulla nimellä, ja videossa, joka auttoi minua paljon, on tämä linkki

Suurin osa koodista on kopioitu senddexistä. Vaikka sain paljon apua sentdexistä, kohtasin edelleen monia ongelmia. Halusin vain jakaa kokemukseni.

Toivottavasti tämä selittämätön auttoi sinua !!! Pysy kuulolla lisää.

BR

Tahir Ul Haq