IT201900001833A1 - Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico - Google Patents

Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico Download PDF

Info

Publication number
IT201900001833A1
IT201900001833A1 IT102019000001833A IT201900001833A IT201900001833A1 IT 201900001833 A1 IT201900001833 A1 IT 201900001833A1 IT 102019000001833 A IT102019000001833 A IT 102019000001833A IT 201900001833 A IT201900001833 A IT 201900001833A IT 201900001833 A1 IT201900001833 A1 IT 201900001833A1
Authority
IT
Italy
Prior art keywords
motion vectors
motion
optical flow
flow data
list
Prior art date
Application number
IT102019000001833A
Other languages
English (en)
Inventor
Giuseppe Spampinato
Salvatore Curti
Arcangelo Ranieri Bruna
Original Assignee
St Microelectronics Srl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT102019000001833A priority Critical patent/IT201900001833A1/it
Priority to US16/774,625 priority patent/US10977804B2/en
Publication of IT201900001833A1 publication Critical patent/IT201900001833A1/it
Priority to US17/220,475 priority patent/US11593949B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)
  • Geophysics And Detection Of Objects (AREA)

Description

DESCRIZIONE dell’invenzione industriale dal titolo:
“Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico”
TESTO DELLA DESCRIZIONE
Campo Tecnico
Le forme di attuazione della presente descrizione sono relative a tecniche per rilevare oggetti in movimento mediante una telecamera in movimento.
Sfondo
La rilevazione di oggetti in movimento in modo indipendente (IMO, “Independently Moving Object”) è una importante capacità di percezione del moto di un sistema osservatorio mobile. Siccome i cambiamenti in una scena possono essere dovuti al moto della telecamera (moto proprio) e al moto degli oggetti ci sono due possibilità per la natura dinamica della telecamera e l’impostazione dell’ambiente circostante (“world setup”) per quanto riguarda la rilevazione di IMO:
1. Telecamera stazionaria, oggetti in movimento (SCMO); 2. Telecamera in movimento, oggetti in movimento (MCMO).
In un’analisi della scena dinamica, le scene SCMO hanno ricevuto la massima attenzione. È stata proposta una varietà di procedimenti per rilevare oggetti in movimento in scene statiche. Ci sono in generale due tipi di approcci: basati sulla regione e basati sui confini. Gli approcci più popolari e recenti basati sulla regione sono la sottrazione dello sfondo, come descritto, per es., in:
- D. K. Panda e S. Meher. Detection of Moving Objects Using Fuzzy Color Difference Histogram Based Background Subtraction. IEEE Signal Processing Letters, 2016;
- M. Anandhalli e V. P. Baligar. Improvised approach using background subtraction for vehicle detection. IEEE International Advance Computing Conference (IACC), 2015;
- O. E. Harrouss, D. Moujahid e H. Tairi. Motion detection based on the combining of the background subtraction and spatial color information. Intelligent Systems and Computer Vision (ISCV), 2015; o
- T. Huynh-The, O. Banos, S. Lee, B. H. Kang, E. Kim e T. Le-Tien. NIC: A Robust Background Extraction Algorithm for Foreground Detection in Dynamic Scenes. IEEE Transactions on Circuits and Systems for Video Technology, 2016.
Per contro, negli approcci basati sui confini molti approcci recenti usano un flusso ottico basato sui bordi, come descritto, per es., in:
- C. Huang e M. Hung. Target motion compensation with optical flow clustering during visual tracking. IEEE 11th International Conference on Networking, Sensing and Control (ICNSC), 2014;
- C. Wong, W. C. Siu, S. Barnes, P. Jennings e B. Fong. Shared-use motion vector algorithm for moving objects detection for automobiles. IEEE International Conference on Consumer Electronics (ICCE), 2016;
- J. Hariyono e K. Jo. Detection of pedestrian crossing road. IEEE International Conference on Image Processing (ICIP), 2015; o
- C. Liang e C. Juang. Moving Object Classification Using a Combination of Static Appearance Features and Spatial and Temporal Entropy Values of Optical Flows. IEEE Transactions on Intelligent Transportation Systems, 2015.
Gli interessi per il MCMO sono aumentati notevolmente nella visione computerizzata (“computer vision”) a causa della crescente domanda di piattaforme mobili, come gli UAV (Unmanned Aerial Vehicle), i veicoli automatici e i robot mobili.
Per esempio, la Figura 1 rappresenta una tipica situazione di MCMO. Specificamente, nell’esempio considerato un UAV D vola con una data velocità vD a una data altezza sopra una superficie S. L’UAV D comprende almeno una telecamera per acquisire immagini della superficie S. Per esempio, nella Figura 1 sono rappresentati due oggetti O1 e O2, come automobili, che viaggiano sulla superficie S con rispettive velocità v1 e v2.
Così, come rappresentato nella Figura 2, in generale la presente domanda è relativa a un dispositivo mobile D comprendente una telecamera 10 che fornisce una sequenza di immagini IMG e una unità di elaborazione 30 configurata per determinare una lista di oggetti in movimento O nelle immagini IMG.
Specificamente, lo spostamento degli oggetti O nell’immagine IMG deriverà da due tipi di movimenti:
- il movimento del dispositivo D/telecamera 10 (per es., vD); e
- il movimento degli oggetti in movimento O da rilevare (per es., v1, v2).
L’MCMO è così un compito estremamente impegnativo nell’analisi di scene dinamiche. A causa della difficoltà della rilevazione di oggetti in movimento con una telecamera in movimento 10, siccome i due tipi di movimento sono mischiati insieme, è stato proposto soltanto un piccolo numero di procedimenti in confronto a una telecamera stazionaria.
Una delle fasi fondamentali nella rilevazione di IMO nel caso di MCMO è così la compensazione del moto indotto della telecamera. È stata proposta una varietà di procedimenti per compensare il moto proprio. In particolare, sono stati proposti due approcci principali: basati sulle caratteristiche visive e basati sul moto.
Gli approcci basati sulle caratteristiche visive di solito considerano i colori, gli angoli, i bordi o le sagome, come descritto, per es., in:
- C. Hsu-Yung, W. Chih-Chia e C. Yi-Ying, "Vehicle Detection in Aerial Surveillance Using Dynamic Bayesian Networks", IEEE Transactions on Image Processing, vol. 21, pp. 2152-2159, 2012;
- C. Long, J. Zhiguo, Y. Junli e M. Yibing, "A coarseto-fine approach for vehicles detection from aerial images", International Conference on Computer Vision in Remote Sensing (CVRS), 2012;
- S. A. Cheraghi e U. U. Sheikh, "Moving object detection using image registration for a moving camera platform", IEEE International Conference on Control System, Computing and Engineering (ICCSCE), 2012;
- J. Gleason, A. V. Nefian, X. Bouyssounousse, T. Fong e G. Bebis, "Vehicle detection from aerial imagery", IEEE International Conference on Robotics and Automation, 2011; - Z. Zezhong, W. Xiaoting, Z. Guoqing e J. Ling, "Vehicle detection based on morphology from highway aerial images", IEEE International Geoscience and Remote Sensing Symposium (IGARSS), 2012;
- A. Kembhavi, D. Harwood e L. S. Davis, "Vehicle Detection Using Partial Least Squares", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 33, pagine da 1250 a 1265, 2011; o
- P. Sadeghi-Tehran e P. Angelov, "ATDT: Autonomous Template based Detection and Tracking of Objects from Airborne Camera", Proceedings of IEEE International Intelligent Systems, pagine da 555 a 565, 2014.
Tuttavia, gli inventori hanno osservato che questi approcci non sono efficienti dal punto di vista computazionale, siccome sono necessarie informazioni delle immagini per l’elaborazione.
Un approccio alternativo è basato sull’analisi del moto. Specificamente, sono stati proposti differenti approcci di MCMO basati sul moto: la modellizzazione dello sfondo spazio-temporale, la modellizzazione basata su griglia e il raggruppamento (“clustering”) delle caratteristiche, come descritto, per es., in:
- S. W. Kim, K. Yun, K. M. Yi, S. J. Kim e J. Y. Choi, “Detection of moving objects with a moving camera using nonpanoramic background model”, Machine Vision and Applications, 2012;
- K. M. Yi, K. Yun, S. W. Kim, H. J. Chang, H. Jeong e J. Y. Choi, "Detection of Moving Objects with Non-stationary Cameras in 5.8ms: Bringing Motion Detection to Your Mobile Device", Computer Vision and Pattern Recognition Workshops (CVPRW), 2013; o
- J. Kim, X. Wang, H. Wang, C. Zhu e D. Kim, "Fast moving object detection with non-stationary background", Multimedia tools and applications, vol. 67, n. 1, 2013.
Gli inventori hanno osservato che anche questi procedimenti sono pesanti dal punto di vista computazionale.
Un altro procedimento di MCMO che cade in questa categoria, ma più leggero dal punto di vista computazionale, è basato sui dati di flusso ottico (OF, “Optical Flow”). La stima del flusso ottico fornisce un vettore di moto (MV, “Motion Vector”) bidimensionale, che rappresenta il movimento di alcuni punti di un’immagine nella seguente della sequenza.
Sostanzialmente, in questo approccio sono usati i dati del flusso ottico per calcolare un modello del movimento dello sfondo, che è sottratto quindi dall’immagine/ fotogramma (“frame”) corrente per eliminare il movimento globale della telecamera. In questo modo, è determinata un’immagine/frame modificato che comprende soltanto movimenti in primo piano, che possono essere raggruppati per identificare correttamente oggetti in movimento. Per esempio, in questo contesto possono essere citati documenti come:
- P. Sadeghi-Tehran, C. Clarke, P. Angelov, "A realtime approach for autonomous detection and tracking of moving objects from UAV", IEEE Symposium on Evolving and Autonomous Learning Systems (EALS), 2014; o
- J. Kim, G. Ye e D. Kim, "Moving object detection under free-moving camera", Proceedings of IEEE International Conference on Image Processing (ICIP), 2010.
Sintesi
In considerazione di quanto precede, uno scopo delle varie forme di attuazione della presente descrizione è di fornire soluzioni per rilevare oggetti in movimento mediante una telecamera in movimento. Specificamente, varie forme di attuazione dovrebbero essere atte a determinare oggetti in movimento, senza alcuna ipotesi circa il moto della telecamera e le condizioni ambientali. Inoltre, la rilevazione dovrebbe avere una bassa complessità e dovrebbe essere eseguibile in tempo reale (“real-time”).
Secondo una o più forme di attuazione, uno o più degli scopi precedenti sono raggiunti per mezzo di un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento avente le caratteristiche esposte specificamente nelle rivendicazioni che seguono. Le forme di attuazione concernono inoltre un relativo sistema di elaborazione e dispositivo, così come un prodotto informatico, caricabile nella memoria di almeno un processore e comprendente porzioni di codice software atte a implementare le fasi del procedimento quando il prodotto è eseguito su almeno un processore. Così, come usato qui, un riferimento a un tale prodotto informatico intende essere equivalente a un riferimento a un mezzo leggibile da elaboratore contenente istruzioni per controllare il sistema di elaborazione, al fine di coordinare l’implementazione del procedimento secondo l’invenzione. Il riferimento ad “almeno un processore” evidentemente intende evidenziare la possibilità che la presente invenzione sia implementata in forma modulare e/o distribuita.
Le rivendicazioni sono parte integrante dell’insegnamento tecnico della descrizione qui fornita.
Come menzionato in precedenza, varie forme di attuazione della presente descrizione sono relative a un procedimento e a un relativo sistema per rilevare uno o più oggetti in movimento mediante una telecamera in movimento.
Specificamente, in varie forme di attuazione, la rilevazione è basata su dati di flusso ottico. In varie forme di attuazione, il sistema riceve così una sequenza di immagini dalla telecamera in movimento e il sistema elabora la sequenza di immagini al fine di generare un insieme di dati di flusso ottico comprendente una lista di vettori di moto che sono associati a rispettive caratteristiche nella sequenza di immagini. Generalmente, i vettori di moto possono così essere relativi al movimento dello sfondo dovuto al movimento della telecamera o al movimento degli oggetti nella scena, cioè un movimento degli oggetti rispetto allo sfondo.
In varie forme di attuazione, il sistema determina, per es. eseguendo un consenso campione casuale, RANSAC (“Random Sample Consensus”), parametri di un modello di moto globale in funzione dei vettori di moto nell’insieme di dati di flusso ottico. Specificamente, in varie forme di attuazione, i parametri del modello di moto globale possono comprendere un movimento orizzontale, un movimento verticale, una rotazione e uno zoom dell’immagine di sfondo dovuto al movimento della telecamera.
In varie forme di attuazione, una volta che è stato selezionato un dato modello di moto globale, il sistema può quindi dividere i vettori di moto nell’insieme di dati di flusso ottico in un insieme di valori plausibili (“inlier”) che comprende i vettori di moto ai quali si applica il modello di moto globale, e in un insieme di valori anomali (“outlier”) che comprende i vettori di moto ai quali non si applica il modello di moto globale. In varie forme di attuazione, il sistema determina quindi parametri raffinati del modello di moto globale (esclusivamente) in funzione dei vettori di moto nell’insieme di valori plausibili.
Per contro, l’insieme di valori anomali è elaborato al fine di identificare oggetti in movimento nella scena. Specificamente, in varie forme di attuazione, gli oggetti sono identificati mediante una lista di caselle di delimitazione (“boundary box”) che comprende una lista di caselle di delimitazione, ciascuna casella di delimitazione definendo la posizione e la dimensione di un rispettivo oggetto in movimento nell’immagine precedente.
In varie forme di attuazione, il sistema può anche prendere in considerazione la lista di caselle di delimitazione determinata per un’immagine precedente, cioè il sistema può ricevere una lista di caselle di delimitazione determinata per un’immagine precedente nella sequenza di immagini. Per esempio, in varie forme di attuazione, il sistema genera un insieme filtrato temporalmente di dati di flusso ottico determinando i vettori di moto nell’insieme di dati di flusso ottico che hanno una posizione all’interno di almeno una delle caselle di delimitazione, ed assicurando che i vettori di moto determinati siano inclusi nell’insieme di valori anomali. In varie forme di attuazione, prima di effettuare il filtraggio temporale, il sistema può calcolare per ciascun vettore di moto nell’insieme di valori anomali un rispettivo vettore compensato come moto in funzione dei parametri raffinati, e può determinare un insieme raffinato di dati di flusso ottico rimuovendo i vettori di moto dall’insieme di valori anomali che sono simili al rispettivo vettore compensato come moto, rimuovendo con ciò i vettori di moto che è più probabile che dovrebbero appartenere all’insieme di valori plausibili. Così, l’insieme di dati di flusso ottico filtrato temporalmente può essere generato assicurando che i vettori di moto determinati siano inclusi nell’insieme di dati di flusso ottico raffinato.
In varie forme di attuazione, il sistema può così calcolare per ciascun vettore di moto nell’insieme di dati di flusso ottico filtrato temporalmente un rispettivo vettore compensato come moto in funzione dei parametri raffinati. In seguito, il sistema può raggruppare i vettori compensati come moto in funzione della loro posizione e della loro lunghezza e/o del loro orientamento, e può determinare la lista di caselle di delimitazione per l’immagine corrente determinando, per ciascun gruppo di vettori di moto, una rispettiva casella di delimitazione.
In varie forme di attuazione, il sistema può anche preelaborare i vettori di moto nell’insieme di dati di flusso ottico e/o post-elaborare i vettori compensati come moto, in cui il pre-elaborare e/o il post-elaborare possono comprendere di rimuovere i vettori di moto fuori intervallo, di rimuovere i vettori di moto fuori frame, e/o di eliminare i vettori di moto rumorosi.
In varie forme di attuazione, il sistema può anche verificare se l’insieme di flusso ottico filtrato temporalmente non contiene verosimilmente alcun dato relativo a movimenti di oggetti reali. Per esempio, in varie forme di attuazione, il sistema può determinare l’area occupata dai vettori di moto nell’insieme di dati di flusso ottico (originali) e l’area occupata dai vettori di moto nell’insieme di dati di flusso ottico filtrato temporalmente. In effetti, quando queste aree hanno sostanzialmente la stessa dimensione, l’insieme di flusso ottico filtrato temporalmente contiene verosimilmente soltanto vettori di moto relativi al movimento dello sfondo. Di conseguenza, il sistema può impostare come vuota la lista di caselle di delimitazione quando l’area occupata dai vettori di moto nell’insieme di dati di flusso ottico filtrato temporalmente è maggiore di una data percentuale dell’area occupata dai vettori di moto nell’insieme di dati di flusso ottico. In aggiunta o in alternativa, il sistema può determinare il numero dei vettori di moto nell’insieme di dati di flusso ottico e il numero dei vettori di moto nell’insieme di dati di flusso ottico filtrato temporalmente. In effetti, quando questi numeri sono simili, l’insieme di flusso ottico filtrato temporalmente contiene verosimilmente perlopiù vettori di moto relativi al movimento dello sfondo. Di conseguenza, il sistema può impostare come vuota la lista di caselle di delimitazione quando il numero dei vettori di moto nell’insieme di dati di flusso ottico filtrato temporalmente è maggiore di una data percentuale del numero dei vettori di moto nell’insieme di dati di flusso ottico.
Breve descrizione delle figure
Forme di attuazione della presente descrizione saranno ora descritte con riferimento ai disegni annessi, che sono forniti puramente a titolo di esempio non limitativo, e nei quali:
- la Figura 1 rappresenta un tipico scenario in cui uno o più oggetti in movimento devono essere rilevati in un’immagine fornita da una telecamera in movimento;
- la Figura 2 rappresenta un esempio di un dispositivo configurato per determinare uno o più oggetti in movimento in un’immagine fornita da una telecamera in movimento;
- la Figura 3 rappresenta una forma di attuazione di un dispositivo configurato per determinare uno o più oggetti in movimento in base a dati di flusso ottico determinati in funzione di una sequenza di immagini fornita da una telecamera in movimento; e
- le Figure 4 e 5 rappresentano dettagli del funzionamento del dispositivo della Figura 3.
Descrizione Dettagliata
Nella descrizione che segue, sono illustrati numerosi dettagli specifici, allo scopo di fornire una comprensione approfondita delle forme di attuazione. Le forme di attuazione possono essere attuate senza uno o più dei dettagli specifici o con altri procedimenti, componenti, materiali, ecc. In altri casi, operazioni, materiali o strutture ben note non sono rappresentate o descritte in dettaglio per evitare di rendere poco chiari certi aspetti delle forme di attuazione.
Un riferimento a “una forma di attuazione” in tutta questa descrizione intende indicare che una particolare configurazione, struttura, o caratteristica descritta con riferimento alla forma di attuazione è compresa in almeno una forma di attuazione. Così, le frasi come “in una forma di attuazione” che compaiono in vari punti della presente descrizione non fanno necessariamente riferimento tutte alla stessa forma di attuazione. Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in un modo adeguato qualsiasi in una o più forme di attuazione.
I riferimenti usati qui sono forniti semplicemente per convenienza e quindi non definiscono l’ambito di protezione o l’ambito delle forme di attuazione.
Nelle Figure da 3 a 5 che seguono, le parti, gli elementi o i componenti che sono già stati descritti con riferimento alle Figure 1 e 2 sono indicati con gli stessi riferimenti usati precedentemente in tali Figure; la descrizione di tali elementi descritti precedentemente non sarà ripetuta in seguito al fine di non rendere troppo pesante la presente descrizione dettagliata.
Come menzionato in precedenza, varie forme di attuazione della presente descrizione sono relative a soluzioni per rilevare oggetti in movimento O per mezzo di una telecamera in movimento 10. Specificamente, in varie forme di attuazione, le immagini IMG fornite dall’una o più telecamere 10 sono elaborate per estrarre vettori di moto, cioè, il sistema può determinare oggetti in movimento (cioè, oggetti che si muovono rispetto allo sfondo (in movimento) dell’immagine IMG, per es. la superficie S rappresentata nella Figura 1) esclusivamente in base ai vettori di moto estratti dalla scena.
La Figura 3 rappresenta una forma di attuazione di un sistema configurato per rilevare uno o più oggetti in movimento O.
Come menzionato in precedenza, un tale sistema comprende almeno una telecamera 10 atta ad essere fissata a un dispositivo in movimento D, come un UAV, un veicolo, ecc. Di conseguenza, durante l’uso, la telecamera 10 fornirà una sequenza di frame/immagini IMG, cioè uno stream video, che rappresenta una scena. Per esempio, in varie forme di attuazione, la telecamera 10 può essere un sensore di immagine VG6640 di STMicroelectronics avente 1,3 megapixel.
Nella forma di attuazione considerata, il sistema comprende anche un sistema di elaborazione 30a configurato per ricevere la sequenza di immagini IMG e per elaborare le immagini IMG al fine di rilevare oggetti in movimento O.
Come menzionato in precedenza, in varie forme di attuazione, il sistema di elaborazione 30a genera la lista di oggetti in movimento O soltanto in base alle immagini IMG e non è usato alcun sensore ulteriore. Tuttavia, in generale, le soluzioni qui descritte possono anche essere combinate con altri dati al fine di migliorare la rilevazione, come dati che forniscono informazioni di posizione e/o movimento del dispositivo D.
Per esempio, in varie forme di attuazione, il sistema di elaborazione 30a può essere implementato con un processore di segnale di immagine (ISP, “Image Signal Processor”), come un processore STV0991 di STMicroelectronics. Per esempio, questo processore di immagine non ha soltanto una pipeline tradizionale per la ricostruzione dell’immagine da un’immagine di Bayer, ma comprende già dei nuclei (“core”) di elaborazione di immagine hardware, per es. per una analisi del video embedded, includendo l’estrazione dei dati del Flusso Ottico (OF) e dei bordi. Più specificamente, questo processore comprende una CPU ARM embedded, permettendo con ciò l’esecuzione di un codice software aggiuntivo per implementare il sistema di elaborazione 30a completo all’interno di un singolo processore di segnale di immagine.
In varie forme di attuazione, il sistema di elaborazione 30a comprende due sotto-moduli.
Il primo modulo 302 è configurato per analizzare le immagini IMG fornite dalla telecamera 10 al fine di generare dati di flusso ottico OF. Per esempio, in varie forme di attuazione, i dati OF comprendono una raccolta/lista di vettori di moto (MV) che indicano il moto di rispettive caratteristiche nell’immagine/frame corrente in confronto all’immagine/frame precedente. Come menzionato in precedenza, in varie forme di attuazione, i dati di flusso ottico OF sono calcolati in hardware, permettendo con ciò un’elaborazione in tempo reale con, per es., 30 fps. Generalmente, il calcolo dei dati di flusso ottico OF, in particolare dei vettori di moto, è ben noto nella tecnica, rendendo qui superflua una descrizione più dettagliata.
Un secondo modulo 304 riceve i dati di flusso ottico OF dal modulo 302 ed elabora i dati OF. Per esempio, il modulo 302 può memorizzare i dati OF in una memoria, come una RAM a doppia porta, e il modulo 304 può accedere alle stesse locazioni di memoria al fine di leggere i dati OF. Per esempio, tipicamente, tali vettori di moto comprendono dati di posizione bidimensionale della caratteristica (per es., nei termini delle coordinate di pixel nell’immagine corrente o nell’immagine precedente) e dati di spostamento bidimensionale (per es., nei termini delle coordinate di pixel che indicano la differenza tra la posizione della rispettiva caratteristica nell’immagine corrente e nell’immagine precedente).
Specificamente, il modulo 304 è configurato per elaborare i dati di flusso ottico OF al fine di determinare la lista di oggetti in movimento O. In varie forme di attuazione, il modulo 304 è un modulo software, per es. eseguito per mezzo del processore, per es. il processore che comprende anche il modulo (hardware) 302.
Una forma di attuazione del funzionamento del modulo 304 è rappresentata nella Figura 4.
Sostanzialmente, nella forma di attuazione considerata, i dati di flusso ottico OF, cioè i vettori di moto, sono filtrati in una fase 3042. Specificamente, la fase 3042 è usata per effettuare una Rimozione dei Vettori di Moto Globale (GMVR, “Global Motion Vector Removal”) per eliminare il moto globale dello sfondo. Di conseguenza, la fase 3042 fornisce un insieme di flusso ottico OF7 ridotto. L’insieme di flusso ottico OF7 ottenuto, cioè i dati di flusso ottico che contengono soltanto il movimento degli oggetti MV, è usato quindi in una fase di clustering 3044 per ottenere una lista delle caselle di delimitazione (BB, “Bounding Box”) BB List degli oggetti in movimento per questo frame, che comprende sostanzialmente la lista degli oggetti in movimento O nel frame/immagine IMG corrente. In varie forme di attuazione, la BB List può anche essere usata nella fase 3042 per il frame successivo per conservarlo, evitando con ciò di “perdere” oggetti in movimento identificati precedentemente.
La Figura 5 rappresenta una forma di attuazione della fase di filtraggio 3042.
Come menzionato in precedenza, la fase 3042 riceve in ingresso i dati di flusso ottico OF determinati dal sottomodulo 302 hardware e/o software. Generalmente, questi dati di flusso ottico derivano da una combinazione del movimento della telecamera 10 e del movimento degli oggetti O nella scena.
Nella forma di attuazione considerata, i dati di flusso ottico OF sono dapprima filtrati da una fase di prefiltraggio 3046. Questa fase è puramente opzionale, ma può essere utile al fine di eliminare i vettori di moto rumorosi e/o fuori intervallo.
È quindi applicato un RANSAC (Random Sample Consensus) ottimizzato in una fase 3048 ai dati di flusso ottico OF1 filtrati forniti dalla fase di pre-filtraggio 3046 (o direttamente ai dati di flusso ottico OF originali). Specificamente, la fase fornisce due sottoinsiemi di dati di flusso ottico:
- un insieme di valori plausibili OF2, che dovrebbe contenere vettori di moto relativi al moto globale della telecamera; e
- un insieme di valori anomali OF3, che dovrebbe contenere vettori di moto relativi al moto locale degli oggetti.
In varie forme di attuazione, questi due insiemi di dati di flusso ottico OF2 e OF3 sono quindi elaborati in modo indipendente.
Specificamente, l’insieme di valori plausibili OF2 è elaborato in una fase 3050 per ricalcolare i parametri del modello di moto globale della telecamera 10, in particolare rispetto a un movimento orizzontale Tx e a un movimento verticale Ty dell’immagine di sfondo dovuti al movimento della telecamera, e opzionalmente a una rotazione α e/o uno zoom σ dell’immagine di sfondo dovuti al movimento della telecamera.
Per contro, l’insieme di valori anomali OF3 è regolato da una fase di filtraggio di raffinamento 3052, che in funzione di una metrica di distanza ottiene un insieme di valori anomali OF4 modificato.
In varie forme di attuazione, l’insieme di valori anomali OF4 modificato è quindi fornito a una fase di clustering temporale 3054, che può usare la BB List descritta precedentemente al fine di evitare che oggetti già identificati siano eliminati, cioè, la fase 3054 può reintrodurre vettori di moto nell’insieme di valori anomali OF4 filtrato, generando con ciò un insieme di valori anomali OF5 filtrato.
In varie forme di attuazione, i dati di flusso ottico OF4 o OF5 sono quindi forniti a una fase di verifica 3056. Sostanzialmente, a seconda dell’area occupata degli MV, la fase di verifica 3056 è usata per determinare se i dati di flusso ottico OF4 o OF5 (quando è usata anche la fase di filtraggio temporale 3054) possono contenere effettivamente vettori di moto relativi al moto locale degli oggetti. Per esempio, se la verifica indica che certe condizioni non sono soddisfatte (come sarà descritto in maggior dettaglio in seguito), i dati di flusso ottico OF4/OF5 sono scartati e l’uscita finale OF7 è vuota, cioè non è identificato alcun oggetto in movimento O nella BB List per il frame corrente. Altrimenti, in varie forme di attuazione, in una fase 3058 è applicata una compensazione vettoriale ai dati di flusso ottico OF4/OF5, ottenendo con ciò un insieme di valori anomali OF6 compensato.
In varie forme di attuazione, una fase di postfiltraggio 3060 opzionale può essere applicata all’insieme di valori anomali compensato fornito dalla fase 3058. Così, in questo caso, i dati di flusso ottico OF7 di uscita possono corrispondere all’insieme di valori anomali OF6 compensato o ai dati di flusso ottico post-filtrato.
In seguito, saranno descritte possibili forme di attuazione delle varie fasi.
Come menzionato in precedenza, in varie forme di attuazione, i dati di flusso ottico OF generati dal sottomodulo 302 sono forniti a una fase di pre-filtraggio 3046.
Specificamente, in varie forme di attuazione, l’unità di elaborazione 30a è configurata per generare, nella fase di pre-filtraggio 3046, un insieme di flusso ottico OF1 ridotto confrontando ciascun vettore di moto dell’insieme di flusso ottico OF con una o più condizioni.
Per esempio, in varie forme di attuazione, ciascun vettore di moto comprende dati di posizione sotto forma di coordinate di pixel assolute P = (X, Y), dove X corrisponde alla posizione di pixel in una direzione orizzontale dell’immagine IMG precedente e Y corrisponde alla posizione di pixel in una direzione verticale dell’immagine IMG precedente, e dati di spostamento sotto forma di un vettore di velocità/spostamento v = (dX, dY), dove dX corrisponde allo spostamento dei pixel nella direzione orizzontale dell’immagine IMG corrente rispetto all’immagine IMG precedente e dY corrisponde allo spostamento dei pixel nella direzione verticale dell’immagine IMG corrente rispetto all’immagine IMG precedente.
Per esempio, in varie forme di attuazione, l’unità di elaborazione 30a può verificare, nella fase 3046, se i dati di spostamento superano un valore massimo indicativo di un movimento massimo dell’oggetto, per es.:
ABS(dX) > SEARCH_WIDTH (1) ABS(dY) > SEARCH_HEIGHT (2) dove la funzione ABS fornisce il valore assoluto, e i parametri SEARCH_WIDTH e SEARCH_HEIGHT rappresentano rispettivi valori massimi. Generalmente, questi parametri possono essere fissi o programmabili.
In varie forme di attuazione, l’unità di elaborazione 30a può verificare, nella fase 3046, se la posizione risultante della caratteristica nell’immagine IMG corrente, cioè (X dX, Y dY), è entro i confini dell’immagine IMG. Per esempio, ipotizzando che la posizione orizzontale X dovrebbe essere in un intervallo tra 0 e IMAGE_WIDTH-1, e che la posizione verticale Y dovrebbe essere in un intervallo tra 0 e IMAGE_ HEIGHT-1, l’unità di elaborazione 30a può verificare:
(X dX) < 0 (3) (Y dY) < 0 (4) (X dX) ≥ IMAGE_WIDTH (5) (Y dY) ≥ IMAGE_HEIGHT (6) In varie forme di attuazione, l’unità di elaborazione 30a può verificare, nella fase 3046, se il vettore di moto risulta da rumore, che è solitamente il caso per vettori di moto che hanno uno spostamento abbastanza piccolo. Per esempio, in varie forme di attuazione, l’unità di elaborazione può verificare:
(ABS(dX) ABS(dY)) ≤ MAX_N (7) dove il parametro MAX_N rappresenta uno spostamento minimo richiesto. Generalmente, questo parametro può essere fisso o programmabile. Per esempio, tipicamente MAX_N può essere in un intervallo tra 1 e 5, per es. 1.
Di conseguenza, le Equazioni (1) e (2) sono usate per rimuovere i vettori di moto fuori intervallo, le Equazioni da (3) a (6) sono usate per rimuovere i vettori di moto fuori frame, e l’Equazione (7) elimina i vettori di moto rumorosi. Così, nella forma di attuazione considerata, il rispettivo vettore di moto è rimosso quando è soddisfatta almeno una delle condizioni precedenti.
Generalmente, la fase di pre-elaborazione 3046 è opzionale perché le stesse operazioni o operazioni sostanzialmente simili possono già essere state effettuate dal sotto-modulo 302.
In varie forme di attuazione, i dati di flusso ottico OF1 pre-filtrati (o direttamente i dati di flusso ottico OF) sono poi elaborati nella fase 3048, per es. mediante un RANSAC (Random Sample Consensus). Il RANSAC è usato per dividere un insieme di dati di flusso ottico (OF1 o OF) in due sottoinsiemi di dati di flusso ottico OF2 e OF3, che contengono rispettivamente valori plausibili e valori anomali MV. Il RANSAC è noto di per sé, per es. da M. A. Fischler e R. C. Bolles, "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Comm. of the ACM, vol. 24, n. 11, pagine da 381 a 395, 1981, che è incorporato qui tramite citazione a questo scopo. Sostanzialmente, il RANSAC campiona in modo casuale le concordanze (“match”) corrispondenti e tenta di effettuare un loro fit calcolando un errore tra il resto dei campioni e il modello. Esso produce un risultato ragionevole soltanto con una certa probabilità, con questa probabilità che aumenta quante più iterazioni sono consentite. In questo modo, è ottenuto l’insieme con il migliore consenso (per es., l’insieme di valori plausibili).
Per esempio, in varie forme di attuazione, il RANSAC è usato per stimare un modello del movimento per il movimento globale che è funzione di un movimento orizzontale Tx, per es. nei termini di uno spostamento di pixel orizzontale, e di un movimento verticale Ty, per es. nei termini di uno spostamento di pixel verticale. In varie forme di attuazione, il modello può anche includere una rotazione α, per es. un angolo rispetto all’asse/direzione orizzontale dell’immagine, e uno zoom σ.
Così, in generale, possono anche essere usati altri procedimenti di ottimizzazione per stimare questi parametri del modello di moto globale in funzione dei dati di flusso ottico OF/OF1. Tuttavia, gli inventori hanno osservato che il Random Sample Consensus è molto robusto ed è atto a stimare i parametri di un modello matematico da un insieme di dati osservati che contengono valori anomali. Per esempio, quando è usato il RANSAC, un certo numero di vettori di moto sono selezionati in modo casuale e sono usati per calcolare i parametri del modello del movimento (Tx, Ty, α, σ). Il modello determinato può quindi essere testato rispetto a tutti i vettori di moto al fine di determinare il numero S di campioni (vettori di moto) ai quali si applica il modello. Se il numero S non raggiunge (ancora) una data soglia N e non è ancora stato raggiunto un dato numero massimo di cicli, un nuovo insieme di vettori di moto può essere selezionato in modo casuale e può essere usato per costruire un nuovo modello. Per contro, se il numero S raggiunge la soglia N, è selezionato come modello per il moto globale. Quando è raggiunto il numero massimo di cicli, può essere selezionato l’ultimo modello di moto globale o, in alternativa, il modello di moto globale con la migliore concordanza (per es., il modello con il più alto numero S).
In varie forme di attuazione, il valore N, che rappresenta sostanzialmente un numero minimo di campioni/vettori di moto al quale deve applicarsi il modello di moto globale, può essere determinato in funzione dell’insieme OF1.
Per esempio, gli inventori hanno osservato che al problema dei vettori di moto può anche essere applicata la soluzione descritta alle pagine da 117 a 119 del documento Hartley R., Zisserman A., "Multiple View Geometry in Computer Vision", Cambridge University Press, Second Edition, 2004. Specificamente, questo documento si riferisce a una soluzione per scegliere una soglia di distanza t, tale che con una probabilità α un punto/campione (un vettore di moto nel presente caso) sia un valore ammissibile. Sostanzialmente, per ciascun punto/vettore di moto è calcolata una metrica di distanza indicativa della distanza dal modello, e un campione (vettore di moto nel presente caso) appartiene all’insieme di valori plausibili quando la metrica di distanza è minore di t<2 >(si veda, per es., l’Equazione 4.17 del documento citato. Per contro, l’Equazione 4.18 del documento citato presenta come calcolare il numero N).
Così, una volta che è stato ottenuto il modello di movimento della maggioranza dei vettori di moto, cioè quelli che ci si aspetta che derivino dal movimento globale della telecamera/sfondo, i vettori di moto possono essere raggruppati nella fase 3048 in due sottoinsiemi di dati di flusso ottico:
- un insieme di valori plausibili OF2 (cioè, l’insieme di vettori di moto a cui si applica il modello di moto globale), che dovrebbe contenere vettori di moto relativi a un moto globale della telecamera; e
- un insieme di valori anomali OF3 (cioè, l’insieme di vettori di moto a cui non si applica il modello di moto globale), che dovrebbe contenere vettori di moto relativi a un moto locale degli oggetti.
Così, i vettori di moto nell’insieme di valori plausibili OF2 possono essere usati nella fase 3050 per calcolare parametri raffinati (Tx,Ty,α,σ) del modello di moto globale. A questo riguardo, può essere citato l’articolo G. Spampinato, A. Bruna, G. M. Farinella, S. Battiato e G. Puglisi, “Fast and Low Power Consumption Outliers Removal for Motion Vector Estimation”, Proceedings of the International Conference on Advanced Concepts for Intelligent Vision Systems (ACIVS), 2015, che descrive come possono essere determinati i parametri (Tx,Ty,α,σ) del modello di moto globale per un insieme di vettori di moto da cui sono stati rimossi i valori anomali e che è incorporato qui tramite citazione a questo scopo. Questa fase corrisponde sostanzialmente al calcolo dei parametri del modello di movimento globale nella fase 3048, ma questa volta sono usati soltanto i vettori di moto nell’insieme OF2, invece di vettori di moto selezionati casualmente nell’insieme OF1, migliorando con ciò la precisione dei parametri del modello di movimento globale.
Per contro, l’insieme di flusso ottico dei valori anomali OF3 è fornito nella fase 3052 per ottenere un insieme di flusso ottico dei valori anomali ridotto OF4. In particolare, è calcolato un vettore compensato come moto MV’ per ciascun vettore di moto MV nell’insieme OF3. Specificamente, il vettore compensato come moto MV’ è ottenuto applicando il rispettivo vettore di moto MV ai parametri di moto globale (Tx,Ty,α,σ).
In varie forme di attuazione, il vettore di moto MV è scartato (rimosso dall’insieme OF3) quando sono soddisfatte entrambe le due condizioni seguenti:
SAD(MV, MV’) < TRESHMV (8) ABS(β(MV) - β(MV’)) < TRESHβ (9) dove la funzione SAD indica la Somma di Differenza Assoluta, la funzione β fornisce l’orientamento del rispettivo vettore di moto MV/MV’ (per es., rispetto all’asse/direzione orizzontale dell’immagine), e i parametri TRESHMV e TRESHβ corrispondono a rispettive soglie, che possono essere fisse o programmabili. Sostanzialmente, le Equazioni (8) e (9) permettono di rimuovere i vettori di moto ancora relativi a un movimento dello sfondo/globale.
In varie forme di attuazione, i parametri TRESHMV e TRESHβ sono calcolati come una percentuale della differenza tra l’orientamento massimo e minimo che si trova intorno al MV considerato. Per esempio, considerando una data coppia di vettori di moto MV/MV’, può essere selezionata una data finestra (per es., 3x3, 5x3, 3x5, 5x5, ecc.) centrata nella posizione del vettore di moto MV. In base ai vettori di moto inclusi in questa finestra (eccetto che per il vettore di moto MV), l’unità di elaborazione 30a può calcolare rispettivi vettori di moto MV’’ con compensazione del moto. In seguito, l’unità di elaborazione può determinare la distanza massima e minima dei vettori di moto MV’’ rispetto al vettore di moto MV’ e può determinare la soglia TRESHMV come una data percentuale della differenza tra la distanza massima e quella minima. Similmente, l’unità di elaborazione 30a può determinare l’angolo massimo e minimo dei vettori di moto MV’’ rispetto al vettore di moto MV’ e può determinare la soglia TRESHβ come una data percentuale della differenza tra l’angolo massimo e minimo.
In varie forme di attuazione, l’insieme di valori anomali OF4 modificato generato nella fase 3052 è quindi fornito alla fase di clustering temporale 3054.
Sostanzialmente, la fase 3054 prende come ingresso l’insieme di flusso ottico OF4 raffinato di valori anomali e la lista di oggetti O già identificati per il frame precedente per ottenere un nuovo insieme di flusso ottico OF5 di valori anomali. Specificamente, in varie forme di attuazione (come sarà descritto in maggiore dettaglio in seguito), ciascun oggetto è identificato mediante una casella di delimitazione (BB), come un rettangolo che ha una data posizione e dimensione, per es. espresse in pixel orizzontali e verticali. Così, in varie forme di attuazione, gli oggetti possono essere identificati da una lista di caselle di delimitazione “BB List”.
In varie forme di attuazione, l’unità di elaborazione 30a può così conservare, nella fase 3054, tutti i vettori di moto MV (o i rispettivi vettori compensati come moto MV’) dell’insieme di flusso ottico OF1 (con OF1 = OF quando la fase di pre-elaborazione 3046 è omessa) che sono all’interno di una delle caselle di delimitazione determinate per il frame precedente. Per esempio, questo può essere utile per evitare di eliminare i cluster di oggetti veri.
Gli inventori hanno osservato che la fase 3054 è abbastanza utile rispetto a vettori di moto di cluster/oggetti che escono dalla scena. In effetti, questi vettori di moto possono essere facilmente confusi con vettori di moto da eliminare a causa di un movimento della telecamera. La fase 3054 supera questo problema ipotizzando che gli oggetti che escono dalla scena sono stati identificati e memorizzati precedentemente nella BB List.
Una volta che sono stati ottenuti dati di flusso ottico OF5 regolati finali, la fase di verifica 3056 è usata per determinare se accettare o rifiutare questo insieme OF5. Sostanzialmente, la fase 3056 verifica se l’insieme OF5 contiene verosimilmente solo vettori di moto risultanti da un movimento globale e così non relativi a oggetti in movimento.
Per esempio, gli inventori hanno osservato che vettori di moto di uno sfondo/movimento globale sono più sparpagliati di quelli di oggetti in movimento, cioè la rispettiva area di sfondo è più grande dell’area di oggetti in movimento. Per esempio, in varie forme di attuazione, l’unità di elaborazione 30a può conservare l’insieme OF5 soltanto quando sono soddisfatte le quattro condizioni seguenti: card(OF5)/card(OF1) < TH1 (10) LenghtX(OF5)/ LenghtX(OF1) < TH2 (11) LenghtY(OF5)/ LenghtY(OF1) < TH3 (12) Area(OF5)/Area(OF1) < TH4 (13) con:
Area(OF) = LenghtX(OF) * LenghtY(OF) (14) dove card(OF) è la cardinalità del rispettivo insieme OF, cioè il numero di elementi/vettori di moto del rispettivo insieme di flusso ottico OF, LenghtX(OF) e LenghtY(OF) sono rispettivamente le lunghezze orizzontale e verticale occupate dai vettori di moto nel rispettivo insieme OF, cioè per un insieme di dati di flusso ottico OF comprendente vettori di moto che hanno rispettive posizioni P(x,y), la funzione LengthX(OF) fornisce la differenza tra la posizione orizzontale massima e la posizione orizzontale minima dei vettori di moto nel rispettivo insieme OF, e la funzione LengthY(OF) fornisce la differenza tra la posizione verticale massima e la posizione verticale minima dei vettori di moto nel rispettivo insieme OF.
Una volta che un insieme di flusso ottico OF5 regolato finale ha superato la fase di verifica 3056, i parametri (Tx,Ty,α,σ), ottenuti nella fase 3050, sono applicati ai vettori di moto nell’insieme OF5, ottenendo con ciò un insieme OF6 di vettori di moto compensati come moto MV’. Generalmente, i vettori di moto compensati come moto MV’ possono già essere stati calcolati nella fase 3052. Tuttavia, da una parte, la fase 3052 può essere opzionale e, dall’altra parte, vettori di moto aggiuntivi possono essere aggiunti di nuovo dalla fase 3054. Così, in varie forme di attuazione, l’unità di elaborazione 30a può calcolare nella fase 3058 vettori compensati come moto MV’ per tutti i vettori di moto o soltanto per i vettori di moto reintrodotti nella fase 3054.
In generale, al fine di semplificare il calcolo, in varie forme di attuazione, la fase 3058 può ipotizzare che tutti gli oggetti abbiano la stessa distanza dalla telecamera, semplificando così l’applicazione dei parametri (Tx,Ty,α,σ) a ciascun vettore di moto nell’insieme OF5.
In varie forme di attuazione, può quindi essere applicata una fase di post-filtraggio 3060 ai vettori compensati come moto MV’ nell’insieme OF6 fornito dalla fase 3058. Per esempio, in varie forme di attuazione, la fase 3060 può essere usata per rimuovere i vettori di moto rumorosi e fuori intervallo. Così, in varie forme di attuazione, possono essere effettuate le operazioni uguali a quelle della fase 3046, usando come ingresso i vettori con compensazione del moto MV’.
L’insieme finale OF7 di vettori compensati come moto è quindi fornito alla fase di clustering 3044. Specificamente, l’unità di elaborazione 30a è configurata per ottenere, nella fase 3044, dall’insieme di flusso ottico OF7 la BB List, che contiene gli oggetti in movimento identificati. Sostanzialmente, clustering si riferisce al fatto di raggruppare un insieme di informazioni in modo tale che le informazioni nello stesso gruppo (detto cluster) siano più simili le une alle altre rispetto a quelle in altri gruppi. Per esempio, nella presente domanda oggetti in movimento dovrebbero essere identificati nella scena usando soltanto dati di flusso ottico OF7.
Per esempio, vettori di moto MV’ appartengono apparentemente allo stesso oggetto se essi:
a) sono vicini spazialmente;
b) hanno una velocità simile, cioè una lunghezza simile; e
c) hanno un orientamento simile.
Per esempio, in varie forme di attuazione, due vettori di moto MV1 e MV2 in posizioni vettoriali P1 e P2 e con velocità vettoriali v1 e v2 sono considerati spazialmente vicini se:
SAD(P1,P2) < MPD (15) dove MPD rappresenta una data soglia, per es. scelta in funzione della risoluzione della telecamera e della precisione dei dati di flusso ottico.
Similmente, in varie forme di attuazione, si considera che due vettori di moto MV1 e MV2 abbiano una velocità simile se:
SAD(v1,v2) < MVD (16) dove MVD rappresenta una data soglia scelta di nuovo in funzione della risoluzione della telecamera e della precisione dei dati di flusso ottico.
Infine, in varie forme di attuazione, si considera che due vettori di moto MV1 e MV2 abbiano un orientamento simile se
ABS(β(V1) - β(V2)) < Mβ; (17) dove Mβ rappresenta una data soglia.
In varie forme di attuazione, la fase 3044 assegna i vettori di moto MV’ a differenti cluster/oggetti O in base almeno a due delle condizioni da a) a c) precedenti. Per esempio, in varie forme di attuazione, la fase 3044 assegna i vettori di moto a differenti cluster/oggetti O in base alle condizioni a) e b), e preferibilmente anche alla condizione c).
Per esempio, in varie forme di attuazione, la fase o il blocco 3044 può usare il procedimento di clustering descritto nella domanda di brevetto italiano IT102015000082886 o in G. Spampinato, A. Bruna, S. Curti e V. D’Alto, "Advanced Low Cost Clustering System", 6th International Conference on Image Processing Theory, Tools and Applications (IPTA), 2016, che sono incorporati qui tramite citazione.
Così, una volta che sono stati identificati vettori di moto simile, l’unità di elaborazione 30a può determinare nella fase 3044 un’area, per es. con la forma di un rettangolo, che racchiude i rispettivi vettori di moto, che rappresenta la casella di delimitazione associata a un dato oggetto. Infine, le caselle di delimitazione ottenute possono essere memorizzate nella BB List, che identifica così oggetti in movimento nella scena.
Così, in una o più delle forme di attuazione precedenti, le fasi di pre-filtraggio e/o post-filtraggio 3046 e 3060 opzionali sono usate per rimuovere i vettori di moto fuori intervallo, fuori frame e/o rumorosi (nell’insieme OF) o vettori di moto compensati come moto (nell’insieme OF6). La fase di RANSAC 3048 è usata per ottenere un insieme di vettori di moto con il consenso “migliore” (corrispondente all’insieme di valori plausibili OF2) e i vettori di moto rimanenti possono essere considerati come valori anomali (corrispondenti all’insieme di valori anomali OF3). L’insieme di valori plausibili OF2 è usato nella fase 3050 per stimare un modello di moto globale, che può comprendere parametri relativi alla traslazione/spostamento (Tx, Ty), alla rotazione (α) e allo zoom (σ). Per contro, un filtro di raffinamento può essere applicato opzionalmente nella fase 3052 all’insieme di valori anomali OF3, che permette di rimuovere/scartare vettori di moto che sono simili al rispettivo vettore compensato come moto. In varie forme di attuazione, nella fase 3054 può essere effettuato un filtraggio temporale al fine di conservare/reintrodurre vettori di moto all’interno di caselle di delimitazione calcolate precedenti. La fase di verifica 3056 permette di verificare se i vettori di moto rimanenti non sono presumibilmente relativi a oggetti in movimento, per es. perché i vettori di moto rimanenti sono pochi e/o la loro area è piccola. In varie forme di attuazione, i parametri del movimento globale possono essere applicati, in una fase 3058, ai vettori di moto rimanenti, ottenendo con ciò l’insieme finale compensato come moto, che può essere usato per identificare oggetti in movimento mediante una fase di clustering 3044, in cui a ciascun oggetto in movimento può essere associata una rispettiva casella di delimitazione.
La soluzione qui descritta è stata testata con differenti scenari e differenti telecamere a differenti risoluzioni, con lenti sia lineari sia fish-eye, ottenendo buoni risultati nei termini dell’identificazione degli oggetti in movimento. I test mostrano che la presente soluzione fornisce un sistema di rilevazione di IMO per MCMO molto affidabile e a basso costo, che fa uso soltanto di dati di flusso ottico di due frame consecutivi. Grazie alla sua semplicità, la presente soluzione può essere usata anche per applicazioni a bassa potenza. Inoltre, il sistema proposto è molto flessibile e può essere usato, per es. con altri procedimenti per la stima del moto nel modulo 302 o per il clustering nella fase 3044.
Naturalmente, fermi restando i principi di fondo dell’invenzione, i dettagli di costruzione e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto è stato descritto e illustrato qui, puramente a titolo di esempio, senza uscire con ciò dall’ambito della presente invenzione, come definito dalle rivendicazioni che seguono. Per esempio, invece di usare una SAD nelle equazioni precedenti, può essere usata un’altra metrica di distanza, come la distanza euclidea, ecc.

Claims (10)

  1. RIVENDICAZIONI 1. Un procedimento per rilevare uno o più oggetti in movimento (O) mediante una telecamera in movimento (10), comprendente le fasi di: - ricevere una sequenza di immagini (IMG) da detta telecamera in movimento (10); - elaborare (302) detta sequenza di immagini (IMG) al fine di generare un insieme di dati di flusso ottico (OF) comprendente una lista di vettori di moto che sono associati a rispettive caratteristiche in detta sequenza di immagini (IMG); - determinare (3048) parametri (Tx, Ty, α, σ) di un modello di moto globale in funzione dei vettori di moto in detto insieme di dati di flusso ottico (OF), e dividere detti vettori di moto in detto insieme di dati di flusso ottico (OF) in: - un insieme di valori plausibili (OF2) che comprende i vettori di moto a cui si applica il modello di moto globale, e - un insieme di valori anomali (OF3) che comprende i vettori di moto a cui non si applica il modello di moto globale; - determinare (3050) parametri raffinati (Tx, Ty, α, σ) di detto modello di moto globale in funzione di detti vettori di moto in detto insieme di valori plausibili (OF2); - ricevere una lista di caselle di delimitazione (BB List) determinata per un’immagine precedente in detta sequenza di immagini (IMG), detta lista di caselle di delimitazione (BB List) comprendendo una lista di caselle di delimitazione, ciascuna casella di delimitazione definendo la posizione e la dimensione di un rispettivo oggetto in movimento (O) in detta immagine precedente; - generare (3054) un insieme di dati di flusso ottico (OF5) filtrato temporalmente determinando i vettori di moto in detto insieme di dati di flusso ottico (OF) che hanno una posizione all’interno almeno di una di dette caselle di delimitazione, e assicurando che detti vettori di moto determinati siano inclusi in detto insieme di valori anomali (OF3); - calcolare (3058), per ciascun vettore di moto in detto insieme di dati di flusso ottico (OF5) filtrato temporalmente, un rispettivo vettore compensato come moto (OF7) in funzione di detti parametri raffinati (Tx, Ty, α, σ); e - raggruppare (3044) i vettori compensati come moto (OF7) in funzione della loro posizione e della loro lunghezza e/o del loro orientamento, e determinare una lista di caselle di delimitazione (BB List) per l’immagine corrente determinando, per ciascun gruppo di vettori di moto, una rispettiva casella di delimitazione.
  2. 2. Il procedimento secondo la Rivendicazione 1, in cui detti parametri (Tx, Ty, α, σ) di un modello di moto globale comprendono: - un movimento orizzontale (Tx) dell’immagine di sfondo dovuto al movimento della telecamera (10), - un movimento verticale (Ty) dell’immagine di sfondo dovuto al movimento della telecamera (10), - una rotazione (α) dell’immagine di sfondo dovuta al movimento della telecamera (10); e - uno zoom (σ) dell’immagine di sfondo dovuto al movimento della telecamera (10).
  3. 3. Il procedimento secondo la Rivendicazione 1 o la Rivendicazione 2, in cui detti parametri (Tx, Ty, α, σ) di detto modello di moto globale sono determinati effettuando (3048) un Random Sample Consensus, RANSAC.
  4. 4. Il procedimento secondo una qualsiasi delle rivendicazioni precedenti, comprendente di calcolare (3052), per ciascun vettore di moto in detto insieme di valori anomali (OF3), un rispettivo vettore compensato come moto in funzione di detti parametri raffinati (Tx, Ty, α, σ), e rimuovere vettori di moto da detto insieme di valori anomali (OF3) che sono simili al rispettivo vettore compensato come moto, determinando con ciò un insieme raffinato di dati di flusso ottico (OF4), e in cui detto insieme di dati di flusso ottico (OF5) filtrato temporalmente è generato (3054) assicurando che detti vettori di moto determinati siano inclusi in detto insieme raffinato di dati di flusso ottico (OF4).
  5. 5. Il procedimento secondo una qualsiasi delle rivendicazioni precedenti, comprendente di determinare (3056) un’area occupata da detti vettori di moto in detto insieme di dati di flusso ottico (OF) e un’area occupata da detti vettori di moto in detto insieme di dati di flusso ottico (OF5) filtrato temporalmente, e impostare come vuota detta lista di caselle di delimitazione (BB List) quando detta area occupata da detti vettori di moto in detto insieme di dati di flusso ottico (OF5) filtrato temporalmente è maggiore di una data percentuale dell’area occupata da detti vettori di moto in detto insieme di dati di flusso ottico (OF).
  6. 6. Il procedimento secondo la Rivendicazione 5, comprendente di determinare (3056) il numero di vettori di moto in detto insieme di dati di flusso ottico (OF) e il numero di vettori di moto in detto insieme di dati di flusso ottico (OF5) filtrato temporalmente, e impostare come vuota detta lista di caselle di delimitazione (BB List) quando il numero di vettori di moto in detto insieme di dati di flusso ottico (OF5) filtrato temporalmente è maggiore di una data percentuale del numero di vettori di moto in detto insieme di dati di flusso ottico (OF).
  7. 7. Il procedimento secondo una qualsiasi delle rivendicazioni precedenti, comprendente di pre-elaborare (3046) detti vettori di moto in detto insieme di dati di flusso ottico (OF) e/o post-elaborare (3060) detti vettori compensati come moto (OF7), in cui detto pre-elaborare (3046) e/o detto post-elaborare (3060) comprendono almeno uno tra: - rimuovere i vettori di moto fuori intervallo, - rimuovere i vettori di moto fuori frame, ed - eliminare i vettori di moto rumorosi.
  8. 8. Un sistema di elaborazione (30a) che è configurato per eseguire il procedimento secondo una qualsiasi delle rivendicazioni precedenti.
  9. 9. Un dispositivo (2) comprendente una telecamera (10) e un sistema di elaborazione (30a) secondo la Rivendicazione 8.
  10. 10. Prodotto informatico che può essere caricato nella memoria di almeno un processore e che comprende porzioni di codice software per implementare il procedimento secondo una qualsiasi delle Rivendicazioni da 1 a 7.
IT102019000001833A 2019-02-08 2019-02-08 Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico IT201900001833A1 (it)

Priority Applications (3)

Application Number Priority Date Filing Date Title
IT102019000001833A IT201900001833A1 (it) 2019-02-08 2019-02-08 Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico
US16/774,625 US10977804B2 (en) 2019-02-08 2020-01-28 Method of detecting moving objects via a moving camera, and related processing system, device and computer-program product
US17/220,475 US11593949B2 (en) 2019-02-08 2021-04-01 Method of detecting moving objects via a moving camera, and related processing system, device and computer-program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000001833A IT201900001833A1 (it) 2019-02-08 2019-02-08 Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico

Publications (1)

Publication Number Publication Date
IT201900001833A1 true IT201900001833A1 (it) 2020-08-08

Family

ID=66589666

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000001833A IT201900001833A1 (it) 2019-02-08 2019-02-08 Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico

Country Status (2)

Country Link
US (2) US10977804B2 (it)
IT (1) IT201900001833A1 (it)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875516B2 (en) 2020-12-28 2024-01-16 Waymo Llc Systems, apparatus, and methods for retrieving image data of image frames
US12229999B2 (en) * 2022-01-07 2025-02-18 Tyco Fire & Security Gmbh Systems and methods for sharing analytical resources in a camera network
US12284396B2 (en) * 2022-09-06 2025-04-22 Apple Inc. Systems and methods for motion compensated temporal filtering during image processing operations
CN118828207B (zh) * 2024-09-14 2024-11-29 四川国创新视超高清视频科技有限公司 一种图像防抖方法及防抖系统
CN119770021B (zh) * 2025-03-10 2025-06-27 南方科技大学 面向磁共振扫描的生理信号检测方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219146A1 (en) * 2002-05-23 2003-11-27 Jepson Allan D. Visual motion analysis method for detecting arbitrary numbers of moving objects in image sequences
US20110085049A1 (en) * 2009-10-14 2011-04-14 Zoran Corporation Method and apparatus for image stabilization
US20120127270A1 (en) * 2010-11-23 2012-05-24 Qualcomm Incorporated Depth estimation based on global motion
WO2015044518A1 (en) * 2013-09-29 2015-04-02 Nokia Technologies Oy Method and apparatus for video anti-shaking

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101183781B1 (ko) * 2009-12-22 2012-09-17 삼성전자주식회사 실시간 카메라 모션 추정을 이용한 물체 검출/추적 방법 및 단말
US9305362B1 (en) * 2014-02-28 2016-04-05 Xilinx, Inc. Image stabilization
US9860553B2 (en) * 2015-03-18 2018-01-02 Intel Corporation Local change detection in video
ITUB20159613A1 (it) 2015-12-14 2017-06-14 St Microelectronics Srl Procedimento e sistema di clustering, apparecchiatura e prodotto informatico corrispondenti

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219146A1 (en) * 2002-05-23 2003-11-27 Jepson Allan D. Visual motion analysis method for detecting arbitrary numbers of moving objects in image sequences
US20110085049A1 (en) * 2009-10-14 2011-04-14 Zoran Corporation Method and apparatus for image stabilization
US20120127270A1 (en) * 2010-11-23 2012-05-24 Qualcomm Incorporated Depth estimation based on global motion
WO2015044518A1 (en) * 2013-09-29 2015-04-02 Nokia Technologies Oy Method and apparatus for video anti-shaking

