ES2709942T3 - Sistema y procedimiento de corrección de imagen digital de gran angular en tiempo real - Google Patents

Sistema y procedimiento de corrección de imagen digital de gran angular en tiempo real Download PDF

Info

Publication number
ES2709942T3
ES2709942T3 ES03012636T ES03012636T ES2709942T3 ES 2709942 T3 ES2709942 T3 ES 2709942T3 ES 03012636 T ES03012636 T ES 03012636T ES 03012636 T ES03012636 T ES 03012636T ES 2709942 T3 ES2709942 T3 ES 2709942T3
Authority
ES
Spain
Prior art keywords
wide
angle image
deformation
image
pixel coordinates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03012636T
Other languages
English (en)
Inventor
Zicheng Liu
Michael Cohen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2709942T3 publication Critical patent/ES2709942T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G06T3/12
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • G06T5/80
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation

Abstract

Un procedimiento implementado por ordenador para llevar a cabo una corrección en tiempo real de una imagen de gran angular, que comprende: obtener (400, 500) unas coordenadas de píxeles (120) a partir de la imagen de gran angular, que se denominan en lo sucesivo en el presente documento coordenadas de píxeles de imagen de gran angular; generar (410, 850) una tabla de deformación (150) mediante la aplicación de una función de deformación de imagen paramétrica a las coordenadas de píxeles, en el que la función de deformación de imagen paramétrica es una función de ajuste a escala uniforme espacialmente variable, SVU, que se asemeja de forma local a una función de ajuste a escala uniforme y que tiene un factor de ajuste a escala que varía a lo largo de la imagen de gran angular; y deformar (430) la imagen de gran angular en tiempo real usando la tabla de deformación para crear (440) una imagen de gran angular corregida (130), en el que generar una tabla de deformación comprende: procesar cada línea de exploración vertical de la imagen de gran angular de tal modo que a las coordenadas de píxeles de imagen de gran angular de una línea de exploración vertical se les aplica (550) un factor de ajuste a escala (r(x)) en la dirección vertical, en el que el factor de ajuste a escala varía a lo largo de la imagen de gran angular; procesar cada línea de exploración vertical de la imagen de gran angular de tal modo que a las coordenadas de píxeles de imagen de gran angular de una línea de exploración vertical a las que se aplicó un factor de ajuste a escala en la dirección vertical, se les aplica (710) el factor de ajuste a escala (r(x)) en la dirección horizontal; crear (720) una tabla de deformación preliminar que contiene unas coordenadas de píxeles preliminares; y llevar a cabo (800 - 840) una corrección de distorsión horizontal sobre la tabla de deformación preliminar usando la función de deformación de imagen paramétrica para crear la tabla de deformación.

Description

