Tekoälypohjainen ohjelma objektien havaitsemiseen
Kananen, Ville (2022)
Kananen, Ville
2022
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-2022121630424
https://urn.fi/URN:NBN:fi:amk-2022121630424
Tiivistelmä
Tämän opinnäytetyön aiheena oli toteuttaa Roadscanners Oy:lle tekoälyä käyttävä objektien havaitsemisohjelma. Tavoitteena oli objektien sumentaminen kuvamateriaalista, jota yrityksen mitta-autot ovat kameroilla keränneet tieliikenteestä. Tarkoituksena oli havaita ja sumentaa objekteja, kuten autoja, ihmisiä ja rekisterikilpiä. Ohjelman kriteereinä olivat myös käyttäjäystävällisyys, tehokkuus ja tarkkuus.
Opinnäytetyö aloitettiin tutkimalla tekoälyn teoriaa ja taustatietoja. Tarkoituksena oli löytää objektien havaitsemiseen tarkoitettuja tekoälymalleja ja niiden käyttämiä algoritmeja. Tutkimuksissa haettiin tietoa muun muassa tekoälystä, koneoppimisesta, konenäöstä sekä ohjelmoinnista. Opittua teoriaa testattiin käytännössä ohjelmoimalla ja testaamalla niitä eri kehitysympäristöissä. Työssä käytettiin Python-, C#- ja Visual Basic -koodikieliä. Microsoft Visual Studio oli kehitysympäristö, jossa ohjelmointi pääosin toteutettiin. Algoritmiksi valittiin YOLO-algoritmi ja sen käyttämä konvoluuttinen neuroverkko. YOLO valittiin työhön, koska se osoittautui sopivimmaksi tätä tarkoitusta varten.
Lopputulos poikkesi sen verran suunnitelmista, että yhden ohjelman sijaan toteutettiin kaksi erillistä ohjelmaa. RDModelTraining-koulutusohjelma rakennettiin tietojoukkojen valmistusta varten. Tietojoukot ja niiden sisältämät huomautukset kuvissa tarvittiin tekoälyn opettamista varten. RDBlurring-havaitsemisohjelma rakennettiin kuvien ja videoiden anonymisointia varten. Molemmat ohjelmat onnistuttiin rakentamaan melko hyvin, joitain pieniä ongelmia lukuun ottamatta. Tulokset pystyttiin hyödyntämään niin, että ohjelmistot ja niiden sisältämät koodit otettiin yrityksen käyttöön.
Opinnäytetyö aloitettiin tutkimalla tekoälyn teoriaa ja taustatietoja. Tarkoituksena oli löytää objektien havaitsemiseen tarkoitettuja tekoälymalleja ja niiden käyttämiä algoritmeja. Tutkimuksissa haettiin tietoa muun muassa tekoälystä, koneoppimisesta, konenäöstä sekä ohjelmoinnista. Opittua teoriaa testattiin käytännössä ohjelmoimalla ja testaamalla niitä eri kehitysympäristöissä. Työssä käytettiin Python-, C#- ja Visual Basic -koodikieliä. Microsoft Visual Studio oli kehitysympäristö, jossa ohjelmointi pääosin toteutettiin. Algoritmiksi valittiin YOLO-algoritmi ja sen käyttämä konvoluuttinen neuroverkko. YOLO valittiin työhön, koska se osoittautui sopivimmaksi tätä tarkoitusta varten.
Lopputulos poikkesi sen verran suunnitelmista, että yhden ohjelman sijaan toteutettiin kaksi erillistä ohjelmaa. RDModelTraining-koulutusohjelma rakennettiin tietojoukkojen valmistusta varten. Tietojoukot ja niiden sisältämät huomautukset kuvissa tarvittiin tekoälyn opettamista varten. RDBlurring-havaitsemisohjelma rakennettiin kuvien ja videoiden anonymisointia varten. Molemmat ohjelmat onnistuttiin rakentamaan melko hyvin, joitain pieniä ongelmia lukuun ottamatta. Tulokset pystyttiin hyödyntämään niin, että ohjelmistot ja niiden sisältämät koodit otettiin yrityksen käyttöön.