Movistar+ via Amazon Fire Stick


Movistar TV   lanzó ya hace algún tiempo la versión multipantalla del  famoso servicio  Imagenio    que permite sin decodificador  extra  y sin coste adicional  ,lógicamente a todas  aquellas personas que tengan contratado el  servicio Movistar TV ,  acceder  a una a selección de los  mejores canales de su televisión premium así como  a toda su videoteca (películas, series y documentales en modelo de suscripción ) a través de dispositivos conectados a Internet  como  pueden ser  tabletas, smartphones  y PC’s

Gracias  a este  servicio  se puede disfrutar de la oferta de TV en el ordenador  desde cualquier navegador, pero también es posible  disfrutar del servicio    desde  ciertos dispositivos Android y variantes   gracias a la aplicación Movistar TV. Precisamente esta peculiaridad   lo hace especialmente interesante para     poder disfrutar de nuestra suscripción de Movistar+   en un  segundo Televisor sin necesidad de descodificador   siendo ideal por ejemplo  para vacaciones  pues siempre que tengamos conectividad ,   gracias a un pequeño   dispositivo similar a un pincho  usb   (que puede comprase directamente   aqui  en Amazon) podremos disfrutar de todos los canales que tengamos contratados   pero ademas  convertiremos nuestra TV  en  una smart TV  convertiendos nuestra   TV  en un completo centro de entretenimiento que permite navegar sin limitaciones por Internet, visionar videos de youtube, oir  música ,ver nuestras fotos preferidas , acceder a redes sociales   y un largo etcétera

Los pasos para poder disfrutar de  este  servicio    son los siguientes:

PASO 1 : REGISTRO EN MOVISTAR TV

Para poder ver Multipantalla Movistar TV  :
• Entre en http://www.movistar.es/television/go,
• Regístrese  proporcionando sus datos de cliente y en un máximo de 24 horas debería recibir su clave en el correo.
• Una vez recibido el correo, no olvide activar su cuenta desde un PC o Mac, cuyo enlace aparece en ese mismo correo. Sólo una vez activada la cuenta, podrá empezar a disfrutar de los contenidos del servicio Multipantalla Movistar TV .

NOTA : Los usuarios con cuentas de Hotmail y Gmail, en caso de no recibir la clave,deberían  revisar la bandeja de  correo no deseado o de  promociones.Si tiene duda   en este link oficial puede encontrar  la mayoría de las dudas o problemas  que le puedan surgir en el proceso

PASO 2: PRUEBA DEL SERVICIO

Una vez que tengamos las credenciales , antes de instalar la aplicación en un dispositivo compatible podemos probar el servicio  desde un PC,Mac o IOS directamente desde su   Navegador  favorito accediendo a la url de  yomvi.

Una vez en la página vaya a la esquina superior derecha en » Iniciar»   e introduzca sus credenciales  de acceso a Imagenio multipantalla obtenidos en el paso anterior( el usuario probablemente coincidirá con la cuenta de correo que utilice para acceder a  Movistar).

Se recomienda, si esta usando su ordenador personal, pulsar Recordar para no tener que teclear  las credenciales cada vez que quiera usar este servicio.

Una vez validado simplemente sitúese en la columna  «Ahora»   y pinche sobre la imagen del contenido que le  interese ver.Tras un breve momento comenzará a verse  en streaming ese contenido.

Tenga en cuenta que para reproducir   Imagenio   el equipo que utilice para probar la conexión  deberá cumplir los siguientes requisitos mínimos:

  • Requisitos mínimos para PC: Windows XP SP2, Windows Server 2003 SP1 o superiores; MS Silverlight player( si no lo tiene instalado al conectarse al acceder a la url ,  nos proporcionaran  el link para su descarga)  ; IE 9, Chrome 25, FireFox 20 o superiores; Pentium 233 MHz con 128 MB de RAM mínimo.
  • Requisitos mínimos para MAC OS: MS Silverlight player; Safari 4; Macintosh Intel x86 o PowerPC con procesadores G3, G4, G5 y 256 MB de RAM mínimo.
  • Requisitos mínimos para IOS: Certificado a partir de IPhone 4 e Ipad 2, con sistema operativo IOS 6 o superior. Con el resto de versiones pueden producirse errores.

