ES2877410B2 - PROCEDURE, COMPUTER PROGRAM, SYSTEM AND COMPUTER SYSTEM FOR ELIMINATION OF NOISE IN A SEQUENCE OF IMAGES - Google Patents
PROCEDURE, COMPUTER PROGRAM, SYSTEM AND COMPUTER SYSTEM FOR ELIMINATION OF NOISE IN A SEQUENCE OF IMAGES Download PDFInfo
- Publication number
- ES2877410B2 ES2877410B2 ES202030440A ES202030440A ES2877410B2 ES 2877410 B2 ES2877410 B2 ES 2877410B2 ES 202030440 A ES202030440 A ES 202030440A ES 202030440 A ES202030440 A ES 202030440A ES 2877410 B2 ES2877410 B2 ES 2877410B2
- Authority
- ES
- Spain
- Prior art keywords
- pixel
- color
- predictive model
- average color
- pixels
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Picture Signal Circuits (AREA)
Description
DESCRIPCIÓNDESCRIPTION
Procedimiento, programa informático, sistema y sistema informático para eliminación de ruido en una secuencia de imágenesProcedure, computer program, system and computer system for removing noise in a sequence of images
La presente descripción se refiere a un procedimiento de eliminación de ruido en una secuencia de imágenes producida por un procedimiento de generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos utilizando un algoritmo de trazado de caminos de rayos de luz en un medio participativo. Además, la descripción se refiere también a un programa informático, sistema y sistema informático adecuados para realizar dicho procedimiento.The present description refers to a noise removal procedure in a sequence of images produced by a procedure for generating and reconstructing images in real time from volumetric data using a light ray path tracing algorithm in a participatory environment. . In addition, the description also refers to a computer program, system and computer system suitable for carrying out said method.
ESTADO DE LA TÉCNICA ANTERIORPRIOR STATE OF THE ART
Se conoce la aplicación de procedimientos de generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos utilizando un algoritmo de trazado de caminos de rayos de luz en medios participativos. Estos procedimientos corresponden a una técnica de visualización científica que simula el transporte de luz con (o a través de) la materia de los objetos utilizando modelos de iluminación basados en la física correspondiente. Esta simulación de representación a menudo se realiza con un trazado de caminos basado en algoritmos estocásticos (por ejemplo: Monte Carlo) que integra múltiples muestras de caminos de rayos de luz.The application of procedures for generating and reconstructing images in real time from volumetric data using a light ray path tracing algorithm in participatory media is known. These procedures correspond to a scientific visualization technique that simulates the transport of light with (or through) the matter of objects using lighting models based on the corresponding physics. This rendering simulation is often done with path tracing based on stochastic algorithms (eg: Monte Carlo) that integrate multiple light ray path samples.
Una de las limitaciones de estas técnicas del rastreo de caminos de rayos de luz para la generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos es la presencia de ruido. Este ruido puede generarse especialmente durante las interacciones con/de un usuario, y puede ocultar o interferir el efecto final de las ediciones e interacciones deseadas durante el ajuste de los parámetros de visualización, y también puede dificultar los resultados de visualización de alta calidad a la velocidad necesaria para conseguir un grado satisfactorio de interacción.One of the limitations of these light ray path tracing techniques for real-time image generation and reconstruction from volumetric data is the presence of noise. This noise can be generated especially during interactions with/from a user, and can hide or interfere with the final effect of desired edits and interactions during adjustment of display parameters, and can also hinder high-quality display results from the user. speed necessary to achieve a satisfactory degree of interaction.
En consecuencia, hay una necesidad de nuevos procedimientos, programas informáticos y sistemas que mejoren el rendimiento de los procedimientos, programas informáticos y sistemas actuales para eliminación de ruido en imágenes producidas por un procedimiento de generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos utilizando un algoritmo de trazado de caminos de rayos de luz en un medio participativo. Consequently, there is a need for new methods, software and systems that improve the performance of current methods, software and systems for denoising images produced by a method of generating and reconstructing images in real time from data. volumetrics using a light ray path tracing algorithm in a participatory medium.
EXPLICACIÓN DE LA INVENCIÓNEXPLANATION OF THE INVENTION
En un aspecto, se proporciona un procedimiento de eliminación de ruido en una secuencia de imágenes producida por un procedimiento de generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos utilizando un algoritmo de trazado de caminos de rayos de luz en un medio participativo. Cada imagen de la secuencia de imágenes comprende una pluralidad de píxeles y el algoritmo de trazado de caminos de rayos de luz produce muestra(s) de camino de rayos de luz para cada píxel.In one aspect, a method of denoising an image sequence produced by a method of generating and reconstructing images in real time from volumetric data using a light ray path tracing algorithm in a participatory medium is provided. . Each image of the image sequence comprises a plurality of pixels and the light ray path tracing algorithm produces light ray path sample(s) for each pixel.
El procedimiento de eliminación de ruido comprende un filtrado temporal que incluye realizar, para cada uno de todos o parte de los píxeles de una imagen actual de la secuencia, una re proyección temporal del píxel en función de un vector de movimiento de dicho píxel para obtener un color promedio acumulado y un modelo predictivo asociados al píxel temporalmente anteriores a la imagen actual. El filtrado temporal comprende además promediar, para cada uno de los píxeles de la imagen actual con color promedio acumulado asociado, un color del píxel en la imagen actual con el color promedio acumulado asociado al píxel para obtener un color promedio actual, y actualizar el color promedio acumulado asociado al píxel con dicho color promedio actual.The noise removal procedure comprises temporal filtering that includes performing, for each of all or part of the pixels of a current image of the sequence, a temporal reprojection of the pixel as a function of a motion vector of said pixel to obtain a cumulative average color and a predictive model associated with the pixel temporally older than the current image. Temporal filtering further comprises averaging, for each of the pixels in the current image with associated cumulative average color, a color of the pixel in the current image with the pixel's associated cumulative average color to obtain a current average color, and updating the color running average associated with the pixel with that current average color.
El filtrado temporal también comprende actualizar, para cada uno de los píxeles de la imagen actual cuyo color ha sido promediado, un vector de características del píxel con el color promedio acumulado actualizado del píxel. El filtrado temporal también comprende adicionalmente determinar, para cada uno de los píxeles de la imagen actual cuyo vector de características ha sido actualizado, un color final del píxel actualizando el modelo predictivo asociado al píxel en función del vector de características actualizado del píxel y obteniendo dicho color final a partir del modelo predictivo actualizado.Temporal filtering also comprises updating, for each of the pixels in the current image whose color has been averaged, a pixel feature vector with the updated cumulative average color of the pixel. Temporal filtering also further comprises determining, for each of the pixels in the current image whose feature vector has been updated, a final color of the pixel by updating the predictive model associated with the pixel as a function of the pixel's updated feature vector and obtaining said final color from the updated predictive model.
En el procedimiento propuesto, el color promedio acumulado (actualizado) a nivel de píxel constituye una característica muy robusta que permite mejorar sustancialmente inconvenientes asociados a los procedimientos conocidos de eliminación de ruido. Los efectos positivos del uso innovador de esta característica en la eliminación de ruido han sido descubiertos/confirmados por los inventores con la realización de numerosos experimentos.In the proposed procedure, the accumulated (updated) average color at the pixel level constitutes a very robust characteristic that substantially improves drawbacks associated with known noise removal procedures. The positive effects of the innovative use of this feature in noise removal have been discovered/confirmed by the inventors by conducting numerous experiments.
El procedimiento sugerido se define en términos de una imagen actual y el procesamiento de cada uno de todos o (gran) parte de los píxeles de la imagen. Sin embargo, el experto entenderá claramente que las etapas definidas en el contexto del procedimiento propuesto se pueden aplicar a cada una de las imágenes de la secuencia de entrada, desde la primera hasta la última imagen.The suggested procedure is defined in terms of a current image and the processing of each of all or (large) part of the pixels in the image. However, the expert you will clearly understand that the steps defined in the context of the proposed procedure can be applied to each of the images of the input sequence, from the first to the last image.
El procedimiento se basa (principalmente) en promediar un color del píxel en la imagen actual con un color promedio histórico y actualizar un modelo predictivo (también histórico) en función del color promediado resultante. Todas las imágenes de la secuencia pueden tener dichos dos parámetros históricos excepto la primera imagen, simplemente porque no existe ninguna imagen anterior a la primera. El experto debe conocer perfectamente cómo pueden inicializarse dichos datos/acumulados históricos para la primera imagen en el contexto técnico propuesto.The procedure is (mainly) based on averaging a pixel color in the current image with a historical average color and updating a (also historical) predictive model based on the resulting averaged color. All images in the sequence can have these two history parameters except the first image, simply because there is no image before the first. The expert must know perfectly how said historical data/cumulatives can be initialized for the first image in the proposed technical context.
Dicha inicialización puede basarse en asignar ciertos valores iniciales a diferentes (estructuras de) datos que conforman el modelo (por ejemplo: coeficientes, matriz de covarianzas, etc.) y al color promedio acumulado. Por ejemplo, se puede asignar el valor cero a los coeficientes del modelo predictivo, que pueden estar asociados a diferentes canales de color de la imagen. La matriz de covarianzas se puede inicializar utilizando una matriz diagonal, en la que dicha diagonal puede tomar valores estrictamente mayores que cero (por ejemplo: 1.000). El color promedio acumulado se puede inicializar, por ejemplo, con el primer color promedio resultante obtenido a partir de las muestras calculadas por el algoritmo de trazado de caminos de rayos de luz en la primera imagen de la secuencia.Said initialization can be based on assigning certain initial values to different (structures of) data that make up the model (for example: coefficients, covariance matrix, etc.) and the accumulated average color. For example, the coefficients of the predictive model can be assigned the value zero, which can be associated with different color channels of the image. The covariance matrix can be initialized using a diagonal matrix, in which said diagonal can take values strictly greater than zero (for example: 1,000). The accumulated average color can be initialized, for example, with the first resulting average color obtained from the samples calculated by the light ray path tracing algorithm in the first image of the sequence.
En algunos ejemplos, el algoritmo de trazado de caminos de rayos de luz puede ser un algoritmo de trazado de caminos basado en Monte Carlo. Más particularmente, este algoritmo de trazado de caminos de rayos de luz basado en Monte Carlo puede ser un algoritmo de trazado de caminos convencional o bidireccional o progresivo o cualquier combinación de los mismos. Se podrían usar otros procesos de trazado estocásticos diferentes del de Monte Carlo, por ejemplo: Quasi-MonteCarlo, Monte Carlo progresivo, trazado secuencial de rayos (ray marching), caché de irradiancia (irradiance caching), enfoques de mapeo de fotones, métodos basados en puntos virtuales de iluminación (Many-light methods), aproximaciones por difusión de flujo (flux-diffusion approximations), etc.In some examples, the light ray path tracing algorithm may be a Monte Carlo based path tracing algorithm. More particularly, this Monte Carlo based light ray path tracing algorithm may be a conventional or bidirectional or progressive path tracing algorithm or any combination thereof. Other stochastic tracing processes than Monte Carlo could be used, for example: Quasi-MonteCarlo, progressive Monte Carlo, ray marching, irradiance caching, photon mapping approaches, methods based on in virtual lighting points (Many-light methods), flux-diffusion approximations, etc.
En algunas implementaciones, el modelo predictivo asociado al píxel puede ser un modelo predictivo de orden N. En particular, el modelo predictivo de orden N puede ser un modelo predictivo lineal (o de orden N = 1). Más particularmente, el modelo predictivo asociado al píxel puede ser un algoritmo de mínimos cuadrados recursivos. Se ha descubierto y comprobado experimentalmente que, en el contexto técnico definido, un modelo predictivo lineal ofrece una mejor combinación de eficacia y eficiencia en comparación con modelos no lineales. Alternativas al algoritmo de mínimos cuadrados recursivos podrían ser, por ejemplo, un filtrado guiado por varianza espacio temporal (SVGF: Spatiotemporal Variance-Guided Filtering), codificador automático recurrente (RAE: Recurrent Autoencoder) basado en aprendizaje profundo e inteligencia artificial, etc. Sin embargo, los inventores han descubierto y confirmado con diversos experimentos que, en el escenario técnico propuesto, el algoritmo SVGF es menos eficaz que el de mínimos cuadrados recursivos y el algoritmo RAE es menos eficiente. El algoritmo de mínimos cuadrados recursivos es más robusto, contiene muy bien la posible influencia de "valores atípicos simples” en el resultado final y mejora la coherencia temporal de la secuencia, con respecto a SVGF. Además, el algoritmo de mínimos cuadrados recursivos puede funcionar con una amplia diversidad de variaciones de la escena a visualizar y mejora las imágenes resultantes de distintos modos de interacción. No necesita ningún tipo de pre-procesado, en comparación con algoritmos de aprendizaje profundo e inteligencia artificial. En general, se han conseguido mejores resultados tanto con métricas de distorsión numéricas (PSNR) como con métricas perceptuales recientes (uso de Inteligencia Artificial) (L-PIPS). Los artefactos de titileo temporal se reducen mejor con el algoritmo de mínimos cuadrados recursivos, y permite encontrar una buena compensación entre error numérico y aspecto perceptual de forma bastante automática.In some implementations, the predictive model associated with the pixel can be a predictive model of order N. In particular, the predictive model of order N can be a linear predictive model (or of order N = 1). More particularly, the predictive model associated with the pixel can be a recursive least squares algorithm. It has been found and experimentally verified that, in the defined technical context, a linear predictive model offers a better combination of effectiveness and efficiency compared to non-linear models. Alternatives to the recursive least squares algorithm could be, for example, Spatiotemporal Variance-Guided Filtering (SVGF), Recurrent Autoencoder (RAE) based on deep learning and artificial intelligence, etc. However, the inventors have discovered and confirmed with various experiments that, in the proposed technical scenario, the SVGF algorithm is less efficient than the recursive least squares algorithm and the RAE algorithm is less efficient. The recursive least squares algorithm is more robust, contains very well the possible influence of "simple outliers" on the final result and improves the temporal coherence of the sequence, with respect to SVGF. In addition, the recursive least squares algorithm can work with a wide diversity of variations of the scene to be displayed and improves the images resulting from different modes of interaction Does not need any type of pre-processing, compared to deep learning algorithms and artificial intelligence In general, better results have been achieved with both numerical distortion metrics (PSNR) and recent perceptual metrics (Use of Artificial Intelligence) (L-PIPS).Temporal flicker artifacts are better reduced with the recursive least squares algorithm, and it allows to find a good trade-off between error numerical and perceptual aspect quite automatically.
En ejemplos del procedimiento, actualizar el modelo predictivo asociado al píxel en función del vector de características actualizado del píxel puede incluir obtener un color estimado del píxel a partir del modelo predictivo teniendo en cuenta el vector de características actualizado, calcular un error predictivo en función de una diferencia entre el color estimado y un color promedio de las muestras generadas por el algoritmo de trazado de caminos de rayos de luz para el píxel, y actualizar el modelo predictivo en función del error predictivo calculado. El uso de un error predictivo, especialmente el propuesto, permite introducir un rigor estadístico y que los modelos se autoajusten a sí mismos en tiempo real. Esto permite, al contrario que otras técnicas, evitar tener que introducir fases de entrenamiento del filtro o de pre-procesado de datos.In examples of the method, updating the predictive model associated with the pixel based on the updated feature vector of the pixel may include obtaining an estimated color of the pixel from the predictive model taking into account the updated feature vector, calculating a predictive error based on a difference between the estimated color and an average color of the samples generated by the light ray path tracing algorithm for the pixel, and updating the predictive model based on the calculated predictive error. The use of a predictive error, especially the one proposed, allows introducing statistical rigor and allowing the models to self-adjust themselves in real time. This allows, unlike other techniques, to avoid having to introduce filter training phases or data pre-processing.
En algunas configuraciones, el modelo predictivo asociado al píxel se puede actualizar dependiendo además de un peso calculado en función de una varianza de color estimada del píxel, de modo que dicho peso es inversamente proporcional a dicha varianza estimada. Dicha varianza de color estimada del píxel se puede calcular en función de una diferencia entre un color promedio de las muestras de camino de rayos de luz del píxel y el color promedio acumulado actualizado del píxel. El peso calculado de esta manera puede estar definido por una curva gaussiana, en cuyo caso, una varianza igual a cero no produciría un peso infinito (según una relación inversamente proporcional "estricta”), sino que produciría un peso (muy) alto de acuerdo con dicha curva gaussiana.In some configurations, the predictive model associated with the pixel can be updated in addition to a weight calculated based on an estimated color variance of the pixel, such that said weight is inversely proportional to said estimated variance. Bliss The pixel's estimated color variance may be calculated based on a difference between an average color of the pixel's light ray path samples and the pixel's updated cumulative average color. The weight calculated in this way may be defined by a Gaussian curve, in which case a variance equal to zero would not produce an infinite weight (according to a "strict" inversely proportional relationship), but would produce a (very) high weight according to with this Gaussian curve.
En implementaciones del procedimiento, el peso calculado se puede aplicar en la actualización del modelo predictivo para otorgar más influencia en dicha actualización a un error predictivo cuanto menor sea la varianza estimada y menos influencia cuanto mayor sea la varianza estimada. Este peso se puede aplicar, por ejemplo, al error predictivo mencionado anteriormente calculado en función de una diferencia entre color estimado y color promedio de las muestras generadas por el algoritmo de trazado de caminos de rayos de luz para el píxel. Otorgando una mayor preponderancia al error predictivo cuanto menor sea la varianza estimada y al revés (menos preponderancia a mayor varianza) se consigue minimizar la influencia de valores atípicos y maximizar la influencia de valores más coherentes en la actualización del modelo predictivo. De este modo, el modelo predictivo actualizado puede producir resultados muy estables temporalmente. Esto se ha descubierto/confirmado experimentalmente.In implementations of the method, the calculated weight can be applied in updating the predictive model to give more influence in said update to a predictive error the smaller the estimated variance and less influence the larger the estimated variance. This weight can be applied, for example, to the aforementioned predictive error calculated based on a difference between estimated color and average color of the samples generated by the light ray path tracing algorithm for the pixel. Giving a greater preponderance to the predictive error the lower the estimated variance and vice versa (less preponderance the greater the variance) minimizes the influence of outliers and maximizes the influence of more consistent values in updating the predictive model. In this way, the updated predictive model can produce very stable results over time. This has been discovered/confirmed experimentally.
En determinadas configuraciones, la re-proyección temporal del píxel puede producir una posición de procedencia del píxel y, además, cada uno de los modelos predictivos obtenidos con dicha re-proyección temporal puede representarse con unos coeficientes y una matriz de covarianzas. En este caso, el modelo predictivo asociado al píxel se puede obtener seleccionando unos modelos predictivos en torno a la posición de procedencia del píxel, realizando una interpolación de coeficientes de los modelos predictivos seleccionados, y seleccionando la matriz de covarianzas del modelo predictivo correspondiente a la posición de procedencia del píxel. Dicha interpolación puede ser, por ejemplo, una interpolación bilineal. Los modelos predictivos en torno a la posición de procedencia del píxel pueden ser modelos predictivos que se encuentran en una ventana centrada en la posición de procedencia del píxel. Esta manera de "promediar” modelos predictivos cercanos a la posición de procedencia del píxel permite obtener un modelo predictivo asociado al píxel más coherente con su entorno y, por lo tanto, generar una imagen final de mayor calidad en términos de, por ejemplo, menos ruido o ruido nulo. Este "promediado” de modelos predictivos cercanos también aporta una mayor coherencia temporal (del valor/color del píxel en la secuencia). A veces puede ser conveniente sacrificar cierta precisión en la reconstrucción espacial (en un instante determinado) para proporcionar una imagen que sea más coherente en el tiempo. Encontrar este equilibrio entre precisión y coherencia temporal se ha demostrado muy complicado en la técnica anterior, pero realizaciones de acuerdo con la presente divulgación lo consiguen de forma automática y en tiempo real.In certain configurations, the temporary re-projection of the pixel can produce a position of origin of the pixel and, in addition, each one of the predictive models obtained with said temporary re-projection can be represented with coefficients and a covariance matrix. In this case, the predictive model associated with the pixel can be obtained by selecting some predictive models around the pixel's origin position, interpolating the coefficients of the selected predictive models, and selecting the covariance matrix of the predictive model corresponding to the position of origin of the pixel. Said interpolation may be, for example, a bilinear interpolation. The predictive models around the pixel's home position may be predictive models that lie in a window centered on the pixel's home position. This way of "averaging" predictive models close to the position of origin of the pixel allows to obtain a predictive model associated with the pixel that is more consistent with its environment and, therefore, generate a final image of higher quality in terms of, for example, less noise or null noise This "averaging" of nearby predictive models also provides greater temporal coherence (of the value/color of the pixel in the sequence). Sometimes it may be desirable to sacrifice some precision in the spatial reconstruction (at a given instant) to provide an image that is more consistent over time. Finding this balance between precision and temporal consistency has proven very difficult in the prior art, but embodiments according to the present disclosure achieve this automatically and in real time.
En ciertos ejemplos, el vector de movimiento del píxel se puede calcular en función de coordenada(s) del mundo intersectadas por una muestra de camino de rayos de luz seleccionada de entre las muestras generadas por el algoritmo de trazado de caminos de rayos de luz para el píxel. La(s) coordenada(s) del mundo intersectadas por la muestra de camino de rayos de luz seleccionada puede corresponder a una coordenada del mundo más cercana con respecto a una posición de vista de una primera intersección real según técnica de muestreo en medio participativo. La coordenada del mundo más cercana se puede determinar explorando píxeles vecinos del píxel dentro de una ventana N x M (por ejemplo, 3 x 3) centrada en el píxel y seleccionando la coordenada más cercana de entre dichos píxeles vecinos. La técnica de muestreo en medio participativo puede ser, por ejemplo, un rastreo delta. Los inventores han descubierto y confirmado con múltiples experimentos que estos modos de calcular el vector de movimiento del píxel proporcionan un excelente balance en la evitación de efectos de barrido/arrastre indeseado de píxeles en la imagen (ghosting). Esto es debido a que, como efecto colateral del proceso estocástico de muestreo, una muestra de camino de rayo de luz puede atravesar todo el volumen sin producirse ninguna muestra (intersección) dentro del mismo. Utilizando todas (o gran cantidad de) las posiciones del mundo muestreadas y/o ponderándolas, en los casos en que se atraviesa completamente el volumen, el vector de movimiento podría producir desplazamientos mucho más grandes de los esperados/deseados en el espacio imagen y distorsionar el resultado (por ejemplo: barrido/arrastre de píxeles). Seleccionando la posición del mundo más cercana a la hora de calcular las coordenadas del mundo a utilizar para calcular la re-proyección temporal, se disminuye este efecto colateral no deseado.In certain instances, the pixel motion vector may be computed as a function of world coordinate(s) intersected by a light ray path sample selected from among the samples generated by the light ray path tracing algorithm for the pixel The world coordinate(s) intersected by the selected light ray path sample may correspond to a closest world coordinate with respect to a view position of a first real intersection according to participatory medium sampling technique. The nearest world coordinate can be determined by scanning neighboring pixels of the pixel within an N x M (eg, 3 x 3) window centered on the pixel and selecting the nearest coordinate from among said neighboring pixels. The sampling technique in a participatory environment can be, for example, a delta scan. The inventors have discovered and confirmed with multiple experiments that these ways of calculating the pixel motion vector provide an excellent balance in avoiding unwanted pixel sweeping/dragging effects in the image (ghosting). This is because, as a side effect of the stochastic sampling process, a light ray path sample can traverse the entire volume without any sample (intersection) occurring within it. Using all (or a large number of) sampled world positions and/or weighting them, in cases where the volume is completely traversed, the motion vector could produce much larger than expected/desired displacements in image space and distort the result (for example: pixel sweep/drag). Selecting the closest world position when calculating the world coordinates to use for calculating the temporal re-projection reduces this unwanted side effect.
Según algunas implementaciones del procedimiento, promediar el color del píxel puede incluir realizar un promedio exponencial en el tiempo del color del píxel en la imagen actual con el color promedio acumulado asociado al píxel obtenido con la re-proyección. Dicho promedio exponencial (en el tiempo) del color del píxel se puede realizar teniendo en cuenta (simultáneamente) canales de color, por ejemplo, tres canales: rojo, verde y azul. De este modo, se pueden evitar efectos de cambio de color en la imagen final. El promedio exponencial (en el tiempo) del color del píxel se puede realizar en función de un factor predefinido de actualización exponencial atribuido al color promedio acumulado (del píxel) obtenido con la re-proyección. Múltiples experimentos han permitido descubrir que la acumulación exponencial de muestras (en el tiempo) es más eficiente que el almacenamiento discreto de varias imágenes pertenecientes a estados anteriores. Con un búfer histórico se asigna una influencia progresivamente (exponencialmente) decreciente a medida que el valor es más antiguo. Valores antiguos influyen menos en esta historia que valores más actuales. Una función exponencial cumple esta característica y permite crear este histórico y además hacerlo de forma rápida y eficiente.According to some implementations of the method, averaging the pixel color may include exponentially averaging over time the color of the pixel in the current image with the cumulative average color associated with the pixel obtained with the reprojection. Said exponential averaging (in time) of the color of the pixel can be carried out by taking into account (simultaneously) color channels, for example, three channels: red, green and blue. In this way, color shift effects in the final image can be avoided. The average exponential (over time) of the pixel color can be performed based on a predefined factor of exponential update attributed to the accumulated average color (of the pixel) obtained with the re-projection. Multiple experiments have revealed that the exponential accumulation of samples (in time) is more efficient than the discrete storage of several images belonging to previous states. With a history buffer a progressively (exponentially) decreasing influence is assigned as the value gets older. Ancient values have less influence on this history than more current values. An exponential function fulfills this characteristic and allows you to create this history and also to do it quickly and efficiently.
En configuraciones del procedimiento, la imagen actual puede incluir píxeles que caen fuera de una ventana de visualización, y todos o algunos de dichos píxeles que no se visualizan se pueden tener en cuenta en el filtrado temporal del procedimiento. Con esto, se pueden evitar artefactos en los bordes de la imagen visualizada y, por lo tanto, mejorar la calidad de la visualización de las imágenes.In configurations of the method, the current image may include pixels that fall outside a viewing window, and some or all of those pixels that are not displayed may be taken into account in the temporal filtering of the method. With this, artifacts at the edges of the displayed image can be avoided and thus improve the display quality of the images.
En algunos ejemplos, el procedimiento puede comprender además realizar un filtrado espacial después del filtrado temporal. En concreto, este filtro espacial puede ser, por ejemplo, un filtrado bilateral. En general, este filtrado espacial puede realizarse mediante cualquier técnica conocida a tal efecto, ya que dicho filtrado no es un aspecto central de la presente invención. Se entiende que el experto en la materia conoce qué técnicas y/o algoritmos para filtrado espacial se pueden usar en el contexto técnico planteado, por lo que no se incluirán detalles de su implementación en el presente documento.In some examples, the method may further comprise performing spatial filtering after temporal filtering. Specifically, this spatial filter can be, for example, a two-sided filter. In general, this spatial filtering can be performed by any known technique for this purpose, since said filtering is not a central aspect of the present invention. It is understood that the person skilled in the art knows what techniques and/or algorithms for spatial filtering can be used in the proposed technical context, so details of their implementation will not be included in this document.
Según otro aspecto, se proporciona un programa informático. Este programa informático puede comprender instrucciones de programa para provocar que un procesador realice un procedimiento de eliminación de ruido, tal como los que se describen en esta divulgación. El programa informático puede estar almacenado en un medio de almacenamiento físico, tal como un medio de grabación, una memoria informática, o una memoria de sólo lectura, y/o puede ser portado por una onda portadora, tal como eléctrica u óptica. Dado que este programa informático está configurado para realizar cualquiera de los procedimientos anteriores, los fundamentos técnicos y ventajas o efectos técnicos positivos comentados con respecto al procedimiento son igualmente aplicables a este programa. According to another aspect, a computer program is provided. This computer program may comprise program instructions to cause a processor to perform a denoising procedure, such as those described in this disclosure. The computer program may be stored on a physical storage medium, such as a recording medium, computer memory, or read-only memory, and/or may be carried by a carrier wave, such as electrical or optical. Since this computer program is configured to perform any of the above procedures, the technical background and benefits or positive technical effects discussed with respect to the procedure are equally applicable to this program.
En un aspecto adicional, se proporciona un sistema informático que comprende una memoria y un procesador, en el que la memoria almacena instrucciones de programa informático ejecutables por el procesador, y en el que estas instrucciones comprenden funcionalidades para realizar cualquiera de los procedimientos de eliminación de ruido que se describen en esta divulgación. Dado que este sistema informático está configurado para realizar cualquiera de los procedimientos anteriores, los fundamentos técnicos y ventajas o efectos técnicos positivos comentados con respecto al procedimiento son igualmente aplicables a este sistema informático.In a further aspect, a computer system is provided comprising a memory and a processor, wherein the memory stores computer program instructions executable by the processor, and wherein these instructions comprise functionalities for performing any of the deletion procedures noise described in this disclosure. Since this computer system is configured to perform any of the foregoing procedures, the technical background and positive technical benefits or effects discussed with respect to the procedure are equally applicable to this computer system.
En otro aspecto más, se proporciona un sistema para eliminar ruido en una secuencia de imágenes producida por un procedimiento de generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos utilizando un algoritmo de trazado de caminos de rayos de luz en un medio participativo. Cada imagen de la secuencia de imágenes comprende una pluralidad de píxeles y el algoritmo de trazado de caminos de rayos de luz produce una o más muestras de camino de rayos de luz para cada píxel.In yet another aspect, a system is provided for removing noise in a sequence of images produced by a method of generating and reconstructing images in real time from volumetric data using a light ray path tracing algorithm in a participatory environment. . Each image of the image sequence comprises a plurality of pixels and the light ray path tracing algorithm produces one or more light ray path samples for each pixel.
El sistema comprende un módulo de filtrado temporal configurado para realizar un filtrado temporal, incluyendo dicho módulo de filtrado temporal un módulo de re-proyección, un módulo de promedio, un módulo de actualización, y un módulo de determinación.The system comprises a temporal filtering module configured to perform temporal filtering, said temporal filtering module including a re-projection module, an averaging module, an updating module, and a determination module.
El módulo de re-proyección está configurado para realizar, para cada uno de todos o parte de los píxeles de una imagen actual de la secuencia, una re-proyección temporal del píxel en función de un vector de movimiento de dicho píxel para obtener un color promedio acumulado y un modelo predictivo asociados al píxel temporalmente anteriores a la imagen actual. El módulo de promedio está configurado para promediar, para cada uno de los píxeles de la imagen actual con color promedio acumulado asociado, un color del píxel en la imagen actual con el color promedio acumulado asociado al píxel para obtener un color promedio actual, y actualizar el color promedio acumulado asociado al píxel con dicho color promedio actual.The re-projection module is configured to perform, for each of all or part of the pixels of a current image of the sequence, a temporary re-projection of the pixel based on a vector of movement of said pixel to obtain a color cumulative average and a predictive model associated with the pixel temporally older than the current image. The averaging module is configured to average, for each of the pixels in the current image with associated cumulative average color, a pixel color in the current image with the associated pixel's cumulative average color to obtain a current average color, and update the accumulated average color associated with the pixel with said current average color.
El módulo de actualización está configurado para actualizar, para cada uno de los píxeles de la imagen actual cuyo color ha sido promediado, un vector de características del píxel con el color promedio acumulado actualizado del píxel. El módulo de determinación está configurado para determinar, para cada uno de los píxeles de la imagen actual cuyo vector de características ha sido actualizado, un color final del píxel actualizando el modelo predictivo asociado al píxel en función del vector de características actualizado del píxel y obteniendo dicho color final a partir del modelo predictivo actualizado.The update module is configured to update, for each of the pixels in the current image whose color has been averaged, a pixel feature vector with the updated cumulative average color of the pixel. The determination module is configured to determine, for each of the pixels of the current image whose feature vector has been updated, a final color of the pixel by updating the predictive model associated to the pixel based on the pixel's updated feature vector and obtaining said final color from the updated predictive model.
Dado que este sistema está configurado para realizar cualquiera de los procedimientos anteriores, los fundamentos técnicos y ventajas o efectos técnicos positivos comentados con respecto al procedimiento son igualmente aplicables a este sistema.Since this system is configured to perform any of the above procedures, the technical background and advantages or positive technical effects discussed with respect to the procedure are equally applicable to this system.
Otros objetos, ventajas y características de realizaciones de la invención se pondrán de manifiesto para el experto en la materia a partir de la descripción, o se pueden aprender con la práctica de la invención.Other objects, advantages, and features of embodiments of the invention will become apparent to those skilled in the art from the description, or may be learned by practice of the invention.
BREVE DESCRIPCIÓN DE LOS DIBUJOSBRIEF DESCRIPTION OF THE DRAWINGS
A continuación, se describirán realizaciones particulares de la presente invención a título de ejemplo no limitativo, con referencia a los dibujos adjuntos, en los cuales:Below, particular embodiments of the present invention will be described by way of non-limiting example, with reference to the attached drawings, in which:
La Figura 1 es un diagrama de bloques que ilustra esquemáticamente sistemas para eliminación de ruido en una secuencia de imágenes, de acuerdo con ejemplos; yFigure 1 is a block diagram schematically illustrating systems for denoising an image sequence, according to examples; Y
La Figura 2 es un diagrama de flujo que ilustra esquemáticamente procedimientos de eliminación de ruido en una secuencia de imágenes, de acuerdo con ejemplos.Figure 2 is a flowchart schematically illustrating denoising procedures on an image sequence, according to examples.
EXPOSICIÓN DETALLADA DE MODOS DE REALIZACIÓNDETAILED EXPOSITION OF METHODS OF REALIZATION
La Figura 1 es un diagrama de bloques que ilustra esquemáticamente sistemas para eliminación de ruido en una secuencia de imágenes, de acuerdo con ejemplos. De acuerdo con la Figura, sistemas para eliminación de ruido 100 de acuerdo con esta divulgación pueden comprender un módulo de filtrado temporal 101 que, a su vez, puede comprender un módulo de re-proyección 102, un módulo de promedio 103, un módulo de actualización 104 y un módulo de determinación 105.Figure 1 is a block diagram schematically illustrating systems for denoising an image sequence, according to examples. According to the Figure, denoising systems 100 according to this disclosure may comprise a temporal filtering module 101 which, in turn, may comprise a re-projection module 102, an averaging module 103, a update 104 and a determination module 105.
El módulo de filtrado temporal 101 puede estar configurado para recibir una secuencia de imágenes 107 producida por un procedimiento de generación y reconstrucción de imágenes en tiempo real a partir de datos volumétricos utilizando un algoritmo de trazado de caminos de rayos de luz en un medio participativo basado en, por ejemplo, Monte Carlo. The temporal filtering module 101 may be configured to receive a sequence of images 107 produced by a procedure for generating and reconstructing images in real time from volumetric data using a light ray path tracing algorithm in a participatory environment based on in, for example, Monte Carlo.
El módulo de filtrado temporal 101 puede estar configurado además para procesar todos o algunos de los píxeles que conforman cada una de las imágenes recibidas de la secuencia de imágenes 107. Este procesamiento a nivel de píxel puede incluir realizar, en el módulo de re proyección 102, una re-proyección temporal del píxel en función de un vector de movimiento de dicho píxel para obtener un color promedio acumulado y un modelo predictivo asociados al píxel.The temporal filtering module 101 may also be configured to process all or some of the pixels that make up each of the images received from the image sequence 107. This pixel-level processing may include performing, in the reprojection module 102 , a temporal re-projection of the pixel based on a motion vector of said pixel to obtain an accumulated average color and a predictive model associated with the pixel.
El módulo de filtrado temporal 101 puede estar configurado adicionalmente para realizar, en el módulo de promedio 103, un promedio de un color del píxel en la imagen actual con el color promedio acumulado asociado al píxel para obtener un color promedio actual, y actualizar el color promedio acumulado asociado al píxel con dicho color promedio actual.The temporal filtering module 101 may be further configured to perform, in the averaging module 103, an average of a color of the pixel in the current image with the accumulated average color associated with the pixel to obtain a current average color, and update the color running average associated with the pixel with that current average color.
El módulo de filtrado temporal 101 puede estar configurado también para realizar, en el módulo de actualización 104, una actualización de un vector de características del píxel con el color promedio acumulado actualizado del píxel, y para realizar, en el módulo de determinación 105, una determinación de un color final del píxel actualizando el modelo predictivo asociado al píxel en función del vector de características actualizado del píxel y obteniendo dicho color final a partir del modelo predictivo actualizado.The temporal filtering module 101 may also be configured to perform, in the update module 104, an update of a pixel feature vector with the updated accumulated average color of the pixel, and to perform, in the determination module 105, a determining a final color of the pixel by updating the predictive model associated with the pixel as a function of the updated feature vector of the pixel and obtaining said final color from the updated predictive model.
Este filtrado temporal que se ha descrito en términos de los módulos de re-proyección 102, de promedio 103, de actualización 104 y de determinación 105 puede ser realizado para cada una de las imágenes de la secuencia de entrada 107. Después del filtrado temporal (módulo 101), un módulo de filtrado espacial 106 puede realizar un filtrado espacial adecuado. Este filtrado espacial puede ser un filtrado bilateral o cualquier otro tipo de filtrado espacial adecuado en el contexto técnico definido.This temporal filtering which has been described in terms of the reprojection 102, averaging 103, update 104 and determination 105 modules can be performed for each of the images in the input sequence 107. After temporal filtering ( module 101), a spatial filtering module 106 can perform proper spatial filtering. This spatial filtering may be bilateral filtering or any other type of spatial filtering suitable in the defined technical context.
En cuanto a la re-proyección realizada en el módulo de re-proyección 102, dado que la primera imagen de la secuencia no tiene ninguna imagen anterior, no es posible re-proyección alguna. Por lo tanto, en este caso se puede inicializar el color promedio acumulado (a nivel de píxel) con un primer color promedio obtenido a partir de muestras calculadas por el algoritmo de trazado de caminos de rayos de luz en dicha primera imagen. Por otro lado, el modelo predictivo de los píxeles de la primera imagen se puede inicializar asignando el valor cero a coeficientes del modelo, y se puede inicializar una matriz de covarianzas del modelo con una matriz diagonal, en la que dicha diagonal puede tomar valores estrictamente mayores que cero (por ejemplo: 1.000). El modelo predictivo puede basarse en un algoritmo de mínimos cuadrados recursivos, que puede ser de orden N y, en particular de orden N = 1 (es decir, lineal).As for the re-projection performed in the re-projection module 102, since the first image in the sequence has no previous image, no re-projection is possible. Therefore, in this case, the accumulated average color (at the pixel level) can be initialized with a first average color obtained from samples calculated by the light ray path tracing algorithm in said first image. On the other hand, the predictive model of the pixels of the first image can be initialized by assigning the zero value to coefficients of the model, and a covariance matrix of the model can be initialized with a diagonal matrix, in which said diagonal can take values strictly greater than zero (for example: 1,000). The predictive model can be based on an algorithm of minimums recursive squares, which can be of order N, and in particular of order N = 1 (ie linear).
Así pues, para cada píxel de la primera imagen se pueden obtener el color promedio acumulado y el modelo predictivo inicializados según se ha propuesto anteriormente o según otro criterio adecuado en el contexto técnico propuesto. A partir de la segunda imagen, en cuyo caso ya se dispone de una "historia” de imágenes anteriores, la re-proyección temporal del píxel puede producir una posición de procedencia del píxel que indica de dónde proviene el píxel en una o más imágenes anteriores. El modelo predictivo asociado a cada píxel se puede obtener, por ejemplo, seleccionando modelos predictivos en torno a dicha posición de procedencia del píxel, realizando una interpolación (por ejemplo, bilineal) de coeficientes de los modelos predictivos seleccionados, y seleccionando la matriz de covarianzas del modelo predictivo correspondiente a la posición de procedencia del píxel. Los modelos predictivos en torno a la posición de procedencia del píxel pueden ser modelos predictivos que se encuentran en una ventana centrada en la posición de procedencia del píxel.Thus, for each pixel of the first image, the accumulated average color and the initialized predictive model can be obtained as previously proposed or according to another suitable criterion in the proposed technical context. Starting from the second image, in which case a "history" of previous images is already available, temporal re-projection of the pixel can produce a pixel provenance position indicating where the pixel came from in one or more previous images. The predictive model associated with each pixel can be obtained, for example, by selecting predictive models around said position of origin of the pixel, performing an interpolation (for example, bilinear) of coefficients of the selected predictive models, and selecting the matrix of covariances of the predictive model corresponding to the pixel's provenance position Predictive models about the pixel's provenance position may be predictive models that lie in a window centered on the pixel's provenance position.
En relación todavía al módulo de re-proyección 102, el vector de movimiento del píxel se puede calcular en función de coordenada(s) del mundo intersectada(s) por una de las muestra de camino de rayos de luz generadas por el algoritmo de trazado de caminos para el píxel (por ejemplo, Monte Carlo). La(s) coordenada(s) del mundo intersectadas por dicha muestra de camino de rayos de luz puede corresponder a una coordenada más cercana con respecto a una posición de vista de una primera intersección real según técnica de muestreo en medio participativo (por ejemplo, rastreo delta). Esta coordenada del mundo más cercana se puede determinar explorando píxeles vecinos del píxel dentro de una ventana N x M (por ejemplo, 3 x 3) centrada en el píxel y seleccionando la coordenada más cercana de entre dichos píxeles vecinos.Still relating to the re-projection module 102, the pixel motion vector can be computed as a function of world coordinate(s) intersected by one of the light ray path samples generated by the tracing algorithm of paths for the pixel (for example, Monte Carlo). The world coordinate(s) intersected by said light ray path sample may correspond to a closest coordinate with respect to a view position of a first real intersection according to participatory medium sampling technique (for example, delta tracking). This closest world coordinate can be determined by scanning neighboring pixels of the pixel within an N x M (eg, 3 x 3) window centered on the pixel and selecting the closest coordinate from among said neighboring pixels.
En el módulo de re-proyección 102 (y subsiguientes 103 - 106) se pueden tener en cuenta también píxeles que caen fuera de una ventana de visualización, con lo que se pueden evitar artefactos en los bordes de la imagen visualizada (o a visualizar) y, de este modo, mejorar la calidad de visualización.In the re-projection module 102 (and subsequent 103 - 106) pixels that fall outside a display window can also be taken into account, thus avoiding artifacts at the edges of the displayed (or to be displayed) image and , thereby improving the display quality.
Con respecto al módulo de promedio 103, el promediado del color del píxel se puede realizar promediando exponencialmente el color del píxel en la imagen actual con el color promedio acumulado asociado al píxel obtenido con la re-proyección. Este promedio exponencial del color del píxel se puede realizar teniendo en cuenta canales de color (por ejemplo: rojo, verde y azul), y/o en función de un factor predefinido de actualización exponencial atribuido al color promedio acumulado del píxel que se ha obtenido con la re-proyección.With respect to the averaging module 103, pixel color averaging can be performed by exponentially averaging the color of the pixel in the current image with the accumulated average color associated with the pixel obtained with re-projection. This exponential average of Pixel color can be performed taking into account color channels (for example: red, green and blue), and/or based on a predefined exponential update factor attributed to the accumulated average color of the pixel that has been obtained with the re- projection.
En implementaciones del módulo de promedio 103, el promediado del color del píxel se puede realizar de acuerdo con la siguiente fórmula:In implementations of the averaging module 103, pixel color averaging can be performed according to the following formula:
Zj(t) = azq (t - 1) (1 - a ) [ í j ed(t), f s reen(t) fbiue(t )]en la cual: Zj ( t) = azq ( t - 1) (1 - a ) [ í j ed ( t), fs reen ( t) fbiue (t )] in which:
Zj(t) es el color promedio acumulado actualizado para el píxel j en el instante t, q es la posición del píxel re-proyectada (o posición de procedencia del píxel), [í'¡ed( t ) , í f reen(t) ,í^llue(t)] es un vector de tamaño tres que contiene los canales rojo, verde y azul del color del píxel en la imagen actual (instante t), y Zj ( t) is the updated cumulative average color for pixel j at time t, q is the re-projected pixel position (or pixel-from-position), [í'¡ed ( t ) , í free ( t) ,í^llue ( t)] is a vector of size three containing the red, green, and blue channels of the color of the pixel in the current image (time t), and
a es un factor predefinido de actualización exponencial que otorga un peso a la historia del píxel zq (t - 1) con respecto a la estimación actual [í'¡ed( t ) , í f reen(t) ,í^llue(t)]. En algunos ejemplos, el factor predefinido a puede ser igual a 0,75 aproximadamente, ya que múltiples experimentos han desvelado un buen comportamiento del filtrado temporal con dicho valor. a is a predefined exponential update factor that gives a weight to the history of pixel zq ( t - 1) with respect to the current estimate [í'¡ed ( t ) , í free ( t) ,í^llue ( t )]. In some examples, the predefined factor a can be equal to approximately 0.75, since multiple experiments have revealed good temporal filtering behavior with this value.
En lo que respecta al módulo de determinación 105, el modelo predictivo asociado al píxel se puede actualizar en función de un error predictivo calculado. Este error predictivo se puede calcular obteniendo un color estimado del píxel a partir del modelo predictivo (sin actualizar) en función del vector de características actualizado, y calculando el error predictivo en función de una diferencia entre el color estimado y un color promedio de las muestras generadas por el algoritmo de trazado de caminos para el píxel. La actualización del modelo predictivo se puede realizar dependiendo además de un peso calculado en función de una varianza de color estimada del píxel, de modo que dicho peso es inversamente proporcional a dicha varianza estimada. Esta varianza de color estimada se puede calcular en función de una diferencia entre un color promedio de las muestras de camino de rayos de luz del píxel y el color promedio acumulado actualizado del píxel. Por consiguiente, el peso propuesto puede otorgar (en la actualización del modelo) más influencia al error predictivo calculado cuanto menor sea la varianza estimada y menos influencia cuanto mayor sea la varianza estimada.As far as determination module 105 is concerned, the predictive model associated with the pixel can be updated based on a calculated predictive error. This predictive error can be calculated by obtaining an estimated color of the pixel from the (unupdated) predictive model based on the updated feature vector, and calculating the predictive error based on a difference between the estimated color and an average color of the samples generated by the path tracing algorithm for the pixel. The update of the predictive model can be carried out depending further on a weight calculated as a function of an estimated color variance of the pixel, such that said weight is inversely proportional to said estimated variance. This estimated color variance can be calculated based on a difference between an average color of the pixel's light ray path samples and the updated cumulative average color of the pixel. Therefore, the proposed weight can give (in the model update) more influence to the calculated predictive error the lower the estimated variance and less influence the higher the estimated variance.
En ejemplos del módulo de determinación 105, el peso calculado inversamente proporcional a la varianza estimada se puede calcular de acuerdo con la siguiente formula:In examples of determination module 105, the calculated weight inversely proportional to the estimated variance can be calculated according to the following formula:
Wj(t) = e~di /h2 Wj ( t) = e~di /h2
en la cual:in which:
Wj(t) e s el peso inversamente proporcional a la varianza estimada, Wj ( t) is the weight inversely proportional to the estimated variance,
d¡(t) es la varianza estimada que se puede calcular según se indica a continuación, y h es un ancho de banda de filtrado que controla una compensación entre sesgo (bias) y varianza en la eliminación de ruido. Por ejemplo, valores menores de h proporcionarían un sesgo más estable temporalmente pero mayor. Diversas pruebas experimentales determinaron que h = 0,75 produce un buen equilibrio entre estabilidad temporal y sesgo. d , ( t) is the estimated variance that can be calculated as follows, and h is a filter bandwidth that controls a tradeoff between bias and variance in denoising. For example, smaller values of h would provide a temporally more stable but larger bias. Various experimental tests determined that h = 0.75 produces a good balance between temporal stability and bias.
La varianza d¡(t) se puede estimar de acuerdo con la siguiente fórmula:The variance d , ( t) can be estimated according to the following formula:
\\l'j(t ) - Z ] (t)\\ \\l'j ( t ) - Z ] ( t)\\
dj(t) = dj ( t) =
min(\\ íj (t)\\,\\zj (t)\\) + s min ( \\ íj ( t)\\,\\zj ( t)\\) + s
en la cual:in which:
s es un número pequeño para evitar divisiones por cero,s is a small number to avoid divisions by zero,
í j ( t ) es un color promedio de las muestras de camino de rayos de luz del píxel, y zj(t) es el color promedio acumulado actualizado del píxel. íj ( t) is an average color of the pixel's light ray path samples, and zj ( t) is the updated cumulative average color of the pixel.
Todavía en relación al módulo de determinación 105, entre la obtención del color estimado del píxel y el cálculo del error predictivo se puede aplicar una técnica de filtrado en el espacio de color definido por su vecindad (neighborhood clamping) para el color estimado del pixel y, de este modo, poder detectar eventos de oclusión y desoclusión de datos (vóxeles) así como nuevos colores que no tengan un histórico (color promedio acumulado) válido en el instante actual (imagen actual). En algunos ejemplos, se puede resetear (o inicializar) de nuevo el modelo para representar un nuevo color estimado que haya sido filtrado con dichas técnicas de filtrado en el espacio de color definido por su vecindad (neighborhood clamping). Cada vez que se detecte un evento de este tipo (predicción de que cae fuera según el filtrado en el espacio de color definido por la vecindad) para un pixel de una imagen de la secuencia, se puede utilizar como color estimado del pixel el color promedio actualizado, y si no hay variaciones en la interacción de usuario, el color estimado por el algoritmo de trazado de caminos de rayos de luz para garantizar la convergencia (unbiased). Se puede utilizar una ventana 7x7 para el filtrado del pixel en el espacio de color definido por su vecindad (neighborhood clamping). Still in relation to the determination module 105, between obtaining the estimated color of the pixel and calculating the predictive error, a filtering technique can be applied in the color space defined by its neighborhood (neighborhood clamping) for the estimated color of the pixel and , in this way, to be able to detect events of occlusion and deocclusion of data (voxels) as well as new colors that do not have a history (accumulated average color) valid at the current moment (current image). In some examples, the model can be reset (or initialized) again to represent a new estimated color that has been filtered with said filtering techniques in the color space defined by its neighborhood (neighborhood clamping). Every time an event of this type is detected (prediction that it falls out according to the filtering in the color space defined by the neighborhood) for a pixel of an image of the sequence, the average color can be used as the estimated color of the pixel. updated, and if there are no variations in user interaction, the color estimated by the light ray path tracing algorithm to ensure convergence (unbiased). A 7x7 window can be used for pixel filtering in the color space defined by its neighborhood (neighborhood clamping).
Según se usa en este documento, puede entenderse que el término "módulo" se refiere a software, firmware, hardware y/o varias combinaciones de los mismos. Cabe señalar que los módulos son solo de ejemplo. Los módulos pueden combinarse, integrarse, separarse y/o duplicarse para dar soporte a diversas aplicaciones. Además, una función descrita en este documento como realizada en un módulo particular puede realizarse en uno o más otros módulos y/o en uno o más dispositivos en lugar de o además de la función realizada en el módulo particular descrito.As used herein, the term "module" may be understood to refer to software, firmware, hardware, and/or various combinations thereof. It should be noted that the modules are for example only. Modules can be combined, integrated, separated and/or duplicated to support various applications. Furthermore, a function described herein as being performed in a particular module may be performed in one or more other modules and/or in one or more devices instead of or in addition to the function performed in the particular module described.
Además, los módulos pueden implementarse en múltiples dispositivos, asociados o vinculados a correspondientes sistemas (informáticos) para eliminación de ruido en una secuencia de imágenes, y/o a otros componentes que pueden ser locales o remotos entre sí. Además, los módulos pueden moverse de un dispositivo y agregarse a otro dispositivo, y/o pueden incluirse en ambos dispositivos, asociados a los correspondientes sistemas (informáticos) para eliminación de ruido en una secuencia de imágenes. Cualquier implementación de software puede incorporarse de manera tangible en uno o más medios de almacenamiento como, por ejemplo, un dispositivo de memoria, un disquete, un disco compacto (CD), un disco digital versátil (DVD) u otros dispositivos que pueden almacenar código informático.In addition, the modules can be implemented in multiple devices, associated or linked to corresponding (computer) systems for noise removal in an image sequence, and/or to other components that can be local or remote from each other. Furthermore, the modules can be moved from one device and added to another device, and/or can be included in both devices, associated with the corresponding (computer) systems for denoising an image sequence. Any software implementation may be tangibly embodied on one or more storage media, such as a memory stick, floppy disk, compact disc (CD), digital versatile disc (DVD), or other devices that can store code. computerized.
Los sistemas (informáticos) para eliminación de ruido en una secuencia de imágenes de acuerdo con la presente divulgación pueden ser implementados por medios informáticos, medios electrónicos o una combinación de los mismos. Los medios informáticos pueden ser un conjunto de instrucciones (por ejemplo, un programa informático) y luego los sistemas (informáticos) para eliminación de ruido en una secuencia de imágenes pueden comprender una memoria y un procesador, que incorporen dicho conjunto de instrucciones almacenadas en la memoria y ejecutables por el procesador. Las instrucciones pueden comprender una funcionalidad o funcionalidades para ejecutar los correspondientes procedimientos para eliminación de ruido en una secuencia de imágenes como, por ejemplo, los que se describen en otras partes de esta divulgación.The (computer) systems for denoising an image sequence according to the present disclosure may be implemented by computer means, electronic means, or a combination thereof. The computer means can be a set of instructions (for example, a computer program) and then the (computer) systems for removing noise in a sequence of images can comprise a memory and a processor, which incorporate said set of instructions stored in the memory and executable by the processor. The instructions may comprise a functionality or functionalities to perform corresponding denoising procedures on an image sequence, such as those described elsewhere in this disclosure.
En caso de que los sistemas (informáticos) para eliminación de ruido en una secuencia de imágenes sean implementados solo por medios electrónicos, un controlador del sistema puede ser, por ejemplo, un CPLD (Dispositivo lógico programable complejo), una FPGA (matriz de puerta programable de campo) o un ASIC (circuito integrado de aplicación específica). In case the (computer) systems for denoising an image sequence are implemented only by electronic means, a system controller can be, for example, a CPLD (Complex Programmable Logic Device), an FPGA (Gate Array field programmable) or an ASIC (Application Specific Integrated Circuit).
En caso de que los sistemas (informáticos) para eliminación de ruido en una secuencia de imágenes sean una combinación de medios electrónicos e informáticos, los medios informáticos pueden ser un conjunto de instrucciones (por ejemplo, un programa informático) y los medios electrónicos pueden ser cualquier circuito electrónico capaz de implementar las correspondientes etapas de procedimiento de los procedimientos propuestos de eliminación de ruido en una secuencia de imágenes, como por ejemplo los que se describen en otras partes de esta divulgación.In case the (computer) systems for denoising an image sequence are a combination of electronic and computer means, the computer means may be a set of instructions (for example, a computer program) and the electronic means may be any electronic circuit capable of implementing the corresponding procedural steps of the proposed denoising procedures in an image sequence, such as those described in other parts of this disclosure.
Los programas informáticos pueden estar incorporados en un medio de almacenamiento (por ejemplo, un CD-ROM, un DVD, una unidad USB, una memoria informática o una memoria de solo lectura) o ser transportados en una señal portadora (por ejemplo, en una señal portadora eléctrica u óptica).Computer programs may be embedded in a storage medium (for example, a CD-ROM, DVD, USB drive, computer memory, or read-only memory) or carried on a carrier signal (for example, in a electrical or optical carrier signal).
Los programas informáticos pueden estar en forma de código fuente, código objeto, un código intermedio entre fuente y objeto tal como en forma parcialmente compilada, o en cualquier otra forma adecuada para su uso en la implementación de los procedimientos para eliminación de ruido en una secuencia de imágenes, de acuerdo con la presente divulgación. El portador puede ser cualquier entidad o dispositivo capaz de portar o transportar los programas informáticos.The computer programs may be in the form of source code, object code, an intermediate code between source and object such as partially compiled form, or in any other form suitable for use in implementing the procedures for denoising a sequence. of images, in accordance with the present disclosure. The carrier can be any entity or device capable of carrying or transporting the computer programs.
Por ejemplo, el portador puede comprender un medio de almacenamiento, como una ROM, por ejemplo un CD ROM o una ROM de semiconductores, o un medio de grabación magnética, por ejemplo un disco duro. Además, el portador puede ser un portador transmisible tal como una señal eléctrica u óptica, que puede transmitirse a través de un cable eléctrico u óptico o por radio u otros medios.For example, the carrier may comprise a storage medium, such as a ROM, eg a CD ROM or semiconductor ROM, or a magnetic recording medium, eg a hard disk. Furthermore, the carrier may be a transmissible carrier such as an electrical or optical signal, which may be transmitted through an electrical or optical cable or by radio or other means.
Cuando los programas informáticos están incorporados en una señal que puede ser transportada directamente por un cable u otro dispositivo o medio, el portador puede estar constituido por dicho cable u otro dispositivo o medio. Alternativamente, el portador puede ser un circuito integrado en el que el programa informático está integrado, estando el circuito integrado adaptado para realizar, o para usar en la realización de los procedimientos propuestos. When the computer programs are embedded in a signal that can be carried directly by a cable or other device or medium, the carrier may be constituted by said cable or other device or medium. Alternatively, the carrier may be an integrated circuit on which the computer program is embedded, the integrated circuit being adapted to perform, or used in performing, the proposed methods.
La Figura 2 es un diagrama de flujo que ilustra esquemáticamente procedimientos de eliminación de ruido en una secuencia de imágenes, de acuerdo con ejemplos. Estos procedimientos de eliminación de ruido pueden ser realizados por sistemas iguales o similares a los descritos con referencia a la Figura 1. Según ilustra la Figura, procedimientos eliminación de ruido pueden ser iniciados (por ejemplo, en bloque de inicio 200) ante una detección de una condición de inicio como, por ejemplo, una petición de usuario para iniciar el procedimiento, al detectar una primera imagen, etc.Figure 2 is a flowchart schematically illustrating denoising procedures on an image sequence, according to examples. These denoising procedures can be performed by systems the same or similar to those described with reference to Figure 1. As the Figure illustrates, denoising procedures can be initiated (for example, in start block 200) upon detection of noise. a start condition, such as a user request to start the procedure, upon detection of a first image, etc.
Procedimientos de eliminación de ruido pueden comprender además (por ejemplo, en bloque 201) realizar, para cada uno de todos o parte de los píxeles de una imagen actual de la secuencia, una re-proyección temporal del píxel en función de un vector de movimiento de dicho píxel para obtener un color promedio acumulado y un modelo predictivo asociados al píxel temporalmente anteriores a la imagen actual. Esta funcionalidad implementada en el bloque 201 puede ser realizada, por ejemplo, por un módulo de re-proyección como el módulo 102 descrito anteriormente con respecto a la Figura 1. Detalles y consideraciones funcionales sobre dicho módulo 102 pueden, por lo tanto, atribuirse de manera similar al bloque de procedimiento 201.Denoising procedures may further comprise (for example, in block 201) performing, for each of all or part of the pixels of a current image in the sequence, a temporal re-projection of the pixel as a function of a motion vector of said pixel to obtain an accumulated average color and a predictive model associated with the pixel temporally prior to the current image. This functionality implemented in block 201 can be performed, for example, by a re-projection module such as module 102 described above with respect to Figure 1. Details and functional considerations about said module 102 can therefore be attributed accordingly. similar way to procedure block 201.
Procedimientos de eliminación de ruido pueden comprender además (por ejemplo, en bloque 202) promediar, para cada uno de los píxeles de la imagen actual con color promedio acumulado asociado (obtenido en bloque 201), un color del píxel en la imagen actual con el color promedio acumulado asociado al píxel para obtener un color promedio actual, y actualizar el color promedio acumulado asociado al píxel con dicho color promedio actual. Esta funcionalidad implementada en el bloque 202 puede ser realizada, por ejemplo, por un módulo de promedio como el módulo 103 descrito anteriormente con respecto a la Figura 1. Detalles y consideraciones funcionales sobre dicho módulo 103 pueden, por lo tanto, atribuirse de manera similar al bloque de procedimiento 202.Denoising methods may further comprise (eg, in block 202) averaging, for each of the pixels in the current image with associated cumulative average color (obtained in block 201), a color of the pixel in the current image with the cumulative average color associated with the pixel to obtain a current average color, and updating the cumulative average color associated with the pixel with said current average color. This functionality implemented in block 202 can be performed, for example, by an averaging module such as module 103 described above with respect to Figure 1. Details and functional considerations about said module 103 can therefore be similarly attributed. to procedure block 202.
Procedimientos de eliminación de ruido pueden comprender además (por ejemplo, en bloque 203) actualizar, para cada uno de los píxeles de la imagen actual cuyo color ha sido promediado (en bloque 202), un vector de características del píxel con el color promedio acumulado actualizado del píxel. Esta funcionalidad implementada en el bloque 203 puede ser realizada, por ejemplo, por un módulo de actualización como el módulo 104 descrito anteriormente con respecto a la Figura 1. Detalles y consideraciones funcionales sobre dicho módulo 104 pueden, por lo tanto, atribuirse de manera similar al bloque de procedimiento 203. Denoising procedures may further comprise (for example, in block 203) updating, for each of the pixels in the current image whose color has been averaged (in block 202), a pixel feature vector with the accumulated average color updated pixel. This functionality implemented in block 203 can be performed, for example, by an update module such as module 104 described above with respect to Figure 1. Details and functional considerations about said module 104 can therefore be similarly attributed. to procedure block 203.
Procedimientos de eliminación de ruido pueden comprender además (por ejemplo, en bloque 204) determinar, para cada uno de los píxeles de la imagen actual cuyo vector de características ha sido actualizado (en bloque 203), un color final del píxel actualizando el modelo predictivo asociado al píxel en función del vector de características actualizado del píxel y obteniendo dicho color final a partir del modelo predictivo actualizado. Esta funcionalidad implementada en el bloque 204 puede ser realizada, por ejemplo, por un módulo de determinación como el módulo 105 descrito anteriormente con respecto a la Figura 1. Detalles y consideraciones funcionales sobre dicho módulo 105 pueden, por lo tanto, atribuirse de manera similar al bloque de procedimiento 204.Denoising procedures may further comprise (for example, in block 204) determining, for each of the pixels in the current image whose feature vector has been updated (in block 203), a final pixel color by updating the predictive model associated to the pixel based on the pixel's updated feature vector and obtaining said final color from the updated predictive model. This functionality implemented in block 204 can be performed, for example, by a determination module such as module 105 described above with respect to Figure 1. Details and functional considerations about said module 105 can therefore be similarly attributed. to procedure block 204.
Procedimientos de eliminación de ruido pueden comprender además (por ejemplo, en bloque 205) realizar un filtrado espacial según cualquier técnica conocida o pre-existente, una vez ha concluido el filtrado temporal 207 (bloques 201 - 204). Esta funcionalidad implementada en el bloque 205 puede ser realizada, por ejemplo, por un módulo de filtrado espacial como el módulo 106 descrito anteriormente con respecto a la Figura 1. Detalles y consideraciones funcionales sobre dicho módulo 106 pueden, por lo tanto, atribuirse de manera similar al bloque de procedimiento 205.Denoising procedures may further comprise (eg, in block 205) performing spatial filtering according to any known or pre-existing technique, once temporal filtering 207 has been completed (blocks 201-204). This functionality implemented in block 205 can be performed, for example, by a spatial filtering module such as module 106 described above with respect to Figure 1. Details and functional considerations about said module 106 can therefore be freely attributed. similar to procedure block 205.
Procedimientos de eliminación de ruido pueden terminar (por ejemplo, en bloque 206) cuando se detecta una condición de finalización, como por ejemplo una solicitud de usuario para finalizar el procedimiento, cuando dejan de recibirse imágenes de la secuencia, etc. La secuencia de bloques 200 - 205 se puede ejecutar de forma iterativa para ir procesando todas las imágenes de la secuencia que vayan llegando a lo largo del tiempo.Denoising procedures may terminate (eg, at block 206) when an end condition is detected, such as a user request to terminate the procedure, when images from the stream stop being received, and so on. The sequence of blocks 200-205 can be executed iteratively to process all the images in the sequence that arrive over time.
A pesar de que se han descrito aquí sólo algunas realizaciones y ejemplos particulares de la invención, el experto en la materia comprenderá que son posibles otras realizaciones alternativas y/o usos de la invención, así como modificaciones obvias y elementos equivalentes. Además, la presente invención abarca todas las posibles combinaciones de las realizaciones concretas que se han descrito. El alcance de la presente invención no debe limitarse a realizaciones concretas, sino que debe ser determinado únicamente por una lectura apropiada de las reivindicaciones adjuntas. Although only a few particular embodiments and examples of the invention have been described herein, it will be understood by those skilled in the art that other alternative embodiments and/or uses of the invention are possible, as well as obvious modifications and equivalent elements. Furthermore, the present invention encompasses all possible combinations of the specific embodiments that have been described. The scope of the present invention should not be limited to specific embodiments, but should only be determined by a proper reading of the appended claims.
Claims (29)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ES202030440A ES2877410B2 (en) | 2020-05-13 | 2020-05-13 | PROCEDURE, COMPUTER PROGRAM, SYSTEM AND COMPUTER SYSTEM FOR ELIMINATION OF NOISE IN A SEQUENCE OF IMAGES |
| PCT/ES2021/070336 WO2021229129A1 (en) | 2020-05-13 | 2021-05-12 | Method, computer program, system and computer system for eliminating noise in an image sequence |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ES202030440A ES2877410B2 (en) | 2020-05-13 | 2020-05-13 | PROCEDURE, COMPUTER PROGRAM, SYSTEM AND COMPUTER SYSTEM FOR ELIMINATION OF NOISE IN A SEQUENCE OF IMAGES |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| ES2877410A1 ES2877410A1 (en) | 2021-11-16 |
| ES2877410B2 true ES2877410B2 (en) | 2022-07-13 |
Family
ID=78507509
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES202030440A Active ES2877410B2 (en) | 2020-05-13 | 2020-05-13 | PROCEDURE, COMPUTER PROGRAM, SYSTEM AND COMPUTER SYSTEM FOR ELIMINATION OF NOISE IN A SEQUENCE OF IMAGES |
Country Status (2)
| Country | Link |
|---|---|
| ES (1) | ES2877410B2 (en) |
| WO (1) | WO2021229129A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160321523A1 (en) * | 2015-04-30 | 2016-11-03 | The Regents Of The University Of California | Using machine learning to filter monte carlo noise from images |
| US10475165B2 (en) * | 2017-04-06 | 2019-11-12 | Disney Enterprises, Inc. | Kernel-predicting convolutional neural networks for denoising |
| KR102135459B1 (en) * | 2018-10-05 | 2020-07-17 | 광주과학기술원 | Denoising method in image processing device and method for generating feature therefor |
-
2020
- 2020-05-13 ES ES202030440A patent/ES2877410B2/en active Active
-
2021
- 2021-05-12 WO PCT/ES2021/070336 patent/WO2021229129A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021229129A1 (en) | 2021-11-18 |
| ES2877410A1 (en) | 2021-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Haltakov et al. | Framework for generation of synthetic ground truth data for driver assistance applications | |
| JP6356784B2 (en) | Apparatus and method for radiance transfer sampling for augmented reality | |
| TWI536318B (en) | Quality improvement in depth measurement | |
| US8682063B2 (en) | Methods and apparatus for dynamic color flow modeling | |
| CN110024002B (en) | Method and system for rendering views from light field | |
| CN106408523A (en) | noise reduction filter | |
| US20130120385A1 (en) | Methods and Apparatus for Diffuse Indirect Illumination Computation using Progressive Interleaved Irradiance Sampling | |
| US10572976B2 (en) | Enhancing observation resolution using continuous learning | |
| CN113222825B (en) | Infrared image super-resolution reconstruction method based on visible light image training and application | |
| CN100499778C (en) | Method and device for camera model parameter estimation using iterative center of mass | |
| CN109191554B (en) | A super-resolution image reconstruction method, device, terminal and storage medium | |
| JP5108893B2 (en) | System and method for restoring a 3D particle system from a 2D image | |
| WO2015158604A1 (en) | Capturing an environment with objects | |
| Wei et al. | Gsfusion: Online rgb-d mapping where gaussian splatting meets tsdf fusion | |
| Fiss et al. | Light field layer matting | |
| US20150030206A1 (en) | Detecting and Tracking Point Features with Primary Colors | |
| Lukasczyk et al. | Voidga: A view-approximation oriented image database generation approach | |
| CN115564639A (en) | Background blurring method and device, computer equipment and storage medium | |
| JP4875564B2 (en) | Flicker correction apparatus and flicker correction method | |
| ES2877410B2 (en) | PROCEDURE, COMPUTER PROGRAM, SYSTEM AND COMPUTER SYSTEM FOR ELIMINATION OF NOISE IN A SEQUENCE OF IMAGES | |
| US20070165029A1 (en) | method and apparatus for generating shadow by using an adaptive shadow volume algorithm | |
| Collomosse et al. | Rendering cartoon-style motion cues in post-production video | |
| CN114862680A (en) | Image reconstruction method and device and electronic equipment | |
| Wei et al. | Dense and occlusion-robust multi-view stereo for unstructured videos | |
| Sabbadin et al. | Multi-View Ambient Occlusion for Enhancing Visualization of Raw Scanning Data. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| BA2A | Patent application published |
Ref document number: 2877410 Country of ref document: ES Kind code of ref document: A1 Effective date: 20211116 |
|
| FG2A | Definitive protection |
Ref document number: 2877410 Country of ref document: ES Kind code of ref document: B2 Effective date: 20220713 |