EP4248657A1 - Methods and systems for low light media enhancement - Google Patents

Methods and systems for low light media enhancement

Info

Publication number
EP4248657A1
EP4248657A1 EP22825246.6A EP22825246A EP4248657A1 EP 4248657 A1 EP4248657 A1 EP 4248657A1 EP 22825246 A EP22825246 A EP 22825246A EP 4248657 A1 EP4248657 A1 EP 4248657A1
Authority
EP
European Patent Office
Prior art keywords
frames
neural network
brightness
media stream
dataset
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.)
Pending
Application number
EP22825246.6A
Other languages
German (de)
French (fr)
Other versions
EP4248657A4 (en
Inventor
Green Rosh K S
Nikhil Krishnan
Yash Harbhajanka
Bodhisatwa Mandal
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority claimed from PCT/KR2022/008294 external-priority patent/WO2022265321A1/en
Publication of EP4248657A1 publication Critical patent/EP4248657A1/en
Publication of EP4248657A4 publication Critical patent/EP4248657A4/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/71Circuitry for evaluating the brightness variation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/745Detection of flicker frequency or suppression of flicker wherein the flicker is caused by illumination, e.g. due to fluorescent tube illumination or pulsed LED illumination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30168Image quality inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Definitions

  • the disclosure relates to the field of media processing and more particularly to low light media enhancement.
  • a maximum exposure time of the videos may be restricted by a desired frame per second (FPS), which results in high noise in the low light conditions;
  • FPS frame per second
  • color artifacts an accuracy of the sensor used to capture accurate color drops with a decrease in a number of photons captured resulting in a loss of color accuracy;
  • spatial or temporal filters may be used to denoise/enhance the video captured under the low light conditions.
  • the spatial or temporal filters may not remove noise from the video efficiently, when the video is captured under the low light conditions or using the low-quality sensors.
  • CNNs deep Convolutional Neural Networks
  • the deep CNNs used in the related art methods may be too computationally heavy and memory intensive to be deployed in a real-time on an electronic device/mobile phone.
  • the enhanced video using the deep CNNs may also suffer from the flickering due to inconsistent denoising of consecutive video frames.
  • Another aspect of the embodiments herein is to provide methods and systems for switching between a first, second, and third neural network to enhance the media, by analyzing parameters of a plurality of frames of the video, wherein the parameters include shot boundary detection and artificial light flickering, wherein the first neural network is a high complexity neural network (HCN) with one input frame, the second neural network is a temporally guided lower complexity neural network (TG-LCN) with a 'q' number of input frames and a previous output frame for joint deflickering or joint denoising, and the third neural network is a neural network with a 'p' number of input frames and the previous output frame for denoising, wherein 'p' is lesser than 'q'.
  • HCN high complexity neural network
  • TG-LCN temporally guided lower complexity neural network
  • Another aspect of the embodiments herein is to provide methods and systems for training the first/second/third neural network using a multi-frame Siamese training method.
  • a method for enhancing media includes: receiving, by an electronic device, a media stream; performing, by the electronic device, an alignment of a plurality of frames of the media stream; correcting, by the electronic device, a brightness of the plurality of frames; selecting, by the electronic device, one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters include at least one of shot boundary detection and artificial light flickering; and generating, by the electronic device, an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.
  • the media stream may be captured under low light conditions, and the media stream may include at least one of noise, low brightness, artificial flickering, and color artifacts.
  • the output media stream may be a denoised media stream with enhanced brightness and zero flicker.
  • the correcting the brightness of the plurality of frames of the media stream may include: identifying a single frame or the plurality of frames of the media stream as an input frame; linearizing the input frame using an Inverse Camera Response Function (ICRF); selecting a brightness multiplication factor for correcting the brightness of the input frame using a future temporal guidance; applying a linear boost on the input frame based on the brightness multiplication factor; and applying a Camera Response Function (CRF) on the input frame to correct the brightness of the input frame, wherein the CRF is a function of a sensor type and metadata, wherein the metadata includes an exposure value and International Standard Organization (ISO), and the CRF and the ICRF are stored as Look-up-tables (LUTs).
  • ISO International Standard Organization
  • the selecting the brightness multiplication factor may include: analyzing the brightness of the input frame; identifying a maximum constant boost value as the brightness multiplication factor, based on the brightness of the input frame being less than a threshold and a brightness of all frames in a future temporal buffer being less than the threshold; identifying a boost value of monotonically decreasing function between maximum constant boost value and 1 as the brightness multiplication factor, based on the brightness of the input frame being less than the threshold, and the brightness of all the frames in the future temporal buffer being greater than the threshold; identifying a unit gain boost value as the brightness multiplication factor, based on the brightness of the input frame being greater than the threshold and the brightness of all the frames in the future temporal buffer being greater than the threshold; and identifying a boost value of monotonically increasing function between 1 and the maximum constant boost value as the brightness multiplication factor, based on the brightness of the input frame being greater than the threshold, and the brightness of the frames in the future temporal buffer being less than the threshold.
  • the selecting, by the electronic device, one of the first neural network, the second neural network or the third neural network may include: analyzing each frame with respect to earlier frames to determine whether the shot boundary detection is associated with each of the plurality of frames; selecting the first neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the shot boundary detection being associated with the plurality of frames; analyzing a presence of the artificial light flickering in the plurality of frames, based on the shot boundary detection not being associated with the plurality of frames; selecting the second neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the artificial light flickering being present in the plurality of frames; and selecting the third neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the artificial light flickering not being present in the plurality of frames.
  • the first neural network may be a high complexity neural network with one input frame
  • the second neural network may be a temporally guided lower complexity neural network with 'q' number of input frames and a previous output frame for joint deflickering or joint denoising
  • the third neural network may be a neural network with 'p' number of input frames and the previous output frame for denoising, wherein 'p' is less than 'q'.
  • the first neural network may include multiple residual blocks at a lowest level for enhancing noise removal capabilities
  • the second neural network may include at least one convolution operation with less feature maps and the previous output frame as a guide for processing the plurality of input frames.
  • the first neural network, the second neural network and the third neural network may be trained using a multi-frame Siamese training method to generate the output media stream by processing the plurality of frames of the media stream.
  • the method may further include training a neural network of at least one of the first neural network, the second neural network and the third neural network by: creating a dataset for training the neural network, wherein the dataset includes one of a local dataset and a global dataset; selecting at least two sets of frames from the created dataset, wherein each set includes at least three frames; adding a synthetic motion to the selected at least two sets of frames, wherein the at least two sets of frames added with the synthetic motion include different noise realizations; and performing a Siamese training of the neural network using a ground truth media and the at least two sets of frames added with the synthetic motion.
  • the creating the dataset may include: capturing burst datasets, wherein a burst dataset includes one of low light static media with noise inputs and a clean ground truth frame; simulating a global motion and a local motion of each burst dataset using a synthetic trajectory generation and a synthetic stop motion, respectively; removing at least one burst dataset with structural and brightness mismatches between the clean ground truth frame and the low light static media; and creating the dataset by including the at least one burst dataset that does not include the structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • the simulating the global motion of each burst dataset may include: estimating a polynomial coefficient range based on parameters including a maximum translation and a maximum rotation; generating 3rd order polynomial trajectories using the estimated polynomial coefficient range; approximating a 3rd order trajectory using a maximum depth and the generated 3rd order polynomial trajectories; generating uniform sample points based on a pre-defined sampling rate and the approximated 3D trajectory; generating 'n' affine transformations based on the generated uniform sample points; and applying the generated n affine transformations on each burst dataset.
  • the simulating the local motion of each burst dataset includes: capturing local object motion from each burst dataset in a static scene using the synthetic stop motion, the capturing the local object motion including: capturing an input and ground truth scene with a background scene; capturing an input and ground truth scene with a foreground object; cropping out the foreground object; and creating synthetic scenes by positioning the foreground object at different locations of the background scene; and simulating a motion blur for each local object motion by averaging a pre-defined number of frames of the burst dataset.
  • the performing the Siamese training of the neural network may include: passing the at least two sets of frames with the different noise realizations to the neural network to generate at least two sets of output frames; computing a Siamese loss by computing a loss between the at least two sets of output frames; computing a pixel loss by computing an average of the at least two sets of output frames and a ground truth; computing a total loss using the Siamese loss and the pixel loss; and training the neural network using the computed total loss.
  • an electronic device includes: a memory; and a processor coupled to the memory and configured to: receive a media stream; perform an alignment of a plurality of frames of the media stream; correct a brightness of the plurality of frames; select one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters include at least one of shot boundary detection, and artificial light flickering; and generate an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.
  • FIG. 1 illustrates an electronic device for enhancing media, according to embodiments of the disclosure
  • FIG. 2 illustrates a media enhancer performable in the electronic device for enhancing the media, according to embodiments of the disclosure
  • FIG. 3 is an example conceptual diagram depicting enhancing of video, according to embodiments of the disclosure.
  • FIG. 4 illustrates an example image signal processing (ISP) inference pipeline for enhancing the video captured under low light conditions and/or using low-quality sensors, according to embodiment of the disclosure
  • FIGs. 5 and 6 are example diagrams depicting brightness correction performed on the video, while enhancing the video, according to embodiments of the disclosure
  • FIG. 7 illustrates a high complexity network (HCN) for processing frames of the video, if shot boundary detection is associated with the frames of the video, according to embodiments of the disclosure
  • FIG. 8 illustrates a temporal guided low complexity network (TG-LCN) for processing the multiple frames of the video, if the artificial light flickering is present in the multiple frames, according to embodiments of the disclosure;
  • TG-LCN temporal guided low complexity network
  • FIG. 9 is an example diagram depicting a multi-scale pyramid approach to generate an output video by processing the frames of the video, according to embodiments disclosed herein;
  • FIG. 10 is an example diagram depicting training of a first/second/third neural network for enhancing the video/media stream, according to embodiments of the disclosure.
  • FIG. 11 is an example diagram, depicting training of the first/second/third neural network using a multi-frame Siamese training method, according to embodiments of the disclosure.
  • FIG. 12 is an example diagram depicting creation of a dataset for training the first/second/third neural network, according to embodiments of the disclosure.
  • FIGs. 13A and 13B are example diagrams depicting simulation of a global motion, and a local motion on a burst dataset, according to embodiments of the disclosure
  • FIG. 14 is an example diagram depicting Siamese training of the first/second/third neural network, according to embodiments of the disclosure.
  • FIGs. 15A and 15B are example diagrams depicting a use case scenario of enhancing a low frame per second (FPS) video captured under low light conditions, according to embodiments of the disclosure;
  • FPS frame per second
  • FIG. 16 is an example diagram depicting a use case scenario of enhancing an indoor slow motion video, according to embodiments of the disclosure.
  • FIG. 17 is an example diagram depicting a use case scenario of enhancing a real-time High Dynamic Range (HDR) video, according to embodiments of the disclosure.
  • FIG. 18 is a flow chart depicting a method for enhancing the media stream, according to embodiments of the disclosure.
  • Embodiments of the disclosure provide methods and systems for enhancing media/video in real-time using temporal guided adaptive Convolutional Neural Network (CNN) switching, wherein the media may be captured in extreme low light conditions, under high noise conditions, and/or captured using inferior/low quality sensors.
  • CNN temporal guided adaptive Convolutional Neural Network
  • embodiments of the disclosure provide methods and systems for using a deep learning based pipeline to enhance the media while minimizing noise and flicker artifacts.
  • embodiments of the disclosure provide methods and systems for choosing between high and low complexity networks by analyzing temporal consistency of input frames of the media, thus reducing average time and power required to process the media.
  • embodiments of the disclosure provide methods and systems for using a Siamese training method to reduce the flicker.
  • FIG. 1 illustrates an electronic device 100 for enhancing media, according to embodiments of the disclosure.
  • the electronic device 100 referred herein may be configured to enhance media.
  • Examples of the electronic device 100 may be, but are not limited to, a cloud computing device (which may be a part of a public cloud or a private cloud), a server, a database, a computing device, and so on.
  • the server may be at least one of a standalone server, a server on a cloud, or the like.
  • the computing device may be, but is not limited to, a personal computer, a notebook, a tablet, desktop computer, a laptop, a handheld device, a mobile device, a camera, an Internet of Things (IoT) device, an Augmented Reality (AR)/Virtual Reality (VR) device, and so on.
  • the electronic device 100 may be at least one of, a microcontroller, a processor, a System on Chip (SoC), an integrated chip (IC), a microprocessor based programmable consumer electronic device, and so on.
  • SoC System on Chip
  • IC integrated chip
  • Examples of the media/media stream may be, but are not limited to, video, animated images, Graphic Interchange Formats (GIFs), a batch of moving images, and so on.
  • the video may include a low frame per second (FPS) video, an indoor slow motion video, a High Dynamic Range (HDR) video, and so on.
  • the media may be captured under low light conditions.
  • the media may be captured using inferior/low quality sensors.
  • the media may include, but is not limited to, at least one of noise, low brightness, artificial light, flickering, color artifacts, and so on.
  • Embodiments herein use the terms such as "media”, “video”, “media stream”, “video stream”, “image frames”, and so on, interchangeably throughout the disclosure.
  • the electronic device 100 may enhance the media/media stream stored in a memory or received from at least one external device. Alternatively, the electronic device 100 may enhance the media being captured in real-time. Enhancing the media refers to denoising the media and removing the different artifacts (such as, the artificial light flickering, the color artifacts, and so on) from the media.
  • the electronic device 100 includes a memory 102, a communication interface 104, a camera (camera sensor) 106, a display 108, and a controller (processor) 110.
  • the electronic device 100 may also communicate with one or more external devices using a communication network to receive the media for enhancing. Examples of the external devices may be, but are not limited to, a server, a database, and so on.
  • the communication network may include, but is not limited to, at least one of a wired network, a value added network, a wireless network, a satellite network, or a combination thereof. Examples of the wired network may be, but are not limited to, a Local Area Network (LAN), a Wide Area Network (WAN), an Ethernet, and so on.
  • Examples of the wireless network may be, but are not limited to, a cellular network, a wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy, Zigbee, Wi-Fi Direct (WFD), Ultra-wideband (UWB), infrared data association (IrDA), near field communication (NFC), and so on.
  • Wi-Fi wireless LAN
  • Wi-Fi Direct Wi-Fi Direct
  • UWB Ultra-wideband
  • IrDA infrared data association
  • NFC near field communication
  • the memory 102 may include at least one type of storage medium, from among a flash memory type storage medium, a hard disk type storage medium, a multi-media card micro type storage medium, a card type memory (for example, an SD or an XD memory), random-access memory (RAM), static RAM (SRAM), read-only memory (ROM), electrically erasable programmable ROM (EEPROM), programmable ROM (PROM), a magnetic memory, a magnetic disk, and/or an optical disk.
  • a flash memory type storage medium for example, a flash memory type storage medium, a hard disk type storage medium, a multi-media card micro type storage medium, a card type memory (for example, an SD or an XD memory), random-access memory (RAM), static RAM (SRAM), read-only memory (ROM), electrically erasable programmable ROM (EEPROM), programmable ROM (PROM), a magnetic memory, a magnetic disk, and/or an optical disk.
  • a flash memory type storage medium for example, an SD
  • the memory 102 may store at least one of the media, an input media stream received for enhancing, an output media stream (i.e., the enhanced media stream), and so on.
  • the memory 102 may also store a first neural network 202a, a second neural network 202b, and a third neural network 202c, which may be used to generate the output media stream by processing the input media stream.
  • the first neural network 202a may be a high complexity neural network (HCN) with one input frame of the media.
  • the second neural network 202b may be a temporally guided lower complexity neural network (TG-LCN) with 'q' number of input frames and a previous output frame for joint deflickering or joint denoising.
  • the third neural network 202c may be a neural network with 'p' number of input frames and the previous output frame for denoising, wherein 'p' is less than 'q'. Each neural network is described later.
  • Examples of the first, second, and third neural networks may be, but are not limited to, a deep neural network (DNN), an Artificial Intelligence (AI) model, a machine learning (ML) model, a multi-class Support Vector Machine (SVM) model, a Convolutional Neural Network (CNN) model, a recurrent neural network (RNN), a stacked hourglass network, a restricted Boltzmann Machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a generative adversarial network (GAN), a regression based neural network, a deep reinforcement model (with ReLU activation), a deep Q-network, a residual network, a Conditional Generative Adversarial Network (CGAN), and so on.
  • DNN deep neural network
  • AI Artificial Intelligence
  • ML machine learning
  • SVM multi-class Support Vector Machine
  • CNN Convolutional Neural Network
  • RNN recurrent neural network
  • RNN restricted Boltzmann Machine
  • the first, second, and third neural networks may include a plurality of nodes, which may be arranged in the layers.
  • the layers may be, but are not limited to, a convolutional layer, an activation layer, an average pool layer, a max pool layer, a concatenated layer, a dropout layer, a fully connected (FC) layer, a SoftMax layer, and so on.
  • Each layer has a plurality of weight values and performs a layer operation through calculation of a previous layer and an operation of a plurality of weights/coefficients.
  • a topology of the layers of the first, second, and third neural networks may vary based on the type of the respective network.
  • the first, second, and third neural networks may include an input layer, an output layer, and a hidden layer.
  • the input layer receives a layer input and forwards the received layer input to the hidden layer.
  • the hidden layer transforms the layer input received from the input layer into a representation, which can be used for generating the output in the output layer.
  • the hidden layers extract useful/low level features from the input, introduce non-linearity in the network and reduce a feature dimension to make the features equivariant to scale and translation.
  • the nodes of the layers may be fully connected via edges to the nodes in adjacent layers.
  • the input received at the nodes of the input layer may be propagated to the nodes of the output layer via an activation function that calculates the states of the nodes of each successive layer in the network based on coefficients/weights respectively associated with each of the edges connecting the layers.
  • the first, second, and third neural networks may be trained using at least one learning method to perform at least one intended function.
  • the learning method may be, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, reinforcement learning, regression-based learning, and so on.
  • the trained first, second, and third neural networks (202a, 202b, and 202c) may be a neural network model in which a number of layers, a sequence for processing the layers and parameters related to each layer may be known and fixed for performing the at least one intended function.
  • Examples of the parameters related to each layer may be, but are not limited to, activation functions, biases, input weights, output weights, and so on, related to the layers of the first, second, and third neural networks (202a, 202b, and 202c).
  • a function associated with the learning method may be performed through the non-volatile memory, the volatile memory, and the controller 110.
  • the controller 110 may include one or more processors.
  • the one or more processors may be a general purpose processor, such as a central processing unit (CPU), an application processor (AP), or the like, a graphics-only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), and/or an Artificial Intelligence (AI)-dedicated processor such as a neural processing unit (NPU).
  • a general purpose processor such as a central processing unit (CPU), an application processor (AP), or the like
  • a graphics-only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), and/or an Artificial Intelligence (AI)-dedicated processor such as a neural processing unit (NPU).
  • the one or more processors may perform the at least one intended function in accordance with a predefined operating rule of the first, second, and third neural networks (202a, 202b, and 202c), stored in the non-volatile memory and the volatile memory.
  • the predefined operating rules of the first, second, and third neural networks (202a, 202b, and 202c) are provided through training the modules using the learning method.
  • the learning means by applying the learning method to a plurality of learning data, a predefined operating rule, or the first, second, and third neural networks (202a, 202b, and 202c) of a desired characteristic is made.
  • the intended functions of the first, second, and third neural networks (202a, 202b, and 202c) may be performed in the electronic device 100 itself in which the learning according to an embodiment is performed, and/or may be implemented through a separate server/system.
  • the communication interface 104 may be configured to communicate with the one or more external devices using communication methods that have been supported by the communication network.
  • the communication interface 104 may include the components such as, a wired communicator, a short-range communicator, a mobile/wireless communicator, and a broadcasting receiver.
  • the wired communicator may enable the electronic device 100 to communicate with the external devices using the communication methods such as, but are not limited to, wired LAN, the Ethernet, and so on.
  • the short-range communicator may enable the electronic device 100 to communicate with the external devices using the communication methods such as, but are not limited to, Bluetooth low energy (BLE), near field communicator (NFC), WLAN (or Wi-fi), Zigbee, infrared data association (IrDA), Wi-Fi direct (WFD), UWB communication, Ant+ (interoperable wireless transfer capability) communication, shared wireless access protocol (SWAP), wireless broadband internet (Wibro), wireless gigabit alliance (WiGiG), and so on.
  • the mobile communicator may transceive wireless signals with at least one of a base station, an external terminal, or a server on a mobile communication network/cellular network.
  • the wireless signal may include a speech call signal, a video telephone call signal, or various types of data, according to transceiving of text/multimedia messages.
  • the broadcasting receiver may receive a broadcasting signal and/or broadcasting-related information from the outside through broadcasting channels.
  • the broadcasting channels may include satellite channels and ground wave channels.
  • the electronic device 100 may or may not include the broadcasting receiver.
  • the camera sensor 106 may be configured to capture the media.
  • the display 108 may be configured to enable a user to interact with the electronic device 100.
  • the display 108 may also be configured to display the output media stream to the user.
  • the controller 110 may be configured to enhance the media/media stream in real-time.
  • the controller 110 may enhance the media using a temporal guided adaptive neural network/CNN switching.
  • the temporal guided adaptive neural network switching refers to switching between the first, second, and third neural networks (202a-202c) to enhance the media.
  • the controller 110 receives the media stream.
  • the controller 110 may receive the media stream from the memory 102.
  • the controller 110 may receive the media stream from the external device.
  • the controller 110 may receive the media stream from the camera 106.
  • Embodiments herein use the terms such as "media”, “media stream”, “input media stream”, “input video”, “input video frames”, “input video sequence” and so on, interchangeably to refer to media captured under the low light conditions or using the low quality sensors.
  • the controller 110 When the media stream is received, the controller 110 performs an alignment of a plurality of frames of the media stream.
  • the plurality of frames may correspond to a plurality of image frames.
  • the controller 110 After aligning the plurality of frames of the media stream, the controller 110 corrects brightness of the plurality of frames. For correcting the plurality of frames, the controller 110 identifies a single frame of the plurality of frames or the plurality of frames of the media stream as an input frame. The controller 110 linearizes the input frames using an Inverse Camera Response Function (ICRF). The controller 110 chooses a brightness value for correcting the brightness of the input frame using a future temporal guidance, on linearizing the input frames. For choosing the brightness value in accordance with the future temporal guidance, the controller 110 analyzes the brightness of the input frame and a future temporal buffer. The future temporal buffer is the next n frames after the input frame.
  • ICRF Inverse Camera Response Function
  • the current input frame will be the (t-n)th frame, and the frames from (t-n) to t comprise of future temporal buffer(s). There may be a delay of n frames between the camera stream and output.
  • the controller 110 chooses a constant boost value as the brightness value, on analyzing that the brightness of the input frame is less than a threshold and brightness of all frames in the future temporal buffer is less than the threshold.
  • the threshold value can be set empirically after experiments.
  • the controller 110 chooses a boost value of monotonically decreasing function as the brightness value, based on analyzing that the brightness of the input frame is less than the threshold and the brightness of all the frames in the future temporal buffer is greater than the threshold.
  • the controller 110 chooses a zero-boost value as the brightness value, based on analyzing that the brightness of the input frame is greater than the threshold and the brightness of all the frames in the future temporal buffer is greater than the threshold. Thereby, the controller 110 does not boost the brightness of the input frame, based on choosing the zero boost value.
  • the controller 110 chooses a boost value of monotonically increasing function as the brightness value, based on analyzing that the brightness of the input frame is greater than the threshold, and the brightness of the frames in the future temporal buffer is less than the threshold. After choosing the brightness value, the controller 110 applies a linear boost on the input frame based on the chosen brightness value.
  • the controller 110 applies a Camera Response Function (CRF) on the input frame to correct the brightness of the input frame.
  • CRF Camera Response Function
  • the CRF may be a function of a type of the camera 106 used to capture the media stream (hereinafter referred as a sensor type) and metadata.
  • the metadata includes an exposure value and International Standard Organization (ISO).
  • the CRF and the ICRF may be characterized and stored in Look-up-tables (LUTs).
  • the controller 110 selects one of the first neural network 202a, the second neural network 202b, and the third neural network 202c for processing the media stream.
  • the controller 110 selects one of the three neural networks (202a, 202b, and 202c) by analyzing parameters of the plurality of frames of the media stream. Examples of the parameters may be, but are not limited to, shot boundary detection, and artificial light flickering.
  • the controller 110 For selecting one among the three neural networks (220a, 22b, and 202c) for processing the plurality of frames of the media stream, the controller 110 analyzes each frame with respect to earlier frames to check if the shot boundary detection is associated with each of the plurality of frames.
  • the shot boundary detection may be checked by analyzing temporal similarity between the plurality of frames.
  • the controller 110 may analyze that the shot boundary detection is associated with each of the plurality of frames based on an absence of the temporal similarity between the plurality of frames. If the shot boundary detection is associated with the plurality of frames, the controller 110 selects the first neural network 202a for processing the plurality of frames of the media stream.
  • the controller 110 analyzes a presence of the artificial light flickering in the plurality of frames. If the artificial light flickering is present in the plurality of frames, the controller 110 selects the second neural network 202b for processing the plurality of frames of the media stream. If the artificial light flickering is not present in the plurality of frames, the controller 110 selects the third neural network 202c for processing the plurality of frames of the media stream.
  • the first neural network 202a may be the high complexity network (HCN) with one input frame (current frame) of the media.
  • the first neural network 202a includes multiple residual blocks at lowest level for enhancing noise removal capabilities.
  • Embodiments herein use the terms such as “first neural network”, “HCN”, “high complexity CNN”, and so on, interchangeably throughout the disclosure.
  • the second neural network 202b may be the temporally guided lower complexity neural network (TG-LCN) with the 'q' number of input frames and the previous output frame for joint deflickering or joint denoising.
  • the second neural network 202b includes at least one convolution operation with less feature maps and a previous output frame as a guide for processing the plurality of input frames.
  • the third neural network 202c may be the neural network with the 'p' number of input frames and the previous output frame for denoising, wherein the 'p' is less than the 'q' (i.e., the number of frames of the media stream).
  • the first, second, and third neural networks may be the trained neural network.
  • the controller 110 may train the first, second, and third neural networks (202a, 202b, and 202c) using a using a multi-frame Siamese training method.
  • the controller 110 For training the first, second, and third neural networks (202a, 202b, and 202c), the controller 110 creates a dataset.
  • the dataset includes one of a local dataset and a global dataset.
  • the controller 110 captures burst datasets, or alternatively, the controller 110 may receive the burst dataset from the external devices.
  • the burst datasets includes, but is not limited to, one of low light static media with noise inputs and a clean ground truth frame, or the like.
  • the clean ground truth means ground truth image without noise.
  • the clean ground truth can be obtained by averaging the individual frames in the burst.
  • the controller 110 simulates a global motion and a local motion of each burst dataset using a synthetic trajectory generation and a synthetic stop motion, respectively.
  • the controller 110 estimates a polynomial coefficient range based on parameters including a maximum translation and a maximum rotation from the burst dataset.
  • the maximum translation and rotation signify the maximum motion that the camera can undergo during a capture session. This can be used for creating synthetic motion, and can be set empirically after experiments.
  • the controller 110 generates a 3rd order polynomial trajectory using the estimated polynomial coefficient range and approximates the 3rd order trajectory using a maximum depth.
  • the maximum depth determines the distance of the scene from the camera for approximately planar scenes.
  • the maximum depth can be set empirically after experiments.
  • the 3rd order polynomial trajectory may be a trajectory used by the camera 106 to capture the burst dataset.
  • the controller 110 generates the uniform sample points based on a pre-defined sampling rate and the approximated 3D trajectory.
  • the pre-defined sampling rate may be a sampling rate that controls a smoothness between the frames of each burst dataset.
  • the controller 110 generates 'n' affine transformations based on the generated uniform sample points and applies the generated 'n' affine transformations on each burst dataset. Thereby, creating the global dataset by simulating the global motion of each burst dataset.
  • the controller 110 captures a local object motion from each burst dataset in a static scene using the synthetic stop motion, For capturing the local object motion, the controller 110 captures an input and ground truth scene with a background scene from each burst dataset.
  • the controller 110 also captures an input and ground truth scene with a foreground object from each burst dataset.
  • the controller 110 crops out the foreground object and creates synthetic scenes by positioning the foreground object at different locations of the background scene.
  • the controller 110 simulates a motion blur for each local object motion by averaging a pre-defined number of frames of the burst dataset. Thereby, creating the local dataset by simulating the local motion of each burst dataset.
  • the controller 110 removes one or more burst datasets having structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • the controller 110 creates the dataset by including the one or more burst datasets that do not include the structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • the controller 110 selects at least two sets of frames from the created dataset. Each set includes at least three frames.
  • the controller 110 adds a synthetic motion to the selected at least two sets of frames.
  • the at least two sets of frames added with the synthetic motion includes different noise realizations.
  • the controller 110 performs a Siamese training of the first, second, and third neural networks (202a, 202b, and 202c) using a ground truth and the at least two sets of frames added with the synthetic motion.
  • the ground truth can be used for loss computations for training the neural network.
  • the controller 110 For performing the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c), the controller 110 passes the at least two sets of frames with the different noise realizations to at least two of the first, second, and third neural networks (202a, 202b, and 202c) to generate at least two sets of output frames.
  • the controller 110 computes a Siamese loss by computing a L2 loss between the at least two sets of output frames.
  • the controller 110 computes a pixel loss by computing an average of the at least two sets of output frames and a ground truth corresponding to the output frames.
  • the controller 110 computes a total loss using the Siamese loss and the pixel loss and trains the first, second, and third neural networks (202a, 202b, and 202c) using the computed total loss.
  • the controller 110 After selecting the neural network among the first, second, and third neural networks (202a, 202b, and 202c), the controller 110 generates the output media stream by processing the plurality of frames of the media stream using the selected neural network (202a, 202b, or 202c).
  • the output media stream may be a denoised media stream with enhanced brightness and zero flicker.
  • Embodiments herein use the terms such as “output media stream”, “output”, “output video stream”, “output video frames”, “output image frames”, “denoised media/video”, “enhanced media/video”, and so on, interchangeably to refer to media including zero noise and zero artificial flickering (i.e., including zero artifacts), and the corrected brightness.
  • the controller 110 selects the single or the plurality of frames of the media stream as an input processing frame.
  • the controller 110 down samples the input processing frame over multiple scales to generate a low-resolution input. In an example herein, the controller 110 down samples the input processing frame for 2 times.
  • the controller 110 processes the low-resolution input using the selected one of the first neural network 202a, the second neural network 202b, or the third neural network 202c at a lower resolution to generate a low-resolution output.
  • the controller 110 then upscales the processed low-resolution output over multiple scales to generate the output media stream. For example, the controller 110 upscales the low-resolution output for 2 times.
  • a number of scales for which the down sampling has been performed may be equal to a number of scales for which the upscaling has been performed.
  • the controller 110 may be further configured to dynamically vary a complexity of the selected one of first neural network 202a, the second neural network 202b, or the third neural network 202c by changing a number of scales for processing the low-resolution input.
  • the complexity of the selected one of the first neural network 202a, the second neural network 202b, or the third neural network 202c may be varied with an inverse relationship with respect to the number of frames of the media stream.
  • the controller 110 saves/stores the generated output media stream in the memory 102.
  • FIG. 2 illustrates a media enhancer 200 performable in the electronic device 100 for enhancing the media, according to embodiments of the disclosure.
  • the media enhancer 200 may be stored in the memory 102 and processed/executed by the controller 110 of the electronic device 100 to enhance the media/media stream.
  • the media enhancer 200 includes a reception and aligner module 204, a brightness correction module 206, a neural network selection module 208, an output generation module 210, and a training module 212.
  • the reception and aligner module 204 may be configured to receive the media stream/input media for enhancing and performs the alignment of the plurality of frames of the media stream.
  • the brightness correction module 206 may be configured to correct the brightness of the plurality of frames of the media stream.
  • the brightness correction module 206 identifies the single frame or the plurality of frames of the media stream as the input frame.
  • the brightness correction module 206 linearizes the input frame using the ICRF and chooses the brightness value for correcting the brightness of the input frame using the future temporal guidance. After choosing the brightness value, the brightness correction module 206 applies the linear boost on the input frame based on the chosen brightness value.
  • the brightness correction module 206 applies the CRF on the input frame to correct the brightness of the input frame.
  • the neural network selection module 208 may be configured to select one among the first, second, and third neural networks (202a, 202b, and 202c) for processing the plurality of frames of the media stream. For selecting the neural network (202a, 202b, or 202c), the neural network selection module 208 analyzes each frame with respect to earlier frames to check if the shot boundary detection is associated with each of the plurality of frames. If the shot boundary detection is associated with the plurality of frames, the controller 110 selects the first neural network 202a for processing the plurality of frames of the media stream. If the shot boundary detection is not associated with the plurality of frames, the controller 110 analyzes the presence of the artificial light flickering in the plurality of frames of the media stream.
  • the controller 110 selects the second neural network 202b for processing the plurality of frames of the media stream. If the artificial light flickering is not present in the plurality of frames, the controller 110 selects the third neural network 202c for processing the plurality of frames of the media stream.
  • the output generation module 210 may be configured to generate the output media stream by processing the plurality of frames of the media stream using the selected first neural network 202a, or the second neural network 202b, or the third neural network 202c.
  • the output generation module 210 selects the single or the plurality of frames of the media stream as the input processing frame.
  • the output generation module 210 down samples the input processing frame over the multiple scales to generate the low-resolution input.
  • the output generation module 210 processes the low-resolution input using the selected first neural network 202a, or the second neural network 202b, or the third neural network 202c.
  • the output generation module 210 upscales the low-resolution output over the multiple scales using the higher resolution frames as the guide to generate the output media stream.
  • the training module 212 may be configured to train the first, second, and third neural networks (202a, 202b, and 202c) using the multi-frame Siamese training method. For training the first, second, and third neural networks (202a, 202b, and 202c), the training module 212 creates the dataset for training the first, second, and third neural networks (202a, 202b, and 202c). The dataset includes one of the local dataset and the global dataset. The training module 212 selects the at least two sets of frames from the created dataset and adds the synthetic motion to the selected at least two sets of frames.
  • the training module 212 On adding the synthetic motion to the selected at least two sets of frames, the training module 212 performs the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c) using the ground truth media and the at least two sets of frames added with the synthetic motion.
  • FIGs. 1 and 2 show exemplary blocks of the electronic device 100, but it is to be understood that other embodiments are not limited thereon.
  • the electronic device 100 may include less or more number of blocks.
  • the labels or names of the blocks are used only for illustrative purpose and does not limit the scope of the embodiments herein.
  • One or more blocks can be combined together to perform same or substantially similar function in the electronic device 100.
  • Embodiments herein further describe the enhancement of the media by considering the media as a video for example, but it may be obvious to a person skilled in the art that any other type of media may be considered.
  • FIG. 3 is an example conceptual diagram depicting enhancing of the video, according to embodiments of the disclosure.
  • Embodiments herein enable the electronic device 100 to efficiently switch between the high and low complexity neural networks (202a, 202b, and 202c) for denoising and deflickering based on the shot boundary detection and the artificial light flickering. Thus, improving average running time for neural network based video enhancement.
  • the electronic device 100 identifies key frames of the video by computing the temporal similarity between the frames of the video.
  • the key frames may be referred to the frames of the video, which have been associated with the shot boundary detection.
  • the electronic device 100 uses the HCN 202a for denoising the key frames of the video.
  • the electronic device 100 uses the TG-LCN for denoising non-key frames of the video using a temporal output guidance.
  • the non-key frames of the video may be the frames of the video including the artificial light flickering.
  • the temporal output guidance may refer to the previous output frame, which has been used as the guide.
  • Both the HCN 202a and the TG-LCN 202b may be composed of multi-scale inputs with convolutional guided filters for fast processing and reduced memory.
  • the electronic device 100 may use the third neural network 202c for denoising the frames of the video, which do not include the artificial light flickering or do not associate with the shot boundary detection (i.e., having the temporal similarity with
  • FIG. 4 illustrates an example image signal processing (ISP) inference pipeline for enhancing the video captured under the low light conditions and/or using the low-quality sensors, according to embodiment of the disclosure.
  • ISP image signal processing
  • the electronic device 100 receives the video for enhancing, wherein the received video may be captured under the low light conditions or using the low quality sensors. On receiving the video, the electronic device 100 may perform a Vision Defect Identification System (VDIS) (an optional step) on the video to detect and correct any defects in the video.
  • VDIS Vision Defect Identification System
  • the electronic device 100 After performing the brightness correction, the electronic device 100 checks if the shot boundary detection is associated with the input frames by checking the temporal similarity between the input frames of the video. If the input frames are not similar (i.e., the shot boundary detection is associated with the input frames), the electronic device 100 uses the HCN to generate the output frames for the input frames that are not similar. In an example herein, consider that the input frame ( ) is associated with the shot boundary detection. In such a scenario, the electronic device 100 uses the HCN to generate the output frame ( ) by denoising the input frame ( ).
  • FIGs. 5 and 6 are example diagrams depicting the brightness correction performed on the video, while enhancing the video, according to embodiments of the disclosure.
  • Embodiments herein enable the electronic device 100 to perform the brightness correction for correcting the brightness of the video using the LUT.
  • the LUT may be selected by the electronic device 100 based on histogram statistics of the video.
  • the LUT/set of LUTs may be predefined by tuning.
  • the CFR and ICFR may be characterized in the LUT.
  • the LUT may include a CFR LUT bank for storing the CFR and a ICFR LUT bank for storing the ICFR.
  • the electronic device 100 receives the single or the multiple frames of the video/video sequence as the input.
  • the electronic device 100 linearizes the input frame using the ICFR.
  • the electronic device 100 then chooses the brightness value using the temporal future temporal guidance. Choosing the brightness value is shown in FIG. 6.
  • the electronic device 100 analyzes the brightness of the input frame (i.e., a current frame) and the future temporal buffer of 'b' frames. On analyzing that the brightness of the input frame is less than the threshold (t) and the brightness of all the frames in the future temporal buffer of size 'b' (i.e., the future temporal buffer of 'b' frames) is less than the threshold (t), the electronic device 100 chooses the constant boost value as the brightness value.
  • the electronic device 100 chooses the boost value 'k' of monotonically decreasing function 'f' as the brightness value.
  • the electronic device 100 does not apply any boost/brightness value.
  • the electronic device 100 chooses the boost value 'k' of monotonically increasing function 'g' as the brightness value.
  • a temporally linearly varying boost applied for a smooth transition of the brightness may be chosen empirically by tuning and may be calculated as:
  • the electronic device 100 After choosing the brightness value, the electronic device 100 applies the linear boost on the input frame based on the chosen brightness value.
  • the electronic device 100 applies the CRF on the input frame to correct the brightness of the input frame.
  • the CRF is the function of the sensor type and the metadata.
  • FIG. 7 illustrates the HCN 202a for processing the frames of the video, if the shot boundary detection is associated with the frames of the video, according to embodiments of the disclosure.
  • the HCN 202a may be a single frame denoising network.
  • the HCN 202a comprises of multiple residual blocks at the lowest level to improve noise removal capabilities.
  • the HCN 202a may process the input frames of the video that do not have the temporal similarity (i.e., associated with shot boundary detection) to generate the output video, which is the denoised video.
  • FIG. 8 illustrates the TG-LCN 202b for processing the multiple frames of the video, if the artificial light flickering is present in the multiple frames, according to embodiments of the disclosure.
  • the TG-LCN/TG-LCN (n) may be a multi-frame denoising network, wherein 'n' depicts the input frames of the video.
  • the TG-LCN 202b uses the previous output frame as the guide to process the input frames of the video to generate the output video, which allows the TG-LCN of much lower complexity than the HCN 202a.
  • the TG-LCN does not use the residual blocks.
  • the convolutional operations involved in the TG-LCN may contain less feature maps to reduce computation.
  • FIG. 9 is an example diagram depicting a multi-scale pyramid approach to generate the output video by processing the frames of the video, according to embodiments of the disclosure.
  • Embodiments may adopt the multi-scale pyramid approach to process the frames of the vide to manage the execution time for both the HCN 202a and the TG-LCN (n) 202b, wherein the 'n' is the number of input frames.
  • the electronic device 100 receives the single frame or plurality of frames of the video as the input processing frame/input frames.
  • the electronic device 100 down samples the input processing frame over multiple scales at the lower resolutions to generate the low-resolution input.
  • the input processing frame may be down sampled at resolution.
  • the electronic device 100 upscales/up samples the low-resolution output at every lower level over the multiple scales using Convolution Guided Filters (CGF) to generate the output video.
  • CGF Convolution Guided Filters
  • the network, where the multi-scale pyramidal approach is applied to the HCN 202a may be denoted by HCN', and the network where the multi-scale pyramidal approach is applied to TG-LCN 202b is denoted by TG-LCN'.
  • the electronic device 100 dynamically varies the complexity of the HCN 202a, the TG-LCN 202b, or the third neural network 202c with the inverse relationship with respect to the number of frames of the video.
  • FIG. 10 is an example diagram depicting training of the first, second, and third neural networks (202a, 202b, and 202c) for enhancing the video/media stream, according to embodiments of the disclosure.
  • the electronic device 100 For training the first, second, and third neural networks (202a, 202b, and 202c), the electronic device 100 creates the dataset using low and higher exposure burst shots and uses self-supervised approaches for refining the dataset. The electronic device 100 corrects the brightness of the created dataset. The electronic device 100 then trains the first, second, and third neural networks (202a, 202b, and 202c) using the multi-frame Siamese training method and self-similarity loss for temporal consistency.
  • FIG. 11 is an example diagram, depicting training of the first, second, and third neural networks (202a, 202b, and 202c) using the multi-frame Siamese training method, according to embodiments of the disclosure.
  • the video may include the similar frames having different noise realizations, which may lead to temporal inconsistencies in the final output video.
  • the Siamese training may be used to train the first, second, and third neural networks (202a, 202b, and 202c).
  • the electronic device 100 trains the first, second, and third neural networks (202a, 202b, and 202c) over multiple iterations/scales.
  • the electronic device 100 first creates the dataset for training the first, second, and third neural networks (202a, 202b, and 202c). Creating the dataset is shown in FIG. 12. As shown in FIG. 12, the electronic device 100 captures the burst dataset of the low light scenes using the camera 106. In an example herein, every capture may consist of 15 noisy inputs and 1 clean ground truth frame. In an example herein, the burst dataset may be captured at auto exposure, ET and ISO of input . In an example herein, every capture of the burst dataset may consist of a set of noisy inputs and clean ground truth frames. In an example herein, the electronic device 100 may use any application like a custom dump application for capturing the burst dataset.
  • the electronic device 100 simulates the global motion and the local motion of each burst dataset using the synthetic trajectory generation and the synthetic stop motion, respectively. Thereby, creating the local dataset, and the global dataset. Simulating the global motion and the local motion is shown in FIGs. 13A and 13B.
  • the global motion and the local motion may be simulated on the burst dataset captured at 5 relative auto exposures for data augmentation relative multiplication factor, .
  • the burst dataset may be captured at the auto exposure ET of EV0 limited to ⁇ 33 milliseconds (i.e., 30 frames per second (FPS)).
  • the clean ground truth frame may be captured at and .
  • the electronic device 100 estimates the polynomial coefficient range based on the parameters including the maximum translation and the maximum rotation.
  • the maximum translation and the maximum rotation controls maximum displacement.
  • the electronic device estimates the polynomial coefficient range based on the parameters including the maximum translation and the maximum rotation.
  • the electronic device 100 then generates the 3rd order polynomial trajectory using the estimated polynomial coefficient range and approximates the 3rd order trajectory using the maximum depth.
  • the 3rd order trajectory may be the trajectory followed by the camera 106 used to capture the burst dataset.
  • the electronic device 100 generates the 'n' affine transformations based on the generated uniform sample points.
  • the uniform sample points may be generated using the sampling rate that controls the smoothness between the frames of each burst dataset.
  • the electronic device 100 applies the generated 'n' affine transformations on each burst dataset. Thereby, creating the global dataset by simulating the global motion on each burst dataset.
  • the electronic device 100 uses two local motion characteristics, the local object motion/object motion, and the motion blur.
  • the electronic device 100 captures the local object motion by moving properties (props) locally in a static scene (i.e., the synthetic stop motion).
  • capturing the local object motion includes capturing the input and the ground truth scene with only the background, and capturing the input and the ground truth scene with only the foreground object.
  • the electronic device 100 crops out the foreground object and creates the synthetic scenes by positioning the foreground object at the different locations of the background scene.
  • the electronic device 100 selects 3 sets of input frames (t-1, t, t+1) from the captured input, which have been required for each training pair.
  • the electronic device 100 simulates the motion blur for each stop motion by averaging the selected 3 sets of input frames to 5 ( ) frames for the properties (props).
  • the electronic device 100 may use the two captures per static scene for the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c).
  • the ground truth may be captured and aligned with 't' frame.
  • the burst dataset including 1000 training pairs (> 500 captured) may be captured to create the dataset for training the first, second, and third neural networks (202a, 202b, and 202c).
  • the electronic device 100 removes the at least one burst dataset with structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • the electronic device 100 creates the dataset by including the at least one burst dataset that does not include the structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • the electronic device 100 further boosts the brightness of the created dataset and the clean ground truth frame and saves the created dataset and the clean ground truth frame in the memory 102.
  • the electronic device 100 adds the synthetic motion to the at least two sets of frames of the created dataset using synthetic trajectories to account for motion during inference in accordance with a synthetic modelling.
  • the synthetic modelling comprises of performing a trajectory modelling for 3 degrees of rotational and translational freedom using the 3rd order polynomials.
  • the 3 degrees of rotational and translational freedom may be uniformly sampled from an interval [0, t] to generate the uniform sampling points, where t represents simulated capture duration.
  • the synthetic frames may be generated by applying homography on the selected each set of frames corresponding to the chosen uniform sampling points.
  • the electronic device 100 After adding the synthetic motion to each of the selected at least two sets of frames, the electronic device 100 performs the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c).
  • the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c) is shown in FIG. 14.
  • the two of the first, second, and third networks may be used while training.
  • the electronic device 100 passes a first input set (input set 1) from the created dataset to a first set of neural network (which may include the first neural network (202a) and/or the second neural network (202b) and/or the third neural network (202c)).
  • the electronic device 100 passes a second input set (input set 2) from the created dataset to a second set of neural network (which may include the first neural network (202a) and/or the second neural network (202b) and/or the third neural network (202c)).
  • the first set of neural network and the second set of neural network share an identical weightage/weight.
  • the first set of neural network generates a first output (output 1) by processing the first input set.
  • the second set of neural network generates a second output (output 2) by processing the second input set.
  • the first/second output may be the video/media including the denoised frames with zero artificial light flickering.
  • the electronic device 100 computes the Siamese loss by computing the L2 loss between the output 1 and the output 2.
  • the electronic device 100 also computes the pixel loss by computing the average of the output 1 and the output 2 and the ground truth.
  • the electronic device 100 computes the total loss using the Siamese loss and the pixel loss.
  • the electronic device 100 trains the first, second, and third neural networks (202a, 202b, and 202c) using the computed total loss.
  • FIGs. 15A and 15B are example diagrams depicting a use case scenario of enhancing a low FPS video captured under the low light conditions, according to embodiments of the disclosure.
  • the electronic device 100 receives the low FPS video captured under the low light conditions for enhancement, wherein the low FPS video refers to the video with the FPS of up to 60.
  • the electronic device performs the VDIS and aligns the input frames of the video.
  • the electronic device 100 performs the brightness correction on the input frames of the video and appends the aligned input frames of the video to form the input video sequence.
  • the electronic device 100 since the artificial light flickering is minimal in the low FPS video, the electronic device 100 does not check the presence of the artificial light flickering in the input frames of the input video sequence.
  • FIG. 16 is an example diagram depicting a use case scenario of enhancing an indoor slow motion video, according to embodiments of the disclosure.
  • the electronic device 100 receives the indoor slow motion video captured at high frame rates (240/960 FPS), thereby resulting in the video frames with noise.
  • the electronic device 100 enhances the indoor slow motion video by denoising and removing the artificial light flickering from the slow motion video.
  • the electronic device checks the input frames of the slow motion video for the temporal similarity. If the input frames are not similar (i.e., presence of the shot boundary detection), the electronic device 100 uses the HCN 202a to generate the output frame ( ), wherein the current frame ( ) serves as input to the HCN' 202a and the HCN' 202a denoises the current frame ( ).
  • Using the as the guide allows to use a network of much lower complexity and also helps in removing the artificial light flickering.
  • FIG. 17 is an example diagram depicting a use case scenario of enhancing a real-time High Dynamic Range (HDR) video, according to embodiments of the disclosure.
  • the HDR video may be generated using alternating exposures. Each consecutive 3 frames form the input dataset from the HDR video.
  • an output frame 1 (t) may be obtained using low (t-1), medium (t) and high frames (*t+1).
  • the output frame 2 (t+1) may be obtained using medium (t), high (t+1) and low (t+2) frames and so on.
  • the temporal similarity may be measured between the previous output frame and the current input frame.
  • FIG. 18 is a flow chart 1800 depicting a method for enhancing the media stream, according to embodiments of the disclosure.
  • the method includes receiving, by an electronic device 100, the media stream.
  • the method includes performing, by the electronic device 100, the alignment of the plurality of frames of the media stream.
  • the method includes correcting, by the electronic device 100, the brightness of the plurality of frames.
  • the method includes selecting, by the electronic device 100, one of the first neural network 202a, the second neural network 202b, or the third neural network 20c, by analyzing parameters of the plurality of frames, after correcting the brightness of the plurality of frames.
  • the parameters include at least one of the shot boundary detection and the artificial light flickering.
  • the method includes generating, by the electronic device 100, the output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network 202a, the second neural network 202b, or the third neural network 202c.
  • the various actions in method 1800 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions listed in FIG. 18 may be omitted.
  • Embodiments herein provide methods and systems for enhancing videos in real time using temporal guided adaptive CNN switching, wherein the videos have been captured in extreme low light, under high noise conditions and/or captured using inferior sensors.
  • Embodiments herein provide a deep learning based pipeline to achieve real time video enhancement while minimizing noise and flicker artifacts.
  • Embodiments herein provide methods and systems to choose between high and low complexity networks by analyzing temporal consistency of input frames, thus reducing average time and power required to process a video.
  • Embodiments herein provide use of Siamese training to reduce flicker.
  • Embodiments herein provide a method for low light video enhancement.
  • the method comprises receiving an input video stream corrupted by noise, low brightness or color artifacts.
  • the brightness is boosted to desired levels using a pre-tuned look up table.
  • the temporal similarity of consecutive frames is analyzed. If there are dissimilar frames (based on the analysis of the consecutive frames), a high complexity single frame DNN model is deployed. If there are similar frames (based on the analysis of the consecutive frames), a lower complexity multi frame (p) DNN model (for example, a 3 frame DNN model) guided by previous output is deployed.
  • p multi frame
  • an input comprising of multiple frames (q, where q > p) (for example, the input comprises of five frames) is used to perform flicker removal along with noise reduction.
  • the output from one of the pathways is saved to the output video stream.
  • Embodiments herein provide a method for fast video denoising.
  • the method includes receiving single or multiple frames as input.
  • the frames are down sampled to lower resolutions using multiple scales.
  • the video frames are processed at a lower resolution, generating a low resolution output.
  • the low resolution output is upscaled over multiple levels using higher resolution frames as a guide.
  • a low resolution network for down sampling and up sampling may be trained using Siamese training approach for temporal consistency.
  • Embodiments herein provide a deep learning based pipeline to achieve real-time video enhancement, while minimizing noise and flicker artifacts.
  • Embodiments herein provide a method to choose between high and low complexity networks by analyzing temporal consistency of input frames, thus reducing an average time required to process a video/media.
  • Embodiments herein provide a method to dynamically change network complexity at inference.
  • Embodiments herein provide a method for employing Siamese training to reduce the flicker.
  • the embodiments herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements.
  • the elements shown in FIGs. 1 and 2 can be at least one of a hardware device, or a combination of hardware device and software module.
  • the embodiments of the disclosure provide methods and systems for low light media enhancement. Therefore, it is understood that the scope of the protection is extended to such a program and in addition to a computer readable means having a message therein, such computer readable storage means contain program code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device.
  • the method is implemented in an embodiment through or together with a software program written in e.g., Very high speed integrated circuit Hardware Description Language (VHDL) another programming language, or implemented by one or more VHDL or several software modules being executed on at least one hardware device.
  • VHDL Very high speed integrated circuit Hardware Description Language
  • the hardware device may be any kind of portable device that may be programmed.
  • the device may also include an ASIC, or a combination of hardware and software means, e.g., an ASIC and an FPGA, or at least one microprocessor and at least one memory with software modules located therein.
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Geometry (AREA)

