Sztuczna Inteligencja – Komputery mogą widzieć i co z tego wynika

Sztuczna Inteligencja robi się niezwykle popularna. Gdziekolwiek się nie obrócimy, zewsząd słychać głos mówiący o tym, że urządzenia nas otaczające stają się inteligentne. I rzeczywiście to prawda – Sztuczna Inteligencja (AI) i Uczenie Maszynowe (ML) zrobiły w ostatnim czasie niesamowity postęp. To wszystko brzmi trochę jak Science-Fiction – rzeczy które jeszcze 10 lat temu wydawały się niesamowicie trudne, można teraz próbować rozwiązywać (nawiasem mówiąc – z lepszym lub gorszym skutkiem) używając niezwykle wygodnych narzędzi. To otwiera przed nami – programistami – niesamowite możliwości. Jednym z popularnych tematów, które leżą w domenie Sztucznej Inteligencji jest nauczenie maszyn widzenia.

Historia

Temat rozpoznawania obrazów przez maszyny ma długą historię. Jedną z najciekawszych inicjatyw w tym temacie jest globalny challenge oparty na ogromnym zbiorze zdjęć (ok 1,4 mln obrazów) zainicjowany przez ImageNet – ImageNet Large Scale Visual Recognition Challenge (ILSCVRC). Celem konkursu jest właściwe rozpoznanie tematu zdjęcia czyli przypisanie mu właściwego opisu (klasy), spośród około 1000 możliwych. Coroczne wyniki konkursu pokazują jak dynamicznie rozwija się ten temat. Od 2010 roku do dnia dzisiejszego skuteczność modeli rozpoznających właściwie temat obrazu (w tak wielkim zbiorze) zwiększyła się z ~72% do ~97%. Żeby naświetlić skalę trudności wystarczy tylko dodać, że jakiś czas temu zdecydowano się przetestować w tym temacie skuteczność człowieka i wypadła ona na poziomie 95%. Czyli najnowsze algorytmy klasyfikacji obrazów prześcigają (a jeżeli nie, to niemal dorównują) możliwości  percepcji ludzkiej. Czyż to nie jest niesamowite?

Rysunek 1. Wyniki i postęp ILSCVRC

Postęp technologiczny – gdzie jesteśmy teraz…

Tak naprawdę najbardziej niesamowite jest to, że wyniki intensywnych prac w temacie rozpoznawania obrazów są ogólnie dostępne. ML i AI trafiają pod strzechy. Popularne Frameworki i Technologie (takie jak PyTorch, Tensorflow + Keras), z których programiści i analitycy danych mogą korzystać są ogólnie dostępne. Dostępne są chmurowe środowiska do trenowania modeli AI, udostepniające na żądanie moce obliczeniowe niedawno zarezerwowane jedynie dla wąskiej grupy naukowców. W końcu – dostępne są też wstępnie wytrenowane modele potrafiące rozpoznawać tysiące obiektów na obrazach i klasyfikujący je z dużym prawdopodobieństwem. Przecież wystarczy zacząć z tego korzystać, prawda? No, nie do końca – tak łatwo nie jest.

Czy jest jeden wzór?

Przestrzeń problemów związanych z rozpoznawaniem informacji w obrazie, które może rozwiązać Sztuczna Inteligencja, jest niezwykle szeroka. I niestety – bardzo często standardowe, ogólnodostępne modele potrafiące rozpoznawać najpopularniejsze klasy (np. „ludzi” i „samochody” itp.) nie są wystarczające. Wystarczy wyobrazić sobie problemy rozpoznawania symptomów chorób na zdjęciach RTG lub USG, wykrycia pęknięć łopatki samolotu na zdjęciach zrobionych endoskopem albo problemem odczytania ze zdjęcia czym zajmuje się aktualnie kierowca samochodu. Żaden z ogólnie dostępnych modeli nie da nam na takie pytanie gotowej odpowiedzi, choć to prawda że możemy skorzystać z częściowych wyników prac nad gotowymi modelami (techniki „Transfer Learning” to temat na osobny artykuł). Specyficzne problemy muszą być zaadresowane indywidualnie. I tu zaczyna się nasza rola – Programistów AI/ML i Analityków Danych. I nie ma jednej uniwersalnej drogi do celu. Te drogi zależą od wielu czynników m.in.:

  1. ilości i jakości danych na jakich pracujemy
  2. wymagań dotyczących modelu (często jest to kompromis „szybkość działania” vs „precyzja”)
  3. skali trudności problemu (ilości informacji jaką musimy odczytać z obrazu)

Każdy z tych w.w. czynników można próbować odpowiednio zaadresować niemniej jednak wybranie właściwej strategii budowy modelu wymaga pracy i często wielu eksperymentów. I żeby było jasne, ta praca zwykle mogłaby się nigdy nie kończyć – szczególnie dla pasjonatów AI/ML. Taka jest natura Sztucznej Inteligencji, że zawsze możemy próbować poprawić to co już stworzyliśmy. Nie oznacza to, że nie można poczuć dreszczu emocji i satysfakcji – czasem nawet z pierwszych niespodziewanie dobrych wyników naszej pracy. W końcu – nawet gdy mamy wrażenie, że model można by ciągle dopracowywać – często przynosi on dostatecznie dużo wartości klientowi, żeby powiedzieć „mamy to”.

Gfi i Machine Learning

Gfi zajmuje się innowacyjnymi tematami związanymi ze Sztuczną Inteligencją w laboratoriach FabLab rozsianych po całym świecie. Tematami, związanymi z rozpoznawaniem obrazu, którymi zajmujemy się są m.in.:

  • Wizualna weryfikacja tożsamości osób w obszarach o podwyższonych wymaganiach kontroli dostępu – rozwiązanie umożliwiające alarmowanie w przypadku nierozpoznanej tożsamości bądź niezgodności danych identyfikacyjnych kart dostępowych z tożsamością zidentyfikowana z kamery.
  • Monitoring ilości osób zgromadzonych w jednym miejscu – monitoring długości kolejek w sklepach.
  • Eksperymenty dotyczące automatycznego wykrywania mikropęknięć w zdjęciach endoskopowych np. z silników lotniczych.
  • Eksperymenty dotyczące rozpoznawania zachowania osób, np. monitoring osób starszych (rozpoznawanie zdarzenia „upadku” w domu), czy rozpoznanie czym zajmuje się kierowca (alarm np. gdy używa telefonu w trakcie jazdy)

Temat Sztucznej Inteligencji w rozpoznawaniu obrazów będzie się ciągle rozwijał a GFI ma ambicje być ważną częścią tej historii. Masz dużo danych i ciekawy temat związany z rozpoznawaniem obrazów? Zgłoś się do nas, razem możemy zbudować rozwiązania i wartości, o których jeszcze niedawno nikt nie marzył.

Sebastian Stefanowski

(EN) We use cookies only for collective statistical purposes and to adapt the website to the user's needs.
(PL) Używamy cookies w celach statystycznych oraz w dostosowaniu serwisu do użytkownika.