La información de la cámara
Las cámara son sensores especializados, ya que cuentan con millones de elementos sensibles a la luz y los colores. En visión artificial normalmente se reduce la resolución de la cámara para poder procesar más imágenes por segundo.
- Un stream o transmisión de video en tiene más de dos millones de pixeles.
- El visión artificial se reduce a o incluso hasta los :
Teniendo en cuenta que son canales de color, las cámaras ofrecen mucha información del entorno y son excelentes sensores exteroceptivos.
Ejemplo
Sección titulada «Ejemplo»A modo de ejemplo vamos a tomar solo la información de una fila de la matrix de la imagen, colapsando los canales de color a una escala de grises y la vamos a graficar para ver la curva que genera:
Preguntas
Sección titulada «Preguntas»- ¿ Cuál es la escala de la gráfica en y ?
- ¿ Cuál es el rango ?
- ¿ Porqué vibra ?
- ¿ Qué significa el punto negro ?
Paso a Paso
Sección titulada «Paso a Paso»Paso 1 — Preparar el entorno
-
Instale las librerías que faltan:
Ventana de terminal pip install matplotlib scipy -
Pegue una tira de cinta aislante negra, de unos 2 cm de ancho, sobre una superficie clara (una hoja blanca o el piso del laboratorio).
-
Ubique el robot con el celular de la práctica 1 de manera que la cinta cruce la imagen de arriba abajo.
Paso 2 — Ejecutar C03
- Descargue C03-plot-grayscale-horizontal-center-line.py, llene
IP,PUERTOeIPHONEal inicio, igual que en C01 y, si en la práctica 1 tuvo que cambiar la rotación, cámbiela también aquí. - Ejecútelo. Se abren dos ventanas:
- Camara: el video con una línea roja horizontal en la fila central y un punto sobre ella.
- Intensidad de la línea horizontal central: la gráfica de esa fila, píxel por píxel, en escala de grises.
- Presione q en la ventana de video para salir.
Paso 3 — Observar la curva
- Con el robot quieto, observe la gráfica unos segundos sin tocar nada.
- Ubique en la gráfica el valle que produce la cinta y compárelo con el resto de la fila.
- Anote los valores mínimo y máximo aproximados de la curva y en qué columna está el valle.
Paso 4 — Hacer experimentos
Cambie una cosa a la vez y anote qué le pasa a la curva y al punto:
- Mueva la cinta (o el robot) hacia la izquierda y hacia la derecha.
- Tape parcialmente la luz del techo con la mano o una hoja, o encienda la linterna de otro celular cerca.
- Quite la cinta de la imagen.
- Ponga dos tiras de cinta separadas en la imagen.
Paso 5 — Leer el código que encuentra la línea
Ubique en C03 estas líneas y explique con sus palabras qué hace cada una:
horizontal_line = gray[height // 2, :]umbral = horizontal_line.mean() * 0.7pesos = np.maximum(0, umbral - horizontal_line)centro_x = center_of_mass(pesos)[0]centro_x = centro_x if not np.isnan(centro_x) else width // 2Use lo que observó en el paso 4 para relacionar cada experimento con estas líneas: ¿por qué el umbral se calcula con el promedio de la fila y no es un número fijo? ¿Qué pasa cuando no hay ningún píxel por debajo del umbral?
Paso 6 — Responder las preguntas
Con sus anotaciones de los pasos 3 a 5, responda las preguntas de esta práctica. Para la de la vibración, recuerde que el robot y la cinta estaban quietos.