Wstępnie wytrenowana kaskadowa klasyfikacja obrazów

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Tworzy wstępnie wytrenowany model klasyfikacji obrazów dla twarzy frontalnych przy użyciu biblioteki OpenCV

Kategoria: Moduły biblioteki OpenCV

Uwaga

Dotyczy: Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w Azure Machine Learning projektanta.

Omówienie modułu

W tym artykule opisano sposób używania modułu Wstępnie wytrenowana kaskadowa klasyfikacja obrazów w programie Machine Learning Studio (wersja klasyczna) do wykrywania twarzy na obrazach.

Model jest oparty na bibliotece OpenCV . Biblioteka OpenCV zawiera listę wstępnie zdefiniowanych modeli, z których każdy jest zoptymalizowany pod kątem wykrywania określonego typu obiektu.

Więcej informacji o wstępnie wytrenowany model

Ten model rozpoznawania obrazów został już wytrenowany na dużym korcie obrazów, który jest powszechnie używany do zadań rozpoznawania obrazów. Ten konkretny model klasyfikacji został zoptymalizowany pod kątem wykrywania twarzy i używa Viola-Jones wykrywania obiektów. Celem modelu jest zidentyfikowanie obrazów zawierających ludzką twarz w widoku frontowym.

Chociaż obecnie dostępny jest tylko jeden model klasyfikacji obrazów OpenCV, dodatkowe wstępnie wytrenowane modele mogą być dostępne w późniejszych wersjach.

Korzystanie ze wstępnie wytrenego modelu

Jeśli masz zestaw obrazów, które chcesz przeanalizować, podaj je jako dane wejściowe modułu Score Model (Ocena modelu) zgodnie z opisem w tym temacie i dołącz ten moduł, który udostępnia wstępnie wytrenowany model biblioteki OpenCV.

Moduł Score Model (Ocena modelu) używa modelu klasyfikacji obrazów do określenia, czy obraz zawiera ludzką twarz, i zwraca wynik prawdopodobieństwa dla każdego obrazu użytego jako dane wejściowe.

Modeli opartych na wstępnie wytrenowane klasyfikacji obrazów kaskadowych nie można ponownie wytrenować na podstawie nowych danych obrazu.

Format, w którym jest przechowywany model, jest niezgodny z modułami Train Model (Trenowanie modelu) i Cross-Validate Model (Model krzyżowy ).

Jak skonfigurować wstępnie wytrenowane kaskadowe klasyfikacje obrazów

Model klasyfikacji obrazów w Machine Learning został już wytrenowany przy użyciu dużego zestawu danych i jest zoptymalizowany pod kątem określonego typu obrazu. W związku z tym wystarczy podać zestaw obrazów jako zestaw danych oceniania. Jako dane wyjściowe moduł generuje wynik, który wskazuje, czy każdy obraz zawiera typ obrazu docelowego.

  1. Przygotuj i zaimportuj zestaw danych obrazów, których planujesz używać podczas oceniania. Ogólnie wszystkie obrazy w zestawie danych powinny mieć ten sam rozmiar.

    Obrazy można dodać do eksperymentu przy użyciu modułu Import Images (Importowanie obrazów ). Zapoznaj się z pomocą przy importowaniu obrazów, aby upewnić się, że obrazy, których używasz, spełniają wymagania. Należy również upewnić się, że obrazy są dostępne w zdefiniowanej opcji magazynu.

  2. Dodaj moduł Pretrained Cascade Image Classification (Wstępnie wytrenowana kaskadowa klasyfikacja obrazów) do eksperymentu w programie Studio (wersja klasyczna). Ten moduł można znaleźć w kategorii Biblioteka OpenCV .

  3. Wybierz jeden ze wstępnie wytrenowany klasyfikator z listy w tece Wstępnie wytrenowany klasyfikator.

    Obecnie dostępny jest tylko jeden klasyfikator: twarz frontalna, która jest domyślnie zaznaczona.

  4. Współczynnik skali: wpisz wartość określającą, o ile rozmiar obrazu jest mniejszy w każdej skali obrazu.

    W bibliotece OpenCV klasyfikator został zaprojektowany tak, aby można go było łatwo "zmienić" w celu znajdowania obiektów o różnych rozmiarach. Jest to bardziej wydajne niż zmiana rozmiaru samego obrazu. W związku z tym, aby znaleźć obiekt o nieznanym rozmiarze na obrazie, procedura skanowania powinna być wykonywana kilka razy w różnych skalach.

    Zalecamy wypróbowanie różnych czynników skalowania, aby zobaczyć, który z nich zapewnia najlepsze wyniki klasyfikacji obrazów.

  5. Minimalna liczba sąsiadów: wpisz liczbę całą reprezentującą minimalną liczbę nakładających się prostokątów, które są wymagane do wykrycia, że twarz znajduje się w regionie.

    W bibliotece OpenCV klasyfikator wykrywa obiekty o różnych rozmiarach w obrazie wejściowym. Wykryte obiekty są zwracane jako lista prostokątów. Parametr sąsiadów określa, ile możliwych dopasowania jest wymaganych do zakwalifikowania się jako wykryta twarz lub funkcja. W związku z tym zwiększenie tej wartości zwykle zwiększa precyzję kosztem pokrycia.

    Przykłady obliczania sąsiadów można znaleźć w tym artykule w dokumentacji biblioteki OpenCv: Eigenfaces in OpenCV

  6. Opcjonalnie możesz użyć poniższych ustawień, aby określić rozmiar obrazu dla modelu, aby można było lepiej przewidywać. Obrazy, które nie spełniają wymagań, są eliminowane:

    • Minimalna wysokość: wpisz wysokość pikseli najmniejszego obrazu. Jeśli określisz wartość tej właściwości, obrazy mniejsze niż ta zostaną zignorowane.

    • Maksymalna wysokość. Wpisz szerokość pikseli największego obrazu. Jeśli określisz wartość tej właściwości, obrazy większe niż ta zostaną zignorowane.

    • Minimalna szerokość: wpisz szerokość pikseli najmniejszego obrazu. Jeśli określisz wartość tej właściwości, obrazy mniejsze niż ta zostaną zignorowane.

    • Maksymalna szerokość: wpisz szerokość pikseli największego obrazu. Jeśli określisz wartość tej właściwości, obrazy większe niż ta zostaną zignorowane.

  7. Połączenie zestaw danych obrazu używany do oceniania.

  8. Dodaj moduł Score Model (Ocena modelu) do eksperymentu i połącz wstępnie wytrenowany klasyfikator obrazów oraz zestaw danych obrazów.

  9. Uruchom eksperyment.