Abstract

A method for enhancing media includes: receiving, by an electronic device, a media stream; performing, by the electronic device, an alignment of a plurality of frames of the media stream; correcting, by the electronic device, a brightness of the plurality of frames; selecting, by the electronic device, one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters include at least one of shot boundary detection and artificial light flickering; and generating, by the electronic device, an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.

Description

    METHODS AND SYSTEMS FOR LOW LIGHT MEDIA ENHANCEMENT
  • The disclosure relates to the field of media processing and more particularly to low light media enhancement.
  • Videos captured under low light conditions or captured using low quality sensors may suffer from various issues:
  • high noise: a maximum exposure time of the videos may be restricted by a desired frame per second (FPS), which results in high noise in the low light conditions;
  • low brightness: in the low light conditions, a lack of sufficient ambient light results in a dark video;
  • color artifacts: an accuracy of the sensor used to capture accurate color drops with a decrease in a number of photons captured resulting in a loss of color accuracy;
  • obtaining a good output quality by performing a low complexity Artificial Intelligence (AI) video processing (full HD-30FPS) is difficult;
  • power and memory constraints to handle long duration video capture;
  • flickering due to temporal consistency issues; and
  • lack of real-world dataset for training.
  • In related art methods, spatial or temporal filters may be used to denoise/enhance the video captured under the low light conditions. However, the spatial or temporal filters may not remove noise from the video efficiently, when the video is captured under the low light conditions or using the low-quality sensors.
  • In some of related art methods, deep Convolutional Neural Networks (CNNs) may be used to enhance the video. However, the deep CNNs used in the related art methods may be too computationally heavy and memory intensive to be deployed in a real-time on an electronic device/mobile phone. The enhanced video using the deep CNNs may also suffer from the flickering due to inconsistent denoising of consecutive video frames.
  • Provided are methods and systems for enhancing media captured under low light conditions and using inferior sensors.
  • Another aspect of the embodiments herein is to provide methods and systems for switching between a first, second, and third neural network to enhance the media, by analyzing parameters of a plurality of frames of the video, wherein the parameters include shot boundary detection and artificial light flickering, wherein the first neural network is a high complexity neural network (HCN) with one input frame, the second neural network is a temporally guided lower complexity neural network (TG-LCN) with a 'q' number of input frames and a previous output frame for joint deflickering or joint denoising, and the third neural network is a neural network with a 'p' number of input frames and the previous output frame for denoising, wherein 'p' is lesser than 'q'.
  • Another aspect of the embodiments herein is to provide methods and systems for training the first/second/third neural network using a multi-frame Siamese training method.
  • According to an aspect of the disclosure, a method for enhancing media includes: receiving, by an electronic device, a media stream; performing, by the electronic device, an alignment of a plurality of frames of the media stream; correcting, by the electronic device, a brightness of the plurality of frames; selecting, by the electronic device, one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters include at least one of shot boundary detection and artificial light flickering; and generating, by the electronic device, an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.
  • The media stream may be captured under low light conditions, and the media stream may include at least one of noise, low brightness, artificial flickering, and color artifacts.
  • The output media stream may be a denoised media stream with enhanced brightness and zero flicker.
  • The correcting the brightness of the plurality of frames of the media stream may include: identifying a single frame or the plurality of frames of the media stream as an input frame; linearizing the input frame using an Inverse Camera Response Function (ICRF); selecting a brightness multiplication factor for correcting the brightness of the input frame using a future temporal guidance; applying a linear boost on the input frame based on the brightness multiplication factor; and applying a Camera Response Function (CRF) on the input frame to correct the brightness of the input frame, wherein the CRF is a function of a sensor type and metadata, wherein the metadata includes an exposure value and International Standard Organization (ISO), and the CRF and the ICRF are stored as Look-up-tables (LUTs).
  • The selecting the brightness multiplication factor may include: analyzing the brightness of the input frame; identifying a maximum constant boost value as the brightness multiplication factor, based on the brightness of the input frame being less than a threshold and a brightness of all frames in a future temporal buffer being less than the threshold; identifying a boost value of monotonically decreasing function between maximum constant boost value and 1 as the brightness multiplication factor, based on the brightness of the input frame being less than the threshold, and the brightness of all the frames in the future temporal buffer being greater than the threshold; identifying a unit gain boost value as the brightness multiplication factor, based on the brightness of the input frame being greater than the threshold and the brightness of all the frames in the future temporal buffer being greater than the threshold; and identifying a boost value of monotonically increasing function between 1 and the maximum constant boost value as the brightness multiplication factor, based on the brightness of the input frame being greater than the threshold, and the brightness of the frames in the future temporal buffer being less than the threshold.
  • The selecting, by the electronic device, one of the first neural network, the second neural network or the third neural network may include: analyzing each frame with respect to earlier frames to determine whether the shot boundary detection is associated with each of the plurality of frames; selecting the first neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the shot boundary detection being associated with the plurality of frames; analyzing a presence of the artificial light flickering in the plurality of frames, based on the shot boundary detection not being associated with the plurality of frames; selecting the second neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the artificial light flickering being present in the plurality of frames; and selecting the third neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the artificial light flickering not being present in the plurality of frames.
  • The first neural network may be a high complexity neural network with one input frame, the second neural network may be a temporally guided lower complexity neural network with 'q' number of input frames and a previous output frame for joint deflickering or joint denoising, and
  • the third neural network may be a neural network with 'p' number of input frames and the previous output frame for denoising, wherein 'p' is less than 'q'.
  • The first neural network may include multiple residual blocks at a lowest level for enhancing noise removal capabilities, and the second neural network may include at least one convolution operation with less feature maps and the previous output frame as a guide for processing the plurality of input frames.
  • The first neural network, the second neural network and the third neural network may be trained using a multi-frame Siamese training method to generate the output media stream by processing the plurality of frames of the media stream.
  • The method may further include training a neural network of at least one of the first neural network, the second neural network and the third neural network by: creating a dataset for training the neural network, wherein the dataset includes one of a local dataset and a global dataset; selecting at least two sets of frames from the created dataset, wherein each set includes at least three frames; adding a synthetic motion to the selected at least two sets of frames, wherein the at least two sets of frames added with the synthetic motion include different noise realizations; and performing a Siamese training of the neural network using a ground truth media and the at least two sets of frames added with the synthetic motion.
  • The creating the dataset may include: capturing burst datasets, wherein a burst dataset includes one of low light static media with noise inputs and a clean ground truth frame; simulating a global motion and a local motion of each burst dataset using a synthetic trajectory generation and a synthetic stop motion, respectively; removing at least one burst dataset with structural and brightness mismatches between the clean ground truth frame and the low light static media; and creating the dataset by including the at least one burst dataset that does not include the structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • The simulating the global motion of each burst dataset may include: estimating a polynomial coefficient range based on parameters including a maximum translation and a maximum rotation; generating 3rd order polynomial trajectories using the estimated polynomial coefficient range; approximating a 3rd order trajectory using a maximum depth and the generated 3rd order polynomial trajectories; generating uniform sample points based on a pre-defined sampling rate and the approximated 3D trajectory; generating 'n' affine transformations based on the generated uniform sample points; and applying the generated n affine transformations on each burst dataset.
  • The simulating the local motion of each burst dataset includes: capturing local object motion from each burst dataset in a static scene using the synthetic stop motion, the capturing the local object motion including: capturing an input and ground truth scene with a background scene; capturing an input and ground truth scene with a foreground object; cropping out the foreground object; and creating synthetic scenes by positioning the foreground object at different locations of the background scene; and simulating a motion blur for each local object motion by averaging a pre-defined number of frames of the burst dataset.
  • The performing the Siamese training of the neural network may include: passing the at least two sets of frames with the different noise realizations to the neural network to generate at least two sets of output frames; computing a Siamese loss by computing a loss between the at least two sets of output frames; computing a pixel loss by computing an average of the at least two sets of output frames and a ground truth; computing a total loss using the Siamese loss and the pixel loss; and training the neural network using the computed total loss.
  • According to an aspect of the disclosure, an electronic device includes: a memory; and a processor coupled to the memory and configured to: receive a media stream; perform an alignment of a plurality of frames of the media stream; correct a brightness of the plurality of frames; select one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters include at least one of shot boundary detection, and artificial light flickering; and generate an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.
  • The above and other aspects, features, and advantages of certain embodiments of the present disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which::
  • FIG. 1 illustrates an electronic device for enhancing media, according to embodiments of the disclosure;
  • FIG. 2 illustrates a media enhancer performable in the electronic device for enhancing the media, according to embodiments of the disclosure;
  • FIG. 3 is an example conceptual diagram depicting enhancing of video, according to embodiments of the disclosure;
  • FIG. 4 illustrates an example image signal processing (ISP) inference pipeline for enhancing the video captured under low light conditions and/or using low-quality sensors, according to embodiment of the disclosure;
  • FIGs. 5 and 6 are example diagrams depicting brightness correction performed on the video, while enhancing the video, according to embodiments of the disclosure;
  • FIG. 7 illustrates a high complexity network (HCN) for processing frames of the video, if shot boundary detection is associated with the frames of the video, according to embodiments of the disclosure;
  • FIG. 8 illustrates a temporal guided low complexity network (TG-LCN) for processing the multiple frames of the video, if the artificial light flickering is present in the multiple frames, according to embodiments of the disclosure;
  • FIG. 9 is an example diagram depicting a multi-scale pyramid approach to generate an output video by processing the frames of the video, according to embodiments disclosed herein;
  • FIG. 10 is an example diagram depicting training of a first/second/third neural network for enhancing the video/media stream, according to embodiments of the disclosure;
  • FIG. 11 is an example diagram, depicting training of the first/second/third neural network using a multi-frame Siamese training method, according to embodiments of the disclosure;
  • FIG. 12 is an example diagram depicting creation of a dataset for training the first/second/third neural network, according to embodiments of the disclosure;
  • FIGs. 13A and 13B are example diagrams depicting simulation of a global motion, and a local motion on a burst dataset, according to embodiments of the disclosure;
  • FIG. 14 is an example diagram depicting Siamese training of the first/second/third neural network, according to embodiments of the disclosure;
  • FIGs. 15A and 15B are example diagrams depicting a use case scenario of enhancing a low frame per second (FPS) video captured under low light conditions, according to embodiments of the disclosure;
  • FIG. 16 is an example diagram depicting a use case scenario of enhancing an indoor slow motion video, according to embodiments of the disclosure;
  • FIG. 17 is an example diagram depicting a use case scenario of enhancing a real-time High Dynamic Range (HDR) video, according to embodiments of the disclosure; and
  • FIG. 18 is a flow chart depicting a method for enhancing the media stream, according to embodiments of the disclosure.
  • The example embodiments and the various aspects, features and advantageous details thereof are explained more fully with reference to the accompanying drawings in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The description herein is intended merely to facilitate an understanding of ways in which the example embodiments herein can be practiced and to further enable those of skill in the art to practice the example embodiments herein. Accordingly, this disclosure should not be construed as limiting the scope of the embodiments.
  • Embodiments of the disclosure provide methods and systems for enhancing media/video in real-time using temporal guided adaptive Convolutional Neural Network (CNN) switching, wherein the media may be captured in extreme low light conditions, under high noise conditions, and/or captured using inferior/low quality sensors.
  • Further, embodiments of the disclosure provide methods and systems for using a deep learning based pipeline to enhance the media while minimizing noise and flicker artifacts.
  • Further still, embodiments of the disclosure provide methods and systems for choosing between high and low complexity networks by analyzing temporal consistency of input frames of the media, thus reducing average time and power required to process the media.
  • Further still, embodiments of the disclosure provide methods and systems for using a Siamese training method to reduce the flicker.
  • Embodiments of the disclosure will now be described with reference to the drawings, where similar reference characters denote similar features.
  • FIG. 1 illustrates an electronic device 100 for enhancing media, according to embodiments of the disclosure. The electronic device 100 referred herein may be configured to enhance media.
  • Examples of the electronic device 100 may be, but are not limited to, a cloud computing device (which may be a part of a public cloud or a private cloud), a server, a database, a computing device, and so on. The server may be at least one of a standalone server, a server on a cloud, or the like. The computing device may be, but is not limited to, a personal computer, a notebook, a tablet, desktop computer, a laptop, a handheld device, a mobile device, a camera, an Internet of Things (IoT) device, an Augmented Reality (AR)/Virtual Reality (VR) device, and so on. Also, the electronic device 100 may be at least one of, a microcontroller, a processor, a System on Chip (SoC), an integrated chip (IC), a microprocessor based programmable consumer electronic device, and so on.
  • Examples of the media/media stream may be, but are not limited to, video, animated images, Graphic Interchange Formats (GIFs), a batch of moving images, and so on. In an example, the video may include a low frame per second (FPS) video, an indoor slow motion video, a High Dynamic Range (HDR) video, and so on. In an example, the media may be captured under low light conditions. In another example, the media may be captured using inferior/low quality sensors. In an example, the media may include, but is not limited to, at least one of noise, low brightness, artificial light, flickering, color artifacts, and so on. Embodiments herein use the terms such as "media", "video", "media stream", "video stream", "image frames", and so on, interchangeably throughout the disclosure.
  • The electronic device 100 may enhance the media/media stream stored in a memory or received from at least one external device. Alternatively, the electronic device 100 may enhance the media being captured in real-time. Enhancing the media refers to denoising the media and removing the different artifacts (such as, the artificial light flickering, the color artifacts, and so on) from the media.
  • The electronic device 100 includes a memory 102, a communication interface 104, a camera (camera sensor) 106, a display 108, and a controller (processor) 110. The electronic device 100 may also communicate with one or more external devices using a communication network to receive the media for enhancing. Examples of the external devices may be, but are not limited to, a server, a database, and so on. The communication network may include, but is not limited to, at least one of a wired network, a value added network, a wireless network, a satellite network, or a combination thereof. Examples of the wired network may be, but are not limited to, a Local Area Network (LAN), a Wide Area Network (WAN), an Ethernet, and so on. Examples of the wireless network may be, but are not limited to, a cellular network, a wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy, Zigbee, Wi-Fi Direct (WFD), Ultra-wideband (UWB), infrared data association (IrDA), near field communication (NFC), and so on.
  • The memory 102 may include at least one type of storage medium, from among a flash memory type storage medium, a hard disk type storage medium, a multi-media card micro type storage medium, a card type memory (for example, an SD or an XD memory), random-access memory (RAM), static RAM (SRAM), read-only memory (ROM), electrically erasable programmable ROM (EEPROM), programmable ROM (PROM), a magnetic memory, a magnetic disk, and/or an optical disk.
  • The memory 102 may store at least one of the media, an input media stream received for enhancing, an output media stream (i.e., the enhanced media stream), and so on.
  • The memory 102 may also store a first neural network 202a, a second neural network 202b, and a third neural network 202c, which may be used to generate the output media stream by processing the input media stream. In an embodiment, the first neural network 202a may be a high complexity neural network (HCN) with one input frame of the media. In an embodiment, the second neural network 202b may be a temporally guided lower complexity neural network (TG-LCN) with 'q' number of input frames and a previous output frame for joint deflickering or joint denoising. In an embodiment, the third neural network 202c may be a neural network with 'p' number of input frames and the previous output frame for denoising, wherein 'p' is less than 'q'. Each neural network is described later.
  • Examples of the first, second, and third neural networks (202a, 202b, and 202c) may be, but are not limited to, a deep neural network (DNN), an Artificial Intelligence (AI) model, a machine learning (ML) model, a multi-class Support Vector Machine (SVM) model, a Convolutional Neural Network (CNN) model, a recurrent neural network (RNN), a stacked hourglass network, a restricted Boltzmann Machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a generative adversarial network (GAN), a regression based neural network, a deep reinforcement model (with ReLU activation), a deep Q-network, a residual network, a Conditional Generative Adversarial Network (CGAN), and so on.
  • The first, second, and third neural networks (202a, 202b, and 202c) may include a plurality of nodes, which may be arranged in the layers. Examples of the layers may be, but are not limited to, a convolutional layer, an activation layer, an average pool layer, a max pool layer, a concatenated layer, a dropout layer, a fully connected (FC) layer, a SoftMax layer, and so on. Each layer has a plurality of weight values and performs a layer operation through calculation of a previous layer and an operation of a plurality of weights/coefficients. A topology of the layers of the first, second, and third neural networks (202a, 202b, and 202c) may vary based on the type of the respective network. In an example, the first, second, and third neural networks (202a, 202b, and 202c) may include an input layer, an output layer, and a hidden layer. The input layer receives a layer input and forwards the received layer input to the hidden layer. The hidden layer transforms the layer input received from the input layer into a representation, which can be used for generating the output in the output layer. The hidden layers extract useful/low level features from the input, introduce non-linearity in the network and reduce a feature dimension to make the features equivariant to scale and translation. The nodes of the layers may be fully connected via edges to the nodes in adjacent layers. The input received at the nodes of the input layer may be propagated to the nodes of the output layer via an activation function that calculates the states of the nodes of each successive layer in the network based on coefficients/weights respectively associated with each of the edges connecting the layers.
  • The first, second, and third neural networks (202a, 202b, and 202c) may be trained using at least one learning method to perform at least one intended function. Examples of the learning method may be, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, reinforcement learning, regression-based learning, and so on. The trained first, second, and third neural networks (202a, 202b, and 202c) may be a neural network model in which a number of layers, a sequence for processing the layers and parameters related to each layer may be known and fixed for performing the at least one intended function. Examples of the parameters related to each layer may be, but are not limited to, activation functions, biases, input weights, output weights, and so on, related to the layers of the first, second, and third neural networks (202a, 202b, and 202c). A function associated with the learning method may be performed through the non-volatile memory, the volatile memory, and the controller 110. The controller 110 may include one or more processors. At this time, the one or more processors may be a general purpose processor, such as a central processing unit (CPU), an application processor (AP), or the like, a graphics-only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), and/or an Artificial Intelligence (AI)-dedicated processor such as a neural processing unit (NPU).
  • The one or more processors may perform the at least one intended function in accordance with a predefined operating rule of the first, second, and third neural networks (202a, 202b, and 202c), stored in the non-volatile memory and the volatile memory. The predefined operating rules of the first, second, and third neural networks (202a, 202b, and 202c) are provided through training the modules using the learning method.
  • Herein, being provided through learning means that, by applying the learning method to a plurality of learning data, a predefined operating rule, or the first, second, and third neural networks (202a, 202b, and 202c) of a desired characteristic is made. The intended functions of the first, second, and third neural networks (202a, 202b, and 202c) may be performed in the electronic device 100 itself in which the learning according to an embodiment is performed, and/or may be implemented through a separate server/system.
  • The communication interface 104 may be configured to communicate with the one or more external devices using communication methods that have been supported by the communication network. The communication interface 104 may include the components such as, a wired communicator, a short-range communicator, a mobile/wireless communicator, and a broadcasting receiver. The wired communicator may enable the electronic device 100 to communicate with the external devices using the communication methods such as, but are not limited to, wired LAN, the Ethernet, and so on. The short-range communicator may enable the electronic device 100 to communicate with the external devices using the communication methods such as, but are not limited to, Bluetooth low energy (BLE), near field communicator (NFC), WLAN (or Wi-fi), Zigbee, infrared data association (IrDA), Wi-Fi direct (WFD), UWB communication, Ant+ (interoperable wireless transfer capability) communication, shared wireless access protocol (SWAP), wireless broadband internet (Wibro), wireless gigabit alliance (WiGiG), and so on. The mobile communicator may transceive wireless signals with at least one of a base station, an external terminal, or a server on a mobile communication network/cellular network. In an example, the wireless signal may include a speech call signal, a video telephone call signal, or various types of data, according to transceiving of text/multimedia messages. The broadcasting receiver may receive a broadcasting signal and/or broadcasting-related information from the outside through broadcasting channels. The broadcasting channels may include satellite channels and ground wave channels. In an embodiment, the electronic device 100 may or may not include the broadcasting receiver.
  • The camera sensor 106 may be configured to capture the media.
  • The display 108 may be configured to enable a user to interact with the electronic device 100. The display 108 may also be configured to display the output media stream to the user.
  • The controller 110 may be configured to enhance the media/media stream in real-time. In an embodiment, the controller 110 may enhance the media using a temporal guided adaptive neural network/CNN switching. The temporal guided adaptive neural network switching refers to switching between the first, second, and third neural networks (202a-202c) to enhance the media.
  • For enhancing the media stream, the controller 110 receives the media stream. In an example, the controller 110 may receive the media stream from the memory 102. In another example, the controller 110 may receive the media stream from the external device. In another example, the controller 110 may receive the media stream from the camera 106. Embodiments herein use the terms such as "media", "media stream", "input media stream", "input video", "input video frames", "input video sequence" and so on, interchangeably to refer to media captured under the low light conditions or using the low quality sensors.
  • When the media stream is received, the controller 110 performs an alignment of a plurality of frames of the media stream. In an example, the plurality of frames may correspond to a plurality of image frames.
  • After aligning the plurality of frames of the media stream, the controller 110 corrects brightness of the plurality of frames. For correcting the plurality of frames, the controller 110 identifies a single frame of the plurality of frames or the plurality of frames of the media stream as an input frame. The controller 110 linearizes the input frames using an Inverse Camera Response Function (ICRF). The controller 110 chooses a brightness value for correcting the brightness of the input frame using a future temporal guidance, on linearizing the input frames. For choosing the brightness value in accordance with the future temporal guidance, the controller 110 analyzes the brightness of the input frame and a future temporal buffer. The future temporal buffer is the next n frames after the input frame. For example, the current input frame will be the (t-n)th frame, and the frames from (t-n) to t comprise of future temporal buffer(s). There may be a delay of n frames between the camera stream and output. The controller 110 chooses a constant boost value as the brightness value, on analyzing that the brightness of the input frame is less than a threshold and brightness of all frames in the future temporal buffer is less than the threshold. In an embodiment, the threshold value can be set empirically after experiments. The controller 110 chooses a boost value of monotonically decreasing function as the brightness value, based on analyzing that the brightness of the input frame is less than the threshold and the brightness of all the frames in the future temporal buffer is greater than the threshold. The controller 110 chooses a zero-boost value as the brightness value, based on analyzing that the brightness of the input frame is greater than the threshold and the brightness of all the frames in the future temporal buffer is greater than the threshold. Thereby, the controller 110 does not boost the brightness of the input frame, based on choosing the zero boost value. The controller 110 chooses a boost value of monotonically increasing function as the brightness value, based on analyzing that the brightness of the input frame is greater than the threshold, and the brightness of the frames in the future temporal buffer is less than the threshold. After choosing the brightness value, the controller 110 applies a linear boost on the input frame based on the chosen brightness value. The controller 110 applies a Camera Response Function (CRF) on the input frame to correct the brightness of the input frame. The CRF may be a function of a type of the camera 106 used to capture the media stream (hereinafter referred as a sensor type) and metadata. The metadata includes an exposure value and International Standard Organization (ISO). The CRF and the ICRF may be characterized and stored in Look-up-tables (LUTs).
  • After correcting the brightness of the plurality of frames of the media stream, the controller 110 selects one of the first neural network 202a, the second neural network 202b, and the third neural network 202c for processing the media stream. The controller 110 selects one of the three neural networks (202a, 202b, and 202c) by analyzing parameters of the plurality of frames of the media stream. Examples of the parameters may be, but are not limited to, shot boundary detection, and artificial light flickering.
  • For selecting one among the three neural networks (220a, 22b, and 202c) for processing the plurality of frames of the media stream, the controller 110 analyzes each frame with respect to earlier frames to check if the shot boundary detection is associated with each of the plurality of frames. The shot boundary detection may be checked by analyzing temporal similarity between the plurality of frames. The controller 110 may analyze that the shot boundary detection is associated with each of the plurality of frames based on an absence of the temporal similarity between the plurality of frames. If the shot boundary detection is associated with the plurality of frames, the controller 110 selects the first neural network 202a for processing the plurality of frames of the media stream. If the shot boundary detection is not associated with the plurality of frames, the controller 110 analyzes a presence of the artificial light flickering in the plurality of frames. If the artificial light flickering is present in the plurality of frames, the controller 110 selects the second neural network 202b for processing the plurality of frames of the media stream. If the artificial light flickering is not present in the plurality of frames, the controller 110 selects the third neural network 202c for processing the plurality of frames of the media stream.
  • In an embodiment, the first neural network 202a may be the high complexity network (HCN) with one input frame (current frame) of the media. The first neural network 202a includes multiple residual blocks at lowest level for enhancing noise removal capabilities. Embodiments herein use the terms such as "first neural network", "HCN", "high complexity CNN", and so on, interchangeably throughout the disclosure.
  • In an embodiment, the second neural network 202b may be the temporally guided lower complexity neural network (TG-LCN) with the 'q' number of input frames and the previous output frame for joint deflickering or joint denoising. The second neural network 202b includes at least one convolution operation with less feature maps and a previous output frame as a guide for processing the plurality of input frames. Embodiments herein use the terms such as "second neural network", "TG-LCN (n=q)," "TG-LCN", "'q' frame flicker reduction denoiser", and so on, interchangeably throughout the disclosure.
  • In an embodiment, the third neural network 202c may be the neural network with the 'p' number of input frames and the previous output frame for denoising, wherein the 'p' is less than the 'q' (i.e., the number of frames of the media stream). In an example, consider that the media stream may include 5 frames (i.e., 'q'=5). In such a scenario, 'p' may be equal to 3 number of frames (i.e., 'p'=3). Embodiments herein use the terms such as "third neural network", "TG-LCN (n=p, p<q)", "TG-LCN (n=p)", and so on, interchangeably throughout the disclosure.
  • The first, second, and third neural networks (202a, 202b, and 202c) may be the trained neural network. In an embodiment, the controller 110 may train the first, second, and third neural networks (202a, 202b, and 202c) using a using a multi-frame Siamese training method.
  • For training the first, second, and third neural networks (202a, 202b, and 202c), the controller 110 creates a dataset. The dataset includes one of a local dataset and a global dataset.
  • For creating the dataset, the controller 110 captures burst datasets, or alternatively, the controller 110 may receive the burst dataset from the external devices. The burst datasets includes, but is not limited to, one of low light static media with noise inputs and a clean ground truth frame, or the like. The clean ground truth means ground truth image without noise. The clean ground truth can be obtained by averaging the individual frames in the burst. After capturing the burst dataset, the controller 110 simulates a global motion and a local motion of each burst dataset using a synthetic trajectory generation and a synthetic stop motion, respectively. For simulating the global motion of each burst dataset, the controller 110 estimates a polynomial coefficient range based on parameters including a maximum translation and a maximum rotation from the burst dataset. The maximum translation and rotation signify the maximum motion that the camera can undergo during a capture session. This can be used for creating synthetic motion, and can be set empirically after experiments. The controller 110 generates a 3rd order polynomial trajectory using the estimated polynomial coefficient range and approximates the 3rd order trajectory using a maximum depth. The maximum depth determines the distance of the scene from the camera for approximately planar scenes. The maximum depth can be set empirically after experiments. In an example herein, the 3rd order polynomial trajectory may be a trajectory used by the camera 106 to capture the burst dataset. The controller 110 generates the uniform sample points based on a pre-defined sampling rate and the approximated 3D trajectory. The pre-defined sampling rate may be a sampling rate that controls a smoothness between the frames of each burst dataset. The controller 110 generates 'n' affine transformations based on the generated uniform sample points and applies the generated 'n' affine transformations on each burst dataset. Thereby, creating the global dataset by simulating the global motion of each burst dataset. For simulating the local motion of each burst dataset, the controller 110 captures a local object motion from each burst dataset in a static scene using the synthetic stop motion, For capturing the local object motion, the controller 110 captures an input and ground truth scene with a background scene from each burst dataset. The controller 110 also captures an input and ground truth scene with a foreground object from each burst dataset. The controller 110 crops out the foreground object and creates synthetic scenes by positioning the foreground object at different locations of the background scene. On capturing the local object motion, the controller 110 simulates a motion blur for each local object motion by averaging a pre-defined number of frames of the burst dataset. Thereby, creating the local dataset by simulating the local motion of each burst dataset. After simulating the global motion and the local motion of each burst dataset, the controller 110 removes one or more burst datasets having structural and brightness mismatches between the clean ground truth frame and the low light static media. The controller 110 creates the dataset by including the one or more burst datasets that do not include the structural and brightness mismatches between the clean ground truth frame and the low light static media.
  • After creating the dataset, the controller 110 selects at least two sets of frames from the created dataset. Each set includes at least three frames. The controller 110 adds a synthetic motion to the selected at least two sets of frames. The at least two sets of frames added with the synthetic motion includes different noise realizations. The controller 110 performs a Siamese training of the first, second, and third neural networks (202a, 202b, and 202c) using a ground truth and the at least two sets of frames added with the synthetic motion. The ground truth can be used for loss computations for training the neural network. For performing the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c), the controller 110 passes the at least two sets of frames with the different noise realizations to at least two of the first, second, and third neural networks (202a, 202b, and 202c) to generate at least two sets of output frames. The controller 110 computes a Siamese loss by computing a L2 loss between the at least two sets of output frames. The controller 110 computes a pixel loss by computing an average of the at least two sets of output frames and a ground truth corresponding to the output frames. The controller 110 computes a total loss using the Siamese loss and the pixel loss and trains the first, second, and third neural networks (202a, 202b, and 202c) using the computed total loss.
  • After selecting the neural network among the first, second, and third neural networks (202a, 202b, and 202c), the controller 110 generates the output media stream by processing the plurality of frames of the media stream using the selected neural network (202a, 202b, or 202c). The output media stream may be a denoised media stream with enhanced brightness and zero flicker. Embodiments herein use the terms such as "output media stream", "output", "output video stream", "output video frames", "output image frames", "denoised media/video", "enhanced media/video", and so on, interchangeably to refer to media including zero noise and zero artificial flickering (i.e., including zero artifacts), and the corrected brightness.
  • For generating the output media stream, the controller 110 selects the single or the plurality of frames of the media stream as an input processing frame. The controller 110 down samples the input processing frame over multiple scales to generate a low-resolution input. In an example herein, the controller 110 down samples the input processing frame for 2 times. On generating the lower resolution input, the controller 110 processes the low-resolution input using the selected one of the first neural network 202a, the second neural network 202b, or the third neural network 202c at a lower resolution to generate a low-resolution output. The controller 110 then upscales the processed low-resolution output over multiple scales to generate the output media stream. For example, the controller 110 upscales the low-resolution output for 2 times. A number of scales for which the down sampling has been performed may be equal to a number of scales for which the upscaling has been performed.
  • The controller 110 may be further configured to dynamically vary a complexity of the selected one of first neural network 202a, the second neural network 202b, or the third neural network 202c by changing a number of scales for processing the low-resolution input. The complexity of the selected one of the first neural network 202a, the second neural network 202b, or the third neural network 202c may be varied with an inverse relationship with respect to the number of frames of the media stream.
  • The controller 110 saves/stores the generated output media stream in the memory 102.
  • FIG. 2 illustrates a media enhancer 200 performable in the electronic device 100 for enhancing the media, according to embodiments of the disclosure. The media enhancer 200 may be stored in the memory 102 and processed/executed by the controller 110 of the electronic device 100 to enhance the media/media stream. The media enhancer 200 includes a reception and aligner module 204, a brightness correction module 206, a neural network selection module 208, an output generation module 210, and a training module 212.
  • The reception and aligner module 204 may be configured to receive the media stream/input media for enhancing and performs the alignment of the plurality of frames of the media stream.
  • The brightness correction module 206 may be configured to correct the brightness of the plurality of frames of the media stream. The brightness correction module 206 identifies the single frame or the plurality of frames of the media stream as the input frame. The brightness correction module 206 linearizes the input frame using the ICRF and chooses the brightness value for correcting the brightness of the input frame using the future temporal guidance. After choosing the brightness value, the brightness correction module 206 applies the linear boost on the input frame based on the chosen brightness value. The brightness correction module 206 applies the CRF on the input frame to correct the brightness of the input frame.
  • The neural network selection module 208 may be configured to select one among the first, second, and third neural networks (202a, 202b, and 202c) for processing the plurality of frames of the media stream. For selecting the neural network (202a, 202b, or 202c), the neural network selection module 208 analyzes each frame with respect to earlier frames to check if the shot boundary detection is associated with each of the plurality of frames. If the shot boundary detection is associated with the plurality of frames, the controller 110 selects the first neural network 202a for processing the plurality of frames of the media stream. If the shot boundary detection is not associated with the plurality of frames, the controller 110 analyzes the presence of the artificial light flickering in the plurality of frames of the media stream. If the artificial light flickering is present in the plurality of frames, the controller 110 selects the second neural network 202b for processing the plurality of frames of the media stream. If the artificial light flickering is not present in the plurality of frames, the controller 110 selects the third neural network 202c for processing the plurality of frames of the media stream.
  • The output generation module 210 may be configured to generate the output media stream by processing the plurality of frames of the media stream using the selected first neural network 202a, or the second neural network 202b, or the third neural network 202c. The output generation module 210 selects the single or the plurality of frames of the media stream as the input processing frame. The output generation module 210 down samples the input processing frame over the multiple scales to generate the low-resolution input. The output generation module 210 processes the low-resolution input using the selected first neural network 202a, or the second neural network 202b, or the third neural network 202c. The output generation module 210 upscales the low-resolution output over the multiple scales using the higher resolution frames as the guide to generate the output media stream.
  • The training module 212 may be configured to train the first, second, and third neural networks (202a, 202b, and 202c) using the multi-frame Siamese training method. For training the first, second, and third neural networks (202a, 202b, and 202c), the training module 212 creates the dataset for training the first, second, and third neural networks (202a, 202b, and 202c). The dataset includes one of the local dataset and the global dataset. The training module 212 selects the at least two sets of frames from the created dataset and adds the synthetic motion to the selected at least two sets of frames. On adding the synthetic motion to the selected at least two sets of frames, the training module 212 performs the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c) using the ground truth media and the at least two sets of frames added with the synthetic motion.
  • FIGs. 1 and 2 show exemplary blocks of the electronic device 100, but it is to be understood that other embodiments are not limited thereon. In other embodiments, the electronic device 100 may include less or more number of blocks. Further, the labels or names of the blocks are used only for illustrative purpose and does not limit the scope of the embodiments herein. One or more blocks can be combined together to perform same or substantially similar function in the electronic device 100.
  • Embodiments herein further describe the enhancement of the media by considering the media as a video for example, but it may be obvious to a person skilled in the art that any other type of media may be considered.
  • FIG. 3 is an example conceptual diagram depicting enhancing of the video, according to embodiments of the disclosure. Embodiments herein enable the electronic device 100 to efficiently switch between the high and low complexity neural networks (202a, 202b, and 202c) for denoising and deflickering based on the shot boundary detection and the artificial light flickering. Thus, improving average running time for neural network based video enhancement.
  • The electronic device 100 identifies key frames of the video by computing the temporal similarity between the frames of the video. The key frames may be referred to the frames of the video, which have been associated with the shot boundary detection. The electronic device 100 uses the HCN 202a for denoising the key frames of the video. The electronic device 100 uses the TG-LCN for denoising non-key frames of the video using a temporal output guidance. The non-key frames of the video may be the frames of the video including the artificial light flickering. The temporal output guidance may refer to the previous output frame, which has been used as the guide. Both the HCN 202a and the TG-LCN 202b may be composed of multi-scale inputs with convolutional guided filters for fast processing and reduced memory. The electronic device 100 may use the third neural network 202c for denoising the frames of the video, which do not include the artificial light flickering or do not associate with the shot boundary detection (i.e., having the temporal similarity with the other frames).
  • FIG. 4 illustrates an example image signal processing (ISP) inference pipeline for enhancing the video captured under the low light conditions and/or using the low-quality sensors, according to embodiment of the disclosure.
  • The electronic device 100 receives the video for enhancing, wherein the received video may be captured under the low light conditions or using the low quality sensors. On receiving the video, the electronic device 100 may perform a Vision Defect Identification System (VDIS) (an optional step) on the video to detect and correct any defects in the video.
  • After performing the VDIS, the electronic device 100 aligns the frames of the video (using any suitable existing methods). In an example herein, consider that the received video may include five consecutive frames ) (i.e., q=5) (referred as input frames). After aligning the input frames of the video, the electronic device 100 performs the brightness correction on the input frames of the video.
  • After performing the brightness correction, the electronic device 100 checks if the shot boundary detection is associated with the input frames by checking the temporal similarity between the input frames of the video. If the input frames are not similar (i.e., the shot boundary detection is associated with the input frames), the electronic device 100 uses the HCN to generate the output frames for the input frames that are not similar. In an example herein, consider that the input frame () is associated with the shot boundary detection. In such a scenario, the electronic device 100 uses the HCN to generate the output frame () by denoising the input frame ().
  • If the input frames are similar (i.e., absence of the shot boundary detection), the electronic device 100 checks the input frames ('q' frames) to detect whether the artificial light flickering is present due to artificial lights. If the artificial light flickering is present in the 'q' (i.e., 5) input frames, the electronic device 100 uses the TG-LCN/'q' frame flicker reduction denoiser 202b (n=q) to generate the output frame (), using the 'q' input frames and the previous output frame ''. The 'q' frame flicker reduction denoiser (TG-LCN) (n=q) performs the denoising and flicker elimination on the 'q' input frames. If artificial flickering due to the artificial lights is not present in the 'q' input frames, the electronic device 100 uses the third neural network/TG-LCN (n=p) 202c to generates the output frame (), using 'p' input frames (for example, 'p'=3 in the example shown in FIG. 4, ) and the previous output frame ''. Using the as the guide allows the second neural network/TG-LCN 202b and the third neural network/TG-LCN (n=p) 202c of much lower complexity to be used. In the video sequence as shown in FIG. 4, most frames are temporally similar, and hence the lower complexity gets deployed majorly, thus reducing the average time and power.
  • FIGs. 5 and 6 are example diagrams depicting the brightness correction performed on the video, while enhancing the video, according to embodiments of the disclosure. Embodiments herein enable the electronic device 100 to perform the brightness correction for correcting the brightness of the video using the LUT. The LUT may be selected by the electronic device 100 based on histogram statistics of the video. The LUT/set of LUTs may be predefined by tuning. The CFR and ICFR may be characterized in the LUT. The LUT may include a CFR LUT bank for storing the CFR and a ICFR LUT bank for storing the ICFR.
  • The electronic device 100 receives the single or the multiple frames of the video/video sequence as the input. The electronic device 100 linearizes the input frame using the ICFR. The electronic device 100 then chooses the brightness value using the temporal future temporal guidance. Choosing the brightness value is shown in FIG. 6.
  • As shown in FIG. 6, for choosing the brightness value, the electronic device 100 analyzes the brightness of the input frame (i.e., a current frame) and the future temporal buffer of 'b' frames. On analyzing that the brightness of the input frame is less than the threshold (t) and the brightness of all the frames in the future temporal buffer of size 'b' (i.e., the future temporal buffer of 'b' frames) is less than the threshold (t), the electronic device 100 chooses the constant boost value as the brightness value. On analyzing that the brightness of the input frame is less than the threshold (t) and the brightness of all the frames in the future temporal buffer of size 'b' is less than the threshold (t), the electronic device 100 chooses the boost value 'k' of monotonically decreasing function 'f' as the brightness value. On analyzing that the brightness of the input frame is greater than the threshold (t) and the brightness of the all the frames in the future temporal buffer of size 'b' is greater than the threshold (t), the electronic device 100 does not apply any boost/brightness value. On analyzing that the brightness of the input frame is greater than the threshold (t) and the brightness of any of the frames in the future temporal buffer of size 'b' is less than the threshold (t), the electronic device 100 chooses the boost value 'k' of monotonically increasing function 'g' as the brightness value. Thus, a temporally linearly varying boost applied for a smooth transition of the brightness. In an example, the function 'f' and the function 'g' may be chosen empirically by tuning and may be calculated as:
  • where 'n' indicates a number of frames of the video.
  • After choosing the brightness value, the electronic device 100 applies the linear boost on the input frame based on the chosen brightness value. The electronic device 100 applies the CRF on the input frame to correct the brightness of the input frame. The CRF is the function of the sensor type and the metadata.
  • FIG. 7 illustrates the HCN 202a for processing the frames of the video, if the shot boundary detection is associated with the frames of the video, according to embodiments of the disclosure.
  • The HCN 202a may be a single frame denoising network. The HCN 202a comprises of multiple residual blocks at the lowest level to improve noise removal capabilities. The HCN 202a may process the input frames of the video that do not have the temporal similarity (i.e., associated with shot boundary detection) to generate the output video, which is the denoised video.
  • FIG. 8 illustrates the TG-LCN 202b for processing the multiple frames of the video, if the artificial light flickering is present in the multiple frames, according to embodiments of the disclosure.
  • The TG-LCN/TG-LCN (n) may be a multi-frame denoising network, wherein 'n' depicts the input frames of the video. The TG-LCN 202b uses the previous output frame as the guide to process the input frames of the video to generate the output video, which allows the TG-LCN of much lower complexity than the HCN 202a. The TG-LCN does not use the residual blocks. The convolutional operations involved in the TG-LCN may contain less feature maps to reduce computation.
  • FIG. 9 is an example diagram depicting a multi-scale pyramid approach to generate the output video by processing the frames of the video, according to embodiments of the disclosure. Embodiments may adopt the multi-scale pyramid approach to process the frames of the vide to manage the execution time for both the HCN 202a and the TG-LCN (n) 202b, wherein the 'n' is the number of input frames.
  • The electronic device 100 receives the single frame or plurality of frames of the video as the input processing frame/input frames. The electronic device 100 down samples the input processing frame over multiple scales at the lower resolutions to generate the low-resolution input. The input processing frame may be down sampled at resolution. The electronic device 100 uses the selected HCN 202a or the TG-LCN (n=q) 202b, or the third neural network 202c for processing the low-resolution input to generate the low-resolution output. The electronic device 100 upscales/up samples the low-resolution output at every lower level over the multiple scales using Convolution Guided Filters (CGF) to generate the output video. The CGF accepts the higher resolution input set, the low-resolution input and the low-resolution output to generate the output video having the higher resolution output image.
  • In an embodiment herein, the network, where the multi-scale pyramidal approach is applied to the HCN 202a may be denoted by HCN', and the network where the multi-scale pyramidal approach is applied to TG-LCN 202b is denoted by TG-LCN'. The electronic device 100 dynamically varies the complexity of the HCN 202a, the TG-LCN 202b, or the third neural network 202c with the inverse relationship with respect to the number of frames of the video.
  • FIG. 10 is an example diagram depicting training of the first, second, and third neural networks (202a, 202b, and 202c) for enhancing the video/media stream, according to embodiments of the disclosure.
  • For training the first, second, and third neural networks (202a, 202b, and 202c), the electronic device 100 creates the dataset using low and higher exposure burst shots and uses self-supervised approaches for refining the dataset. The electronic device 100 corrects the brightness of the created dataset. The electronic device 100 then trains the first, second, and third neural networks (202a, 202b, and 202c) using the multi-frame Siamese training method and self-similarity loss for temporal consistency.
  • FIG. 11 is an example diagram, depicting training of the first, second, and third neural networks (202a, 202b, and 202c) using the multi-frame Siamese training method, according to embodiments of the disclosure. The video may include the similar frames having different noise realizations, which may lead to temporal inconsistencies in the final output video. Thus, the Siamese training may be used to train the first, second, and third neural networks (202a, 202b, and 202c). The electronic device 100 trains the first, second, and third neural networks (202a, 202b, and 202c) over multiple iterations/scales.
  • The electronic device 100 first creates the dataset for training the first, second, and third neural networks (202a, 202b, and 202c). Creating the dataset is shown in FIG. 12. As shown in FIG. 12, the electronic device 100 captures the burst dataset of the low light scenes using the camera 106. In an example herein, every capture may consist of 15 noisy inputs and 1 clean ground truth frame. In an example herein, the burst dataset may be captured at auto exposure, ET and ISO of input . In an example herein, every capture of the burst dataset may consist of a set of noisy inputs and clean ground truth frames. In an example herein, the electronic device 100 may use any application like a custom dump application for capturing the burst dataset. After capturing the dataset, the electronic device 100 simulates the global motion and the local motion of each burst dataset using the synthetic trajectory generation and the synthetic stop motion, respectively. Thereby, creating the local dataset, and the global dataset. Simulating the global motion and the local motion is shown in FIGs. 13A and 13B. In an example, the global motion and the local motion may be simulated on the burst dataset captured at 5 relative auto exposures for data augmentation relative multiplication factor,. In an example, the burst dataset may be captured at the auto exposure ET of EV0 limited to < 33 milliseconds (i.e., 30 frames per second (FPS)). In an example herein, the clean ground truth frame may be captured at and .
  • As shown in FIG. 13A, for simulating the global motion, the electronic device 100 estimates the polynomial coefficient range based on the parameters including the maximum translation and the maximum rotation. The maximum translation and the maximum rotation controls maximum displacement. The electronic device estimates the polynomial coefficient range based on the parameters including the maximum translation and the maximum rotation. The electronic device 100 then generates the 3rd order polynomial trajectory using the estimated polynomial coefficient range and approximates the 3rd order trajectory using the maximum depth. The 3rd order trajectory may be the trajectory followed by the camera 106 used to capture the burst dataset. The electronic device 100 generates the 'n' affine transformations based on the generated uniform sample points. In an example herein, the uniform sample points may be generated using the sampling rate that controls the smoothness between the frames of each burst dataset. The electronic device 100 applies the generated 'n' affine transformations on each burst dataset. Thereby, creating the global dataset by simulating the global motion on each burst dataset.
  • As shown in FIG. 13B, for simulating the local motion, the electronic device 100 uses two local motion characteristics, the local object motion/object motion, and the motion blur. The electronic device 100 captures the local object motion by moving properties (props) locally in a static scene (i.e., the synthetic stop motion). In an embodiment, capturing the local object motion includes capturing the input and the ground truth scene with only the background, and capturing the input and the ground truth scene with only the foreground object. The electronic device 100 crops out the foreground object and creates the synthetic scenes by positioning the foreground object at the different locations of the background scene. The electronic device 100 selects 3 sets of input frames (t-1, t, t+1) from the captured input, which have been required for each training pair. The electronic device 100 simulates the motion blur for each stop motion by averaging the selected 3 sets of input frames to 5 () frames for the properties (props). The electronic device 100 may use the two captures per static scene for the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c). In an example herein, a minimum number of input frames per training pair, j=3x 3 x 2 = 18 frames. The ground truth may be captured and aligned with 't' frame. In an example herein, the burst dataset including 1000 training pairs (> 500 captured) may be captured to create the dataset for training the first, second, and third neural networks (202a, 202b, and 202c).
  • As shown in FIG. 12, on simulating the global motion and the local motion, the electronic device 100 removes the at least one burst dataset with structural and brightness mismatches between the clean ground truth frame and the low light static media. The electronic device 100 creates the dataset by including the at least one burst dataset that does not include the structural and brightness mismatches between the clean ground truth frame and the low light static media. The electronic device 100 further boosts the brightness of the created dataset and the clean ground truth frame and saves the created dataset and the clean ground truth frame in the memory 102.
  • Once the dataset has been created, as shown in FIG. 11, the electronic device 100 adds the synthetic motion to the at least two sets of frames of the created dataset using synthetic trajectories to account for motion during inference in accordance with a synthetic modelling. The synthetic modelling comprises of performing a trajectory modelling for 3 degrees of rotational and translational freedom using the 3rd order polynomials. The 3 degrees of rotational and translational freedom may be uniformly sampled from an interval [0, t] to generate the uniform sampling points, where t represents simulated capture duration. The synthetic frames may be generated by applying homography on the selected each set of frames corresponding to the chosen uniform sampling points. After adding the synthetic motion to each of the selected at least two sets of frames, the electronic device 100 performs the Siamese training of the first, second, and third neural networks (202a, 202b, and 202c). The Siamese training of the first, second, and third neural networks (202a, 202b, and 202c) is shown in FIG. 14.
  • As shown in FIG. 14, the two of the first, second, and third networks (202a, 202b, and 202c) may be used while training. The electronic device 100 passes a first input set (input set 1) from the created dataset to a first set of neural network (which may include the first neural network (202a) and/or the second neural network (202b) and/or the third neural network (202c)). The electronic device 100 passes a second input set (input set 2) from the created dataset to a second set of neural network (which may include the first neural network (202a) and/or the second neural network (202b) and/or the third neural network (202c)). The first set of neural network and the second set of neural network share an identical weightage/weight. The first set of neural network generates a first output (output 1) by processing the first input set. The second set of neural network generates a second output (output 2) by processing the second input set. The first/second output may be the video/media including the denoised frames with zero artificial light flickering.
  • The electronic device 100 computes the Siamese loss by computing the L2 loss between the output 1 and the output 2. The electronic device 100 also computes the pixel loss by computing the average of the output 1 and the output 2 and the ground truth. The electronic device 100 computes the total loss using the Siamese loss and the pixel loss. The electronic device 100 trains the first, second, and third neural networks (202a, 202b, and 202c) using the computed total loss.
  • FIGs. 15A and 15B are example diagrams depicting a use case scenario of enhancing a low FPS video captured under the low light conditions, according to embodiments of the disclosure.
  • Consider an example scenario, wherein the electronic device 100 receives the low FPS video captured under the low light conditions for enhancement, wherein the low FPS video refers to the video with the FPS of up to 60. In such a scenario, the electronic device performs the VDIS and aligns the input frames of the video. The electronic device 100 performs the brightness correction on the input frames of the video and appends the aligned input frames of the video to form the input video sequence.
  • The electronic device 100 checks if the shot boundary detection is associated with the input frames of the input video sequence by analyzing the temporal similarity between the input frames. In an example herein, consider that the input frame () does not have the temporal similarity with the other input frames (). In such a scenario, the electronic device 100 selects the HCN 202a for processing the input frame () and the third neural network/TG-LCN (n=p) 202c for processing the input frames () to generate the output video .
  • In an embodiment, since the artificial light flickering is minimal in the low FPS video, the electronic device 100 does not check the presence of the artificial light flickering in the input frames of the input video sequence.
  • FIG. 16 is an example diagram depicting a use case scenario of enhancing an indoor slow motion video, according to embodiments of the disclosure.
  • Consider an example scenario, wherein the electronic device 100 receives the indoor slow motion video captured at high frame rates (240/960 FPS), thereby resulting in the video frames with noise. In such a scenario, the electronic device 100 enhances the indoor slow motion video by denoising and removing the artificial light flickering from the slow motion video. The electronic device checks the input frames of the slow motion video for the temporal similarity. If the input frames are not similar (i.e., presence of the shot boundary detection), the electronic device 100 uses the HCN 202a to generate the output frame (), wherein the current frame () serves as input to the HCN' 202a and the HCN' 202a denoises the current frame (). If the input frames of the slow motion video are similar (i.e., absence of the shot boundary detection), the electronic device 100 checks if the artificial light flickering is present in the input frames ('q' input frames) of the slow motion video due to the artificial lights. If the artificial light flickering is present in the 'q' input video frames, the electronic device 100 selects the second neural network/'q' frame flicker reduction denoiser (TG-LCN') (n=q) 202b to generate the output video frame (), using the 'q' input frames and the previous output frame . The q frame flicker reduction denoiser (TG-LCN') (n=q) 202b performs the denoising and flicker elimination on the q input video frames. If artificial light flickering is not present in the 'q' input video frames, the electronic device 100 uses the third neural network/ TG-LCN' (n=p) 202c to generate the output video frame (), using p input frames ((p=3 in the shown example) ) and the previous output frame . Using the as the guide allows to use a network of much lower complexity and also helps in removing the artificial light flickering.
  • FIG. 17 is an example diagram depicting a use case scenario of enhancing a real-time High Dynamic Range (HDR) video, according to embodiments of the disclosure. The HDR video may be generated using alternating exposures. Each consecutive 3 frames form the input dataset from the HDR video. In an example scenario, as shown in FIG. 17, an output frame 1 (t) may be obtained using low (t-1), medium (t) and high frames (*t+1). The output frame 2 (t+1) may be obtained using medium (t), high (t+1) and low (t+2) frames and so on. The temporal similarity may be measured between the previous output frame and the current input frame.
  • FIG. 18 is a flow chart 1800 depicting a method for enhancing the media stream, according to embodiments of the disclosure.
  • At step 1802, the method includes receiving, by an electronic device 100, the media stream. At step 1804, the method includes performing, by the electronic device 100, the alignment of the plurality of frames of the media stream. At step 1806, the method includes correcting, by the electronic device 100, the brightness of the plurality of frames.
  • At step 1808, the method includes selecting, by the electronic device 100, one of the first neural network 202a, the second neural network 202b, or the third neural network 20c, by analyzing parameters of the plurality of frames, after correcting the brightness of the plurality of frames. The parameters include at least one of the shot boundary detection and the artificial light flickering.
  • At step 1810, the method includes generating, by the electronic device 100, the output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network 202a, the second neural network 202b, or the third neural network 202c. The various actions in method 1800 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions listed in FIG. 18 may be omitted.
  • Embodiments herein provide methods and systems for enhancing videos in real time using temporal guided adaptive CNN switching, wherein the videos have been captured in extreme low light, under high noise conditions and/or captured using inferior sensors. Embodiments herein provide a deep learning based pipeline to achieve real time video enhancement while minimizing noise and flicker artifacts. Embodiments herein provide methods and systems to choose between high and low complexity networks by analyzing temporal consistency of input frames, thus reducing average time and power required to process a video. Embodiments herein provide use of Siamese training to reduce flicker.
  • Embodiments herein provide a method for low light video enhancement. The method comprises receiving an input video stream corrupted by noise, low brightness or color artifacts. The brightness is boosted to desired levels using a pre-tuned look up table. The temporal similarity of consecutive frames is analyzed. If there are dissimilar frames (based on the analysis of the consecutive frames), a high complexity single frame DNN model is deployed. If there are similar frames (based on the analysis of the consecutive frames), a lower complexity multi frame (p) DNN model (for example, a 3 frame DNN model) guided by previous output is deployed. On detecting artificial light flickering in the input video stream, an input comprising of multiple frames (q, where q > p) (for example, the input comprises of five frames) is used to perform flicker removal along with noise reduction. The output from one of the pathways is saved to the output video stream.
  • Embodiments herein provide a method for fast video denoising. The method includes receiving single or multiple frames as input. The frames are down sampled to lower resolutions using multiple scales. The video frames are processed at a lower resolution, generating a low resolution output. The low resolution output is upscaled over multiple levels using higher resolution frames as a guide. A low resolution network for down sampling and up sampling may be trained using Siamese training approach for temporal consistency.
  • Embodiments herein provide a deep learning based pipeline to achieve real-time video enhancement, while minimizing noise and flicker artifacts.
  • Embodiments herein provide a method to choose between high and low complexity networks by analyzing temporal consistency of input frames, thus reducing an average time required to process a video/media.
  • Embodiments herein provide a method to dynamically change network complexity at inference.
  • Embodiments herein provide a method for employing Siamese training to reduce the flicker.
  • The embodiments herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements. The elements shown in FIGs. 1 and 2 can be at least one of a hardware device, or a combination of hardware device and software module.
  • The embodiments of the disclosure provide methods and systems for low light media enhancement. Therefore, it is understood that the scope of the protection is extended to such a program and in addition to a computer readable means having a message therein, such computer readable storage means contain program code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device. The method is implemented in an embodiment through or together with a software program written in e.g., Very high speed integrated circuit Hardware Description Language (VHDL) another programming language, or implemented by one or more VHDL or several software modules being executed on at least one hardware device. The hardware device may be any kind of portable device that may be programmed. The device may also include an ASIC, or a combination of hardware and software means, e.g., an ASIC and an FPGA, or at least one microprocessor and at least one memory with software modules located therein. The method embodiments described herein could be implemented partly in hardware and partly in software. Alternatively, the invention may be implemented on different hardware devices, e.g., using a plurality of CPUs.
  • The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments have been described, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the embodiments as described herein.

