Esineiden mittaaminen älypuhelimella
Mustaniemi, Janne; Ristimella, Eemeli; Jyrkkä, Joonas (2017-07-07)
Mustaniemi, Janne
Ristimella, Eemeli
Jyrkkä, Joonas
J. Mustaniemi; E. Ristimella; J. Jyrkkä
07.07.2017
© 2017 Janne Mustaniemi, Eemeli Ristimella, Joonas Jyrkkä. 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-201707082714
https://urn.fi/URN:NBN:fi:oulu-201707082714
Kuvaus
Kandidaatintyö. Tekijä: Eemeli Ristimella. Kurssisuoritus tekijöille Janne Mustaniemi ja Joonas Jyrkkä.
Bachelor's thesis by Eemeli Ristimella. Completion of the course accredited to Janne Mustaniemi and Joonas Jyrkkä.
Bachelor's thesis by Eemeli Ristimella. Completion of the course accredited to Janne Mustaniemi and Joonas Jyrkkä.
Tiivistelmä
Tämä työ esittelee ohjelmistoratkaisun esineiden mittaamiseen Android-älypuhelimelle. Mittaaminen tapahtuu kameran kuvaa hyödyntäen vertaamalla mitattavia kohteita referenssiesinein, jonka mitat tunnetaan. Mitattavat kohteet ja oleelliset mitat täydennetään kameranäkymään. Sovelluksen kannalta tärkeimmät prosessit ovat referenssiesineen ja mitattavan esineen tunnistaminen.
Referenssiesineen tunnistus tapahtuu värin perusteella. Aluksi kuva muutetaan harmaasävykuvaksi, minkä jälkeen sovelletaan Cannyn algoritmia reunojen tunnistamiseen. Syntyvä binäärikuva käsitellään dilaatio-operaatioilla, jonka jälkeen hyödynnetään OpenCV-kirjaston findContours-metodia, joka etsii kuvasta suljetut alueet (contours). Löytyneiden alueiden joukkoa karsitaan värisävyn perusteella.
Mitattavan esineen tunnistusprosessi alkaa myös harmaasävymuunnoksella, josta syntyvä kuva kynnystetään binäärikuvaksi. Syntyneeseen binäärikuvaan sovelletaan findContours-metodia ja löytyneet alueet suodatetaan pinta-alan mukaan.
Sovelluksesta toteutettiin kaksi versiota, jotka molemmat testattiin ennalta määritellyillä testipattereilla. Testien perusteella näyttää siltä, että sovellus toimii hyvin tasaisissa valaistusolosuhteissa, mutta kuvioitu pinta ja haastava valaistus saattavat hankaloittaa tunnistamista. Ongelmia syntyy myös referenssiesineen ja mitattavan esineen ollessa toistensa päällä ja silloin, kun mitattava esine ei erotu tarpeeksi hyvin taustasta. This bachelor’s thesis presents an Android-based solution to measure ubiquitous objects. The measurement process is executed by comparing measurable objects to a known reference object. The measures of the object will be added on top of camera feed. The crucial processes of the application are detecting the reference object and the measurable object.
The detection of the reference object is achieved on the basis of color information. The process starts with converting the camera feed to grayscale, and then applying Canny’s edge detection algorithm. The resulting binary image is dilated, and the contours of the image are detected using findCountours-method from OpenCV-library. The detected contour areas are filtered by color and size.
The detection of a measurable object begins also with grayscale-transform followed by binary thresholding. FindContours-method is applied to the resulting binary image, and the areas detected are filtered by size.
Two versions of the application were implemented, and they both were tested with predefined test suites. According to the tests, it seems the application succeeds to carry out the measurement process. However, there is still work to be done to enhance the detection rate especially in a challenging lightning environment and on patterned surfaces.
Referenssiesineen tunnistus tapahtuu värin perusteella. Aluksi kuva muutetaan harmaasävykuvaksi, minkä jälkeen sovelletaan Cannyn algoritmia reunojen tunnistamiseen. Syntyvä binäärikuva käsitellään dilaatio-operaatioilla, jonka jälkeen hyödynnetään OpenCV-kirjaston findContours-metodia, joka etsii kuvasta suljetut alueet (contours). Löytyneiden alueiden joukkoa karsitaan värisävyn perusteella.
Mitattavan esineen tunnistusprosessi alkaa myös harmaasävymuunnoksella, josta syntyvä kuva kynnystetään binäärikuvaksi. Syntyneeseen binäärikuvaan sovelletaan findContours-metodia ja löytyneet alueet suodatetaan pinta-alan mukaan.
Sovelluksesta toteutettiin kaksi versiota, jotka molemmat testattiin ennalta määritellyillä testipattereilla. Testien perusteella näyttää siltä, että sovellus toimii hyvin tasaisissa valaistusolosuhteissa, mutta kuvioitu pinta ja haastava valaistus saattavat hankaloittaa tunnistamista. Ongelmia syntyy myös referenssiesineen ja mitattavan esineen ollessa toistensa päällä ja silloin, kun mitattava esine ei erotu tarpeeksi hyvin taustasta.
The detection of the reference object is achieved on the basis of color information. The process starts with converting the camera feed to grayscale, and then applying Canny’s edge detection algorithm. The resulting binary image is dilated, and the contours of the image are detected using findCountours-method from OpenCV-library. The detected contour areas are filtered by color and size.
The detection of a measurable object begins also with grayscale-transform followed by binary thresholding. FindContours-method is applied to the resulting binary image, and the areas detected are filtered by size.
Two versions of the application were implemented, and they both were tested with predefined test suites. According to the tests, it seems the application succeeds to carry out the measurement process. However, there is still work to be done to enhance the detection rate especially in a challenging lightning environment and on patterned surfaces.
Kokoelmat
- Avoin saatavuus [36502]