Asimismo tendrá también disponible un amplio catálogo de películas y series gratuitas  y de pago ; todo ello visible según el paquete que tenga contratado.

Paso 4: Amazon Fire TV Stick

Amazon Fire TV es uno de los dispositivos más originales de Amazon durante los últimos años. Al igual que hace Apple TV, este servicio permite llevar todo el material multimedia a un mismo punto, lo que garantiza una mayor comodidad

Para poder disfrutar del servicio Imagenio en   nuestra TV   gracias  al Fire TV Stick  podemos convertir nuestra TV  en  una smart TV  para disfrutar de Movistar + a pantalla completa  pero ademas  nos  permitirá navegar sin limitaciones por Internet usando un navegador que deseemos compatible con el Fire TV (Silk o Firefox) , ver videos de youtube, oir cualquier tipo de música que deseemos, ver nuestras fotos preferidas , acceder al correo de gmail  o de outlook , conectarse a redes sociales  y un largo etecétera

El Fire TV Stick ,dispositivo que hemos probado  en este blog  , pretende competir con el Chromecast  y clones chinos , pero  que lo cierto es  que  puede convertir cualquier  televisor o monitor con entrada  HDMI  en  un auténtico  Smart TV 

Este mini-dispositivo con procesador Quad-Core,8 GB de almacenamiento y  memoria de 1 GB  es  suficiente potente para  extender los servicios  de Amazon  a la TV  asi como ademas  disfrutar de otras

Resumidamente estas son algunas des sus posibilidades:

  • Con la suscripción a Amazon Prime, se tiene acceso a Prime Video, que ofrece miles de películas y episodios de series sin ningún cargo adicional. : ElysiumTED y No Strings Attached,series Amazon Originales, que incluyen brillantes títulos de comedia, drama y familiares, como The Grand TourAmerican Gods y la galardonada Man in the High Castle, solo están disponibles con Prime Video.
  • Puede cargar fotos en Prime Photos sin ningún coste adicional y verlas en su televisor HD con el Fire TV Stick Basic Edition.
  • Permite usarlo como plataforma de juegos causal gracias a apps disponibles en  el portal de Amazon  como  Stranger Things: The Game, Galaxy Zero, Asphalt 8 o incluso algún Final Fantasy como el III, V o VI , estas ultimas de pago ( lo ideal  usar un mando bluetooth),
  • Se pueden instalar otras miles  de aplicaciones  directamente desde el propio dispositivo  gracias  a la vinculación del Fire TV Stick , con su cuenta de Amazon
  • Se puede visitar también YouTube, Facebook, Reddit y millones de otros sitios web usando navegadores web como Silk o Firefox ya preinstalados en el propio stick .
  • Afortunadamente no todo son servicios de Amazon en el Fire Stick  pues también permiten  que los usuarios accedan a otros tan populares como Netflix, Youtube, Spotify y en nuestro caso particular Movistar +

Paso 5: INSTALACIÓN Fire TV Stick

Los  componentes  que  se  incluyen con  el  Fire TV Stick    aparte del dongle   y el mando son las dos pilas para el mando  y dos cables:uno  para  alimentarlo a 5v desde un usb ( ojo si  la tv no tiene usb  habrá que conectarle  un adaptador usb)    y  un extensor de hdpi para el caso de  que no entre el conector directamente en el conector del tv)

componentes

La instalación  como vemos es minimalista  pues en el caso ideal el dongle se conecta directamente a un conector hdmi del tv    y solo requiere la alimentación que se hace  por medio de cualquier conector usb que tenga el TV ( aprovechando los 5v DC de la conexión usb)

instalacion.PNG

