|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago | |
pi-camera.md | 4 weeks ago | |
single-board-computer-classify-image.md | 4 weeks ago | |
virtual-device-camera.md | 4 weeks ago | |
wio-terminal-camera.md | 4 weeks ago | |
wio-terminal-classify-image.md | 4 weeks ago |
README.md
Sprawdź jakość owoców za pomocą urządzenia IoT
Szkic autorstwa Nitya Narasimhan. Kliknij obrazek, aby zobaczyć większą wersję.
Quiz przed wykładem
Wprowadzenie
W poprzedniej lekcji nauczyłeś się o klasyfikatorach obrazów i o tym, jak je trenować, aby wykrywać dobre i złe owoce. Aby użyć tego klasyfikatora obrazów w aplikacji IoT, musisz być w stanie uchwycić obraz za pomocą jakiegoś rodzaju kamery i przesłać ten obraz do chmury w celu klasyfikacji.
W tej lekcji dowiesz się o czujnikach kamer i o tym, jak używać ich z urządzeniem IoT do uchwycenia obrazu. Nauczysz się również, jak wywołać klasyfikator obrazów z urządzenia IoT.
W tej lekcji omówimy:
- Czujniki kamer
- Uchwycenie obrazu za pomocą urządzenia IoT
- Publikacja klasyfikatora obrazów
- Klasyfikacja obrazów z urządzenia IoT
- Udoskonalenie modelu
Czujniki kamer
Czujniki kamer, jak sama nazwa wskazuje, to kamery, które można podłączyć do urządzenia IoT. Mogą robić zdjęcia lub rejestrować strumieniowe wideo. Niektóre zwracają surowe dane obrazowe, inne kompresują dane obrazowe do pliku graficznego, takiego jak JPEG lub PNG. Zazwyczaj kamery współpracujące z urządzeniami IoT są znacznie mniejsze i mają niższą rozdzielczość niż te, do których możesz być przyzwyczajony, ale można znaleźć kamery o wysokiej rozdzielczości, które dorównują najlepszym telefonom. Dostępne są różne wymienne obiektywy, zestawy wielokamerowe, kamery termiczne na podczerwień czy kamery UV.
Większość czujników kamer wykorzystuje czujniki obrazu, gdzie każdy piksel jest fotodiodą. Obiektyw skupia obraz na czujniku obrazu, a tysiące lub miliony fotodiod wykrywają światło padające na każdą z nich i zapisują je jako dane pikselowe.
💁 Obiektywy odwracają obrazy, a czujnik kamery następnie odwraca obraz z powrotem do właściwej orientacji. To samo dzieje się w twoich oczach - to, co widzisz, jest wykrywane do góry nogami na tylnej części oka, a twój mózg to koryguje.
🎓 Czujnik obrazu jest znany jako Aktywny Czujnik Pikseli (APS), a najpopularniejszym typem APS jest czujnik komplementarny metal-oksydowy półprzewodnikowy, czyli CMOS. Możesz znać termin czujnik CMOS używany w odniesieniu do czujników kamer.
Czujniki kamer to czujniki cyfrowe, przesyłające dane obrazowe jako dane cyfrowe, zazwyczaj z pomocą biblioteki zapewniającej komunikację. Kamery łączą się za pomocą protokołów takich jak SPI, aby umożliwić przesyłanie dużych ilości danych - obrazy są znacznie większe niż pojedyncze liczby z czujnika, takiego jak czujnik temperatury.
✅ Jakie są ograniczenia dotyczące rozmiaru obrazu w urządzeniach IoT? Zastanów się nad ograniczeniami, szczególnie w przypadku sprzętu mikroprocesorowego.
Uchwycenie obrazu za pomocą urządzenia IoT
Możesz użyć swojego urządzenia IoT do uchwycenia obrazu, który ma zostać sklasyfikowany.
Zadanie - uchwycenie obrazu za pomocą urządzenia IoT
Przejdź przez odpowiedni przewodnik, aby uchwycić obraz za pomocą swojego urządzenia IoT:
- Arduino - Wio Terminal
- Komputer jednopłytkowy - Raspberry Pi
- Komputer jednopłytkowy - Wirtualne urządzenie
Publikacja klasyfikatora obrazów
W poprzedniej lekcji wytrenowałeś swój klasyfikator obrazów. Zanim będziesz mógł go używać z urządzenia IoT, musisz opublikować model.
Iteracje modelu
Podczas trenowania modelu w poprzedniej lekcji mogłeś zauważyć, że zakładka Performance pokazuje iteracje z boku. Kiedy po raz pierwszy trenowałeś model, widziałeś Iteration 1 w trakcie trenowania. Kiedy ulepszyłeś model za pomocą obrazów predykcyjnych, widziałeś Iteration 2 w trakcie trenowania.
Za każdym razem, gdy trenujesz model, powstaje nowa iteracja. Jest to sposób na śledzenie różnych wersji modelu trenowanych na różnych zestawach danych. Podczas Quick Test dostępny jest rozwijany wybór, który pozwala wybrać iterację, aby porównać wyniki między różnymi iteracjami.
Kiedy jesteś zadowolony z iteracji, możesz ją opublikować, aby była dostępna do użycia w aplikacjach zewnętrznych. Dzięki temu możesz mieć opublikowaną wersję używaną przez urządzenia, a następnie pracować nad nową wersją przez wiele iteracji, a następnie opublikować ją, gdy będziesz z niej zadowolony.
Zadanie - publikacja iteracji
Iteracje są publikowane z portalu Custom Vision.
-
Uruchom portal Custom Vision na CustomVision.ai i zaloguj się, jeśli jeszcze tego nie zrobiłeś. Następnie otwórz swój projekt
fruit-quality-detector
. -
Wybierz zakładkę Performance z opcji u góry.
-
Wybierz najnowszą iterację z listy Iterations z boku.
-
Wybierz przycisk Publish dla iteracji.
-
W oknie dialogowym Publish Model ustaw Prediction resource na zasób
fruit-quality-detector-prediction
, który utworzyłeś w poprzedniej lekcji. Pozostaw nazwę jakoIteration2
i wybierz przycisk Publish. -
Po opublikowaniu wybierz przycisk Prediction URL. Wyświetli to szczegóły dotyczące API predykcji, które będą potrzebne do wywołania modelu z urządzenia IoT. Dolna sekcja jest oznaczona If you have an image file i to są szczegóły, które cię interesują. Skopiuj URL, który będzie wyglądał mniej więcej tak:
https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/classify/iterations/Iteration2/image
Gdzie
<location>
będzie lokalizacją używaną podczas tworzenia zasobu Custom Vision, a<id>
będzie długim identyfikatorem składającym się z liter i cyfr.Skopiuj również wartość Prediction-Key. Jest to klucz zabezpieczający, który musisz przekazać podczas wywoływania modelu. Tylko aplikacje, które przekazują ten klucz, mogą korzystać z modelu, inne aplikacje są odrzucane.
✅ Kiedy nowa iteracja zostanie opublikowana, będzie miała inną nazwę. Jak myślisz, jak można zmienić iterację używaną przez urządzenie IoT?
Klasyfikacja obrazów z urządzenia IoT
Teraz możesz użyć tych szczegółów połączenia, aby wywołać klasyfikator obrazów z urządzenia IoT.
Zadanie - klasyfikacja obrazów z urządzenia IoT
Przejdź przez odpowiedni przewodnik, aby sklasyfikować obrazy za pomocą swojego urządzenia IoT:
Udoskonalenie modelu
Możesz zauważyć, że wyniki uzyskane przy użyciu kamery podłączonej do urządzenia IoT nie odpowiadają twoim oczekiwaniom. Predykcje nie zawsze są tak dokładne, jak w przypadku obrazów przesłanych z komputera. Dzieje się tak, ponieważ model był trenowany na innych danych niż te używane do predykcji.
Aby uzyskać najlepsze wyniki dla klasyfikatora obrazów, należy trenować model za pomocą obrazów, które są jak najbardziej podobne do obrazów używanych do predykcji. Na przykład, jeśli użyłeś kamery telefonu do uchwycenia obrazów do trenowania, jakość obrazu, ostrość i kolor będą różne od kamery podłączonej do urządzenia IoT.
Na powyższym obrazku zdjęcie banana po lewej zostało zrobione za pomocą kamery Raspberry Pi, a zdjęcie po prawej zostało zrobione tego samego banana w tym samym miejscu za pomocą iPhone'a. Widać zauważalną różnicę w jakości - zdjęcie z iPhone'a jest ostrzejsze, z jaśniejszymi kolorami i większym kontrastem.
✅ Co jeszcze może powodować, że obrazy uchwycone przez twoje urządzenie IoT mają nieprawidłowe predykcje? Zastanów się nad środowiskiem, w którym może być używane urządzenie IoT, jakie czynniki mogą wpływać na uchwycony obraz?
Aby ulepszyć model, możesz go ponownie wytrenować, używając obrazów uchwyconych z urządzenia IoT.
Zadanie - udoskonalenie modelu
-
Sklasyfikuj wiele obrazów zarówno dojrzałych, jak i niedojrzałych owoców za pomocą swojego urządzenia IoT.
-
W portalu Custom Vision ponownie wytrenuj model, używając obrazów na zakładce Predictions.
⚠️ Możesz odwołać się do instrukcji dotyczących ponownego trenowania klasyfikatora w lekcji 1, jeśli zajdzie taka potrzeba.
-
Jeśli twoje obrazy wyglądają bardzo inaczej niż oryginalne użyte do trenowania, możesz usunąć wszystkie oryginalne obrazy, wybierając je na zakładce Training Images i klikając przycisk Delete. Aby wybrać obraz, najedź na niego kursorem, a pojawi się znacznik wyboru, kliknij go, aby wybrać lub odznaczyć obraz.
-
Wytrenuj nową iterację modelu i opublikuj ją, korzystając z powyższych kroków.
-
Zaktualizuj URL punktu końcowego w swoim kodzie i uruchom aplikację ponownie.
-
Powtarzaj te kroki, aż będziesz zadowolony z wyników predykcji.
🚀 Wyzwanie
Jak bardzo rozdzielczość obrazu lub oświetlenie wpływa na predykcję?
Spróbuj zmienić rozdzielczość obrazów w kodzie swojego urządzenia i zobacz, czy ma to wpływ na jakość obrazów. Spróbuj również zmienić oświetlenie.
Jeśli miałbyś stworzyć urządzenie produkcyjne do sprzedaży na farmach lub w fabrykach, jak zapewniłbyś, że zawsze daje ono spójne wyniki?
Quiz po wykładzie
Przegląd i samodzielna nauka
Wytrenowałeś swój model Custom Vision za pomocą portalu. To wymaga posiadania dostępnych obrazów - a w rzeczywistości możesz nie być w stanie uzyskać danych treningowych, które odpowiadają temu, co uchwyca kamera na twoim urządzeniu. Możesz obejść ten problem, trenując bezpośrednio z urządzenia za pomocą API treningowego, aby wytrenować model za pomocą obrazów uchwyconych z urządzenia IoT.
- Przeczytaj o API treningowym w szybkim starcie korzystania z Custom Vision SDK
Zadanie
Reakcja na wyniki klasyfikacji
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.