
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48

A Haar osztályozók pythonban és opencv -ben meglehetősen trükkös, de könnyű feladat.
Gyakran szembesülünk a képfelismerés és osztályozás problémáival. a legjobb megoldás a saját osztályozó létrehozása. Itt megtanuljuk saját képosztályozókat készíteni néhány paranccsal és hosszú, mégis egyszerű python programokkal
A besorolás nagy számú negatív és pozitív képet igényel, a negatívok nem tartalmazzák a szükséges objektumot, míg a pozitívok tartalmazzák az észlelni kívánt objektumot.
Körülbelül 2000 negatív és pozitív dolog szükséges. A python program a képet szürkeárnyalatossá és megfelelő méretűvé alakítja, így az osztályozók optimális időt vesznek igénybe.
1. lépés: Szoftverek szükségesek
Az alábbi szoftverekre van szüksége saját osztályozójának létrehozásához
1) OpenCV: az i használt verzió a 3.4.2. verziója könnyen elérhető az interneten.
2) Python: A használt verzió a 3.6.2. Letölthető a python.org oldalról
Ezenkívül szükség van egy webkamerára (természetesen).
2. lépés: A képek letöltése
Az első lépés az, hogy világos képet kell készíteni az osztályozandó tárgyról.
A méret nem lehet túl nagy, mivel a számítógép feldolgozása hosszabb időt vesz igénybe. 50-50 -es méretet vettem.
Ezután letöltjük a negatív és pozitív képeket. Megtalálhatja őket az interneten. De a python kódot használva töltünk le képeket a „https://image-net.org” oldalról
Ezután a képeket szürkeárnyalatosra és normál méretűre konvertáljuk. Ezt végre is hajtják a kódban. A kód eltávolítja a hibás képeket is
A könyvtárnak mostanáig tartalmaznia kell az objektumképet, pl. Watch5050-j.webp
Ha az adatmappa nem jön létre, akkor manuálisan kell elvégezni
A python kód a.py fájlban található
3. lépés: Pozitív minták létrehozása OpenCV -ben


Most lépjen az opencv_createsamples könyvtárba, és adja hozzá az összes fent említett tartalmat
a Commad parancssorban lépjen a C: / opencv342 / build / x64 / vc14 / bin címre, hogy megtalálja az opencv_createsamples és az opencv_traincascade alkalmazásokat
most hajtsa végre a következő parancsokat
opencv_createsamples -img watch5050-j.webp
Ez a parancs pontos az 1950 -es objektum pozitív mintáinak létrehozásához. A leíró fájl info.lst. A pozitív képek leírásának ilyennek kell lennie. 0001_0014_0045_0028_0028-j.webp
Most a mappa tartalmazza
info
neg képek mappa
bg.txt fájl
üres adatmappa
4. lépés: Pozitív vektorfájl létrehozása

Most hozza létre a pozitív vektorfájlt, amely megadja a leírás fájl pozitív képeinek elérési útját
Használja a következő parancsot
opencv_createsamples -info info/info.lst -1950. szám 20 -h 20 -h 20 -vec pozitiv.vec
Eddig a könyvtár tartalmának a következőnek kell lennie:
--neg
---- negimages.jpg
--opencv
--info
--adat
--pozitív.vec
--bg.txt
--watch5050-j.webp
5. lépés: Az osztályozó betanítása



Most tanítsuk meg a haar kaszkádot, és hozzuk létre az xml fájlt
Használja a következő parancsot
opencv_traincascade -adatadatok -vec pozitiv.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStage 10 -w 20 -h 20
szakaszok 10 A szakaszok növelése több feldolgozást igényel, de az osztályozó sokkal hatékonyabb.
Most létrejön a haarcascade Körülbelül két óra alatt elkészül Nyissa meg az adatmappát, ahol megtalálja a cascade.xml Ezt az osztályozót
6. lépés: Az osztályozó tesztelése
Az adatmappa a fenti képen látható fájlokat tartalmazza.
Az osztályozó létrehozása után az object_detect.py program futtatásával láthatjuk, hogy az osztályozó működik -e vagy sem. Ne felejtse el elhelyezni a classifier.xml fájlt a python könyvtárban.
7. lépés: Külön köszönet
Szeretném megköszönni Sentdexnek, aki nagyszerű python programozó.
Van egy youtube neve a fent említett névvel, és a videó, amely sokat segített nekem, ezen a linken található:
A kód nagy része a sentdex -ből lett másolva. Bár sok segítséget kaptam a sentdextől, sok problémával szembesültem. Csak a tapasztalataimat akartam megosztani.
Remélem segített neked ez az áttekinthetetlen !!! Maradjon velünk.
BR
Tahir Ul Haq
Ajánlott:
Az Arduino pajzs nagyon egyszerű létrehozása (az EasyEDA használatával): 4 lépés

Az Arduino Shield nagyon egyszerű létrehozása (az EasyEDA használatával): Ebben az utasításban megtanítom, hogyan lehet nagyon könnyen létrehozni az Arduino Uno Shield -et. Nem megyek túl sok részletbe, de mellékeltem egy videót, ahol nézze meg egy kicsit részletesebben a szoftver használatát. Az EasyEDA webes alkalmazást használom, mivel
WiFi hőtérkép létrehozása az ESP8266 és az Arduino használatával: 5 lépés

WiFi hőtérkép létrehozása az ESP8266 és az Arduino használatával: Áttekintés Ebben az oktatóanyagban a környező Wi-Fi jelek hőtérképét készítjük el az Arduino és az ESP8266 segítségével. az Arduino és a TFT kijelző használatával
Alternatív MIDI vezérlő létrehozása Makey-Makey és víz használatával: 6 lépés

Alternatív MIDI vezérlő létrehozása a Makey-Makey és a Water használatával: A Makey-Makey használata hihetetlenül egyszerű és kreatív bemenetek létrehozásához! Míg sokan, akik a hardvert használják, saját hangszereiket hozzák létre a Makey-Makey bemeneteinek használatával hangok vagy hangok kiváltására, úgy döntöttünk, hogy még ennél is többet tehetünk
Arcfelismerés és azonosítás - Arduino arcazonosító OpenCV Python és Arduino használatával: 6 lépés

Arcfelismerés és azonosítás | Arduino arcazonosító az OpenCV Python és Arduino használatával .: Arcfelismerés Az AKA arcazonosító manapság az egyik legfontosabb funkció a mobiltelefonokban. Tehát felmerült bennem egy kérdés, " kaphatok arcazonosítót az Arduino projektemhez " és a válasz igen … Utazásom a következőképpen kezdődött: 1. lépés: Hozzáférés
Kiterjesztett valóság (AR) Dragonboard410c vagy Dragonboard820c esetén OpenCV és Python 3.5 használatával: 4 lépés

Kiterjesztett valóság (AR) Dragonboard410c vagy Dragonboard820c esetén OpenCV és Python 3.5 használatával: Ez az útmutató leírja, hogyan kell telepíteni az OpenCV, Python 3.5 és függőségeket a Python 3.5 számára a kiterjesztett valóság alkalmazás futtatásához