
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

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


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

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



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:
Usuń tło wielu obrazów za pomocą programu Photoshop 2020: 5 kroków

Usuń tło wielu obrazów za pomocą programu Photoshop 2020: Usuwanie tła obrazu jest teraz bardzo łatwe! Oto jak używać Adobe Photoshop 2020 do usuwania tła wielu obrazów (wsadowych) za pomocą prostego skryptu
Przechwytywanie i wysyłanie obrazów za pomocą ESP32-Cam przy użyciu procesora Wifi ESP8266 WeMos D1 R1 z Uno: 7 kroków

Przechwytuj i wysyłaj obrazy za pomocą ESP32-Cam za pomocą procesora Wi-Fi ESP8266 WeMos D1 R1 z Uno: Przechwytuj obraz za pomocą ESP32-Cam (OV2640) za pomocą procesora WiFI ESP8266 WeMos D1 R1 z Uno i wyślij go na e-mail, zapisz na Dysku Google i wyślij na Whatsapp przy użyciu Twilio.Wymagania: ESP8266 WeMos D1 R1 WiFI Processor z Uno (https://protosupplies
Monitorowanie akceleracji za pomocą Raspberry Pi i AIS328DQTR za pomocą Pythona: 6 kroków

Monitorowanie przyspieszenia za pomocą Raspberry Pi i AIS328DQTR Za pomocą Pythona: Przyspieszenie jest skończone, myślę, że zgodnie z niektórymi prawami fizyki.- Terry Riley Gepard wykorzystuje niesamowite przyspieszenie i szybkie zmiany prędkości podczas pościgu. Najszybsze stworzenie na lądzie od czasu do czasu wykorzystuje swoje najwyższe tempo do łapania zdobyczy. Ten
Tworzenie obrazów bez szwu tylko w poziomie lub w pionie (dla „GIMP”) .: 11 kroków (ze zdjęciami)

Tworzenie obrazów bez szwu tylko w poziomie lub w pionie (dla „GIMP”).: Jeśli wypróbujesz wtyczkę „Make seamless” w GIMP, sprawi to, że obraz będzie płynny zarówno w poziomie, jak i w pionie w tym samym czasie. Nie pozwoli na bezproblemowe wykonanie go tylko w jednym wymiarze. Ta instrukcja pomoże ci stworzyć im
Dodaj tekst do obrazów za pomocą polecenia „konwertuj” systemu Linux: 3 kroki

Dodaj tekst do obrazów za pomocą polecenia „konwertuj” systemu Linux: Ta instrukcja pokaże, jak dodać tekst do obrazu za pomocą polecenia konwertuj w systemie Linux. Cennym zastosowaniem tego jest umieszczenie podpisu na obrazie w celu dokumentacji. Innym zastosowaniem byłoby umieszczenie znacznika czasu na obrazie, który g