OtwórzMV
Tarcze
Obiektyw
Robotyka
Książka
Wideo
Pobierać
Dokumenty
Forum
OpenMV.io
GitHubSztuczna inteligencja obejmuje dwie bardzo powszechne zadania w dziedzinie przetwarzania obrazów: klasyfikację i wykrywanie obiektów.
Kategoria:Określenie, do której kategorii należy obraz, np. czy przedstawia kota, czy psa.
Wykrywanie obiektów:Służy do wykrywania położenia, liczby oraz rozmiarów wielu różnych obiektów na obrazie.
W poprzednich filmach instruktażowych wyjaśniliśmy, jak za pomocą OpenMV4 Plus przeprowadzić w trybie online trening sieci neuronowej do klasyfikacji różnych obiektów; urządzenie to potrafi w czasie rzeczywistym oceniać, czy obraz widoczny w polu widzenia OpenMV przedstawia określony obiekt, na przykład czy twarz jest zakryta maseczką, jednak nie umożliwia wyznaczenia współrzędnych położenia twarzy lub maseczki ani liczby wykrytych twarzy.
Ponieważ detekcja obiektów jest znacznie bardziej złożona i wymaga znacznie większych mocy obliczeniowych niż klasyfikacja, jest ona w dziedzinie mikrokontrolerów rzadko spotykana. Główne MCU modułu OpenMV to STM32H7. Obecnie dodaliśmy do naszego rozwiązania OpenMV nową funkcję umożliwiającą wykonywanie na mikrokontrolerach zadań podobnych do detekcji obiektów, której wydajność jest wyjątkowo wysoka.

Dziś przedstawimy PaństwuSzkolenie demonstruje wykrywanie znaków drogowych w rzeczywistym środowisku ulicznym, wykrywanie znaków drogowych na naszych rzeczywistych drogachnp. zakaz sygnalizowania, zakaz postoju, ograniczenie prędkości do 80 km/h itp., a nie w warunkach laboratoryjnych bez zakłóceń.
Cały projekt, w tym cały kod i modele, można znaleźć pod następującym adresem: https://book.openmv.cc/project/traffic-sign.html
Jak wiadomo, rzeczywiste warunki są bardzo złożone, zwłaszcza w środowisku drogowym, gdzie występuje wiele zakłóceń. Zdjęcia znaków drogowych w rzeczywistych warunkach uzyskano za pomocą urządzeń takich jak smartfony. Model został wytrenowany na platformie online EdgeImpulse naszego partnera OpenMV; oznaczono około 270 obrazów, a czas treningu wyniósł jedynie 10 minut. Dokładność uzyskanego modelu wyrażona wskaźnikiem F1 osiąga 92%, natomiast szybkość jego działania na urządzeniu OpenMV wynosi 10 klatek na sekundę, zapewniając płynne i precyzyjne działanie.
Korzystając z naszych instrukcji wideo, użytkownicy mogą przeszkolić model w celu wykrywania dowolnych obiektów, np. różnych cyfr, różnych owoców, różnych znaczników, różnych części lub nawet dowolnych konkretnych nieregularnych obiektów, uzyskując przy tym liczbę wykrytych obiektów, ich współrzędne oraz nazwy klas obiektów.
Uwaga:W niniejszym filmie instruktażowym omawiana jest funkcja wykrywania punktów docelowych w sieciach neuronowych, która nie tylko działa na module OpenMV4 H7 Plus, ale także na module OpenMV4 H7. Wytrenowany model wykrywania punktów docelowych FOMO jest bowiem niewielki, zapewnia wysoką skuteczność i zajmuje zaledwie kilkadziesiąt KB pamięci; nawet przy mniejszej pamięci operacyjnej modułu OpenMV4 H7 możliwe jest wytrenowanie nieco mniejszego modelu do uruchomienia na tym module.
Poniżej przedstawiamy krótkie wyjaśnienie zasady działania:
Główna decyzja projektowa dotycząca wykrywania punktów docelowych FOMO na platformie OpenMV opiera się na założeniu, że wiele zadań wykrywania obiektów w rzeczywistości nie wymaga znajomości rozmiaru obiektu, lecz jedynie jego położenia na obrazie. Gdy już znamy położenie obiektu, możemy przeprowadzić kolejne operacje, takie jak sterowanie pojazdem przez OpenMV w kierunku wykrytego celu, lądowanie drona w określonym miejscu lub sterowanie ramieniem robota w celu chwytania konkretnego obiektu.
Model FOMO to specjalnie zaprojektowany przez EdgeImpulse model przeznaczony do środowisk mikrokontrolerów; w przeciwieństwie do typowych modeli wykrywania obiektów pozwala on jedynie na wykrycie położenia oraz liczby wielu obiektów, ale nie umożliwia uzyskania ich dokładnych wymiarów.
Podstawowa zasada działania modelu FOMO jest bardzo prosta i elastyczna. Najpierw obraz jest dzielony na fragmenty, każdy o rozmiarze 8×8 pikseli. W przypadku obrazu o rozdzielczości 96×96 uzyskuje się siatkę o wymiarach 12×12 komórek. Dla obrazu o rozdzielczości 360×360 uzyskuje się siatkę o wymiarach 40×40 komórek. Następnie w każdej komórce niezależnie wykonuje się klasyfikację obrazu.
W porównaniu do YOLO V5 lub MobileNet SSD FOMO znacznie lepiej radzi sobie z wykrywaniem dużej liczby małych obiektów. Wykrywanie punktów docelowych za pomocą FOMO jest 30 razy szybsze niż za pomocą MobileNet SSD.
Efekt działania modelu FOMO będzie lepszy, jeśli obiekty podlegające wykryciu mają podobne rozmiary, np. gdy rozmiary rozpoznawanych znaków różnią się w niewielkim stopniu, a nie gdy występują jednocześnie bardzo duże i bardzo małe obiekty.
OpenMV wykorzystuje usługę EdgeImpulse do onlineowego uczenia sieci neuronowych w zakresie wykrywania obiektów; proces ten obejmuje następujące etapy: zbieranie i przesyłanie zestawu danych obrazowych, oznaczanie obiektów, uczenie modelu, testowanie modelu oraz jego wdrażanie.
* Zbieranie zbioru danych obrazowych: wykonywanie zdjęć określonych obiektów w środowisku, w którym będą one rzeczywiście rozpoznawane. Zdjęcia są robione w tym samym środowisku, w którym będzie odbywać się rozpoznawanie; środowisko rzeczywistej nauki i środowisko rzeczywistego wykrywania są zasadniczo identyczne, co zapewnia lepsze rezultaty.
* Oznaczenie obiektów docelowych: wyznaczenie ramki wokół każdego obiektu docelowego w naszym zbiorze danych oraz przypisanie do niej nazwy odpowiedniego obiektu, co ułatwia późniejsze szkolenie modelu oraz wykrywanie położenia i nazw obiektów.
* Model treningowy: Po zakończeniu etykietowania model jest trenowany zgodnie z zaprojektowanymi przez nas parametrami sieci neuronowej konwolucyjnej.
* Model testowy: Przeprowadzamy testy na podstawie wytrenowanego modelu; w przypadku niesatysfakcjonujących wyników odpowiednio zwiększamy zbiór danych treningowych lub modyfikujemy parametry treningowe, a następnie kontynuujemy proces uczenia, aż uzyskamy model spełniający nasze oczekiwania.
*Wdrożenie: Gotowy plik modelu umieszczamy na wbudowanym dysku USB modułu OpenMV i uruchamiamy go.
Poniżej przedstawiamy konkretny przebieg procedury:
01. Zbieranie i przesyłanie zbioru danych obrazowych
I. Najpierw zaloguj się na stronę internetową edgeimpulse.com, wybierz opcję „Zaloguj się”, wprowadź nazwę nowego projektu oraz wybierz pozycję „Obrazy” → „Klasyfikacja wielu obiektów”

II. Wybierz obraz do przesłania. Istnieje kilka sposobów uzyskania zestawu danych zawierającego obrazy:
1. Przechwytywanie obrazów w czasie rzeczywistym za pomocą środowiska IDE OpenMV. Tworzenie nowego zestawu danych i przechwytywanie obrazów w czasie rzeczywistym przy użyciu narzędzia „Edytor zestawów danych” dostępnego w środowisku IDE OpenMV; szczegółowe informacje można znaleźć w naszym poprzednim filmie instruktażowym dotyczącym klasyfikacji obiektów i rozpoznawania masek.

2. Obrazy pobrane z sieci lub wykonane rzeczywistym telefonem komórkowym. Najlepiej, aby odpowiadały one rzeczywistemu środowisku, w którym przeprowadzane są pomiary. Przygotowaliśmy czterysta–pięćset zdjęć znaków drogowych, takich jak „Zakaz postoju”, „Zakaz używania sygnału dźwiękowego” oraz „Ograniczenie prędkości do 80 km/h”. Każde zdjęcie zostało zarejestrowane na rzeczywistej drodze; ten zbiór danych można pobrać z naszego repozytorium GitHub oraz strony z poradnikami.
02. Określenie celu oznaczania
Dla każdej kategorii przesyłane jest około 100 obrazów; po zakończeniu przesyłania obrazów należy przeprowadzić ich adnotację, określając położenie oraz kategorię obiektów, które mają zostać rozpoznane.


