Mobile real-time object detection with Flutter
Kusnetsoff, Daniel (2021)
Kusnetsoff, Daniel
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021052611439
https://urn.fi/URN:NBN:fi:amk-2021052611439
Tiivistelmä
Tietokonenäön käyttö on kasvanut huomattavasti matkapuhelimissa. Tietokonenäön tärkein osa, hahmontunnistus, perustuu syviin oppimismalleihin. Nämä mallit ovat perinteisesti vaatineet tehokkaita grafiikkaprosessoriyksiköitä mallin koulutukseen ja käyttöön. Vaikka mallien tehokas kouluttaminen pienitehoisemmilla laitteilla, kuten matkapuhelimilla, ei ole mahdollista, on viime vuosina teknologia kehittynyt niin, että malleja voidaan hyödyntää mobiilisovelluksissa. Mallin suorituskyvyn kannalta on ratkaisevan tärkeää kehittää mobiilisovellus tekemällä oikeita valintoja. Sopivan kehysympäristön valinta on ratkaisevan tärkeää, koska ympäristön määrittämä käyttöliittymäarkkitehtuuri asettaa rajoitukset mallin suorituskyvylle. Opinnäytetyössä käytetty Flutter-kehysympäristön arkkitehtuuri hyödyntää reaaliaikaisia hahmojen tunnistustoimintoja paremmin kuin muut kilpailevat kehysympäristöt.
Tätä opinnäytetyötä varten kehitettiin mobiilisovellus, jolla tutkittiin mahdollisuuksia käyttää Flutteria ja sen arkkitehtuurin mahdollistamaa nopeata reaaliaikaista kohteen tunnistusta. Sovelluksessa tutkittiin kahta tietokonenäön muotoa: esineiden havaitseminen ja kuvan tekstitys. Kohteen havaitsemiseksi sovellus näyttää reaaliaikaisia ennusteita kameran avulla. Kohteen tunnistusominaisuus hyödyntää siirto-oppimista ja käyttää kahta kohdeilmaisinta: Tiny-YOLO v4 ja SSD Mobilenet v2. Ne ovat suosituimpia ilmaisimia ja tuovat tasapainoa tunnistustarkkuuden ja nopeuden välillä.
Opinnäytetyön tuloksena kehitettiin toimiva Flutter-pohjainen mobiilisovellus. Sovellus esittelee eroja YOLO- ja SSD-pohjaisten mallien välillä tarkkuuden ja nopeuden osalta. Lisäksi kuvatekstitysgeneraattori näyttää, kuinka ulkoista syväoppimisen mallia voidaan käyttää mobiilisovelluksissa reaaliaikaisesti. Tärkeintä on, että kuvatekstitysgeneraattori toimii lähes reaaliajassa ennustamalla kuvatekstin tarkasti. Molemmat tietokonenäköominaisuudet toimivat erinomaisesti Flutter-pohjaisen arkkitehtuurin ja rakenteiden ansiosta. Flutter-käyttöliittymä tuottaa korkean suorituskyvyn ja luotettavuuden molemmissa sovelluksessa esitetyissä tietokonenäkötoiminnoissa. The utilization of computer vision has significantly increased in everyday devices such as mobile phones. Computer vision, such as object detection, is based on deep learning models. These models have traditionally needed high-performance graphics processing units for training and utilization. However, even if it is still not possible to effectively train the models with lower-performance devices, it has lately become possible to use the models with them. It is critical for model performance to develop the mobile application optimally. The choice of the ideal framework and user interface is crucial as the user interface architecture sets the constraints for the model’s performance. The framework chosen in this thesis, Flutter has an architecture that benefits real-time features in object detection better than other frameworks.
A mobile application was developed for this thesis to research the possibilities of using Flutter in mobile real-time object detection. The application presents two forms of computer vision: object detection and image captioning. For object detection, the application provides real-time predictions using the camera. The object detection feature utilizes transfer learning and uses two object detectors: Tiny-YOLO v4 and SSD Mobilenet v2. They are the most popular detectors and provide a balance between detection accuracy and speed.
As a result of the thesis, a successful Flutter-based mobile application was developed. The application presents the differences between the YOLO-based and SSD-based models in accuracy and speed. Furthermore, the image caption generator shows how an external deep learning model can be utilized in mobile applications. As importantly, the image caption generator works near real-time by predicting the image caption with high accuracy. Both computer vision features function optimally due to the Flutter-based architecture and structure. Flutter provides high performance and reliability in both computer vision tasks featured in the application.
Tätä opinnäytetyötä varten kehitettiin mobiilisovellus, jolla tutkittiin mahdollisuuksia käyttää Flutteria ja sen arkkitehtuurin mahdollistamaa nopeata reaaliaikaista kohteen tunnistusta. Sovelluksessa tutkittiin kahta tietokonenäön muotoa: esineiden havaitseminen ja kuvan tekstitys. Kohteen havaitsemiseksi sovellus näyttää reaaliaikaisia ennusteita kameran avulla. Kohteen tunnistusominaisuus hyödyntää siirto-oppimista ja käyttää kahta kohdeilmaisinta: Tiny-YOLO v4 ja SSD Mobilenet v2. Ne ovat suosituimpia ilmaisimia ja tuovat tasapainoa tunnistustarkkuuden ja nopeuden välillä.
Opinnäytetyön tuloksena kehitettiin toimiva Flutter-pohjainen mobiilisovellus. Sovellus esittelee eroja YOLO- ja SSD-pohjaisten mallien välillä tarkkuuden ja nopeuden osalta. Lisäksi kuvatekstitysgeneraattori näyttää, kuinka ulkoista syväoppimisen mallia voidaan käyttää mobiilisovelluksissa reaaliaikaisesti. Tärkeintä on, että kuvatekstitysgeneraattori toimii lähes reaaliajassa ennustamalla kuvatekstin tarkasti. Molemmat tietokonenäköominaisuudet toimivat erinomaisesti Flutter-pohjaisen arkkitehtuurin ja rakenteiden ansiosta. Flutter-käyttöliittymä tuottaa korkean suorituskyvyn ja luotettavuuden molemmissa sovelluksessa esitetyissä tietokonenäkötoiminnoissa.
A mobile application was developed for this thesis to research the possibilities of using Flutter in mobile real-time object detection. The application presents two forms of computer vision: object detection and image captioning. For object detection, the application provides real-time predictions using the camera. The object detection feature utilizes transfer learning and uses two object detectors: Tiny-YOLO v4 and SSD Mobilenet v2. They are the most popular detectors and provide a balance between detection accuracy and speed.
As a result of the thesis, a successful Flutter-based mobile application was developed. The application presents the differences between the YOLO-based and SSD-based models in accuracy and speed. Furthermore, the image caption generator shows how an external deep learning model can be utilized in mobile applications. As importantly, the image caption generator works near real-time by predicting the image caption with high accuracy. Both computer vision features function optimally due to the Flutter-based architecture and structure. Flutter provides high performance and reliability in both computer vision tasks featured in the application.