Aunque sus dimensiones son reducidas  puede haber problemas a la hora de conectarlo por su anchura, para ellos a solución, usar el extensor HDMI que Amazon integra   permitiendo así  que el donde pueda ir  en otra posición .

El Fire TV Stick    viene con su propio mando que tiene todas las funciones necesarias para que use el dispositivo con total comodidad , pero  para mayor comodidad lo ideal es instalar en el smartphone la apk «FIre TV«, para así poder tener un teclado más cómodo que el del Fire TV Stick

Con todo listo y conectado , una vez encendida la TV y haya cargado el sistema operativo ,en primer lugar  tendremos que ir a la configuración de red  para conectarnos a nuestra red wifi ( el Fire TV Stick   cuenta s Wifi de doble banda y doble antena, compatible con 2×2 MIMO 802.11a/b/g/n/ac )   de modo que  una vez le hayamos configurado la red  y la contraseña ya  todo  ya estará listo

Respecto a las credenciales de Amazon nos las   podemos ahorrar el introducir nuestros datos de Amazon  ya  que al adquirirlo  incluye nuestra cuenta de Amazon ya configurada como ocurre con los Kindle ( si no queremos que ocurra  tendremos que marcarlo como regalo eliminar después los datos desde el fire tv).

Como valor añadido  gracias a la conectividad integrada  nos ofrece la posibilidad de conectar dispositivos bluetooth como auriculares, altavoces o mandos de juegos,

Como curiosidad   también puede mostrar el vídeo en espejo ( es decir girando el video  180º).

Paso 6 :  Instalar aplicación de Movistar TV

Movistar+ es el servicio de entretenimiento online en español   más completo del mercado donde  se  puede encontrar una amplia variedad de canales de cine, series, contenido infantil, documentales, programas de entretenimiento y las mejores competiciones deportivas.

Si se es  cliente de Movistar+ en cualquiera de sus modalidades, es posible ver contenidos de Movistar TV  también en el  Fire TV Stick   usadoe la app específicamente para esto que está disponible  gratuitamente en Amazon o bien directamente en el acceso directo  incluido  en el   Amazon Fire TV  ,el  cual instalará automáticamente ésta en el stick sin tener que usar un servicio intermedio.

Una  vez  descargada  la aplicación, tan solo habrá que identificarse con nuestras credenciales de Movistar + ( usuario y contraseña de movistar +  )  y con ello  ya podremos empezar a disfrutar de  los  contenidos   de Movistar +  en una TV  desde cualquier lugar  donde haya conectividad gracias   a este pequeño dispositivo pero que puede ser realmente útil

Paso 7: Instalar  app de mando (opcional)

Una de las características laterales claras del Fire TV es una aplicación  oficial que le permite usar su iPhone o Android como reemplazo del control remoto. Es particularmente útil si el control remoto de Fire TV termina ubicándose debajo del sofá, en la cocina o inexplicablemente en el retrete.

La aplicación es gratuita y también le permite hablar con su dispositivo Fire TV o Fire TV usando el micrófono de su teléfono.

Para disfrutar de Movistar+  con el Fire Stick es mas que suficiente el mando pero con la aplicación del Mando de Amazon Fire TV se mejora en gran medida el uso de las funciones y servicios de Fire TV, al ofrecer una navegación sencilla, un teclado de introducción de texto fácil (evitando la incomodidad de tener que escribir con uno o dos dedos solamente), acceso rápido a aplicaciones y juegos y búsqueda por voz.

La búsqueda por voz funciona con la misma tecnología que el motor de búsqueda por voz de Amazon Fire TV y es compatible con todos los productos integrados de Fire TV del catálogo (vídeo, aplicaciones y juegos).

Captura de pantalla

 

Algunos trucos Amazon Fire TV Stick

El Fire TV de Amazon se ha convertido rápidamente en una de las mejores formas de convertir un televisor tonto en algo inteligente. El Fire TV Stick basic Edition , que recientemente recibió una actualización de 2017, hace que cualquier televisor habilitado para HDMI sea mucho más capaz en términos de servicios y aplicaciones, mientras que Fire Box puede tomar el lugar de una consola de juegos y ahora es capaz de transmitir 4K  .

