925 resultados para Magneto-Dielettrico, Antenne miniaturizzate, Tecniche di misura di substrati di permettività e di permeabilità, CST
Resumo:
La tesi analizza le principali metodologie e tecniche per il recupero e il consolidamento di edifici in muratura esistenti. Dopo un’iniziale descrizione dei materiali costituenti e delle possibili tipologie costruttive, si evidenziano le caratteristiche meccaniche e le verifiche da attuare in base alle normative vigenti. Vengono poi analizzati i principali elementi strutturali e le norme generali per gli edifici in muratura, nonché i possibili metodi di intervento in base al livello di conoscenza delle costruzioni esistenti. Infine, dopo aver presentato le più importanti indagini e prove, vengono descritte le principali tecniche di consolidamento e i criteri per gli interventi sugli edifici in muratura.
Resumo:
I moderni sistemi embedded sono equipaggiati con risorse hardware che consentono l’esecuzione di applicazioni molto complesse come il decoding audio e video. La progettazione di simili sistemi deve soddisfare due esigenze opposte. Da un lato è necessario fornire un elevato potenziale computazionale, dall’altro bisogna rispettare dei vincoli stringenti riguardo il consumo di energia. Uno dei trend più diffusi per rispondere a queste esigenze opposte è quello di integrare su uno stesso chip un numero elevato di processori caratterizzati da un design semplificato e da bassi consumi. Tuttavia, per sfruttare effettivamente il potenziale computazionale offerto da una batteria di processoriè necessario rivisitare pesantemente le metodologie di sviluppo delle applicazioni. Con l’avvento dei sistemi multi-processore su singolo chip (MPSoC) il parallel programming si è diffuso largamente anche in ambito embedded. Tuttavia, i progressi nel campo della programmazione parallela non hanno mantenuto il passo con la capacità di integrare hardware parallelo su un singolo chip. Oltre all’introduzione di multipli processori, la necessità di ridurre i consumi degli MPSoC comporta altre soluzioni architetturali che hanno l’effetto diretto di complicare lo sviluppo delle applicazioni. Il design del sottosistema di memoria, in particolare, è un problema critico. Integrare sul chip dei banchi di memoria consente dei tempi d’accesso molto brevi e dei consumi molto contenuti. Sfortunatamente, la quantità di memoria on-chip che può essere integrata in un MPSoC è molto limitata. Per questo motivo è necessario aggiungere dei banchi di memoria off-chip, che hanno una capacità molto maggiore, come maggiori sono i consumi e i tempi d’accesso. La maggior parte degli MPSoC attualmente in commercio destina una parte del budget di area all’implementazione di memorie cache e/o scratchpad. Le scratchpad (SPM) sono spesso preferite alle cache nei sistemi MPSoC embedded, per motivi di maggiore predicibilità, minore occupazione d’area e – soprattutto – minori consumi. Per contro, mentre l’uso delle cache è completamente trasparente al programmatore, le SPM devono essere esplicitamente gestite dall’applicazione. Esporre l’organizzazione della gerarchia di memoria ll’applicazione consente di sfruttarne in maniera efficiente i vantaggi (ridotti tempi d’accesso e consumi). Per contro, per ottenere questi benefici è necessario scrivere le applicazioni in maniera tale che i dati vengano partizionati e allocati sulle varie memorie in maniera opportuna. L’onere di questo compito complesso ricade ovviamente sul programmatore. Questo scenario descrive bene l’esigenza di modelli di programmazione e strumenti di supporto che semplifichino lo sviluppo di applicazioni parallele. In questa tesi viene presentato un framework per lo sviluppo di software per MPSoC embedded basato su OpenMP. OpenMP è uno standard di fatto per la programmazione di multiprocessori con memoria shared, caratterizzato da un semplice approccio alla parallelizzazione tramite annotazioni (direttive per il compilatore). La sua interfaccia di programmazione consente di esprimere in maniera naturale e molto efficiente il parallelismo a livello di loop, molto diffuso tra le applicazioni embedded di tipo signal processing e multimedia. OpenMP costituisce un ottimo punto di partenza per la definizione di un modello di programmazione per MPSoC, soprattutto per la sua semplicità d’uso. D’altra parte, per sfruttare in maniera efficiente il potenziale computazionale di un MPSoC è necessario rivisitare profondamente l’implementazione del supporto OpenMP sia nel compilatore che nell’ambiente di supporto a runtime. Tutti i costrutti per gestire il parallelismo, la suddivisione del lavoro e la sincronizzazione inter-processore comportano un costo in termini di overhead che deve essere minimizzato per non comprometterre i vantaggi della parallelizzazione. Questo può essere ottenuto soltanto tramite una accurata analisi delle caratteristiche hardware e l’individuazione dei potenziali colli di bottiglia nell’architettura. Una implementazione del task management, della sincronizzazione a barriera e della condivisione dei dati che sfrutti efficientemente le risorse hardware consente di ottenere elevate performance e scalabilità. La condivisione dei dati, nel modello OpenMP, merita particolare attenzione. In un modello a memoria condivisa le strutture dati (array, matrici) accedute dal programma sono fisicamente allocate su una unica risorsa di memoria raggiungibile da tutti i processori. Al crescere del numero di processori in un sistema, l’accesso concorrente ad una singola risorsa di memoria costituisce un evidente collo di bottiglia. Per alleviare la pressione sulle memorie e sul sistema di connessione vengono da noi studiate e proposte delle tecniche di partizionamento delle strutture dati. Queste tecniche richiedono che una singola entità di tipo array venga trattata nel programma come l’insieme di tanti sotto-array, ciascuno dei quali può essere fisicamente allocato su una risorsa di memoria differente. Dal punto di vista del programma, indirizzare un array partizionato richiede che ad ogni accesso vengano eseguite delle istruzioni per ri-calcolare l’indirizzo fisico di destinazione. Questo è chiaramente un compito lungo, complesso e soggetto ad errori. Per questo motivo, le nostre tecniche di partizionamento sono state integrate nella l’interfaccia di programmazione di OpenMP, che è stata significativamente estesa. Specificamente, delle nuove direttive e clausole consentono al programmatore di annotare i dati di tipo array che si vuole partizionare e allocare in maniera distribuita sulla gerarchia di memoria. Sono stati inoltre sviluppati degli strumenti di supporto che consentono di raccogliere informazioni di profiling sul pattern di accesso agli array. Queste informazioni vengono sfruttate dal nostro compilatore per allocare le partizioni sulle varie risorse di memoria rispettando una relazione di affinità tra il task e i dati. Più precisamente, i passi di allocazione nel nostro compilatore assegnano una determinata partizione alla memoria scratchpad locale al processore che ospita il task che effettua il numero maggiore di accessi alla stessa.
Resumo:
A causa della limitata estensione del campo di vista del sistema, con un microscopio ottico tradizionale non è possibile acquisire una singola immagine completamente a fuoco se l’oggetto è caratterizzato da una profondità non trascurabile. Fin dagli anni ’70, il problema dell’estensione della profondità di fuoco è stato ampiamente trattato in letteratura e molti metodi sono stati proposti per superare questo limite. Tuttavia, è molto difficile riuscire a decretare quale metodo risulti essere il migliore in una specifica applicazione, a causa della mancanza di una metrica validata e adatta ad essere utilizzata anche in casi reali, dove generalmente non si ha a disposizione un’immagine di riferimento da considerare come “la verità” (ground truth). L’Universal Quality Index (UQI) è ampiamente utilizzato in letteratura per valutare la qualità dei risultati in processi di elaborazione di immagini. Tuttavia, per poter calcolare questo indice è necessaria una ground truth. In effetti, sono state proposte in letteratura alcune estensioni dell’UQI per valutare il risultato dei metodi di fusione anche senza immagine di riferimento, ma nessuna analisi esaustiva è stata proposta per dimostrare la loro equivalenza con l’UQI standard nel valutare la qualità di un’immagine. In questo lavoro di Tesi, partendo dai limiti dei metodi attualmente utilizzati per l'estensione della profondità di campo di un microscopio, ed esposti in letteratura, per prima cosa è stato proposto un nuovo metodo, basato su approccio spaziale e fondato su analisi locale del segnale appositamente filtrato. Attraverso l’uso di sequenze di immagini sintetiche, delle quali si conosce la ground truth, è stato dimostrato, utilizzando metriche comuni in image processing, che il metodo proposto è in grado di superare le performance dei metodi allo stato dell'arte. In seguito, attraverso una serie di esperimenti dedicati, è stato provato che metriche proposte e ampiamente utilizzate in letteratura come estensione dell'UQI per valutare la qualità delle immagini prodotte da processi di fusione, sebbene dichiarate essere sue estensioni, non sono in grado di effettuare una valutazione quale quella che farebbe l'UQI standard. E’ quindi stato proposto e validato un nuovo approccio di valutazione che si è dimostrato in grado di classificare i metodi di fusione testati così come farebbe l’UQI standard, ma senza richiedere un’immagine di riferimento. Infine, utilizzando sequenze di immagini reali acquisite a differenti profondità di fuoco e l’approccio di valutazione validato, è stato dimostrato che il metodo proposto per l’estensione della profondità di campo risulta sempre migliore, o almeno equivalente, ai metodi allo stato dell’arte.
Resumo:
La vera identità di un individuo è un'informazione molto preziosa. In generale le persone non hanno particolari remore a rivelare la propria identità e il riconoscimento non rappresenta un problema; l'unica motivazione che può portare un individuo a nascondere la propria identità è l'elusione dei rilevamenti delle forze dell'ordine per un certo tipo di attività criminale. In questi casi, risulta difficile procedere al riconoscimento attraverso caratteristiche biometriche come iride o impronte digitali, in quanto la loro acquisizione presuppone un certo grado di collaborazione da parte del soggetto. Il volto, invece, può essere ottenuto in modo segreto, non solo attraverso le ben note telecamere di videosorveglianza ma anche attraverso la ricostruzione fornita da un eventuale testimone oculare che assiste all'evento criminoso. Quest'ultimo, attraverso la descrizione verbale del sospettato e con l'ausilio delle capacità di un disegnatore, fornisce un contributo per la costruzione di un identikit o sketch del soggetto, favorendo quindi il processo di individuazione dell'identità del malvivente. Solitamente, una volta prodotto lo sketch, si effettua un confronto visivo con le fotografie segnaletiche già in possesso degli inquirenti e memorizzate all'interno di un'ipotetica banca dati. Tale confronto viene eseguito 'manualmente' da persone incaricate, comportando un inevitabile spreco di tempo; dotarsi di un sistema automatico in grado di ricercare la foto del sospettato più somigliante allo sketch a partire da quelle presenti all'interno di un database potrebbe aiutare le forze di polizia in una più celere individuazione del colpevole. Purtroppo, i metodi presenti allo stato dell'arte sul riconoscimento facciale non consentono un confronto diretto: fotografia e disegno sono due rappresentazioni del volto molto differenti in termini di ricchezza di dettagli e tessitura e pertanto non direttamente confrontabili. L'obiettivo del progetto di tesi è quello di esplorare una nuova strategia di valutazione automatica della similarità tra uno sketch e una fotografia consistente principalmente in un'analisi della conformazione dei volti, mediante estrazione dei contorni e calcolo di apposite feature.