fbpx
goodfirms LOGO Created with Sketch.








    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

    Dzięki programowaniu natywnemu w chmurze, deweloperzy mogą tworzyć aplikacje, które działają na różnych platformach sprzętowych i systemach operacyjnych, bez potrzeby instalowania ich na komputerze użytkownika. Stworzona przez Microsoft platforma .NET pozwala programistom tworzyć aplikacje w różnych językach programowania, takich jak C#, F# czy Visual Basic. Z kolei Azure zapewnia szereg profesjonalnych usług i rozwiązań do…
    tagi: #Technologia
    czytaj artykuł
    01
    marzec
    2023
    Flutter to jeden z najpopularniejszych frameworków do tworzenia wieloplatformowych aplikacji. Na tle pozostałych dostępnych rozwiązań Flutter wyróżnia się przede wszystkim pod kątem wszechstronności oraz wydajności. Wiele przedsiębiorstw wybrało Fluttera ze względu na to, iż pozwala on uniknąć wysokich kosztów związanych z koniecznością opracowywania i rozwijania osobnych wersji aplikacji dla każdej platformy. Dzięki szerokiej gamie narzędzi,…
    tagi: #Technologia
    czytaj artykuł
    Jak możemy Ci pomóc?
    Porozmawiaj z nami!








      Kamil
      Head of Business Development
      Kliknij, aby podejrzeć