DESCRIPCION
Sistema y procedimiento de correccion de imagen digital de gran angular en tiempo real
Campo tecnico
La presente invencion se refiere, en general, a la visualizacion de imagenes usando un ordenador y, mas en particular, a un sistema y un procedimiento de correccion en tiempo real de imagenes que se captan por medio de una camara de gran angular para mitigar los problemas de distorsion y de percepcion que estan asociados con tales imagenes.
Antecedentes de la invencion
A menudo se usan camaras de gran angular para captar escenas grandes. Por lo general, las camaras de gran angular tienen un campo de vision mas grande que aproximadamente 60 grados. Una camara de gran angular tambien incluye una camara panoramica, que es una imagen de camara de extremadamente gran angular que tiene un campo de vision de hasta 360 grados.
Una imagen de gran angular se puede ver usando al menos dos tipos de proyecciones. Una proyeccion en perspectiva lineal es una imagen que se capta por medio de un objetivo de gran angular que se proyecta sobre un fragmento plano de pelmula. La proyeccion en perspectiva lineal mantiene rectas las lmeas rectas a costa de mantener la forma. Esto da lugar a deformaciones de la perspectiva. La imagen parecena ser correcta y no estar deformada si el espectador de la imagen pusiera su mirada en el centro de la proyeccion. No obstante, cuando se visualiza la imagen de gran angular con un campo de vision mas pequeno, el espectador espera unos aumentos mas pequenos de los tamanos de imagen asf como una cantidad mas pequena de deformacion sobre los planos de imagen a medida que el objeto rota. Esta es la razon por la cual los objetos parecen estar estirados en los bordes. Los cambios en el tamano, mayores de lo esperado, y la deformacion sobre el plano de imagen, hacen que el usuario sienta que la escena no es ngida, como si la escena estuviera nadando en torno al espectador, en particular cuando se visualizan imagenes panoramicas.
Una proyeccion cilmdrica se produce usando una camara de gran angular que tiene una pelmula curvada y una lente de ranura rotatoria. Las proyecciones cilmdricas son mejores a la hora de mantener la forma que las proyecciones lineales. Ademas, una proyeccion cilmdrica mitiga todo movimiento de nado aparente. Incluso a pesar de que la proyeccion cilmdrica es una mejora en la visualizacion frente a la proyeccion lineal, no obstante, siguen encontrandose presentes problemas de distorsion y de percepcion. En particular, la proyeccion cilmdrica curva mas de lo necesario las lmeas rectas. Ademas, la proyeccion cilmdrica elimina, casi completamente, la ilusion de girar la propia cabeza cuando se visualizan imagenes panoramicas.
Los problemas de distorsion y de curvatura en las imagenes de gran angular son causados por una falta de coincidencia de campo de vision. En particular, debido al tamano de visualizacion limitado en los monitores informaticos y a las distancias de visualizacion convencionales, el angulo que es subtendido por la imagen cuando se esta viendo es mucho mas pequeno que el campo de vision de la camara que proyecto originalmente la escena en un plano de imagen. Esta falta de coincidencia es la causa de muchos problemas de distorsion y de percepcion. Yamamoto T. y col. “PanoVi: panoramic movie system for real-time network transmission", 2001 ejemplifica una correccion de ese tipo para la aberracion de la lente. No obstante, este no hace mencion alguna acerca de un factor de ajuste a escala comun que se aplica en las direcciones vertical y horizontal para corregir la profundidad exagerada en la imagen de gran angular al tiempo que se conserva la relacion de aspecto de la imagen de gran angular.
Un problema relacionado que es causado por un campo de vision mas pequeno en el instante de la visualizacion es el error de percepcion de profundidad. Las imagenes de gran angular exageran la disparidad de profundidad entre los objetos cercanos y lejanos. Una indicacion visual importante de la profundidad de un objeto en una escena es la relacion entre los tamanos de imagen de objetos similares que estan colocados en unas ubicaciones cercanas y lejanas (que se denomina relacion de escorzo de profundidad). Un campo de vision mas pequeno da como resultado una relacion de escorzo mas pequena. Por ejemplo, supongase que una escena contiene dos personas que se encuentran una junto a otra con una persona ligeramente mas alejada de la camara que la otra persona. Si la escena se capta por medio de una camara de campo de vision ordinaria (de aproximadamente 60 grados) y la misma escena se capta con una camara de campo de vision de gran angular, el tamano de los objetos en la escena aparecera diferente. En particular, con una camara de campo de vision ordinaria, la persona que se encuentra mas alejada de la camara aparecera ligeramente mas alejada de la camara que la otra persona. No obstante, con la camara de campo de vision de gran angular, parecera que la persona que se encuentra mas alejada de la camara es mucho mas pequena que la otra persona. Debido a esta diferencia de tamano exagerada, la persona que se encuentra mas alejada de la camara parece encontrarse mucho mas alejada de lo que realmente esta. Cuando se ve en un monitor informatico una imagen de gran angular de una escena profunda (tal como una escena de videoconferencia), el campo de vision del espectador, en general, es mucho mas pequeno que el campo de vision de las imagenes reales. Por lo tanto, la profundidad que es percibida por el espectador es mucho mas grande que la profundidad real.
Una aplicacion en la que se manifiestan estos problemas de distorsion y de percepcion es en los sistemas de videoconferencia. A menudo se usan camaras de gran angular en los sistemas de videoconferencia para captar y transmitir una imagen que contiene todos los participantes que se encuentran presentes en una sala de reuniones. Un problema, no obstante, es que, cuando se visualiza la videoconferencia, la imagen de gran angular exagera la profundidad de la sala. Esto da lugar a que las personas en la parte media de la imagen (que, por lo general, son las mas lejanas a la camara) parezcan muy pequenas en comparacion con otras en la sala debido al escorzo extremo. Estos problemas de distorsion y de percepcion son incluso mas evidentes cuando se visualizan imagenes de gran angular con un soporte logico actual de vista panoramica. A medida que un usuario gira (virtualmente) su cabeza, los objetos ya parecen estar estirados en un borde, entonces se contraen dependiendo de la distancia cuando los mismos pasan por el centro. Por ultimo, los objetos estan, una vez mas, estirados en el otro borde. Esto hace que parezca que los objetos solidos se deforman y nadan hacia fuera y entonces hacia dentro a medida que se rota la vista.
Por consiguiente, existe la necesidad de un sistema y un procedimiento de correccion en tiempo real de imagenes que se captan por medio de una camara de gran angular para mitigar los problemas de distorsion y de percepcion que estan asociados con tales imagenes.
Sumario de la invencion
La invencion que se divulga en el presente documento, tal como se define en las reivindicaciones adjuntas, incluye un sistema, un sistema de medio legible por ordenador y un procedimiento de provision de una correccion en tiempo real de las imperfecciones de distorsion y de percepcion en una imagen de gran angular que se capta por medio de una camara de gran angular. El sistema y procedimiento de correccion de imagen de gran angular en tiempo real usan una clase de funciones de deformacion parametricas para corregir, de una forma eficaz y eficiente, los errores de distorsion y de percepcion en la imagen de gran angular. Ademas, el sistema corrige los errores de profundidad, tales como aquellos que se encuentran presentes en las aplicaciones de videoconferencia. La correccion de los errores de profundidad permite unas presentaciones de videoconferencia mas utiles y significativas. Ademas, las funciones de deformacion parametricas se pueden usar para eliminar los artefactos de movimiento de nado que tienen lugar cuando se visualizan imagenes de gran angular.
En general, el procedimiento de correccion de imagen de gran angular en tiempo real introduce una imagen de gran angular con defectos, corrige la profundidad exagerada y la distorsion horizontal, y emite una imagen de gran angular corregida. Las correcciones se llevan a cabo usando una clase de funciones de deformacion que se disenan para reducir al mmimo la introduccion de unas distorsiones nuevas al tiempo que se supera la mayor parte de los problemas que estan asociados con las camaras de gran angular. Esta nueva clase de funciones de deformacion incluye funciones de ajuste a escala uniforme espacialmente variable. En general, el ajuste a escala al nivel local se lleva a cabo al tiempo que se conserva el contexto global. Para las aplicaciones de videoconferencia, esto quiere decir que la deformacion realiza un acercamiento de las personas distantes sin distorsionar a cada individuo y conservando el contexto de la sala.
El procedimiento de correccion de gran angular en tiempo real incluye recibir unas coordenadas de pfxeles de una imagen de gran angular y llevar a cabo un ajuste a escala vertical y horizontal sobre las coordenadas de pfxeles de la imagen de gran angular. El ajuste a escala se lleva a cabo usando las funciones de deformacion de imagen parametricas. Este ajuste a escala produce una tabla de deformacion preliminar que se corresponde con una imagen que mantiene las lmeas verticales rectas pero puede distorsionar las lmeas horizontales. Con el fin de corregir esto, el procedimiento incluye llevar a cabo una correccion de distorsion horizontal sobre la tabla de deformacion preliminar. La salida resultante es una tabla de deformacion que establece una correlacion de las coordenadas de pfxeles de imagen corregidas con las coordenadas de pfxeles de imagen originales. Dicho de otra forma, la tabla de deformacion indica la posicion de cada una de las coordenadas de pfxeles originales dentro de una imagen de gran angular nueva y corregida. Usando la tabla de deformacion, la imagen de gran angular corregida se construye en tiempo real a partir de la imagen de gran angular original. La imagen de gran angular corregida se encuentra virtualmente libre de problemas de distorsion y de percepcion.
El ajuste a escala vertical se lleva a cabo de forma individual sobre cada lmea de exploracion vertical en la imagen usando las funciones de deformacion de imagen parametricas y un factor de deformacion. El factor de ajuste a escala principal se calcula usando unas curvas de origen, un factor de deformacion, y unas curvas de destino que se calculan a partir de las curvas de origen y el factor de deformacion. Un aspecto de la invencion hace que las curvas de origen y el factor de deformacion sean definidos por un usuario. El factor de ajuste a escala principal se usa para ajustar a escala las coordenadas de pfxeles en la direccion vertical. En un sentido virtual, este ajuste a escala vertical “estira” la imagen de gran angular en sentido vertical para la lmea de exploracion vertical seleccionada en la cantidad del factor de ajuste a escala principal. Tambien se lleva a cabo un ajuste a escala horizontal de la lmea de exploracion vertical, y este usa el mismo factor de ajuste a escala principal para conservar la relacion de aspecto. De forma similar al ajuste a escala vertical, se puede pensar en el ajuste a escala horizontal en un sentido virtual como que “estira” de forma local la lmea de exploracion vertical de la imagen de gran angular en sentido horizontal en la cantidad del factor de ajuste a escala principal. En un sentido virtual, mediante la aplicacion del ajuste a escala vertical y horizontal a la imagen de gran angular original, los inventores de la presente invencion obtienen una imagen corregida preliminar. Para acelerar el calculo, los inventores de la presente invencion generan una tabla de deformacion preliminar que establece una correlacion de las coordenadas de p^xeles preliminares de la imagen corregida preliminar con las coordenadas de pfxeles de imagen originales.
La distorsion horizontal se corrige al dividir la tabla de deformacion preliminar en secciones de acuerdo con las posiciones de las coordenadas de pfxeles. Cada una de estas secciones se ajusta a escala en sentido vertical usando factores de ajuste a escala diferentes. En un aspecto de la invencion, se define una primera seccion como que contiene aquellas coordenadas de pfxeles que se corresponden con unos pfxeles que estan ubicados entre una curva de origen de debajo y una curva de origen de arriba. El factor de ajuste a escala principal se usa entonces para ajustar a escala en sentido vertical las coordenadas de pfxeles en esta seccion. Las coordenadas de pfxeles en otras secciones se ajustan a escala en sentido vertical usando un factor de ajuste a escala secundario, que es un valor diferente del factor de ajuste a escala principal. Con el fin de conservar la continuidad, cada una de las secciones se conecta usando una funcion de alisamiento. Una vez que se ha llevado a cabo el proceso de correccion de distorsion horizontal sobre las coordenadas de pfxeles en la tabla de deformacion preliminar, se genera una tabla de deformacion. Usando esta tabla de deformacion, se lleva a cabo una deformacion en tiempo real de una imagen amplia para producir una imagen de gran angular corregida en tiempo real.
Un sistema de correccion de imagen de gran angular en tiempo real de la invencion usa el procedimiento que se ha descrito en lo que antecede para proporcionar una correccion y visualizacion en tiempo real de una imagen de gran angular.
Breve descripcion de los dibujos
La presente invencion se puede entender adicionalmente por referencia a la siguiente descripcion y los dibujos adjuntos que ilustran algunos aspectos de la invencion. Otras caractensticas y ventajas seran evidentes a partir de la siguiente descripcion detallada de la invencion, tomada junto con los dibujos adjuntos, que ilustran, a modo de ejemplo, los principios de la presente invencion.
Haciendo referencia a continuacion a los dibujos, en los que numeros de referencia semejantes representan partes correspondientes de principio a fin del presente documento:
La figura 1 es un diagrama de bloques que ilustra la vision de conjunto general del sistema de correccion de imagen de gran angular en tiempo real de la invencion.
La figura 2 es un diagrama de bloques que ilustra un aparato informatico que es conveniente para llevar a cabo la invencion.
La figura 3 es un diagrama de bloques que ilustra los detalles del modulo de generacion de tabla de deformacion del sistema de correccion de imagen de gran angular en tiempo real que se muestra en la figura 1.
La figura 4 es un diagrama de flujo general que ilustra el funcionamiento del sistema de correccion de imagen de gran angular en tiempo real que se muestra en la figura 1.
La figura 5 es un diagrama de flujo que ilustra los detalles del modulo de ajuste a escala vertical que se muestra en la figura 3.
La figura 6 ilustra la determinacion de la funcion de deformacion por medio de dos conjuntos de curvas.
La figura 7 es un diagrama de flujo que ilustra los detalles del modulo de ajuste a escala horizontal que se muestra en la figura 3.
La figura 8 es un diagrama de flujo que ilustra los detalles del modulo de correccion de distorsion horizontal que se muestra en la figura 3.
La figura 9 ilustra la funcion de ajuste a escala vertical y una vista conceptual de la division de las coordenadas de pfxeles preliminares en tres secciones.
La figura lOA ilustra una vista en perspectiva de una sala de baile sin correccion alguna.
La figura 10B ilustra la misma vista que en la figura 10A despues de la aplicacion de la funcion de ajuste a escala SVU.
La figura 11 ilustra la imagen de gran angular cilmdrica resultante que se genera a partir de la camara de gran angular del ejemplo practico.
La figura 12 ilustra las curvas tanto de origen como de destino con el factor de deformacion, a = 0,3.
La figura 13 ilustra la imagen corregida preliminar del ejemplo practico, que es un resultado de la aplicacion de unas funciones de deformacion de ajuste a escala SVU sin una correccion de distorsion horizontal.
La figura 14 ilustra el resultado de la aplicacion de las funciones de ajuste a escala SVU con una correccion de distorsion horizontal.
La figura 15 ilustra la imagen de gran angular corregida del ejemplo practico usando un factor de deformacion, a = 0,2.
La figura 16 ilustra la imagen de gran angular corregida del ejemplo practico usando un factor de deformacion, a = 0,4.
La figura 17 ilustra una proyeccion en perspectiva de un objeto rectangular que rota en torno a una camara. La figura 18A ilustra el concepto de error de percepcion de profundidad y muestra una escena que se capta con una camara de campo de vision ordinaria.
La figura 18B muestra la misma escena que en la figura 18A, que se capta con una camara de gran angular. La figura 19 ilustra un diagrama bidimensional de las secciones transversales del cilindro regular y el cilindro eKptico.
La figura 20 ilustra un ejemplo del funcionamiento del procedimiento de correccion de imagen de gran angular en tiempo real tal como se muestra en la figura 4.
Descripcion detallada de la invencion
En la siguiente descripcion de la invencion, se hace referencia a los dibujos adjuntos, que forman una parte de la misma, y en los que se muestra, a modo de ilustracion, un ejemplo espedfico con el que se puede poner en practica la invencion. Se ha de entender que se pueden utilizar otras formas de realizacion y que se pueden hacer cambios estructurales sin apartarse del alcance de la presente invencion.
I. Vision de conjunto general
La presente invencion incluye un sistema y procedimiento de correccion de imagen de gran angular en tiempo real para obtener y procesar imagenes de gran angular de tal modo que la salida es una imagen de gran angular no distorsionada y corregida. El sistema y procedimiento de correccion de imagen de gran angular en tiempo real se puede usar para ver imagenes de gran angular sin el estiramiento, las distorsiones de curvatura y los problemas de profundidad exagerada que asolan las imagenes de gran angular tradicionales. La correccion de la imagen de gran angular se logra usando una nueva clase de funciones de deformacion parametricas. En un aspecto de la invencion, estas funciones de deformacion parametricas son funciones de ajuste a escala uniforme espacialmente variable (SVU, Spatially Varying Uniform) que conservan las perspectivas de ajuste a escala local y corrigen el error de percepcion de profundidad. Las funciones de ajuste a escala SVU y los factores de ajuste a escala se usan para llevar a cabo un ajuste a escala vertical y un ajuste a escala horizontal sobre las coordenadas de pfxeles de la imagen. Esto produce una tabla de deformacion preliminar que establece una correlacion de las ubicaciones de pfxeles de la imagen corregida preliminar con las coordenadas de pfxeles originales. Esta imagen corregida preliminar es una imagen virtual y no se construye en realidad. No obstante, la imagen corregida preliminar mantiene las lmeas verticales como lmeas rectas pero distorsiona las lmeas horizontales. Esta distorsion horizontal se corrige al llevar a cabo una correccion de distorsion horizontal usando las funciones de ajuste a escala SVU y al menos dos factores de ajuste a escala diferentes. Este procesamiento produce una tabla de deformacion. La tabla de deformacion establece una correlacion de las posiciones en una imagen de gran angular corregida con las coordenadas de pfxeles originales en la imagen de gran angular distorsionada. Usando la tabla de deformacion, la imagen de gran angular corregida se construye en tiempo real a partir de la imagen de gran angular original.
La figura 1 es un diagrama de bloques que ilustra la vision de conjunto general del sistema de correccion de imagen de gran angular en tiempo real 100 de la invencion. En general, el sistema 100 obtiene una imagen de gran angular 110 e introduce las coordenadas de pfxeles de imagen de gran angular 120 que se corresponden con las coordenadas de cada uno de los pfxeles dentro de la imagen de gran angular. Las coordenadas de pfxeles de imagen de gran angular 120 son procesadas por el sistema de correccion de imagen de gran angular en tiempo real 100 y una imagen de gran angular corregida 130 es la salida.
La imagen de gran angular 110 puede ser una imagen unica (tal como a partir de una camara fija) o parte de una secuencia de imagenes (tal como a partir de una camara de video). Las coordenadas de cada pixel dentro de la imagen de gran angular 110 se obtienen para generar las coordenadas de pfxeles de imagen de gran angular 120. Por ejemplo, en un sistema de referencia de coordenadas rectilmeas, las coordenadas de pfxeles 120 son unas ubicaciones de (x, y) de cada uno de los pfxeles dentro de la imagen de gran angular 110. El modulo de correccion de imagen de gran angular en tiempo real 100 incluye un modulo de generacion de tabla de deformacion 140, una tabla de deformacion 150 y un sistema de deformacion de imagen en tiempo real 160.
El modulo de generacion de tabla de deformacion 140 se usa para generar la tabla de deformacion 150 usando funciones de deformacion de imagen parametricas. Las coordenadas de pfxeles de imagen de gran angular 120 se procesan para crear la tabla de deformacion 150. Los detalles del modulo de generacion de tabla de deformacion 140 se analizan en lo sucesivo. La tabla de deformacion 150 contiene las coordenadas de pfxeles de imagen de gran angular 120 que se disponen de una forma de tal modo que se corresponden con una ubicacion en la imagen de gran angular corregida 130. Por lo tanto, la tabla de deformacion 150 determina la nueva ubicacion en la imagen de gran angular corregida 130 para las coordenadas de pfxeles de imagen de gran angular 120.
Una vez que se ha generado la tabla de deformacion 150, la imagen de gran angular 110 se recibe como entrada para el sistema de deformacion en tiempo real 160. El sistema de deformacion de imagen en tiempo real 160 aplica la tabla de deformacion 150 a la imagen de gran angular 110 para crear la imagen de gran angular corregida 130. El sistema de deformacion en tiempo real 160 crea la imagen de gran angular corregida 130 para cada ubicacion en la imagen de gran angular corregida 130 obteniendo los valores de RGB para la imagen de gran angular 110 que esta ubicada en las coordenadas de pfxeles que estan contenidas en la tabla de deformacion 150. Por lo tanto, los valores de RGB en las coordenadas de pfxeles de gran angular 120 se vuelven a ubicar en la imagen de gran angular corregida 130. La nueva ubicacion se determina usando la tabla de deformacion 150.
El proceso de deformacion tiene lugar en tiempo real debido a que la generacion de la tabla de deformacion quiere decir que todo lo que se requiere para crear la imagen de gran angular corregida 130 es la aplicacion de la tabla de deformacion 150 a la imagen de gran angular 110, lo que se puede hacer con rapidez. En resumen, el sistema de correccion de imagen de gran angular en tiempo real 100 genera una tabla de deformacion mediante el procesamiento de las coordenadas de pfxeles de imagen de gran angular 120 y entonces crea la imagen de gran angular corregida 130 a partir de la imagen de gran angular 110 usando la tabla de deformacion 150.
II. Entorno operativo a modo de ejemplo
El sistema de correccion de imagen de gran angular en tiempo real 100 de la presente invencion se disena para funcionar en un entorno informatico. Se tiene por objeto que el siguiente analisis proporcione una descripcion breve y general de un entorno informatico conveniente en el que se puede poner en practica la invencion.
La figura 2 es un diagrama de bloques que ilustra un aparato informatico que es conveniente para llevar a cabo la invencion. A pesar de que no se requiere, la invencion se describira en el contexto general de las instrucciones ejecutables por ordenador, tales como modulos de programa, que se estan ejecutando por medio de un ordenador. En general, los modulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc. que llevan a cabo tareas particulares o ponen en practica tipos de datos abstractos particulares. Ademas, los expertos en la materia apreciaran que la invencion se puede poner en practica con una diversidad de configuraciones de sistema informatico, incluyendo ordenadores personales, ordenadores de servidor, dispositivos de mano, sistemas de multiples procesadores, electronica de consumo programable o basada en microprocesadores, PC de red, miniordenadores, ordenadores de gran sistema, y similares. La invencion tambien se puede poner en practica en entornos informaticos distribuidos en los que las tareas son llevadas a cabo por dispositivos de procesamiento remotos que estan enlazados a traves de una red de comunicaciones. En un entorno informatico distribuido, los modulos de programa se pueden ubicar en unos medios de almacenamiento informatico tanto locales como remotos, incluyendo dispositivos de almacenamiento en memoria.
Con referencia a la figura 2, un sistema a modo de ejemplo para poner en practica la invencion incluye un dispositivo informatico de proposito general 200. En particular, el dispositivo informatico 200 incluye la unidad de procesamiento 202, una memoria de sistema 204 y un bus de sistema 206 que acopla diversos componentes de sistema que incluyen la memoria de sistema 204 con la unidad de procesamiento 202. El bus de sistema 206 puede ser cualquiera de varios tipos de estructuras de bus, incluyendo un bus de memoria o un controlador de memoria, un bus de perifericos y un bus local usando cualquiera de una diversidad de arquitecturas de bus. La memoria de sistema incluye una memoria de solo lectura (ROM, read only memory) 210 y una memoria de acceso aleatorio (RAM, random access memory) 212. Un sistema basico de entrada / salida (BIOS, basic input / output system) 214, que contiene las rutinas basicas que ayudan a transferir informacion entre los elementos dentro del dispositivo informatico 200, tal como durante el arranque, se almacena en la ROM 210. El dispositivo informatico 200 incluye adicionalmente una unidad de disco duro 216 para leer a partir de y escribir en un disco duro, que no se muestra, una unidad de disco magnetico 218 para leer a partir de o escribir en un disco magnetico extrafble 220 y una unidad de disco optico 222 para leer a partir de o escribir en un disco optico extrafble 224 tal como un CD-ROM u otros medios opticos. La unidad de disco duro 216, la unidad de disco magnetico 228 y la unidad de disco optico 222 se conectan al bus de sistema 206 por medio de una interfaz de unidad de disco duro 226, una interfaz de unidad de disco magnetico 228 y una interfaz de unidad de disco optico 230, de forma respectiva. Las unidades y sus medios legibles por ordenador asociados proporcionan un almacenamiento no volatil de instrucciones legibles por ordenador, estructuras de datos, modulos de programa y otros datos para el dispositivo informatico 200.
A pesar de que el entorno a modo de ejemplo que se describe en el presente documento emplea un disco duro, un disco magnetico extrafble 220 y un disco optico extrafble 224, debena ser apreciado por los expertos en la materia que, en el entorno operativo a modo de ejemplo, tambien se pueden usar otros tipos de medios legibles por ordenador que pueden almacenar datos a los que puede acceder un ordenador, tales como casetes magneticos, tarjetas de memoria flash, discos de video digital, cartuchos de Bernoulli, memorias de acceso aleatorio (RAM, random access memory), memorias de solo lectura (ROM, read only memory), y similares,.
Un numero de modulos de programa se pueden almacenar en el disco duro, el disco magnetico 220, el disco optico 224, la ROM 210 o la RAM 212, incluyendo un sistema operativo 232, uno o mas programas de aplicacion 234, otros modulos de programa 236 (tales como el sistema de eliminacion de distorsiones de imagen de gran angular 100) y los datos de programa 238. Un usuario (que no se muestra) puede introducir ordenes e informacion en el dispositivo informatico 200 a traves de dispositivos de entrada tales como un teclado 240 y un dispositivo apuntador 242. Ademas, al dispositivo informatico 200 se puede conectar una camara 243 (tal como una camara de video) asf como otros dispositivos de entrada (que no se muestran) incluyendo, por ejemplo, un microfono, una palanca de mando, un controlador para juegos, una antena parabolica, un escaner, o similares. A menudo, estos otros dispositivos de entrada se conectan a la unidad de procesamiento 202 a traves de una interfaz de puerto serie 244 que se acopla con el bus de sistema 206, pero se pueden conectar por medio de por otras interfaces, tales como un puerto paralelo, un puerto para juegos o un bus serie universal (USB, universal serial bus). El monitor 246 (u otro tipo de dispositivo de representacion) tambien se conecta al bus de sistema 206 por medio de una interfaz, tal como un adaptador de video 248. Ademas del monitor 246, por lo general los dispositivos informaticos tales como ordenadores personales incluyen otros dispositivos de salida perifericos (que no se muestran), tales como altavoces e impresoras.
El dispositivo informatico 200 puede funcionar en un entorno en red usando unas conexiones logicas con uno o mas ordenadores remotos, tales como un ordenador remoto 250. El ordenador remoto 250 puede ser otro ordenador personal, un servidor, un encaminador, un PC de red, un dispositivo del mismo nivel u otro nodo de red comun y, por lo general, incluye muchos o la totalidad de los elementos que se han descrito en lo que antecede en relacion con el dispositivo informatico 200, a pesar de que, en la figura 2, solo se ha ilustrado un dispositivo de almacenamiento en memoria 252. Las conexiones logicas que se ilustran en la figura 2 incluyen una red de area local (LAN, local area network) 254 y una red de area extensa (WAN, wide area network) 256. Tales entornos de interconexion de redes son comunes en oficinas, redes informaticas a nivel de empresa, intranets e Internet.
Cuando se usa en un entorno de interconexion de redes de LAN, el dispositivo informatico 200 se conecta a la red local 254 a traves de una interfaz de red o un adaptador 258. Cuando se usa en un entorno de interconexion de redes de WAN, por lo general el dispositivo informatico 200 incluye un modem 260 u otros medios para establecer unas comunicaciones a traves de la red de area extensa 256, tal como Internet. El modem 260, que puede ser interno o externo, se conecta al bus de sistema 206 por medio de la interfaz de puerto serie 244. En un entorno en red, los modulos de programa que se ilustran en relacion con el dispositivo informatico 200, o porciones del mismo, se pueden almacenar en el dispositivo de almacenamiento en memoria remoto 252. Se apreciara que las conexiones de red que se muestran son a modo de ejemplo y que se pueden usar otros medios de establecimiento de un enlace de comunicaciones entre los ordenadores.
MI. Detalles del sistema
En general, el sistema de correccion de imagen de gran angular en tiempo real 100 proporciona una correccion en tiempo real de una imagen de gran angular 110. El sistema 100 corrige la curvatura y las distorsiones en las direcciones vertical y horizontal. Ademas, el sistema 100 corrige problemas de percepcion tales como los movimientos de nado y profundidad.
La figura 3 es un diagrama de bloques que ilustra los detalles del modulo de generacion de tabla de deformacion 140 que se muestra en la figura 1. En particular, el modulo de generacion de tabla de deformacion 140 incluye un modulo de entrada 300 para introducir las coordenadas de pfxeles de imagen de gran angular 120. Estas coordenadas de pfxeles 120 representan una ubicacion de cada pixel en la imagen de gran angular 110. Se debena hacer notar que la imagen 110 puede ser una imagen unica o una de una secuencia de imagenes, tal como una secuencia de video a partir de una camara de video. El modulo 140 tambien incluye un modulo de ajuste a escala vertical 310. El modulo de ajuste a escala vertical 310 usa unas funciones de deformacion para procesar cada lmea de exploracion vertical de las coordenadas de pfxeles de imagen de gran angular 120 de tal modo que las coordenadas de pfxeles de imagen de gran angular 120 se ajustan a escala en una direccion vertical. Desde un punto de vista conceptual, se puede pensar en esto como en un “estiramiento” de la imagen de gran angular 110 en la direccion vertical. Este ajuste a escala vertical corrige en parte la profundidad exagerada en la imagen de gran angular 110.
El modulo de generacion de tabla de deformacion 140 tambien incluye un modulo de ajuste a escala horizontal 320 para usar funciones de deformacion de imagen parametricas para ajustar a escala las coordenadas de pfxeles de imagen de gran angular 120 en la direccion horizontal. De forma similar al ajuste a escala vertical, desde un punto de vista conceptual se puede pensar en esto como en un “estiramiento” de la imagen de gran angular 110 en la direccion horizontal. Ademas, el ajuste a escala horizontal se lleva a cabo de forma individual sobre cada lmea de exploracion vertical de tal modo que se conserva la relacion de aspecto de la imagen de gran angular 110.
El modulo de ajuste a escala vertical 310 y el modulo de ajuste a escala horizontal 320 crean una tabla de deformacion preliminar que establece una correlacion de las coordenadas de pfxeles preliminares con las coordenadas de pfxeles originales. Esta tabla de deformacion preliminar se podna usar para crear una imagen corregida preliminar. Esto no se hace en la practica, y la imagen corregida preliminar es una imagen virtual. La imagen corregida preliminar tiene las propiedades de que las lmeas verticales se mantienen como lmeas verticales pero se distorsionan las lmeas horizontales.
Con el fin de corregir esta distorsion horizontal, en el modulo de generacion de tabla de deformacion 140 tambien se incluye un modulo de distorsion horizontal 330. El modulo de distorsion horizontal 330 ajusta a escala en sentido vertical las coordenadas de pfxeles preliminares en la tabla de deformacion preliminar en cantidades diferentes dependiendo de la ubicacion. La salida del modulo de generacion de tabla de deformacion 140 es la tabla de deformacion 150. La tabla de deformacion establece una correlacion de las coordenadas de pfxeles en la imagen de gran angular corregida 130 con las coordenadas de pfxeles de imagen de gran angular originales 120.
IV. Vision de conjunto operativa de la correccion de imagen de gran angular
El procedimiento de correccion de imagen de gran angular en tiempo real de la presente invencion hace uso de una clase parametrica de funciones de deformacion de imagen. Estas funciones de deformacion de imagen parametricas intentan reducir al mmimo los problemas de percepcion de imagen que son causados por un espectador que tiene un campo de vision mas pequeno que un aparato de formacion de imagen. La clase parametrica de funciones de deformacion de imagen se denomina funciones de ajuste a escala uniforme espacialmente variable, o funciones de ajuste a escala SVU. A pesar de que las funciones de ajuste a escala SVU se pueden asemejar de forma local a una funcion de ajuste a escala uniforme para conservar las relaciones de aspecto, el factor de ajuste a escala vana a lo largo de la imagen para crear una deformacion. Ademas, la clase de proyecciones conformes puede proporcionar un ajuste a escala uniforme local, pero estas funciones introducen rotaciones, que son perturbadoras desde el punto de vista visual. Las funciones de ajuste a escala SVU evitan las rotaciones y eliminan los movimientos de nado cuando se visualizan imagenes panoramicas.
La figura 4 es un diagrama de flujo general que ilustra el funcionamiento del procedimiento de correccion de imagen de gran angular en tiempo real del sistema de correccion de imagen de gran angular en tiempo real 100 que se muestra en la figura 1. En general, el procedimiento genera una tabla de deformacion a partir de las coordenadas de pfxeles de imagen de gran angular y procesa una imagen de gran angular usando la tabla de deformacion para crear una imagen de gran angular corregida. Mas en concreto, las coordenadas de pfxeles de imagen de gran angular 120 a partir de la imagen de gran angular 110 se reciben como entrada (el recuadro 400). A continuacion, se genera la tabla de deformacion 150 (el recuadro 410). Esta tabla de deformacion 150 se usa para determinar una ubicacion de las coordenadas de pfxeles de imagen de gran angular corregidas 130 en las coordenadas de pfxeles de imagen de gran angular 120.
Tal como se analiza en detalle en lo sucesivo, la generacion de la tabla de deformacion 150 incluye un ajuste a escala vertical, un ajuste a escala horizontal y una correccion de distorsion horizontal. El ajuste a escala vertical corrige la profundidad exagerada en la imagen de gran angular 110. Con el fin de corregir la profundidad exagerada, es necesario que los objetos o personas distantes en el centro de la imagen de gran angular 110 se agranden en relacion con aquellos objetos o personas que se encuentran cerca de la camara. Dicho de otra forma, las funciones de deformacion debenan ser de tal modo que las mismas realicen un acercamiento del centro mas que de los lados al tiempo que se imita de forma local un ajuste a escala uniforme. Las funciones de ajuste a escala SVU mantienen las lmeas verticales como lmeas verticales.
Con el fin de mantener la relacion de aspecto de la imagen de gran angular 110, tambien se lleva a cabo un ajuste a escala horizontal. En concreto, se usan unas funciones de deformacion de imagen parametricas (tales como unas funciones de ajuste a escala SVU) para llevar a cabo un ajuste a escala horizontal para generar una nueva anchura para cada lmea de exploracion vertical para la imagen de gran angular 110. A pesar de que las funciones de ajuste a escala SVU mantienen las lmeas verticales como lmeas verticales, las mismas inducen una determinada cantidad de distorsion vertical. Desde el punto de vista visual, esto se percibe como unas lmeas horizontales inclinadas y distorsionadas. A menudo, las escenas contienen unas superficies horizontales cerca de la parte de arriba o la parte de debajo de la imagen, tal como una mesa y un techo en una sala, para las cuales pueden ser perceptibles las distorsiones.
Con el fin de corregir esta distorsion vertical, el procedimiento de correccion de imagen de gran angular en tiempo real incluye adicionalmente llevar a cabo una correccion de distorsion horizontal para corregir la distorsion horizontal en la imagen de gran angular 110. En general, esto se logra mediante la relacion de la uniformidad del ajuste a escala vertical y un ajuste a escala de forma no lineal en una ubicacion vertical en la imagen de gran angular 110 (tal como a lo largo de una lmea de exploracion vertical). Despues del ajuste a escala vertical, el ajuste a escala horizontal y la correccion de distorsion horizontal, se genera la tabla de deformacion 150 que establece una correlacion de un pixel en la imagen de gran angular corregida 130 con la imagen de gran angular 110.
Una vez que se ha generado la tabla de deformacion 150, la imagen de gran angular 110 se recibe como entrada (el recuadro 420). La imagen de gran angular 110 se deforma entonces en tiempo real para crear la imagen de gran angular corregida 130. La tabla de deformacion establece en donde se ha de hallar un pixel en la imagen de gran angular 110 para cada posicion en la imagen de gran angular corregida 130 para producir una imagen de gran angular libre de distorsion.
Con el fin de entender mas plenamente el procedimiento de correccion de imagen de gran angular en tiempo real de la invencion, se presenta un ejemplo. La figura 20 ilustra un ejemplo del funcionamiento del procedimiento de imagen de gran angular en tiempo real tal como se muestra en la figura 4. En particular, se recibe para su procesamiento la imagen de gran angular 110 que contiene una escena de una videoconferencia que se capta por medio de una camara de gran angular (que no se muestra).
A continuacion, se determinan las coordenadas de cada pixel dentro de la imagen de gran angular 110. En el presente ejemplo, un sistema de coordenadas rectilmeas que tiene un eje vertical Y y un eje horizontal X se construye para aplicarse a la imagen de gran angular 110. La anchura de la imagen de gran angular de origen es w. Un pixel 2000 a partir de la imagen de gran angular 110 se representa en las coordenadas de pfxeles de imagen de gran angular 120 por medio de las coordenadas de pfxeles (x, y) (el recuadro 2010). Se debena hacer notar que x representa la ubicacion horizontal del pixel 2000 a lo largo del eje X e y representa la ubicacion vertical del pixel 2000 a lo largo del eje Y.
La tabla de deformacion 150 se genera entonces para determinar una ubicacion de las coordenadas de pfxeles 2010 dentro de la imagen corregida 130. Tal como se muestra en la figura 20, la tabla de deformacion tiene un segundo sistema de coordenadas rectilmeas que tiene un eje vertical V y un eje horizontal X'. La anchura de la imagen corregida 130 es W. Usando las funciones de deformacion de imagen parametricas y los factores de ajuste a escala que se describen en detalle en lo sucesivo, las coordenadas de pfxeles 2010 se colocan en una ubicacion dentro de la imagen corregida para denotar la ubicacion de las coordenadas de pfxeles en la imagen corregida 130. Tal como se muestra la figura 20, la ubicacion de las coordenadas de pfxeles 2010 en la tabla de deformacion viene dada por las coordenadas de pfxeles corregidas (x', y'). Una vez mas, se debena hacer notar que X representa la ubicacion horizontal de las coordenadas de pfxeles 2010 a lo largo del eje X1 e y representa la ubicacion vertical de las coordenadas de pfxeles 2010 a lo largo del eje Y.
La imagen corregida 130 se crea en tiempo real mediante el uso de la tabla de deformacion para establecer una correlacion de la ubicacion del pixel 2000 (de la imagen de gran angular 110) con un pixel corregido 2020 que esta ubicado en la imagen corregida 130. Una vez que se ha determinado la ubicacion del pixel 2000 en la imagen corregida 130, el valor de RGB del pixel 2000 se puede aplicar al pixel corregido 2020 en la imagen corregida 130. De esta forma, la imagen de gran angular 110 se puede corregir en tiempo real para crear la imagen corregida 130 que se encuentra virtualmente libre de distorsion y de otros problemas de percepcion que, en general, estan asociados con las imagenes de gran angular.
V. Detalles operativos
El procedimiento de correccion de imagen de gran angular en tiempo real procesa una imagen de gran angular en tiempo real para corregir los problemas de distorsion y de percepcion que estan asociados con las imagenes de gran angular. El procesamiento de correccion se lleva a cabo usando una clase parametrica de funciones de deformacion de imagen que tienen unos factores de ajuste a escala. Estas funciones de deformacion de imagen parametricas y factores de ajuste a escala se usan para generar una tabla de deformacion, que se aplica directamente a la imagen de gran angular. En un aspecto de la invencion, la imagen de gran angular es una proyeccion cilmdrica. Asimismo, en un aspecto de la invencion las funciones de deformacion de imagen parametricas son funciones de ajuste a escala SVU.
Ajuste a escala vertical
La figura 5 es un diagrama de flujo que ilustra los detalles del modulo de ajuste a escala vertical 310 que se muestra en la figura 3. Las coordenadas de pfxeles de gran angular 120 se reciben como entrada (el recuadro 500). A continuacion, se determinan unas funciones de deformacion de imagen parametricas (tales como unas funciones de ajuste a escala SVU) usando un conjunto de curvas y factores de ajuste a escala. En particular, se especifican unas curvas de origen (el recuadro 510) junto con un factor de deformacion (el recuadro 520). Usando estas curvas de origen y el factor de deformacion, se calculan unas curvas de destino (el recuadro 530).
La figura 6 ilustra la determinacion de la funcion de deformacion por medio de dos conjuntos de curvas: (1) unas curvas de origen; y (2) unas curvas de destino. En un aspecto de la invencion, las curvas de origen son dadas por un usuario por medio de una interfaz de usuario simple. Estas curvas de origen proporcionan los parametros para la funcion de deformacion de imagen parametrica. A traves de la interfaz de usuario, se pide a un usuario que defina dos curvas cubicas. Estas dos curvas de origen definen caractensticas horizontales comunes (del mundo real), tales como las partes de arriba de las cabezas de las personas, y el borde de la mesa. Tal como se muestra en la figura 6, se especifican una curva de origen de arriba St y una curva de origen de debajo Sb.
El factor de deformacion, a, que tambien puede ser elegido por el usuario, determina cuanto se deforma la imagen. El factor de deformacion, a, se encuentra entre 0 y 1, en donde a = 0 es la ausencia de deformacion y a = 1 es la deformacion maxima. Desde un punto de vista conceptual, especificar a = 0 dejara la imagen sin retocar, y especificar a = 1 tirara de los pfxeles en las curvas de origen hasta las lmeas entre los puntos de extremo. Por lo general, el factor de deformacion ideal se encuentra aproximadamente a medio camino entre 0 y 1.
Una vez que se han especificado las curvas de origen y el factor de deformacion, se pueden calcular las curvas de destino (el recuadro 530). Supongase que y = St(x) e y = Sb(x) son las ecuaciones de las curvas de origen de arriba y de debajo, de forma respectiva. Dos curvas de destino (a las que se moveran los puntos en la curva de origen) se determinan por medio de las curvas de origen y a. En concreto, se definen una curva de destino de arriba Tt y una curva de destino de debajo Tb. Si se define una ecuacion de una lmea entre los puntos de extremo de St(x) como y = yt(x), y la ecuacion de la lmea que conecta los extremos de origen de debajo como y = yb(x), entonces la ecuacion de la curva de destino de arriba es Tt(x) = (1 - a) St(x) a yt(x), y Tb(x) = (1 - a) Sb(x) a yb(x).
Entonces se calcula un factor de ajuste a escala principal, r(x), usando las curvas de origen y las curvas de destino (el recuadro 540). En particular, dada cualquier lmea de exploracion vertical x tal como se muestra en la figura 6, supongase que A, B indican sus intersecciones con las curvas de origen, y A', B' las intersecciones con las curvas de destino. La funcion de ajuste a escala SVU ajustara a escala AB a A'B'. Supongase que
Figure imgf000010_0001
La relacion, r(x), es un factor de ajuste a escala principal para una lmea de exploracion vertical que esta ubicada en la posicion horizontal x. Las coordenadas de pfxeles de gran angular 120 de la lmea de exploracion vertical se ajustan entonces a escala en la direccion vertical usando el factor de ajuste a escala principal, r(x) (el recuadro 550). Ajuste a escala horizontal
Con el fin de conservar la relacion de aspecto, las coordenadas de pfxeles de gran angular 120 tambien se ajustan a escala en la direccion horizontal. Este ajuste a escala horizontal usa el mismo factor de ajuste a escala principal, r(x). Dicho de otra forma, al igual que para el ajuste a escala vertical, una lmea de exploracion vertical tambien se ajusta a escala en sentido horizontal por medio del factor de ajuste a escala principal, r(x), para conservar la relacion de aspecto.
La figura 7 es un diagrama de flujo que ilustra los detalles del modulo de ajuste a escala horizontal que se muestra en la figura 3. Las coordenadas de pfxeles de gran angular ajustadas a escala en vertical se reciben como entrada (el recuadro 700). Usando el factor de ajuste a escala principal, r(x), las coordenadas de pfxeles de gran angular ajustadas a escala en vertical se ajustan a escala en la direccion horizontal (el recuadro 710). Una vez que se han ajustado a escala las coordenadas de pfxeles de gran angular ajustadas a escala en vertical 120, la anchura total de una imagen corregida preliminar, W, se vuelve
Figure imgf000010_0002
en la que w es la anchura de la imagen de gran angular (o de origen) 110.
A continuacion, se genera una tabla de deformacion preliminar (el recuadro 720). La tabla de deformacion preliminar contiene unas coordenadas de pfxeles preliminares. Las coordenadas de pfxeles preliminares son las coordenadas de pfxeles de gran angular que se han ajustado a escala en sentido vertical y en sentido horizontal. Desde un punto de vista conceptual, las coordenadas de pfxeles preliminares se pueden usar para construir una imagen corregida preliminar. Por lo tanto, para cualquier pixel (x, y) en la imagen de gran angular 110, supongase que (x’, y') indican su nueva posicion en la imagen corregida preliminar. Esto produce,
Figure imgf000010_0003
La ecuacion (3) es la ecuacion de establecimiento de correlacion directa para la funcion de ajuste a escala SVU. La funcion de ajuste a escala SVU no es un ajuste a escala uniforme perfecto por todas partes. Resulta sencillo demostrar que la unica funcion que es un ajuste a escala uniforme perfecto por todas partes es una funcion de ajuste a escala global uniforme.
La funcion de ajuste a escala SVU es similar a una proyeccion sobre una superficie cilmdrica generalizada. No obstante, tal como se muestra en el Apendice II, una proyeccion simple de ese tipo no produce un ajuste a escala uniforme de forma local. Es deseable un ajuste a escala uniforme local, y esta carencia de un ajuste a escala uniforme local da lugar a que parezca que los objetos en la imagen corregida preliminar estan estirados.
Correccion de distorsion horizontal
Una vez que las coordenadas de pfxeles de gran angular 120 se han ajustado a escala en las direcciones vertical y horizontal, se corrige la distorsion horizontal en la tabla de deformacion preliminar resultante. La correccion de distorsion horizontal es necesaria debido a que, a pesar de que la clase parametrica de funciones de deformacion de imagen (tales como una funcion de ajuste a escala SVU) mantiene las lmeas verticales como lmeas verticales, estas distorsionan las lmeas horizontales. Para reducir al mmimo este problema, la uniformidad del ajuste a escala se relaja y se ajusta a escala de forma no lineal en cada lmea de exploracion vertical.
La figura 8 es un diagrama de flujo que ilustra los detalles del modulo de distorsion horizontal 330 que se muestra en la figura 3. En general, el modulo 330 divide las coordenadas de pfxeles preliminares en la tabla de deformacion preliminar en secciones y ajusta a escala cada seccion en la direccion vertical de acuerdo con un factor de ajuste a escala espedfico para esa seccion. Los factores de ajuste a escala pueden ser diferentes entre secciones y, por lo general, son diferentes para al menos una seccion.
En concreto, el modulo de correccion de distorsion horizontal 330 divide en un primer momento la tabla de deformacion preliminar en secciones (el recuadro 800). En un aspecto de la invencion, la imagen corregida preliminar se divide, desde un punto de vista conceptual, tal como se muestra en la figura 9. La figura 9 ilustra la funcion de ajuste a escala vertical y una vista conceptual de la division de la imagen corregida preliminar en tres secciones. Se debena hacer notar que, en la figura 9, y es la direccion vertical. Haciendo referencia a la figura 9, se define una primera seccion 900 entre la curva de origen de debajo Sb y la curva de origen de arriba St. Otras secciones incluyen secciones fuera de las curvas de origen, incluyendo una segunda seccion 910 por debajo de las curvas de origen y una tercera seccion 920 por encima de las curvas de origen.
Las coordenadas de pfxeles preliminares que estan ubicadas en la primera seccion 900 entre las curvas de origen se ajustan a escala en la direccion vertical (y) usando el factor de ajuste a escala principal, r(x) (el recuadro 810). Este ajuste a escala en la direccion vertical se lleva a cabo tal como se ha descrito en lo que antecede. Las coordenadas de pfxeles preliminares que estan ubicadas en las secciones fuera de las curvas de origen (la segunda seccion 910 y la tercera seccion 920) se ajustan a escala menos en la direccion vertical. Esto se lleva a cabo al especificar en un primer momento un factor de ajuste a escala secundario (el recuadro 820). El factor de ajuste a escala secundario, s, se muestra en la figura 9 por debajo del factor de ajuste a escala principal, r(x). A continuacion, las coordenadas de pfxeles preliminares que estan ubicadas en otras secciones 910, 920 fuera de las curvas de origen se ajustan a escala en la direccion vertical usando el factor de ajuste a escala secundario (el recuadro 830). Se debena hacer notar que el ajuste a escala horizontal sigue siendo el mismo (dicho de otra forma, usando el factor de ajuste a escala principal, r(x)) de tal modo que se mantiene la forma rectilmea de las lmeas verticales. Con el fin de mantener la continuidad entre secciones, las transiciones entre secciones se realizan mediante la aplicacion de un parametro de alisamiento, w (el recuadro 840). El parametro de alisamiento alisa la funcion de ajuste a escala vertical y conecta suavemente los dispares factores de ajuste a escala cuando la funcion de ajuste a escala vertical cruza las curvas de origen.
Haciendo referencia a las figuras 6 y 9, considerese la lmea vertical en x que se muestra en la figura 6. Tal como se muestra en la figura 9, g(y) es la funcion de ajuste a escala vertical que se puede definir que es el factor de ajuste a escala vertical en cualquier punto y en esta lmea vertical. Se debena hacer notar que g(y) depende de x. La funcion g(y) es controlada por medio de dos parametros, el factor de ajuste a escala secundario, s, y el parametro de alisamiento, w. La porcion de la lmea de exploracion vertical a una distancia de mas de w / 2 con respecto a las curvas de origen se ajusta a escala por medio del factor de ajuste a escala principal, r(x), entre las curvas de origen y por medio del factor de ajuste a escala secundario, s, fuera de las curvas de origen. Los tres segmentos constantes se pegan entre sf por medio de dos funciones polinomicas de ajuste cubicas en [St - 0,5 w, St 0,5 w]. Cada funcion polinomica de ajuste cubica tiene unos extremos con unos valores s y r(x) y una pendiente de 0 en ambos extremos.
El parametro de alisamiento w controla la continuidad en las curvas de origen. Por ejemplo, si la escena es discontinua en las curvas de origen, se puede elegir una w muy pequena sin unos artefactos perceptibles. En el caso especial en el que s = r(x), g(y) se vuelve una constante, que fue lo que se supuso al obtener la ecuacion (3). Una vez que la funcion de correccion de distorsion horizontal se ha aplicado a la tabla de deformacion preliminar, se genera la tabla de deformacion 150 que contiene las ubicaciones de las coordenadas de pfxeles de gran angular en la imagen de gran angular corregida 130 (el recuadro 850). La tabla de deformacion 150 se envfa entonces como salida (el recuadro 860). La tabla de deformacion se usa para construir la imagen de gran angular corregida 130 a partir de la imagen de gran angular 110.
Correccion del error de percepcion de visualizacion de imagenes de gran angular
Se puede pensar en los movimientos de nado como en un tipo especial de error de percepcion de profundidad. A medida que la escena rota, el espectador, con un campo de vision mas pequeno, observa cambios inesperados en el tamano de los objetos a medida que estos cruzan el campo de vision. Un objeto parece demasiado grande cuando el mismo entra por primera vez en la vista debido a la distorsion geometrica, luego este es demasiado pequeno en el centro de la vista debido al escorzo exagerado y, por ultimo, es demasiado grande una vez mas cuando este sale de la vista. El resultado es que parece que los objetos se alejan del espectador y entonces vuelven hacia el espectador / Dicho de otra forma, parece que el objeto “nada”.
La funcion de ajuste a escala SVU ayuda a corregir los problemas de error de percepcion de profundidad. Esto se logra mediante el uso de una funcion de ajuste a escala SVU simetrica para visualizar imagenes panoramicas. La curva de origen de debajo es la imagen especular de la curva de origen de arriba. Las curvas de origen pasan a traves de las esquinas de la imagen y tienen un mmimo (o maximo) en la lmea de exploracion vertical central. Un parametro especifica la altura de los puntos centrales y un segundo parametro es el factor de deformacion, a, tal como se ha analizado en lo que antecede.
Con el fin de ilustrar de forma visual la eficacia del sistema y procedimiento de correccion de imagen de gran angular en tiempo real en la eliminacion de los movimientos de nado, se presentan las figuras 10A y 10B. Ambas de las figuras 10A y 10B ilustran una instantanea durante una vista panoramica de una sala de baile con una proyeccion en perspectiva y un campo de vision de 100 grados. La figura 10A ilustra una vista en perspectiva de la sala de baile sin correccion alguna. La figura 10B ilustra la misma vista que en la figura 10A despues de la aplicacion de la funcion de ajuste a escala SVU. A partir de las figuras 10A y 10B, se puede observar que la imagen esta menos distorsionada despues del procesamiento usando la funcion de ajuste a escala SVU. Cabe destacar aun mas que, cuando se rota la escena en la figura 10A con una proyeccion en perspectiva, se observan movimientos de nado y un estiramiento graves en las paredes y las mesas. Despues de la aplicacion de la funcion de ajuste a escala SVU, se observa muy poco estiramiento y los movimientos de nado se eliminan virtualmente. El resultado es que la escena parece mucho mas estable mientras que se esta rotando la escena.
VI. Ejemplo practico y resultados
El siguiente ejemplo practico se usa para ilustrar los detalles operativos de la invencion. El presente ejemplo practico incluye la puesta en practica del procedimiento de la figura 4. Se debena hacer notar que el presente ejemplo practico es solo una forma en la que la invencion puede funcionar y usarse, y se proporciona solo para fines ilustrativos.
En el presente ejemplo practico, el sistema y procedimiento de la invencion se puso en practica en un entorno de videoconferencia. Es necesario que los sistemas de videoconferencia sean capaces de representar un amplio conjunto de vistas para permitir que los espectadores remotos vean a la totalidad de los participates. Por lo general, estos participates se sientan en torno a una mesa. Los sistemas actuales usan una camara de rotacion en un plano horizontal - rotacion en un plano vertical - acercamiento / alejamiento para proporcionar la posibilidad de visualizar porciones diferentes de la sala. No obstante, estos sistemas actuales no pueden proporcionar una vision de conjunto completa. Los mismos tambien adolecen de una cierta latencia cuando se realiza una rotacion en un plano horizontal para cubrir a un nuevo interlocutor. Con el fin de mitigar estos problemas, se usaron el sistema y procedimiento de correccion de imagen de gran angular en tiempo real de la invencion.
Una imagen de gran angular que tiene una proyeccion cilmdrica se obtuvo usando una camara de gran angular que esta orientada hacia la escena de la videoconferencia. La figura 11 ilustra la imagen de gran angular cilmdrica resultante que se genera a partir de la camara de gran angular. En la figura 11, observese que la persona en el extremo mas lejano de la mesa es extremadamente pequena. A pesar de que las distorsiones geometricas en torno a los bordes se corrigen por medio de una proyeccion cilmdrica, hay poca mejora en terminos de error de percepcion de profundidad. Las personas en el extremo mas lejano de la mesa siguen pareciendo muy pequenas en comparacion con las personas cerca de la camara.
Los resultados a partir del post procesamiento de la imagen en la figura 11 por medio del sistema y procedimiento de correccion de imagen de gran angular en tiempo real se muestran en las figuras 12-16. La figura 12 ilustra las curvas tanto de origen como de destino con el factor de deformacion, a = 0,3. La figura 13 ilustra la imagen corregida preliminar que es un resultado de la aplicacion de un ajuste a escala vertical y horizontal usando las funciones de ajuste a escala SVU sin una correccion de distorsion horizontal. La figura 14 ilustra el resultado de la aplicacion de las funciones de ajuste a escala SVU con una correccion de distorsion horizontal.
Ademas, se presentan algunos resultados usando diferentes factores de deformacion, a. En concreto, la figura 15 ilustra los resultados con un factor de deformacion, a = 0,2. La figura 16 ilustra los resultados con un factor de deformacion, a = 0,4. Se debena hacer notar que un factor de deformacion de a = 0 es una deformacion minima mientras que un factor de deformacion de a = 1 es una deformacion maxima.
La descripcion anterior de la invencion se ha presentado para los fines de ilustracion y de descripcion. No se tiene por objeto que la misma sea exhaustiva o que limite la invencion a la forma precisa que se divulga. Son posibles muchas modificaciones y variaciones a la luz de la ensenanza anterior.
Apendice I
Se tiene por objeto que el siguiente analisis proporcione mas detalles matematicos acerca de las causas de las distorsiones evidentes en las imagenes de gran angular.
Artefactos de distorsion de forma y de no rigidez
A medida que los objetos se mueven desde el centro hasta los bordes en una imagen de gran angular, parece que los mismos se distorsionan. La figura 17 ilustra una proyeccion en perspectiva de un objeto rectangular que rota en torno a la camara. O es el centro de la proyeccion, n es el plano de proyeccion, y f es la longitud focal. Supongase que w y h son la anchura y la altura del objeto. Supongase que el objeto rota desde Pi hasta P2 , en donde OP1 es perpendicular con respecto al plano de imagen y 0 es el angulo entre OP2 y OPi. Supongase que d = ||OPi|| = ||OP2||. En la posicion Pi, su anchura y su altura sobre el plano de imagen son:
Figure imgf000013_0001
En P2 , su anchura y su altura (las longitudes de los dos bordes que son adyacentes a P2) sobre el plano de imagen son:
Figure imgf000013_0002
Esto produce:
Figure imgf000013_0003
y
Figure imgf000013_0004
Las ecuaciones (5) y (6) muestran que tanto la anchura como la altura aumentan a medida que el objeto rota desde el centro de la imagen hasta el borde. Cuanto mas grande sea el angulo de campo de vision, mayor sera la cantidad de aumento. La ecuacion 7 muestra que la imagen del objeto tambien se deforma (se estira) cuando el objeto rota desde el centro de la imagen hasta el borde. Cuanto mas grande sea el angulo de campo de vision, mayor sera la cantidad de deformacion. A medida que el campo de vision se aproxima a 90 grados, la relacion de deformacion W2 / h2 se aproxima al infinito.
Las deformaciones de la perspectiva siguen siendo correctas en que, si el espectador de la imagen pone su mirada en O, no parecena que la imagen este deformada. No obstante, cuando se visualiza la imagen de gran angular con un campo de vision mas pequeno, el espectador espera unos aumentos mas pequenos de los tamanos de imagen asf como una cantidad mas pequena de deformacion sobre el plano de imagen a medida que el objeto rota. Esta es la razon por la cual los objetos parecen estar estirados en los bordes. Los dos angulos que solfan subtender unos angulos iguales ya no lo hacen. Los cambios en el tamano, mayores de lo esperado, y la deformacion sobre el plano de imagen, hacen que el usuario sienta que la escena no es ngida, como si la misma estuviera nadando en torno al usuario.
Error de percepcion de profundidad
Un problema relacionado que es causado por el campo de vision mas pequeno en el instante de la visualizacion es el error de percepcion de profundidad. Las imagenes de gran angular exageran la disparidad de profundidad entre los objetos cercanos y lejanos. Una indicacion visual importante de la profundidad de un objeto en una escena es la relacion (que se denomina relacion de escorzo de profundidad) entre los tamanos de imagen de objetos similares que estan colocados en unas ubicaciones cercanas y lejanas. Un campo de vision mas pequeno da como resultado una relacion de escorzo mas pequena. Esto es evidente en dos fotograffas tomadas de dos las personas, una ligeramente mas alejada de la camara que la otra. Las figuras 18A y 18B ilustra el concepto de error de percepcion de profundidad. En la figura 18A, se capta una escena con una camara de campo de vision ordinaria. En la figura 18B, se capta la misma escena con una camara de gran angular. Tal como se puede observar al comparar las figuras 18A y 18B, la camara de gran angular (que se muestra en la figura 18B) exagera la diferencia entre los tamanos de las dos las personas y, por lo tanto, parece que la distancia entre las dos personas aumenta en la fotograffa que se toma con la camara de gran angular. En las aplicaciones de videoconferencia, la imagen de camara de gran angular da como resultado que los participates distantes sean extremadamente pequenos en la escena.
Apendice II
El siguiente analisis muestra que una proyeccion sobre una superficie cilmdrica generalizada no produce un ajuste a escala uniforme de forma local. Considerese el ejemplo de la proyeccion de una vista cilmdrica regular en un cilindro eUptico (la seccion transversal es una elipse). La figura 19 ilustra un diagrama bidimensional de las secciones transversales del cilindro regular y el cilindro eUptico. Supongase que a y b indican los ejes corto y largo de la elipse. Entonces, la ecuacion de la elipse es x =a cos (0) y z = b sen (0). La ecuacion del drculo es x = a cos (0) y z = b sen (0). Supongase que s' y s indican las longitudes de arco de la elipse y el drculo, de forma respectiva. Entonces,
Figure imgf000014_0001
Dado un d0 infinitamente pequeno, las longitudes de arco sobre el drculo y la elipse son ds y ds’, de forma respectiva. Por lo tanto, el ajuste a escala horizontal local es ds’ / ds = (a2 sen20 b2 cos20)1/2 / a. Cuando 0 = n / 2, el ajuste a escala horizontal local ds’ / ds = 1, mientras que el ajuste a escala vertical (el eje y) es b / a. Por lo tanto, el ajuste a escala vertical es mas grande que el ajuste a escala horizontal y parecera que los objetos se estiran en sentido vertical. Exactamente lo contrario es cierto cuando 0 = 0. Su ajuste a escala vertical es 1, mientras que su ajuste a escala horizontal es b / a. Por lo tanto, parecera que los objetos cerca de 0 = 0 estan estirados en sentido horizontal.

Claims (31)

REIVINDICACIONES
1. Un procedimiento implementado por ordenador para llevar a cabo una correccion en tiempo real de una imagen de gran angular, que comprende:
obtener (400, 500) unas coordenadas de pfxeles (120) a partir de la imagen de gran angular, que se denominan en lo sucesivo en el presente documento coordenadas de pfxeles de imagen de gran angular;
generar (410, 850) una tabla de deformacion (150) mediante la aplicacion de una funcion de deformacion de imagen parametrica a las coordenadas de pfxeles, en el que la funcion de deformacion de imagen parametrica es una funcion de ajuste a escala uniforme espacialmente variable, SVU, que se asemeja de forma local a una funcion de ajuste a escala uniforme y que tiene un factor de ajuste a escala que vana a lo largo de la imagen de gran angular; y
deformar (430) la imagen de gran angular en tiempo real usando la tabla de deformacion para crear (440) una imagen de gran angular corregida (130),
en el que generar una tabla de deformacion comprende:
procesar cada lmea de exploracion vertical de la imagen de gran angular de tal modo que a las coordenadas de pfxeles de imagen de gran angular de una lmea de exploracion vertical se les aplica (550) un factor de ajuste a escala (r(x)) en la direccion vertical, en el que el factor de ajuste a escala vana a lo largo de la imagen de gran angular;
procesar cada lmea de exploracion vertical de la imagen de gran angular de tal modo que a las coordenadas de pfxeles de imagen de gran angular de una lmea de exploracion vertical a las que se aplico un factor de ajuste a escala en la direccion vertical, se les aplica (710) el factor de ajuste a escala (r(x)) en la direccion horizontal;
crear (720) una tabla de deformacion preliminar que contiene unas coordenadas de pfxeles preliminares; y llevar a cabo (800 - 840) una correccion de distorsion horizontal sobre la tabla de deformacion preliminar usando la funcion de deformacion de imagen parametrica para crear la tabla de deformacion.
2. El procedimiento de acuerdo con la reivindicacion 1, que comprende adicionalmente calcular (540) el factor de ajuste a escala usando curvas de origen (St, Sb) y curvas de destino (Tt, Tb).
3. El procedimiento de acuerdo con la reivindicacion 2, que comprende adicionalmente:
especificar (510) las curvas de origen;
especificar (520) un factor de deformacion (a); y
calcular (530) las curvas de destino usando las curvas de origen y el factor de deformacion.
4. El procedimiento de acuerdo con la reivindicacion 3, en el que las curvas de origen comprenden adicionalmente una curva de origen de debajo (Sb) y una curva de origen de arriba (St).
5. El procedimiento de acuerdo con la reivindicacion 3, en el que las curvas de destino comprenden adicionalmente una curva de destino de debajo (Tb) y una curva de destino de arriba (Tt).
6. El procedimiento de acuerdo con la reivindicacion 1, en el que llevar a cabo una correccion de distorsion horizontal comprende adicionalmente:
dividir (800) la tabla de deformacion preliminar en una pluralidad de secciones; y
ajustar a escala (810 - 830) las coordenadas de pfxeles preliminares contenidas en cada una de las secciones en la direccion vertical usando al menos dos factores de ajuste a escala diferentes.
7. El procedimiento de acuerdo con la reivindicacion 6, en el que los al menos dos factores de ajuste a escala diferentes incluyen un factor de ajuste a escala principal (r(x)) y un factor de ajuste a escala secundario (s).
8. El procedimiento de acuerdo con la reivindicacion 1, que comprende adicionalmente ajustar los factores de ajuste a escala para corregir la distorsion horizontal.
9. El procedimiento de acuerdo con la reivindicacion 1, que comprende adicionalmente definir (510- 530) curvas de origen y curvas de destino para determinar las funciones de ajuste a escala SVU.
10. El procedimiento de acuerdo con la reivindicacion 9, en el que las curvas de origen son definidas por un usuario.
11. El procedimiento de acuerdo con la reivindicacion 1, que comprende adicionalmente hacer que un usuario defina un factor de deformacion que especifica una cantidad de deformacion que se aplica a la imagen de gran angular.
12. El procedimiento de acuerdo con la reivindicacion 8, en el que ajustar los factores de ajuste a escala comprende adicionalmente definir un factor de ajuste a escala vertical para controlar el ajuste a escala horizontal.
13. El procedimiento de acuerdo con la reivindicacion 1, en el que:
llevar a cabo (800 - 840) una correccion de distorsion horizontal sobre la tabla de deformacion preliminar comprende corregir la distorsion horizontal mediante la aplicacion de la funcion de deformacion de imagen parametrica y el factor de ajuste a escala a la tabla de deformacion preliminar para generar la tabla de deformacion.
14. El procedimiento de acuerdo con la reivindicacion 13, que comprende adicionalmente:
aplicar la tabla de deformacion a la imagen de gran angular para determinar la ubicacion de las coordenadas de pfxeles de la imagen de gran angular en una imagen de gran angular corregida; y
aplicar un valor de RGB para cada una de las coordenadas de pfxeles de la imagen de gran angular a la imagen de gran angular corregida.
15. El procedimiento de acuerdo con la reivindicacion 13, en el que el factor de ajuste a escala se calcula usando unas curvas de origen que son especificadas por un usuario y unas curvas de destino que se calculan a partir de las curvas de origen.
16. El procedimiento de acuerdo con la reivindicacion 13, en el que corregir la distorsion horizontal comprende adicionalmente aplicar un factor de ajuste a escala secundario.
17. El procedimiento de acuerdo con la reivindicacion 1, que comprende adicionalmente:
dividir (800) la tabla de deformacion preliminar en una pluralidad de secciones, conteniendo cada seccion al menos algunas de las coordenadas de pfxeles preliminares;
especificar (820) un factor de ajuste a escala secundario (s) que es diferente del factor de ajuste a escala (r(x)); y ajustar a escala en sentido vertical (810, 830) cada una de la pluralidad de secciones usando el factor de ajuste a escala para las coordenadas de pfxeles preliminares en un primer conjunto de secciones de la pluralidad de secciones y el factor de ajuste a escala secundario para las coordenadas de pfxeles preliminares en un segundo conjunto de secciones de la pluralidad de secciones para corregir la distorsion horizontal.
18. El procedimiento de acuerdo con la reivindicacion 17, que comprende adicionalmente calcular (540) el factor de ajuste a escala usando una curva de origen de debajo, una curva de origen de arriba, una curva de destino de debajo y una curva de destino de arriba.
19. El procedimiento de acuerdo con la reivindicacion 18, en el que la curva de origen de debajo, la curva de origen de arriba, la curva de destino de debajo y la curva de destino de arriba son curvas cubicas.
20. El procedimiento de acuerdo con la reivindicacion 18, en el que dividir comprende adicionalmente crear una primera seccion que contiene coordenadas de pfxeles preliminares que se corresponden con pfxeles en la imagen de gran angular que estan ubicados entre la curva de origen de arriba y la curva de origen de debajo.
21. El procedimiento de acuerdo con la reivindicacion 20, en el que el primer conjunto de secciones es la primera seccion, y en el que ajustar a escala en sentido vertical comprende adicionalmente usar el factor de ajuste a escala para ajustar a escala la primera seccion en la direccion vertical.
22. El procedimiento de acuerdo con la reivindicacion 21, en el que el segundo conjunto de secciones incluye cada una de la pluralidad de secciones excepto la primera seccion, y en el que ajustar a escala en sentido vertical comprende adicionalmente usar el factor de ajuste a escala secundario para ajustar a escala el segundo conjunto de secciones en la direccion vertical.
23. El procedimiento de acuerdo con la reivindicacion 17, que comprende adicionalmente usar una funcion de alisamiento para conectar (840) cada una de la pluralidad de secciones.
24. Un medio legible por ordenador que tiene instrucciones ejecutables por ordenador para llevar a cabo el procedimiento descrito en la reivindicacion 1.
25. El medio legible por ordenador de acuerdo con la reivindicacion 24, que tiene adicionalmente instrucciones ejecutables por ordenador para una correccion y visualizacion en tiempo real de una imagen de gran angular, que comprende:
generar la tabla de deformacion que contiene las coordenadas de los pfxeles dentro de la imagen de gran angular, que comprende adicionalmente:
especificar (510) unas curvas de origen (St , Sb) en la imagen de gran angular;
especificar (520) un factor de deformacion (a) que se corresponde con una cantidad de deformacion que se aplica a las coordenadas de pfxeles de imagen de gran angular;
calcular (530) unas curvas de destino (Tt, Tb) usando las curvas de origen y el factor de deformacion;
calcular (540) el factor de ajuste a escala (r(x)) usando las curvas de origen y las curvas de destino; y
usar el factor de ajuste a escala para ajustar a escala las coordenadas de pfxeles de imagen de gran angular para generar la tabla de deformacion.
26. El medio legible por ordenador de acuerdo con la reivindicacion 25, en el que el factor de deformacion es un numero entre 0 y 1, inclusive.
27. El medio legible por ordenador de acuerdo con la reivindicacion 25, en el que las curvas de origen incluyen una curva de origen de arriba y una curva de origen de debajo, definiendo la curva de origen de arriba una caractenstica horizontal en una parte de arriba de la imagen de gran angular y definiendo la curva de origen de debajo una caractenstica horizontal en una parte de debajo de la imagen de gran angular.
28. Un sistema de correccion de imagen de gran angular en tiempo real (100) para corregir defectos de percepcion y distorsion en una imagen de gran angular (110), que comprende:
una tabla de deformacion que especifica una ubicacion dentro de la imagen de gran angular de cada pixel en la misma;
un modulo de generacion de tabla de deformacion (140) que usa unas funciones de deformacion de imagen parametricas, en el que una funcion de deformacion de imagen parametrica es una funcion de ajuste a escala uniforme espacialmente variable, SVU, que se asemeja de forma local a una funcion de ajuste a escala uniforme y que tiene un factor de ajuste a escala que vana a lo largo de la imagen de gran angular;
una tabla de deformacion (150) generada a partir del modulo de generacion de tabla de deformacion que contiene las coordenadas de pfxeles de imagen de gran angular; y
un sistema de deformacion de imagen en tiempo real (160) que aplica la tabla de deformacion a la imagen de gran angular para crear una imagen de gran angular corregida (130),
en el que el modulo de generacion de tabla de deformacion comprende adicionalmente:
un modulo de entrada (300) que recibe las coordenadas de pfxeles de imagen de gran angular (120); un modulo (310) que esta configurado para procesar cada lmea de exploracion vertical de la imagen de gran angular de tal modo que a las coordenadas de pfxeles de imagen de gran angular de una lmea de exploracion vertical se les aplica un factor de ajuste a escala (r(x)) en la direccion vertical, en el que el factor de ajuste a escala vana a lo largo de la imagen de gran angular;
un modulo (320) que esta configurado para:
procesar cada lmea de exploracion vertical de la imagen de gran angular de tal modo que a las coordenadas de pfxeles de imagen de gran angular de una lmea de exploracion vertical a las que se aplico un factor de ajuste a escala en la direccion vertical, se les aplica el factor de ajuste a escala (r(x)) en la direccion horizontal, y
crear una tabla de deformacion preliminar que contiene unas coordenadas de pfxeles preliminares; y un modulo de correccion de distorsion horizontal (330) que esta configurado para llevar a cabo una correccion de distorsion horizontal sobre la tabla de deformacion preliminar usando la funcion de deformacion de imagen parametrica para crear la tabla de deformacion.
29. El sistema de correccion de imagen de gran angular en tiempo real de acuerdo con la reivindicacion 28, que comprende adicionalmente curvas de origen y curvas de destino que se usan para calcular el factor de ajuste a escala.
30. El sistema de correccion de imagen de gran angular en tiempo real de acuerdo con la reivindicacion 28, en el que el modulo de generacion de tabla de deformacion comprende adicionalmente:
un factor de ajuste a escala secundario para llevar a cabo una correccion de distorsion horizontal.
31. El sistema de correccion de imagen de gran angular en tiempo real de acuerdo con la reivindicacion 28, que esta dispuesto para llevar a cabo el procedimiento descrito en una cualquiera de las reivindicaciones 1 a 23.
ES03012636T 2002-06-28 2003-06-03 Sistema y procedimiento de corrección de imagen digital de gran angular en tiempo real Expired - Lifetime ES2709942T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/186,915 US7058237B2 (en) 2002-06-28 2002-06-28 Real-time wide-angle image correction system and method for computer image viewing

Publications (1)

Publication Number Publication Date
ES2709942T3 true ES2709942T3 (es) 2019-04-22

Family

ID=29718030

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03012636T Expired - Lifetime ES2709942T3 (es) 2002-06-28 2003-06-03 Sistema y procedimiento de corrección de imagen digital de gran angular en tiempo real

Country Status (7)

Country Link
US (3) US7058237B2 (es)
EP (1) EP1376467B1 (es)
JP (1) JP4279613B2 (es)
KR (1) KR100702077B1 (es)
CN (1) CN1307596C (es)
ES (1) ES2709942T3 (es)
TW (1) TWI273511B (es)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184609B2 (en) * 2002-06-28 2007-02-27 Microsoft Corp. System and method for head size equalization in 360 degree panoramic images
US7149367B2 (en) * 2002-06-28 2006-12-12 Microsoft Corp. User interface for a system and method for head size equalization in 360 degree panoramic images
US7202888B2 (en) * 2002-11-19 2007-04-10 Hewlett-Packard Development Company, L.P. Electronic imaging device resolution enhancement
KR100469727B1 (ko) * 2003-03-07 2005-02-02 삼성전자주식회사 통화자의 얼굴을 화면 가운데에 위치시킬 수 있는화상통신용 통신단말기 및 방법
GB0307307D0 (en) * 2003-03-29 2003-05-07 Atelier Vision Ltd Image processing
US20100002070A1 (en) 2004-04-30 2010-01-07 Grandeye Ltd. Method and System of Simultaneously Displaying Multiple Views for Video Surveillance
US7450165B2 (en) * 2003-05-02 2008-11-11 Grandeye, Ltd. Multiple-view processing in wide-angle video camera
JP2005267457A (ja) * 2004-03-19 2005-09-29 Casio Comput Co Ltd 画像処理装置、撮影装置、画像処理方法及びプログラム
US7018941B2 (en) * 2004-04-21 2006-03-28 Applied Materials, Inc. Post treatment of low k dielectric films
TWI244321B (en) * 2004-05-04 2005-11-21 Via Tech Inc Apparatus and method for scaling digital data
US7408590B2 (en) * 2004-05-07 2008-08-05 Micronas Usa, Inc. Combined scaling, filtering, and scan conversion
US20080309817A1 (en) * 2004-05-07 2008-12-18 Micronas Usa, Inc. Combined scaling, filtering, and scan conversion
US7411628B2 (en) * 2004-05-07 2008-08-12 Micronas Usa, Inc. Method and system for scaling, filtering, scan conversion, panoramic scaling, YC adjustment, and color conversion in a display controller
CN100461855C (zh) * 2005-04-25 2009-02-11 中国科学院自动化研究所 一种广角镜头下的视频实时校正方法
US7576766B2 (en) * 2005-06-30 2009-08-18 Microsoft Corporation Normalized images for cameras
JP4679293B2 (ja) * 2005-08-08 2011-04-27 三洋電機株式会社 車載パノラマカメラシステム
US8723951B2 (en) * 2005-11-23 2014-05-13 Grandeye, Ltd. Interactive wide-angle video server
EP1963320A1 (en) * 2005-12-07 2008-09-03 OSI Pharmaceuticals, Inc. Pyrrolopyridine kinase inhibiting compounds
US8238695B1 (en) 2005-12-15 2012-08-07 Grandeye, Ltd. Data reduction techniques for processing wide-angle video
US7330604B2 (en) * 2006-03-02 2008-02-12 Compulink Management Center, Inc. Model-based dewarping method and apparatus
TW200734965A (en) * 2006-03-10 2007-09-16 Sony Taiwan Ltd A perspective correction panning method for wide-angle image
US7742624B2 (en) * 2006-04-25 2010-06-22 Motorola, Inc. Perspective improvement for image and video applications
JP4947351B2 (ja) * 2006-07-28 2012-06-06 富士ゼロックス株式会社 画像処理装置、及び、プログラム
KR100796849B1 (ko) 2006-09-04 2008-01-22 삼성전자주식회사 휴대 단말기용 파노라마 모자이크 사진 촬영 방법
US8224122B2 (en) * 2006-12-15 2012-07-17 Microsoft Corporation Dynamic viewing of wide angle images
JP2010530086A (ja) * 2006-12-19 2010-09-02 創太 清水 イメージングモデル及び画像処理装置
JP2010530087A (ja) * 2006-12-19 2010-09-02 創太 清水 画像処理プロセッサ
KR101014572B1 (ko) * 2007-08-27 2011-02-16 주식회사 코아로직 영상 왜곡 보정 방법 및 그 보정 방법을 채용한 영상처리장치
US7925116B2 (en) * 2007-10-25 2011-04-12 Motorola Mobility, Inc. Method and apparatus to facilitate forming a compensated image of a wide-angle image
US20090220165A1 (en) * 2008-02-29 2009-09-03 Microsoft Corporation Efficient image displaying
US20090278921A1 (en) * 2008-05-12 2009-11-12 Capso Vision, Inc. Image Stabilization of Video Play Back
US8284258B1 (en) 2008-09-18 2012-10-09 Grandeye, Ltd. Unusual event detection in wide-angle video (based on moving object trajectories)
US20120099005A1 (en) * 2009-04-13 2012-04-26 Eran Kali Methods and systems for reading an image sensor based on a trajectory
US8325187B2 (en) * 2009-10-22 2012-12-04 Samsung Electronics Co., Ltd. Method and device for real time 3D navigation in panoramic images and cylindrical spaces
EP2315075A1 (en) * 2009-10-22 2011-04-27 Samsung Electronics Co., Ltd. Method for Navigation in Panoramic Image, Machine-Readable Storage and Portable Device
US8872887B2 (en) * 2010-03-05 2014-10-28 Fotonation Limited Object detection and rendering for wide field of view (WFOV) image acquisition systems
US8451346B2 (en) * 2010-06-30 2013-05-28 Apple Inc. Optically projected mosaic rendering
JP5793975B2 (ja) * 2010-08-03 2015-10-14 株式会社リコー 画像処理装置、画像処理方法、プログラム、記録媒体
KR101694689B1 (ko) 2011-03-25 2017-01-12 삼성전자주식회사 동영상 데이터 생성 방법 및 이를 적용한 영상 촬영 장치
US8723959B2 (en) 2011-03-31 2014-05-13 DigitalOptics Corporation Europe Limited Face and other object tracking in off-center peripheral regions for nonlinear lens geometries
US20120306926A1 (en) * 2011-06-06 2012-12-06 Apple Inc. Inline scaling unit for mirror mode
JP5020398B1 (ja) 2011-06-29 2012-09-05 パナソニック株式会社 画像変換装置、カメラ、画像変換方法およびプログラム
US8493459B2 (en) 2011-09-15 2013-07-23 DigitalOptics Corporation Europe Limited Registration of distorted images
TWI489859B (zh) * 2011-11-01 2015-06-21 Inst Information Industry 影像形變方法及其電腦程式產品
CN102682431B (zh) * 2012-05-04 2015-04-15 中国科学院深圳先进技术研究院 广角图像校正方法和系统
JP6303270B2 (ja) 2012-05-18 2018-04-04 株式会社リコー ビデオ会議端末装置、ビデオ会議システム、映像の歪み補正方法および映像の歪み補正プログラム
US8928730B2 (en) 2012-07-03 2015-01-06 DigitalOptics Corporation Europe Limited Method and system for correcting a distorted input image
US9147226B2 (en) 2012-09-10 2015-09-29 Nokia Technologies Oy Method, apparatus and computer program product for processing of images
JP6044328B2 (ja) 2012-12-26 2016-12-14 株式会社リコー 画像処理システム、画像処理方法およびプログラム
CN103929584B (zh) * 2013-01-15 2017-11-03 瑞昱半导体股份有限公司 图像校正方法及图像校正电路
US9230359B2 (en) * 2013-12-04 2016-01-05 Boogoo Intellectual Property LLC Method for resizing an image
KR20150068299A (ko) * 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템
KR102179262B1 (ko) 2014-06-11 2020-11-16 삼성전자주식회사 렌즈 왜곡 보정 장치 및 이를 포함하는 애플리케이션 프로세서
US9883101B1 (en) * 2014-07-23 2018-01-30 Hoyos Integrity Corporation Providing a real-time via a wireless communication channel associated with a panoramic video capture device
KR20160040779A (ko) * 2014-10-06 2016-04-15 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US11850631B2 (en) * 2015-08-31 2023-12-26 Helmerich & Payne Technologies, Llc System and method for estimating damage to a shaker table screen using computer vision
US9984436B1 (en) * 2016-03-04 2018-05-29 Scott Zhihao Chen Method and system for real-time equirectangular projection
KR102468938B1 (ko) * 2016-03-07 2022-11-21 주식회사 엘지유플러스 3차원 디스플레이 영상 처리 장치 및 동작 방법
US10210660B2 (en) * 2016-04-06 2019-02-19 Facebook, Inc. Removing occlusion in camera views
JP6330987B2 (ja) * 2016-06-17 2018-05-30 日本電気株式会社 画像処理装置、画像処理方法、及び記憶媒体
KR102500836B1 (ko) * 2016-09-27 2023-02-16 한화테크윈 주식회사 광각 영상 처리 방법 및 이를 위한 장치
WO2018102990A1 (en) * 2016-12-06 2018-06-14 SZ DJI Technology Co., Ltd. System and method for rectifying a wide-angle image
US10521468B2 (en) * 2017-06-13 2019-12-31 Adobe Inc. Animated seek preview for panoramic videos
JP6891954B2 (ja) * 2017-06-23 2021-06-18 日本電気株式会社 物体検知装置、物体検知方法、及びプログラム
CN107316276B (zh) * 2017-06-30 2020-12-11 京东方科技集团股份有限公司 用于对图像进行拉伸的方法及装置
CN107318010B (zh) * 2017-07-05 2019-10-11 上海小蚁科技有限公司 用于生成立体全景图像的方法和设备
US10122969B1 (en) 2017-12-07 2018-11-06 Microsoft Technology Licensing, Llc Video capture systems and methods
CN108335273B (zh) * 2018-02-06 2022-02-08 大唐终端技术有限公司 大广角鱼眼全景镜头相机的畸变的实时消除方法
KR20230065365A (ko) 2018-05-07 2023-05-11 구글 엘엘씨 얼굴의 PD(perspective distortion) 보정
US10657396B1 (en) * 2019-01-30 2020-05-19 StradVision, Inc. Method and device for estimating passenger statuses in 2 dimension image shot by using 2 dimension camera with fisheye lens
CN110276734B (zh) 2019-06-24 2021-03-23 Oppo广东移动通信有限公司 图像畸变校正方法和装置
US11132800B2 (en) * 2019-07-31 2021-09-28 Google Llc Real time perspective correction on faces
US11087435B1 (en) * 2019-11-04 2021-08-10 Facebook, Inc. Adaptive dewarping of wide angle video frames
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
US11350063B2 (en) 2020-04-14 2022-05-31 Apple Inc. Circuit for correcting lateral chromatic abberation
US11763421B2 (en) * 2021-01-07 2023-09-19 Apple Inc. Circuit for combined down sampling and correction of image data
US11663704B2 (en) 2021-04-28 2023-05-30 Microsoft Technology Licensing, Llc Distortion correction via modified analytical projection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815199A (en) * 1991-01-31 1998-09-29 Matsushita Electric Works, Ltd. Interphone with television
US5990941A (en) * 1991-05-13 1999-11-23 Interactive Pictures Corporation Method and apparatus for the interactive display of any portion of a spherical image
US5396583A (en) * 1992-10-13 1995-03-07 Apple Computer, Inc. Cylindrical to planar image mapping using scanline coherence
US5796426A (en) 1994-05-27 1998-08-18 Warp, Ltd. Wide-angle image dewarping method and apparatus
US5508734A (en) * 1994-07-27 1996-04-16 International Business Machines Corporation Method and apparatus for hemispheric imaging which emphasizes peripheral content
US5999660A (en) 1995-07-26 1999-12-07 California Institute Of Technology Imaging system for correction of perceptual distortion in wide angle images
US6069668A (en) * 1997-04-07 2000-05-30 Pinnacle Systems, Inc. System and method for producing video effects on live-action video
US6078701A (en) * 1997-08-01 2000-06-20 Sarnoff Corporation Method and apparatus for performing local to global multiframe alignment to construct mosaic images
JP3695119B2 (ja) * 1998-03-05 2005-09-14 株式会社日立製作所 画像合成装置、及び画像合成方法を実現するプログラムを記録した記録媒体
US7015954B1 (en) * 1999-08-09 2006-03-21 Fuji Xerox Co., Ltd. Automatic video system using multiple cameras
US6377712B1 (en) * 2000-04-10 2002-04-23 Adobe Systems Incorporated Iteratively building displacement maps for image warping
WO2001095608A2 (en) * 2000-06-09 2001-12-13 Interactive Imaging Systems Inc. A method and apparatus for mapping images and video to create navigable, immersive video and images
US6778207B1 (en) * 2000-08-07 2004-08-17 Koninklijke Philips Electronics N.V. Fast digital pan tilt zoom video
US6677982B1 (en) * 2000-10-11 2004-01-13 Eastman Kodak Company Method for three dimensional spatial panorama formation
US6503201B1 (en) * 2001-10-03 2003-01-07 Koninklijke Philips Electronics N.V. Correction of extended field of view images for distortion due to scanhead motion

Also Published As

Publication number Publication date
US20040001146A1 (en) 2004-01-01
EP1376467A3 (en) 2004-03-03
JP2004038973A (ja) 2004-02-05
US7099521B2 (en) 2006-08-29
KR20040002682A (ko) 2004-01-07
TW200402635A (en) 2004-02-16
CN1477597A (zh) 2004-02-25
EP1376467B1 (en) 2018-11-14
US7058237B2 (en) 2006-06-06
US20060028735A1 (en) 2006-02-09
US7113650B2 (en) 2006-09-26
KR100702077B1 (ko) 2007-04-02
US20060033999A1 (en) 2006-02-16
TWI273511B (en) 2007-02-11
CN1307596C (zh) 2007-03-28
JP4279613B2 (ja) 2009-06-17
EP1376467A2 (en) 2004-01-02

Similar Documents

Publication Publication Date Title
ES2709942T3 (es) Sistema y procedimiento de corrección de imagen digital de gran angular en tiempo real
RU2408930C2 (ru) Пользовательский интерфейс для системы и способа коррекции основных размеров на панорамных изображениях, охватывающих угол обзора, равный 360°
RU2417446C2 (ru) Система и способ для коррекции размера головы в 360-градусных панорамных изображениях
US9729787B2 (en) Camera calibration and automatic adjustment of images
EP3438919A1 (en) Image displaying method, method for manufacturing irregular screen having curved surface and head-mounted display apparatus
TW201011690A (en) Image converter
Barsky et al. Rendering skewed plane of sharp focus and associated depth of field
Liu et al. Real-Time Warps for Improved Wide-Angle Viewing