• Non ci sono risultati.

Uiveideg

N/A
N/A
Protected

Academic year: 2021

Condividi "Uiveideg"

Copied!
75
0
0

Testo completo

(1)

Fa oltà diIngegneria

CorsodiLaurea QuinquennaleinIngeneria Informati a

tesi dilaurea

Interfa iamento tele amera per

tra king

Relatore: prof. Emanuele Menegatti

Correlatore: ing. StefanoGhidoni

Laureando: Fabio Rossignoli

(2)
(3)
(4)
(5)

Questa tesi tratta dell'integrazione del brandeggio Ulisse Compa t 2, prodotto

dall'azienda Videote S.p.A., nel sistema di tra king pervideosorveglianza

im-plementato grazie ad un middleware (NMM 4). Un brandeggio è un supporto

pertele amera he può ruotare ontemporaneamenteinsenso orizzontale e

ver-ti ale, lungo assi denominati pan e tilt, mentre un middleware, in breve, è un

softwarediinterfa iatra appli azionie risorse diunarete.

Il lavoro, svolto nello IAS Lab (Intelligent Autonomous Systems

Laborato-ry)dell'UniversitàdiPadova,èpartitodall'installazionedella onnessioneseriale

tra la tele amera ed il PC, osì da permetternela re ipro a omuni azione. Si

sono fatti i dovuti test di funzionamento attraverso l'interfa ia seriale

Cute-Comesièpoiimplementatoilproto ollo di omuni azionedell'UlisseCompa t,

denominato Proto ollo MACRO, in linguaggio di alto livello. Una volta

ot-tenuti questi strumenti base di omuni azione, si è pro eduto alla s rittura di

un'interfa ia he permettesse ad un normale utente il totale ontrollo

dell'ap-pare hiatura. Aquestopunto sièiniziato illavorodiintegrazione nelsoftware

di tra king he ne ha ri hiesto inizialmente lo studio teori o ed in seguito la

ompleta omprensionedel odi e heloimplementa. Sisonoquindiin apsulati

imetodidi ontrollo pre edentemente preparatiper l'Ulisse nel odi e sorgente

del pa hetto di videosorveglianza e fall dete tion. Nel ontempo si avviava lo

studio e l'installazione del middleware NMM (Network-Integrated Multimedia

Middleware) no a renderlo operativo all'interno del laboratorio, sulla stessa

ma hina già in omuni azione on la tele amera e on installato il tra king di

ui si è parlato. L'ultimo passo è stata l'implementazione dell'Ulisse in NMM,

perquanto riguarda l'inseguimento deisoggettitra kati el'inquadramento delle

adute rilevate dallo stesso sistema. Inne si sono fatti diversi test he hanno

datorisultatisoddisfa enti,inparti olarenellafasediinseguimentodelsoggetto

tra kato,grazie an heallagrandeversatilità,soprattutto inambito di ontrollo,

delbrandeggio ( apa ità diposizionamento se ondo oordinateassolute).

