Kazalo:
- 1. korak: potrebna programska oprema
- 2. korak: Prenos slik
- 3. korak: Ustvarjanje pozitivnih vzorcev v OpenCV
- 4. korak: Ustvarjanje pozitivne vektorske datoteke
- 5. korak: Usposabljanje razvrščevalca
- 6. korak: Preizkus klasifikatorja
- 7. korak: Posebna hvala
Video: Ustvarite klasifikatorje slik OpenCV z uporabo Pythona: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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
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
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
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:
Ustvarite toplotni zemljevid WiFi z uporabo ESP8266 in Arduino: 5 korakov
Ustvarite toplotni zemljevid WiFi z uporabo ESP8266 in Arduino: Pregled V tej vadnici bomo s pomočjo Arduina in ESP8266. naredili toplotni zemljevid okoliških signalov Wi-Fi. Kaj se boste naučili Uvod v signale WiFi Kako zaznati posebne signale z ESP8266 Naredite toplotni zemljevid z uporabo Arduino in TFT disp
Spremljanje pospeševanja z uporabo Raspberry Pi in AIS328DQTR z uporabo Pythona: 6 korakov
Spremljanje pospeševanja z Raspberry Pi in AIS328DQTR z uporabo Pythona: Po moje je pospeševanje po nekaterih zakonih fizike končno.- Terry Riley Gepard pri lovu uporablja neverjeten pospešek in hitre spremembe hitrosti. Najhitrejše bitje na kopnem včasih izkoristi svojo najvišjo hitrost za ulov plena.
Ustvarite vremensko nadzorno ploščo z uporabo API -ja Dark Sky: 5 korakov (s slikami)
Ustvarite nadzorno ploščo za vreme s pomočjo API -ja Dark Sky: Dark Sky je specializirano za napovedovanje in vizualizacijo vremena. Najbolj kul vidik programa Dark Sky je njihov vremenski API, ki ga lahko uporabimo za pridobivanje vremenskih podatkov iz skoraj kjer koli na svetu. Ne gre le za deževno ali sončno vreme, ampak tudi za temperaturo
Ustvarite preprosto šifriranje/dešifriranje sporočil z uporabo beležnice: 5 korakov
Ustvarite preprosto šifriranje/dešifriranje sporočila z uporabo Beležnice: Pozdravljeni s to preprosto aplikacijo HTML, lahko šifrirate in dešifrirate svoje sporočilo z geslom. Najprej vam bom pokazal, kako ga ustvariti, nato pa vam bom pokazal, kako ga uporabljati. Začnimo
Ustvarite varnostni sistem SafeLock z uporabo Arduino MEGA: 6 korakov
Ustvarite varnostni sistem SafeLock z uporabo Arduina MEGA: Pozdravljeni vsi … Najprej sem bil velik oboževalec skupnosti Instructables in vseh, ki so tukaj nalagali svoje Instructables. Odločil sem se, da bom nekega dne objavil svoj Instructable, zato pridem k vam s svojim prvim Instructable “S