Top Banner
Curso de Visión Artificial con MIL 1 4.- Análisis de blobs 4.- Análisis de Blobs • Introducción Pasos para realizar el análisis de blobs • Parámetros • Características – Tamaño – Forma – Localización • Reconstrucción Aplicación simple
40

4.- Análisis de Blobs

Jan 23, 2016

Download

Documents

zeno

4.- Análisis de Blobs. Introducción Pasos para realizar el análisis de blobs Parámetros Características Tamaño Forma Localización Reconstrucción Aplicación simple. Introducción al análisis de blobs. Blob. Región conectada de pixels (objeto). Caracterísica:. fondo (background). blob - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

1

4.-

Anális

is d

e b

lob

s

4.- Análisis de Blobs

• Introducción• Pasos para realizar el análisis de

blobs• Parámetros• Características

– Tamaño– Forma– Localización

• Reconstrucción• Aplicación simple

Page 2: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

2

4.-

Anális

is d

e b

lob

s

Introducción al análisis de blobs

BlobRegión conectada de pixels (objeto)

fondo(background)

blob(foreground)

Información:

El análisis de blobs nos permite saber lascaracterísticas de los objetos de interés, y eliminar objetos no deseados.

Caracterísica:

Page 3: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

3

4.-

Anális

is d

e b

lob

s

Análisis de blobs y MIL

La librería MIL contiene un módulo de análisis de blobs que:

• Contiene un elemento de control del análisis de blobs: BlobResult

• Permite la extracción de gran número de características, utilizando el elemento: Feature List

El módulo de análisis de blobs identifica cada blob de forma independiente, y puede trabajar con buffers de 1, 8 y 16 bits.

El análisis se basa en la realización de una secuencia determinada de pasos.

Page 4: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

4

4.-

Anális

is d

e b

lob

s

Pasos para realizar el análisis de blobs

1. Adquisición (lectura) de la imagen. [Prep.]

2. Binarización. [Prep.]

3. Crear lista de resultados BlobResult

4. Establecer los parámetros del análisis.

• MblobAllocResult ()

MIL_ID SystemId Id. del sistema

MIL_ID* BlobResIdPtr Lista de resultados

• MblobControl ()

MIL_ID BlobResId Id. de la lista de resultados

long ProcMode Modo de procesamiento

double Value Valor asociado

Page 5: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

5

4.-

Anális

is d

e b

lob

s

Pasos para realizar el análisis de blobs

5. Crear la lista de características, FeatureList

6. Selección de características

7. Cálcular resultados

• MblobSelectFeature ()

MIL_ID FeatureListId Id. de la lista de carac.

long Feature Característica seleccionada

• MblobCalculate ()

MIL_ID BlobIdentImageId Imagen a analizar

MIL_ID GrayImageId Imagen a analizar (grises)

MIL_ID FeatureListId Id. de la lista de carac.

MIL_ID BlobResultId Id. de la lista de resultados

• MblobAllocFeatureList ()

MIL_ID SystemId Id. del sistema

MIL_ID* FeatureListIdPtr Lista de características

Page 6: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

6

4.-

Anális

is d

e b

lob

s

Pasos para realizar el análisis de blobs

8. Seleccionar blobs según características

9. Obtener resultados

• MblobGetNumber ()

MIL_ID BlobResId Id. de la lista de resultados

long* VarPtr Variable de usuario

• MblobSelect ()

MIL_ID BlobResId Id. de la lista de resultados

long Operation Operación (incluir, excluir,...)

long Feature Característica utilizada

long Condition Condición para la selección

double CondLow Valor bajo para la condición

double CondHigh Valor alto para la condiciónObtener número de blobs (seleccionados)

• MblobSelectMoment(), MblobSelectFeret().

Page 7: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

7

4.-

Anális

is d

e b

lob

s

Pasos para realizar el análisis de blobs

• MblobGetResult ()

MIL_ID BlobResId Id. de la lista de resultados

long Feature Característica a recuperar

void* TargetArrayPtr Ap. a una lista de carac.

Obtener valores de características (seleccionados)

• MblobGetLabel ()

MIL_ID BlobResId Id. de la lista de resultados

long XPos Coordenada X del blob

long YPos Coordenada Y del blob

void* LabelVarPtr Variable de usuario

Obtener la etiqueta de 1 blob

9. Obtener resultados (continuación...)

Page 8: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

8

4.-

Anális

is d

e b

lob

s

Pasos para realizar el análisis de blobs

• MblobGetResultSingle ()

MIL_ID BlobResId Id. de la lista de resultados

long LabelVal Etiqueta del blob

long Feature Característica a recuperar

void* TargetArrayPtr Ap. a una lista de carac.