Veamos algunos ejemplos de trucos para sacarle el máximo partido a este dispositivo: 

Instalar apps de Google Play

El sistema operativo del Fire TV Stick (Fire OS) de forma muy similar a otros dispositivos de Amazon está basado en Android pero no permite usar los servicios de Google ni tampoco permite instalar por defecto cualquier aplicación disponible en la Play Store,pero hay un truco para instalar otras apps en el  Fire TV Stick   que no estén en Amazon:

  • Buscar en amazon la app  «ES File Explorer» enlazando con algún servicio de almacenamiento en la nube que use  (por ejemplo dropbox) .Esta app es un explorador de archivos ,es decir, se puede gestionar todo el contenido, desde copiar hasta eliminar o crear carpetas con títulos determinados.
  • En  el Fire TV   Stick Vvya a Configuración> Sistema> Opciones de desarrollador y habilite la depuración de ADB y las aplicaciones desde fuentes desconocidas
  • Buscamos en nuestro ordenador desde google la apk del la aplicación que nos interese
  • Subimos el fichero apk al almacenamiento en nube
  •  Con «Es File Explorer» nos  vamos  a nuestro servicio de almacenamiento en nube y desde allí  nos  bajamos  la app al Fire Stick
  •  Desde el mismo ES File Explorer da la opción de instalarlo.
  • Para mayor comodidad puede descargare Apps2fire en su teléfono pues  le permitirá instalar archivos APK (paquetes de aplicaciones de Android o aplicaciones de Android para usted y para mí) directamente en su Fire TV desde su teléfono.Las aplicaciones grandes tardan bastante en cargarse, por lo que es mejor configurar la pantalla de su teléfono para que se atenúe solo después de unos 10 minutos para evitar el cierre de la aplicación.

Downloader

A través de esta aplicación lo que se consigue es que “cualquier” archivo de Internet se pueda descargar. En otras palabras, imagine que quieres guardar un vídeo de Youtube en tu PC para verlo posteriormente.:pues a través de Downloader lo puede lograr.

Una vez tengas instalado Downloader podrás hacerte con Kodi, un asistente virtual que da acceso a miles de películas y series de todo el mundo gracias a las principales plataformas existentes.

Mejorar jugabilidad con un gamepad

Algunos títulos no funcionan tan bien cuando se juega con el control remoto del Fire TV. Es demasiado simplista para juegos estilo consola, pero puedes obtener un gamepad Fire TV que hace que estos títulos sean mucho más divertidos.

  • GTA: San Andreas (se requiere gamepad)
  • Minecraft: Edición de bolsillo (se requiere gamepad)
  • Asfalto 8
  • The Bard’s Tale (se requiere gamepad)
  • RipTide GP2
  • Star Wars: Caballeros de la Antigua República (se requiere gamepad)

Envíar música a sus auriculares Bluetooth

Fire TV es fantástico para películas en solitario a altas horas de la noche si tiene un par de auriculares Bluetooth. Puede conectar un conjunto en la parte Bluetooth de Configuración, con los dos conectados como un teléfono y los auriculares inalámbricos.

Es una característica fantástica dado lo populares que son los auriculares inalámbricos, sin embargo, muy pocos dispositivos de entretenimiento en el hogar ofrecen transmisión Bluetooth estándar; la PS4 y la Xbox One no, casi todos los televisores no, y solo los últimos receptores de home cinema lo hacen. ¡así que disfruta el hecho de que su Fire TV sí lo hace!

Reflejar  la pantalla de su teléfono en el Fire TV

Un Fire TV puede tomar lo que esté en la pantalla de su teléfono y pasarlo a su televisor usando el reflejo. Sabemos que a no es una tecnología de Amazon ( es Miracast,) pero  puede usarla con la mayoría de los teléfonos:simplemente mantenga presionado el botón de inicio en su control remoto de Fire TV para acceder al menú de acceso rápido, donde verá una opción de duplicación.

Ahora, solo tiene que encontrar la opción espejo correspondiente en su teléfono. Aparecerá en el menú de Configuración, y suele llamar Miracast, Mirrorshare o duplicación de pantalla, dependiendo de su modelo.

Esta funcionalidad  está lejos de ser perfecta, con retraso y mucha separación de imágenes, por lo que no querrá ver una película o jugar un juego como este,pero  si  la conexión a Internet de su hogar es rápida tanto en las cargas como en las descargas, puede que tenga más suerte, y pueda presumir de sus últimas fotos de vacaciones  desde su tv 

 

 

Por cierto , si le interesa este el link de Amazon:Fire TV Stick  (39,99€ para usuarios Prime)

Sistema de detección de carril con opencv


Kemal Ficici     nos demuestra  con su proyecto escrito en  python,  que por cierto  ha publicado con su código completo en  github,   como es posible usando la librería  OpenCv    construir un detector de carril   que  incluso  maneja carriles con  curvas.

A pesar del gran avance , sin embargo el autor  reconoce  que la salida de su sistema  todavía se ve afectada por sombras y drásticos cambios en la textura de la carretera  lo cual invalida en gran parte su resultado ,  lo cual  le hace  pensar en futuras actualizaciones de su proyecto  haciendo  uso de técnicas de aprendizaje automático para llegar a desarrollar un sistema de detección de vehículo e increíblemente robusto carril.

En el siguiente video podemos ver el resultado de su trabajo:

En cualquier escenario de conducción, las líneas de carril son un componente esencial de lo que indica el flujo de tráfico y donde se debe conducir un vehículo  así  que también es un buen punto de partida en el desarrollo de  niveles de automatismos de ayuda a la conducción ( Sistemas ADAS).
En un proyecto anterior de detección de carril  Kemal  había implementado un sistema de detección de carril  que funcionaba decentemente en perfectas condiciones, sin embargo no detectaba curvas carriles con precisión y no era robusta a obstrucciones y sombras, de modo que  esta nueva versión mejora su   primera propuesta puesto que ha implementado  detección de lineas  curvas en los carriles , de modo que   funciona mucho mejor y es más robusto para entornos exigentes.

El sistema de detección de carril ha sido  escrito en Python usando la librería OpenCV y ha seguido resumidamente las siguientes etapas en el  procesamiento de imagen:

  • Corrección de distorsión
  • Deformación de la perspectiva
  • Filtro de Sobel
  • Detección de picos del histograma
  • Búsqueda de ventana deslizante
  • Ajuste de curvas
  • Superposición de carril detectado
  • Aplicar el resultado a  la salida  al vídeo

Respecto al hardware utililizado :

  • Nvidia Jetson TX2×1
  • Raspberry Pi 3 Model B×1

 

 

Corrección de distorsión

Las  lentes de las cámaras distorsionan la luz entrante al  enfocarla en el sensor de la cámara o CCD . Aunque esto es muy útil porque nos permite capturar imágenes de nuestro entorno, a menudo terminan distorsionando la luz ligeramente de forma imprecisa lo cual  puede ofrecernos medidas inexactas en aplicaciones de visión por ordenador . No obstante  fácilmente podemos corregir esta distorsión calibrando la imagen de un objeto conocido ( por ejemplo  tablero de ajedrez asimétrico,)y generando un modelo de distorsión que represente las distorsiones de la lente.

La cámara utilizada en la prueba video  fue utilizada para tomar 20 imágenes de un tablero de ajedrez, que fueron utilizados para generar el modelo de distorsión.El autor comenzó por convertir la imagen a escala de grises y  entonces aplico la  función cv2.findChessboardCorners .Como sabemos que este tablero de ajedrez es un objeto tridimensional  con líneas rectas exclusivamente podemos aplicar algunas transformaciones a las esquinas detectadas para alinearlos correctamente utilizando cv2.CalibrateCamera()  obteniendo así  los coeficientes de distorsión y la matriz de cámara  de modo que  así  ya estaba calibrada la cámara

