jueves, 1 de octubre de 2015

Aprendiendo informática: OCR - Introducción a AviSubDetector

Hoy voy a mostraros el funcionamiento de AviSubDetector. Es un programa infinitamente mas complejo que SubRip, e inicialmente fue ideado para detectar en que frames hay un subtitulo, su posición y el instante de tiempo en que aparece. La opción de OCR aún es experimental, aunque funciona realmente bien. No conozco apenas el programa, pero os puedo mostrar los elementos básicos.



En la ventana que sale nada mas abrir el programa observamos la opcion OCR en la parte superior, una barra de desplazamiento. Todas las opciones están dentro de las pestañas inferiores, no en los menús, así que vamos a examinarlas.


Como en el otro programa, existe la posibilidad de recortar la imagen para seleccionar la zona que contiene los subtítulos. Existe la posibilidad de seleccionarlo como 1/2, 1/3, 1/4 o 1/5 de la pantalla o hacerlo a mano. En mi caso he seleccionado en la sección "Crop" (recortar) los porcentajes Top (87%) y Bottom (1%) para encuadrarlo.



La siguiente parte que veremos está en la pestaña OCR (que también tiene mas pestañas dentro). En la sección Auto-search podemos seleccionar si la conocemos la fuente (el tipo de letra) en que están nuestros subtítulos. También seleccionaremos las letras que queremos que busque por defecto, si queremos buscar letras en cursiva y algo que parece una tontería, pero que en realidad no lo es: el orden de la búsqueda. El programa inicialmente compara la letra que lee con las que conoce. Una vez coincide, la escribe y pasa a la siguiente. En ese caso, si aparece en la lista que debe buscar primero la letra u y luego la ú, detectará la letra u e ignorará el acento. Podemos quitar y añadir letras si queremos.

Inicialmente esto no es necesario, ya que si no encuentra la letra lo que hará es pedirnos que la introduzcamos a mano, pero es una forma de facilitarle el trabajo. La velocidad y la precisión aumentan de una manera sorprendente, asi que nos conviene seleccionar una fuente y si no conocemos cual es al menos una similar.

Presionamos el botón de Start (Full) y nos encontramos con esta nueva ventana:


En la parte superior vemos la linea que está analizando, con un recuadro blanco los subpictures y recuadrado en negro el subpicture que se está comprobando. Encontramos tres imagenes debajo. La izquierda se corresponde con la nueva letra que introducirá en la matriz de simbolos. En la parte central, el símbolo que ha encontrado mas parecido, y a la derecha una superposición entre ambos, para mostrar por que los ha encontrado parecidos. Debajo de las imagenes hay una casilla en la que introducir el caracter correspondiente, si está en cursiva, negrita o subrayado. Los botones inferiores nos permiten (en este orden) agregarlo a la matriz de simbolos, escribirlo a mano sin agregarlo a la matriz, eliminar el símbolo existente por ser erroneo o ignorar lo que ha encontrado por ser un falso positivo.

En cuanto al botón siguiente, "Use full rect" es algo que le falta a SubRip. Observad la siguiente imagen:


Si os fijais, ha detectado la mitad de la i, dejando el punto fuera. En cambio ha detectado un posible subpicture que lo incluye. Es posible indicar que debe analizar el subpicture exterior, incluyendo el palito y el punto de la i. Presionamos el boton y como veis se selecciona la i por completo. Es posible que nos vuelva a pedir confirmación, pero no es necesario cambiar nada mas.


Como veremos en la siguiente captura, se ha ido creando la matriz de simbolos (como las capturas las he realizado al poco de empezar, aparece casi vacía. Esta en la pestaña "Symbols". NOTA: no siempre permite cambiar la pestaña una vez comenzada la transcripción, con lo que es recomendable que si quereis ver la matriz entreis en la pestaña antes de iniciar la transcripción.


En la parte inferior, junto a la barra de progreso de la linea vemos como va reconociendo los caracteres en tiempo real. En caso de que no reconozca un caracter, lo sustituirá por #. En el caso de saltos de línea, por |.

Ocurrirá también que examinará varias veces algunas lineas, sobre todo si aparecen en un cambio de escena. Si detecta erroneamente la linea, creará una linea duplicada.

Ahora quiero mostrar un par de casos especiales:


Este primer caso muestra dos elementos, el primero es una detección erronea en el acento. A veces sucede que detecte el acento como una coma, pero si aparece dentro de un subpicture "ampliable" no hay problemas. En la misma captura podemos ver que hay veces que detecta subpictures con dos letras, el "fo" que se muestra es un ejemplo.Tambien se pueden introducir varias letras.

El último caso es el de los "positivos fantasma". Mirad esta captura:


El subpicture activo que se muestra es un palito en la parte superior izquierda. Ahi no hay ningun caracter. No os despisteis, aunque haya una i en la linea debeis decirle que ignore ese caracter.

Al terminar e ir a cerrar el programa os dara la opcion de salvar el subtitulo. Podeis salvar también la matriz de símbolos, per no es necesario.

En principio eso es todo. Ya sabeis lo suficiente para hacer vuestras pruebas. Mañana analizaré los resultados y quizás haga una comparativa.

Un saludo.

No hay comentarios:

Publicar un comentario