Immagine integrale

Esempio di immagine integrale (2.) calcolata a partire dall'immagine in input (1.). Ogni pixel colorato nell'immagine integrale contiene la somma dell'intensità nel rettangolo di colore corrispondente nell'immagine di partenza.

Un'immagine integrale è una struttura dati per il calcolo rapido della somma dei valori in un sottoinsieme rettangolare di una griglia. Storicamente, il concetto era noto nel calcolo delle distribuzioni di probabilità multidimensionali a partire dalla funzione di ripartizione.[1] L'idea è stata introdotta in computer grafica nel 1984 da Frank Crow con applicazioni legate alle mipmap, ed ha assunto il nome di immagine integrale e ottenuto ampia diffusione in visione artificiale a seguito dell'uso nell'algoritmo di Viola-Jones nel 2001.

Descrizione

Il valore dell'immagine integrale in un punto ( x , y ) {\displaystyle (x,y)} è dato dalla somma di tutti i punti nel rettangolo che va dall'origine fino a ( x , y ) {\displaystyle (x,y)} [2][3]

I ( x , y ) = x x y y i ( x , y ) {\displaystyle I(x,y)=\sum _{\begin{smallmatrix}x'\leq x\\y'\leq y\end{smallmatrix}}i(x',y')}

dove i ( x , y ) {\displaystyle i(x,y)} è l'intensità dell'immagine di partenza in ( x , y ) {\displaystyle (x,y)} . L'immagine integrale può essere calcolata efficacemente in un singolo passo, poiché il valore può essere riscritto come[4]

I ( x , y ) = i ( x , y ) + I ( x , y 1 ) + I ( x 1 , y ) I ( x 1 , y 1 ) {\displaystyle I(x,y)=i(x,y)+I(x,y-1)+I(x-1,y)-I(x-1,y-1)}

Usando l'immagine integrale è possibile calcolare la somma dell'intensità in una regione rettangolare allineata con gli assi coordinati, con vertici in ( x 0 , y 0 ) {\displaystyle (x_{0},y_{0})} e ( x 1 , y 1 ) {\displaystyle (x_{1},y_{1})} , usando solo quattro accessi in memoria e tre operazioni, indipendentemente dalla dimensione della regione:

x 0 < x x 1 y 0 < y y 1 i ( x , y ) = I ( x 1 , y 1 ) + I ( x 0 , y 0 ) I ( x 1 , y 0 ) I ( x 0 , y 1 ) {\displaystyle \sum _{\begin{smallmatrix}x_{0}<x\leq x_{1}\\y_{0}<y\leq y_{1}\end{smallmatrix}}i(x,y)=I(x_{1},y_{1})+I(x_{0},y_{0})-I(x_{1},y_{0})-I(x_{0},y_{1})}

Estensioni

Il metodo può essere naturalmente esteso a domini continui[1] e a immagini multi-dimensionali.[5] Dato un iper-rettangolo in d {\displaystyle d} dimensioni, con vertici in x p , p { 0 , 1 } d {\displaystyle x_{p},\;p\in \{0,1\}^{d}} , la somma dell'intensità nel rettangolo è data da

p { 0 , 1 } d ( 1 ) d p 1 I ( x p ) {\displaystyle \sum _{p\in \{0,1\}^{d}}(-1)^{d-\|p\|_{1}}I(x_{p})}

Il metodo può anche essere esteso per calcolare la varianza. Date due immagini integrali definite come

I ( x , y ) = x x y y i ( x , y ) {\displaystyle I(x,y)=\sum _{\begin{smallmatrix}x'\leq x\\y'\leq y\end{smallmatrix}}i(x',y')}
I 2 ( x , y ) = x x y y i 2 ( x , y ) {\displaystyle I^{2}(x,y)=\sum _{\begin{smallmatrix}x'\leq x\\y'\leq y\end{smallmatrix}}i^{2}(x',y')}

la varianza è data da

Var ( X ) = 1 n i = 1 n ( x i μ ) 2 = Var ( X ) = 1 n i = 1 n ( x i 2 2 μ x i + μ 2 ) = 1 n ( i = 1 n x i 2 2 i = 1 n μ x i + i = 1 n μ 2 ) = 1 n ( i = 1 n x i 2 2 i = 1 n μ x i + n μ 2 ) = 1 n ( i = 1 n x i 2 2 μ i = 1 n x i + n μ 2 ) = 1 n ( S 2 2 S 1 n S 1 + n ( S 1 n ) 2 ) = 1 n ( S 2 S 1 2 n ) {\displaystyle {\begin{aligned}\operatorname {Var} (X)&={\frac {1}{n}}\sum _{i=1}^{n}(x_{i}-\mu )^{2}\\&=\operatorname {Var} (X)={\frac {1}{n}}\sum _{i=1}^{n}(x_{i}^{2}-2\mu x_{i}+\mu ^{2})\\&={\frac {1}{n}}\left(\sum _{i=1}^{n}x_{i}^{2}-2\sum _{i=1}^{n}\mu x_{i}+\sum _{i=1}^{n}\mu ^{2}\right)\\&={\frac {1}{n}}\left(\sum _{i=1}^{n}x_{i}^{2}-2\sum _{i=1}^{n}\mu x_{i}+n\mu ^{2}\right)\\&={\frac {1}{n}}\left(\sum _{i=1}^{n}x_{i}^{2}-2\mu \sum _{i=1}^{n}x_{i}+n\mu ^{2}\right)\\&={\frac {1}{n}}\left(S_{2}-2{\frac {S_{1}}{n}}S_{1}+n\left({\frac {S_{1}}{n}}\right)^{2}\right)\\&={\frac {1}{n}}\left(S_{2}-{\frac {S_{1}^{2}}{n}}\right)\end{aligned}}}

dove S 1 {\displaystyle S_{1}} e S 2 {\displaystyle S_{2}} sono le rispettive somme dei rettangoli in I {\displaystyle I} e I 2 {\displaystyle I^{2}} , μ = S 1 n {\displaystyle \mu ={\frac {S_{1}}{n}}} e S 2 = i = 1 n ( x i 2 ) {\displaystyle S_{2}=\sum _{i=1}^{n}(x_{i}^{2})} .[6]

Similarmente, immagini integrali di terzo e quarto grado possono essere usate per calcolare momenti di ordine superiore, come indice di simmetria e curtosi.[6] Una delle principali limitazioni all'aumentare del grado è costituita dall'overflow aritmetico.[7]

Note

  1. ^ a b Amir Finkelstein e neeratsharma, Double Integrals By Summing Values Of Cumulative Distribution Function, in Wolfram Demonstration Project, 2010.
  2. ^ Franklin Crow, Summed-area tables for texture mapping (PDF), in SIGGRAPH '84: Proceedings of the 11th annual conference on Computer graphics and interactive techniques, 1984, pp. 207–212. URL consultato il 3 novembre 2019 (archiviato dall'url originale il 4 giugno 2011).
  3. ^ Paul Viola e Jones, Michael, Robust Real-time Object Detection (PDF), in International Journal of Computer Vision, 2002.
  4. ^ BADGERATI, Computer Vision – The Integral Image, su computersciencesource.wordpress.com, 3 settembre 2010. URL consultato il 13 febbraio 2017.
  5. ^ Ernesto Tapia, A note on the computation of high-dimensional integral images, in Pattern Recognition Letters, vol. 32, n. 2, gennaio 2011, pp. 197–201, DOI:10.1016/j.patrec.2010.10.007.
  6. ^ a b Thien Phan, Sohum Sohoni, Eric C. Larson e Damon M. Chandler, Performance-analysis-based acceleration of image quality assessment (PDF), in 2012 IEEE Southwest Symposium on Image Analysis and Interpretation, 22 aprile 2012, pp. 81–84, DOI:10.1109/SSIAI.2012.6202458, ISBN 978-1-4673-1830-3. URL consultato il 3 novembre 2019 (archiviato dall'url originale il 24 maggio 2014).
  7. ^ Faisal Shafait, Daniel Keysers e Thomas M. Breuel, Efficient implementation of local adaptive thresholding techniques using integral images (PDF), in Electronic Imaging, Document Recognition and Retrieval XV, vol. 6815, gennaio 2008, pp. 681510–681510–6, DOI:10.1117/12.767755. URL consultato il 3 novembre 2019 (archiviato dall'url originale il 15 dicembre 2014).
  Portale Informatica
  Portale Matematica
  Portale Statistica