Kazalo:

Ustvarite klasifikatorje slik OpenCV z uporabo Pythona: 7 korakov
Ustvarite klasifikatorje slik OpenCV z uporabo Pythona: 7 korakov

Video: Ustvarite klasifikatorje slik OpenCV z uporabo Pythona: 7 korakov

Video: Ustvarite klasifikatorje slik OpenCV z uporabo Pythona: 7 korakov
Video: Leap Motion SDK 2024, November
Anonim
Ustvarite klasifikatorje slik OpenCV z uporabo Pythona
Ustvarite klasifikatorje slik OpenCV z uporabo Pythona

Haar klasifikatorji v pythonu in opencvu so precej težavna, a lahka naloga.

Pogosto se srečujemo s težavami pri odkrivanju in razvrščanju slik. najboljša rešitev je, da ustvarite svoj klasifikator. Tu se naučimo izdelati lastne klasifikatorje slik z nekaj ukazi in dolgimi, a preprostimi programi za python

Razvrstitev zahteva veliko število negativnih in pozitivnih slik, negativi pa ne vsebujejo zahtevanega predmeta, medtem ko so pozitivni tisti, ki vsebujejo predmet, ki ga je treba zaznati.

Potrebnih je približno 2000 negativov in pozitiv. Program python pretvori sliko v sivine in primerno velikost, tako da klasifikatorji potrebujejo optimalen čas za ustvarjanje.

1. korak: potrebna programska oprema

Za izdelavo lastnega klasifikatorja potrebujete naslednjo programsko opremo

1) OpenCV: uporabljena različica je 3.4.2. različica je zlahka dostopna na internetu.

2) Python: Uporabljena različica je 3.6.2. Lahko ga prenesete s spletnega mesta python.org

Poleg tega potrebujete spletno kamero (seveda).

2. korak: Prenos slik

Prvi korak je jasna slika predmeta, ki ga je treba razvrstiti.

Velikost ne sme biti zelo velika, saj računalnik potrebuje več časa za obdelavo. Vzel sem velikost 50 na 50.

Nato prenesemo negativne in pozitivne slike. Najdete jih na spletu. Toda kodo python uporabljamo za prenos slik s spletnega mesta 'https://image-net.org'

Nato slike pretvorimo v sivine in v običajno velikost. To je tudi implementirano v kodo. Koda odstrani tudi vsako napačno sliko

Doslej bi moral vaš imenik vsebovati sliko predmeta, na primer watch5050-j.webp

Če podatkovna mapa ni ustvarjena, to storite ročno

Koda python je na voljo v datoteki.py

3. korak: Ustvarjanje pozitivnih vzorcev v OpenCV

Ustvarjanje pozitivnih vzorcev v OpenCV
Ustvarjanje pozitivnih vzorcev v OpenCV
Ustvarjanje pozitivnih vzorcev v OpenCV
Ustvarjanje pozitivnih vzorcev v OpenCV

Zdaj pojdite v imenik opencv_createsamples in dodajte vso zgoraj omenjeno vsebino

v ukaznem pozivu pojdite na C: / opencv342 / build / x64 / vc14 / bin, da poiščete vzorce opencv_createsample in aplikacije opencv_traincascade

zdaj izvedite naslednje ukaze

opencv_createsamples -img watch5050-j.webp

Ta ukaz je namenjen ustvarjanju pozitivnih vzorcev predmeta 1950. Opisna datoteka info.lst pozitivnih slik pa mora biti opis tak 0001_0014_0045_0028_0028-j.webp

Zdaj mapa vsebuje

info

neg slika slike

bg.txt

prazna mapa s podatki

4. korak: Ustvarjanje pozitivne vektorske datoteke

Ustvarjanje pozitivne vektorske datoteke
Ustvarjanje pozitivne vektorske datoteke

Zdaj ustvarite pozitivno vektorsko datoteko, ki zagotavlja pot do pozitivnih slik v datoteko za opis

Uporabite naslednji ukaz

opencv_createsamples -info info/info.lst -štev 1950 -w 20 -h 20 -vec positives.vec

Do sedaj mora biti vsebina imenika naslednja:

--neg

---- negimages.jpg

--opencv

--info

--podatki

--pozitivi.vec

--bg.txt

--watch5050-j.webp

5. korak: Usposabljanje razvrščevalca

Usposabljanje razvrščevalca
Usposabljanje razvrščevalca
Usposabljanje razvrščevalca
Usposabljanje razvrščevalca
Usposabljanje razvrščevalca
Usposabljanje razvrščevalca

Zdaj pa treniraj haar kaskado in ustvari datoteko xml

Uporabite naslednji ukaz

opencv_traincascade -podatki -vec pozitivi.vec -bg bg.txt -numPos 1800 -numNeg 900 -num Stopnje 10 -w 20 -h 20

stopnje so 10 Povečanje stopenj zahteva več obdelave, vendar je klasifikator veliko učinkovitejši.

Zdaj je ustvarjena haarcascade. Dokončanje traja približno dve uri. Odprite podatkovno mapo, kjer boste našli cascade.xml To je klasifikator, ki je bil ustvarjen.

6. korak: Preizkus klasifikatorja

Podatkovna mapa vsebuje datoteke, kot je prikazano na zgornji sliki.

Po izdelavi klasifikatorja z izvajanjem programa object_detect.py preverimo, ali klasifikator deluje ali ne. Ne pozabite vnesti datoteke classicfier.xml v imenik python.

7. korak: Posebna hvala

Tukaj bi se rad zahvalil Sentdexu, ki je odličen programer za python.

Ima ime na YouTubu z zgoraj omenjenim imenom in video, ki mi je veliko pomagal, ima to povezavo

Večina kode je bila kopirana iz sentdex. Čeprav sem prejel veliko pomoči od senddexa, sem se še vedno soočal s številnimi težavami. Želel sem samo deliti svoje izkušnje.

Upam, da vam je ta neuničljiv pomagal !!! Ostanite z nami za več.

BR

Tahir Ul Haq

Priporočena: