S09 04 Kohteiden tunnistaminen 3D datasta

Samankaltaiset tiedostot
S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Väliraportti

S11-09 Control System for an. Autonomous Household Robot Platform

AS Automaatio ja systeemitekniikan projektityöt A13 10 Radio ohjattavan pienoismallin ohjausjärjestelmän ja käyttöliittymän kehittäminen

Määrittelydokumentti

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

Power Steering for ATV

Mat Operaatiotutkimuksen projektityöseminaari. Dynaaminen kimppakyytijärjestelmä Uudellamaalla. Väliraportti

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Electric power steering

Projektisuunnitelma: Vesipistekohtainen veden kulutuksen seuranta, syksy Mikko Kyllönen Matti Marttinen Vili Tuomisaari

Dynaaminen allokaatio ja riskibudjetointi sijoitusstrategioissa

Stereopaikannusjärjestelmän tarkkuus (3 op)

Projektisuunnitelma. Projektin tavoitteet

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Kerro kuvin 3:n uudet ominaisuudet

2009 Mat Operaatiotutkimuksen Projektityöseminaari L

Tieverkon kunnon stokastinen ennustemalli ja sen soveltaminen riskienhallintaan

Optimaalisen tarkastusvälin määrittäminen suun terveydenhuollossa

Johdatus tekoälyn taustalla olevaan matematiikkaan

CQRS, -ES, PACS, DICOM, WTF?

Lineaaristen monitavoiteoptimointitehtävien

A4.1 Projektityö, 5 ov.

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Pullotusprosessin ohjaus Metso DNA - automaatiojärjestelmällä. Prosessiautomaation harjoitustyö ELEC-C1220 Automaatio 2 Kevät 2016

Reilun Pelin työkalupakki: Kiireen vähentäminen

Matematiikan tukikurssi

Peltorobottikilpailu Joonas Ryynänen (C) Perttu Heikkilä Ville Matikainen Mikko Vihlman

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

10. Esitys ja kuvaus

Numeeriset menetelmät

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

Kone- ja rakentamistekniikan laboratoriotyöt KON-C3004. Koesuunnitelma: Paineen mittaus venymäliuskojen avulla. Ryhmä C

Ryhmät & uudet mahdollisuudet

Tehokkaiden strategioiden identifiointi vakuutusyhtiön taseesta

Mallintarkistus ja sen

AS Automaatio- ja systeemitekniikan projektityöt

A11-07 Measurements with machine vision (3 op) Loppuraportti

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

SGN-4200 Digitaalinen Audio Harjoitustyö-info

EV3 Liikemittauksia. Työkortit EV3 liikemittauksissa / Tehtäväkortit/ Piia Pelander / 2017 Innokas 1

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Älykäs datan tuonti kuljetusongelman optimoinnissa. Antoine Kalmbach

Koska ovat negatiiviset. Keskihajontoja ei pystytä laskemaan mutta pätee ¾.

Numeerinen analyysi Harjoitus 3 / Kevät 2017

A11-07 Measurements with machine vision Projektisuunnitelma

Algoritmi I kuvioiden ja niille johtavien ajourien erottelu. Metsätehon tuloskalvosarja 7a/2018 LIITE 1 Timo Melkas Kirsi Riekki Metsäteho Oy

Lineaarinen optimointitehtävä

EUREF-FIN/N2000 käyttöönotto Helsingissä

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

Matematiikan tukikurssi

Sisältö. Työn idea Protokollat. Harjoitustyön käytäntöjä. Työn demoaminen. Etäisyysvektori Linkkitila. Palvelin Moodle SSH-tunnelit

AS Automaatio- ja systeemitekniikan projektityöt Väliraportti

Matematiikan tukikurssi

Projektisuunnitelma ja johdanto AS Automaatio- ja systeemitekniikan projektityöt Paula Sirén

Toinen harjoitustyö. ASCII-grafiikkaa

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

A11-02 Infrapunasuodinautomatiikka kameralle

A13-03 Kaksisuuntainen akkujen tasauskortti. Projektisuunnitelma. Automaatio- ja systeemitekniikan projektityöt AS-0.

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Ratkaisuehdotukset LH 7 / vko 47

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Siimasta toteutettu keinolihas

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