Obtener valores de características de 1 blob

9. Obtener resultados (continuación...)

• MblobGetRuns ()

MIL_ID BlobResId Id. de la lista de resultados

long LabelVal Etiqueta del blob

long ArrayType Tipo de datos del array de runs

void* RunXPtr Lista de coordenadas X

void* RunYPtr Lista de coordenadas Y

void* RunLengthPtr Lista de tamaño de cada run

Obtener la codificación del recorrido de 1 blob

Page 9: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

9

4.-

Anális

is d

e b

lob

s

Ejemplo

// Imagen: bolts.mim // Objetivo: determinar el número de objetos de la imagen y marcar// su centro de gravedad

// Crear lista de resultados y lista de característicasMblobAllocResult(MilSystem, &BlobResult); MblobAllocFeatureList(MilSystem, &FeatureList); // Seleccionar característicaMblobSelectFeature(FeatureList, M_AREA); MblobCalculate(BinImage, M_NULL, FeatureList, BlobResult); // Excluir blobs pequeñosMblobSelect(BlobResult, M_EXCLUDE, M_AREA, M_LESS_OR_EQUAL, MIN_BLOB_AREA, M_NULL); // Leer número de blobsMblobGetNumber(BlobResult, &TotalBlobs);

// Seleccionar centro de gravedad y cálcular nuevas característicasMblobSelectFeature(FeatureList, M_CENTER_OF_GRAVITY); MblobCalculate(BinImage, M_NULL, FeatureList, BlobResult);

MblobGetResult(BlobResult, M_CENTER_OF_GRAVITY_X+ M_TYPE_LONG, CogX);

MblobGetResult(BlobResult, M_CENTER_OF_GRAVITY_Y+ M_TYPE_LONG, CogY);

// Liberar elementosMblobFree(BlobResult); MblobFree(FeatureList);

Page 10: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

10

4.-

Anális

is d

e b

lob

s

Parámetros del análisis de blobs

Para la correcta interpretación de la definiciónde blob han de establecerse un conjunto deparámetros con la función MblobControl.Modo de procesamiento Valor

M_BLOB_IDENTIFICATION M_INDIVIDUALM_WHOLE_IMAGEM_LABELLED

M_LATTICE M_8_CONNECTEDM_4_CONNECTED

M_PIXEL_ASPECT_RATIO Value (1.0)M_NUMBER_OF_FERETS ValueM_FOREGROUND_VALUE M_NONZERO

M_ZEROM_IDENTIFIER_TYPE M_GRAYSCALE

M_BINARYM_SAVE_RUNS M_ENABLE

M_DISABLE

Page 11: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

11

4.-

Anális

is d

e b

lob

s

Parámetros del análisis de blobs

La Conectividad define el vecindario de 1 pixel,y por tanto, un blob.

Conectividad a 4M_4_CONNECTED

Conectividad a 8M_8_CONNECTED

1 blob (c8)

2 blobs (c4)

Page 12: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

12

4.-

Anális

is d

e b

lob

s

Parámetros del análisis de blobs

El pixel aspect ratio se utiliza para realizar medidas precisas.

Podemos ajustar la imagen con MimResize()o modificar el pixel aspect ratio.

La manera de conocer el pixel aspect ratiodel dispositivo de adquisición es:

• Adquirir una imagen de un círculo.

• Extraer las caracteísticas M_FERET_YM_FERET_X, con par=1.0

pixel de ancho

pixel de alto ratioaspect pixel

M_FERET_X

M_FERET_Y ratioaspect pixel

Page 13: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

13

4.-

Anális

is d

e b

lob

s

Características

El módulo de análisis de blobs de las MIL, nos permite extraer las siguientes características:

• Área y perímetro.

• Dimensiones.

• Forma.

• Localización.

• Momentos.

• Estadísticas.

Para ello debemos seleccionar la caracterís-tica a extraer con la función:

MblobSelectFeature()

Page 14: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

14

4.-

Anális

is d

e b

lob

s

Unidad de medida: el pixel

Cada pixel de una imagen representa una medida real que puede estar en cualquierunidad (mm, cm, ...).

Sin embargo, en una imagen, sólo tenemosuna unidad de medida: el pixel.

Convención:

P

1

1

11

Las medidas que realicemos sobre la imagenlas expresaremos por tanto en pixels.

Un proceso posterior (calibración) sería sabera lo que equivale un pixel en el “mundo”.

Page 15: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

15

4.-

Anális

is d

e b

lob

s

Área y Perímetro

El área de un blob es el número de pixelsque pertenecen al blob.

Mil M_AREA

