Spisu treści:

Tworzenie klasyfikatorów obrazów OpenCV za pomocą Pythona: 7 kroków
Tworzenie klasyfikatorów obrazów OpenCV za pomocą Pythona: 7 kroków

Wideo: Tworzenie klasyfikatorów obrazów OpenCV za pomocą Pythona: 7 kroków

Wideo: Tworzenie klasyfikatorów obrazów OpenCV za pomocą Pythona: 7 kroków
Wideo: ZPO01 Wstęp i metody klasyczne 2024, Lipiec
Anonim
Twórz klasyfikatory obrazów OpenCV za pomocą Pythona
Twórz klasyfikatory obrazów OpenCV za pomocą Pythona

Klasyfikatory Haar w Pythonie i opencv to dość trudne, ale łatwe zadanie.

Często napotykamy problemy z wykrywaniem i klasyfikacją obrazów. najlepszym rozwiązaniem jest stworzenie własnego klasyfikatora. Tutaj uczymy się tworzyć własne klasyfikatory obrazów za pomocą kilku poleceń i długich, ale prostych programów w Pythonie

Klasyfikacja wymaga dużej liczby obrazów negatywowych i pozytywowych negatywy nie zawierają wymaganego obiektu, natomiast pozytywy to takie, które zawierają obiekt do wykrycia.

Wymagane jest około 2000 negatywów i pozytywów. Program python konwertuje obraz do skali szarości i odpowiedniego rozmiaru, aby klasyfikatory potrzebowały optymalnego czasu na utworzenie.

Krok 1: Wymagane oprogramowanie

Do stworzenia własnego klasyfikatora potrzebujesz następującego oprogramowania

1) OpenCV: wersja, której użyłem to 3.4.2. wersja jest łatwo dostępna w Internecie.

2) Python: Używana jest wersja 3.6.2. Można pobrać ze strony python.org

Ponadto potrzebujesz kamery internetowej (oczywiście).

Krok 2: Pobieranie obrazów

Pierwszym krokiem jest zrobienie wyraźnego obrazu przedmiotu, który ma być sklasyfikowany.

Rozmiar nie powinien być bardzo duży, ponieważ przetwarzanie przez komputer zajmuje więcej czasu. Wziąłem rozmiar 50 na 50.

Następnie pobieramy obrazy negatywne i pozytywne. Możesz je znaleźć w Internecie. Ale używamy kodu Pythona do pobierania obrazów z „https://image-net.org”

Następnie konwertujemy obrazy do skali szarości i do normalnego rozmiaru. Jest to również zaimplementowane w kodzie. Kod usuwa również wszelkie wadliwe obrazy

Twój katalog powinien teraz zawierać obraz obiektu, np. watch5050-j.webp

Jeśli folder danych nie został utworzony, zrób to ręcznie

Kod Pythona znajduje się w pliku.py

Krok 3: Tworzenie pozytywnych próbek w OpenCV

Tworzenie pozytywnych próbek w OpenCV
Tworzenie pozytywnych próbek w OpenCV
Tworzenie pozytywnych próbek w OpenCV
Tworzenie pozytywnych próbek w OpenCV

Teraz przejdź do katalogu opencv_createsamples i dodaj wszystkie wyżej wymienione treści

w wierszu polecenia przejdź do C:\opencv342\build\x64\vc14\bin, aby znaleźć aplikacje opencv_createsamples i opencv_traincascade

teraz wykonaj następujące polecenia

opencv_createsamples -img watch5050-j.webp

To polecenie służy do tworzenia pozytywnych próbek obiektu 1950 a dokładnie opis pliku info.pierwszy z pozytywnych zdjęć opis powinien wyglądać tak 0001_0014_0045_0028_0028-j.webp

Teraz folder zawiera

informacje

katalog z negatywami

plik bg.txt

pusty folder danych

Krok 4: Tworzenie pozytywnego pliku wektorowego

Tworzenie pozytywnego pliku wektorowego
Tworzenie pozytywnego pliku wektorowego

Teraz utwórz pozytywowy plik wektorowy, który zapewnia ścieżkę do pozytywowych obrazów, plik z opisem

Użyj następującego polecenia

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

Do tej pory zawartość katalogu musi wyglądać następująco:

--neg

----negimages.jpg

--opencv

--informacje

--dane

--pozytywy.vec

--bg.txt

--watch5050.jpg(wymagany obraz obiektu)

Krok 5: Szkolenie klasyfikatora

Szkolenie klasyfikatora
Szkolenie klasyfikatora
Szkolenie klasyfikatora
Szkolenie klasyfikatora
Szkolenie klasyfikatora
Szkolenie klasyfikatora

Teraz wytrenujmy kaskadę haar i utwórzmy plik xml

Użyj następującego polecenia

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

etapy to 10 Zwiększanie etapów wymaga więcej przetwarzania, ale klasyfikator jest znacznie bardziej wydajny.

Teraz jest utworzony haarcascade Ukończenie zajmuje około dwóch godzin Otwórz folder danych tam znajdziesz cascade.xml To jest klasyfikator który zostałutworzony

Krok 6: Testowanie klasyfikatora

Folder danych zawiera pliki, jak pokazano na powyższym obrazku.

Po utworzeniu klasyfikatora sprawdzamy, czy klasyfikator działa, czy nie uruchamiając program object_detect.py. Nie zapomnij umieścić pliku classifier.xml w katalogu Pythona.

Krok 7: Specjalne podziękowania

Chciałbym podziękować tutaj Sentdex, który jest świetnym programistą Pythona.

Ma youtube nazwę o wyżej wymienionej nazwie, a film, który bardzo mi pomógł, ma ten link

Większość kodu została skopiowana z senddexu. Chociaż sentdex bardzo mi pomógł, wciąż napotykałem wiele problemów. Chciałem tylko podzielić się moim doświadczeniem.

Mam nadzieję, że ten trudny do opanowania ci pomógł!!! Czekajcie na więcej.

BR

Tahir Ul Haq

Zalecana: