Innehållsförteckning:
Video: Skapa OpenCV Image Classifiers med Python: 7 steg
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Haarklassificerare i python och opencv är ganska knepigt men lätt uppgift.
Vi står ofta inför problemen med bilddetektering och klassificering. den bästa lösningen är att skapa din egen klassificerare. Här lär vi oss att göra våra egna bildklassificerare med några kommandon och långa men enkla pythonprogram
Klassificeringen kräver ett stort antal negativa och positiva bilder negativa innehåller inte det erforderliga objektet medan positiva är det som innehåller objektet som ska detekteras.
Cirka 2000 negativ och positiva krävs. Python -programmet konverterar bilden till gråskala och en lämplig storlek så att klassificerare tar optimal tid att skapa.
Steg 1: Programvara krävs
Du behöver följande programvara för att skapa din egen klassificerare
1) OpenCV: versionen jag använde är 3.4.2. versionen är lätt tillgänglig på internet.
2) Python: Den version som används är 3.6.2. Kan laddas ner från python.org
Dessutom behöver du en webbkamera (naturligtvis).
Steg 2: Ladda ner bilderna
Det första steget är att ta en tydlig bild av objektet som ska klassificeras.
Storleken ska inte vara särskilt stor eftersom det tar längre tid för datorn att bearbeta. Jag tog storlek 50 x 50.
Därefter laddar vi ner de negativa och positiva bilderna. Du hittar dem online. Men vi använder pythonkoden för att ladda ner bilder från 'https://image-net.org'
Därefter konverterar vi bilderna till gråskala och till en normal storlek. Detta är också implementerat i koden. Koden tar också bort eventuella felaktiga bilder
Nu bör din katalog innehålla objektbilden t.ex. watch5050-j.webp
Om datamappen inte skapas, gör det manuellt
Pythonkoden finns i.py -filen
Steg 3: Skapa positiva prov i OpenCV
Gå nu till katalogen opencv_createsamples och lägg till allt ovan nämnt innehåll
i kommad prompt gå till C: / opencv342 / build / x64 / vc14 / bin för att hitta opencv_createsamples och opencv_traincascade apps
kör nu följande kommandon
opencv_createsamples -img watch5050-j.webp
Detta kommando är för att skapa de positiva exemplen på objektet 1950 för att vara exakt Och beskrivningsfilen info.lst av de positiva bilderna bör beskrivningen vara så här 0001_0014_0045_0028_0028-j.webp
Nu innehåller mappen
info
neg images -mappen
bg.txt -fil
tom datamapp
Steg 4: Skapa positiv vektorfil
Skapa nu den positiva vektorfilen som tillhandahåller sökvägen till de positiva bilderna, dekrypteringsfilen
Använd följande kommando
opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec positives.vec
Innehållet i katalogen måste nu vara följande:
--neg
---- negimages.jpg
--opencv
--info
--data
--positives.vec
--bg.txt
--watch5050-j.webp
Steg 5: Träna klassificeraren
Nu kan vi träna hårkaskaden och skapa xml -filen
Använd följande kommando
opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
steg är 10 Att öka stadierna kräver mer bearbetning men klassificeraren är mycket effektivare.
Nu skapas haarcascade Det tar cirka två timmar att slutföra Öppna datamappen där hittar du cascade.xml Detta klassificerare som har skapats
Steg 6: Testa klassificeraren
Datamappen innehåller filerna enligt bilden ovan.
Efter skapandet av klassificeraren ser vi om klassificeraren fungerar eller inte genom att köra programmet object_detect.py. Glöm inte att placera classifier.xml -filen i pythonkatalogen.
Steg 7: Särskilt tack
Jag skulle vilja tacka Sentdex här som är en bra pythonprogrammerare.
Han har ett youtube -namn med ovan nämnda namn och videon som hjälpte mig mycket har den här länken
Det mesta av koden har kopierats från sentdex. Även om jag fått mycket hjälp av sentdex, så mötte jag fortfarande många problem. Jag ville bara dela med mig av min erfarenhet.
Jag hoppas att denna oförstörbara hjälpte dig !!! Håll ögonen öppna för mer.
BR
Tahir Ul Haq