Claims (15)

  1. A method for enhancing media, the method comprising:
    receiving, by an electronic device, a media stream;
    performing, by the electronic device, an alignment of a plurality of frames of the media stream;
    correcting, by the electronic device, a brightness of the plurality of frames;
    selecting, by the electronic device, one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters comprise at least one of shot boundary detection and artificial light flickering; and
    generating, by the electronic device, an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.
  2. The method of claim 1, wherein the media stream is captured under low light conditions, and
    wherein the media stream comprises at least one of noise, low brightness, artificial flickering, and color artifacts.
  3. The method of claim 1, wherein the output media stream is a denoised media stream with enhanced brightness and zero flicker.
  4. The method of claim 1, wherein the correcting the brightness of the plurality of frames of the media stream comprises:
    identifying a single frame or the plurality of frames of the media stream as an input frame;
    linearizing the input frame using an Inverse Camera Response Function (ICRF);
    selecting a brightness multiplication factor for correcting the brightness of the input frame using a future temporal guidance;
    applying a linear boost on the input frame based on the brightness multiplication factor; and
    applying a Camera Response Function (CRF) on the input frame to correct the brightness of the input frame,
    wherein the CRF is a function of a sensor type and metadata,
    wherein the metadata comprises an exposure value and International Standard Organization (ISO), and
    wherein the CRF and the ICRF are stored as Look-up-tables (LUTs).
  5. The method of claim 4, wherein the selecting the brightness multiplication factor includes:
    analyzing the brightness of the input frame;
    identifying a maximum constant boost value as the brightness multiplication factor, based on the brightness of the input frame being less than a threshold and a brightness of all frames in a future temporal buffer being less than the threshold;
    identifying a boost value of monotonically decreasing function between maximum constant boost value and 1 as the brightness multiplication factor, based on the brightness of the input frame being less than the threshold, and the brightness of all the frames in the future temporal buffer being greater than the threshold;
    identifying a unit gain boost value as the brightness multiplication factor, based on the brightness of the input frame being greater than the threshold and the brightness of all the frames in the future temporal buffer being greater than the threshold; and
    identifying a boost value of monotonically increasing function between 1 and the maximum constant boost value as the brightness multiplication factor, based on the brightness of the input frame being greater than the threshold, and the brightness of the frames in the future temporal buffer being less than the threshold.
  6. The method of claim 1, wherein the selecting, by the electronic device, one of the first neural network, the second neural network or the third neural network comprises:
    analyzing each frame with respect to earlier frames to determine whether the shot boundary detection is associated with each of the plurality of frames;
    selecting the first neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the shot boundary detection being associated with the plurality of frames;
    analyzing a presence of the artificial light flickering in the plurality of frames, based on the shot boundary detection not being associated with the plurality of frames;
    selecting the second neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the artificial light flickering being present in the plurality of frames; and
    selecting the third neural network for generating the output media stream by processing the plurality of frames of the media stream, based on the artificial light flickering not being present in the plurality of frames.
  7. The method of claim 6, wherein the first neural network is a high complexity neural network with one input frame,
    wherein the second neural network is a temporally guided lower complexity neural network with 'q' number of input frames and a previous output frame for joint deflickering or joint denoising, and
    wherein the third neural network is a neural network with 'p' number of input frames and the previous output frame for denoising, wherein 'p' is less than 'q'.
  8. The method of claim 7, wherein the first neural network comprises multiple residual blocks at a lowest level for enhancing noise removal capabilities, and
    wherein the second neural network comprises at least one convolution operation with less feature maps and the previous output frame as a guide for processing the plurality of input frames.
  9. The method of claim 6, wherein the first neural network, the second neural network and the third neural network are trained using a multi-frame Siamese training method to generate the output media stream by processing the plurality of frames of the media stream.
  10. The method of claim 9, further comprising training a neural network of at least one of the first neural network, the second neural network and the third neural network by:
    creating a dataset for training the neural network, wherein the dataset comprises one of a local dataset and a global dataset;
    selecting at least two sets of frames from the created dataset, wherein each set comprises at least three frames;
    adding a synthetic motion to the selected at least two sets of frames, wherein the at least two sets of frames added with the synthetic motion comprise different noise realizations; and
    performing a Siamese training of the neural network using a ground truth media and the at least two sets of frames added with the synthetic motion.
  11. The method of claim 10, wherein the creating the dataset comprises:
    capturing burst datasets, wherein a burst dataset comprises one of low light static media with noise inputs and a clean ground truth frame;
    simulating a global motion and a local motion of each burst dataset using a synthetic trajectory generation and a synthetic stop motion, respectively;
    removing at least one burst dataset with structural and brightness mismatches between the clean ground truth frame and the low light static media; and
    creating the dataset by including the at least one burst dataset that does not include the structural and brightness mismatches between the clean ground truth frame and the low light static media.
  12. The method of claim 11, wherein the simulating the global motion of each burst dataset comprises:
    estimating a polynomial coefficient range based on parameters comprising a maximum translation and a maximum rotation;
    generating 3rd order polynomial trajectories using the estimated polynomial coefficient range;
    approximating a 3rd order trajectory using a maximum depth and the generated 3rd order polynomial trajectories;
    generating uniform sample points based on a pre-defined sampling rate and the approximated 3D trajectory;
    generating 'n' affine transformations based on the generated uniform sample points; and
    applying the generated n affine transformations on each burst dataset.
  13. The method of claim 11, wherein the simulating the local motion of each burst dataset comprises:
    capturing local object motion from each burst dataset in a static scene using the synthetic stop motion, the capturing the local object motion comprising:
    capturing an input and ground truth scene with a background scene;
    capturing an input and ground truth scene with a foreground object;
    cropping out the foreground object; and
    creating synthetic scenes by positioning the foreground object at different locations of the background scene; and
    simulating a motion blur for each local object motion by averaging a pre-defined number of frames of the burst dataset.
  14. The method of claim 10, wherein the performing the Siamese training of the neural network comprises:
    passing the at least two sets of frames with the different noise realizations to the neural network to generate at least two sets of output frames;
    computing a Siamese loss by computing a loss between the at least two sets of output frames;
    computing a pixel loss by computing an average of the at least two sets of output frames and a ground truth;
    computing a total loss using the Siamese loss and the pixel loss; and
    training the neural network using the computed total loss.
  15. An electronic device comprising:
    a memory; and
    a processor coupled to the memory and configured to:
    receive a media stream;
    perform an alignment of a plurality of frames of the media stream;
    correct a brightness of the plurality of frames;
    select one of a first neural network, a second neural network, or a third neural network, by analyzing parameters of the plurality of frames having the corrected brightness, wherein the parameters comprise at least one of shot boundary detection, and artificial light flickering; and
    generate an output media stream by processing the plurality of frames of the media stream using the selected one of the first neural network, the second neural network, or the third neural network.