Määrittelyvaihe. Projektinhallinta

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

normaali- ja leikkaus jännitysten laskemiseen pisteessä Määritetään ne tasot, joista suurimmat normaali- ja leikkausjännitykset löytyvät

AS Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

2.2 Muunnosten käyttöön tutustumista

Laskuharjoitus 2 ( ): Tehtävien vastauksia

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

4. Lausekielinen ohjelmointi 4.1

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

ELM GROUP 04. Teemu Laakso Henrik Talarmo

DIGIBONUSTEHTÄVÄ: MPKJ NCC INDUSTRY OY LOPPURAPORTTI

ELEC-C1110 Automaatio- ja systeemitekniikan. Luento 11 Esimerkki automaation soveltamisesta

Avoin data ja sen hyödyntäminen tähtitieteessä. Juhani Huovelin Fysiikan laitos Helsingin yliopisto

Mat Operaatiotutkimuksen projektityöseminaari Viestiverkon toimintaluotettavuuden arviointi Väliraportti

Puhelintukiasema-antennin säteilykuvion mittaus multikopterilla (Valmiin työn esittely)

Harjoitustyö 3. Heiluri-vaunusysteemin parametrien estimointi

TASON YHTÄLÖT. Tason esitystapoja ovat: vektoriyhtälö, parametriesitys (2 parametria), normaalimuotoinen yhtälö ja koordinaattiyhtälö.

OpenStreetMap-aineistojen haltuunotto GDAL:lla

Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa

On-line mittausten kunnonvalvonta vedenpuhdistusprosessissa PROJEKTISUUNNITELMA

Matlab-tietokoneharjoitus

Tehokkaiden strategioiden identifiointi vakuutusyhtiön taseesta

Radio-ohjattavan pienoismallin mekatroniikan ja ohjelmiston kehitys

3D-kuvauksen tekniikat ja sovelluskohteet. Mikael Hornborg

Sisäilman laadun mittausjärjestelmän rakentaminen ZigBee-verkon avulla

S OPTIIKKA 1/10 Laboratoriotyö: Polarisaatio POLARISAATIO. Laboratoriotyö

Transkriptio:

AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen

1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen rakennetun ympäristön kohteiden, kuten lattian, seinien ja katon tunnistamiseen 3D laserskannerin tuottamasta mittauspisteparvesta. Skanneri koostuu kahdesta lasermittarista jotka on kiinnitetty pyörivään alustaan. Heijastuvasta lasersäteestä saadaan etäisyystieto, josta yhdessä skannerin asematidon kanssa voidaan laskea laitteen ympäristöä kuvaava pistejoukko. Mittausdata kerätään ja prosessoidaan PC tietokoneella. Vastaavaa tekniikkaa on hyödynnetty esimerkiksi asuinalueiden ilmakartoituksessa kattojen (taso) ja metsätyökoneissa puunrunkojen (lieriö) tunnistamiseen [1][2]. Tavoitteet Projektin ensisijaisena tavoitteena oli pyrkiä tunnistamaan yksinkertaisia rakenteita kuten lattia, katto ja seinät. Haastaviempien muotojen tuonnistaminen asetettiin mahdolliseksi jatkotavoitteeksi.

2. Projektin eteneminen Projekti jaettiin suunniteltaessa kolmeen vaiheeseen: Teoriaan tutustuminen ja työkalujen valinta Projektin työkalut olivat vapaasti valittavissa ja valinta kohdistui tuttuun ja hyväksi havaittuun Matlabiin. Valintaa puolsivat Matlabin monipuoliset ja nopeat matriisoperaatiot, joita pystyttiin hyödyntämään itse algoritmissa. Sovellettavaksi algoritmiksi valittiin Hough muunnos, jota on käytetty laajalti kuvankäsittelyssä tunnistettaessa muotoja 2D kuvista [3]. Haasteena olisi siis laajentaa algoritmi kolmeen ulottuvuuteen. Hough muunnoksessa pisteet kuvataan parametriavaruuteen, josta kiinnostavat kohteet löydetään lokaaleina maksimeina. Muita varteenotettavia vaihtoehtoja olisi ollut ainakin RANSAC [4] eli random sample consensus algoritmi, joka kuitenkin hylättiin koska iteratiivisen algoritmin ajaminen suurelle datajoukolle voisi osoittautua laskennallisesti liian työlääksi. Algoritmin ohjelmointi ja testaus Algoritmin ohjelmointi aloitettiin tavoitteena saada aikaan nopeasti yksinkertainen, toimiva versio. 2 uloitteisen muunnoksen pohjalta onnistuttiinkin väliraporttiin mennessä kehittämään algoritmi, jonka avulla tunnistettiin skanneriin nähden kohtisuorat pinnat. Lopullinen algoritmi osaa tunnistaa tason oli sen sijainti ja orientaatio mikä tahansa. Kaikkien mahdollisten tasojen etsiminen 3D avaruudesta on kuitenkin laskennallisesti raskasta. Tämän takia algoritmissa on myös mahdollisuus etsiä erikseen horisontaalisia (katto ja lattia) ja vertikaalisia (seinät) tasoja. Mielivaltaisen tason etsintää varten on käyttäjän todennäköisesti muokattava parametreja itse koodin sisällä. Dokumentointi Skannerilla otettiin lukuisia mittauksia erilaisissa ympäristöissä ja algoritmin toimintaa havainnollistettiin tekemällä videot, joissa pistejoukkoa kuvataan niiden ympäriltä.

3. Algoritmin toiminta Kehitetyn algoritmin toiminta on esitetty pääpiirteissään alla, tarkempi ohjelmakoodi löytyy liitteenä olevasta matlab tiedostosta. Algoritmin voi ajaa Matlabissa esimerkiksi komennolla: [accumulator, data] = D3Hough(filterPoints(all3d1), 2, 20); Saatua pistejoukkoa voi tarkastella vaikka komennolla: scatter3(data(1:size(data), 1), data(1:size(data), 2), data(1:size(data), 3)); D3Hough algoritmi Otetaan parametrina laserskannerilta saatu pistejoukko. Valitaan joukosta osa itse muunnosta varten. Etsitään valituille pisteille lähimmät naapurit ja lasketaan näiden kolmen pisteen muodostaman tason normaali kyseisessä pisteessä. Parametrisoidaan nämä tasot ja kasvatetaan 3 uloitteista akkumulaattoria parametrien mukaisesti. Etsitään akkumulaattorista maksimi jonka avulla saadaan löydetyn tason yhtälö. Etsitään alkuperäisestä pistejoukosta pisteet, jotka toteuttavat tason yhtälön. Palautetaan akkumulaattori ja löydetyt pisteet. Seuraavassa on esitetty kaksi videota, jotka havainnollistavat käytetyllä algoritmilla saatuja tuloksia. Videossa 1 on alkuperäinen pistejoukko. http://www.youtube.com/watch?v=wnp8mn4pzvg Videossa 2 tästä joukosta on tunnistettu lattia(vihreä), seinät(punainen) ja katto(sininen). http://www.youtube.com/watch?v=leyd_9vdpxs

4. Yhteenveto Projekti saavutti ensisijaisen tavoitteensa ja kehitetyllä algoritmilla onnistuttiin erottelemaan pistedatasta samassa tasossa sijaitsevat pisteet. Ajankäytön kannalta onnistumiset projektin alkupuolella aiheuttivat sen että lopussa tuli kiire. Aikataulu lipsui loppuvaiheessa suunnitelmasta ja työ eteni nykäyksittäin. Projektiin tuli kokonaisuudessaan kuitenkin käytettyä aikaa työlle arvioitu määrä, noin 90 tuntia. Algoritmi on loppuraporttia kirjoitettaessa toimiva, joskin vaatinee käyttöympäristöstä riippuen parametrien viilausta. Samalle pohjalle olisi kuitenkin mahdollista kehittää myös monimutkaisempia kappaleita kuten lieriöitä tunnistava toiminnallisuus.

5. Viitteet [1] Mei Zhou & al, Study on the target feature extraction, saatavilla http://www.isprs.org/congresses/beijing2008/proceedings/3b_pdf/62.pdf [2] T. Aschoff & al, Describing foret stands using terrestrial laser scanning, saatavilla http://www.isprs.org/congresses/istanbul2004/comm5/papers/556.pdf [2] http://en.wikipedia.org/wiki/hough_transform [3] http://en.wikipedia.org/wiki/ransac