03. Trenowanie modelu
Zaprojektuj parametry szkolenia, zmień rozdzielczość na 128 × 128 i pozostaw wszystkie ustawione parametry jako domyślne; kliknij przycisk „Zapisz”.

Generowanie funkcji, przy czym trzy kolory reprezentują trzy różne znaki.

Ustaw parametry treningu detekcji obiektów. Domyślna liczba epok treningu wynosi 60, współczynnik uczenia się to 0,001, a udział zbioru walidacyjnego to 20%. Zaznacz opcję wzmocnienia danych. W przypadku uczenia transferowego można wybrać domyślny model MobileNetV2 0,35 lub MobileNetV2 0,1. (Uwaga: nie można używać SSD, ponieważ ten algorytm nie działa na platformie OpenMV.)
Wybierz opcję rozpoczęcia treningu. Po zakończeniu treningu uzyskany model sieci neuronowej osiąga wynik F1 na poziomie 91,2 %; możemy zapisać bieżącą wersję.

Wybierz miejsce przechowywania, wprowadź opis i wybierz opcję Zapisz.

04. Wdrożenie modelu
Eksportuj plik przeszkolonego modelu. Wystarczy wyeksportować bibliotekę; wybierz OpenMV, kliknij „Build”, a następnie rozpocznie się wdrażanie i eksport modelu.

Automatycznie pobierze on model wyeksportowany przez nas – w tym przypadku jest to model wytrenowany na 300 obrazach – a tym samym zakończy się cały proces uczenia.

05. Uruchomienie modelu
Uruchamianie modelu na OpenMV:
Połącz się z OpenMV Plus, umieść trzy wytrenowane pliki w wbudowanym dysku USB OpenMV oraz otwórz plik ei_object_detection.py w środowisku IDE OpenMV. Kliknij przycisk „Uruchom”, a wyniki działania będą wyświetlane w terminalu szeregowym.


Ta funkcja działa również na module OpenMV4. Ponieważ moduł OpenMV4 nie posiada zewnętrznej pamięci SDRAM, jego pamięć jest mniejsza; można jednak zmniejszyć rozmiar modelu, aby umożliwić jego działanie na module OpenMV4.
Istnieją dwa sposoby zmniejszenia rozmiaru modelu:
I. Zmniejszenie rozdzielczości uczenia – zmiana rozdzielczości z 128 × 128 na 96 × 96.
II. Zmodyfikowanie użytego modelu uczenia przenoszonego: zastąpienie MobileNetV2 0,35 modelem MobileNetV2 0,1.
Ostatecznie wdrożony plik treningowy należy umieścić w module OpenMV4 i uruchomić.
Powys above to nasz samouczek dotyczący wykrywania punktów docelowych. Czekamy na Twoje osiągnięcia!

AI Stróż oparty na OpenMV: automatyczne powiadomienie o niezamknięciu miejsc kluczowych
Automatyczne wykrywanie, czy drzwi w kluczowych miejscach pozostają otwarte przez dłuższy czas, oraz natychmiastowe powiadamianie o tym fakcie.

Alarm w przypadku przekroczenia granicy przez osobę – OpenMV interpretuje pojęcie „bezpiecznej strefy granicznej”
Rozpoznawanie przekroczenia granicy przez osoby lub urządzenia za pomocą wirtualnej linii alarmowej.

„AI Inspektor Miast” już dostępny – system automatycznego rozpoznawania niezgodnego z przepisami prowadzenia działalności handlowej na terenach publicznych oparty na platformie OpenMV
Automatyczne rozpoznawanie działalności handlowej na drogach publicznych w celu wspierania codziennej administracji miejskiej.

Nieprawidłowe umieszczenie butli gazowych? Automatyczne wyzwalanie ostrzeżenia o zagrożeniu przy użyciu OpenMV
Automatyczne rozpoznawanie niezgodnych miejsc umieszczenia butli gazowych oraz wcześniejsze wykrywanie zagrożeń związanych z gazem.

Wykonywanie prac pod napięciem bez stosowania rękawiczek izolacyjnych? OpenMV natychmiast wydaje alarm!
Automatyczne rozpoznawanie, czy pracownicy noszą rękawice izolacyjne, wspierające bezpieczną pracę.

Zastosowanie inteligentnej kamery OpenMV do rzeczywistego rozpoznawania wad powierzchni płytek aluminiowych
Onlineowe wykrywanie wad powierzchniowych płyt aluminiowych, takich jak zadrapania i wgniecia, wspierające kontrolę jakości.