Implementation of OpenCV in a Machine Vision System
Alamäki, Antti (2017)
Alamäki, Antti
Metropolia Ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201801091135
https://urn.fi/URN:NBN:fi:amk-201801091135
Tiivistelmä
Tässä insinöörityössä perehdytään OpenCV:n käyttöön osana konenäköjärjestelmää ja pilottihanketta. Työssä selvitettiin tosielämän käyttötapausten ja ongelmatilanteiden kautta OpenCV:n suorituskykyä sekä muuntautumiskykyä Python- ja C++ toteutuksien avulla erilaisissa ympäristöissä osana konenäköjärjestelmää.
Työssä toteutettiin teknologiavertailu ja valinta eri käyttöympäristöjen sekä ohjelmistoversioiden välillä asiakkaiden vaatimukset ja tarpeet huomioiden. Nämä valinnat kyettiin perustelemaan toteuttamalla osana työtä toteuttamalla kolmeen eri käyttötapaukseen perustuvat ohjelmistoversiot kummallakin valituista kielistä. Ohjelmoinnin tarkoituksena oli myöskin pullokaulojen ja ongelmakohtien jäljittäminen sekä C++:n Pythonlaajennuksen testaus, näissä tehtävissä onnistuttiin kiitettävästi. Osana teknisiä valintaperusteita ja pullonkaulojen kartoitusta myös suoritettiin suorituskykyanalyysi eri ohjelmointikielillä tehtyjen toteutusten välillä joiden perusteella voitiin tehdä alustavia johtopäätöksiä suorituskyvyn suhteen. Testien ja ohjelmoinnin tulosten perusteella tehtyjä valintoja sekä suorituskykyanalyysin tuloksia esitellään tässä insinöörityössä salassapitosopimuksen sallimissa rajoissa.
Työn viimeisenä osana toteutettiin sensorijärjestelmän kalibrointiin käytettävä pienimuotoinen ohjelmakoodi Pythonilla jonka toimivuutta testattiin tehdasympäristössä. Testien avulla kyettiin varmistamaan kalibrointikoodin ongelmaton toiminta sekä soveltuvuus valittuun käyttötarkoitukseen ja ympäristöihin.
Työssä toteutettiin teknologiavertailu ja valinta eri käyttöympäristöjen sekä ohjelmistoversioiden välillä asiakkaiden vaatimukset ja tarpeet huomioiden. Nämä valinnat kyettiin perustelemaan toteuttamalla osana työtä toteuttamalla kolmeen eri käyttötapaukseen perustuvat ohjelmistoversiot kummallakin valituista kielistä. Ohjelmoinnin tarkoituksena oli myöskin pullokaulojen ja ongelmakohtien jäljittäminen sekä C++:n Pythonlaajennuksen testaus, näissä tehtävissä onnistuttiin kiitettävästi. Osana teknisiä valintaperusteita ja pullonkaulojen kartoitusta myös suoritettiin suorituskykyanalyysi eri ohjelmointikielillä tehtyjen toteutusten välillä joiden perusteella voitiin tehdä alustavia johtopäätöksiä suorituskyvyn suhteen. Testien ja ohjelmoinnin tulosten perusteella tehtyjä valintoja sekä suorituskykyanalyysin tuloksia esitellään tässä insinöörityössä salassapitosopimuksen sallimissa rajoissa.
Työn viimeisenä osana toteutettiin sensorijärjestelmän kalibrointiin käytettävä pienimuotoinen ohjelmakoodi Pythonilla jonka toimivuutta testattiin tehdasympäristössä. Testien avulla kyettiin varmistamaan kalibrointikoodin ongelmaton toiminta sekä soveltuvuus valittuun käyttötarkoitukseen ja ympäristöihin.