Kasvojentunnistussovelluksen haasteet lisätyn todellisuuden sulautetussa järjestelmässä
Meisalmi, Anssi; Niittyviita, Sampo; Martinviita, Mikael (2017-05-30)
Meisalmi, Anssi
Niittyviita, Sampo
Martinviita, Mikael
A. Meisalmi; S. Niittyviita; M. Martinviita
30.05.2017
© 2017 Anssi Meisalmi, Sampo Niittyviita, Mikael Martinviita. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-201708302768
https://urn.fi/URN:NBN:fi:oulu-201708302768
Kuvaus
Kandidaatintyö. Tekijä: Anssi Meisalmi. Kurssisuoritus tekijöille Sampo Niittyviita ja Mikael Martinviita.
Bachelor's thesis by Anssi Meisalmi. Completion of the course accredited to Sampo Niittyviita and Mikael Martinviita.
Bachelor's thesis by Anssi Meisalmi. Completion of the course accredited to Sampo Niittyviita and Mikael Martinviita.
Tiivistelmä
Tutkimuksessa tarkastellaan reaaliaikaisen lisätyn todellisuuden kasvojentunnistussovelluksen haasteita sulautetuissa järjestelmissä. Merkittävimmät haasteet liittyvät reaaliaikaisuuden toteuttamiseen säilyttäen samalla hyvä kuvanlaatu ja sovelluksen tarkoituksenmukaisuus. Työtä varten kehitetty kasvojentunnistussovellus testattiin Raspberry Pi -tietokoneella. Tarkkailun kohteena olivat sovelluksen suorituskyky ja tunnistustarkkuus, sekä Raspberry Pi:n kaltaisen tietokoneen soveltuvuus sovelluksen alustana.
Testit havainnollistavat sovelluksen toteutukseen vaikuttavien ratkaisujen merkitystä sovelluksen suorituskykyyn. Nämä vaatimukset täyttävä reaaliaikainen lisätyn todellisuuden sovellus tarvitsee tarkkaa kuvankäsittelyä, hyvää kuvanlaatua sekä mobiilisuutta. Sulautettu järjestelmä tarvitsee optimointia, reaktiivisuutta ja pientä kokoa. Kehitetty sovellus tunnistaa videokameran kuvasta ihmisen kasvot, piirtää kasvojen päälle grafiikkaa ja toistaa tehostetun kuvan reaaliaikaisesti käyttöliittymän kautta. Sovellus hyödyntää Raspberry Pi -kosketusnäyttöä ja Raspberry Pi -kameraa, sekä tietokonenäköä varten koottua kirjastoa OpenCV.
Sovellus ja alusta yhdessä eivät täyttäneet kaikkia suorituskyvyn vaatimuksia. Metrin etäisyydellä sovellus kykeni 99,9 %:n tunnistustarkkuuteen alhaisellakin resoluutiolla, mutta etäisyyden kasvaessa tunnistustarkkuus pieneni lähes täysin lineaarisesti kolmeen metriin, jossa se ei enää kyennyt tunnistamaan yhtään kasvoa kuvamateriaalista. Parhaimmillakin olosuhteilla ruudunpäivitysnopeus valitettavasti ei riittänyt toistamaan kolmeakymmentä kuvaa sekunnissa. Pienimmällä 144p resoluutiolla se oli kaksikymmentä kuvaa sekunnissa ja suurimmalla 720p resoluutiolla se oli kolme kuvaa sekunnissa. Raspberry Pi ei testien perusteella sovi reaaliaikaisen lisätyn todellisuuden sovelluksen alustaksi. In this research, the challenges of real time augmented reality application are inspected, while software is developed for embedded systems. The most significant challenges consider simultaneous implementation of real time application, high image quality and purposefulness of the software. For the purpose experimentation in this research, a face recognition software was developed and tested with Raspberry Pi 2 single board computer. Under examination were performance and face recognition accuracy of the application.
The experiments illustrate the effect on the performance of the software for the implementation choices’ of the software. A real time augmented reality software, which passes these criteria, requires accurate image processing, high image quality and mobility. Embedded systems, on the other hand, require optimization, reactivity and small size. The developed software recognizes faces from image produced by the Raspberry Pi’s video camera, draws graphic on the faces and plays the enhanced image in real time from the user interface. The software utilizes Raspberry Pi touchscreen and Raspberry Pi camera, as well as a computer vision library called OpenCV.
In the research, the software does not pass an acceptable level of performance using Raspberry Pi 2 single board computer. In one meter’s distance, the software achieved face recognition accuracy of 99.9 %, yet, while increasing the distance, the face recognition accuracy diminished nearly in a linear fashion until three meters, in which the face recognition accuracy was zero. Additionally, while the image size grew larger, FPS was reduced exponentially. Even with the best conditions the FPS was low, for the smallest resolution, 144p, the FPS was 20 and for the largest, 720p, resolution the FPS was three.
Testit havainnollistavat sovelluksen toteutukseen vaikuttavien ratkaisujen merkitystä sovelluksen suorituskykyyn. Nämä vaatimukset täyttävä reaaliaikainen lisätyn todellisuuden sovellus tarvitsee tarkkaa kuvankäsittelyä, hyvää kuvanlaatua sekä mobiilisuutta. Sulautettu järjestelmä tarvitsee optimointia, reaktiivisuutta ja pientä kokoa. Kehitetty sovellus tunnistaa videokameran kuvasta ihmisen kasvot, piirtää kasvojen päälle grafiikkaa ja toistaa tehostetun kuvan reaaliaikaisesti käyttöliittymän kautta. Sovellus hyödyntää Raspberry Pi -kosketusnäyttöä ja Raspberry Pi -kameraa, sekä tietokonenäköä varten koottua kirjastoa OpenCV.
Sovellus ja alusta yhdessä eivät täyttäneet kaikkia suorituskyvyn vaatimuksia. Metrin etäisyydellä sovellus kykeni 99,9 %:n tunnistustarkkuuteen alhaisellakin resoluutiolla, mutta etäisyyden kasvaessa tunnistustarkkuus pieneni lähes täysin lineaarisesti kolmeen metriin, jossa se ei enää kyennyt tunnistamaan yhtään kasvoa kuvamateriaalista. Parhaimmillakin olosuhteilla ruudunpäivitysnopeus valitettavasti ei riittänyt toistamaan kolmeakymmentä kuvaa sekunnissa. Pienimmällä 144p resoluutiolla se oli kaksikymmentä kuvaa sekunnissa ja suurimmalla 720p resoluutiolla se oli kolme kuvaa sekunnissa. Raspberry Pi ei testien perusteella sovi reaaliaikaisen lisätyn todellisuuden sovelluksen alustaksi.
The experiments illustrate the effect on the performance of the software for the implementation choices’ of the software. A real time augmented reality software, which passes these criteria, requires accurate image processing, high image quality and mobility. Embedded systems, on the other hand, require optimization, reactivity and small size. The developed software recognizes faces from image produced by the Raspberry Pi’s video camera, draws graphic on the faces and plays the enhanced image in real time from the user interface. The software utilizes Raspberry Pi touchscreen and Raspberry Pi camera, as well as a computer vision library called OpenCV.
In the research, the software does not pass an acceptable level of performance using Raspberry Pi 2 single board computer. In one meter’s distance, the software achieved face recognition accuracy of 99.9 %, yet, while increasing the distance, the face recognition accuracy diminished nearly in a linear fashion until three meters, in which the face recognition accuracy was zero. Additionally, while the image size grew larger, FPS was reduced exponentially. Even with the best conditions the FPS was low, for the smallest resolution, 144p, the FPS was 20 and for the largest, 720p, resolution the FPS was three.
Kokoelmat
- Avoin saatavuus [34357]