Raspberry Pi reaaliaikaiseen kuvantunnistukseen
Keskinen, Verneri (2014)
Keskinen, Verneri
Tampereen ammattikorkeakoulu
2014
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201405055923
https://urn.fi/URN:NBN:fi:amk-201405055923
Tiivistelmä
Tässä opinnäytetyöraportissa käsitellään kuinka Raspberry Pi:tä saadaan hyödynnettyä kuvantunnistussovelluksissa. Työn tavoitteena oli tutustua itse Raspberry Pi -tietokoneeseen, kuvantunnistukseen ja ohjelmointiin Linux-ympäristössä. Työn lopullinen tavoite oli saada aikaiseksi jokin reaaliaikainen kuvantunnistussovellus Raspberry Pi:llä.
Työ aloitettiin tutustumalla Raspberry Pi:n ja sen Raspbian-käyttöjärjestelmän käyttöön sekä erilaisiin reaaliaikaisiin kuvantunnistussovelluksiin mitä muut Raspberry Pi:n käyttäjät olivat toteuttaneet. Tutustumisvaiheessa vertailtiin lukuisia erilaisia kameravaihtoehtoja ja kuvantunnistusmenetelmiä, mutta lopulta työssä päädyttiin käyttämään Raspberrry Pi:lle valmistettua kameramoduulia ja OpenCV-kirjastoa. Ohjelmointikieleksi valittiin C++.
Työssä haasteeksi muodostui ohjelmointi ja erityisesti ohjelmakoodin kääntäminen Linux-ympäristössä. Raspbianin gcc/g++-kääntäjän käyttöä jouduttiin opiskelemaan jonkin aikaa ennen kuin ohjelmakoodin kääntäminen alkoi luonnistumaan. Hyötynä tästä kääntäjän opiskelusta oli se, että kääntäjien toiminnasta tiedetään nyt huomattavasti enemmän, kuin ennen työn aloittamista.
Toiseksi haasteeksi muodostui se, ettei OpenCV-kirjasto tukenut suoraan Raspberry Pi:n kameramoduulia, mutta tämäkin ongelma ratkesi pienen opiskelun jälkeen. Kun Raspberry Pi oltiin saatu siihen kuntoon, että tarvitsi vain kirjoittaa toteutettavalle reaaliaikaiselle kuvantunnistussovellukselle ohjelmakoodi, niin tutkittiin vielä erilaisia sovellusvaihtoehtoja. Työssä päädyttiin toteuttamaan kohteen seuranta -sovellus, joka ky-kenee värien perusteella seuraamaan reaaliajassa videokuvasta useita määriteltyjä kohteita.
Kohteen seuranta saatiin toimimaan ja työlle asetetut tavoitteet katsottiin saavutetuksi. Työssä tuli selväksi kuinka monipuolinen pieni laite Raspberry Pi on. Se kykenee lukemattomiin erilaisiin käyttötarkoituksiin ja on täten erinomainen työkalu kenelle tahansa ohjelmoinnista kiinnostuneelle tai huokeaa tietokonetta sovellukseen etsivälle yritykselle.
Työ aloitettiin tutustumalla Raspberry Pi:n ja sen Raspbian-käyttöjärjestelmän käyttöön sekä erilaisiin reaaliaikaisiin kuvantunnistussovelluksiin mitä muut Raspberry Pi:n käyttäjät olivat toteuttaneet. Tutustumisvaiheessa vertailtiin lukuisia erilaisia kameravaihtoehtoja ja kuvantunnistusmenetelmiä, mutta lopulta työssä päädyttiin käyttämään Raspberrry Pi:lle valmistettua kameramoduulia ja OpenCV-kirjastoa. Ohjelmointikieleksi valittiin C++.
Työssä haasteeksi muodostui ohjelmointi ja erityisesti ohjelmakoodin kääntäminen Linux-ympäristössä. Raspbianin gcc/g++-kääntäjän käyttöä jouduttiin opiskelemaan jonkin aikaa ennen kuin ohjelmakoodin kääntäminen alkoi luonnistumaan. Hyötynä tästä kääntäjän opiskelusta oli se, että kääntäjien toiminnasta tiedetään nyt huomattavasti enemmän, kuin ennen työn aloittamista.
Toiseksi haasteeksi muodostui se, ettei OpenCV-kirjasto tukenut suoraan Raspberry Pi:n kameramoduulia, mutta tämäkin ongelma ratkesi pienen opiskelun jälkeen. Kun Raspberry Pi oltiin saatu siihen kuntoon, että tarvitsi vain kirjoittaa toteutettavalle reaaliaikaiselle kuvantunnistussovellukselle ohjelmakoodi, niin tutkittiin vielä erilaisia sovellusvaihtoehtoja. Työssä päädyttiin toteuttamaan kohteen seuranta -sovellus, joka ky-kenee värien perusteella seuraamaan reaaliajassa videokuvasta useita määriteltyjä kohteita.
Kohteen seuranta saatiin toimimaan ja työlle asetetut tavoitteet katsottiin saavutetuksi. Työssä tuli selväksi kuinka monipuolinen pieni laite Raspberry Pi on. Se kykenee lukemattomiin erilaisiin käyttötarkoituksiin ja on täten erinomainen työkalu kenelle tahansa ohjelmoinnista kiinnostuneelle tai huokeaa tietokonetta sovellukseen etsivälle yritykselle.