Realizado el proceso anterior se puede utilizar  cv2.undistort()  para corregir el resto de sus datos de entrada.

Como demostración en la imagen se puede ver la diferencia entre la imagen original del tablero de ajedrez y la imagen corregida a continuación:

ajedrez

Aquí está el código exacto que usó el autor para esto:

def undistort_img():
    # Prepare object points 0,0,0 ... 8,5,0
    obj_pts = np.zeros((6*9,3), np.float32)
    obj_pts[:,:2] = np.mgrid[0:9, 0:6].T.reshape(-1,2)
    # Stores all object points & img points from all images
    objpoints = []
    imgpoints = []
    # Get directory for all calibration images
    images = glob.glob('camera_cal/*.jpg')
    for indx, fname in enumerate(images):
        img = cv2.imread(fname)
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        ret, corners = cv2.findChessboardCorners(gray, (9,6), None)
        if ret == True:
            objpoints.append(obj_pts)
            imgpoints.append(corners)
    # Test undistortion on img
    img_size = (img.shape[1], img.shape[0])
    # Calibrate camera
    ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, img_size, None,None)
    dst = cv2.undistort(img, mtx, dist, None, mtx)
    # Save camera calibration for later use
    dist_pickle = {}
    dist_pickle['mtx'] = mtx
    dist_pickle['dist'] = dist
    pickle.dump( dist_pickle, open('camera_cal/cal_pickle.p', 'wb') )
def undistort(img, cal_dir='camera_cal/cal_pickle.p'):
    #cv2.imwrite('camera_cal/test_cal.jpg', dst)
    with open(cal_dir, mode='rb') as f:
        file = pickle.load(f)    mtx = file['mtx']
    dist = file['dist']
    dst = cv2.undistort(img, mtx, dist, None, mtx)
    return dst
undistort_img()
img = cv2.imread('camera_cal/calibration1.jpg')
dst = undistort(img) # Undistorted image

Y ahora podemos ver  la corrección de distorsión aplicada a una imagen de la carretera.

imagencorregida.png

Solo se puede notar  diferencias leves, pero esto como veremos puede tener un impacto enorme en el tratamiento de la imagen.

Deformación de la perspectiva

La detección de carriles con trazados curvas  en espacios de la cámara espacio no es uan tarea  fácil asi que la idea es  conseguir una vista de pájaro de las pistas , lo cual se e puede hacer aplicando una transformación de perspectiva en la imagen. Aquí es lo que parece:

carril

Como vemos nos es nada espectacular debido a que el carril esta sobre una superficie plana en 2D, asi  que podemos encajar un polinomio que puede representar fielmente el carril en el espacio del carril

Puede aplicar estas transformaciones a cualquier imagen usando la función cv2.getPerspectiveTransform()  para obtener la matriz de transformación, y  aplicar la función cv2.warpPerspective() a una imagen.

Aquí está el código que uso el autor para ello:

def perspective_warp(img,
                     dst_size=(1280,720),
                     src=np.float32([(0.43,0.65),(0.58,0.65),(0.1,1),(1,1)]),
                     dst=np.float32([(0,0), (1, 0), (0,1), (1,1)])):
    img_size = np.float32([(img.shape[1],img.shape[0])])
    src = src* img_size
    # For destination points, I'm arbitrarily choosing some points to be
    # a nice fit for displaying our warped result
    # again, not exact, but close enough for our purposes
    dst = dst * np.float32(dst_size)
    # Given src and dst points, calculate the perspective transform matrix
    M = cv2.getPerspectiveTransform(src, dst)
    # Warp the image using OpenCV warpPerspective()
    warped = cv2.warpPerspective(img, M, dst_size)
    return warped

Filtro de Sobel