Also Published As

Publication number Publication date
US20210248757A1 (en) 2021-08-12
US10977804B2 (en) 2021-04-13
US11593949B2 (en) 2023-02-28
US20200258240A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
IT201900001833A1 (it) Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico
US11341750B2 (en) Quasi-parametric optical flow estimation
US9681150B2 (en) Optical flow determination using pyramidal block matching
CN105718888B (zh) 障碍物预警方法和障碍物预警装置
CN110493488B (zh) 视频稳像方法、视频稳像装置和计算机可读存储介质
Walha et al. Video stabilization with moving object detecting and tracking for aerial video surveillance
WO2020104423A1 (en) Method and apparatus for data fusion of lidar data and image data
IT201600094858A1 (it) Procedimento per un cross traffic alert avanzato a basso costo, corrispondente sistema di elaborazione, sistema per cross traffic alert e veicolo
KR20150144728A (ko) 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법
Giering et al. Multi-modal sensor registration for vehicle perception via deep neural networks
KR20150144727A (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2014002692A1 (ja) ステレオカメラ
JP2018507477A (ja) イメージに対する初期スーパーピクセルラベルマップの生成方法及び装置
JP2014170368A (ja) 画像処理装置、方法及びプログラム並びに移動体
JP2008046903A (ja) 対象個数検出装置および対象個数検出方法
Wong et al. A smart moving vehicle detection system using motion vectors and generic line features
Funde et al. Object detection and tracking approaches for video surveillance over camera network
Rao et al. Frame difference and Kalman filter techniques for detection of moving vehicles in video surveillance
CN106886790B (zh) 聚类方法和系统、对应的装置和计算机程序产品
TW201523516A (zh) 移動攝影機之畫面穩定方法
Tasson et al. FPGA-based pedestrian detection under strong distortions
JP4918615B2 (ja) 対象個数検出装置および対象個数検出方法
JP6886136B2 (ja) 位置合わせ装置、位置合わせ方法及び位置合わせ用コンピュータプログラム
Al-Harasis et al. On the design and implementation of a dual fisheye camera-based surveillance vision system
Kumar et al. A variational approach for optical flow estimation in infra-red or thermal images