domingo, 10 de marzo de 2013

Visión Estéreo


Las personas somos seres que vivimos mediante nuestros sentidos y de percibir las cosas que nos rodean. Lo hacemos a través de lo que tocamos, lo que oímos, lo que saboreamos, lo que olemos y sobre todo lo que vemos. El sentido de la vista está catalogado como el sentido más importante, ya que “las imágenes son el mecanismo más eficiente y completo para transmitir información sobre un estímulo determinado”. Las imágenes que recolectan nuestros ojos interpretan el mundo exterior y nos interrelacionan con él de una forma más acertada.
  Nuestros ojos son la puerta de entrada por donde ingresan los estímulos de luz y en el cerebro se realizan los procesos de percepción visual, por los cuales somos capaces de interpretar las formas de los objetos, diferenciar sus colores, sus movimientos y las distancias y ubicación de donde se encuentran.
  Nuestros ojos perciben dichas imágenes, y a los objetos que la componen, en tres distintas dimensiones: alto, ancho y profundo (de donde proviene el nombre 3D). Cada ojo nos proporciona una información distinta, la que cada ojo observa, y a la habilidad de unir estas dos imágenes se la llama visión estéreo que viene del nombre completo visión estereoscópica y más conocido como visión binocular (dos ojos).
  Si se está leyendo este documento desde una versión digital se podrá observar que la imagen almacenada en el siguiente enlace:
  
es el resultado de la superposición de dos imágenes con dos perspectivas diferentes, una imagen con información obtenida del ojo izquierdo y la otra con el ojo derecho, en la figura siguiente se observan ambas imágenes, cada una en su correspondiente lado.




Una definición con enfoque matemático sobre visión estéreo dice: “La diferencia horizontal entre cada perspectiva se llama paralaje y se debe a la distancia que existe entre el ojo izquierdo y el derecho, llamada distancia interocular”, ambas perspectivas combinadas en el cerebro forman una imagen tridimensional, a este fenómeno se lo conoce como esteorepsis.
 Gracias a este fenómeno podemos saber que objetos están cerca y cuales están más lejos. Los animales necesitan esta información de distancia y poseen la capacidad de ver en estéreo, sobre todo los mamíferos depredadores la necesitan para calcular distancias para poder correr, volar o saltar y coger a sus presas para sobrevivir. Por el contrario, los animales que son presas, mamíferos herbívoros en su mayoría, no cuentan con esta capacidad ya que su alimento y necesidades para sobrevivir se encuentran en dos dimensiones, el suelo.
 Entre otras aplicaciones que se han desarrollado de la visión estéreo, está la muy de moda proyección de películas en 3D, que en realidad el origen de ésta tecnología ya estuvo en desarrollo desde 1838 por el físico británico Charles Wheatstone. Se basa en fotografiar dos veces una misma escena desde dos ángulos distintos (normalmente ángulos equivalentes a la distancia de separación de nuestros ojos) y luego usar las gafas 3D que sirven para unir las dos imágenes desincronizadas, sirviendo las gafas así como una especie de filtro.

            Se pueden realizar algunos experimentos sobre visión estéreo con ayuda de la herramienta MatLab, donde es posible reconstruir una escena 3D a partir de la fotografía o video de dos o más puntos de vista de la escena. Se utiliza el Toolbox Computer Vision System para hacer estas operaciones, ya existe bastante soporte en la página de MathWorks a cerca de este tema y muchos modelos de experimentos en línea con algunos ejemplos grabados alojados en YouTube.

Empezando video con MatLab

Para empezar a utilizar el video en MatLab no se necesita saber muchos comandos:


>>  imaqhwinfo;           %Devuelve la información del hardware disponible del adaptador de video   

ans = 

    InstalledAdaptors: {'winvideo'}
        MATLABVersion: '7.8 (R2009a)'
          ToolboxName: 'Image Acquisition Toolbox'
       ToolboxVersion: '3.3 (R2009a)'

                  
>> imaqhwinfo('winvideo');          %Nombre del adaptador de video instalado

ans =

       AdaptorDllName: 'C:\Program Files\MATLAB\R2009a\toolbox\imaq\imaqadaptors\win64\mwwinvideoimaq.dll'
    AdaptorDllVersion: '3.3 (R2009a)'
          AdaptorName: 'winvideo'
            DeviceIDs: {[1]}
           DeviceInfo: [1x1 struct]


>> imaqhwinfo('winvideo',2);          %ID del dispositivo a utilizar, en este caso es el 2 donde se encuentra la webcam que se utiliza y el uno es de la cámara de la laptop con la que se trabaja


* En caso de utilizar la misma cam de la laptop utilizar este comando:

>>  video=videoinput('winvideo');       %Crea la variable de entrada de video con el nombre video


Summary of Video Input Object Using 'Integrated Webcam'.

   Acquisition Source(s):  input1 is available.

  Acquisition Parameters:  'input1' is the current selected source.
                           10 frames per trigger using the selected source.
                           'YUY2_1280x720' video data to be logged upon START.
                           Grabbing first of every 1 frame(s).
                           Log data to 'memory' on trigger.

      Trigger Parameters:  1 'immediate' trigger(s) on START.

                  Status:  Waiting for START.
                           0 frames acquired since starting.
                           0 frames available for GETDATA.


>>  preview(video)  %Genera una pantalla que muestra lo que se esté filmando




Si quisiéramos tomar una muestra de la imagen que se observa para tratarla y empezar con el procesamiento digital de imagenes podemos utilizar el siguiente comando:

>> foto= getsnapshot(video);



lunes, 25 de febrero de 2013

