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

      W dynamicznie zmieniającym się świecie technologii wybór odpowiedniego oprogramowania dla firmy może stanowić nie lada wyzwanie. Coraz więcej organizacji decyduje się na rozwiązania SaaS (Software as a Service), które oferują gotowe funkcje dostępne online, bez konieczności wdrażania i utrzymania infrastruktury wewnętrznej. Z czasem jednak potrzeby biznesu mogą przerosnąć możliwości oprogramowania SaaS, co skłania do rozważenia…
      tagi: #Biznes #Technologia
      czytaj artykuł
      Wybór odpowiedniej technologii tworzenia aplikacji mobilnych jest nieodłącznym elementem sukcesu projektu. Każda z nich oferuje różne możliwości i ograniczenia, które mogą wpływać na funkcjonalność, wydajność i koszty aplikacji. W tym artykule robimy przegląd najpopularniejszych technologii tworzenia aplikacji mobilnych, skupiając się na różnicach między rozwiązaniami, również w kontekście systemów operacyjnych jak Android czy iOS. Dzięki temu…
      tagi: #Biznes #Technologia
      czytaj artykuł
      Jak możemy Ci pomóc?
      Porozmawiaj z nami!









        Kamil
        Head of Business Development
        Kliknij, aby podejrzeć