Obsah:

Vytvořte klasifikátory obrázků OpenCV pomocí Pythonu: 7 kroků
Vytvořte klasifikátory obrázků OpenCV pomocí Pythonu: 7 kroků

Video: Vytvořte klasifikátory obrázků OpenCV pomocí Pythonu: 7 kroků

Video: Vytvořte klasifikátory obrázků OpenCV pomocí Pythonu: 7 kroků
Video: Создайте своего собственного помощника по искусственному интеллекту. Часть 3. Классификация объектов с помощью Python 2024, Červenec
Anonim
Vytvořte klasifikátory obrázků OpenCV pomocí Pythonu
Vytvořte klasifikátory obrázků OpenCV pomocí Pythonu

Klasifikátory Haar v pythonu a opencv jsou poměrně složité, ale snadné.

Často se potýkáme s problémy v detekci a klasifikaci obrazu. nejlepším řešením je vytvořit si vlastní klasifikátor. Zde se učíme vytvářet vlastní klasifikátory obrázků s několika příkazy a dlouhými, ale jednoduchými pythonovými programy

Klasifikace vyžaduje velký počet negativních a pozitivních obrazů, negativy neobsahují požadovaný objekt, zatímco pozitivy jsou ty, které obsahují detekovaný objekt.

Je vyžadováno asi 2 000 negativů a pozitiv. Program python převádí obrázek na stupně šedi a vhodnou velikost, takže vytváření klasifikátorů zabere optimální čas.

Krok 1: Je vyžadován software

K vytvoření vlastního klasifikátoru potřebujete následující software

1) OpenCV: verze, kterou jsem použil, je 3.4.2. verze je snadno dostupná na internetu.

2) Python: Používá se verze 3.6.2. Lze stáhnout z python.org

Kromě toho potřebujete webovou kameru (samozřejmě).

Krok 2: Stažení obrázků

Prvním krokem je udělat jasný obrázek o předmětu, který má být klasifikován.

Velikost by neměla být příliš velká, protože zpracování počítače trvá delší dobu. Vzal jsem velikost 50 na 50.

Dále stáhneme negativní a pozitivní obrázky. Najdete je na internetu. Ke stahování obrázků z 'https://image-net.org' ale používáme kód pythonu

Dále převedeme obrázky na stupně šedi a na normální velikost. Toto je také implementováno v kódu. Kód také odstraní jakýkoli vadný obrázek

Nyní by váš adresář měl obsahovat obrázek objektu, např. Watch5050-j.webp

Pokud datová složka není vytvořena, proveďte to ručně

Kód pythonu je uveden v souboru.py

Krok 3: Vytvoření pozitivních vzorků v OpenCV

Vytváření pozitivních vzorků v OpenCV
Vytváření pozitivních vzorků v OpenCV
Vytváření pozitivních vzorků v OpenCV
Vytváření pozitivních vzorků v OpenCV

Nyní přejděte do adresáře opencv_createsamples a přidejte veškerý výše uvedený obsah

v příkazové řádce přejděte na C: / opencv342 / build / x64 / vc14 / bin a vyhledejte aplikace opencv_createsamples a opencv_traincascade

nyní proveďte následující příkazy

opencv_createsamples -img watch5050-j.webp

Tento příkaz slouží k vytvoření pozitivních vzorků objektu 1950, aby byly přesné. A popisný soubor info.lst pozitivních obrázků, popis by měl vypadat takto 0001_0014_0045_0028_0028-j.webp

Nyní složka obsahuje

informace

složka s neg obrázky

soubor bg.txt

prázdná datová složka

Krok 4: Vytvoření pozitivního vektorového souboru

Vytvoření pozitivního vektorového souboru
Vytvoření pozitivního vektorového souboru

Nyní vytvořte soubor pozitivního vektoru, který poskytuje cestu k souboru s popisem pozitivních obrázků

Použijte následující příkaz

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

Obsah adresáře již musí být následující:

--neg

---- negimages.jpg

--opencv

--info

--data

--positive.vec

--bg.txt

--watch5050-j.webp

Krok 5: Školení klasifikátoru

Školení klasifikátoru
Školení klasifikátoru
Školení klasifikátoru
Školení klasifikátoru
Školení klasifikátoru
Školení klasifikátoru

Nyní můžeme vycvičit kaskádu haarů a vytvořit soubor xml

Použijte následující příkaz

opencv_traincascade -data data -vec pozitiva.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20

etapy jsou 10 Zvýšení fází vyžaduje více zpracování, ale klasifikátor je mnohem efektivnější.

Nyní je vytvořena haarcascade. Dokončení trvá asi dvě hodiny. Otevřete složku s daty, kde najdete cascade.xml Toto je klasifikátor, který byl vytvořen

Krok 6: Testování klasifikátoru

Datová složka obsahuje soubory, jak je znázorněno na obrázku výše.

Po vytvoření klasifikátoru uvidíme, zda klasifikátor funguje nebo ne, spuštěním programu object_detect.py. Nezapomeňte umístit soubor classifier.xml do adresáře python.

Krok 7: Zvláštní poděkování

Chtěl bych poděkovat Sentdexu, který je skvělým programátorem pythonu.

Má jméno na youtube s výše uvedeným jménem a video, které mi hodně pomohlo, má tento odkaz

Většina kódu byla zkopírována ze sentdex. I když si od sentdexu vzal velkou pomoc, stále jsem se potýkal se spoustou problémů. Jen jsem se chtěl podělit o své zkušenosti.

Doufám, že vám tato nestrukturální pomohla !!! Zůstaňte naladěni na další.

BR

Tahir Ul Haq

Doporučuje: