ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2



Documenti analoghi
SOMMARIO Gruppo 4 - All right reserved 1

PROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS

RILIEVO LASER SCANNER PARETE MARMOREA XXXXXXXXXXXXX

CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA

Gestione Risorse Umane Web

Guida alla registrazione on-line di un DataLogger

CONTROLLO IN TENSIONE DI LED

Sistema di diagnosi CAR TEST

IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD

Gestione Turni. Introduzione

FPf per Windows 3.1. Guida all uso

Esercitazione di Laboratorio - Leve di genere TITOLO ESERCITAZIONE: VERIFICA DELLE LEGGI DELLE LEVE

Capitolo 2. Operazione di limite

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE

APPALTIPA PRESENTAZIONE SOFTWARE

Calcolatori Elettronici A a.a. 2008/2009

e-dva - eni-depth Velocity Analysis

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Registratori di Cassa

CHIUSURE di MAGAZZINO di FINE ANNO

Studio di fattibilità per controllo stringhe stampate, con sistema di visione Omron su confezione di Ascorbate.

I motori di ricerca. Che cosa sono. Stefania Marrara Corso di Sistemi Informativi

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Dimensione di uno Spazio vettoriale

Modellazione avanzata dei fogli di lavoro Le Tabelle PIVOT

Manuale di Aggiornamento COMUNICAZIONE OPERAZIONI RILEVANTI AI FINI IVA. DATALOG Soluzioni Integrate a 32 Bit

IsoStereo 3D: il sistema generale ed automatizzato per ricostruzione tridimensionale

Gestione della memoria centrale

RECUPERO DATI LIFO DA ARCHIVI ESTERNI

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Il foglio elettronico. Excel PARTE

PRINCIPALI ATTIVITA TECNICHE PER LA MISURA DEL GAS

SERVIZIO NAZIONALE DI VALUTAZIONE

Guida Compilazione Piani di Studio on-line

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

La pista del mio studio Riflettiamo sulla pista. Guida per l insegnante

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

Piani di input e piani di calcolo reale in FaTA-e

Mon Ami 3000 Cespiti Gestione cespiti e calcolo degli ammortamenti

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

ANALISI SOSPENSIONI Modalità Base

GESTIONE FATTURE (VELINE)

Valutazione del potenziale

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Guida Informativa. LAVORI DI FINE ANNO ebridge Linea Azienda. Chiusura e riapertura esercizio di magazzino, fatturazione, ordini e agenti.

ISTRUZIONI PER LA GESTIONE BUDGET

SOMMARIO... 3 INTRODUZIONE...

Dipartimento per le Libertà Civili e l Immigrazione

Domande e Risposte ALLEGATI CLIENTI E FORNITORI. DATALOG Soluzioni Integrate

Guida all uso di Java Diagrammi ER

1- OBIETTIVI DEL DOCUMENTO 2- INTRODUZIONE

Via Mazzini, Candia Canavese (TO)

Guida Sintetica per l'interscambio dati Scuolanext-Darwin

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

PROCEDURA GESTIONE APPROVVIGIONAMENTO E FORNITORI 02 30/09/2006 SOMMARIO

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

ANALISI E MAPPATURA DEI PROCESSI AZIENDALI

LINEE GUIDA PER L EROGAZIONE DELLA FORMAZIONE INTERNA

Integrazione Validazione Moduli di Dispensazione. Studiofarma

Procedura aggiornamento firmware

Il controllo della visualizzazione

COSTER. Import/Export su SWC701. SwcImportExport

OSCILLOSCOPIO SOFTWARE

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Interesse, sconto, ratei e risconti

SISTEMI DI NUMERAZIONE E CODICI

PROGETTO EM.MA PRESIDIO

Le fattispecie di riuso

S-TRAINER v.1.00 Esempio d uso

FUNZIONI DI IMPAGINAZIONE DI WORD

Statistica. Lezione 6

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

Programma Gestione Presenze Manuale autorizzatore. Versione /08/2010. Area Sistemi Informatici - Università di Pisa

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

I cookie sono classificati in base alla durata e al sito che li ha impostati.

Introduzione. Installare EMAS Logo Generator

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Guida alla costruzione di tavole con i database

Determinazione delle fasce di rispetto per la prevenzione e la riduzione dell inquinamento luminoso per osservatori astronomici

Hub-PA Versione Manuale utente

Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

MANUALE di ISTRUZIONI

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

Procedura aggiornamento firmware

C4B Doc. Gestione Documentale, permette di. organizzare l archiviazione e, la gestione dei documenti

PHOTO FILTRE. I programmi

16 - Differenza tra l acquisizione di una mappa catastale lucidata sull impianto e una rilasciata in fotocopia

Ariba Commerce Cloud. Aggiornamento profilo fornitore

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

PrometeoQualità. Manuale Documenti

La Gestione delle risorse Renato Agati

1. PRIME PROPRIETÀ 2

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Transcript:

DAVIDE ZANIN 1035601 ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2 SOMMARIO Elaborazione di dati tridimensionali - Relazione Homework 2... 1 Obiettivo... 2 Descrizione della procedura seguita... 2 Caricamento della point cloud di riferimento... 2 Analisi di una point cloud... 3 Metodi e parametri utilizzati... 4 Risultati ottenuti... 6 Immagini delle point cloud ottenute... 7

OBIETTIVO Realizzare un programma che analizzi una point cloud rappresentante l oggetto da verificare e controlli se la posizione del cavo nero è corretta. DESCRIZIONE DELLA PROCEDURA SEGUITA Per facilitare l individuazione dei pioli e del cavo si è deciso di scegliere una point cloud di riferimento e di registrare ogni volta la point cloud da analizzare sulla point cloud scelta. In questo modo è possibile sapere in quale posizione si troveranno gli oggetti di interesse in modo sufficientemente preciso. Questa scelta ha il vantaggio di facilitare l individuazione del cavo e dei pioli ma ha lo svantaggio di rendere necessario il processo di registrazione. Dopo che la point cloud è stata registrata si passa all individuazione dei pioli; viene quindi selezionata una specifica zona della cloud e si procede alla clusterizzazione. Ogni cluster viene analizzato e, conscendo la posizione in cui il piolo destro e quello sinistro si trovano, si stabilisce se è un piolo o no. L estrazione dei punti del cavo avviene in modo analogo. Infine si contano quanti punti del cavo stanno nel volume compreso fra i due pioli e si stabilisce se la posizione del cavo è corretta oppure no. Quella appena descritta è la procedura generale che è stata seguita, di seguito i trova la descrizione con maggior dettaglio. CARICAMENTO DELLA POINT CLOUD DI RIFERIMENTO Come cloud di riferimento è stata scelta correct02. Il caricamento di questa point cloud si compone dei seguenti passi: 1. Caricamento dei punti da file e spostamento della cloud in modo che il centroide si trovi nel punto (0, 0, 0); 2. Rimozione del tavolo. Questa operazione è molto molto semplice, infatti è sufficiente togliere dalla cloud tutti i punti con coordinata z minore di 0, e indipendente dalla cloud scelta; questo grazie allo spostamento eseguito al passo precedente, inoltre la rimozione del

tavolo rende molto più leggere la cloud (si eliminano circa il xx% di punti); 3. Calcolo della versione filtrata con un filtro voxel; 4. Calcolo dei keypoint SIFT e delle feature FPFH sulla cloud calcolata al punto precedente. La cloud filtrata e quelle dei keypoint e delle feature vengono salvate perché successivamente verranno usate per registrare le point cloud da analizzare. ANALISI DI UNA POINT CLOUD Dopo aver caricato la cloud di riferimento, vengono analizzate una alla volta le cloud che sono state passate come parametro al programma. Anche in questo caso si procede con il caricamento della point cloud, lo spostamento del centroide in (0, 0, 0) e la rimozione del tavolo, in modo analogo a quanto fatto per la cloud di riferimento. A questo punto viene eseguita la registrazione. REGISTRAZIONE DI UNA POINT CLOUD Per prima cosa viene applicato un filtro voxel alla cloud da registrare, in questo modo il processo di registrazione viene eseguito più velocemente. Vengono quindi calcolati i keypoint SIFT e le feature FPFH e utilizzando la classe SampleConsensusInitialAlignment viene effettuato un primo allineamento della cloud. Questo allineamento viene calcolato basandosi sui keypoint e le feature ad essi associati. Per rifinire l allineamento viene usato l algoritmo iterative closest point che però ha bisogno di tutti i punti della cloud, per questo motivo la cloud filtrata con il voxel viene spostata secondo quanto appena calcolato con SampleConsensusInitialAlignment e quest ultima cloud viene fornita come input per la rifinitura della registrazione. Ora che si dispone della traslazione finale che permette di spostare la point cloud su quella di riferimento in modo che siano allineate, questa viene applica alla cloud a cui non è stato applicato il filtro voxel in modo da disporre di tutti i punti per le elaborazioni successeve.

INDIVIDUAZIONE DEI PIOLI Dopo la registrazione vengono individuati i pioli, viene quindi creata una point cloud che conterrà solo i punti che si suppone essere appartenere ai pioli. Per fare ciò la point cloud registrata viene filtrata in modo da tenere solo i punti che si trovano in certo volume, volume in cui sicuramente saranno presenti i pioli (se visibili). Per estrarre i pioli viene eseguita una clusterizzazione sulla cloud appena filtrata; ciascun cluster viene poi analizzato e se corrispondente ad un piolo, i punti vengono colorati di verde e aggiunti alla point cloud che rappresenta i pioli. La tecnica usata per capire se un cluster è un piolo è la seguente; vengono conteggiati i punti che stanno in una determinata zona (quella occupata da un piolo) e se supera una certa frazione dei punti totali del cluster allora viene classificato come un piolo. INDIVIDUAZIONE DEL CAVO E VERIFICA DELLA CORRETTEZZA Terminata l individuazione dei pioli viene individuato il cavo, la procedura utilizzata è la stessa di quella usata per i pioli descritta nel paragrafo precedente, cambiano solo i parametri. Per verificare se il cavo è nella posizione corretta viene contato il numero di punti del cavo che stanno nel volume individuato dai due pioli. Se questo numero è maggiore di 55 allora il cavo è posizionato correttamente. METODI E PARAMETRI UTILIZZATI Per calcolare il centroide di una point cloud e spostarla in modo che esso si trovi alle coordinate (0, 0, 0) sono state utilizzate le funzioni compute3dcentroid e demeanpointcloud, mentre per eliminare il tavolo è stata usata la classe ConditionalRemoval definendo un apposita condizione (z minore di 0) attraverso la classe ConditionAnd. Prima di effettuare la registrazione viene applicato un filtro voxel con leaf size pari a 0.9, per applicarlo è stata usata la classe VoxelGrid. Il valore è stato scelto dopo una serie di prove in modo

da garantire una buona velocità nella registrazione ma anche un risultato sufficientemente preciso. Come keypoint per eseguire la registrazione sono stati usati i keypoint SIFT; la scelta è dovuta principalmente al fatto che questi keypoint sono scala invarianti e fornivano risultati migliori rispetto agli altri. Per il calcolo sono è stata usata la classe SIFTKeypoint impostando i parametri come segue: sift.setscales(0.05, 3, 5); sift.setminimumcontrast(0.5); I parametri sono stati trovati partendo da alcuni parametri forniti in un tutorial successivamente modificandoli in modo da ottenere buoni risultati ma in tempi più rapidi. Per calcolare le feature FPFH è necessario prima calcolare le normali; per fare ciò è stata usata la classe NormalEstimationOMP che permette di calcolare le normali sfruttando tutti i core del processore e impostando il raggio della sfera usata per l individuazione dei vicini di un punto poi usati per il calcolo della stima, pari a 6. Per le feature FPFH invece, è stata usata la classe FPFHEstimationOMP, che anche in questo caso permette di utilizzare tutti i core, e il raggio della sfera è stato impostato a 6.75. A questo punto per effettuare l allineamento iniziale è stata usata la classe SampleConsensusInitialAlignment fornendo come input le cloud dei keypoint e le cloud delle feature FPFH inoltre i parametri sono stati impostanti come segue: sac.setminsampledistance(35); sac.setmaximumiterations(400); sac.settransformationepsilon(0.001); Anche in questo caso per i parametri sono stati ottenuti dopo una serie di prove, in modo che permettessero di ottenere buoni risultati ma nel minor tempo possibile. Per completare l allineamento è stato usato l algoritmo iterative closest point e in particolare la classe IterativeClosestPoint. I parametri usati in questo caso sono i seguenti: icp.setmaxcorrespondencedistance(40); icp.setmaximumiterations(50);

icp.settransformationepsilon(0.01); icp.setransacoutlierrejectionthreshold(50); L ultimo parametro è stato ottenuto adattando il valore di default alle point cloud fornite, infatti solitamente pcl considera le posizioni come espresse in metri mentre nel nostro caso sono espresse in millimetri. Per trovare i pioli i parametri usati nella clusterizzazione e la classe EuclideanClusterExtraction usando i seguenti parametri: ec.setclustertolerance(0.6); ec.setminclustersize(3); ec.setmaxclustersize(75); Anche per individuare il cavo è stata utilizzata la stessa classe ma in questo caso i parametri sono: ec.setclustertolerance(0.7); ec.setminclustersize(700); ec.setmaxclustersize(3000); Le differenze tra i parametri usati per i pioli e per il cavo sono dovute principalmente al fatto che un piolo è composto da un piccolissimo numero di punti mentre il cavo viene solitamenbte riconosciuto come un unico cluster RISULTATI OTTENUTI Tutte le point cloud vengono correttamente identificate. Point cloud cable02 cable02 correct01 correct01 Risultato NO NO SI SI Tabella 1: risultati ottenuti.

IMMAGINI DELLE POINT CLOUD OTTENUTE Per alcune delle point cloud la rilvazione del cavo non è perfetta, vengono infatti incluse nelle estremità parti che non appartengono al cavo. Siccome questa incongruenza non influenza la valutazione della bontà della posizione del cavo fra i pioli e non risulta essere eccessivo non è stato corretto. Il rilevamento dei pioli invece risulta sempre perfetto. Figura 1: point cloud cable02.

Figura 2: point cloud cable03.

Figura 3: point cloud correct01.

Figura 4: point cloud correct02.