Objektintunnistus ja konvoluutioneuroverkko
Kuru, Anssi (2024)
Kuru, Anssi
2024
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-2024060721931
https://urn.fi/URN:NBN:fi:amk-2024060721931
Tiivistelmä
Keinotekoisen näkökyvyn luominen ja automatisointi on kiehtova haaste, joka inspiroi tutkijoita, insinöörejä ja tekoälyasiantuntijoita. Tällaisen kyvykkyyden sovellusmahdollisuuksien ulottuessa laajalti eri aloille on haasteeseen yritetty vastata koneoppimisen menetelmin. Tekoälyn yleisen kehityksen myötä konvoluutioneuroverkkopohjaiset objektintunnistusmenetelmät ovatkin kehittyneet huimasti viimeisen vuosikymmenen aikana.
Yksi objektintunnistuksen sovelluskohde on tiedon keräämisen automatisointi. Digita Oy:n verkkosuunnittelijoille menetelmän avulla voitaisiin kerätä tietoja optimaalisten tukiasemapaikkojen valinnan tueksi. Mastopaikan sopivuuden arvioinnissa tiedot ympäristön näköesteistä ja läheisten rakennusten korkeuksista ovat hyödyllisiä. Tällaisen tiedontarpeen pohjalta luotiin tavoite kehittää yleiskäyttöinen sovellus objektien korkeuksien ja leveyksien mittaamiseen yksittäisen kuvan avulla. Yleiskäyttöisyyden näkökulmasta ja tutkimuksen rajaamiseksi pyrittiin välttämään ratkaisuja, jotka hyödyntäisivät useista kuvista koostettua informaatiota tai metatietoja.
Sovelletun tutkimuksen kautta pyrittiin ymmärtämään objektintunnistuksen ja neuroverkkojen toimintaperiaatteita, sekä kehittää kykyjä soveltaa tekoälyä, konvoluutioneuroverkkoa ja objektintunnistusta käytännössä Python-ohjelmointikielen avulla. Vaikka tutkimuksen pääpaino oli teoreettisessa tutkimuksessa, myös uusien koneoppimismallien kouluttamista tutkittiin. Instanssisegmentointiin kykeneviä objektintunnistusmalleja ei kuitenkaan koulutettu aineiston, laitteiston ja osaamisresurssien puutteen takia.
Mittauslogiikkaa tutkittiin rajauslaatikon avulla, johon perustuen kehitettiin YOLO-pohjainen mittausohjelma. Rakennuksia luokittelevan luokittelijan puute esti ohjelman testaamisen suunniteltuun käyttötarkoitukseen, ja ohjelman riippuvuus referenssikuvasta rajoittaa sen laajempia käyttömahdollisuuksia. Ohjelmalla voi kuitenkin olla käyttöä kontrolloidussa ympäristössä, missä referenssikuvien ottaminen ei ole ongelma. Ohjelma on vapaasti ladattavissa GitHubista jatkokehitystä varten. Mittakaavan ja pikseli-metrisuhteen luominen kuvan avulla on kontekstisidonnainen tehtävä. Yleiskäyttöisesti toimivalta mittaussovellukselta vaaditaan moniulotteisempaa ja näin ollen kompleksisempaa mittauslogiikkaa. Vaihtoehtoinen menetelmä mittausohjelman luomiseksi voisi perustua puhtaasti induktiiviseen oppimiseen, jolloin esikoulutettujen objektintunnistusmallien jatko-opettaminen (transfer learning) voisi olla käytännöllisin lähtökohta. Vision is perhaps our most powerful method of acquiring information. Automating this process by teaching machines to interpret visual data is considered an ultimate challenge. With the growing interest in machine learning, object detection systems have achieved significant improvements since the adoption of convolutional neural networks.
One practical application of this technology would be measuring the dimensions of detected objects. For Digita Ltd this method could provide supportive information in aim to decide good telecommunication tower locations. Assessing the suitability of tower sites benefits from information about environmental visual obstructions and the heights of nearby buildings. To address these needs, the research aimed at developing a universally applicable tool for measuring the heights and widths of objects based on a single image. From the perspective of general usability and to focus the scope of the study, solutions that would require compiled information from multiple images or extensive metadata were avoided.
Through applied research, the aim was to understand the principles of object detection and neural networks, and to develop skills in applying artificial intelligence, convolutional neural networks, and object detection practically using the Python programming language. The investigation primarily focused on theoretical research, with some efforts directed toward training new machine learning models. However, the development of models capable of instance segmentation was limited due to constraints in training data, hardware, and initial lack of expertise.
Focusing on bounding box measurement logic, a YOLO-based measuring software was implemented. However, the absence of a proprietary classifier and remaining reliance on metadata limit the application's usefulness for the intended task. The software can still be useful in controlled settings where taking reference images is feasible. For further development, the software is available on GitHub. The process of creating a metric scale from a single image is context-dependent, and a more versatile solution would necessitate more complex logic. Utilizing transfer learning as an alternative could be a practical starting point for measurement solutions relying solely on inductive learning.
Yksi objektintunnistuksen sovelluskohde on tiedon keräämisen automatisointi. Digita Oy:n verkkosuunnittelijoille menetelmän avulla voitaisiin kerätä tietoja optimaalisten tukiasemapaikkojen valinnan tueksi. Mastopaikan sopivuuden arvioinnissa tiedot ympäristön näköesteistä ja läheisten rakennusten korkeuksista ovat hyödyllisiä. Tällaisen tiedontarpeen pohjalta luotiin tavoite kehittää yleiskäyttöinen sovellus objektien korkeuksien ja leveyksien mittaamiseen yksittäisen kuvan avulla. Yleiskäyttöisyyden näkökulmasta ja tutkimuksen rajaamiseksi pyrittiin välttämään ratkaisuja, jotka hyödyntäisivät useista kuvista koostettua informaatiota tai metatietoja.
Sovelletun tutkimuksen kautta pyrittiin ymmärtämään objektintunnistuksen ja neuroverkkojen toimintaperiaatteita, sekä kehittää kykyjä soveltaa tekoälyä, konvoluutioneuroverkkoa ja objektintunnistusta käytännössä Python-ohjelmointikielen avulla. Vaikka tutkimuksen pääpaino oli teoreettisessa tutkimuksessa, myös uusien koneoppimismallien kouluttamista tutkittiin. Instanssisegmentointiin kykeneviä objektintunnistusmalleja ei kuitenkaan koulutettu aineiston, laitteiston ja osaamisresurssien puutteen takia.
Mittauslogiikkaa tutkittiin rajauslaatikon avulla, johon perustuen kehitettiin YOLO-pohjainen mittausohjelma. Rakennuksia luokittelevan luokittelijan puute esti ohjelman testaamisen suunniteltuun käyttötarkoitukseen, ja ohjelman riippuvuus referenssikuvasta rajoittaa sen laajempia käyttömahdollisuuksia. Ohjelmalla voi kuitenkin olla käyttöä kontrolloidussa ympäristössä, missä referenssikuvien ottaminen ei ole ongelma. Ohjelma on vapaasti ladattavissa GitHubista jatkokehitystä varten. Mittakaavan ja pikseli-metrisuhteen luominen kuvan avulla on kontekstisidonnainen tehtävä. Yleiskäyttöisesti toimivalta mittaussovellukselta vaaditaan moniulotteisempaa ja näin ollen kompleksisempaa mittauslogiikkaa. Vaihtoehtoinen menetelmä mittausohjelman luomiseksi voisi perustua puhtaasti induktiiviseen oppimiseen, jolloin esikoulutettujen objektintunnistusmallien jatko-opettaminen (transfer learning) voisi olla käytännöllisin lähtökohta.
One practical application of this technology would be measuring the dimensions of detected objects. For Digita Ltd this method could provide supportive information in aim to decide good telecommunication tower locations. Assessing the suitability of tower sites benefits from information about environmental visual obstructions and the heights of nearby buildings. To address these needs, the research aimed at developing a universally applicable tool for measuring the heights and widths of objects based on a single image. From the perspective of general usability and to focus the scope of the study, solutions that would require compiled information from multiple images or extensive metadata were avoided.
Through applied research, the aim was to understand the principles of object detection and neural networks, and to develop skills in applying artificial intelligence, convolutional neural networks, and object detection practically using the Python programming language. The investigation primarily focused on theoretical research, with some efforts directed toward training new machine learning models. However, the development of models capable of instance segmentation was limited due to constraints in training data, hardware, and initial lack of expertise.
Focusing on bounding box measurement logic, a YOLO-based measuring software was implemented. However, the absence of a proprietary classifier and remaining reliance on metadata limit the application's usefulness for the intended task. The software can still be useful in controlled settings where taking reference images is feasible. For further development, the software is available on GitHub. The process of creating a metric scale from a single image is context-dependent, and a more versatile solution would necessitate more complex logic. Utilizing transfer learning as an alternative could be a practical starting point for measurement solutions relying solely on inductive learning.