fbpx
goodfirms LOGO Created with Sketch.









    Już nas opuszczasz?

    Napisz czego potrzebujesz, a nasi eksperci powiedzą Ci jak to zrobić, ile to kosztuje i na kiedy będzie gotowe.








      Implementacje w Flutter – modele uczenia maszynowego w aplikacjach

      01
      marzec
      2023
      7 minut czytania
      Udostępnij

      Do czego wykorzystuje się współcześnie AI w aplikacjach Flutter? Jakie pakiety, pluginy i widgety mogą przydać się przy implementacji ML do Fluttera? W jaki sposób klasyfikuje się modele uczenia maszynowego? Na wszystkie te i wiele innych pytań odpowiadamy poniżej.

      Uczenie maszynowe w aplikacjach Flutter

      Uczenie maszynowe ML (ang. Machine Learning) i jego elementy składowe w postaci sieci głębokiego uczenia oraz sieci neuronowych to podzbiory sztucznej inteligencji. AI jest elementem nadrzędnym, który na podstawie modeli i algorytmów uczenia maszynowego pozwala prognozować i identyfikować wzory oraz korelacje w przetwarzanych danych. Jeśli chodzi o uczenie maszynowe w aplikacjach Flutter, to najczęściej wykorzystuje się widzenie komputerowe (ang. Computer Vison) i przetwarzanie języka naturalnego NLP (ang. Natural Language Processing). W kwestii takiej jak rozpoznawanie obrazu doskonałym przykładem jest tu działanie takie jak optyczne rozpoznawanie znaków OCR (ang. Optical Character Recognition). Wśród najczęstszych zastosowań AI w aplikacjach Flutter wyróżnić warto także:

      1. Rozpoznawanie znaczników OMR (ang. Optical Mark Recognition) – Pozwala wykrywać w obrazie znaczniki (np. kody kreskowe, kody QR, wypełnione pola wyboru itp.). W praktyce OMR wykorzystywany jest przeważnie do analizowania poprawności formularzy oraz ankiet, kopertowania korespondencji i przekazywania ustrukturyzowanych danych do aplikacji (np. wczytywania e-wizytówek, wyświetlania cen po zeskanowaniu kodu kreskowego lub przekierowywania do odpowiednich zasobów itp.).
      2. Wykrywanie i rozpoznawanie twarzy to tylko niektóre z wielu wyzwań, z którymi zmaga się współczesna sztuczna inteligencja. W przypadku urządzeń mobilnych stosowane jest to przykładowo przy odblokowywaniu ekranu, poprawianiu jakości selfie albo katalogowaniu portretów w galerii.
      3. Katalogowanie obrazów i zdjęć – Nowoczesne smartfony potrafią całkiem skutecznie podzielić całą galerię na szereg intuicyjnych kategorii (np. zdjęcia dokumentów, zwierząt, ludzi, przyrody, krajobrazów, samochodów itp.). Warto wspomnieć tu również, iż szcztuczna inteligencja jest w stanie także wykrywać także charakterystyczne obiekty orientacyjne zwane landmarkami i na podstawie tego określać gdzie zrobiono dane zdjęcie. 
      4. Identyfikowanie języka – Jeśli w trakcie digitalizacji danych (np. dokumentów, listów, podań itp.) nie wiadomo, w jakim są one języku, to do rozwiązania tego problemu można wykorzystać AI nawet jeśli są one rękopiśmienne. Jest to możliwe dzięki temu, iż przez wiele lat internauci nieświadomie szkolili AI w rozpoznawaniu znaków poprzez wypełnianie CAPTCHA. Z tego też powodu obecnie zabezpieczenie to zamiast na tekście bazuje na zdjęciach (np. sygnalizatorów świetlnych, pojazdów, kominów, zwierząt itp.).
      5. Wykrywanie krawędzi obiektów to jedno z wielu zastosowań uczenia maszynowego w aplikacjach Flutter. Najczęściej wykorzystuje się to przy skanowaniu zdjęć papierowych dokumentów. Pakiet edge_detection to plugin do Fluttera, który wykrywa krawędzi obiektu (np. kartki papieru) i tworzy na ich podstawie wycinek obrazu. Przetworzone w ten sposób dane można następnie wczytać do OCR bez ryzyka wystąpienia błędów, które mogłyby pojawić się jeśli na tle zdjęć dokumentów byłby widoczne niepotrzebne znaki (np. fragment etykiety leżącego nieopodal napoju).

      Jakie pakiety do uczenia maszynowego we Flutter cieszą się największą popularnością?

      W nieustannie rozwijanej bazie pakietów Flutter Gems znaleźć można kilkadziesiąt pluginów i widgetów do ML. Z tego też powodu w kwestii takiej jak uczenie maszynowe implementacja we Flutter jest znacznie łatwiejsza, niż mogłoby się w pierwszej chwili wydawać. Wśród najpopularniejszych rozwiązań warto wyróżnić z pewnością:

      • google_ml_kit,
      • google_ml_vision,
      • flutter_camera_ml_vision,
      • tflite,
      • tflite_flutter,
      • face_camera,
      • google_mlkit_face_detection,
      • edge_detection,
      • flutter_chatgpt_api,
      • ml_algo.

      Jak działają składowe elementy uczenia maszynowego?

      Głębokie uczenie (ang. Deep Learning) to jeden z najbardziej istotnych podzbiorów i zarazem rodzajów uczenia maszynowego. Aby móc wyjaśnić jak dokładnie działa ML trzeba się jednak zagłębić jeszcze bardziej. Głębokie uczenie bazuje na wielu warstwach sztucznych sieci neuronowych ANN (ang. Artificial Neural Network). Sieci neuronowe składają się zaś ze zgrupowanych w wielu działających równolegle warstwach sztucznych neuronów (zwanych węzłami) i są wzorowane na ludzkim mózgu. To właśnie dzięki nim sztuczna inteligencja jest w stanie uczyć się na podstawie przykładów, a następnie wykorzystywać zdobyte informacje do prognozowania lub podejmowania decyzji.

      W jaki sposób klasyfikuje się modele uczenia maszynowego?

      Modele uczenia maszynowego podzielić można na wiele różnych sposobów, ale najczęściej spotkać się można z podziałem na:

      Uczenie nadzorowane - Nadzorowane modele ML bazują na danych w formacie par danych określanych mianem wejściowych i wyjściowych. Wartości wyjściowe powinny w tym scenariuszu zawierać prawidłową odpowiedź na zadane pytanie. Model ten wykorzystywany jest przykładowo w mechanizmach, które dostarczają nam codziennie setki spersonalizowanych reklam i rekomendacji zakupowych.

      Uczenie nienadzorowanie – Jeśli możemy dostarczyć tylko nieuporządkowane i nieoznakowane dane wejściowe, to najprawdopodobniej będziemy musieli skorzystać z modelu uczenia nienadzorowanego. Mając na uwadze, iż dokładność tego modelu rośnie wraz z liczbą dostarczanych danych, łatwo zrozumieć można, dlaczego jest on stosowany przy badaniach rynku lub rozpoznawaniu twarzy.

      Uczenie wzmacniające – Sztuczna inteligencja bazująca na tym modelu zdobywa wiedzę metodą prób i błędów. W modelu wzmacniającym zamiast gotowego klucza z odpowiedziami zbiór z regułami, dozwolonymi czynnościami i potencjalnymi stanami końcowymi. Innymi słowy, gdybyśmy chcieli nauczyć kogoś grać w szachy, to nie byliśmy w stanie omówić wszystkich możliwych wariantów zwycięstwa. Zamiast tego wyjaśnilibyśmy tylko zasady gry (np. czym jest zwycięstwo i jak można poruszać się poszczególnymi figurami bądź pionami). 

      Podsumowanie

      Wszystkie wspomniane wyżej zastosowania AI w aplikacjach Flutter świetnie obrazują jak często i jak bardzo sztuczna inteligencja ułatwia nam codzienne życie. Na koniec chcielibyśmy również zwrócić uwagę na rolę uczenia maszynowego w branży medycznej, która od wielu lat wykorzystuje się je do tego by szybciej i trafniej wykrywać potencjalne schorzenia.

      Wiktor Sobczyk

      Bezpłatna konsultacja

      Powiedz nam czego potrzebujesz, a nasi eksperci Powiedzą Ci jak to zrobić, ile to kosztuje i na kiedy będzie gotowe.

      Inne wpisy na blogu

      Planowanie budżetu na aplikację mobilną to jedno z kluczowych wyzwań, które stają przed CTO (Chief Technology Officer) na etapie realizacji projektu. Każdy aspekt – od funkcjonalności aplikacji, przez wybór technologii, po wybór zespołu programistycznego – wpływa na ostateczny koszt, a nieodpowiednie oszacowanie może skutkować znacznymi przekroczeniami budżetu. W tym artykule przedstawimy szczegółowy przewodnik po czynnikach,…
      tagi: #Biznes #Technologia
      czytaj artykuł
      Automatyzacja testów zdobywa coraz większą popularność w branży IT, przyspieszając procesy i zwiększając ich efektywność. Jednak takie rozwiązanie nie jest uniwersalne i wymaga odpowiedniego dopasowania do projektu. Zanim podejmiesz decyzję o wdrożeniu automatyzacji, poznaj kilka najważniejszych korzyści i ograniczeń. Spis treści: W jakich sytuacjach sprawdza się automatyzacja testów? Jakie są zalety automatyzacji testów? Ograniczenia i…
      tagi: #Biznes #Technologia
      czytaj artykuł
      Jak możemy Ci pomóc?
      Porozmawiaj z nami!









        Kamil
        Head of Business Development
        Kliknij, aby podejrzeć