Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



31.12.2020

Cykl webinarów

weinnovators.club
30.12.2020

Integracja z Teams

Veeam Backup
30.12.2020

Namierzanie zagrożeń

Flowmon Networks i Fortinet
30.12.2020

Wsparcie dla przedsiębiorstw

VMware Cloud on AWS
29.12.2020

Nowe NAS-y Thunderbolt 3

QNAP QuTS TVS-h1288X i TVS-h1688X
29.12.2020

Modele kompaktowe

VPL-PHZ60 i VPL-PHZ50
28.12.2020

Dedykowane przemysłowi

Seria TJ
28.12.2020

Nowa generacja

Router QHora-301W

Sztuczna inteligencja w Power Apps – analiza obrazów

Data publikacji: 26-11-2020 Autor: Marcin Szeliga
Rys. 1. Tagując obrazy,...

W pierwszej części artykułu przedstawiona została usługa Microsoft Power Apps oraz jej ważny element w postaci kreatora inteligentnych aplikacji. W części drugiej będziemy kontynuować poznawanie możliwości dodatku AI Builder, tym razem zajmiemy się analizą obrazu.

 

Klasyfikacja obrazów oraz wykrywanie widocznych na nich obiektów są obok analizy języka naturalnego najczęstszym zastosowaniem modeli uczenia maszynowego. Głębokie uczenie maszynowe polega na automatycznym wykrywaniu coraz bardziej abstrakcyjnych cech przedmiotów, a następnie używaniu tych cech do przewidywania wartości zmiennej wyjściowej. Głębokie uczenie maszynowe wyjaśnimy na przykładzie klasyfikacji obrazów.


> ANALIZA OBRAZÓW


Celem klasyfikacji jest zbudowanie modelu (klasyfikatora), który przypisze obrazy do jednej z określonych klas, np. zaklasyfikuje obraz jako przedstawiający samochód albo kota. Maszyny „widzą” obrazy jako macierze liczb, z których każda opisuje jedną z trzech składowych (RGB) danego piksela. Zadaniem klasyfikatora jest więc powiązanie reprezentującej obraz macierzy liczb z widocznym na tym obrazie obiektem.
Zadanie to rozwiązuje się przy użyciu głębokich, tj. zawierających wiele warstw, sieci neuronowych. W każdej sztucznej sieci neuronowej występują trzy typy neuronów: wejściowe, wyjściowe i ukryte. Neurony wejściowe tworzą pierwszą warstwę sieci neuronowej. Każdy węzeł wejściowy reprezentuje jedną numeryczną zmienną wejściową, np. wartość składowej R konkretnego piksela. Neurony ukryte tworzą ukryte (drugą i kolejne) warstwy sieci neuronowej. Nazywamy je ukrytymi, bo nie wiemy, co reprezentują. Każdy z ukrytych neuronów jest połączony z neuronami z poprzedniej warstwy (wejściowymi w wypadku drugiej warstwy itd.). Neurony wyjściowe reprezentują zmienne wyjściowe, np. klasy rozpoznawanych obiektów, i są połączone z neuronami z poprzedniej (ostatniej ukrytej) warstwy. Głębokie sieci neuronowe o architekturze, w której między warstwami istnieją wszystkie możliwe połączenia, są mało przydatne do analizowania, obrazów. W praktyce używa się do tego celu konwolucyjnych sieci neuronowych. Zostały one zainspirowane zmysłem wzroku – badania przeprowadzone na kotach w latach 60. XX wieku wykazały, że istnieje powiązanie pomiędzy obszarami widocznego obrazu i regionami w mózgu odpowiedzialnymi za przetwarzanie impulsów wzrokowych. Innymi słowy – poszczególne części obrazu są analizowane przez neurony znajdujące się w różnych regionach kory wzrokowej. Co więcej, okazało się, że te neurony tworzą hierarchię: proste neurony znajdujące się w pierwszej warstwie, reagują na kształty owalne, neurony z drugiej warstwy reagują na sposób oświetlenia, a bardziej złożone neurony z kolejnych warstw reagują na ruch. Konwolucja (splot) jest operacją, która na podstawie dwóch funkcji zwraca trzecią. Rolą warstw splatających w głębokich sieciach neuronowych jest zachowanie przestrzennej struktury obrazów. Uzyskuje się to poprzez przesuwanie po obrazie niewielkich, np. obejmujących pięć na pięć pikseli, filtrów. Neurony w warstwie splatającej połączone są jedynie z tym obszarem obrazu, na który w danym momencie nałożony jest filtr. Oznacza to, że zastępują one cały filtrowany obszar jedną liczbą. Takich filtrów używanych jest kilka w każdej warstwie splatającej – każdy filtr wykrywa specyficzne wzorce.

 