Wyniki

Dane wyjściowe tabeli Score Model (Ocena modelu) obejmują nazwę obrazu, etykietę z ocenami i wynik prawdopodobieństwa dla etykiety (0 lub 1). Klasyfikator wyświetla wynik "1", jeśli obraz prawdopodobnie pokaże obiekt (twarz), a w przeciwnym razie "0". Na przykład:

Nazwa obrazu Etykiety z wynikami Scored Probabilities
MAN001.png TRUE 1
TABLE001.PNG FALSE 0
CHAIR001.PNG FALSE 0

Porada

Dane wyjściowe zawierają również wartości RGB dla wszystkich kanałów kolorów w zestawie danych. W związku z tym, aby łatwiej wyświetlać dane, zalecamy, aby w eksperymencie użyć polecenia Select Columns in Dataset (Wybieranie kolumn w zestawie danych), aby wyświetlić tylko kolumny wyników.

Uwagi techniczne

Model rozpoznawania twarzy dostarczany w tym module jest oparty na algorytmie wykrywania Viola-Jones twarzy. Aby uzyskać więcej informacji, zobacz następujące zasoby:

  • W tym filmie opisano podstawowe pojęcia dotyczące rozpoznawania twarzy, w tym definicję cech haar i sposób ich korzystania z wykrywania twarzy: wykrywanie twarzy — część 1

  • W tym artykule w Wikipedii opisano metodę używaną przez klasyfikator na podstawie dokumentu Navneet Dalal i Billa Triggsa: Histogram gradientów zorientowanych

  • Aby uzyskać dokumentację algorytmu rozpoznawania twarzy w bibliotece OpenCV, zobacz Klasyfikator kaskadowy.

Uwaga

Ten moduł nie wyprowadza pełnej kolekcji informacji wytwarzanych przez bibliotekę OpenCV. W szczególności ten moduł przedstawia tylko przewidywanie, czy twarz jest obecna, czy nie, i nie zawiera współrzędnych twarzy ani żadnych innych informacji.

Jeśli potrzebujesz tych dodatkowych informacji, rozważ użycie innych bibliotek, takich jak interfejs API rozpoznawania twarzy dostarczany przez firmę Microsoft Cognitive Services.

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Wstępnie wytrenowany klasyfikator Lista PretrainedClassifier Twarz frontalna Wstępnie wytrenowany klasyfikator ze standardowej dystrybucji OpenCV.
Współczynnik skali >=1.000000000000002 Float 1.1 Parametr określający, o ile rozmiar obrazu jest mniejszy w każdej skali obrazu.
Minimalna liczba sąsiadów >= 0 Liczba całkowita 3 Parametr określający, ilu sąsiadów powinien mieć każdy prostokąt kandydowania, aby go zachować.
Minimalna wysokość >= 1 Liczba całkowita 100 Minimalna możliwa wysokość obiektu (w pikselach). Obiekty mniejsze niż te są ignorowane.

Parametr jest opcjonalny.
Minimalna szerokość >= 1 Liczba całkowita 100 Minimalna możliwa szerokość obiektu (w pikselach). Obiekty mniejsze niż te są ignorowane.

Parametr jest opcjonalny.
Maksymalna wysokość >= 1 Liczba całkowita 200 Maksymalna możliwa wysokość obiektu (w pikselach). Obiekty większe niż te są ignorowane.

Parametr jest opcjonalny.
Maksymalna szerokość >= 1 Liczba całkowita 200 Maksymalna możliwa szerokość obiektu (w pikselach). Obiekty większe niż te są ignorowane.

Parametr jest opcjonalny.

Dane wyjściowe

Nazwa Typ Opis
Wytrenowany model ILearner, interfejs Wytrenowany binarny model klasyfikacji

Wyjątki

Wyjątek Opis
Błąd 0005 Wyjątek występuje, jeśli parametr jest mniejszy niż określoną wartość.

Aby uzyskać listę błędów specyficznych dla modułów programu Studio (wersja klasyczna), zobacz Machine Learning Kodów błędów.

Aby uzyskać listę wyjątków interfejsu API, zobacz Machine Learning API REST Error Codes (Kody błędów interfejsu API REST).

Zobacz też

Importowanie obrazów
Wstępnie wytrenowana kaskadowa klasyfikacja obrazów