EP22825246.6A 2021-06-15 2022-06-13 Methods and systems for low light media enhancement Pending EP4248657A4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202141026673 2021-06-15
PCT/KR2022/008294 WO2022265321A1 (en) 2021-06-15 2022-06-13 Methods and systems for low light media enhancement

Publications (2)

Publication Number Publication Date
EP4248657A1 true EP4248657A1 (en) 2023-09-27
EP4248657A4 EP4248657A4 (en) 2024-01-03

Family

ID=84391301

Family Applications (1)

Application Number Title Priority Date Filing Date
EP22825246.6A Pending EP4248657A4 (en) 2021-06-15 2022-06-13 Methods and systems for low light media enhancement

Country Status (3)

Country Link
US (1) US20220398700A1 (en)
EP (1) EP4248657A4 (en)
CN (1) CN117044215A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116797485A (en) * 2023-06-30 2023-09-22 中国人民解放军军事科学院系统工程研究院 Low-illumination image enhancement method and device based on data synthesis

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101313637B1 (en) * 2006-06-09 2013-10-02 서강대학교산학협력단 Image processing apparatus and method for contrast enhancement
US8823808B2 (en) * 2009-10-27 2014-09-02 Intellectual Ventures Fund 83 Llc Method for improved digital video image quality
CN105893920B (en) * 2015-01-26 2019-12-27 阿里巴巴集团控股有限公司 Face living body detection method and device
JP7133979B2 (en) * 2018-05-24 2022-09-09 三菱電機株式会社 Image processing device, image processing method, image processing program, and storage medium
KR20190117416A (en) * 2019-09-26 2019-10-16 엘지전자 주식회사 Method and apparatus for enhancing video frame resolution
KR20210052040A (en) * 2019-10-31 2021-05-10 엘지전자 주식회사 Video data quality improving method and apparatus
CN111311524B (en) * 2020-03-27 2023-04-18 电子科技大学 MSR-based high dynamic range video generation method