En otras versiones una opción era filtrar las líneas de carril con el color peor sin embargo, esto no siempre es la mejor opción. Si el camino utiliza luz de color concreta en lugar de asfalto, el camino pasa fácilmente a través del filtro de color, y esta la percibirá como una línea de carril blanco, pero  eso no es correcto.

En su lugar, podemos utilizar un método similar al detector de borde, esta vez para filtrar hacia fuera de la carretera. Las líneas de carril suelen tienen un alto contraste en  la carretera, por lo que podemos utilizar esta peculiaridad para nuestro beneficio. La funcion detector de borde  Canny utilizado anteriormente  hace uso de Operador de Sobel , para obtener el gradiente de una función de la imagen. La documentación de OpenCV tiene una fantástica explicación sobre cómo funciona asi que utilizaremos esto para detectar zonas de alto contraste para las marcas de carril filtro e ignorar el resto del camino .

Todavía utilizaremos el espacio de color HLS nuevamente, esta vez para detectar cambios en la saturación y la ligereza. Los operadores de sobel se aplican a estos dos canales, y extraemos el gradiente con respecto al eje x y añadiremos los píxeles que pasan nuestro umbral de degradado a una matriz binaria que representa a los píxeles de nuestra imagen. Aquí está como se ve en cámara espacio y lane

blancoynegro.PNG:

Tenga en cuenta que las partes de la imagen que estaban más lejos de la cámara no conserven su calidad muy bien. Debido a las limitaciones de resolución de la cámara, datos de los objetos más lejos son muy borrosos y ruidosos  pero no necesitamos concentrarnos en la imagen, para que podamos utilizar sólo una parte de esta.

Detección de picos del histograma

Ahora aplicaremos un algoritmo especial llamado Sliding Window Algorithm ( algo asi como algoritmo  Desplazamiento de Ventana )para detectar nuestras líneas de carril. Sin embargo, antes de que lo podemos aplicar, debemos determinar un buen punto de partida para el algoritmo pues este funciona bien si comienza en un lugar donde haya píxeles de lineas  presentes, pero ¿cómo podemos detectar la ubicación de estos píxeles de carril en primer lugar?

Estará recibiendo un histograma de la imagen con respecto al eje X. Cada parte del histograma siguiente muestra píxeles blancos en cada columna de la imagen. Entonces tomamos los picos más altos de cada lado de la imagen, uno para cada línea de carril y tendríamos resulto esta parte

Aquí vemos como  el histograma parece, al lado de la imagen binaria:

histograma

Búsqueda de ventana deslizante

Ahora  necesitamos  utilizar el algoritmo de ventana deslizante para distinguir entre los límites del carril de la izquierda y derecha para que podemos caber dos curvas diferentes que representan los límites del carril.

El algoritmo sí mismo es muy simple. A partir de la posición inicial, la primera ventana mide cuántos píxeles se encuentran dentro de la ventana. Si la cantidad de píxeles alcanza un cierto umbral, desplaza la siguiente ventana a la posición lateral media de los píxeles detectados. Si no se detectan los suficientes píxeles, comienza la siguiente ventana en la misma posición lateral.

Esto continúa hasta que las ventanas alcanzan el otro borde de la imagen .Asimismo los píxeles que corresponden a las ventanas reciben un marcador.

En las imágenes de abajo, los píxeles marcados azules representan el carril derecho, y los rojos representan la izquierda:

lineas

Ajuste de curvas

El resto del proyecto es ya mas fácil. Aplicamos la regresión polinomial para los pixeles rojos y azules individualmente usando np.polyfit() , y entonces el detector se hace  sobre todo

Esto es lo que parecen las curvas:

 

Superposición de carril detectado

Ya estamos en la parte final del sistema de detección: la interfaz de usuario. Simplemente creamos una superposición que llena en la parte detectada del carril, y luego  finalmente lo aplicamos al vídeo.

Este es el resultado final

 

 

!Sin duda un resultado  realmente espectacular que puede servir de partida para proyectos  mas ambiciosos!

Mas información en www.hackster.io