El perímetro es el número de “caras de pixel”a lo largo del contorno del blob (incluído losagujeros). La distancia de los pixels endiagonal se toman como 1.414.

Mil M_PERIMETER

1

1

1

1

1 1 1 1

1.414

1.414

1.414

Área = 10

Perímetro = 14.2

1

1

Page 16: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

16

4.-

Anális

is d

e b

lob

s

Dimensiones

Además del área y el perímetro, es necesarioencontrar las dimensiones de los blobs.

Debido a que los blobs normalmente tienenformas irregulares, se utilizan como medidasde la dimensión los diámetros de Feret.

Un diámetro de Feret es el tamaño del bloben una dirección determinada:

Page 17: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

17

4.-

Anális

is d

e b

lob

s

= 0o = 22,5o

= 45o = 67,5o

F=5,93

F=6,09

F=6,15

F=5,45

M_FERET_X

Page 18: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

18

4.-

Anális

is d

e b

lob

s

= 90o = 112,5o

= 135o = 157,5o

F=3,99

F=4,27

F=3,35

F=5.22

M_FERET_Y

Page 19: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

19

4.-

Anális

is d

e b

lob

s

M_FERET_X (0o)5,93M_FERET_Y (90o)3,99M_FERET_MAX_DIAMETER6,15M_FERET_MIN_DIAMETER3,35M_FERET_MEAN_DIAMETER5,05M_FERET_MAX_ANGLE22,5o

M_FERET_MIN_ ANGLE122,5o

M_FERET_ELONGATION5,05/3,35=1.54

Page 20: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

20

4.-

Anális

is d

e b

lob

s

2.2 mm

2.2 mm

Page 21: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

21

4.-

Anális

is d

e b

lob

sBona

Que valores han de tener M_FERET_MAX_DIAMETER M_FERET_MIN_DIAMETERPara dar la pieza como correcta?

Page 22: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

22

4.-

Anális

is d

e b

lob

s

Diámetros de Feret

Para calcular los diámetros de Feret con lasMIL:• MblobSelectFeature ()

MIL_ID FeatureListId Id. de la lista de carac.

long Feature Característica seleccionada

M_FERET_X

M_FERET_Y

También es posible calcular los diámetrosmáximo, mínimo y medio:

M_FERET_MAX_DIAMETERM_FERET_MIN_DIAMETERM_FERET_MEAN_DIAMETER

Page 23: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

23

4.-

Anális

is d

e b

lob

s

Diámetros de Feret (II)

Para saber en qué ángulos ha encontrado eldiámetro máximo y mínimo:

Mil M_FERET_MAX_ANGLEM_FERET_MIN_ ANGLE

Por último, como carectirística de forma delobjeto, podemos conocer la relación diámetro_max/ diámetro_ min (elongación):

Mil M_FERET_ELONGATION

Aplicación: Cálculo de la orientación y las medidas del objeto de la figura “bellut3.tif” (Aplicar corrección del ángulo).

Page 24: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

24

4.-

Anális

is d

e b

lob

s

Diámetros de Feret (III)

Para calcular los diámetros de Feret para un ángulo determinado con lasMIL:• MblobSelectFeret() MIL_ID Feature List double Angle

Esto añade

M_GENERAL_FERET

a la lista de características

Para realizar la lectura de este valor lo haremos mediante

MblobGetResult()

Page 25: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

25

4.-

Anális

is d

e b

lob

s

Diámetros de Feret (IV)

Para cambiar el numero de ángulos para calcular los diámetros utilizar MblobControl.

Modo de procesamiento Valor

M_NUMBER_OF_FERETS Value

180o /Value

Page 26: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

26

4.-

Anális

is d

e b

lob

s

Forma

Una región es convexa cuando podemos conectar cualquier pareja de pixels con una línea recta y esta queda completamente contenida dentro de la región:

Podemos realizar medidas de la convexidadde un blob basándonos en el perímetro convexo:

Page 27: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

27

4.-

Anális

is d

e b

lob

s

Forma (II)

La medida que se utiliza para medir la convexidad de una forma es: Roughness

Mil M_CONVEX_PERIMETER

Cálculo del perímetro convexo:

Mil M_ROUGHNESS

convexo perímetro

perímetro roughness

Otra medida util de forma es: Compactness

Mil M_COMPACTNESS

A4

p scompactnes

2

Page 28: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

28

4.-

Anális

is d

e b

lob

s

Localización

Una característica importante es conocerla localización del blob en la imagen:

Mil M_BOXM_CONTACT_BOXM_CENTER_OF_GRAVITY

Añade todos

Page 29: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

29

4.-

Anális

is d

e b

lob

s

Momentos

Los momentos nos dan información delocalización y de forma.

