# Detección

Ahora aprenderemos cómo detectar la posición de las pelotas de golf.

Usaremos dos bloques de función, **Show Image** y **Find Object**, para detectar la posición de la pelota de golf y ver el resultado.

Ahora:

1. Ve a la barra de bloques,
2. Bajo **Detections/Shapes**, entra en la sección **Detectors** y arrastra y suelta el bloque **Find Object** dentro del escenario:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-82e7b55abc017f022a5952b857e52a7e9bf0e2f1%2Fimage-det-1.png?alt=media)

Igual que antes:

1. Ve a la barra de bloques,
2. Bajo **Input/Output**, entra en la sección **Outputs/Exports** y arrastra y suelta el bloque **Show Image** dentro del escenario:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-0b6f8f823d408e10908e7bcf3b91e6c30a3e2a07%2Fimage-det.png?alt=media)

Por último, conéctalos tal como se muestra a continuación:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-c1bd23b761af62c4671e5e3bba179d85d812489b%2Fimage-det-2.png?alt=media)

Haz clic en ![run step](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-a3f52ba493c19aeed3ed51442d5a3a9713df61ff%2Fplay_step.png?alt=media) *Run Step* para ejecutar el escenario un paso y deberías ver la detección en un recuadro rojo en el bloque **Show Image**:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-c7e32bf491995b24c125d3ffd3cced634de7762e%2Fimage-det-3.png?alt=media)

¡Ahora estamos listos! Adelante, haz clic en ![run](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-336c18484aa93d35401e4cf66bff9e99257fee93%2Fplay.png?alt=media) *Run* y observa durante 10 segundos cómo funciona la detección.

💬 Parece que la detección no funciona correctamente. Esto se debe a que la referencia de **Image ROI Select** cambia a medida que la pelota se mueve, y nuestra referencia se convierte en el césped.

Para resolver este problema, usaremos los bloques **Image Memory** y **Logic Input** como se muestra a continuación:

1. Ve a la barra de bloques,
2. Bajo **Image Transformers**, entra en la sección **Analysis** y arrastra y suelta el bloque **Image Memory** dentro del escenario:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-311883ec708cc21eb5003b847af553507ab3e3d0%2Fimage-det-memory.png?alt=media)

De nuevo:

1. Ve a la barra de bloques,
2. Bajo **Input/Output**, entra en la sección **Data Inputs** y arrastra y suelta el bloque **Logic Input** dentro del escenario:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-fa9fabd7a65b1af440034d252aa94e57bc92f9f0%2Fimage-det-logic.png?alt=media)

Nuestro escenario está un poco cargado. Reorganicemos los bloques con el ratón. Hay dos métodos:

1. Hacer clic en un bloque y arrastrarlo:

   ![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-4c374e057396b21afeefe38675a542c206e87ff6%2Fvideo-single-block-move.webp?alt=media)
2. Hacer clic en un espacio vacío, seleccionar varios bloques y arrastrarlos:

   ![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-c760a3e5ca7c40168cfd4daf3901ee1638c366a8%2Fvideo-multiple-block-move.webp?alt=media)

Ahora, conecta esos dos bloques tal como se muestra a continuación:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-6af9b5da7e3e5c3843e56023be61c8dc9ffb10b8%2Fimage-det-memory2.png?alt=media)

El bloque **Image Memory** memorizará el frame que necesitamos y lo congelará. De este modo, nuestra referencia nunca cambiará.

Para congelar la imagen, ejecuta el escenario un paso, ve al bloque **Logic Input** y configúralo en **True**.

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-3e840cab9e11495b83e0a0e65e00e82abab9e08c%2Fvideo-image-memory-save.webp?alt=media)

Por último, ve al bloque **Find Object** y ajusta el *Match Threshold* a 100% tal como se muestra a continuación:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-e9c1faacaf06c868c73ca7067b3fc106052f8157%2Fimage-find-object-threshold.png?alt=media)

¡Estamos listos para detectar la pelota de golf! Pulsa *Run* y observa la detección en acción:

![](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-9d391ca21d42434743e68bf12ddca73c259eb55e%2Fvideo-run-detection.webp?alt=media)

¡Muy bien! Estamos por terminar nuestro primer proyecto. Pasa al siguiente proyecto y finalicemos la construcción de nuestro primer escenario.