W początkowych warstwach wykrywane są proste cechy obrazów, np. linie. W kolejnych (głębszych) warstwach na ich podstawie wykrywane są coraz bardziej złożone cechy obrazu, np. krawędzie, oczy lub szyby. Ostatnia warstwa sieci neuronowej ocenia prawdopodobieństwo, z jakim na obrazie znajdują się różne przedmioty. Wykrywanie widocznych na obrazach obiektów jest bardziej skomplikowane. Po pierwsze, należy zlokalizować wszystkie obiekty, czyli znaleźć współrzędne najmniejszych zawierających je prostokątów. Po drugie, należy usunąć nachodzące na siebie, a więc zawierające ten sam obiekt, prostokąty. Na końcu należy sklasyfikować zawartość każdego pozostałego prostokąta.

 

> WYKRYWANIE OBIEKTÓW
Zobaczmy, jak wygląda analiza obrazów w praktyce, i przekonajmy się, jak pomocny w jej przeprowadzeniu jest kreator inteligentnych aplikacji. Jako pierwszy zbudujemy model wykrywania obrazów. Opisy wykrytych na obrazach obiektów zostaną zapisane w bazie danych CDS. Zanim utworzymy model, musimy więc utworzyć w tej bazie odpowiednią jednostkę danych. Możemy to zrobić, importując do swojego środowiska Power Apps rozwiązanie AIBuilderLabSolution. Znajdziemy je pod adresem bit.ly/3dXO79g. Po jego rozpakowaniu należy zaimportować archiwum AIBuilderLabSolution_1_0_0_0.zip. W ten sposób utworzymy trzy jednostki danych, w tym interesującą nas jednostkę Object Detection Product. Następnie należy dodać do jednostki trzy rekordy z nazwami trzech gatunków zielonej herbaty. W tym celu należy: wyświetlić jednostkę Object Detection Product, kliknąć przycisk Dodaj rekord, wpisać nazwę Green Tea Cinnamon i zapisać ją, powtórzyć powyższą operację, dodając nazwy Green Tea Mint i Green Tea Rose. Jesteśmy gotowi do utworzenia modelu głębokiego uczenia maszynowego wykrywającego obiekty na obrazach: należy przejść do sekcji AI Builder/Kompilacja, wybrać model typu Wykrywanie obiektu, nazwać tworzony model Green Tea Pro-duct Detection i kliknąć przycisk Utwórz.


Teraz należy w pierwszym kroku kreatora wybrać domenę modelu. Uczenie głębokie jest czasochłonne i wymaga ogromnych ilości danych treningowych. Dlatego w praktyce używa się wcześniej nauczonych modeli, dostosowując je jedynie do własnych potrzeb. Takie wytrenowane na setkach tysięcy przykładów głębokie modele umieją już rozpoznawać różne cech wielu obiektów. Wystarczy zmodyfikować ich ostatnie warstwy, ucząc je w ten sposób wykrywania interesujących nas obiektów. Do wyboru mamy trzy domeny, czyli trzy głębokie modele uczenia maszynowego: ogólny (Typowe obiekty), nauczony rozpoznawać towary (Przedmioty na półkach handlu detalicznego) oraz wytrenowany w rozpoznawaniu logotypów (Logo marki). Ponieważ przykładowy model będzie wykrywał puszki z zieloną herbatą, wybieramy drugą domenę.

 

[...]

 

Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie; jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"