Su momento geométrico de orden p + q se define como:

Número de momentos de orden p + q: p + q + 1

Número total de momentos hasta orden p + q: (p + q + 1)(p + q + 2)=2

),(m n

qp, yxfyxm qp

Page 30: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

30

4.-

Anális

is d

e b

lob

s

Momentos de Orden 0 y 1

Los momentos de orden 0 y 1 tienen una interpretación intuitivamente clara. Si tenemos una imagen binaria, sólo sumamos los píxeles negros. Entonces:

Nyxfm ),(1m n

0,0

yNmyxfym /);,( 0,1m n

0,1

xNmyxfxm / );,( 1,0m n

1,0

En general:

m0,0 es la “masa” (de gris) de la imagen

m01/m00; m10/m00 son las coordenadas

de su “centro de masa”

Page 31: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

31

4.-

Anális

is d

e b

lob

s

Momentos Centrales

),(m n

qp, yxfyyxxqp

Los Momentos Centrales de una imagen son sus Momentos Geométricos calculados tomando como origen de coordenadas su centro de masa:

PROPIEDADES:

m00 = N: masa o número de píxeles negros

m10 =m01 = 0: centro de masa en el origen (0; 0)

Mpq, p,q = 0; 1; 2; : invariantes a la traslación,

Page 32: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

32

4.-

Anális

is d

e b

lob

s

Momentos Centrales de Orden 2

Los momentos de orden p + q = 2 determinan la orientación del eje de mínima inercia.

Ejemplo

Page 33: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

33

4.-

Anális

is d

e b

lob

s

Propiedades de los pq de orden 2

0,22,0

1,11- *2 tan

Los valores de m20, m11, m02 definen un área elíptica que se “ajusta” lo mejor posible al blob. Los ejes de esta elipse caracterizan la “orientación” q:

M _AXIS _PRINCIPAL_ANGLE

M _AXIS _SECONDARY_ANGLE

(perpendicular)

Page 34: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

34

4.-

Anális

is d

e b

lob

s

Page 35: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

35

4.-

Anális

is d

e b

lob

s

Ejemplos

Universidad Politécnica de Valencia

Enrique Vidal Ruiz

Page 36: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

36

4.-

Anális

is d

e b

lob

s

Momentos (MIL)

M _AXIS _PRINCIPAL_ANGLEM _AXIS _SECONDARY_ANGLEM_MOMENT_X0_Y1M_MOMENT_X1_Y0M_MOMENT_X1_Y1M_MOMENT_X0_Y2M_MOMENT_X2_Y0M_MOMENT_CENTRAL_X0_Y2M_MOMENT_CENTRAL_X2_Y0M_MOMENT_CENTRAL_X1_Y1M_GENERAL_MOMENT +

• MblobSelectMoment ()

MIL_ID FeatureListId Id. de la lista de carac.

long MomType Tipo de momento (Normal/ Central)

long XMomOrder Orden del momento en X

long YMomOrder Orden del momento en Y

En el módulo de blobs podemos calcular:

Page 37: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

37

4.-

Anális

is d

e b

lob

s

Estadísticas

Mil M_SUM_PIXEL

Suma de los valores de los pixels:

Mil M_MAX_PIXELM_MIN_PIXEL

Valor máximo y mínimo:

Mil M_MEAN_PIXEL

Media:

Mil M_SIGMA_PIXEL

Sigma:

Page 38: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

38

4.-

Anális

is d

e b

lob

s

Reconstrucción

Por último, es importante conocer, que podemos utilizar el análisis de blobs paraobtener una nueva imagen:

Ejemplos:

• Etiquetar los blobs

• Reconstruir los blobs a partir de una semilla.

• Eliminar los blobs que tocan los extremos de la imagen.

• Rellenar los agujeros de los blobs.

• Extraer los agujeros de los blobs.

Page 39: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

39

4.-

Anális

is d

e b

lob

s

Reconstrucción MIL

• MblobLabel ()

MIL_ID BlobResId Lista de resultados

MIL_ID DestImageBufId Imagen destino

long Mode Modo de escritura.

• MblobReconstruct ()

MIL_ID SourceImageBufId Imagen de entrada

MIL_ID SeedImageBufId Imagen semilla

MIL_ID DestImageBufId Imagen destino

long Operation Tipo de operación

long ProcMode Modo de operación

• MblobFill ()

MIL_ID BlobResId Lista de resultados

MIL_ID DestImageBufId Imagen destino

long Criteriun Criterio de rellenado

long Value Valor de rellenado

Page 40: 4.- Análisis de Blobs

Curso de Visión Artificial con MIL

40

4.-

Anális

is d

e b

lob

s

Ejemplo: Histeresis