Mensaje problema con el file audit.log en elastix 2.2

Desde que actualicé la central de elastix 1.6 a 2.2 tenía el molesto mensaje de "The file audit.log couldn't be opened" como se ve en la figura




Lo arreglé insertando por ssh el siguiente codigo en la consola de comandos a través de putty:


# cd /var/log/elastix
# touch audit.log
# chown asterisk:asterisk audit.log

jueves, 21 de febrero de 2013

Configuración de teléfono IP en elastix (cuenta SIP)

Para crear una extensión o interno con cuenta tipo SIP (también existen las cuentas IAX2 pero el teléfono debe soportarlo) primero se debe crear al usuario en la central PBX como en la imagen siguiente


Los datos básicos necesarios para hacerlo son el numero de extensión o interno, el nombre que se verá y su password, como se ve a continuación


Eso es todo por parte de la central, ahora debemos configurar el teléfono IP. El modelo con el que trabajo es el SIP-T20P que normalmente viene configurado DHCP por defecto, y debemos ir al menú del teléfono y ver en red o network la dirección ip asignada. Con esta dirección nos vamos a su interfaz web. El usuario y password por defecto es admin y admin, una vez adentro se deben configurar los parámetros que creamos en la central de la siguiente manera:


Si pensamos utilizar el teléfono como extensión remota, debemos configurar los datos de res para realizar el nateo


En el caso de hacer la configuración con un teléfono IP snom821 se lo debe hacer de la siguiente manera:


Como ultimo paso se debe cambiar el parámetro de audio en la pestaña RTP




martes, 19 de febrero de 2013

Activar videollamadas en elastix

He adquirido dos video telefonos VP530 de Yealink, los cuales se los configura como cualquier teléfono IP (ver Configuracion de cuentas SIP). La única diferencia es que hay que habilitar las video-llamadas y activar sus respectivos codecs en la central. Visitando algunos foros he visto cantidad de códigos diferentes que se realizan en astersik para hacerlo, pero la manera mas fácil es acceder a ello vía FreePBX, a continuación explico como.

Yo estoy trabajando con una central Xorcom (XR1000) que tiene elastix 2.2 y para acceder a FreePBX se realiza lo siguiente: primero se accede a la pestaña de Security


Luego a la opción de Advanced Settings


Se habilita el acceso directo a FreePBX y se le asigna una contraseña. La contraseña por defecto en una central Xorcom es user: admin y pass: palosanto. Se guardan los cambios


Volvemos a la pestaña de PBX y veremos al final la opcion de freePBX sin embeber y accedemos a ella. Nos pedirá un usuario y contraseña y colocamos lo que habíamos grabado


Nos encontraremos con esta interfaz y accedemos a SIP settings


Nos vamos hasta la opción de Video Codecs y habilitamos el video support, habilitamos todos los codecs y finalmente guardamos los cambios y cerramos sesión.


En la central ya tenemos todo ok en cuanto al codec y soporte, lo unico que falta es decirle a cada extension o interno donde hemos añadido los video telefonos, que rabaje con los nuevos codecs habilitados.

Para eso nos vamos hasta la extensión y en la opción allow añadimos: "ulaw&h264&h263&h263p" sin comillas y guardamos los cambios.


Con todo esto ya se deberían poder ver entre los video-telefonos.


jueves, 3 de enero de 2013

Enviar imágenes a una dirección de correo electrónico o servidor FTP desde una cámara IP

Estoy configurando un cámara IP marca D-Link modelo DCS-930L. La verdad es bastante sencillo si la instalas con el CD y sigues los pasos, ya que te permite monitorear lo que pasa en la cámara desde la nube, es decir no es necesario contar con una IP publica fija, solo entrar a la pagina de mydlink con la cuenta que se crea en la PC con el CD de instalación.

En la página mydlink.com del equipo no hay mucho que se pueda hacer excepto monitorearla, pero recalco que la ventaja es que no se necesita una ip publica fija como en las demás cámaras. Para configurar sus demás opciones avanzadas se puede ingresar a su configurador web a través de la ip 192.168.0.20 por defecto. Una vez adentro nos vamos a la pestaña Configuración > Correo para enviar las imágenes que tome la cámara a través de internet, y ponemos los siguientes parametros:

Servidor SMTP: smtp.gmail.com
Puerto SMTP: 465
Usuario: tumail@gmail.com
Destinatario: A quien le enviaremos las imágenes
Contraseña: La contraseña de tumail@gmail.com
Conexion: SSL

y se configura el modo con que se enviarán las imágenes al correo del destinatario: siempre, programado o si se detecta algún movimiento en la cámara (que se configura en otra pestaña)


























En caso de enviarlo desde otra dirección de correo, ya sea hotmail, yahoo o cualquier otro se debe averiguar el nombre y puerto del servidor SMTP. Aki dejo un listado de ejemplos


El segundo caso es si queremos enviar las imágenes de la cámara IP no a un correo electrónico sino a un servidor FTP, en mi caso utilizo el FileZilla y se deben colocar en la pestaña FTP los mismos datos que se colocan al conectarse con el servidor FTP:

Host: tudominio.com
Puerto: 21 (por defecto)
Usuario: Yo
Contraseña: XXXX
Ruta: Es la dirección donde se guardarán las imágenes



A mi me ha funcionado a la perfección y las imágenes se guardan en el servidor que tengamos contratado


 Ojo que tanto la configuración de correo y de FTP tienen botones de prueba para verificar la conexión  cuando ambos están bien configurados tenemos  las "Pruebas Correctas" en la pestaña Información del dispositivo > Estado