Also Published As

Publication number Publication date
CN117044215A (en) 2023-11-10
EP4248657A4 (en) 2024-01-03
US20220398700A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
WO2020171373A1 (en) Techniques for convolutional neural network-based multi-exposure fusion of multiple image frames and for deblurring multiple image frames
US11882357B2 (en) Image display method and device
US10708525B2 (en) Systems and methods for processing low light images
EP3798975B1 (en) Method and apparatus for detecting subject, electronic device, and computer readable storage medium
US11436440B2 (en) Method and system for DNN based imaging
CN112085768B (en) Optical flow information prediction method, optical flow information prediction device, electronic equipment and storage medium
WO2020171379A1 (en) Capturing a photo using a mobile device
CN113099122A (en) Shooting method, shooting device, shooting equipment and storage medium
WO2020027584A1 (en) Method and an apparatus for performing object illumination manipulation on an image
Zhang et al. Deep motion blur removal using noisy/blurry image pairs
CN114331902B (en) Noise reduction method and device, electronic equipment and medium
EP4248657A1 (en) Methods and systems for low light media enhancement
US9686470B2 (en) Scene stability detection
Xue Blind image deblurring: a review
WO2023224425A1 (en) Method and system for image artifact modification based on user interaction
WO2022265321A1 (en) Methods and systems for low light media enhancement
CN114255177B (en) Exposure control method, device, equipment and storage medium in imaging
US20220319157A1 (en) Temporal augmentation for training video reasoning system
US20230033548A1 (en) Systems and methods for performing computer vision task using a sequence of frames
KR102308373B1 (en) Video Deblurring Device for Face Recognition and Driving Method Thereof
CN112907621A (en) Moving object extraction method based on difference and semantic information fusion
CN111144312B (en) Image processing method, device, equipment and medium
WO2024111931A1 (en) Airy-disk correction for deblurring image
WO2022197001A1 (en) Method and electronic device for removing artifact in high resolution image
US20230370727A1 (en) High dynamic range (hdr) image generation using a combined short exposure image

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230621

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

A4 Supplementary search report drawn up and despatched

Effective date: 20231130

RIC1 Information provided on ipc code assigned before grant

Ipc: G06V 10/82 20220101ALI20231124BHEP

Ipc: G06N 3/09 20230101ALI20231124BHEP

Ipc: G06N 3/0464 20230101ALI20231124BHEP

Ipc: G06N 3/045 20230101ALI20231124BHEP

Ipc: G06N 3/08 20230101ALI20231124BHEP

Ipc: G06N 3/04 20230101ALI20231124BHEP

Ipc: G06T 5/00 20060101ALI20231124BHEP

Ipc: H04N 9/64 20230101ALI20231124BHEP

Ipc: H04N 21/431 20110101AFI20231124BHEP