Tutti isoftware usati (GNU/Linux, E lipse, NMM, CuteCom, L A

T

E

X[1℄ [2℄)

(6)
(7)

1 Introduzione 1 1.1 Lavideosorveglianza . . . 1 1.2 Contesto appli ativo . . . 3 1.3 Obiettivi. . . 5 1.4 Lavoroditesi . . . 6 1.5 Ipotesidiprogetto . . . 6

1.6 Materiale giàpresente . . . 7

2 La tele amera Ulisse Compa t 9 2.1 Collegamento . . . 10

2.2 Congurazione . . . 12

2.3 Datasheet . . . 15

3 Implementazione del proto ollo 17 3.1 Interfa ia C++di ontrollo . . . 17

3.2 Interfa ia C++di omando. . . 19

3.3 S hemadell'ambiente. . . 22

4 NMM (Network-Integrated Multimedia Middleware) 25 4.1 Te nologia alla basediNMM . . . 26

4.2 Ar hitettura generalediNMM . . . 27

4.3 Servizi middlewareaggiuntivi . . . 29

4.4 L'organizzazione a nodi, ja keowgraph . . . 29

4.5 Sistema dimessaging . . . 30

4.6 Gradi ussodistribuiti (Distributed FlowGraphs) . . . 31

4.7 Sin ronizzazione distribuita . . . 32

4.8 RegistryServi e. . . 32

4.9 UtilizzodiNMM . . . 33

4.9.1 Installazionee test NMM . . . 33

4.9.2 Metodologiediutilizzo . . . 37

4.9.3 Cli (Command Line Intera tion and Conguration) . . . 37

(8)

5 Tra king e Fall Dete tor 43

5.1 Creazione del ontrollo . . . 45

5.2 Creazione dei nodiNMM . . . 48

5.2.1 Integrazione alFallDete tionNode . . . 48

5.2.2 Integrazione alVideoEventRe eiverNode . . . 52

6 Con lusioni 59

Bibliograa 62

Elen o delle tabelle 64

(9)

Introduzione

Usando una frasefatta, tanto invoga nell'ambiente dell'e onomia dilargo

on-sumo, si può tranquillamente aermare he la videosorveglianza è uno di quei

settori he non onos e risi.

Nata ome on etto di  ontrollo del territorio all'alba della iviltà,

tra-s ende oggi il sempli e ambito dell'auto onservazione e diventa indispensabile

strumento disi urezza e ontrolloso iale.

Arri hitadellenuovete ni heete nologieoreampiambitidiri er ae

svi-luppo tanto sul pianodell'invenzione dinuovistrumenti, quanto nella reazione

di un'intelligenza arti iale in gradodi sostituire, seppur limitatamente, quella

umana.

Dall'unione dei moderni appare hi di ripresa e dallo studio e

implementa-zione degli algoritmi di elaborazione delle immagini, e o nas ere, appunto, la

videosorveglianza intelligente.

1.1 La videosorveglianza

L'atto di videosorvegliare onsiste nel vigilare, generalmente un luogo o

o-munque un bene, a distanza, tramite l'utilizzo di tele amere strategi amente

posizionate.

La videosorveglianza nas e in ambito analogi o e la sua storia è molto più

brevediquella deisistemianti-intrusione, esistenti sindall'anti hità.

Il primo esperimento diTVCC (TeleVisione a Cir uito Chiuso) viene

attri-buita all'ingegnere tedes o Walter Bru h nel 1942. L'impianto venne realizzato

dalla Siemens a Peenemunde sulla rampa di lan io Prüfstand VII e serviva a

monitorare i lan i dei razzi V-2 , i più sosti ati missili militari della Se onda

GuerraMondiale.

Perleprimeappli azioniadusononmilitarebisognaattendereil1965,

(10)

videosorve-NelRegno Unitoneiprimianni'70ful'IRA(IrishRepubli anArmy),a

on-tribuire ad una diusione massi ia degli impianti divideosorveglianza, seguita

a metà del de ennio alla prima rivoluzione elettroni a nella videosorveglianza,

on l'introduzione del CCD, un pi olo ir uito integrato in grado di a quisire

le immaginie disostituireil piùingombrante e ostoso tuboVidi on.

Per quanto riguarda laregistrazione video, ilprototipodiregistratore video

su nastromagneti ofusviluppatonel1952dalla Ampex on unappare hio he

utilizzava una testina rotante ed un nastro he si muoveva relativamente lento.

All'iniziodel1956 laAmpexfe eesordireil VR-1000(vediFigura1.1), ilprimo

della seriedeiregistratori sunastrovideo da2polli i Quadruplex(4tra e). La

prima trasmissione televisivaregistrata magneti amentee trasmessaindierita

usando il nuovo sistema di registrazione Ampex fu Douglas Edwards and the

News della CBS il30 novembre del 1956.

Figura1.1: L'AmpexVR-1000

L'assemblaggioQuadHeadaveva4testine heruotavanoa14400 rpm.

S ri-vevano il segnale video verti almente lungo la larghezza di un nastro largo 2

polli i ( ir a5 m) hesi muoveva allavelo itàdi15polli i(38 m)alse ondo.

Questo permetteva a programmi lunghi ore di essere registrati su una singola

bobina (nel 1956 una bobina di nastro ostava 300 dollari, equivalenti a

ir- a duemila dollari nel 2000, e i registratori ostavano da settanta inquemila a

entomila dollari, ir a mezzo milione didollari dioggi).

Nel1967laAmpexintrodusseilVR-3000,unregistratorevideoportatile, he

rivoluzionò la registrazione televisiva dialta qualità sul ampo,senza ne essità

(11)

ingombranties omodebobine onleprime assette ompatte ontentiunnastro

magneti o,fuintrodottodallaSonyversolanedeglianni'60, mailsistemaera

an orapo oprati o. Nel1972laPhilipsmisesulmer atol'N1500,probabilmente

l'antenato dei sistemi di videoregistrazione domesti a, di dimensioni molto più

ontenute,per iòadattoperleappli azionidiusoquotidiano. Tuttaviailsistema

era an ora molto ostoso e la durata delle registrazioni era piuttosto limitata,

infatti su una assetta era possibile registrare non oltre trenta minuti divideo.

Il 1° Giugno 1975 la Sony lan iò sul mer ato giapponese iprimi due modelli di

Betamax, il lettore SL-6300 e la onsole LV-1801. Dopo un anno e trentamila

prodotti venduti però, arrivò il VHS della JVC, apparentemente simile, ma in

realtà molto diverso dal Betamax. Le assette erano di maggiori dimensioni,

la qualità era de isamente più s adente ma la apa ità di immagazzinamento

per ogni singolo nastro arrivò a to are le quattro ore. A dierenza di Sony,

JVC er ò altri alleati, diondendo e vendendoil brevetto VHS an he ad altre

aziende, sia trai produttori he tra le ase inematogra he e questo ontribuì

ad una solida aermazione del prodotto, ma soprattutto a mantenere i prezzi

del VHS più bassi rispetto al on orrente. Po hi anni più tardi omparvero i

primi registratori VHS time laps, on i quali divenne possibile registrare in

maniera e onomi a, no a 960 ore di lmati su una stessa video assetta. Nel

1999 omparvero sul mer ato i primi DVR, apparati in grado di a quisire un

video e ar hiviarlosu hard-disk.

Iniziò osì l'era della videosorveglianza ome tramissione e storage di dati

digitali(non piùsegnali analogi i).

Il sistema ollegamento più diuso per appli azioni CCTV analogi he è di

fattoil avoCoassiale RG59, on rimpatura diterminali a onnettoreBNC .

La trasmissione digitale di dati video CCTV si sviluppa inve e sullo

stan-dard Ethernet, heutilizza aviinramemulti oppia twistatiUTPe STPper la

trasmissionedati su proto ollo TCP/IP e UDP.

Grazie all'utilizzo delproto ollo universalmente ri onos iuto ome standard

per la tramissione dati, l'evoluzione della videosorveglianza digitale ( hiamata

inbreveIP) ha permesso la ompleta integrazione diquestisistemi nelle reti di

al olatori moderne, favorendone ladiusione (vedi Figura1.2).

Questeultimeevoluzionihannofavoritoilpassaggiodalla videosorveglianza,

rimasta per anni relegata alla sempli e videoregistrazione diussi video, alla

videosorveglianza intelligente, he forte della possibilità di elaborazione delle

immaginiriprese,aprelastradaanuove te nologie,ad oggian oraquasiassenti

nelle soluzioni ommer iali, divideo ontrollo.

1.2 Contesto appli ativo

Il lavoro di tesi va ad inserirsi in un più ampio progetto, teso a realizzare un

(12)

Figura 1.2: Esempidistrumentazione perTVCC ollegatitraloro.

intelligente, sempre più libera dal ontrollo umano e più autonoma. Seppur

lontanidall'avereunsistemaautosu iente, sitendeasostituire l'operatoreper

lesituazioninelle qualigli errorioilimitisi iumani omportanodeivin olise

non addirittura deifallimenti.

Un primo esempio è quello del ontrollo di vaste aree o numerosi lo ali. È

ovvio he in tale ir ostanza, un solo operatore risulta insu iente, in quanto

gli sarebbe ri hiesta una ontinua on entrazione (si amente impossibile) e il

ontrollo di numerosi monitor he inevitabilmente sarebbero guardati uno per

volta; inoltre l'aumento del personale omporterebbe ertamente un osto non

tras urabile. Inquesti asil'autonomiadelsoftwarepermetterebbe un ontrollo

inreal-time, an he parallelo, ditutti gliambienti.

Un se ondo esempio è quello del ri onos imento di determinate situazioni.

Essendo la maggior parte dei sistemi di sorveglianza basati su registrazioni a

ir uito hiuso senza la presenza di operatori, su ede he la veri a di eventi

magari importanti per il ontrollo diun territorio, avviene a posteriori

dell'a - adimento degli stessi. Sostanzialmente quel he si fa oggi è di prendere la

regitrazione e riguardarla, er ando quel he interessa. Un sistema autonomo

sarebbe in grado di rilevare prontamente questi eventi e di pro edere in modo

adeguato, avvisandoleautoritàseri onos iutoadesempiounosparoo hiamado

iso orsi seri onos iutauna pesona he adea terra.

All'internodellaboratorioIAS Labdell'Università diPadova sono installati

tre appare hi diripresa:

1. una tele amerapanorami a;

(13)

Figura1.3: La tele amerapanorami a OmniDomee laPTZ solidalisullostesso

palo.

Lavori già svolti, hanno permesso l'integrazione delle prime due

appare - hiature in un software di tra king basato su sottrazione dello sfondo, mentre

l'ultima, a quistata di re ente, è oggetto di questa tesi. Prodotta dall'azienda

Videote S.p.A.,èunbrandeggio adalteprestazioniperl'utilizzo inognitipodi

ambiente.

Il al olatore su ui si operaè equipaggiato on un pro essore Intel Core 2

6400, 3GB diRAM, s heda video NVIDIAGeFor e 7600 GSe HDda 230 GB

su uiè installato il sistema operativo GNU/Linux(distribuzione Ubuntu 9.10

Karmi Koala),versione delkernel 2.6.31.

Essoè dotatodidueframegrabberPCIBrooktreeCorporation (Bt878),

uti-lizzati perla attura delusso video edi porte USBstandard per la

omuni a-zione seriale(Figura 1.5 ).

(14)

1. implementazionediun'interfa iadi omuni azione onlatele amera

Ulis-seCompa t;

2. implementazione del proto ollo di omuni azione della tele amera Ulisse

Compa t;

3. integrazione on softwareditra king esistente;

4. installazione e ongurazione del middleware NMM per la trasmissione

video su generi arete di omuni azione;

5. interfa iamento della tele amera Ulisse Compa t nel middleware, nella

parte difalldete tion esistente;

6. interfa iamento della tele amera Ulisse Compa t nel middleware, ai ni

dell'ottenimento diun following ontinuo del soggettotra kato;

7. implementazione di un metodo point and li k he permette,

li kan-do sull'immagine visualizzata, di far spostare il brandeggio in modo he

visualizzi quellazona.

1.4 Lavoro di tesi

Il lavoro ditesisi on entrasu tre punti prin ipali:

ˆ il ontrollodelbrandeggio e dello zoomdella video amera;

ˆ l'integrazione della video amera nelsoftwareditra king;

ˆ l'integrazione della video amera nelmiddleware NMM.

1.5 Ipotesi di progetto

In questo progetto si suppone di avere un sistema ditra king basato su

tele a-mere giàfunzionante, he fornis eunavisione delmondoattraverso unamappa

2Dall'internodellaquale sonoidenti atiitarget. Questaèrealizzataapartire

dai frame della tele ameraomnidirezionale OmniDome, he genera una visione

a 360° dell'ambiente ir ostante (Figura 1.4), elaborata al ne di ottenere un

immagine rettangolare daquella tondaoriginale.

Pur non essendo la rilevazione del movimento sempre adabile, si ipotizza

he i target ui far onvergere l'Ulisse, siano sempre buoni e non i si porrà

mai il problemadella orrettezza delmat hing.

Sisuppone inoltre di onos ere lageometria e della mappa e dell'ambiente,

ri avando osì,all'o orrenza, leposizioni assolutedi oggetti etele amere.

Innel'arearistrettadella sperimentazione,illaboratorio,permettedi

(15)

Figura1.4: L'immaginegenerata dall'OmniDome.

1.6 Materiale già presente

Comegià itato, sisfrutteràun software ditra king preesistente,all'interno del

quale inserire inuovi moduli. Le video amere OmniDome(panorami a) e PTZ

sono già installate e funzionanti, mentre l'Ulisse Compa t, seppur già ssato

alsotto del laboratorio, ne essita della ostruzione sia si a he software, del

ollegamento seriale.

Si provvederà an he all'installazione e ongurazione del middlewareNMM

sul al olatore des ritto inizialmente, in ui da terzi verrà in luso il tra king

e ol presente lavoro sarà inve e implementato l'interfa iamento on la nuova

tele amera.

Figura 1.5: La postazione di lavoro on PC al quale sono ollegate tutte le

(16)
(17)

La tele amera Ulisse Compa t

Introduzione

Figura 2.1: Il brandeggio Ulisse Compa t della ditta Videote S.p.A.installato

sulsotto dellaboratorio.

Il brandeggio usato è prodotto dalla ditta Videote S.p.A.ed è denominato

Ulisse Compa t(Figura 2.1).

È un brandeggio ad alte prestazioni on possibilità dimovimenti pan e tilt

asso iati ad una pre isa telemetria. In grado di orire una ontinua

rotazio-ne, an he ad elevata velo ità, possiede un'alta qualità video ed un menù di

(18)

hiatura, ingradodiraggiungereuna velo itàorizzontale di200°/s inrotazione

ontinua ed ha unrangeverti ale da-90° a+90°.

Inoltre vi è la possibilità di gestire posizioni predeterminate in maniera

as-soluta e,ingenerale, avereun'a uratezzanelmovimento dell'ordinedelde imo

di grado. Una logi a di ontrollo interna imposta una urva di a elerazione

adeguata pernondanneggiare imototi passo-passo.

L'unità èingrado diveri are ontinuamente inmodo autonomolapropria

posizione, per prevenire o orreggere spostamenti a identali, quali ad esempio

quelli dovuti agli agentiatmosferi i.

La tele amera Sony è a olori, ha risoluzione 720x576 e lo zoom arriva a

36x on una lunghezza fo alevariabile da 3.4mm a 122.4 mm, onsentendo un

angolo di ampo massimodi57.8° e minino di1.7°, apertura massima variabile

traf/1.6ef/4.5efornendoun'e ezionalepre isionesia onglioggettivi ini he

quelli lontani. È possibile dareun valore predenito diingrandimento e questo

verràraggiunto nelminor tempopossibile.

Il sensore CCD Super HAD (versione da zoom otti o 10x) ha dimensione

1/3 dipolli e egarantis e unagrandesensibilitàan he inambientis arsamente

illuminati.

Sihala possibilità di reare mas herepersonalizzateperlaripresa.

L'Ulisse è equipaggiato di OSD (On S reen Display) per la ongurazione,

un'interfa ia RS485/RS422 per un totale ontrollo del sistema e la possibilità

diupdateremoti delrmware.

Leimpostazionipermettonolamodi adelbilan iamento delbian o,

dell'e-sposizione e moltoaltro.

Da notare he, sia per quanto riguarda pan e tilt, sia per quanto riguarda

lo zoom, è permesso lo spostamento ontinuo, o l'ingrandimento ontinuo

-no all'immissione di un espli ito omando di stop. Nel aso quest'ultimo non

fosse inviato, il valore della grandezza in questione arriverà a ne s ala dove

automati amente si fermerà.

Indenitival'UlisseCompa tèunatele ameraidealeperla

videosorveglian-za, per il ontrollo an he di grandi aree e possiede una grande essibilità he

permette an he la sperimentazione di nuove te ni he e te nologie he on altri

hardwaremeno versatilinon sarebbepossibilefare[3℄.

2.1 Collegamento

La onnessione si a dell'Ulisseha omportato un dis retoimpiego ditempo.

Questoper hé inlaboratorio, puressendo ilbrandeggio giàssatoalsotto

e predisposto on un avo di rete Ethernet ome mezzo per la omuni azione

seriale, man ava di do umentazione ir a le modalità di ollegamento. Si è

(19)

liperilsu essivointerfa iamento onunaportaserialeutilealla onnessione

alPC.

Sono quindistatiidenti atiiseguentili intensione( ir a495 mV):

ˆ verde;

ˆ bian o-verde;

ˆ aran ione;

ˆ bian o-aran ione.

Tra gli altri 4 li, si sono potute identi are le 2 masse, poi hé irestanti 2

li eranoevidentementeottanti:

ˆ azzurro;

ˆ bian o-azzurro.

Perin iso,restano quindiinutilizzati ilmarrone e ilbian o-marrone(Figura

2.2 ).

(20)

Dallespe i he si sa he i ollegamenti seriali possono essere 2;si sono osì

stabilite le griglie per le prove, al ne di stabilire a quali ombinazioni di li

aerissero ledue porte:

+ - GND funziona(sì/no)

verde aran ione azzurro no

aran ione verde azzurro no

bian o-verde bian o-aran ione bian o-azzurro no

bian o-aran ione bian o-verde bian o-azzurro no

Tabella 2.1: Prima griglia diprove.

+ - GND funziona(sì/no)

verde bian o-verde azzurro no

verde bian o-verde bian o-azzurro no

bian o-verde verde azzurro no

bian o-verde verde bian o-azzurro no

aran ione bian o-aran ione azzurro no

aran ione bian o-aran ione bian o-azzurro sì

bian o-aran ione aran ione azzurro nontestato

bian o-aran ione aran ione bian o-azzurro nontestato

Tabella 2.2: Se ondagriglia diprove.

Alla ne siè pro eduto al ollegamento si o deili se ondo questos hema

(Figura 2.3 ):

ˆ 495+ aran ione;

ˆ 495- bian o-aran ione;

ˆ GND bian o-azzurro.

Grazie all'utilizzo di un'interfa ia i omuni azione seriale hiamata

Cute-Com si sono eettuate delle prove di trasmissione, inviando stringhe

apparte-nentialProto olloMACROdi omuni azioneserialedell'UlisseCompa talne

distabilire il orretto funzionamento ditutto ilsistema.

Sièquindi ollegatalaserialeadun ross ableSERIALE->USBperl'utilizzo

sotto GNU/Linux(Figura2.4).

2.2 Congurazione

Preliminarmente all'utilizzo, l'Ullisse Compa t prevede una fase di

(21)

Figura2.3: Il ollegamento deili allaportaseriale.

Congurazioni s elteperidip-swit h:

DIP1

OFF ON ON ON ON ON ON ON

1 2 3 4 5 6 7 8

1 = ON > VISUALIZZAZIONE CONFIGURAZIONE ABILITATA (non

sipuò muoverelatele amera).

1 = OFF > VISUALIZZAZIONE DISABILITATA (posso omandare la

tele amera).

2 =ON+3=ON+4 =ON>VELOCITÀIMPOSTATA A38400 baud.

5 = ON +6 = ON> MODORS485 BIDIREZIONALEHALF DUPLEX

(quindi seriale 1 RS485-1 abilitata infull duplex e seriale 2 RS485-2

disabi-litata). 7 =ON> TERMINAZIONERS485-1ABILITATA. 8 =ON> TERMINAZIONERS485-2ABILITATA. DIP2 OFF ON ON ON ON ON ON ON ON ON 1 2 3 4 5 6 7 8 9 10

1 = ON+ 2= OFF+ 3 =OFF +4 =OFF +5 =OFF +6 =OFF +7

(22)

Figura 2.4: Il ollegamento della seriale RS485 on laRS422 perla onnessione

alPC.

DIP3

OFF OFF OFF OFF

1 2 3 4

1=OFF+2=OFF+3=OFF+4=OFF>USODELPROTOCOLLO

(23)

2.3 Datasheet

(24)
(25)

Implementazione del proto ollo

Introduzione

Il MACRO Proto ol [4℄ è il proto ollo fornito dall'azienda Videote , per il

ontrollo da remoto del brandeggio Ulisse Compa t di produzione della ditta

medesima.

Esso si ompone di una serie di aratteri ASCII, raggruppati tra

parente-si quadre [ ℄ he segnano onvenzionalmente l'inizio e la ne del messaggio.

Quest'ultimo saràpoiinoltrato viaseriale.

Il sistemaè asesensitive enessuno spazio bian o èammesso.

I parametri sonosolitamente numeri i eseparati davirgole.

Nonèpossibiles endereulteriormenteinparti olari,poi héilproto ollo

MA-CROèprotettoda opyright elasuadiusione nonèpermessa. Siriporteranno

quindilelineeguidageneri he esisostituirannolestringhedi omandoreali on

al une ttizie,ma he ne ri hiamino omunque ilsigni ato.

3.1 Interfa ia C++ di ontrollo

Diseguito lastrutturagenerale deimetodi di ontrollo delbrandeggio. [5 ℄

#define MAX_BUF 50

lass UlissePositioning {

publi :

UlissePositioning( onst har *devi e = 0);

~UlissePositioning();

// spostamenti orizzontali e verti ali

(26)

void Left(int speed) {MoveCommand("SINISTRA", speed);}

void Right(int speed) {MoveCommand("DESTRA", speed);}

void UpLeft(int speedX, int speedY) {MoveCommand("SU-SINISTRA", speedX, speedY);}

void UpRight(int speedX, int speedY) {MoveCommand("SU-DESTRA", speedX, speedY);}

void DownLeft(int speedX, int speedY) {MoveCommand("GIÙ-SINISTRA", speedX, speedY);}

void DownRight(int speedX, int speedY) {MoveCommand("GIÙ-DESTRA", speedX, speedY);}

void Stop(void) {SendCommandToDevi e("STOP");}

// spostamento a una posizione ben definita

void GoToSpe ifi Position( har *pan, har *tilt, har *run, har *zoom);

// spostamento a una posizione di preset

void GoToPresetPosition(int presetPosition);

void SendCommandToDevi e( onst har ommand[℄, onst har par1[℄ = "", \

onst har par2[℄ = "");

void SendCommandToDevi e2( onst har ommand[℄, onst har par1[℄ = "", \

onst har par2[℄ = "", onst har par3[℄ = "", onst har par4[℄="");

har EvaluateChe ksum( onst har Str[℄);

private:

void MoveCommand( onst har * ommand, int speed1, int speed2 = 0);

// buffer di memorizzazione

har buf[MAX_BUF℄;

// porta utilizzata

int port;

};

Le istruzioni sono ertamente intuitive e non hanno bisogno di lunghe

spie-gazioni. Sifanno soloal une sottolineature perquelli dimaggiore interesse.

In parti olare il metodo GoToSpe i Position a etta quali parametri, le

posizioni assolute dipan e tilt, lavelo ità di spostamento e il fattore di zoom.

Esso permette dispostare inuna posizione spe i a l'Ulisse, se ondo ilsistema

diriferimento adesso solidale.

Cisonopoiduemetodi,dipo odiversi, hiamatiSendCommandToDevi e e

SendCommandToDevi e2. Essigestis onolatrasmissionedelmessaggioASCII

via seriale e sio upanodidarglisenso se ondoil proto ollo difunzionamento.

(27)

fatto in questa tesi, le tipologie sono osì suddivise: metodo a due parametri

perimovimenti sempli i (vai a destra, vai a sinistra, stop, e etera), metodo

a quattro parametri per imovimenti se ondo oordinate assolute (vai alpunto

[x,y℄).

Inne il metodo EvaluateChe ksum serve a al olare una somma,

dipen-dente dal tipo e dal numero dei aratteri omponenti la stringa he si vuole

inviare, he asso iata a quest'ultima dà la ne essaria validità all'istruzione he

altrimentiverrebbe s artata.

3.2 Interfa ia C++ di omando

Viene sotto riportato il odi e ol quale è possibile implementare un'interfa ia

di omando manuale del brandeggio.

#in lude <iostream> #in lude "ulissepositioning.h" #in lude <math.h> #in lude <stdio.h> #in lude <stdlib.h> #in lude <f ntl.h> #in lude <termios.h>

#in lude <stdint.h> // per poter utilizzare interi a 16 bit

#in lude <string.h>

#in lude <boost/lexi al_ ast.hpp>

#define BUF 10

using namespa e std;

string onvert(int number);

string p1; string p2; string p3; string p4; int main() { UlissePositioning ulisse;

bool ontrol = true;

while ( ontrol) {

out << "inserire un omando per l'ulisse" << endl;

out << "1=destra|2=sinistra|3=su|4=giu|5=stop|

6=mandastringa|7= he ksum|8=posizione|9=us ita" << endl;

int s elta;

in >> s elta;

(28)

out << "la tua s elta è stata: " << s elta << endl; swit h (s elta) { ase 1: ulisse.Right(1); break; ase 2: ulisse.Left(1); break; ase 3: ulisse.Down(1); break; ase 4: ulisse.Up(1); break; ase 5: ulisse.Stop(); break; ase 6:

out << "inserire omando" << endl;

har stringa[6℄;

in.getline(stringa,6);

out << "inserire parametro 1" << endl;

har parametro1[3℄;

in.getline(parametro1,3);

out << "inserire parametro 2" << endl;

har parametro2[3℄;

in.getline(parametro2,3);

ulisse.SendCommandToDevi e(stringa,parametro1,parametro2);

break;

ase 7:

out << " al ola il he ksum" << endl;

har omando[30℄;

out << "inserire omando" << endl;

in.getline( omando,30);

har he ksum;

he ksum = ulisse.EvaluateChe ksum( omando);

out << he ksum << endl;

break;

ase 8:

out << "inserire parametro 1 (pan)" << endl;

int pan;

in >> pan;

// ulisse a etta solo valori ompresi tra -180 e 180 per il pan

pan = pan - round((double)pan/360)*360;

out << pan << endl;

out << (int)pan/360 << endl;

if (pan>0)

(29)

else

pan = 65536 + pan*100;

p1 = onvert(pan);

onst har *para1;

para1 = p1. _str();

out << "inserire parametro 2 (tilt)" << endl;

int tilt;

in >> tilt;

// ulisse a etta solo valori ompresi tra -90 e 90 per il tilt

tilt = tilt - round((double)tilt/180)*180;

tilt = -tilt; if (tilt>0) tilt = tilt*100; else tilt = 65536 + tilt*100; p2 = onvert(tilt);

onst har* para2;

para2 = p2. _str();

out << "inserire parametro 3 (velo ita)" << endl;

int vel;

in >> vel;

p3 = onvert(vel*100);

onst har *para3;

para3 = p3. _str();

out << "inserire parametro 4 (zoom)" << endl;

int zoom;

in >> zoom;

p4 = onvert(zoom*1000);

onst har *para4;

para4 = p4. _str(); ulisse.GoToSpe ifi Position(( har*)para1,( har*)para2,( har*)para3,( har*)para4); break; ase 9: ontrol = false; } }

// out << ulisse.EvaluateChe ksum("TM1PC1Men+") << endl;

return 0;

}

string onvert(int number) {

std::ostringstream sin;

sin << number;

std::string val = sin.str();

return val;

(30)

Il  ase 6 è stato implementato perpoter permettere all'utente di

utilizza-re omandi non gestiti direttamente dal odi e s ritto. Qui infatti è ri hiesto

l'inserimento manualeditutta lastringada trasmettere all'Ulisse.

Il  ase 7 al ola sempli emente il he ksum, di uisi è giàparlato, di una

determinatastringa. Ètornatomoltoutilenellavoroditesi,peritestattraverso

interfa iaserialeCuteCom,per hé omesièdettoo orreinserirequestovalore

assieme al omando per hé abbiavalidità.

Il ase 8 herisulta esserepiù orposodeglialtri, serveperportareil

bran-deggio inunaposizioneassolutaappartenente alrangeprevisto, ioètra-180° e

180° sull'assepan e tra-90°e +90° sull'asse tilt.

3.3 S hema dell'ambiente

Lo s hema dell'ambienteè stato studiatoinrelazione alla tipologia di

modelliz-zazione dello stesso,derivante dalsoftware ditra king.

La onos enza he abbiamo diforma edimensione della stanza reale e della

suaimmagine prodottaedelaborataarti ialmentedalprogramma, ipermette

dimapparelospazio3Dinunpiano2D,sfruttandol'ipotesi,ainidellavoronon

restrittiva, he lapersonadatra karesitroverà, inogniistante,ne essariamente

solidale alpavimento.

Sissanoora al unipuntissi sull'immagine arti iale:

1. posizionedel brandeggio;

2. proiezione delbrandeggio sulpavimento;

3. angoli delpavimento della stanza;

4. stipitie entrodella portadiingresso.

Diquesti sisonosalvateleposizioni inunitàdimisura pixel.

Sisonopoissatiiseguenti punti ssi reali:

1. posizione delbrandeggio;

2. proiezione delbrandeggio sulpavimento;

3. proiezione del entro dellaportadiingresso sulpavimento.

Diquesti sisonosalvateleposizioni inunitàdimisura metri.

Aquestopuntosiè er ata unarelazionediproporzionalitàtraiduesistemi

diriferimento e lasi èveri ata.

Grazie a questa onversione si trasforma la parte di mondo di interesse

ge-nerata dal tra king in quelladella tele amera, rius endo osì a omandarla on

su iente pre isione.

Inne o orre pre isare he i punti generati dalla trasformazione tengono

(31)

Figura 3.1: S hema della pianta dellaboratorio on riportate le oordinate (in

(32)
(33)

NMM (Network-Integrated

Multimedia Middleware)

Introduzione

IlNetwork-IntegratedMultimediaMiddleware(NMM)[6 ℄èilrisultatodiseianni

diri er apressoilLaboratoriodiComputerGraphi s atSaarland Universitydi

Saarbrü ken,inGermania.

Essoimplementaappli azionidiretemobileemultimedialipermettendonela

omuni azione re ipro a. Sono supportate varie te nologie e sistemi operativi,

ome Windows e GNU/Linux, osa he permette lo sviluppo ross-platform.

Usandoquesta te nologiauni a, tuttiidispositividisponibili,distribuiti inuna

rete,possonoessere ollegatie ontrollatiinmanieratrasparente onla reazione

dinuoveperiferi he virtuali. Adesempio, untelefono ellularepuòdiventareun

ri evitoreradioounaregistrazionevideo puòesserevisualizzatasutretelevisori

ontemporaneamente.

Il softwareè rilas iato sotto li enze he permettono diutilizzarlo all'interno

diprodotti ommer ialioppureOpenSour eeinprogettidiri er a. Èprodotto

da Motama, azienda spe ializzata nella progettazione e sviluppo di sistemi di

rete distribuiti e multimediali he spaziano dai sistemi embedded e mobili, ai

PC, ai luster omputing su largas ala.

Essa è uno spin-o dell'Università del Saarland. Fondata nel2005 è diretta

daldottorMar oLohse,Mi haelRepplingereilprof. Philipp Slusallek. Orelo

sviluppodeiprodotti,leli enzedella te nologiaNMMesupportonello sviluppo

dimoduli personalizzati perleappli azioni basatesu NMM.

Attualmentequestosoftwareèutilizzatonella reazionediprodottineisettori

di:

(34)

ˆ IPTV;

ˆ rendering serverbased;

ˆ building te hnologies;

ˆ ri er a appli atae sviluppo;

ˆ e-learning.

4.1 Te nologia alla base di NMM

Oltre aiPC, unnumero res entedidispositivi multimediali, qualiset-top box,

PDA e telefoni ellulari, vengono forniti on funzionalità di rete. Tuttavia le

infrastrutture multimediali, adoggi, adottanounappro io entralizzato,in ui

tutte leelaborazionimultimedialiavvengono all'internodiununi osistemaela

rete è usataperlostreaming di ontenuti predeniti daun server ai lient.

Con ettualmente, questiappro isono ostituitidadue appli azioniisolate,

unservereun lient. Larealizzazionedis enari omplessièdunque ompli atae

soggettaaerrori,soprattuttoper héil lienthaingenereun ontrollolimititato,

se nonassente, delserver.

Figura 4.1: Streaming tradizionale lient-server omposto di due appli azioni

isolate he nonfornis ono un ontrolloversatileoestendibile.

IlNetwork-IntegratedMultimediaMiddleware(NMM)superaqueste

limita-zioni, permettendo l'a esso a tutte le risorse all'interno della rete: dispositivi

multimedialidistribuitie omponentisoftwarepossonoessere ontrollatiinmodo

trasparente e integrato inun'appli azione.

A dierenza di tutte le altre ar hitetture multimediali disponibili, NMM

(35)

Figura 4.2: NMM ome middleware multimediale fornis e uno strato software

hefa ilitalosviluppodiappli azionifornendouna essotrasparenteatuttele

risorse all'interno della rete omeidispositivio i omponentisoftware.

Perfareunesempio,questo onsentelosvilupporapidoefa iledi

un'appli a-zione he ri eve unsegnaleTVda undispositivoremoto, ompresa

l'implemen-tazione diun ontrollo trasparente delri evitore TV sorgente. An he un PDA

on potere limitatodi al olopuò servirsidiquesta appli azione: le onversioni

ne essarie per adeguare il ontenuto audio e video alle risorse fornite dal PDA

possono essere distribuite all'interno della rete. La distribuzione è trasparente

pergli sviluppatori e nessun ari o è aggiunto alle appli azioni inlo ale.

Inne NMMfornis e unframework multimediale standard pertutti itipi di

appli azionidesktop.

4.2 Ar hitettura generale di NMM

L'ar hitettura del mi ro- oredel middleware è opensour e e strutturata per hé

sia possibile l'integrazione di arbitrarie risorse, he potrebbero essere presenti

in una data rete (ussi audio, ussi video, e etera). È dotato di un sistema

messaggisti a di sistema, sia per poter ri hiedere questi dati, sia per tutte le

altre omuni azioni da e verso i omponenti he risultano onnessi tra loro

tramite un grafo, nelquale peròsiano gestiti, siail usso deidati, sia il tipo di

datostesso.

NMM supporta tutti i formati di tramissione standard, quali TCP, UDP e

RTP.Inne è ompatibile on formatistandard ome XML.

Grazie ai molti plugin, NMM fornis e un alto livello diastrazione e di

tra-sparenza attraverso un'organizzazione a gra distribuiti usati per spe i are i

pro essi multimediali di streaming distribuito. Possiede poi un'ar hitettura ad

elevatasin ronizzazione he ore alta qualità intermini appunto disin ronia e

(36)

Figura 4.3: NMM fornis e un'ar hitettura mi ro- ore opensour e he permette

l'intergrazione delle risorsepresenti inrete.

Figura 4.4: Gra diusso distribuiti, estesi su più sistemi onsentono lafa ile

reazionediappli azionimultimedialidistribuite,adesempio,perlariproduzione

diMP3.

ˆ API intuitive obje t-oriented C++ sommate ad interfa e di ontrollo

obje t-oriented denite nell'Interfa e Denition Language (IDL) per la

spe i a sia out-of-band he perl'interazioneinstream;

ˆ un nu leo dilibrerie ross-platformeseguitenativamentesu Windows XP,

WindowsVista,Windows7,WindowsCE, Windows Mobile,GNU/Linux,

Embedded GNU/Linux, Ma OS;

(37)

4.3 Servizi middleware aggiuntivi

NMM ha un sistema peer-to-peer didistribuzione delRegistro dei Servizi

(Re-gistry Servi e4.8 ) he gestis e idispositivi,i omponentisoftware,rende

dispo-nibilelapotenzadielaborazionee lalarghezzadibanda.

Ha un servizio di ondivisione (Session Sharing) he permette di ollegare

le appli azioni in ese uzione, al ne di ondividere un singolo dispositivo

mul-timediale o riutilizzare parti omuni di un grafo di usso (ow graph 4.6), ad

esempio, perlatrans odi a. Sin ronizzazione e ontrollovengono osìstabiliti

traivarihost.

Peril passaggio della riproduzione di ontenuti multimediali, da un sistema

mobile ad un sistema sso, il middleware è dotato di un servizio di onsegna

(Handover Servi e)perilpassaggio ontinuo e sin ronizzatodei gra diusso.

È prevista la ongurazione automati a delle appli azioni he permette di

spe i are un pre iso task, ome la riproduzione di media, sempli emente

spe- i ando, magaria distanza, lefontideimedia e dei dispositivi direndering. Il

orrispondente grafo vieneautomati amente istanziatoe distribuito.

4.4 L'organizzazione a nodi, ja k e ow graph

L'appro io progettuale generaledell'ar hitettura diNMM è simile adaltre

ar- hitetture multimediali. All'interno diNMM, tutte le periferi he hardware (ad

esempiounas hedaTV)e omponentisoftware(adesempio,de oder)sono

rap-presentati da entità hiamate nodi. Un nodoha delle proprietà he in ludono

porte di input e output, hiamate ja k, he ne ra hiudono an he il relativo

formato multimediale supportato. Un formato denis e on pre isione il usso

multimediale fornito, spe i andone il tipo (ad esempio audio/raw per i ussi

audio non ompressi), oltre ai parametri aggiuntivi, quali la frequenza di

am-pionamento. Poi hé un nodo può fornire più ingressie us ite, i suoi ja k sono

eti hettati on tag. A se onda del tipo di nodo, vengono prodotti determinati

dati, eseguite determinateoperazionisu diessio inne onsumati.

ˆ Sour e: produ e idatied haun ja kdius ita.

ˆ Sink: onsuma idati he ri eve dalsuoja kdiinput.

ˆ Filter: haunja kdiinputeunodioutput. Modi asoloidatidelusso

e non ambia ilformato o iparametri spe i idelformato.

ˆ Converter: ha unja kdiinput e unodi output. Può modi are siaidati

del usso he il formato o i parametri (ad esempio da video normale a

(38)

ˆ Demultiplexer: ha ununi o ja kdiinput, madiversi ja kdioutput.

Questinodipossonoessere ollegati per reareun diagrammadiusso,

pur- hé idueja ktraloro onnessi gestis ano lostessoformato dati. Inoltre i

para-metri legati al formato deidue ja kdevono essere vi endevolmente disponibili.

Nellagura sivede los herma dide odi ae riproduzione diunleMP3.

Figura4.5: Grafo diusso perlariproduzione dileMP3.

4.5 Sistema di messaging

L'ar hitettura NMM utilizza un sistemadi messaggisti a standard per tutte le

omuni azioni. Ci sonodue tipi dimessaggi:

1. a buer: memorizzanoidati multimediali;

2. aeventi: sonoidenti ati daunnomeepossonoin luderequalsiasitipodi

parametro. Sono usati perle informazionidi ontrollo.

Ci sono due diversi tipi di paradigmi di interazione utilizzati all'interno di

NMM.Inprimoluogo, imessaggisonotrasmessisu ja k onnessitraloro.

Que-sto tipo di interazione è detta instream ed è più spesso eseguita in direzione

downstream, ioè daiSour e aiSink;NMM omunque onsentean he l'invio di

messaggi inupstream.

Si noti he sia i buer he gli eventi possono essere inviati instream. Per

questa omuni azione, sonoutilizzati i osiddetti ompositeevents he

onten-gono una serie dieventi da gestire all'interno diuna singola fase diese uzione.

Gli eventi instream sono molto importanti per i gra i di usso multimediale.

Per esempio, la ne di un usso (ad esempio la ne di un le) possono essere

segnalate onl'inserimentodiunospe i oevento,allanediunaseriedibuer.

Oggetti listener esterni possono essere registrati per essereavvisati quando si

veri ano determinati eventi inun nodo (ad esempio perl'aggiornamento della

GUI allane diun leoperlaselezione diunnuovole).

(39)

esempioinodioija k. Glieventisonoutilizzatiper ontrollare glioggettioper

l'invio dinoti he dagli oggettiailistener registrati.

4.6 Gra di usso distribuiti (Distributed Flow

Gra-phs)

Laparti olarità diNMMè ilfatto heisuoigra diussopossonoessere

distri-buiti attraversolarete: dispositivimultimedialilo alio remotioppurelostesso

odi e in apsulato nei nodi, possono essere integrati all'interno di un omune

ow graph distribuito per l'elaborazione multimediale. Tutto questo è

traspa-rente aglisviluppatori enonappesantis elepartidelgrafo heoperanoalivello

lo ale.

Nella Figura 4.5 viene mostrato un esempio di un diagramma di usso

di-stribuito perlariproduzionedile odi ati( ompressi), adesempio, leMP3.

Un nodo Sour e per la lettura dei dati dal le system lo ale (AudioReader) è

ollegato ad un nodo perla de odi a di ussi audio (AudioDe oder). Questo

de oderè ollegato adunnodoSinkperilrenderingaudionon ompresso

utiliz-zandounas hedaaudio(AudioRenderer). Unavolta heilgrafoèstatoavviato,

il nodo Sour e legge una erta quantità di dati da un le, in apsula in buer,

adesempio, didimensione 1024byteetrasmettequesti bueralsuosu essore.

Dopolade odi a inaudionon ompresso,ilnodoConverter mandaibuerdi

datialnodo Sink.

L'appli azione può gestire tutte le parti di questo ow graph utilizzando le

interfa e(ad esempioINode) per ontrollare gliaspetti generi i ditutti inodi

istanziati. Sinoti hetrediversi hostsonopresentinell'esempio(si veda Figura

Figura 4.4 ). L'appli azione gira sull'host1, il nodo Sour esull'host2, il de oder

e il nodo Sink sull'host3. NMM rea automati amente le onnessioni di rete

tral'appli azione eitrenodidistribuiti(interazioneout-of-band), maan he tra

il Sour e e il nodo di de oder (interazione instream). Pertanto, i dati audio

ompressiMPEG vengonotrasmessiattraverso larete.

Si noti he un ow graph osì sempli e fornis e già molti bene i. In

pri-mo luogo, onsentea un'appli azione dia edere ai lememorizzati su sistemi

distribuiti, senzala ne essità diunle systemdistribuito, ome NFS. In

se on-do luogo, idati di usso trai nodi ollegati vienegestito automati amente dal

NMM.In terzoluogo, l'appli azione agis e ometele omando pertutti inodi

distribuiti. Per fare un esempio, questo onsente in modo trasparente di

(40)

4.7 Sin ronizzazione distribuita

Poi hé i gra di usso in NMM possono essere distribuiti, è possibile il

ren-dering audio e video su sistemi diversi. Per esempio, il usso video di un le

MPEG2puòesserepresentatosuungrandes hermo ollegatoadunPC,mentre

il orrispondente audiovieneriprodottosuun dispositivomobile. Perrealizzare

la riproduzione sin ronizzata dinodidistribuiti su tutta la rete,NMM fornis e

un'ar hitettura generi adisin ronizzazionedistribuita. Inoltre,lepresentazioni

dei media possono essere eseguite an he su sistemi diversi

ontemporaneamen-te. Unadomanda omune è lariproduzione delusso audio utilizzando sistemi

diversi situati in diverse stanze di una asa, ma la teoria è la stessa su rete

geogra a.

La base per eseguire la sin ronizzazione distribuita è una omune fonte di

temporizzazione: un orologiostati o all'interno diognispazio diindirizzi.

Que-stoorologiorappresental'orologiodisistema heglobalmenteèsin ronizzato on

il Network Time Proto ol (NTP) e può quindiessere assunto ome riferimento

per la rete. Con l'impostazione orrente, il tempo di oset tra sistemi diversi

spazia da 1a 5 ms,il heè su iente.

Figura 4.6: Esempio disin ornizzazionemulti-roome multi-devi e.

4.8 Registry Servi e

IlservizioRegistrodiSistema (ServerRegistry)inNMMpermettela

rilevazio-ne, laprenotazione e l'istanziamento dinodidisponibili su hostlo ali e remoti.

Su ogni host 'è un registry server uni o he amministra tutti i nodi di quel

parti olare sistema. Per ogni nodo, il Registro ne memorizza una des rizione

he in lude il tipo (Sink, ad esempio), il nome (Playba kNode, ad esempio), le

interfa efornite (IAudioDevi e,adesempio, peraumentareo diminuirela

pro-duzionevolume)egliinputeoutputsupportati(adesempio,unformatodiinput

audio/raw onisuoiparametriaggiuntivi, omelafrequenzadi ampionamento).

(41)

peressere ollegatiadunaportanota. Dopoaverelaboratolaquery onsu esso

il Registro di Sistema interpellato riserva i nodi ri hiesti he vengono quindi

reati. Per i nodi istanziati sullo stesso host he esegue an he le ri hieste, il

RegistrodiSistemaassegneràquestioggettiall'internodellospaziodegliindirizzi

della ri hiesta stessaper evitareil he il lorosormontarsi generioverhead.

Per ongurare e reare omplessi diagrammidiusso distribuito,

un'appli- azione puòri hiedere ogninodoseparatamenteoutilizzare unagraph

des rip-tion ome query. Tale des rizione omprende una serie di nodi des rizione

ollegatitraloro.

Per hé un'appli azione possa reare un diagramma di usso distribuito, il

Server Registry deve essere in ese uzione su ias un host parte ipante. Per le

appli azioni he operano es lusivamente a livello lo ale questo non è ri hiesto.

Un server registry è sempre in ese uzione all'interno dell'appli azione stessa e

non a essibile dahost remoti.

Prima he possa essere utilizzato, deve stabilire quali dispositivi e

ompo-nentisoftwaresono disponibili su un determinato host. Pertanto, ildeve essere

inizializzatoalmeno unavolta usandoil omandoseguente.

userlinux:~/nmm/bin> ./serverregistry -s

Create onfig file with plugin information ...

Loading plugins...

AC3De odeNode available

AVDemuxNode available

AVIReadNode available

... and many further nodes

Config file su essfully written.

4.9 Utilizzo di NMM

4.9.1 Installazione e test NMM

Non si riporteranno in questo elaborato tutti i passi ne essari all'installazione

e ongurazione del software NMM, ma si ri orda solamente he in ambiente

GNU/Linuxesistonoduestradeprin ipali. Laprimaèl'installazionedasorgenti

e la se onda è attraverso i pa hetti pre ompilati, se esistono, per la propria

distribuzione.

Sira omanda, in asodiinstallazione dasorgenti,ditenerpresentitutte le

dipendenze ne essarie, in parti olare, essendo NMM dotato di molti plugin, si

dovràprestare attenzionealle ri hiestedi ias unodiessi, selisi volesseusare.

(42)

$ serverregistry -s

he restituis e la lista deinodi disponibili nel sistema. Nel aso avessimo fatto

parti olari s elte ir a lapresenza dideterminati plugins,nella lista sottostante

dovremmo essere ingrado di identi arne il nodo orrispondente. Ovviamente

in aso difallimento del omando o in assenzadei nodiprevisti, sarà il asodi

ripetere l'installazione nonessendo andata abuon ne.

serverregistry and Network-Integrated

Multimedia Middleware (NMM) Version 2.2.0

Copyright (C) 2005-2010

Motama GmbH, Saarbrue ken, Germany

http://www.motama. om

See li en e for terms and onditions of usage

No plugin information available! If you start NMM for

the first time this information is reated automati ally.

Note: If you ever hange your hardware onfiguration or

update the NMM version you must delete the file

/home/alberto/.nmm/plugins.2.2.0.xps._usr_lo al

or run 'serverregistry -s' again.

Create onfig file with plugin information ...

Loading plugins... AC3De odeNode available AC3ParseNode available ALSAPlayba kNode available ALSARe ordNode available AVDemuxNode available AVMuxNode available AnalyseDataIdNode available AudioMuxNode available BrightnessNode available BufferDropNode available BufferShapingNode available BufferTimestampControlNode available BufferTimestampNode available CopyNode available

DVBS2ReadNode not available

(43)

FFMpegAudioDe odeNode available

FFMpegAudioEn odeNode not available

FFMpegDe odeNode available FFMpegEn odeNode available FLACReadNode available FramerateConverterNode available Generi ReadNode available Generi WriteNode available H264De odeNode available

IVTVReadNode not available

I e astNode available IdNode available JPEGDe odeNode available JPEGEn odeNode available LogoNode available M4AReadNode available MP3ReadNode available MPEGAudioDe odeNode available MPEGAudioEn odeNode available MPEGDemuxNode available MPEGReadNode available MPEGTSDemuxNode available MPEGTSReadNode available MPEGTimeShiftingNode available MPEGTimeShiftingNode2 available MPEGVSHDete tionNode available MPEGVideoDe odeNode available Magi kManipulationNode available Magi kReadNode available Magi kWriteNode available

MessageSeekNode not available

NetSour eNode not available

(44)

TimeDisplayNode available

TimedBufferDropNode available

URLNode available

VISCACameraReadNode not available

VideoCropNode available

VideoGrabNode available

VideoMuxNode available

VideoS alerNode available

Voi eDete torNode not available

WavReadNode available WavWriteNode available WhiteNoiseNode available XDisplayNode available YUVDeInterla eNode available YUVtoRGBConverterNode available YUVtoYUVConverterNode available

Finished loading plugins ...

Config file su essfully written.

Proviamooraad istanziareed usare ungrafo.

NMM installa di default al uni esempi, molto utili soprattutto quando

su - essivamente andremo a reare ow graph personalizzati on nodi reati

auto-nomamente. Spostarsi quindi nella dire tory audio degli esempi (nota, per il

per orso si fa riferimento alla gerar hia di dire tory del pa hetto TAR

s om-pattato;ognunonelsuosistema,in asodiinstallazioneglobale,veri heràdove

ile di uiparleremo sono ollo ati):

$ d nmm-2.2.0/apps/ li /gd/linux/playba k/audio/

All'interno troveremo le di estensione .gd: sono des rizioni di gra già

pronte. Essi rappresentano on sempli esintassi inodi he andranno aformare

il grafo. Si onsiglia di aprirne qual uno per farsi un'idea di quel he si sta

di endo.

Sitesti orail funzionamento del middleware, provando ad eseguire la

ripro-duzione diunleaudio on l'ausilio delsoftware li  (installato didefault) ed

il grafowavplay.gd':

(45)

$ d nmm-2.2.0/apps/ li /gd/linux/playba k/video/

su essivamente:

$ li noise.gd

nel asosi aprauna nestra, mostrando iil video di un disturbo, allorasi può on

tranquillità on ludere hel'installazioneèandataabuon ne.

4.9.2 Metodologie di utilizzo

Imetodi diutilizzodi NMMsonodue:

1. attraversol'utility li ,usataan henegliesempipre edenti;

2. attraversolas ritturadi odi eC/C++ hesiinterfa i onlelibreriediNMM,

utilizzandoneilnamespa eequindilelibrerie.

4.9.3 Cli (Command Line Intera tion and Conguration)

L'appli azione Cli viene utilizzata per ostruire in modo automati o gra di NMM

a partire da una loro des rizione testuale, la graph des ription. Se ne vede poi

brevementelasintassi.

Inoltre,Cli permettediutilizzareilgeneratoredigrafodiNMM he rea

automati- amenteunowgraphdistribuitodaunURLdato: lasorgentedelussomultimediale

el'us ita hepossonoessereaudioovideo,vengonoresedisponibiliin rete.

Si spiegheràoralades rizionedelWavReadNode usatopre edentemente:

% This graph des ription plays a WAV file using the

% ALSAPlayba kNode

% It an only be run on Linux.

% Command:

% li wavplay.gd -i <lo al WAV file>

WavReadNode

! ALSAPlayba kNode

Esso onsiste didue parti prin ipali: la prima parte è un ommento

(opzio-nale)elosifasemprepre edereda%,mentrelase ondaspe i ailawgraph

e ome sono onnessi i suoi nodi. Il arattere ! serve appunto a onnettere i

noditraloro;manmano he sene aggiungonoè su iente s riverliin as ata.

Sesi opiaein ollailtestopre edenteinunleelosirinominawavplay.gd

(46)

$ li wavplay.gd -i file.wav

Per avere informazioni più dettagliate sull'utilizzo di Cli , si rimanda alla

do umentazione inlinea[6 ℄. Unapanorami adelle opzionilasipuòan heavere

ol omando:

$ li -h

4.9.4 Creazione di un ow graph

E o ome ollegare i nodi. Un nodo è identi ato dal suo nome, he è

nor-malmente quello della lasse C++. Il punto es lamativo (!) serve per indi are

un ollegamento tradue nodi omesi èvisto nella des rizionedelgra o per la

riproduzione dileWAV.In questoesempio l'istruzione

WavReadNode ! ALSAPlayba kNode

ri hiedeinodiWavReadNodeeALSAPlayba kNode. Seleri hiesteavranno

su esso, il WavReadNode sarà ollegato all'ALSAPlayba kNode. Inne Cli

impostaiparametri spe i ati dariga di omando, peresempioun lediinput

e ostruis el'intero owgraph.

Perspe i are gradiusso più omplessi he in ludono demultiplexer,

ab-biamo bisogno di una sintassi più lunga he des riva i diversi ja k di input e

output di ui un (de)multiplexer è dotato. Una stringaunivo a he viene

hia-mata ja k tag è asso iata ad ogni ja k per identi arlo. Per esempio sono

utilizzateperdistingueretraaudioevideo. Seunnodofornis esolouningresso

oun'us italastringadefaultvieneusata omeja ktagedèusatonelle

des rizio-nideigrasenessun altro ja k tagè spe i ato. Perpoter utilizzareunja kdi

inputspe i o hedeveessereutilizzatoperuna onnessione,l'eti hettarelativa

deveesseres rittaprima delnomedelnodosequestoè diinput oppuredopose

è dioutput. Il seguente esempio mostra lades rizionedelplayer WAV on ja k

tag default:

WavReadNode "default"

! "default" ALSAPlayba kNode

In questo esempio non è ne essario spe i are itag, per hé Cli utilizza il

default ja kper ollegare inodisenessun altro èspe i ato.

E o inve e una sintassi più omplessaperdes rivere i rami di un

(47)

% This graph des ription realizes a simple mpeg video player with a 3 audio.

% Use the -i option of li to spe ify the mpeg video file.

Generi ReadNode ! MPEGDemuxNode { { ["mpeg_video0"℄ ! MPEGVideoDe odeNode ! XDisplayNode } { ["a 3_audio0"℄ ! AC3De odeNode ! ALSAPlayba kNode } }

L'MPEGDemuxNode demultiplexa imessaggi inentrata e spedis eilbuer

audio al ja k dius ita audio a 3_audio0 e il buer video al ja k di us ita

vi-deo mpeg_video0. Dopo MPEGDemuxNode,le parentesi ra hiudono tutte le

bran he ollegate aquestonodo. Ogniramoèasuavoltara hiusotra

parente-si grae einizia on il ja ktagdius ita delMPEGDemuxNode, in apsulato in

parentesi quadre. Questo ja kdi us itaè ollegato alnodo prin ipale delramo.

Quindiinquestoesempioabbiamoduerami. Ilprimo onsiste

nell'MPEGVideo-De odeNode, ollegatoall'XDisplayNode. L'MPEGVideoDe odeNodeèilprimo

nodo di questoramo ed è ollegato alla presa dius ita del MPEGDemuxNode

on ja k tag mpeg_video0. Il se ondo ramo l'AC3De odeNode è ollegato

al-l'ALSAPlayba kNode. Il primo nodo diquestoramo è l'AC3De odeNode he è

ollegato alja kdius itadell'MPEGDemuxNode on ja ktagmpeg_audio0.

L'esempioseguente estende illesopra onl'aggiunta diunaltro

XDisplay-Node. Sivede hesonosupportati irami nidi ati.

% This graph des ription plays an MPEG file with AC3 audio

% using the ALSAPlayba kNode and two XDisplayNodes.

% It an only be run on Linux.

% Command:

% li mpegplay_a 3_two_displays.gd -i file

(48)

}

}

Aggiungere un nodo multiplexer non dieris e molto da quanto visto per il

demultiplexer:

% This graph des ription onverts an MPEG video file with AC3

% audio into an avi file.

% Unfortunately the flow graph does not work be ause the FFMpegEn odeNode

% requires a bitrate. Generi ReadNode ! MPEGDemuxNode { { ["mpeg_video0"℄ ! MPEGVideoDe odeNode ! FFMpegEn odeNode ! ["video"℄ } { ["a 3_audio0"℄ ! ["audio"℄ } } AVMuxNode ! AVIWriteNode

Questoesempio può essereutilizzato per onvertire un leMPEGin unle

AVI on DivX-videoe audioAC3. La prima parte onsiste inun

MPEGVideo-De odeNode he è ollegato alFFMpegEn odeNode. L'ingressodelprimo nodo

di questoramo,l'MPEGVideoDe odeNode,è ollegata alja kdius ita

dell'M-PEGDemuxNode on ja k tag mpeg_video0. L'us ita dell'ultimo nodo inve e,

l'FFMpegVideoEn odeNode, è ollegato alja kdiingresso delja kA

VMuxNo-de on tag video. Il se ondo ramo non ha nodi. In questo ramo l'us ita del

ja kMPEGDemuxNode on ja ktaga 3_audio0 è ollegata alja k diingresso

di AVmuxNode on ja ktag Audio. Pertanto, ibuer audiosono direttamente

passati dalMPEGDemuxNode alAVMuxNodesenza al una onversione.

La sintassi di questo esempio è orretta, ma il ow graph non può essere

eseguito per hé l'FFMpegEn odeNode a etta solo dati on bitrate di odi a

spe i atonelformatodi onnessione. Quindi,abbiamobisognodipotersp

e i- areunformatodi onnessionedautilizzaretraduenodi. Lostatementformat

pre edutodal arattere haquestos opo. Essosiaspettaunelen odiformati

(49)

Nota: ilformato di onnessionedeveesserespe i atosullarigadelsimbolo

di onnessione (!). Nell'esempioriportato diseguito vieneillustratoil on etto.

% This graph des ription onverts an MPEG video file with AC3 audio

% into an AVI file. Furthermore the desired bitrate of the video is

% spe ified using the onne tion format.

% Use the -i option of li to spe ify the mpeg video file and -o option

% to spe ify the name of the output file.

Generi ReadNode

! MPEGDemuxNode

{

{ ["mpeg_video0"℄ ! MPEGVideoDe odeNode

! FFMpegEn odeNode

 Format ("video/mpeg4", bitrate = 1200000)

! ["video"℄ } { ["a 3_audio0"℄ ! ["audio"℄ } } AVMuxNode ! AVIWriteNode

Pereseguirequestodiagramma diusso, opiarelades rizione inun le,ad

esempio, mpeg_to_avi.gded eseguire:

$ ./ li mpeg_to_avi.gd -i /home/bob/video/movie.mpeg -o /home/bob/video/movie.avi

on l'opzione -i he spe i a ille diinput e -o illedioutput.

Inoltre, è possibile spe i are due ulteriori parametri per impostare il

pro-to ollo di trasporto utilizzato per trasmettere dati tra due nodi, he è

parti o-larmente utile se sono in ese uzione su host dierenti. Entrambi i parametri

sonopre edutidal arattere. Per ongurare unospe i oproto ollo di

tra-sportoutilizzatoperla omuni azione instream,possonoessereutilizzati il

set-BuerStrategy e il setEventStrategy, ome si vede nella des rizione di grafo

seguente:

% This graph des ription des ribes a simple MP3 player whi h spe ifies the

% used transport proto ols between the nodes.

(50)

Generi ReadNode  setEventStrategy("TCPStrategy")

 setBufferStrategy("RTPStrategy") !

MPEGAudioDe odeNode  setBufferStrategy("RTPStrategy") !

Playba kNode

Il parametro setBuerStrategy denis e ilproto ollo ditrasporto

utilizza-to pertrasmettere ilmultimedia buer e ilparametro setEventStrategy ome

trasportare gli eventi instream. In questoesempio il proto ollo RTP(Realtime

TransportProto ol)èutilizzatopertrasmettereibuerMP3eilproto olloTCP

risulta inve e adabile perla trasmissione di eventi instream. Per il trasporto

del multimedia buer tra l'MPEGAudioDe odeNode e il Playba kNode, il

vie-ne utilizzato il proto ollo RTP, ma nessun proto ollo per gli eventi instream è

spe i ato. Se unodiquestiparametri oentrambi nonsonosettati,lastrategia

di trasporto sarà quella di default di NMM, he è la Lo alStrategy, in grado

ditrasportarebuer edeventitrainodinello stessospaziodiindirizzo inmodo

e iente,attraversol'inoltrodipuntatorioppure 'èiltrasportoTCPStrategy,

he esegue lestesse operazioni dell'altro, matranodi he girano su host diversi

o indiversispazi diindirizzi.

4.9.5 SDK (Software Development Kit)

Il Software Developer Kit (NMM-SDK) permette di iniziare velo emente on

lo sviluppo di software basato su NMM. Esso fornis e una sempli e interfa ia

NMM-IDL, un plugin he implementa questa interfa ia e un'appli azione he

utilizza questi due omponentiinun diagramma diusso.

L'uso di questo software prevede ovviamente la pre edente intallazione del

pa hetto NMM-2.2.0. Senza lunghe spiegazioni, ome sempre in ambiente

GNU/Linuxè su iente s ompattare ilpa hetto edeseguire isoliti

$ ./ onfigure

$ make

$ make install

Se tuttoè andatoa buonne, ol omando

$ serverregistry -s

dovremmo vedere inomi deinodi he abbiamoaggiunto:

(51)

Tra king e Fall Dete tor

Introduzione

Los opoprin ipalediquestatesièl'integrazione, delbrandeggioUlisseCompa t

inunsoftwareditra king preesistente.

A tal ne si sono implementati al uni metodi, s ritti in linguaggio di alto

livello (C++), he ne permettono il ontrollo. Da essisono state sviluppate le

interfa eperilmiddlewareNMM he onsentono l'utilizzo della tele amera[7 ℄

ainidella falldete tion e deltra king ontinuato delsoggettoinmovimento.

Tra king mediante sottrazione dello sfondo

Questaè una te ni a he sibasa essenzialmente suiseguentipunti[8 ℄:

1. modellazione delba kground;

2. estrazione delforeground;

3. segmentazione dell'immagine;

4. ltraggio e orrezione;

5. tra iamento.

MODELLAZIONE DEL BACKGROUND

Apartiredaunaseriediimmaginiripresedaunatele amerassa,èpossibile

individuareun'immaginearti iale hevienedenitaimmaginediba kground.

Essa rappresenta la parte immobile della s ena, ioè quella parte di mondo

ri-presa hetendea ambiare lentamente neltempo. Nel aso ontingentesitratta

della stanza vuota.

(52)

imma-memorizzati perun erto tempo e he onterranno appunto l'immaginedi

par-tenza. Ora i frame su essivi a quelli utilizzati per la modellizzazione dello

sfondo, saranno onsideratidiinput.

ESTRAZIONEDEL FOREGROUND

Ilforeground ontienelaporzionedell'immagine ripresa hetendeavariare

velo emente nel tempo. In questo aso, sono le persone in movimento nella

stanza. Perottenerlodall'immagineoriginale he, om'èintuibile,èlasommadi

ba kground e foreground,si esegue unasottrazione. La osiddetta ba kground

substra tion.

Si esegue quindi un onfronto tra il modello dello sfondo (dato dalle prime

immaginimemorizzate) eivariframediinput. Un oggetto hedovesseapparire

nel ampo visivodella tele amera, sarebbe notevolmentediverso dalla

situazio-ne base e quindi attraverso quella he abbiamo denito sottrazione otterremo

l'oggetto inquestione.

SEGMENTAZIONE

Una volta ottenuto il foreground, si tratta di ri onos ere ed eti hettare i

blob ontenenti il soggetto o i soggetti da tra kare. Questa è una fase molto

deli ata he omporta problemi non indierenti di under-segmentation o

over-segmentation. Il primo è ostiuito da quegli errori ausati dal fatto he il

pro-grammageneraunnumerodiblobinferioreaquelloeettivo. Capitaadesempio

se due oggetti sonomolto vi ini e quindivengonofusi assieme. Il se ondo,in

manieraopposta, sihaquandoilprogramma rilevaunnumerodiblobsuperiore

aquelloeettivo. Questopuò apitare(edèsu essoinlaboratorio)a ausadelle

ombre,oppure diparti olari situazionidi lu e he riessa daglioggetti inganna

il software.

FILTRAGGIO E CORREZIONE

Aquestopuntoèopportunoeseguireoperazionidiltraggioe orrezioneper

ovviare ai molti problemi dimat hing errato he possono esserdovuti a fattori

quali sovrapposizioni dioggetti, s arsao e essivaluminosità e viadi endo.

TRACCIAMENTO

Per ottenere l'inseguimento degli oggettiin movimento, è opportuno

predi-sporre strutture dati adeguate. Nel odi e utilizzato sono state implementate

delle listedioggettitra ked ontourn in uisene memorizzail ontorno

(posi-zione, dimensioni, e etera). Inparti olare vengono usate dueliste, una

passa-ta e una presente. Inquesto modo attraverso il onfronto re ipro o deidati,

se ondo un riterio diprossimità (l'ideaè he tradue frame onse utivi,losp

o-stamento sia minimo e quindi se in queste due immagini ri onos o due oggetti

hehannoun ertolivello,alto,di ongruenza,stabilis o hesitrattadellostesso

oggetto hesiè distanziato),è possibilestabiliredoveun oggettosisia spostato

e tenerne, appunto, tra ia. Inoltre dal ontorno ri avo il osiddetto bounding

box,un rettangolo he inquadrail soggettoidenti ato.

(53)

goritmo tramite un'identi azione basata sulle dimensioni. In breve l'ipotesi è

he nellastanza, visia un solosoggetto inmovimento e he ditutte le ose he

possono, per qual he motivo, muoversi, esso è ertamente quello didimensioni

maggiori (ipotesiverosimile poi hé in una stanza di ilmente avremoqual osa

inmovimento piùgrandediunuomo).

Rilevazione di adute

Larilevazionedelle adute,partedall'assunto heiltra kingries aadidenti are

ilboundingbox delsoggettoinmovimento.

Data questaipotesi, ipassiprin ipalidella falldete tion sono:

1. ontrollodella geometria delbounding box andidato;

2. reazionedistrumentidituning e ontrollo delle prestazioni.

1. CONTROLLO DEL BOUNDINGBOX

In breve, vengonovalutatelageometria e l'adabilitàdei datiriguardanti i

variboundingboxidenti atidaltra king. L'ipotesidifondoè heseuna

perso-na ade,ilsuorettangolodi ontornopassadall'esseremaggiormentesviluppato

in verti ale, all'esserlo in orizzontale. Inoltre ol passare del tempo esso

man-tiene le stesse oordinate, ioè è fermo. Sempre su base temporale, si s artano

quei bounding box he pur veri ando leregole geometri he, durano perpo hi

frame. Vengono onsideratierrori per hé se unapersona adeè realisti o he lì

rimangaperuntempoabbastanza lungo.

2. TUNING EPRESTAZIONI

Sono strumenti implementati per gestire situazioni di falsi positivi o per

er arediovviarealledi oltàdeltra kinginquantopuò apitare,perle

prom-blemati he pre edentemente des ritte, he fallis a e generi dati in onsistenti o

errati.

5.1 Creazione del ontrollo

Laprimane essitàperl'integrazionedelbrandeggioUlisseCompa tneisoftware

sopra des ritti, è quella della reazione di metodi he ne permettano il totale

ontrollo.

Perfarequestosièusatoillinguaggiodialtolivello C/C++[5 ℄,inambiente

dilavoroGNU/Linux[9℄. Questoper héil ontesto lori hiedevaimpli itamente

ed an he per hé, il kernel Linux ha un alto grado di e ienza. Un linguaggio

ompilato e noninterpretato, qualeappunto quello usato, unitoad unkernel in

grado disfruttare moltobene iltempo he gli èdato, danno ampia garanzia di

risultato.

(54)

ˆ spostamento in verti ale;

ˆ spostamento in orizzontale;

ˆ spostamento versouna posizione predeterminata;

ˆ aumento zoom;

ˆ diminuzione zoom;

he hanno ri hiesto la reazionedei seguentimetodi:

MOVIMENTIBASE: UP,DOWN, LEFT, RIGHT,STOP

void Up(int speed) {MoveCommand("MXUp", speed);}

void Down(int speed) {MoveCommand("MXDn", speed);}

void Left(int speed) {MoveCommand("MXLf", speed);}

void Right(int speed) {MoveCommand("MXRg", speed);}

void Stop(void) {SendCommandToDevi e("MXSt");}

MOVIMENTI OBLIQUI: UP-LEFT, UP-RIGHT, DOWN-LEFT,

DOWN-RIGHT

void UpLeft(int speedX, int speedY) {MoveCommand("MXUL", speedX, speedY);}

void UpRight(int speedX, int speedY) {MoveCommand("MXUR", speedX, speedY);}

void DownLeft(int speedX, int speedY) {MoveCommand("MXDL", speedX, speedY);}

void DownRight(int speedX, int speedY) {MoveCommand("MXDR", speedX, speedY);}

SPOSTAMENTOIN UNAPOSIZIONE DIPRESET

void GoToPresetPosition(int presetPosition);

SPOSTAMENTOVERSO UNAPOSIZIONESPECIFICA

void GoToSpe ifi Position( har *pan, har *tilt, har *run, har *zoom);

Inne sonostati reatideimetodidi ontorno, ne essari a:

ˆ spedire il omando(stringa ASCII) attraverso laportaseriale [10℄;

Riferimenti

Documenti correlati

Per concludere, per quanto possa essere utile all'attuale operazione di ridefinizione degli organici, non si può non ricordare la richiesta di parere, sull'ampliamento delle

AUTONOMIA DELLE STUDENTE se lo studente risiede fuori dall’unita abitativa della famiglia di origine da almeno 2 anni rispetto alla data di presentazione della

C APACITÀ E COMPETENZE PERSONALI Acquisite nel corso della vita e della. carriera ma non necessariamente riconosciute da certificati e diplomi

Nel caso in cui le domande superino il numero massimo dei partecipanti stabilito, e qualora il Consiglio Scientifico del Master ritenga di voler ampliare il numero

 E’ possibile iscriversi ad uno dei Corsi di studio post-laurea dell’Università degli Studi di Teramo esclusivamente on-line seguendo la procedura

Fondazione Aida - Glossa teatro e Papagena teatro d’attore e figura | dai 5 ai 10 anni | durata 50 minuti.. Lo spettacolo è una riproposizione in forma scenica dell’omonimo

Una combinazione di un anello di arresto e una rondella Nord-lock® assicura un fissaggio a tenuta e affidabile dei tubi distanziali della girante all'albero scanalato della pompa..

Diversa situazione, va osservato per incidens, si verifica dopo la chiusura delle indagini preliminari (ad esempio, in sede di udienza preliminare): in questo caso il giudice,