CN117916765A - 用于去噪和低精度图像处理的非线性图像强度变换的系统和方法 - Google Patents
用于去噪和低精度图像处理的非线性图像强度变换的系统和方法 Download PDFInfo
- Publication number
- CN117916765A CN117916765A CN202180054409.XA CN202180054409A CN117916765A CN 117916765 A CN117916765 A CN 117916765A CN 202180054409 A CN202180054409 A CN 202180054409A CN 117916765 A CN117916765 A CN 117916765A
- Authority
- CN
- China
- Prior art keywords
- image
- input image
- machine learning
- images
- input
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 363
- 238000012545 processing Methods 0.000 title claims abstract description 118
- 230000009466 transformation Effects 0.000 title claims abstract description 89
- 238000010801 machine learning Methods 0.000 claims description 368
- 238000012549 training Methods 0.000 claims description 226
- 238000013528 artificial neural network Methods 0.000 claims description 52
- 230000002708 enhancing effect Effects 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 21
- 230000001537 neural effect Effects 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 abstract description 44
- 238000013139 quantization Methods 0.000 abstract description 40
- 230000001131 transforming effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 217
- 238000003384 imaging method Methods 0.000 description 150
- 230000006870 function Effects 0.000 description 109
- 238000013527 convolutional neural network Methods 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 18
- 230000007935 neutral effect Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000005286 illumination Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 16
- 238000012935 Averaging Methods 0.000 description 12
- 238000013507 mapping Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 230000001965 increasing effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000004075 alteration Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000004069 differentiation Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000001816 cooling Methods 0.000 description 4
- 238000012886 linear function Methods 0.000 description 4
- 229910044991 metal oxide Inorganic materials 0.000 description 4
- 150000004706 metal oxides Chemical class 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012706 support-vector machine Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000002059 diagnostic imaging Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000011347 resin Substances 0.000 description 2
- 229920005989 resin Polymers 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000016776 visual perception Effects 0.000 description 2
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 206010034972 Photosensitivity reaction Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000036211 photosensitivity Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/60—Image enhancement or restoration using machine learning, e.g. neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
- G06T5/92—Dynamic range modification of images or parts thereof based on global image properties
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/48—Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/21—Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Processing (AREA)
Abstract
本文所描述的技术提供了使用非线性技术来变换图像和/或量化图像。经变换的图像可以用于图像增强(例如,变换和/或量化可以是在执行图像增强之前的预处理步骤)。例如,与对原始图像执行图像处理相比,非线性强度变换技术可以提供有效的去噪、和/或更好的低精度图像处理等。
Description
相关申请
本申请要求朱等人于2020年7月2日提交的、名称为“用于去噪和低精度图像处理的非线性图像强度变换的系统和方法”的第63/047,875号美国临时专利申请的优先权,该申请的公开内容通过引用全部结合于此。
技术领域
本文描述的技术总体上涉及处理待增强的图像的技术,并且更具体地,涉及使用非线性变换来修改像素值。
背景技术
可以由图像采集设备(例如,数码相机的图像传感器)来采集图像。采集到的图像可能由于该图像被采集时的条件而具有较差的质量。例如,图像可能由于照明不足、曝光时间较短和/或其他条件而具有噪声。此外,采集到的图像可能由于图像采集设备的限制而具有较差的质量。例如,图像采集设备可能不具有用于补偿图像被采集时的条件的机构。
发明内容
本文所描述的技术提供使用非线性技术来变换图像的图像强度值(例如,像素值)。经变换的图像可以用于图像增强(例如,作为执行图像增强之前的预处理步骤)。例如,与对原始图像执行图像处理相比,非线性强度变换技术可以提供有效的去噪、和/或更好的低精度图像处理等。
根据一个方面,一种计算机实现的处理图像的方法。该方法包括:使用至少一个处理器来执行:获取输入图像,该输入图像包括第一位深度的像素;至少部分地通过将第一非线性变换应用于该输入图像的像素强度来对该输入图像进行量化,以生成经量化的输入图像,该经量化的输入图像包括第二位深度的像素,其中,第二位深度小于第一位深度;以及提供该经量化的输入图像以用于图像处理。
在一个实施例中,对输入图像进行量化包括:通过将第一非线性变换应用于该输入图像的像素强度来获得经变换的输入图像;以及将满射映射应用于该经变换的输入图像的像素强度,以获得经量化的输入图像,其中,该满射映射将第一位深度的像素强度映射到第二位深度的像素强度。
在一个实施例中,第二位深度包括第一像素强度与第二像素强度,其中,第一像素强度小于第二像素强度;以及对输入图像进行量化包括:比起映射到第二像素强度,将将第一位深度的更少数量的像素强度映射到第一像素强度。
在一个实施例中,该方法还包括:获取来自图像处理管线的输出图像,该输出图像包括第二位深度的像素;以及至少部分地通过将第二非线性变换应用于该输出图像的像素强度来对该输出图像进行反量化,以生成经反量化的输出图像,该经反量化的输出图像包括第一位深度的像素。在一个实施例中,第二非线性变换包括第一非线性变换的逆变换。
在一个实施例中,将经量化的输入图像提供给图像处理管线包括:将经量化的输入图像提供给神经处理器。在一个实施例中,将经量化的输入图像提供到图像处理管线包括:将经量化的输入图像提供给数字信号处理器(digital signal processor,DSP)。在一个实施例中,图像处理管线包括一个或多个处理器,该一个或多个处理器具有比该至少一个处理器更低的功率。
在一个实施例中,第一位深度为10位、12位、14位或16位。在一个实施例中,第二位深度为8位。在一个实施例中,第一位深度为10位、12位、14位或16位;而第二位深度为8位。
在一个实施例中,图像处理管线包括机器学习模型,该机器学习模型是使用包括第二位深度的像素的经量化的图像来训练的;以及将经量化的输入图像提供给图像处理管线包括:将经量化的输入图像提供给机器学习模型,以获得经增强的输出图像。
根据另一方面,提供了一种计算机实现的训练用于图像增强的机器学习模型的方法。该方法包括:使用至少一个处理器来执行:获取多幅图像,图像包括第一位深度的像素;至少部分地通过将非线性变换应用于多幅图像的像素强度来对该多幅图像进行量化,以生成多幅经量化的图像,经量化的图像包括第二位深度的像素,其中,第二位深度小于第一位深度;以及使用多幅经量化的图像来训练机器学习模型。
根据一个实施例,多幅图像包括输入图像和目标输出图像,并且使用多幅经量化的图像来训练机器学习模型包括:将监督学习算法应用于经量化的输入图像和经量化的目标输出图像。
根据一个实施例,机器学习模型包括神经网络。根据一个实施例,使用多幅经量化的图像来训练机器学习模型包括:训练机器学习模型以对输入图像进行去噪。
根据另一方面,提供了一种计算机实现的增强图像的方法。该方法包括:使用至少一个处理器来执行:获取待增强的输入图像;将非线性变换应用于该输入图像的像素强度,以获得经变换的输入图像;使用该经变换的输入图像来生成待被提供给经训练的机器学习模型的输入;以及将所生成的输入提供给经训练的机器学习模型,以获得经增强的输出图像。
在一个实施例中,输入图像在该输入图像的多个像素强度上具有噪声特性的第一方差;经变换的输入图像在该输入图像的多个像素强度上具有噪声特性的第二方差;并且,第二方差小于第一方差。在一个实施例中,噪声特性是噪声标准偏差。
在一个实施例中,经训练的机器学习模型被训练来对输入进行去噪。在一个实施例中,经训练的机器学习模型包括神经网络。在一个实施例中,经训练的机器学习模型是通过将监督训练算法应用于训练数据来生成的。
在一个实施例中,该输入图像包括第一位深度的多个像素;
使用经变换的输入图像生成输入包括:对经变换的输入图像进行量化,以获得经量化的输入图像,该经量化的输入图像包括第二位深度的像素,其中,第二位深度小于第一位深度;以及将所生成的输入提供给经训练的机器学习模型包括:将经量化的输入图像作为输入提供给经训练的机器学习模型。在一个实施例中,对经变换的输入图像进行量化包括:将满射映射应用于经变换的输入图像的像素强度,其中,该满射映射将第一位深度的像素强度映射到第二位深度的像素强度。
在一个实施例中,第二位深度包括第一像素强度与第二像素强度,其中,第一像素强度小于第二像素强度;以及
对输入图像进行量化包括:比起映射到第二像素强度,将第一位深度的更少数量的像素强度映射到第一像素强度。
因此,已经相当广泛地概述了所公开主题的这些特征,以便可以更好地理解其后的具体实施方式,并且以便可以更好地认识对现有技术的当前贡献。当然,所公开主题的附加特征将在下文中进行描述,并且这些附加特征将形成所附权利要求的主题。应当理解的是,本文采用的措辞和术语是出于描述的目的,而不应当被认为是限制。
附图说明
将参考以下附图对本申请的各个方面和实施例进行描述。应理解的是,这些附图不一定是按比例绘制的。出现在多幅图中的项在其出现的所有图中由相同的参考数字表示。
图1显示了根据本文所描述发明的一些实施例的、可实现本文所描述的技术的示例性系统的框图。
图2显示了根据本文所描述发明的一些实施例的、处理图像的示例过程的流程图。
图3显示了根据本文所描述发明的一些实施例的、对图像进行量化的示例过程的流程图。
图4显示了根据本文所描述发明的一些实施例的、对图像进行反量化的示例过程的流程图。
图5显示了根据本文所描述发明的一些实施例的、增强图像的示例过程的流程图。
图6显示了根据本文所描述发明的一些实施例的、用于训练机器学习模型的示例性系统的框图。
图7显示了根据本文所描述发明的一些实施例的、训练用于图像增强的机器学习模型的示例过程的流程图。
图8显示了示出根据一些实施例的像素强度的线性量化的曲线图。
图9显示了示出根据一些实施例的使用对数函数的像素强度的非线性量化的曲线图。
图10显示了示出根据一些实施例的使用指数函数的像素强度的非线性量化的曲线图。
图11显示了示出根据一些实施例的通过应用非线性变换而减小噪声特性方差的曲线图。
图12显示了可以用于实现本文所描述发明的一些实施例的示例性计算设备的框图。
具体实施方式
现转到附图,描述了根据本发明多个实施例的用于去噪和图像处理的非线性图像强度变换的系统和方法。由图像采集设备采集到(例如,使用图像传感器)的图像可以由比计算设备(例如,处理器)配备来处理的动态范围的更高的动态范围来表示。例如,使用互补金属氧化物半导体(complementary metal-oxide semiconductor,CMOS)图像传感器采集到的图像可以具有位深度为14的像素,而低功率数字信号处理器(digital signalprocessor,DSP)、和/或神经处理单元(neural processing unit,NPU)等可能限于处理具有位深度为8的像素的图像。DSP和/或NPU等可能被限于8位输入和/或可被配置为执行8位运算。传统系统可以将线性量化应用于图像,以降低该图像的位深度以供计算设备处理。然而,这种对图像的量化经常会导致信息丢失,从而降低了经处理的图像的图像质量。
本发明的许多实施例认识到,在亮度与人类视觉感知之间可存在非线性关系。例如,观看数字图像的人典型对低亮度(例如,低像素强度)下的像素或像素区域的绝对强度变化、比对高亮度(例如,高像素强度)下的变化更敏感。因此,本文描述了非线性图像强度变换和/或量化的技术,这些技术可以减轻由于对经量化的图像数据进行图像处理操作而造成的感知图像质量的损失。本文所描述的技术运用亮度与人类视觉感知之间的非线性关系来获得具有较低图像质量损失的经变换的图像。一些实施例将非线性强度变换应用于图像,并对该图像进行量化以减小该图像的位深度,同时使低像素强度之间的区分度最小化。
噪声特性可能随图像中的像素强度而变化。例如,噪声的标准偏差可能随像素强度而变化。本发明的某些实施例认识到,当待增强的图像在多个像素强度上的噪声特性(例如,标准偏差)中具有高方差时,被训练用于图像增强(例如,去噪)的机器学习模型的复杂度增加。例如,当输入图像在多个像素强度上的噪声标准偏差中具有高方差时,正被训练来增强图像(例如,通过对图像进行去噪)的神经网络模型因为需要考虑多种噪声水平,所以可能需要更多的层、更多的通道,并因此需要更多的权重。随着机器学习模型的复杂度增加,采用机器学习模型的计算设备可能需要更多的计算过程、存储器和功率来增强图像(例如,对该图像进行去噪),所述该计算设备的效率降低。例如,由于计算设备针对每图像像素需要更多的计算过程、存储器和功率来对该图像进行去噪,因此通过执行被训练以用于去噪的神经网络来增强图像的神经处理器随着该神经网络的层数增加而变得效率更低。
因此,本文所描述的一些技术将非线性变换应用于图像的多个像素强度,以减少该图像在多个像素强度上的噪声特性变化。在多个像素强度上的较低的噪声特性变化可以降低增强图像所需的机器学习模型的复杂度,因为该模型被要求对较小范围的噪声水平进行去噪。因此,使用该机器学习模型的计算设备可以更高效地处理图像。一些实施例结合对图像的量化或重新量化、将非线性变换应用于该图像的多个像素强度。一些实施例将非线性变换应用于图像的多个像素强度而不对该图像进行量化。
在本发明的附加实施例中,通过诸如此处所描述的那些技术等技术而准备的一幅或多幅图像可以用作机器学习模型的训练数据,或者可以作为待增强的输入数据而提供给经训练的机器学习模型。在沈等人的公开号为2020/0051217(申请序列号为16/634,424)的美国专利(‘217公开文本)中公开了用于增强图像和训练机器学习模型的系统和方法,该专利的相关部分通过引用全部结合于此,并且作为附录A附上了该专利的副本。
在以下描述中,阐述了关于所公开主题的系统和方法以及这些系统和方法可以运行的环境等的许多具体细节,以便提供对所公开主题的透彻理解。本文所描述的一些实施例解决了关于传统图像处理技术的上述问题。然而,应认识到,并非本文所描述的每个实施例均解决这些问题中的每一个问题。还应认识到,本文所描述的发明的多个实施例除了解决传统图像处理技术的上述问题之外,还可以用于其他目的。此外,将理解的是,以下所提供的示例是示例性的,并且可以预期的是,在所公开主题的范围内存在其他系统和方法。
图像处理系统
图1显示了根据一些实施例的可实现本文所描述的技术的系统100的框图。如图1所示,系统100包括图像预处理系统102(本文中也称为“系统102”)、图像采集设备104和图像处理系统106。在一些实施例中,图像预处理系统102可以是‘217公开文本(附录A)的图1A和图1B中的图像增强系统111的部件。
如图1的示例所示出的,图像预处理系统102与图像采集设备104和图像处理系统106通信。在一些实施例中,图像预处理系统102可以被配置为接收来自图像采集设备104的数据。该数据可以包括由图像采集设备104采集到的一个或多个数字图像。例如,图像预处理系统102可以获取来自图像采集设备104的图像,该图像将经历附加的图像处理(例如,通过图像处理系统106)。在一些实施例中,图像预处理系统102可以被配置为:(1)获取来自图像采集设备104的图像;(2)对该图像进行非线性变换和/或量化;以及(3)将经变换和/或经量化的图像提供给图像处理系统106以进行附加处理(例如,增强)。图像量化可以被配置为:(1)获取来自图像处理系统106的经处理的图像;(2)对经处理的图像进行反变换和/或反量化;以及(3)将经反量化/经反变换的处理后图像提供给图像采集设备104。在数个实施例中,图像预处理系统102是具有诸如以下关于图12进一步描述的那些部件等部件的专用计算系统或子系统。
如图1所示出的,图像预处理系统102可以包括非线性变换102A。非线性变换在本文中也可以称为“非线性映射”,并且可以例如被实现为固件或存储器(易失性或非易失性存储器)中的多个处理器指令,这些处理器指令在被执行时,指引处理器执行如本文所述的一个或多个过程。图像预处理系统102可以使用非线性变换102A,来对图像进行预处理(例如,不对图像进行量化)和/或连同对获取到的图像进行量化。在一些实施例中,非线性变换102A可以包括连续非线性函数,该连续非线性函数将像素强度值作为输入,并输出对应的变换值。例如,非线性变换102A可以是非线性函数,该非线性函数将10位的像素强度作为输入,并输出0和1之间的对应值。在一些实施例中,非线性变换102A可以是分段函数。在一些实施例中,除一个或多个非线性部分以外,非线性变换102A还可以包括一个或多个线性部分。例如,非线性变换102A可以是分段函数,在该分段函数中,对于第一像素强度范围的输出是线性的,而对于第二像素强度范围的输出是非线性的。
在一些实施例中,非线性变换102A可以包括对数函数。在一些实施例中,非线性变换可以包括指数函数。在一些实施例中,非线性变换可以包括多种函数的组合(包括一种或多种线性函数和/或一种或多种非线性函数这两类函数的组合)。本文描述了可包括在非线性变换102A中的多种非线性函数的示例,这些非线性函数示例旨在是示例性的而非限制性的。因此,一些实施例不限于本文所描述的非线性函数。
由图像预处理系统102获取的图像可以具有第一位深度(例如,位深度为10、位深度为12、位深度为14或位深度为16)的像素值,该第一位深度即表示一值的信息的比特数。本领域技术人员将认识到的是,像素值可以具有一个或多个分量,其中,不同的分量表示特定像素的不同特性的强度,该特定像素的不同特性例如但不限于,亮度(brightness)、亮度(luminance)、色度、和/或颜色通道(例如,蓝色、红色、绿色)。
图像预处理系统102可以被配置为对图像进行量化以获得具有第二位深度(例如,位深度为5、位深度为6、位深度为7、或位深度为8)的像素值的经量化的图像,其中,第二位深度小于第一位深度。图像预处理系统102可以将经量化的图像提供给图像处理系统106(例如,在图像处理系统106不能够处理具有第一位深度的像素的图像的情况下)。在一些实施例中,图像预处理系统102可以被配置为通过以下操作来对图像进行量化:(1)将非线性变换102A应用于该图像的多个像素强度,以获得经变换的图像;以及(2)将满射映射应用于经变换的输入图像的多个像素强度,以获得经量化的输入图像,其中,该满射映射将第一位深度的多个像素强度映射到第二位深度的多个像素强度。以下进一步描述了满射映射的示例。在数学中,可以将满射映射定义为满射函数,其图像等于其上域(codomain)的函数。在诸如以下进一步描述的那些实施例等某些实施例中,应用了非线性变换而没有进行后续量化。
在一些实施例中,图像预处理系统102可以被配置为利用满射映射将非线性变换应用于图像,使得经量化的图像中的多个低像素强度之间的区分度大于多个高像素强度之间的区分度。在应用非线性变换时,图像预处理系统102可以将第二位深度范围的更大部分专用于低像素强度而不是高像素强度,以保持多个低像素强度之间的区分度。例如,该系统可以对具有多个位深度为10的像素(例如,具有0至1023的像素强度)的输入图像进行量化,以通过以下操作获得具有多个位深度为5的像素(例如,具有0至31的像素强度)的经量化的图像:(1)将输入图像中的为0至200的像素强度映射到经量化的图像中的为0至25的像素强度;以及(2)将输入图像中的为201至1031的像素强度映射至经量化的图像中的为26至31的像素强度。在该示例中,与经量化的图像中为5的像素强度相比,经量化的图像中为30的像素强度可被映射到输入图像的更多像素强度上。因此,经量化的图像可以在输入图像中的多个低像素强度之间保持更多的区分度。
在一些实施例中,图像预处理系统102可以被配置为获取来自图像处理系统106的经处理的图像。例如,经处理的图像可以是由图像采集设备104提供给图像量化系统的图像的增强版本。图像预处理系统102可能之前已经接收了输入图像并且对该输入图像进行了量化以供图像处理系统106处理。图像预处理系统102可以被配置为:(1)对经处理的图像进行反量化;以及(2)将经反量化的图像传输到图像采集设备104。在一些实施例中,图像预处理系统102可以被配置为通过以下操作对经处理的图像进行反量化:(1)将经处理的图像的位深度从第一位深度增加至第二位深度;以及(2)将非线性变换应用于具有第二位深度的像素的图像。在一些实施例中,该非线性变换可以是应用于输入图像(例如,由图像采集设备104提供以供处理的输入图像)的非线性变换的逆变换。
在一些实施例中,图像预处理系统102可以被配置为将非线性变换102A应用于图像的多个像素强度,以获得经变换的图像,而不对该图像进行量化(例如,使得经非线性变换的图像用于以与原始图像相同的位深度进行图像处理)。在一些实施例中,图像预处理系统102可以被配置为将非线性变换102A应用于输入图像,而不减小该输入图像的位深度(例如,其中,图像处理系统106可以处理该位深度的输入图像)。在一些实施例中,图像预处理系统102可以被配置为通过将非线性变换102A应用于输入图像来减少在输入图像的多个像素强度上的噪声特性的变化。图像预处理系统102可以将具有较低噪声变化的经变换的图像传输到图像处理系统106。例如,图像预处理系统102可以将经变换的图像提供给图像处理系统106的处理器(例如,神经处理器),该处理器使用被训练以对噪声特性变化低于所有像素强度的一阈值的图像进行增强(例如,去噪)的机器学习模型(例如,神经网络)。例如,机器学习模型可以被训练以对噪声标准偏差小于所有像素强度的动态范围的1%、2%、3%、4%、5%、6%、7%、8%、9%或10%的图像进行增强。减少输入图像中的噪声特性的变化允许图像处理系统106使用具有较低复杂度的机器学习模型(例如,具有较少层的神经网络)。
在一些实施例中,图像预处理系统102可以被配置为将非线性变换应用于图像而不对图像进行反量化(例如,在图像处理系统106对该图像进行处理之前未对该图像进行量化的情况下)。在一些实施例中,该非线性变换可以是应用于输入图像(例如,由图像采集设备104提供以供处理的输入图像)的非线性变换的逆变换。例如,该系统可能之前已经将非线性变换102A应用于输入图像,并且已经将经变换的图像提供给图像处理系统106。然后,该系统可以获取来自图像处理系统106的该图像的经处理版本,并且将非线性变换应用于该经处理的图像(例如,通过应用非线性变换102A的逆变换)。
在一些实施例中,图像采集设备104可以是数码相机。数码相机可以是独立的数码相机,或者可以是嵌入在一设备(例如,智能电话)中的数码相机。在一些实施例中,图像采集设备104可以是可采集数字图像的任何设备。一些实施例不限于本文所描述的任何图像采集设备。
如图1所示出的,图像采集设备104包括图像传感器104和A/D转换器104B。在一些实施例中,图像传感器104A可以被配置为基于由图像传感器104A感测的电磁辐射(例如,光波)来生成信号。例如,成像传感器124可以是采集光的互补金属氧化物半导体(CMOS)硅传感器。传感器124可以具有多个像素,这些像素将入射光光子转换为电子,这些电子继而生成电信号。在另一个示例中,成像传感器124可以是电荷耦合器件(charge-coupleddevice,CCD)传感器。一些实施例不限于本文所描述的任何成像传感器。
如图1所示出的,图像采集设备104可以包括模数转换器(A/D转换器)104B。A/D转换器104B可以被配置为将从图像传感器104A接收到的模拟电信号转换为多个数字值。这些数字值可以是由图像采集设备104采集到的图像的像素强度。图像采集设备104可以将该图像传输到图像预处理系统102。在一些实施例中,图像采集设备104可以生成具有像素的数字图像,像素具有各种位深度中的任何位深度,该各种位深度例如但不限于,位深度为6、位深度为7、位深度为8、位深度为9、位深度为10、位深度为11、位深度为12、位深度为13、位深度为14、位深度为15、位深度为16、位深度为17、位深度为18、位深度为19、位深度为20、位深度为21、位深度为22、位深度为23和/或位深度为24。一些实施例不限于本文所描述的位深度。
在一些实施例中,图像处理系统106可以是用于处理图像的计算设备。在数个实施例中,图像处理系统106是具有诸如以下关于图12进一步描述的那些部件等部件的专用计算系统或子系统。图像处理系统106可以包括一个或多个处理器。在一些实施例中,图像处理系统106可以包括数字信号处理器(DSP)。在一些实施例中,图像处理系统106可以包括被配置为执行神经网络的神经处理器(例如,NPU)。在一些实施例中,图像处理系统106可以包括被配置为执行机器学习模型的处理器。一些实施例不限于本文所描述的一个或多个处理器。在一些实施例中,图像处理系统106可以包括对图像进行处理的一个或多个部件的管线。例如,图像处理系统106可以包括用于增强图像的处理器、以及用于修改图像的特性(例如,亮度和对比度)的一个或多个部件。在另一示例中,图像处理系统106可以包括智能电话设备的图像处理管线,该图像处理管线用于对由智能电话设备的数码相机采集到的图像进行处理。
在一些实施例中,图像处理系统106可能不能对具有高于某一位深度的像素的图像进行处理。例如,图像处理系统106的处理器的精度可以是8位,并因此该处理器不能处理具有位深度为10的像素的图像。在另一示例中,处理器可以被配置为在某一位深度(例如,1、2、3、4、5、6、7、8、9或10位)处执行计算。在一些实施例中,图像处理系统可以具有1位的精度、2位的精度、3位的精度、4位的精度、5位的精度、6位的精度、7位的精度、8位的精度、9位的精度或10位的精度。在一些实施例中,处理器的精度可以小于由图像采集设备104采集到的像素的位深度。因此,图像处理系统106可以被配置为接收来自图像预处理系统102的具有适当位深度的经量化的图像。
在一些实施例中,图像采集设备104、图像预处理系统102和图像处理系统106可以是单个设备的部件。100可以是包括图像预处理系统102、图像采集设备104和图像处理系统106的智能电话。例如,图像预处理系统102和/或图像处理系统106可以被结合到智能电话的图像处理管线中,以对用于智能电话的图像进行处理(例如,在存储图像和/或在智能电话上显示该图像之前)。在一些实施例中,图像预处理系统102、图像采集设备104和图像处理系统106可以是不同的设备。例如,图像预处理系统102和图像处理系统106可以是通过网络(例如,互连网)与图像采集设备104通信的基于云的计算机系统。在一些实施例中,图像预处理系统102可以是图像处理系统106的一部分。
将非线性变换应用于图像的过程
图2显示了根据本文所描述发明的一些实施例的、处理图像的示例过程200的流程图。过程200可以由任何合适的计算设备执行。例如,过程200可以由本文参考图1所描述的图像预处理系统102或系统100来执行。
处理200包括:系统获取(202)具有第一位深度的像素的输入图像。例如,该系统可以接收来自图像采集设备(例如,数码相机)的图像。在一些实施例中,图像采集设备可以被配置为以第一位深度采集图像。例如,图像采集设备的A/D转换器可以生成10位的像素强度值,以产生具有位深度为10的像素的数字图像。本文论述了示例位深度。
系统对输入图像进行量化(204),以获得具有第二位深度的像素的经量化的输入图像,其中,第二位深度小于第一位深度。例如,该系统可以对具有位深度为10的像素的输入图像进行量化,以生成具有位深度为5的像素的经量化的输入图像。在一些实施例中,系统可以被配置为通过以下操作对该输入图像进行量化:(1)将非线性变换应用于该输入图像的像素强度;以及(2)将经变换的像素强度映射到5位的像素值。例如,对于输入图像的每个10位的像素强度,系统可以将对数函数应用于该像素强度,并且将该对数函数的输出映射到5位的像素值。在一些实施例中,该非线性变换和映射可以被组合成单个函数。
系统提供(206)经量化的输入图像(例如,具有位深度为5的像素)以用于进一步处理。在一些实施例中,该系统可以被配置为将经量化的输入图像提供到图像处理管线以用于对图像进行增强。在一些实施例中,该系统可以被配置为将经量化的输入图像作为输入提供到处理器。处理器可以具有小于第一位深度的精度。经量化的输入图像可以具有小于或等于该处理器的精度的位深度。在一些实施例中,处理器可以被配置为执行机器学习模型以增强该输入图像。例如,处理器可以被配置为执行经训练的机器学习模型以增强采集到的图像。在另一示例中,处理器可以被配置为使用该输入图像作为用于训练机器学习模型的参数的训练数据。在一些实施例中,处理器可以是被配置为执行神经网络的神经处理器。在一些实施例中,神经网络可以被训练以增强图像。在一些实施例中,神经网络可以被训练以通过对图像进行去噪来增强图像。在一些实施例中,处理器可以是数字信号处理器(DSP)。一些实施例不限于本文所描述的处理器。
系统生成(208)具有第二位深度的像素的输出图像。在一些实施例中,该系统可以被配置为通过接收经处理的图像(例如,由图像处理系统106处理)来生成输出图像。例如,系统可以接收来自处理器(例如,NPU)的输出图像,系统将经量化的输入图像提供给了该处理器。在一些实施例中,输出图像可以是经量化的输入图像的经处理的版本。例如,输出图像可以是输入图像的增强(例如,去噪)版本。
系统对输出图像进行反量化(210),以生成具有第一位深度的像素的经反量化的输出图像。该系统可以被配置为生成具有与所获取(202)的输入图像的像素相同的位深度的经反量化的输出图像。例如,系统可能已经接收到(202)具有位深度为10的像素的图像,并生成(210)具有位深度为10的像素的经反量化的输出图像。在一些实施例中,系统可以被配置为通过将第二位深度的像素强度映射到第一位深度的像素强度来对输出图像进行反量化。在一些实施例中,系统可以被配置为通过将非线性变换(例如,用于对输入图像进行量化的变换的逆变换)应用于第二位深度的像素强度,来将第二位深度的像素强度映射到第一位深度的像素强度。
在一些实施例中,系统可以被配置为将经反量化的输出图像提供给图像采集设备。在一些实施例中,系统可以被配置为存储经反量化的输出图像(例如,作为对所获取(202)的输入图像的增强)。在一些实施例中,系统可以被配置为使用输出图像来训练机器学习模型。例如,系统可以将经反量化的输出图像与目标输出图像进行比较,并且基于目标输出图像与经反量化的输出图像之间的差异来调整一个或多个机器学习模型参数。
对图像进行量化
图3显示了根据本发明的一些实施例的对图像进行量化的示例过程300的流程图。过程300可以由任何合适的计算设备执行。例如,过程300可以由本文参考图1所描述的图像预处理系统102或系统100来执行。过程300可以作为本文参考图2所描述的过程200的一部分来执行。例如,过程300可以在过程200的量化(204)处执行。
过程300包括:获取(302)第一位深度的图像。例如,该系统可以获取来自图像采集设备(例如,数码相机)的具有第一位深度的像素的图像。在一些实施例中,该系统可以获取(202)如在以上参考图2进一步描述的过程200中所描述的图像。
接下来,系统将非线性变换应用(304)于该图像的像素强度。在一些实施例中,系统可以被配置为通过将像素强度作为输入值提供给非线性函数来应用非线性变换,以获得对应的输出。例如,系统可以将像素强度作为输入值提供给对数函数,以获得对应的输出值。在另一示例中,系统可以将像素强度作为输入值提供给指数函数,以获得对应的输出值。在一些实施例中,从非线性函数获得的输出可以处于一范围内。例如,非线性函数可以提供0和1之间的输出。一些实施例可以使用与本文所描述的那些非线性函数不同的非线性函数。一些实施例不限于非线性函数的类型。以下参考图9和图10描述了根据本发明的实施例的可使用的示例非线性函数,尽管本领域技术人员将认识到可以使用适于特定应用的各种非线性函数中的任何非线性函数。
在一些实施例中,系统可以被配置为通过将像素强度作为输入值提供给分段函数来应用非线性变换。在一些实施例中,该分段函数的第一部分可以是非线性的,而该分段函数的第二部分可以是线性的。例如,(1)对于0和20之间的像素强度,该函数可以是10位的像素强度的线性函数;以及(2)对于大于20的像素强度,该函数可以是非线性函数(例如,对数函数或指数函数)。
过程300包括减小(306)图像的位深度,以获得具有第二位深度的像素的经量化的图像,其中,第二位深度小于第一位深度。在一些实施例中,该系统可以被配置为通过将量化函数应用于、通过将变换函数应用于像素强度而获得(304)的值来减小图像的位深度,以获得经量化的图像。在一些实施例中,量化函数可以输出针对对应输入值的5位的像素强度值。例如,系统可以可能已经通过将非线性变换应用于图像的10位的像素强度获得0和1之间的值,并且将所获得的值输入到量化函数中,以获得5位的像素强度。以下参考图9和图10描述了根据本发明的实施例可使用的示例量化函数。
在一些实施例中,系统可以被配置为使用第二位深度的像素强度(例如,使用量化函数而获得)来生成新的图像。因此,该新的图像将具有第二位深度的像素。在一些实施例中,系统可以被配置为通过使用第二位深度的像素强度替换第一位深度的像素强度来修改获得(302)的图像。
在一些实施例中,系统可以被配置为将经量化的图像作为输入提供给图像处理系统(例如,DSP或神经处理器)。如以上参考图2所进一步描述的,系统可以提供(206)经量化的输入图像。
对图像进行反量化的过程
图4显示了根据本发明的一些实施例的对图像进行反量化的示例过程400的流程图。过程400可以由任何合适的计算设备执行。例如,过程400可以由以上参考图1所描述的图像预处理系统102或系统100来执行。过程400可以作为以上参考图2所描述的过程200的一部分来执行。例如,过程400可以在过程200的获得(208)处执行。
过程400包括:系统获取(402)具有第一位深度(例如,5位)的像素的图像。例如,系统可以接收来自图像处理系统(例如,DSP或神经处理器)的图像。在一些实施例中,系统可以被配置为接收提供给图像处理系统的图像的增强版本(例如,在过程200的206处)。例如,图像处理系统可能已经接收到经量化的图像(例如,通过执行本文参考图3所描述的过程300),以及已经对该图像进行去噪,以生成图像。系统可以接收来自图像处理系统的所生成的图像。
接下来,系统将所获取(402)的图像的像素强度映射(404)到非线性变换的输出值。例如,在对输入图像的量化期间,系统可能已经应用了非线性函数以获得0和1之间的归一化值。在该示例中,系统可以将图像的像素强度映射为0和1之间的归一化值。在一些实施例中,系统可以被配置为使用用于量化的映射。例如,系统可以使用过程300中所使用的量化函数的逆函数。
系统将所获取(402)的图像的位深度增加(406)到大于第一位深度的第二位深度,以获得具有第二位深度的像素的经反量化的图像。在一些实施例中,系统可以被配置为通过使用非线性变换(例如,在对图像进行量化期间使用的)的逆变换来增加图像的位深度,以获得第二位深度的像素强度。例如,系统可以将所获取(404)的输出值作为对数函数(例如,图9中所示的)或指数函数(例如,图10中所示的)的逆函数的输入值使用,以获得第二深度的像素强度。
在一些实施例中,系统可以被配置为使用第二位深度的像素强度(例如,使用逆非线性变换而获得的)来生成新的图像。因此,该新的图像将具有第二位深度的像素。在一些实施例中,系统可以被配置为通过使用第二位深度的像素强度替换第一位深度的像素强度来修改所获取(402)的图像。
在一些实施例中,系统可以被配置为将经反量化的图像作为输出提供给设备(例如,智能电话)。例如,经反量化的图像可以是作为过程200中的输入而提供的经增强(例如,经去噪)的图像。系统可以将经增强的图像作为输出提供,以用于在设备显示、存储,或用于另一功能。
增强图像的方法
图5示出了根据本发明的一些实施例的增强图像的示例过程500的流程图。过程500可以由任何合适的计算设备执行。例如,过程500可以由本文参考图1所描述的图像预处理系统102和/或图像处理系统106来执行。在另一示例中,过程500可以由诸如‘217公开文本(附录A)的图1A和图1B中的图像增强系统111等系统来执行。
过程500包括:系统获取(502)待增强的输入图像。在一些实施例中,系统可以被配置为获取输入以对图像进行降噪。例如,该输入图像可能是在低光条件下拍摄的,该图像具有低信噪比(signal-to-noise ratio,SNR)。系统可以接收作为输入的该图像以对该图像进行去噪,从而生成更高质量的图像。在一些实施例中,系统可以被配置为接收来自图像采集设备(例如,相机)的输入图像。
系统将非线性变换应用(504)于该输入图像的像素强度,以获得经变换的输入图像。在一些实施例中,该系统可以被配置为应用非线性变换而不对图像进行量化。在一些实施例中,系统可以被配置为除了对图像进行量化之外,还应用非线性变换(例如,如本文参考图4所描述的)。在一些实施例中,系统可以被配置为通过将该输入图像的像素强度输入到非线性函数中来将非线性变换应用于像素强度,以获得对应的输出。例如,系统可以将像素强度输入到对数函数中(例如,如图9的曲线图902所示出的)。在另一示例中,系统可以将像素强度输入到指数函数中(例如,如图10的曲线图1002所示出的)。本领域的技术人员将认识到,根据本发明的实施例可以使用适于特定应用的各种非线性变换中的任何非线性变换。
在一些实施例中,系统可以被配置为使用通过应用线性变换而获得的输出来生成经变换的图像。在一些实施例中,系统可以被配置为生成新的图像,并将该新的图像的像素强度设置为通过应用线性变换而获得的值。例如,系统可以使用通过将输入图像的每个像素强度作为输入值提供给非线性函数而获得作为经变换的图像中的相应像素的像素强度的输出。在一些实施例中,系统可以被配置为将输入图像的像素强度修改为通过应用线性变换而获得的值。
系统生成(506)待提供给经训练的机器学习模型的输入。在一些实施例中,经训练的机器学习模型可以被结合在诸如参考图1A和图1B所描述的机器学习系统112等系统中。在一些实施例中,系统可以被配置为如参考图8所描述的将该图像作为输入提供(804)给经训练的机器学习模型。
在一些实施例中,系统可以被配置为通过使用经变换的输入图像作为输入,来生成待提供给经训练的机器学习模型的输入。例如,经变换的图像的像素强度可以被用作经训练的机器学习模型的输入。在一些实施例中,经训练的机器学习模型可以是神经网络。系统可以被配置为使用经变换的图像的像素强度作为神经网络的输入。在一些实施例中,系统可以被配置为对像素强度值进行预处理,以将其作为输入提供给神经网络。例如,系统可以对像素强度进行归一化(例如,归一化为处于0和1之间)。在另一示例中,系统可以将图像的多个像素强度扁平化(flatten)为其单个矢量。
在一些实施例中,经训练的机器学习模型可以被训练为对图像进行去噪。例如,经训练的机器学习模型可以被训练为提高在低光条件下拍摄的图像的质量,以生成更高质量的图像。在一些实施例中,经训练的机器学习模型可能已经通过执行以下过程获取:参考‘217公开文本(附录A)的图2A所描述的过程200、参考‘217公开文本(附录A)的图2B所描述的过程210、参考‘217公开文本(附录A)的图2C所描述的过程230、参考‘217公开文本(附录A)的图3A所描述的过程300、参考‘217公开文本(附录A)的图4所描述的过程400、参考‘217公开文本(附录A)的图5所描述的过程500、和/或参考‘217公开文本(附录A)的图7所描述的过程700。
接下来,过程500进行到框508,其中,系统将所生成的输入提供给经训练的机器学习模型,以获得经增强的输出图像。在一些实施例中,系统提供如‘217公开文本(附录A)的图8的框806所描述的图像。在一些实施例中,该系统可以被配置为响应于提供了输入,而接收经增强的输出图像。例如,系统可以响应于提供了输入,而接收来自机器学习模型的经去噪的图像。在一些实施例中,系统可以被配置为获取待反量化的经增强的图像。该系统可以如以上参考图2和图4所描述的对图像进行反量化。
在一些实施例中,系统可以被配置为输出经增强的图像。例如,系统可以在设备上显示经增强的图像、存储该图像、和/或使用该图像以用于训练机器学习模型。
图11显示了示出通过将非线性变换应用于图像而减小所有像素强度上的噪声标准偏差方差的曲线图。如图11所示,曲线图1102显示了在线性域中与像素强度相对的噪声标准偏差(即,不应用非线性变换)。曲线图1103显示了可应用于图像的像素强度以获得经变换的图像(例如,如参考图5在框504处所描述的)的非线性变换。如图11所示,非线性变换包括采用像素强度作为输入值、且输出0和1之间的值的非线性指数函数。曲线图1104显示了在将曲线1103的非线性变换应用于图像的像素强度(例如,如在本文中参考图5所论述的过程500的框504处所描述的)之后、与像素强度相对的噪声标准偏差。如曲线图1104所示,经变换的像素强度的噪声标准偏差相对于经变换的输入图像中的像素强度变化较小。与图像的像素强度相对的噪声标准偏差的降低的方差降低了用于图像增强(例如,去噪)的机器学习模型所需的复杂度。例如,可以使用具有较少层数和权重数量的神经网络来进行增强。机器学习模型的较低复杂性允许计算设备(例如,处理器)更有效地增强图像(例如,使用更少的计算过程、更少的存储器和/或更低的功耗)。
用于训练机器学习模型以增强图像的过程
图6显示了根据一些实施例的用于训练机器学习模型的示例性系统的框图。如图6所示,图像预处理系统602获取训练图像606,并对训练图像进行非线性变换。然后,在训练阶段608期间,经变换的训练图像被用来训练机器学习模型604,以获得经训练的机器学习模型610。在一些实施例中,图像预处理系统可以被配置为对训练图像进行非线性变换,如本文参考图1至图3所描述的。在一些实施例中,系统602可以被配置为将非线性变换应用于训练图像,并对训练图像进行量化(例如,以如参考图1至图3所描述的降低位深度)。在一些实施例中,系统602可以被配置为将非线性变换应用于训练图像而不对训练图像进行量化(例如,如参考图4所描述的),使得不修改训练图像的位深度。
在一些实施例中,可以在训练阶段608中对机器学习模型604(例如,神经网络)的参数604A进行训练,以获得具有经学习的参数610A(例如,神经网络的权重值)的经训练的机器学习模型610。在一些实施例中,经训练的机器学习模型610可以是‘217公开文本(附录A)的图1A中的机器学习系统112。在一些实施例中,训练阶段608可以是‘217公开文本(附录A)的图1A中的训练阶段110。在一些实施例中,可以在训练阶段608中通过执行以下过程来对机器学习模型604进行训练:参考‘217公开文本(附录A)的图2A所描述的过程200、参考‘217公开文本(附录A)的图2B所描述的过程210、参考‘217公开文本(附录A)的图2C所描述的过程230、参考‘217公开文本(附录A)的图3A所描述的过程300、参考‘217公开文本(附录A)的图4所描述的过程400、参考‘217公开文本(附录A)的图5所描述的过程500、和/或参考‘217公开文本(附录A)的图7所描述的过程700。
在一些实施例中,由图像量化系统生成的经量化的训练图像可以用作‘217公开文本(附录A)的图1A中的训练图像104。在一些实施例中,机器学习模型604可以用作‘217公开文本(附录A)的图1A中的机器学习系统102。如‘217公开文本(附录A)的图1A所示,图像增强系统111可以使用机器学习系统112(例如,使用图像预处理系统602生成的经量化的图像而被训练的机器学习系统)来增强来自图像采集设备114A和114B的图像,以生成一个或多个经增强的图像118。
图7显示了根据本发明一些实施例的对用于图像增强的机器学习模型进行训练的示例过程700的流程图。过程700可以由任何合适的计算设备执行。例如,过程700可以由本文参考图6所描述的图像预处理系统602来执行。在另一示例中,过程700可以由本文参考图1所描述的图像预处理系统102和/或图像处理系统106来执行。
过程700包括:系统获取(702)多幅训练图像。在一些实施例中,系统可以被配置为获取来自单个图像采集设备的多幅训练图像。在一些实施例中,系统可以被配置为获取来自多个采集设备的训练图像。在一些实施例中,这些训练图像可以如在‘217公开文本(附录A)中所描述的那样生成。在一些实施例中,这些训练图像可以包括多幅输入图像和对应的目标输出图像。在一些实施例中,这些训练图像可以仅包括多幅输入图像而不包括对应的目标输出图像。
接下来,过程700进行到框704,其中,系统对图像执行非线性变换以获得经变换的训练图像。在一些实施例中,该系统可以被配置为结合非线性变换对图像进行量化,以获得具有第二位深度的像素的经量化的训练图像,其中,第二位深度小于第一位深度。在一些实施例中,系统可以被配置为如本文参考图1至图4所描述的应用非线性量化。在一些实施例中,系统可以被配置为对用于训练机器学习模型的训练图像进行量化,该机器学习模型待由可能不能处理第一位深度的图像的图像处理系统(例如,NPU或DSP)执行。例如,第一位深度可以是10位,并且待执行机器学习模型的神经处理器可以具有8位的精度。
系统使用经变换的训练图像来训练(706)机器学习模型。在一些实施例中,系统可以被配置为使用诸如在‘217公开文本(附录A)中所描述的那些训练技术等训练技术来训练机器学习模型。例如,系统可以通过执行以下过程来训练如参考‘217公开文本(附录A)的图1A和图1B所描述的机器学习模型:参考‘217公开文本(附录A)的图2A所描述的过程200、参考‘217公开文本(附录A)的图2B所描述的过程210、参考‘217公开文本(附录A)的图2C所描述的过程230、参考‘217公开文本(附录A)的图3A所描述的过程300、参考‘217公开文本(附录A)的图4所描述的过程400、参考‘217公开文本(附录A)的图5所描述的过程500、和/或参考‘217公开文本(附录A)的图7所描述的过程700。
系统使用(708)经训练的机器学习模型来用于图像增强。在一些实施例中,系统可以被配置为使用经训练的机器学习模型来对图像进行去噪。在一些实施例中,如以上参考图5所进一步描述的,系统可以被配置为使用经训练的机器学习模型来增强图像。在一些实施例中,如参考‘217公开文本(附录A)的图1A和图1B、或‘217公开文本(附录A)的图8所描述的,系统可以被配置为使用经训练的机器学习模型来进行增强。
尽管以上参考图1至图7描述了特定过程,但本领域的技术人员将认识到,根据本发明的实施例,可以使用各种过程中的任何过程。
示例非线性变换
根据本发明的实施例,可以使用不同的非线性变换或变换式。图8显示了示出线性量化的示例的一组曲线图。如图8所示,曲线图802示出了线性函数,其中,将10位的像素强度输入到该函数中,以输出0和1之间的归一化值。曲线图804示出了归一化到0和1之间的值的像素强度到对应的5位的像素强度的线性量化。曲线图806示出了曲线图802和804中的函数的组合,该组合显示了多个10位的像素强度可如何映射到多个5位的像素强度。如曲线图806所示,多个10位的像素强度均匀地分布在多个5位的像素强度上。
图9显示了示出根据本发明的一些实施例的使用对数函数的非线性量化的一组曲线图。曲线图902示出了非线性对数函数,该非线性对数函数接收10位的像素强度作为输入值,并输出0和1之间的对应值。曲线图904示出了归一化到0和1之间的值的像素强度到对应的5位的像素强度的线性量化。曲线图906示出了由结合曲线图902的非线性映射与曲线图904的线性量化而得到的、10位的像素强度到5位的像素强度的非线性量化。与图8的曲线图806形成对比,曲线图906显示了10位的像素强度和5位的像素强度之间的非线性映射。如曲线图906所示,非线性量化对于较低的像素强度比对于较高的像素强度保持更多的区分度。曲线图908示出了经量化的10位的像素强度如何分布在10位的值中。如曲线图908所示,经量化的10位的像素强度和10位的值之间的关系更加线性,并且对于较低的像素强度具有更多的粒度,以保持多个较低的像素强度之间的区分度。
图10显示了示出根据一些实施例的使用指数函数的非线性量化的一组曲线图。曲线图1002示出了非线性指数函数,该非线性指数函数接收10位的像素强度作为输入值,并使用对数函数输出0和1之间的对应值。曲线图1004示出了归一化到0和1之间的像素强度到对应的5位的像素强度的线性量化。曲线图1006示出了由结合曲线图1002的非线性函数与曲线图1004的线性量化而得到的10位的像素强度到5位的像素强度的非线性量化。与图8的曲线图806形成对比,曲线图1006显示了10位的像素强度和5位的像素强度之间的非线性映射。如曲线图1006所示,非线性量化对于较低的像素强度比对于较高的像素强度保持更多的区分度。曲线图1008示出了经量化的10位的像素强度如何分布在10位的值中。如曲线图1008所示,对于较低的像素强度,经量化的10位的像素强度和10位的值之间的关系更加线性,以保持多个较低的像素强度之间的区分度。
计算系统
系统100、102、104和/或106可以使用硬件在一个或多个计算系统或分布式计算机系统中实现,该硬件可以包括处理器、易失性和/或非易失性存储器、和/或其他部件。图12示出了可实现本发明实施例的各个方面的特别配置的分布式计算机系统1200的框图。如图所示,分布式计算机系统1200包括交换信息的一个或多个计算机系统。更具体地,分布式计算机系统1200包括计算机系统1202、1204和1206。如图所示,计算机系统1202、1204和1206通过通信网络1208互连,并且可以通过通信网络1208交换数据。网络1208可以包括计算机系统可以通过其交换数据的任何通信网络。为了使用网络1208来交换数据,计算机系统1202、1204和1206以及网络1208可以使用各种方法、协议和标准,这些方法、协议和标准包括光纤通道、令牌环(Token Ring)、以太网、无线以太网、蓝牙、IP(网际互连协议)、IPv6、TCP/IP(传输控制协议/网际互连协议)、UDP(用户数据报协议)、DTN(延迟容忍网络)、HTTP(超文本传输协议)、FTP(文本传输协议)、SNMP(简单网络管理协议)、SMS(短消息服务)、MMS(微软媒体服务器协议)、SS6、JSON、SOAP(简单对象访问协议)、CORBA(公共对象请求代理体系结构)、REST(表述性状态传递)、和Web服务等。为了确保数据传输是安全的,计算机系统1202、1204和1206可以使用各种安全措施经由网络1208来传输数据,这些安全措施例如包括SSL(安全套接层)技术或VPN(虚拟专用网络)技术。尽管分布式计算机系统1200示出了三个联网的计算机系统,但分布式计算机系统1200不限于此,并且可以包括使用任何介质和通信协议联网的任何数量的计算机系统和计算设备。
如图12所示出的,计算机系统1202包括处理器1210、存储器1212、互连元件1214、接口1216和数据存储元件1218。为了实现本文所公开的多个方面、多种功能和多个过程中的至少一些,处理器1210执行产生经操纵的数据的一系列指令。处理器1210可以是任何类型的处理器、多处理器(multiprocessor)或控制器。示例处理器可以包括诸如英特尔至强(Intel Xeon)处理器、安腾(Itanium)处理器、酷睿(Core)处理器、赛扬(Celeron)处理器或奔腾(Pentium)处理器等商业可用处理器;超威半导体公司(AMD)的皓龙(Opteron)处理器;苹果公司(Apple)的A10或A5处理器;Sun公司的UltraSPARC处理器;国际商业机器公司(IBM)的Power5+处理器;IBM的大型机芯片;或量子计算机。处理器1210通过互连元件1214连接到其他系统部件,这些其他系统部件包括一个或多个存储器设备1212。
存储器1212在计算机系统1202运行期间存储程序(例如,被编码为可由处理器1210执行的指令序列)和数据。因此,存储器1212可以是性能相对较高的易失性的随机存取存储器,例如,动态随机存取存储器(dynamic random access memory,DRAM)或静态存储器(static memory,SRAM)。然而,存储器1212可以包括用于存储数据的任何设备,这些设备例如为磁盘驱动器或其他非易失性存储设备。各种示例可以将存储器1212组织成特定的、且在一些情况下独特的结构,以执行本文所公开的多种功能。这些数据结构可以被设计大小且被组织为存储特定数据的值和数据类型。
计算机系统1202的多个部件通过诸如互连机构1214等互连元件耦接。互连元件1214可以包括多个系统部件之间的任何通信耦合,例如符号专用或标准计算总线技术的一个或多个物理总线,这些专用或标准计算总线技术例如为集成开发环境(IDE)、小型计算机系统接口(SCSI)、外设组件互连标准(PCI)和无限带宽(InfiniBand)。互连元件1214使信息能够在计算机系统1202的多个系统部件之间交换,这些信息包括指令和数据。
计算机系统1202还包括一个或多个接口设备1216,该一个或多个接口设备例如为输入设备、输出设备、和组合输入/输出设备。接口设备可以接收输入或提供输出。更具体地,输出设备可以呈现用于外部呈现的信息。输入设备可以接受来自外部源的信息。接口设备的示例包括键盘、鼠标设备、轨迹球、传声器、触摸屏、打印设备、显示屏、扬声器、网络接口卡等。接口设备允许计算机系统1202与多个外部实体交换信息、以及与这些外部实体通信,这些外部实体例如为用户和其他系统。
数据存储元件1218包括计算机可读和可写的非易失性或非暂态数据存储介质,在该计算机可读和可写非易失性或非暂态数据存储介质中,存储了限定处理器1210所执行的程序或其它对象的多个指令。数据存储元件1218还可以包括记录在该介质上或该介质中的、在执行程序期间由处理器1210处理的信息。更具体地,该信息可以存储在被专门配置为节省存储空间或提高数据交换性能的一个或多个数据结构中。这些指令可以被永久存储为编码信号,且这些指令可以使处理器1210执行本文所描述的多种功能中的任何功能。该介质例如可以是光盘、磁盘或闪存等。在运行中,处理器1210或某种其他控制器使得数据从该非易失性记录介质被读取到另一存储器(例如,存储器1212)中,与包括在数据存储元件1218中的该存储介质相比,该另一存储器允许处理器1210更快地访问信息。该另一存储器可以位于数据存储元件1218中或存储器1212中,然而,处理器1210操纵该另一存储器内的数据,然后在处理完成之后将该数据复制到与数据存储元件1218相关联的该存储介质中。各种部件可以管理该存储介质和其他存储器元件之间的数据移动,并且示例不限于特定数据管理部件。此外,示例不限于特定存储器系统或特定数据存储系统。
尽管通过示例的方式将计算机系统1202显示为可在其上实践各个方面和各种功能的一种计算机系统,但各个方面和各种功能不限于在如图12所示的计算机系统1202上实现。可以在具有与图12所示的架构或部件不同的架构或部件的一个或多个计算机上实践各个方面和各种功能。例如,计算机系统1202可以包括专门编程的专用硬件,该专用硬件例如为,被定制为执行本文所公开的特定操作的专用集成电路(application-specificintegrated circuit,ASIC)。而另一示例可以使用数个通用计算设备和数个专用计算设备的网格(grid)来执行相同的功能,该数个通用计算设备使用摩托罗拉(Motorola)的PowerPC处理器运行MAC OS系统X,该数个专用计算设备运行专有硬件和操作系统。
计算机系统1202可以是包括一操作系统的计算机系统,该操作系统管理包括在计算机系统1202中的多个硬件元件的至少一部分。在一些示例中,处理器或控制器(例如,处理器1210)执行操作系统。可被执行的特定操作系统的示例包括:基于Windows的操作系统、可以从苹果计算机(Apple Computer)获取的MAC OS系统X操作系统或iOS操作系统、许多基于Linux的操作系统分布中的一个、可从甲骨文(Oracle)公司获得的Solaris操作系统、或可从各种源获取的UNIX操作系统;该基于Windows的操作系统例如为可从微软公司(Microsoft Corporation)获取的Windows NT操作系统、Windows 2000(Windows ME)操作系统、Windows XP操作系统、Windows Vista操作系统、或Windows6、8或6操作系统;该基于Linux的操作系统分布例如为,可从红帽(Red Hat)公司获取的企业Linux操作系统。可以使用许多其他操作系统,并且示例不限于任何特定操作系统。
处理器1210和操作系统一起限定了用高级编程语言编写多个应用程序的计算机平台。这些组件应用程序可以是可执行的中间字节码或解释型代码,该可执行的中间字节码或解释型代码使用通信协议(例如,TCP/IP)、通过通信网络(例如,互联网)进行通信。类似地,可以使用面向对象的编程语言来实现多个方面,该面向对象编程语言例如为,.Net、Java、C++、Ada、C#(C-Sharp)、Python或JavaScript。也可以使用其它面向对象的编程语言。替代地,可以使用功能性、脚本或逻辑编程语言。
另外,可以在非编程环境中实现各个方面和各种功能。例如,当在浏览器程序的窗口中查看以超文本标记语言(HTML)、可扩展标记语言(XML)或其它格式创建的文档时,这些文档可以呈现图形用户界面的各个方面或执行其它功能。此外,各个示例可以被实现为多个编程元件、或多个非编程元件、或它们的任意组合。例如,可以使用HTML来实现网页,同时使用C++来编写从网页内调用的数据对象。因此,这些示例不限于特定的编程语言,并且可以使用任何合适的编程语言。因此,本文所公开的功能部件可以包括被配置为执行本文所描述的多种功能的多种元件(例如,专用硬件、可执行代码、数据结构或对象)。
在一些示例中,本文所公开的多个部件可以读取影响这些部件所执行的功能的参数。这些参数可以被物理存储在任何形式的合适存储器中,该合适存储器包括易失性存储器(例如,随机存取存储器(RAM))或非易失性存储器(例如,磁性硬盘驱动器(magnetichard drive))。此外,这些参数可以被逻辑存储在专有数据结构(例如,由用户空间应用程序限定的数据库或文件)中,或存储在共享数据结构(例如,由操作系统限定的应用程序注册表)中。另外,一些示例提供了系统和用户界面这两者,该系统和用户界面允许外部实体修改这些参数并由此配置部件的行为。
基于前述公开内容,对于本领域的普通技术人员来说显而易见的是,本文所公开的实施例不限于特定的计算机系统平台、处理器、操作系统、网络、或通信协议。此外,应显而易见的是,本文所公开的实施例不限于特定的架构。
应认识到的是,在应用中,本文所描述的多个方法和多个装置的实施例不限于在以下描述中阐述的或在附图中示出的多个部件的构造和布置的细节。这些方法和装置能够在其它实施例中实现,并且能够以各种方式实践或能够以各种方式执行。本文出于说明的目的提供了特定实施方式的示例,且不旨在对这些特定实施方式的示例进行限制。特别地,结合任何一个或多个实施例而描述的多个动作、多个元件和多个特征不旨在被排除在任何其他实施例中的类似作用之外。
术语“大约”、“大体上”和“约”在一些实施例中可以用于表示在目标值的±20%内,在一些实施例中可以用于表示在目标值的±10%内,在一些实施例中可以用于表示在目标值的±5%内,并且在一些实施例中可以用于表示在目标值的±2%内。术语“大约”和“约”可以包括目标值。
因此,已经描述了本发明的至少一个实施例的数个方面,本领域技术人员应认识到,将容易地产生各种变化、修改和改进。这些变化、修改和改进旨在是本公开的一部分,并且旨在落入本发明的精神和范围内。因此,前述的描述和附图仅作为示例。
附录A
/>
/>
/>
/>
/>
/>
/>
/>
/>
/>
/>
/>
/>
/>
用于图像增强的人工智能技术
相关申请
本申请援引35 U.S.C.§119(e)要求于2018年8月7日提交的标题为“用于图像增强的人工智能技术”的美国临时申请序列No.62/715,732的优先权,该申请通过引用整体并入本文。
技术领域
本文描述的技术一般而言涉及用于使用人工智能(AI)技术来增强图像的方法和装置。
背景技术
图像(例如,数字图像、视频帧等)可以被许多不同类型的设备捕获。例如,可以使用视频记录设备、数码相机、图像传感器、医学成像设备、电磁场感测和/或声学监视设备来捕获图像。由于捕获图像的环境或条件,捕获的图像可以具有差质量。例如,在黑暗环境中和/或在差照明条件下捕获的图像可能质量差,使得图像的大部分在很大程度上是黑暗和/或嘈杂的(noisy)。由于诸如使用低成本和/或低质量成像传感器的设备之类的设备的物理约束,捕获的图像也可能具有差的质量。
发明内容
根据各个方面,提供了用于增强质量差的图像(诸如在弱光条件下捕获的图像和/或嘈杂的图像)的系统和方法。由成像设备在弱光条件下捕获的图像会使得捕获的图像具有例如差的对比度、模糊、噪声伪影(noise artifact)和/或否则不能在图像中清楚地显示一个或多个物体。本文所述的技术使用人工智能(AI)方法来增强这些和其它类型的图像以产生清晰的图像。
一些实施例涉及用于训练机器学习系统以增强图像的系统。该系统包括处理器和存储处理器可执行指令的非暂态计算机可读存储介质,该处理器可执行指令在由处理器执行时使处理器执行:获得用于训练机器学习系统的训练图像的集合,该获得包括:获得场景的输入图像;并且通过对场景的多个图像求平均来获得场景的目标输出图像,其中目标输出图像表示输入图像的目标增强;以及使用训练图像的集合来训练机器学习系统。
在一些示例中,该系统还被配置为获得输入图像的集合,其中输入图像的集合中的每个输入图像都具有对应的场景;获得目标输出图像的集合,包括针对输入图像的集合中的每个输入图像通过对对应场景的多个图像求平均来获得对应场景的目标输出图像;以及使用输入图像的集合和目标输出图像的集合来训练机器学习系统。
在一些示例中,获得输入图像包括以高于预定ISO阈值的ISO设置来获得输入图像。
在一些示例中,ISO阈值选自大约1500至500000的ISO范围。
在一些示例中,对多个图像求平均包括跨多个图像中的每个像素位置计算算术平均。
在一些示例中,获得训练图像的集合包括对于多个图像捕获设置获得训练图像的集合。
在一些示例中,获得训练图像的集合包括获得一个或多个图像,这一个或多个图像捕获用于捕获图像的输入集合和图像的输出集合的成像设备的噪声。
在一些示例中,指令还使处理器执行获得训练图像的第二集合并使用训练图像的第二集合对机器学习系统进行再训练。
在一些示例中,指令还使处理器从相应的成像设备获得训练图像的集合,并基于来自相应设备的图像的第一训练集合来训练机器学习系统以优化学习系统机器对相应设备的增强。
在一些示例中,机器学习系统包括神经网络。
在一些示例中,训练机器学习系统包括最小化多个损失函数的线性组合。
在一些示例中,训练机器学习系统包括针对在人类可感知的频率范围内的性能来优化机器学习系统。
在一些示例中,训练机器学习系统包括获得由机器学习系统生成的与相应输入图像对应的增强的图像;获得与相应输入图像对应的目标输出图像的集合的相应目标输出图像;将增强的图像和目标输出图像传递通过带通过滤器;以及基于经过滤的增强的图像和经过滤的目标输出图像来训练机器学习系统。
在一些示例中,训练机器学习系统包括获得与用于捕获训练图像的集合的成像设备相关联的噪声图像,其中该噪声图像捕获由成像设备生成的噪声;以及将该噪声图像包括为对机器学习系统的输入。
在一些示例中,获得要用于训练机器学习系统的训练图像的集合包括使用中性密度过滤器获得输入图像的集合,其中输入图像的集合中的每个图像都具有对应的场景;获得目标输出图像的集合,包括针对输入图像的集合中的每个输入图像获得在没有中性密度过滤器的情况下捕获的对应场景的目标输出图像,其中目标输出图像表示图像的目标增强。
一些实施例涉及一种用于自动增强图像的系统。该系统包括处理器以及由该处理器实现的机器学习系统,该机器学习系统被配置为接收输入图像,并基于该输入图像生成包括输入图像的至少一部分的输出图像,该输出图像比输入图像更明亮。基于训练图像的集合来训练机器学习系统,该训练图像包括场景的输入图像和场景的目标输出图像,其中目标图像是通过对场景的多个图像求平均而获得的,其中目标输出图像表示输入图像的目标增强。
在一些示例中,用中性密度过滤器捕获训练图像的集合的一个或多个输入图像,并且在不使用中性密度过滤器的情况下捕获训练图像的集合的一个或多个输出图像。
在一些示例中,处理器被配置为接收第一图像,将第一图像划分为第一多个图像部分,将第一多个图像部分输入到机器学习系统中,从机器学习系统接收第二多个图像部分,并且组合第二多个图像以生成输出图像。
在一些示例中,机器学习系统被配置为针对第一多个图像部分中的相应一个图像部分裁剪相应图像部分的一部分,其中相应图像部分的该部分包括相应图像部分的像素的子集。
在一些示例中,处理器被配置为确定第一多个部分的尺寸,并将第一图像划分为第一多个部分,其中第一多个部分中的每个部分具有该尺寸。
在一些示例中,机器学习系统包括神经网络,该神经网络包括卷积神经网络或紧密连接的卷积神经网络。
在一些示例中,处理器被配置为获得第一图像,量化第一图像以获得量化的图像,将量化的图像输入到机器学习系统中,并且从机器学习系统接收相应的输出图像。
一些实施例涉及一种用于训练机器学习系统以增强图像的计算机化方法。该方法包括获得用于训练机器学习系统的训练图像的集合,该获得包括获得场景的输入图像,并且通过对场景的多个图像求平均来获得场景的目标输出图像,其中目标输出图像表示输入图像的目标增强。该方法包括使用训练图像的集合来训练机器学习系统。
一些实施例涉及一种训练用于增强图像的机器学习模型的方法。该方法包括使用至少一个计算机硬件处理器来执行访问所显示的视频帧的目标图像,其中目标图像表示机器学习模型的目标输出;访问所显示的视频帧的输入图像,其中输入图像与目标图像对应并表示对机器学习模型的输入;并且使用目标图像和与目标图像对应的输入图像来训练机器学习模型,以获得经训练的机器学习模型。
在一些示例中,该方法还包括使用成像设备使用第一曝光时间来捕获所显示的视频帧的目标图像;并且使用成像设备使用第二曝光时间来捕获所显示的视频帧的输入图像,其中第二曝光时间小于第一曝光时间。
在一些实施例中,该方法还包括使用成像设备用中性密度过滤器捕获所显示的视频帧的输入图像,并且使用成像设备在没有中性密度过滤器的情况下捕获所显示的视频帧的目标图像。
在一些示例中,该方法包括使用成像设备捕获所显示的视频帧的输入图像,并且使用成像设备通过对视频帧的多个固定捕获的每个像素位置求平均来捕获所显示的视频帧的目标图像。
在一些示例中,该方法包括使用成像设备使用第一曝光时间来捕获所显示的视频帧的目标图像,其中以第一亮度显示所显示的视频帧;并且使用成像设备使用第一曝光时间捕获所显示的视频帧的输入图像,其中所显示的视频帧以比第一亮度暗的第二亮度显示。
在一些示例中,输入图像和目标图像各自在相关联的内部部分处包括所显示的视频帧,使得输入图像和目标图像包括不同于与所显示的视频帧相关联的数据的第二数据,并且该方法还包括裁剪输入图像和目标图像中的每一个以包括第一数据并排除第二数据。
在一些示例中,输入图像和目标图像各自包括相同的第一数量的像素,该第一像素数小于显示视频帧的显示设备的第二像素数。
在一些示例中,该方法包括访问图像,将图像作为输入提供给经训练的机器学习模型以获得指示该图像的更新后的像素值的对应输出,并且使用来自经训练的机器学习模型的输出来更新图像。
在一些示例中,该方法包括访问多个附加目标图像,其中附加目标图像中的每个目标图像具有相关联的所显示的视频帧,并且表示该相关联的所显示的视频帧的机器学习模型的相关联的目标输出。该方法包括访问附加输入图像,其中附加输入图像中的每个输入图像与附加目标图像中的目标图像对应,使得输入图像与对应的目标图像具有相同的所显示的视频帧,并且表示对应目标图像的对机器学习模型的输入。该方法包括使用(a)目标图像和与目标图像对应的输入图像以及(b)多个附加目标图像和多个附加的相关联的输入图像来训练机器学习模型,以获得经训练的机器学习模型。
一些实施例涉及一种用于训练机器学习模型以增强图像的系统。该系统包括用于显示视频的视频帧的显示器和被配置为捕获所显示的视频帧的目标图像的数字成像设备,其中目标图像表示机器学习模型的目标输出,并且捕获所显示的视频帧的输入图像,其中输入图像与目标图像对应并且表示对机器学习模型的输入。该系统包括计算设备,该计算设备包括至少一个硬件处理器和至少一个存储处理器可执行指令的非暂态计算机可读存储介质,该处理器可执行指令在由至少一个硬件处理器执行时使至少一个硬件处理器执行访问目标图像和输入图像并且使用目标图像和与目标图像对应的输入图像来训练机器学习模型以获得经训练的机器学习模型。
在一些示例中,显示器包括电视、投影仪或其某种组合。
一些实施例涉及至少一种存储处理器可执行指令的计算机可读存储介质,该处理器可执行指令在由至少一个处理器执行时使至少一个处理器执行访问所显示的视频帧的目标图像,其中目标图像表示机器学习模型的目标输出;访问所显示的视频帧的输入图像,其中输入图像与目标图像对应并表示对机器学习模型的输入;并且使用目标图像和与目标图像对应的输入图像来训练机器学习模型,以获得经训练的机器学习模型。
因此,已经相当广泛地概述了所公开主题的特征,以便可以更好地理解其随后的详细描述,并且可以更好地认识到对本领域的当前贡献。当然,在下文中将描述所公开的主题的附加特征,这些附加特征将构成所附权利要求的主题。应该理解的是,本文采用的措词和术语是出于描述的目的,而不应被认为是限制性的。
附图说明
在附图中,在各个图中示出的每个完全相同或几乎完全相同的组件由相同的附图标记表示。为了清楚起见,并非在每个附图中都标记了每个组件。附图不一定按比例绘制,而是着重于说明本文描述的技术和设备的各个方面。
图1A-B示出了图示根据一些实施例的图像增强系统的操作的框图。
图2A示出了根据一些实施例的用于训练机器学习系统的过程。
图2B示出了根据一些实施例的用于获得训练图像的集合的示例性过程。
图2C示出了根据一些实施例的用于获得训练图像的集合的另一个示例性过程。
图3A示出了根据一些实施例的用于使用输入和输出图像的部分来训练机器学习系统的过程。
图3B示出了根据一些实施例的通过将图像划分为部分来增强图像的过程。
图3C示出了根据一些实施例的用于减轻由机器学习系统执行的过滤操作中的边缘失真的过程。
图4示出了根据一些实施例的用于训练机器学习系统的过程。
图5示出了根据一些实施例的用于生成用于训练机器学习系统的图像的训练集合的图像的过程。
图6示出了根据本文描述的技术的一些实施例的示例系统,其中可以实现本文描述的技术的方面。
图7示出了根据本文描述的技术的一些实施例的用于训练数据的受控生成的示例性过程的流程图。
图8图示了根据本文描述的技术的一些实施例的示例过程,该示例过程用于使用从图7的过程获得的经训练的机器学习模型来增强图像。
图9示出了根据一些实施例的可以在其中实现各个方面的分布式计算机系统的框图。
具体实施方式
发明人已经认识到,当捕获诸如在弱光下捕获的图像之类的嘈杂图像时,成像设备(例如,数码相机、图像传感器、医学成像设备和/或电磁场传感器)可能表现不佳。例如,数码相机可以具有图像传感器,该图像传感器经由光学透镜接收光波,该光波通常随后通过滤色器阵列(CFA)被过滤,并将接收到的光波转换成电信号。然后,通过一系列图像信号处理(ISP)算法将电信号转换成一个或多个数字值(例如,红色、蓝色和绿色(RGB)通道值)。在照明量低的条件下,成像设备捕获的图像的质量可能差。例如,在数码相机中,当光量低时,图像传感器可能不够灵敏,无法捕获足够的信息以区分图像中的一个或多个对象。因此,弱光可能导致图像对比度差、噪声伪影和/或图像中的物体模糊。
用于在弱光下捕获图像的常规解决方案可以涉及使用专门用于弱光下的性能的成像传感器。但是,相对于其它成像传感器,这样的传感器可以具有更大的尺寸。例如,由于尺寸限制,用于智能电话的数码相机可能无法将这种专用传感器结合到智能电话中。专用传感器还可以要求更多的电力和其它资源,并因此降低设备(例如,智能电话)的效率。此外,这种专用传感器常常比不专用于弱光下的操作的成像传感器贵得多。其它解决方案常常具有狭窄的用例,无法在不同的应用中实现。例如,红外或热传感器、LIDAR等的添加可以被用于改善在弱光下捕获的图像。但是,这常常要求附加的硬件和资源。许多资源受限的设备可能无法结合此类解决方案。
发明人已经开发出用于增强嘈杂图像(诸如在弱光条件下捕获的图像)的技术,以获得更高质量的图像,而无需添加或改变设备的现有硬件。该技术还可以提供比其它常规技术(诸如传统ISP算法)更好的性能。增强的图像还可以提供利用该图像的其它应用(诸如图像分割、物体检测、面部识别和/或其它应用)的改进性能。
监督式学习一般是指使用输入-输出训练数据集训练机器学习模型的过程。机器学习模型学习如何在训练数据的输入-输出对之间进行映射,诸如通过使用神经网络找到合适的模型参数(例如,诸如权重和/或偏差)以正确执行转换,从而允许机器学习模型处理新数据。机器学习技术可以被用于增强由成像设备捕获的图像和/或视频,而无需添加或改变设备的现有硬件。例如,可以将由数码相机捕获的图像或视频作为输入提供给经训练的机器学习模型,以获得该图像或视频的增强版本的输出。发明人已经开发出用于图像的输入-输出集合的受控生成的技术,该技术可以被用于训练用于增强新的输入图像或视频帧的机器学习模型。在一些实施例中,机器学习模型可以用于执行暗输入图像的弱光增强,以产生明亮的高质量目标图像。在一些实施例中,机器学习模型可以被用于对输入图像执行去噪(例如,以高ISO值拍摄)以产生去噪的目标图像。为了便于解释,在不意图限制的情况下,输入图像在本文中也可以被称为“暗图像”,而输出图像在本文中也可以被称为“目标图像”和/或“亮图像”。目标图像可以表示将要由机器学习模型生成的目标照明输出的各个方面。
应当理解的是,为了便于解释,在本文中使用了术语“暗图像”和“亮图像”,但并不旨在仅指代亮度或排除与亮度不相关的图像的特点。例如,该技术可以被用于处理嘈杂图像以生成具有更好信噪比的图像。因此,虽然本文描述的一些示例涉及暗图像和亮图像,但是应当认识到的是,该技术可以被用于处理输入图像的各种类型的不期望的方面,包括噪声、亮度、对比度、模糊、伪影和/或其它噪声伪影。因此,使用本文描述的技术处理的输入图像可以是具有不期望的方面的任何类型的图像,并且输出图像可以表示减轻和/或移除了不期望的方面的图像(例如,可以使用机器学习技术生成,如本文所述)。
发明人已经发现并认识到,可以使用输入-输出(在本文中也称为输入-目标)明暗图像的训练对(诸如各对的相同对象或场景的暗输入图像和对应的明亮目标图像)来使用监督式学习(例如,用神经网络)增强原始成像数据。用于捕获输入-目标图像的一些技术包括在低照度下拍摄现实世界的物体或场景,由此以短曝光(例如,1/15或1/30秒)捕获暗图像,而亮图像可以以长曝光(例如,1秒、2秒、10秒或更长时间)捕获。通过使用长曝光,所得的亮图像会更加明亮,并且看起来好像环境光比场景中存在的光强得多。使用捕获低照度场景的输入-目标图像可以使用在与预期输入图像相似的照度下捕获的输入图像来训练机器学习模型,该预期输入图像将使用机器学习模型进行处理,这可以使得机器学习模型捕获在低照度条件下使用时成像设备的噪声特点。
但是,发明人已经认识到,机器学习模型在增强由设备捕获的图像方面的性能受到用于训练机器学习模型的训练数据(例如,输入图像和/或相应的目标输出图像)的质量的限制。使用更准确地表示设备在弱光下捕获的图像的输入图像训练的机器学习模型将提供由设备在弱光下捕获的图像的更好增强。发明人还认识到,期望提供广泛的现实世界训练数据,包括针对各种现实世界场景和位置收集的数据。但是,以这种方式捕获亮图像可以因以下事实而变得复杂:具有出于训练目的而可以被期望的运动的场景可以造成亮图像中的模糊。由于许多现实世界的场景都包括运动,因此现有技术无法用于充分捕获此类场景的输入-目标图像对。特别地,就算不是不可能,也会难以捕获具有运动的场景的明亮连续帧以达到视频增强的目的。例如,当拍摄场景时,照片可以由于运动而表现出模糊。类似地,当捕获场景的视频时,可能期望捕获场景的明亮帧(例如,只有一秒的30分之一长),但是捕获这种图像可以是困难的,诸如当使用暗环境还捕获场景的暗图像时。
此外,为了捕获具有不同场景的图像的宽数据集,这对于训练目的也是期望的,操作者需要将相机物理地移动到每个位置和/或在每个位置的各个成像点附近,这进一步限制了充分搜集足够训练数据的实用性。例如,为了捕获场景的足够数量的输入-目标图像对,可以要求将相机移动到场景中的数百或数千个位置以及数十万个不同位置。由于此类技术要求相机物理上存在于每个位置,因此由于时间、行程等方面的实际限制,它会显著限制训练数据的健壮性。
发明人已经开发出计算机化的技术,以使用预先捕获的视频来模拟现实世界的数据。该技术包括使用以逐帧为基础显示视频帧的显示设备(例如,电视或投影仪)。在一些实施例中,预先捕获的视频允许以足够的持续时间和/或足够的亮度显示帧,以使成像设备能够捕获同一视频帧的暗图像和亮图像。因此,目标图像可以表示视频帧中的场景,就好像它是在正常照明条件下被成像设备捕获的一样,并且输入图像可以表示视频帧中的场景,就好像它是由成像设备在弱光下捕获的一样。在一些实施例中,成像设备可以使用短曝光时间来捕获帧的暗图像,并且使用长曝光时间来捕获帧的亮图像。在一些实施例中,可以调节显示器的亮度以允许以比通常使用的曝光时间更短的曝光时间和/或使用与用于捕获暗图像的曝光时间相似的曝光时间来捕获亮图像。因此,本文描述的技术提供了每个视频帧的暗和亮图像的受控生成。通过逐帧捕获图像,该技术可以被用于生成具有运动的场景的输入-目标图像对,使得各个输入-目标图像对不会由于模糊而表现出伪影。该技术可以对各种场景启用快速数据搜集,而不是要求成像设备物理地存在于(和物理地移动到)数千个实际位置以收集足够的训练数据。
在以下描述中,阐述了有关所公开主题的系统和方法以及此类系统和方法可以在其中操作的环境等的许多具体细节,以便提供对所公开主题事项的透彻理解。此外,将理解的是,下面提供的示例是示例性的,并且可以想到的是,在所公开的主题事项的范围内,还有其它系统和方法。
根据一个方面,提供了一种系统以增强嘈杂图像(诸如在弱光条件下捕获的图像)。该系统使用训练图像的集合来训练将用于增强图像的机器学习系统。该系统使用训练图像的输入集合,这些图像表示在弱光条件下捕获的图像(例如,“暗”图像,其表现出某种噪声)。图像的这个输入集合可以例如代表将被输入到机器学习系统中以进行增强的弱光图像。该系统使用与训练图像的第一集合对应的训练图像的输出集合。图像的输出集合可以是机器学习系统在处理输入图像(例如,“亮”或“明亮”图像,其包括的噪声小于输入图像的噪声)之后将要输出的图像的第一集合的目标版本。在一些实施例中,图像的第一和第二集合可以分别用作监督式学习方案中的训练数据的输入和输出,以训练机器学习系统。
在一些实施例中,可以训练系统以增加输入图像中的照度级别。在一些实施例中,系统可以被配置为生成具有增加的照度的输出图像。在一些实施例中,系统可以使输入图像的照度增加2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19和/或20倍。在一些实施例中,系统可以被配置为相对于输入图像的一个或多个其它部分将输入图像的一个或多个部分的照度增加不同的量。在一些实施例中,系统可以被配置为将输入图像的照度增加5至15倍。在一些实施例中,系统可以被配置为将输入图像的照度增加6至13倍。在一些实施例中,系统可以被配置为将输入图像的照度增加至少2、3、4、5、6、7、8、9、10、11、12、13、14、15、
16,17、18、19或20倍。
在一些实施例中,可以训练系统以移除破坏输入图像的噪声伪影,诸如亮度、对比度、模糊等。通过移除破坏输入图像的噪声伪影,技术可以增加图像的信噪比。例如,技术可以将信噪比增加例如大约2-20dB。
在一些实施例中,通过使用中性密度过滤器的成像设备捕获图像来获得图像的输入集合。中性密度过滤器是降低或修改进入成像设备的镜头的光强度的光学过滤器。发明人已经认识到,使用中性密度过滤器来生成训练集合中的输入图像的集合可以准确地反映在弱光下拍摄的图像的特点。例如,由中性密度过滤器捕获的图像具有类似于在弱光条件下捕获的图像中的噪声特点。可以通过用成像设备捕获相同图像来获得与训练集合中的相应输入图像对应的输出图像,而无需使用中性密度过滤器。输出图像表示相应输入图像的目标增强版本,机器学习系统可以基于此进行训练。发明人已经认识到,中性密度过滤器的使用提供图像的训练集合,这些训练图像反映在弱光条件下捕获的图像中将出现的噪声特点,同时减少因使用其它相机设置(例如,改变ISO设置、降低光源强度和/或减少曝光时间)而导致的输入集与输出集之间的差异。
在一些实施例中,通过捕获具有高ISO值的图像来获得图像的输入集合,这可以例如在数字采样过程中改善和/或最大化低强度像素值的量化准确度。在一些实施例中,ISO值可以是在大约1600-500000的范围内的ISO值。例如,高端消费者相机的ISO上限为500000。在一些实施例中,该值可以高于500000,诸如对于专门的硬件实施方式可以是最高为500万。在一些实施例中,可以选择ISO值以使其高于ISO阈值。可以通过产生输入图像的多次捕获(例如,以与用于捕获图像的输入集合的相同和/或相似的ISO设置)并随后处理输入图像的集合(诸如通过跨多次捕获对每个像素的强度求平均)来获得与训练集合中的相应输入图像对应的输出图像。输出图像表示相应输入图像的目标增强版本,机器学习系统可以基于此进行训练。发明人已经认识到,虽然在一些实施例中可以使用一次和/或几次长曝光来捕获输出图像,但是使用长曝光可以改变传感器的噪声特点,诸如通过增加热噪声。对以冷却间隔(例如,连续捕获之间的1秒冷却间隔)拍摄的短曝光的集合(例如,短曝光的大集合,诸如50、100、200等)的像素强度求平均可以使输出的热噪声特性与输入帧的热噪声特性保持一致、可以使神经网络学习更简单的变换函数,和/或可以允许更可压缩的神经网络模型。
根据另一方面,提供了一种系统以将输入图像划分为多个图像部分。然后,系统可以将这些部分作为单独的输入馈送到机器学习系统。该系统可以被配置为将各个增强的输出部分缝合在一起以生成最终的增强图像。发明人已经认识到,将图像划分为多个部分允许系统执行训练,并且比一次处理整个图像更快地增强图像。
根据另一方面,提供了一种系统,该系统包括一个或多个图像作为图像的训练集合中用于训练机器学习系统的输入图像,这些图像仅包括来自相机的传感器的噪声(在本文中也称为“噪声图像”)。可以以接近零的曝光来捕获(一个或多个)图像,使得图像的仅有的像素值是由从成像设备的组件(例如,成像传感器)生成的噪声产生的。该系统可以被配置为使用(一个或多个)噪声图像来减少传感器噪声对使用机器学习系统执行的图像增强的影响。这可以跨各种成像设备设置(例如,ISO设置和曝光时间)归一化AI系统的图像增强性能。
根据另一方面,提供了一种用于训练机器学习系统的系统,使得机器学习系统被优化以增强人类可感知的图像特征。在一些实施例中,系统可以被配置为针对人类可感知的频率来优化机器学习系统。系统可以被配置为训练机器学习系统,使得其针对频率最佳地执行。
本文描述了用于训练数据的受控生成的系统和计算机化技术,其可以被用于训练用于图像增强的机器学习模型。显示设备(诸如电视或投影仪)可以以受控方式显示视频帧,以便显示的帧可以被用于生成训练数据。成像设备(例如,数码相机)可以被配置为捕获所显示的视频帧的目标图像和输入图像。可以使用不同的曝光时间和/或通过调整显示器的亮度来捕获目标图像和输入图像。在一些实施例中,目标图像可以是视频帧的捕获的图像,该图像表示视频帧中的场景,就好像它是由成像设备在正常照明条件下捕获的(例如,在本文中称为“亮图像”),并且输入图像可以是视频帧的捕获的图像,该图像表示视频帧中的场景,就好像它是由成像设备在弱光下捕获的(例如,在本文中称为“暗图像”)。可以重复输入-目标图像生成过程以生成包括多个输入图像和相关联目标图像的训练数据集。
然后,可以使用输入图像和目标图像来训练机器学习模型。在一些实施例中,机器学习模型可以被用于处理暗图像以生成对应的亮图像。目标图像可以表示将通过增强暗图像的照度来生成的目标照明输出(例如,诸如红色、绿色和/或蓝色值、原始拜耳图案值、热/红外传感器数据等)。因此,包括暗图像和对应目标图像的集合的训练数据可以被用于训练机器学习模型,该机器学习模型可以被用于通过照亮图像来增强在弱光条件下捕获的图像。
在一些实施例中,包括生成的暗输入图像和对应的良好照明的目标图像的集合的数据集可以被用于训练机器学习模型以照明由成像设备捕获的图像(例如,在弱光条件下捕获的图像)。例如,可以训练机器学习模型以基于对应的暗图像生成目标亮图像。因此,训练过程可以训练机器学习模型,以基于新的暗图像生成与基于暗图像的照度(例如,每个像素的原始像素数据,每个像素的RGB值等)的亮图像对应的输出照明(例如,每个像素的原始像素数据、每个像素的红、绿、蓝(RGB)值等)。
图像可以是照片。例如,图像可以是由成像设备(例如,数码相机)捕获的照片。图像也可以是视频的一部分。例如,图像可以是构成视频的一个或多个帧。
本文描述的一些实施例解决了发明人已经用常规图像增强系统认识到的上述问题。但是,应当认识到的是,并非本文描述的每个实施例都解决这些问题中的每一个。还应当认识到的是,本文描述的技术的实施例可以被用于解决图像增强中的上述问题以外的目的。
图1A示出了具有参数102A的集合的机器学习系统102。在一些实施例中,机器学习系统102可以是被配置为接收输入图像并生成增强的输出图像的系统。机器学习系统102可以基于训练图像104的集合在训练阶段110期间学习参数102A的值。在训练阶段110之后,获得经训练的机器学习系统112,其被配置有经学习的参数值112A。经训练的机器学习系统112由图像增强系统111用来增强由各种成像设备114A-B捕获的一个或多个图像116。图像增强系统111接收(一个或多个)图像116并输出一个或多个增强的图像118。
在一些实施例中,机器学习系统102可以是用于增强在弱光条件下捕获的图像的机器学习系统。在一些实施例中,在弱光条件下捕获的图像可以是其中不存在足够量的光强度以捕获图像中的一个或多个物体的那些图像。在一些实施例中,在弱光条件下捕获的图像可以是用小于50lux的光源捕获的图像。在一些实施例中,在弱光条件下捕获的图像可以是用小于或等于1lux的光源捕获的图像。在一些实施例中,在弱光条件下捕获的图像可以是用小于或等于2lux、3lux、4lux或5lux的光源捕获的图像。机器学习系统102可以被配置为接收在弱光设置下捕获的输入图像,并生成显示物体的对应输出图像,就好像它们是用更大强度的光源捕获的一样。
在一些实施例中,机器学习系统102可以包括具有一个或多个参数102A的神经网络。神经网络可以由多层组成,每一层都有一个或多个节点。神经网络的参数102A可以是系数、权重、过滤器或神经网络的层中的节点所使用的其它类型的参数。节点使用系数来组合输入数据以生成输出值,该输出值被传递到节点的激活函数中。激活函数生成输出值,该输出值被传递到神经网络的下一层。由神经网络的最终输出层生成的值可以被用于执行任务。在一些实施例中,神经网络的最终输出层可以被用于生成输入图像的增强版本。例如,输出层的值可以被用作函数的输入,该函数用于为要由神经网络输出的图像生成像素值。在一些实施例中,神经网络的输出层可以包括输入图像的增强版本。例如,神经网络的输出层可以指定输入图像的增强版本的值像素。
在一些实施例中,机器学习系统102可以包括卷积神经网络(CNN)。CNN可以由多层节点组成。参数102A可以包括应用于CNN的每一层的过滤器。CNN的每一层可以是一个或多个可学习的过滤器的集合,通过该过滤器对该层的输入进行卷积。与每个过滤器的卷积的结果被用于生成层的输出。然后,层的输出可以被传递到后续层,以用于由后续层的一个或多个过滤器执行的另一个卷积运算集合。在一些实施例中,CNN的最终输出层可以被用于生成输入图像的增强版本。例如,输出层的值可以被用作函数的输入,该函数用于为要由神经网络输出的图像生成像素值。在一些实施例中,神经网络的输出层可以包括输入图像的增强版本。例如,CNN的输出层可以指定增强图像像素的值。在一些实施例中,卷积神经网络是U-Net。
在一些实施例中,机器学习系统102可以包括人工神经网络(ANN)。在一些实施例中,机器学习系统102可以包括递归神经网络(RNN)。在一些实施例中,机器学习系统102可以包括决策树。在一些实施例中,机器学习系统102可以包括支持向量机(SVM)。在一些实施例中,机器学习系统可以包括遗传算法。一些实施例不限于特定类型的机器学习模型。在一些实施例中,机器学习系统102可以包括一个或多个机器学习模型的组合。例如,机器学习系统102可以包括一个或多个神经网络、一个或多个决策树和/或一个或多个支持向量机。
在训练阶段110期间对机器学习系统进行训练之后,获得经训练的机器学习系统112。经训练的机器学习系统112可以已经学习了参数112A,该参数112A基于训练图像104优化由机器学习系统112执行的图像增强的性能。学习到的参数112A可以包括机器学习系统的超参数的值、机器学习系统的系数或权重的值以及机器学习系统的其它参数的值。可以在训练阶段110期间手动确定学习到的参数112A中的一些参数,而其它参数可以通过在训练阶段110期间执行的自动训练技术来确定。
在一些实施例中,图像增强系统111使用经训练的机器学习系统112对从一个或多个成像设备114A-B接收的一个或多个图像116执行图像增强。例如,(一个或多个)成像设备可以包括相机114A和智能电话114B的数码相机。一些实施例不限于来自本文描述的成像设备的图像,因为机器学习系统112可以增强从不同的成像设备接收的图像。
图像增强系统111使用(一个或多个)接收到的图像116来生成对经训练的机器学习系统112的输入。在一些实施例中,图像增强系统111可以被配置为使用(一个或多个)图像116的像素值作为一个或多个机器学习模型(例如,(一个或多个)神经网络)的输入。在一些实施例中,图像增强系统111可以被配置为将(一个或多个)图像116划分为部分,并且将每个部分的像素值分开馈送到机器学习系统112中作为输入。在一些实施例中,(一个或多个)接收到的图像116可以具有用于多个通道的值。例如,(一个或多个)接收到的图像116可以具有用于红色通道、绿色通道和蓝色通道的值。这些通道在本文中也可以被称为“RGB通道”。
在增强(一个或多个)接收到的图像116之后,图像增强系统111输出(一个或多个)增强的图像118。在一些实施例中,(一个或多个)增强的图像118可以被输出到从其接收(一个或多个)图像116的设备。例如,(一个或多个)增强的图像118可以被输出到从其接收(一个或多个)图像116的移动设备114B。移动设备114B可以在设备114B的显示器中显示(一个或多个)增强的图像118,并且存储(一个或多个)增强的图像118。在一些实施例中,图像增强系统111可以被配置为存储所生成的(一个或多个)增强的图像118。在一些实施例中,图像增强系统111可以被配置为将(一个或多个)增强的图像118用于图像增强系统111的性能的后续评估和/或机器学习系统112的再训练。
在一些实施例中,图像增强系统111可以部署在从其接收(一个或多个)图像116的设备上。例如,图像增强系统111可以是安装在移动设备114B上的应用的一部分,该应用在由移动设备114B执行时对(一个或多个)接收到的图像116执行增强。在一些实施例中,图像增强系统111可以在一个或多个分开的计算机上实现。图像增强系统111可以经由通信接口接收(一个或多个)图像116。通信接口可以是无线网络连接或有线连接。例如,图像增强系统111可以在服务器上实现。服务器可以经由网络(例如,经由互联网)接收(一个或多个)图像116。在另一个示例中,图像增强系统111可以是台式计算机,其经由有线连接(例如,USB)从设备114A-B中的一个或多个接收(一个或多个)图像116。一些实施例不受图像增强系统111如何获得(一个或多个)图像116的限制。
图1B图示了图像增强系统111的示例实施方式,该图像增强系统111用于对由成像设备(例如,成像设备114A或114B)捕获的图像执行图像增强。来自物体120的光波穿过成像设备的光学透镜122并到达成像传感器124。成像传感器124从光学透镜122接收光波,并且基于接收到的光波的强度来生成对应的电信号。然后将电信号传输到模数(A/D)转换器,该模数转换器基于电信号生成物体120的图像的数字值(例如,数字RGB像素值)。图像增强系统111接收图像111并使用经训练的机器学习系统112来增强图像。例如,如果在物体被模糊和/或对比度差的弱光条件下捕获物体120的图像,那么图像增强系统111可以使物体去模糊和/或改善对比度。图像增强系统111还可以改善图像的亮度,同时使人眼更清楚地辨别物体。图像增强系统111可以输出增强的图像以用于进一步的图像处理128。例如,成像设备可以对图像执行进一步的处理(例如,照度、白色、清晰度、对比度)。图像然后可以被输出130。例如,图像可以被输出到成像设备的显示器(例如,移动设备的显示器),和/或由成像设备存储。
在一些实施例中,可以针对特定类型的成像传感器124的操作优化图像增强系统111。通过在由成像设备执行进一步的图像处理128之前对从成像传感器接收的原始值执行图像增强,可以针对设备的成像传感器124优化图像增强系统111。例如,成像传感器124可以是捕获光的互补金属氧化物半导体(CMOS)硅传感器。传感器124可以具有多个像素,这些像素将入射的光子转换成电子,进而生成电信号,该电信号被馈送到A/D转换器126中。在另一个示例中,成像传感器124可以是电荷耦合器件(CCD)传感器。一些实施例不限于任何特定类型的传感器。
在一些实施例中,可以基于使用特定类型或型号的成像传感器捕获的训练图像来训练图像增强系统111。基于设备的特定配置和/或设置,由成像设备执行的图像处理128在用户之间可以不同。例如,不同用户可以基于偏好和使用来不同地设置成像设备设置。图像增强系统111可以对从A/D转换器接收的原始值执行增强,以消除由成像设备执行的图像处理120导致的变化。
在一些实施例中,图像增强系统111可以被配置为转换从A/D转换器126接收的数字像素值的格式。例如,值可以是整数值,并且图像增强系统111可以被配置为将像素值转换成浮点值。在一些实施例中,图像增强系统111可以被配置为从每个像素减去黑电平。黑电平可以是由成像设备捕获的不显示颜色的图像的像素的值。因此,图像增强系统111可以被配置为从接收到的图像的像素中减去阈值。在一些实施例中,图像增强系统111可以被配置为从每个像素减去恒定值以减少图像中的传感器噪声。例如,图像增强系统111可以从图像的每个像素中减去60、61、62或63。
在一些实施例中,图像增强系统111可以被配置为归一化像素值。在一些实施例中,图像增强系统111可以被配置为将像素值除以一个值以归一化像素值。在一些实施例中,图像增强系统111可以被配置为将每个像素值除以最大可能像素值与和黑电平对应的像素值之间的差(例如,60、61、62、63)。在一些实施例中,图像增强系统111可以被配置为将每个像素值除以捕获的图像中的最大像素值和捕获的图像中的最小像素值。
在一些实施例中,图像增强系统111可以被配置为对接收到的图像执行去马赛克。图像增强系统111可以基于从A/D转换器126接收的像素值来执行去马赛克以构造彩色图像。系统111可以被配置为针对每个像素生成多个通道的值。在一些实施例中,系统111可以被配置为生成四个颜色通道的值。例如,系统111可以生成用于红色通道、两个绿色通道和蓝色通道(RGGB)的值。在一些实施例中,系统111可以被配置为为每个像素生成三个颜色通道的值。例如,系统111可以生成用于红色通道、绿色通道和蓝色通道的值。
在一些实施例中,图像增强系统111可以被配置为将图像划分为多个部分。图像增强系统111可以被配置为分开增强每个部分,然后将每个部分的增强版本组合成输出增强图像。图像增强系统111可以为每个接收到的输入生成到机器学习系统112的输入。例如,图像可以具有500x500像素的尺寸,并且系统111可以将图像划分为100x100像素的部分。系统111然后可以将每个100x100部分输入到机器学习系统112中并获得对应的输出。系统111然后可以组合与每个100x100部分对应的输出以生成最终图像输出。在一些实施例中,系统
111可以被配置为生成与输入图像相同尺寸的输出图像。
图2A示出了根据一些实施例的用于训练机器学习系统的过程200。过程200可以作为以上参考图1A-B描述的训练阶段110的一部分来执行。例如,可以执行过程200以训练具有参数102A的机器学习系统102以获得具有学习到的参数112A的经训练的机器学习系统112。可以使用包括一个或多个硬件处理器的任何(一个或多个)计算设备来执行过程200,因为本技术的各方面在这方面不受限制。
过程200在方框202处开始,在那里执行过程200的系统获得训练图像的集合。系统可以获得表示预期由机器学习系统执行的图像的增强的训练图像。在一些实施例中,系统可以被配置为获得输入图像的集合和输出图像的对应集合。输出图像为要由正被训练的机器学习系统生成的输入图像提供目标增强输出。在一些实施例中,输入图像可以是表示在弱光条件下捕获的图像的图像。输入图像在本文中也可以被称为“暗图像”。输出图像可以是表示暗图像的增强版本的对应输出图像,其在图像中具有增加的照度。输出图像在本文中可以被称为“亮图像”。如本文所述,系统可以获得由一个或多个成像设备(包括数码相机、视频记录设备等)捕获的训练图像。例如,在一些实施例中,图像可以是视频帧,其可以使用本文描述的技术来处理。系统可以被配置为经由有线连接或无线地(例如,经由网络连接)接收图像。
在一些实施例中,系统可以被配置为获得暗图像。暗图像可以使用一种模仿弱光条件的机制来捕获一个或多个场景。在一些实施例中,系统可以通过减少用于捕获图像的成像设备的曝光时间来获得暗图像。然后可以通过增加成像设备使用的曝光时间来捕获对应的亮图像。在一些实施例中,系统可以通过减小向(一个或多个)物体提供照明的光源的强度、然后捕获图像来获得暗图像。然后可以通过增加光源的强度来捕获对应的亮图像。发明人已经认识到,使用中性密度过滤器可以比其它技术更准确地表示弱光条件。例如,神经密度过滤器可以允许相机设置的其余部分保持相同,就好像使用普通光捕获图像一样。因此,神经密度过滤器可以抵消训练数据中的那些相机设置。当使用其它技术(诸如通过减少曝光时间)捕获暗图像时,暗图像可能无法准确地捕获图像传感器的噪声特性。减少曝光时间可以例如减少传感器中的电子噪声(例如,热噪声、暗电流等)的时间。因此,这种去噪会使得捕获的图像无法真实反映数据集中的电子噪声,这可以是处理图像的重要部分(例如,因为这可以是训练过程中学习如何抵消和/或抑制暗图像中固有的噪声的重要部分)。作为另一个示例,当降低光源强度时,图像可能仍不具有强度的均匀分布(例如,使得一些部分比其它部分被照亮更多,这会影响训练步骤)。下面参考图2B描述用于使用中性密度过滤器获得训练图像的示例过程210。
一些实施例可以使用方法的组合来获得暗图像和亮图像。例如,一些中性密度过滤器可以被离散化,使得每次调整过滤器时,都可以以将光量减半的方式将神经密度过滤器因子加倍。因此,可以调整相机系统的其它方面,以细化系统的逐步调整。例如,可以调整曝光时间,以允许以更精细的方式减少光的调整(例如,不会像通过调整过滤器那样将光减半)。
在一些实施例中,系统可以被配置为获得使用具体设备捕获的训练图像。在一些实施例中,系统可以被配置为获得使用具体类型的成像传感器捕获的训练图像。例如,系统可以接收从特定类型的成像传感器(例如,具体模型)捕获的训练图像。然后,获得的图像可以表示将由采用特定类型的成像传感器的成像设备捕获的图像。因而,可以针对特定类型的成像传感器的性能来优化机器学习系统。
在一些实施例中,可以选择训练图像的集合以概括将被经训练的机器学习系统接收用于增强的图像。训练集合可以包括针对不同成像设备设置而变化的图像的集合。在一些实施例中,系统可以被配置为针对图像设备捕获设置的不同值获得训练图像的分开的集合。在一些实施例中,系统可以被配置为获得用于成像设备的不同ISO设置的训练图像,以表示成像设备的不同光敏度。例如,系统可以获得针对50和2000之间的不同ISO设置的训练图像。在一些应用中可以期望高ISO,因为它可以提供尽可能多的信号,但是更高的ISO可以具有附加噪声。因此,不同的ISO设置可能具有不同的噪声特点。如本文进一步讨论的,可以训练一个或多个神经网络以处理ISO。例如,可以针对每个ISO设置训练不同的神经网络,或者可以训练覆盖ISO设置的集合或其某种组合的一个神经网络。
在获得训练图像的集合之后,过程200前进到动作204,在那里系统使用获得的训练图像来训练机器学习系统。在一些实施例中,系统可以被配置为执行自动监督式学习,其中输入是获得的暗图像,而对应的输出是获得的与暗图像对应的亮图像。在一些实施例中,系统可以被配置为执行监督式学习以确定机器学习系统的一个或多个参数的值。
在一些实施例中,机器学习系统可以包括将被训练以执行图像增强的一个或多个神经网络。在一些实施例中,机器学习系统可以包括一个或多个卷积神经网络(CNN)。卷积神经网络针对给定的输入图像执行一系列卷积运算。在每一层处使用一个或多个过滤器执行卷积运算。将在训练过程期间确定要在过滤器中使用的值。在一些实施例中,CNN还可以包括具有节点的一个或多个层,该节点将来自前一层的输入乘以相应的权重,然后将乘积求和在一起以生成值。然后可以将该值馈送到激活函数中以生成节点输出。可以在训练过程期间学习过滤器中的值和/或卷积神经网络的系数的值。
在一些实施例中,系统可以被配置为通过优化损失函数来训练机器学习系统的参数。损失函数可以指定由机器学习系统生成的输出与目标输出之间的差(例如,误差)。例如,对于相应的暗图像,损失函数可以指定由机器学习系统响应于暗图像的输入而生成的增强图像与和训练集合中的相应暗图像对应的亮图像之间的差。在一些实施例中,系统可以被配置为执行训练以最小化针对所获得的训练图像的集合的损失函数。基于从机器学习系统针对输入的暗图像的输出计算出的损失函数的值,系统可以调整机器学习系统的一个或多个参数。在一些实施例中,系统可以被配置为基于损失函数的值使用优化函数来计算对机器学习系统的(一个或多个)参数进行的调整。在一些实施例中,系统可以被配置为对机器学习系统的参数执行调整,直到达到由损失函数所指示的测试图像的准确度的阈值级别为止。例如,系统可以被配置为在训练期间调整参数,直到针对训练图像获得损失函数的最小值为止。在一些实施例中,系统可以被配置为通过梯度下降算法来确定调整。在一些实施例中,系统可以被配置为执行批量梯度下降、随机梯度下降和/或小批量梯度下降。在一些实施例中,系统可以被配置为在执行梯度下降时使用自适应学习速率。例如,系统可以被配置为使用RMSprop算法来实现梯度下降中的自适应学习速率。
在一些实施例中,系统可以被配置为使用不同和/或多个损失函数。在一些实施例中,系统可以被配置为使用多个损失函数的组合。例如,系统可以被配置为使用平均绝对误差(MAE)、结构相似度(SSIM)指数、色差损失函数和/或其它损失函数(例如,应用于带通图像的损失函数,如结合图4讨论的)中的一种或多种。在一些实施例中,可以使用像素之间的欧式距离来计算色差。在一些实施例中,可以使用像素之间的Δ-E94距离度量来计算色差。一些实施例不限于特定的色差度量。在一些实施例中,系统可以被配置为将损失函数应用于一个或多个单独的通道(例如,红色通道、绿色通道、蓝色通道)。
在一些实施例中,系统可以被配置为将损失函数应用于机器学习系统的经过滤的输出,以便针对特定频率范围优化机器学习系统的性能,如下面参考图4所描述的。
在一些实施例中,系统可以被配置为使用多个损失函数的线性组合。在一些实施例中,系统可以被配置为使用图像的一个或多个通道的MAE、经过滤的输出的MAE以及SSIM的线性组合。例如,多个损失函数的组合可以如下面的等式1所示。
等式1:误差=1.6*红色通道的MAE+1.0*绿色通道的MAE+1.6*蓝色通道的MAE+1.4SSIM+1.5*频率过滤后的MAE
在一些实施例中,系统可以被配置为设置机器学习系统的一个或多个超参数。在一些实施例中,系统可以被配置为在发起自动化训练过程之前设置(一个或多个)超参数的值。超参数可以包括神经网络中的层数(在本文中也称为“网络深度”)、CNN使用的过滤器的内核尺寸、CNN中要使用的过滤器数量的计数,和/或指定卷积过程中要采取的步长的步幅长度。在一些实施例中,系统可以配置机器学习系统以采用批量归一化,其中在将神经网络的每一层的输出输入到后续层中之前对其进行归一化。例如,可以通过减去在第一层处生成的值的均值并将每个值除以值的标准偏差来对来自第一层的输出进行归一化。在一些实施例中,批量归一化的使用可以将可训练参数添加到神经网络的层。例如,系统可以添加在每个步骤用于归一化的gamma和beta参数。机器学习系统可以从层的每个输出减去beta值,然后将每个输出除以gamma值。在一些实施例中,可以使用量化来压缩神经网络空间。
在一些实施例中,机器学习系统的超参数可以被手动配置。在一些实施例中,机器学习系统的超参数可以被自动确定。例如,可以使用大规模计算技术来训练使用不同参数的模型,并将结果存储到共享存储装置中。可以查询共享存储装置以确定最佳模型,并进而以自动方式确定最佳参数(或参数的值的范围)。在一些实施例中,系统可以被配置为存储指示与一个或多个超参数值相关联的性能的一个或多个值。系统可以被配置为自动确定对(一个或多个)超参数值的调整以改善系统的性能。在一些实施例中,系统可以被配置为在数据库中配置有相应的超参数值时存储指示机器学习系统的性能的(一个或多个)值。系统可以被配置为在数据库中配置有具体的超参数值时从数据库查询指示机器学习系统的性能的(一个或多个)值。
在一些实施例中,机器学习系统可以包括CNN。在一些实施例中,机器学习系统可以被配置为使用深度方向的可分离卷积和全卷积的混合来减少训练机器学习系统所需的时间,并随后执行图像的增强。在一些实施例中,深度方向可分离卷积和全卷积的混合可以被用于减少机器学习系统所需的空间。例如,减少机器学习系统的参数的数量。
在方框204处训练机器学习系统之后,过程200前进到方框206,在那里处机器学习系统被用于图像增强。例如,图像增强系统111可以使用经训练的机器学习系统来对一个或多个接收到的图像进行增强。在一些实施例中,系统111可以被配置为获得图像,并且根据机器学习系统的学习到的和经配置的参数来生成对应的亮图像。
图2B示出了根据一些实施例的用于获得训练图像的集合的示例性过程210。可以作为以上参考图2描述的过程200的一部分来执行过程210。例如,可以执行过程210以获得暗图像和对应的亮图像的集合以用于训练图像的集合。可以使用包括一个或多个硬件处理器的任何(一个或多个)计算设备来执行过程210,因为本技术的各方面在这方面不受限制。
过程210在动作212处开始,在那里执行过程210的系统为使用中性密度过滤器捕获的图像的训练集合获得一个或多个输入图像。(一个或多个)输入图像可以是(一个或多个)暗图像,其表示在弱光条件下捕获的场景的(一个或多个)图像。在一些实施例中,具有中性密度(ND)过滤器的成像设备(例如,数码相机)可以被用于捕获(一个或多个)图像。在一些实施例中,系统可以接收由成像设备捕获的(一个或多个)输入图像。例如,系统可以通过网络(例如,互联网)经由无线传输来接收(一个或多个)输入图像。在另一个示例中,系统可以经由与成像设备的有线连接(例如,USB)接收(一个或多个)输入图像。在又一个示例中,可以从存储由成像设备捕获的(一个或多个)输入图像的另一个系统(例如,云存储)接收(一个或多个)输入图像。
ND过滤器可以模拟弱光条件,其中当ND过滤器降低到达成像设备的成像传感器的光的强度时,图像被捕获。ND过滤器的操作可以通过下面的等式2来描述:
等式2:I=I0*10-d
在等式2中,I0是入射在ND过滤器上的光的强度,d是ND过滤器的密度,并且I是通过ND过滤器之后的光的强度。在一些实施例中,ND过滤器可以包括在到达成像传感器之前改变通过它的光的强度的材料。例如,ND过滤器可以是在进入成像设备的光路上在成像传感器之前放置的变暗的玻璃或树脂片,使得光在到达成像设备之前通过该玻璃或树脂片。在一些实施例中,ND过滤器可以是允许改变过滤器的密度的可变ND过滤器。这允许调整ND过滤器以设置减少光强度的量。在一些实施例中,ND过滤器可以是电子受控的ND过滤器。电子受控的ND过滤器可以基于受控的电信号提供ND过滤器在到达成像设备的成像传感器之前降低光强度的可变量。例如,电子受控的ND过滤器可以包括液晶元件,该液晶元件基于电压的施加来改变降低光强度的量。电压可以由成像设备控制。
在一些实施例中,可以在方框212处使用多个不同的ND过滤器密度设置来模拟弱光条件的变化级别来获得(一个或多个)输入图像。例如,可以使用针对ND过滤器的不同密度设置来捕获场景的多个图像。在一些实施例中,可以使用单个ND过滤器密度设置来获得(一个或多个)图像。
在一些实施例中,可以在方框212处跨不同图像捕获设置的成像设备使用ND过滤器来获得(一个或多个)输入图像。例如,可以使用ND过滤器针对成像设备的曝光时间、ISO设置、快门速度和/或光圈的不同设置来捕获(一个或多个)输入图像。因而,图像的训练集合可以反映可以其中捕获图像的广泛范围的成像设备配置。
在方框212处捕获(一个或多个)输入图像之后,过程210前进到方框214,在那里系统获得与在方框212处获得的(一个或多个)输入图像对应的一个或多个输出图像。在没有ND过滤器的情况下,用于捕获(一个或多个)输入图像的成像设备可以被用于捕获(一个或多个)输出图像。因此,(一个或多个)输出图像可以表示(一个或多个)输入图像的增强版本。在一些实施例中,可以跨成像设备的不同图像捕获设置来捕获(一个或多个)输出图像。例如,可以针对用于捕获(一个或多个)输入图像的每个成像设备配置捕获输出图像。因而,训练集合中的输出图像可以反映其中可以捕获图像的成像设备配置的范围。
接下来,过程210前进到方框216,在那里系统确定是否已经捕获了要包括在图像的训练集合中的所有场景的(一个或多个)输入图像和对应的(一个或多个)输出图像。在一些实施例中,系统可以被配置为确定是否已经捕获了阈值数量的场景。例如,系统可以确定是否已经捕获了阈值数量的场景,这些场景提供足够的多样性来训练机器学习系统。在一些实施例中,系统可以被配置为确定是否已经获得足够的场景多样性。在一些实施例中,系统可以被配置为确定是否已经针对训练集合的图像中的物体的数量的足够多样性获得了图像。在一些实施例中,系统可以被配置为确定是否已经针对训练集合的图像中的颜色的足够多样性获得了图像。
如果在方框216处系统确定已经获得了针对图像的训练集合的所有场景的(一个或多个)图像,那么过程210前进到方框218,在那里系统使用获得的输入和输出图像来训练机器学习系统。输入和输出图像可以被用于训练机器学习系统的一个或多个机器学习模型,如上面参考图2A所述。例如,获得的输入和输出图像可以被系统用于训练被以上参考图1A-B描述的图像增强系统111用于增强图像的一个或多个神经网络。
如果在方框216处系统确定尚未获得针对图像的训练集合的所有场景的(一个或多个)图像,那么过程210前进到方框212,在那里系统为另一个场景获得一个或多个图像。然后,系统可以再次执行方框212-214处的步骤,以获得要添加到图像的训练集合的场景的(一个或多个)输入图像和对应的(一个或多个)输出图像的另一个集合。
图2C示出了根据一些实施例的用于获得训练图像的集合的另一个示例性过程230。应当认识到的是,虽然结合分开的附图描述了过程210和230,但是可以使用任一个和/或两个过程的技术来获得训练图像。例如,一些实施例可以使用结合过程210描述的中性密度技术、结合过程230描述的求平均技术和/或其它技术来获得训练图像,其可以被用于训练如本文进一步所述的机器学习系统。像过程210一样,过程230可以作为以上参考图2描述的过程200的一部分来执行。例如,可以执行过程230以获得暗图像和对应的亮图像的集合以用于图像的训练集合。可以使用包括一个或多个硬件处理器的任何计算设备来执行过程230,因为本技术的各方面在这方面不受限制。
过程230在动作232处开始,在那里执行过程230的系统获得用于图像的训练集合的一个或多个输入图像。在一些实施例中,输入图像可以是使用正常曝光时间(例如,不是被设计为增加和/或减少场景中的噪声和/或光的经修改的曝光时间)拍摄的嘈杂图像和/或暗图像。在一些实施例中,可以使用相对高的ISO值来捕获输入图像。高ISO值可以例如帮助改善和/或最大化数字采样过程中低强度像素值的量化准确度。在一些实施例中,可以使用例如范围在大约1500-500000之间的ISO和/或被认为是高ISO值的其它ISO值(例如,足够高的ISO值,以使图像看起来更亮并且会增加图像中的噪声)来捕获输入图像。在一些实施例中,ISO值可以高于ISO阈值,诸如范围在大约1500-500000之间的阈值等。
过程230从动作232前进到动作234,并且系统针对每个输入图像获得由输入图像捕获的相同场景的对应输出图像。在一些实施例中,系统可以使用多个分开捕获的图像(例如,包括在步骤232中获得的输入图像,和/或分开的图像)获得输出图像,并使用多个图像来确定输出图像。在一些实施例中,可以用用于在动作232处捕获输入图像的(一个或多个)相同和/或相似设置(例如,曝光时间、ISO等)来捕获用于确定输出图像的图像的集合。在一些实施例中,虽然动作232和234被示为分开的动作,但是可以通过捕获图像的单个集合来执行动作。例如,系统可以被配置为捕获多个图像,并且系统可以选择任何一个捕获的图像作为输入帧,并且可以基于集合中的剩余图像和/或集合中的所有图像(包括选择为输入图像的图像)来生成输出图像。
在一些实施例中,系统可以被配置为使用和/或捕获预定数量的图像以用于确定对应的输出图像。例如,系统可以被配置为捕获50个图像、100个图像、1000个图像等。例如,捕获的图像的数量可以是这样的数量,在该数量处,对更多图像求平均只会对信噪比提供小的改善。在一些实施例中,系统可以被配置为使用不同数量的图像。
在一些实施例中,可以使用相继捕获之间的休息时段来捕获图像的集合中的每个图像,以允许成像设备冷却(例如,在捕获用于确定输出图像的图像的集合时帮助减轻和/或控制成像设备的温度)。例如,短曝光(例如,用于捕获(一个或多个)输入图像的曝光)可以被用于捕获图像的集合中的每个图像,并且冷却间隔(例如,休息时段为0.25秒、0.5秒、1秒、2秒等)可以被用于帮助使成像设备的噪声特性与捕获在动作232处确定的输入帧时的噪声特性一致。因此,通过使用在动作232处用于捕获输入图像的相同设置下捕获的图像的集合,可以生成表现出相同和/或相似噪声特性的输出图像。
在一些实施例中,系统可以通过跨多个图像对每个像素的强度求平均来确定输出图像。例如,在一些实施例中,系统可以在每个像素位置处跨图像的集合确定算术平均。在一些实施例中,可以使用其它技术,诸如确定线性组合,和/或处理图像的集合以生成类似于输入图像的去噪版本的输出图像的任何其它功能。在一些实施例中,使用去噪后处理技术来处理输出图像。
接下来,过程230前进到方框236,在那里系统确定是否已经捕获了要包括在图像的训练集合中的所有场景的(一个或多个)输入图像和对应的(一个或多个)输出图像。在一些实施例中,如结合过程210所描述的,系统可以被配置为确定是否已捕获阈值数量的场景。
如果在方框236处系统确定已经获得了图像的训练集合的所有场景的(一个或多个)图像,那么过程230前进到方框238,在那里系统使用获得的输入图像和输出图像来训练机器学习系统。输入和输出图像可以被用于训练如上面参考图2A所述的机器学习系统的一个或多个机器学习模型。例如,获得的输入和输出图像可以被系统用于训练被以上参考图1A-B描述的图像增强系统111用于增强图像的一个或多个神经网络。通过基于图像的集合确定输出图像(例如,通过对两次捕获之间具有冷却间隔所拍摄的短曝光求平均,如本文所述),这些技术可以使机器学习系统能够学习更简单的变换函数(例如,与使用表现出与输入图像不同的噪声特点的输出图像相比)可以允许更可压缩的机器学习模型等。
如果在方框236处系统确定尚未获得针对图像的训练集合的所有场景的(一个或多个)图像,那么过程230前进到方框232,在那里系统获得用于另一个场景的一个或多个图像。然后,系统可以再次执行方框232-234处的步骤,以获得要添加到图像的训练集合的场景的(一个或多个)输入图像和对应的(一个或多个)输出图像的另一个集合。
图3A示出了根据一些实施例的用于使用输入和输出图像的各部分来训练机器学习系统的过程300。过程300可以作为以上参考图2描述的过程200的一部分来执行。例如,过程300可以作为训练机器学习系统的一部分来执行,该机器学习系统将由图像增强系统111用于增强在弱光条件下捕获的图像。可以使用包括一个或多个硬件处理器的任何计算设备来执行过程300,因为本技术的各方面在这方面不受限制。
发明人已经认识到,如果到机器学习系统的输入的尺寸减小,那么可以使机器学习系统更快(例如,系统将“暗”图像转换成“亮”图像的处理速度)。利用较小的输入尺寸,机器学习系统可以具有更少的参数和更少的要执行的操作,因此可以更快地执行。较小的输入尺寸也可以减少训练机器学习系统的一个或多个参数所需的训练时间。利用较小的输入尺寸,机器学习系统可以具有需要为其学习值的较少的参数。这进而减少了训练期间系统要执行的计算的数量。因而,对机器学习系统的较小的输入允许系统更高效地训练机器学习系统。
过程300在方框302处开始,在那里执行过程300的系统将训练集合中的每个输入图像划分为多个图像部分。输入图像可以是例如原始的高分辨率图像。在一些实施例中,系统可以被配置为将相应的输入图像划分为相等尺寸的部分的网格。作为不旨在限制的简单说明性示例,尺寸为500x500的输入图像可以被划分为100x100图像部分的网格。在一些实施例中,系统可以被配置为动态地确定输入图像将被划分为的图像部分的尺寸。例如,系统可以被配置为分析图像以识别图像中的物体。系统可以确定图像部分的尺寸,以确保图像部分包括完整的物体。在一些实施例中,系统可以被配置为确定图像部分的尺寸以最小化训练时间和/或图像增强所需的时间。例如,系统可以基于用于训练机器学习系统的预期时间来确定图像部分的尺寸,该机器学习系统将处理图像部分的尺寸的输入。在另一个示例中,当机器学习系统被用于执行图像增强时,系统可以基于期望时间来确定图像部分的尺寸,以处理具有该尺寸的输入。在一些实施例中,系统可以被配置为将输入图像中的每一个划分成相同尺寸的部分。在一些实施例中,系统可以被配置为将输入图像划分成不同尺寸的部分。
接下来,过程300前进到方框304,在那里系统将对应的输出图像划分为图像部分。在一些实施例中,系统可以被配置为以与划分对应的输入图像相同的方式将输出图像划分为多个部分。例如,如果将500x500的输入图像划分为100x100的图像部分,那么训练集合中的对应输出图像也可以被划分为100x100的图像部分。
接下来,过程300前进到方框306,在那里系统使用输入图像部分和输出图像部分来训练机器学习系统。在一些实施例中,系统可以被配置为将输入图像部分和输出图像部分用作单独的输入和对应的输出,以执行监督式学习以训练机器学习系统。在一些实施例中,输入图像部分可以形成暗图像的集合,并且输出图像部分可以形成根据其训练机器学习系统的对应亮图像的集合。
图3B示出了根据一些实施例的用于通过将图像划分为部分来增强图像的过程310。过程310可以作为增强图像的一部分来执行。例如,过程310可以由图像增强系统111作为增强从成像设备获得的图像的一部分来执行。可以使用包括一个或多个硬件处理器的任何(一个或多个)计算设备来执行过程310,因为本技术的各方面在这方面不受限制。
过程310在方框312处开始,在那里执行过程310的系统接收输入图像。在一些实施例中,系统可以获得由成像设备(例如,数码相机)捕获的图像。例如,系统可以从成像设备接收图像。在另一个示例中,系统可以作为成像设备上的应用的一部分被执行,并且从成像设备的存储装置访问由成像设备捕获的图像。在又一个示例中,系统可以从与成像设备分开的另一个系统(例如,云存储装置)获得捕获的图像。
接下来,过程310前进到方框314,在那里系统将图像划分为多个图像部分。在一些实施例中,系统可以被配置为在训练机器学习系统时将图像划分为与图像的训练集合中的输入图像被划分成的尺寸相同尺寸的输入部分。在一些实施例中,系统可以被配置为将图像划分为多个相等尺寸的部分。在一些实施例中,系统可以被配置为分析图像以确定部分的尺寸,然后将图像划分为具有所确定的尺寸的部分。例如,系统可以被配置为识别图像中的一个或多个物体,并基于(一个或多个)物体的识别来确定图像部分的尺寸。在一些实施例中,系统可以被配置为确定图像部分的尺寸,以减轻部分中对比度变化的影响。例如,如果100x100尺寸的图像部分具有其间存在大对比度的物体,那么可以扩展图像部分以减少图像部分中对比度差异的影响。
接下来,过程310前进到方框316,在那里系统选择在方框314处获得的多个图像部分之一。在一些实施例中,系统可以被配置为随机地选择图像部分之一。在一些实施例中,系统可以被配置为基于原始图像中的图像部分的位置顺序地选择图像部分之一。例如,系统可以选择从图像中的具体点(例如,具体像素位置)开始的图像部分。
接下来,过程310前进到方框318,在方框318中,系统将所选择的图像部分用作机器学习系统的输入。在一些实施例中,机器学习系统可以是用于对在弱光条件下捕获的图像执行图像增强的经训练的机器学习系统。例如,机器学习系统可以是上面参考图1A-B描述的经训练的机器学习系统112,并且根据参考图2描述的过程200进行训练。机器学习系统可以包括一个或多个模型(例如,神经网络模型),针对该模型,所选择的图像部分可以用作输入。系统可以将所选择的图像部分输入到机器学习模型中。
接下来,过程310前进到方框320,在那里系统获得对应的输出图像部分。在一些实施例中,系统可以获得机器学习系统的输出。例如,系统可以获得图像部分被输入到其中的经训练的神经网络模型的输出。机器学习系统的输出可以是输入图像部分的增强版本。例如,输入图像部分可能是在弱光条件下拍摄的。因此,图像部分中的一个或多个物体可能不可见、可能模糊,或者图像部分可能具有差的对比度。对应的输出图像可以具有增加的照度,使得(一个或多个)物体可见、清晰,并且图像部分具有改善的对比度。
接下来,过程310前进到方框322,在那里系统确定是否已处理了原始接收的图像被划分为的所有图像部分。例如,如果原始图像的尺寸为500x500并被划分为100x100图像部分,那么系统可以确定100x100图像部分中的每一个是否已被处理。系统可以确定是否已将100x100图像部分中的每一个输入到机器学习系统中,以及是否已为每个输入部分获得对应的输出部分。
如果在方框322处系统确定接收到的图像中有尚未处理的部分,那么过程310前进到方框316,在那里系统选择另一个图像部分,并如上所述参考方框318-320处理图像部分。如果在方框322处系统确定已经处理了所有图像部分,那么处理310前进到方框324,在那里系统组合获得的输出图像部分以生成输出图像。在一些实施例中,系统可以被配置为组合从机器学习系统的输出生成的输出图像部分,以获得输出图像。例如,如果原始图像是被划分为100x100部分的500x500图像,那么系统可以组合100x100图像的机器学习系统的输出。
系统可以被配置为将100x100输出图像部分中的每一个定位在原始获得的图像中的对应输入图像部分的位置中以获得输出图像。输出图像可以是在方框312处获得的图像的增强版本。例如,原始图像可以已经在弱光条件下被成像设备捕获。获得的输出图像可以是捕获的图像的增强版本,其改善了原始图像中捕获的场景的显示(例如,改善了对比度和/或减少了模糊)。
如以上参考图2A所描述的,在一些实施例中,机器学习系统可以被配置为对输入到机器学习系统中的图像部分执行一个或多个卷积运算。可以在过滤器内核和输入图像部分的像素值之间执行卷积运算。卷积运算可以涉及通过采取包围要对其执行卷积的图像部分中的像素位置的像素值的线性组合来确定对应的卷积输出的值。例如,如果过滤器内核是3x3矩阵,那么卷积运算可以涉及在内核中将相应像素位置周围的3x3矩阵中的像素的像素值乘以权重,并将它们求和以获得针对卷积运算的输出中的相应像素位置的值。在执行卷积运算时出现的一个问题是,图像部分的边缘处的像素位置可能没有在该位置的所有侧面上包围相应像素位置的像素。例如,对于具有3x3内核矩阵的卷积运算,图像部分的左边缘上的像素位置在其左侧将不具有可以与内核进行卷积的任何像素。为了解决这个问题,常规系统可以用0值像素填充图像部分。但是,这会造成图像部分的边缘变形,因为0值像素不表示来自由成像设备捕获的图像的信息。
图3C示出了根据一些实施例的用于减轻由机器学习系统执行的过滤操作期间边缘失真的上述问题的过程330。可以在机器学习系统的训练和/或图像增强期间执行过程330。例如,过程330可以作为训练机器学习系统的一部分来执行,该过程将由图像增强系统
111用来增强在弱光条件下捕获的图像,并且随后在图像增强期间由增强系统111执行。可以使用包括一个或多个硬件处理器的任何(一个或多个)计算设备来执行过程330,因为本技术的各方面在这方面不受限制。
过程330在方框332处开始,在那里执行过程330的系统获得图像部分。可以如上所述在参考图3A-B的过程300和310中获得图像部分。
接下来,过程330前进到方框334,在那里系统确定图像部分的被裁剪部分。在一些实施例中,系统可以确定图像部分的被裁剪部分,在该被裁剪部分的边缘周围具有多个像素。例如,如果图像部分是100x100图像,那么系统可以确定图像部分的被裁剪部分,该被裁剪部分是100x100图像中心中的98x98图像。因此,图像部分的被裁剪部分具有包围图像部分边缘的像素。这可以确保被裁剪部分的边缘处的像素具有用于卷积运算的周围像素。
接下来,过程330前进到方框336,在那里系统将图像部分的被裁切部分用作机器学习系统的输入。在一些实施例中,系统可以被配置为将整个原始图像部分作为输入,但是将过滤操作(例如,卷积)应用于图像部分的被裁剪部分。这可以消除从机器学习系统的输出生成的增强的输出图像部分的边缘处的失真。例如,如果在100x100图像部分的98x98被裁剪部分上用3x3过滤器内核执行卷积运算,那么对98x98被裁剪部分的边缘处的像素执行的卷积将具有与3x3过滤器内核中每个位置对准的像素。与常规技术(诸如用0值像素填充图像部分)相比,可以减少边缘失真。
在一些实施例中,系统可以确定结合了附加像素的图像部分尺寸,以解决系统将要执行的后续裁剪操作(例如,系统可以在将所得的经处理的部分缝合在一起之前裁剪图像的增强部分以创建完整的增强图像)。例如,该系统可以被配置为获取尺寸为102x102的图像部分,因为该系统随后可以对图像部分的被裁剪的100x100部分执行过滤操作。通过在过滤操作期间移除附加像素,被裁剪部分可以没有上面讨论的边缘效应。
图4示出了根据一些实施例的用于训练机器学习系统的过程400。可以执行过程400以针对图像中的特定频率范围优化机器学习系统。例如,为了确保机器学习系统在人类可感知的频率范围内表现最佳。过程400可以作为训练机器学习系统以用于执行图像增强的一部分来执行(例如,作为以上参考图2A描述的过程200的一部分)。可以使用包括一个或多个硬件处理器的任何(一个或多个)计算设备来执行过程400,因为本技术的各方面在这方面不受限制。
过程400在方框402处开始,在那里执行过程400的系统从正用于训练机器学习系统的图像的训练集合中获得目标图像,以及由机器学习系统生成的对应输出图像。目标图像可以是表示根据其训练机器学习系统的对应暗图像的目标增强输出的亮图像。由机器学习系统生成的输出图像可以是在机器学习系统的训练期间由机器学习系统生成的实际输出图像。
接下来,过程400前进到方框404,在那里系统将过滤器应用于输出图像和目标图像。在一些实施例中,系统可以将频率过滤器应用于输出图像和目标图像以获得各自包括一个或多个特定频率范围的经过滤的目标图像和经过滤的输出图像。在一些实施例中,过滤器可以包括带通过滤器,该带通过滤器使特定范围内的频率通过,并且使该范围外的频率衰减。在一些实施例中,频率范围可以是人类可感知的频率范围。例如,带通过滤器可以使430THz至770THz范围内的频率通过。
在一些实施例中,为了将过滤器应用于输出图像或目标图像中的相应一个,系统可以将相应的图像变换到频域中。例如,系统可以对相应图像进行傅立叶变换以获得频域中的对应图像。可以将过滤器定义为频域中的函数。为了将过滤器应用于经变换的图像,系统可以被配置为将过滤器函数乘以经傅立叶变换的图像以获得经过滤的输出。然后,系统可以对经过滤的输出的结果进行傅立叶逆变换以获得经过滤的图像。
接下来,过程400前进到方框406,在那里系统基于经过滤的目标图像和输出图像来训练机器学习系统。在训练期间,可以将由机器学习系统输出的实际图像与训练集合中的目标图像进行比较,以确定机器学习系统的性能。例如,系统可以根据一个或多个误差度量来确定目标图像与输出图像之间的误差。误差度量的结果可以被用于确定在训练期间对机器学习系统的一个或多个参数进行的调整。在方框406处,系统可以基于对应的经过滤的输出图像与经过滤的目标图像之间的差来确定输出图像与目标图像之间的误差。在一些实施例中,系统可以被配置为基于经过滤的图像来确定一个或多个误差度量的值。在一些实施例中,系统可以被配置为确定经过滤的输出图像与经过滤的目标图像之间的逐通道平均绝对误差(MAE)。在一些实施例中,系统可以被配置为确定经过滤的图像之间的均方根误差(RMSE)。一些实施例可以附加地或可替代地使用一个或多个其它误差度量。系统然后可以基于所确定的误差来确定对机器学习系统的(一个或多个)参数的调整。例如,系统可以被配置为使用系统正在执行的梯度下降算法中的确定的误差来确定调整,以训练机器学习系统。
通过基于经过滤的目标图像与经过滤的输出图像之间的误差来训练机器学习系统,系统可以针对特定频率范围优化机器学习系统的性能。在一些实施例中,系统可以被配置为针对人类可感知的频率范围来优化机器学习系统。例如,可以训练机器学习系统以针对人类可感知的光波或频率更准确地增强图像。
图5示出了根据一些实施例的用于生成用于训练机器学习系统的图像的训练集合的图像的过程500。可以执行过程500以减少来自成像设备的组件的噪声对机器学习系统的性能的影响。过程500可以作为训练机器学习系统以用于执行图像增强的一部分来执行(例如,作为以上参考图2A描述的过程200的一部分)。可以使用包括一个或多个硬件处理器的任何(一个或多个)计算设备来执行过程500,因为本技术的各方面在这方面不受限制。
过程500在方框502处开始,在那里执行过程500的系统获得与成像设备对应的一个或多个噪声图像。(一个或多个)噪声图像可以表征由成像设备的组件生成的噪声。例如,图像中的噪声可以由成像设备的电路系统中的随机变化造成。在一些实施例中,(一个或多个)噪声图像可以是由成像设备在接近零曝光时捕获的(一个或多个)图像。接近零曝光捕获的(一个或多个)图像中的像素值可以由成像设备生成的噪声造成。在一些实施例中,可以通过使用ISO设置1000、1050、1100、1150、1200、1250、1300、1350、1400、1450和/或1500来捕获接近零曝光图像。在一些实施例中,可以通过使用曝光时间50、51、52、53、54、55、56、57、58、59、60、61、62、63、64、65,66、67、68、69或70ms来捕获接近零曝光图像。在一些实施例中,可以使用小于50ms、55ms、60ms、65ms、70ms、75ms或80ms的曝光时间来捕获接近零曝光图像。在一些实施例中,可以通过防止光进入透镜来捕获接近零曝光图像。在一些实施例中,可以使用本文描述的技术的组合来捕获接近零曝光图像。
在一些实施例中,系统可以被配置为获得与成像设备的具体设置对应的一个或多个噪声图像。在一些实施例中,(一个或多个)噪声图像可以与成像设备的特定ISO设置对应。当用特定的ISO设置配置时,成像设备可以捕获噪声图像。以这种方式,系统可以在训练集合中包括图像,该图像可以针对各种不同的ISO设置概括机器学习系统,使得机器学习系统能够针对不同的ISO设置准确地执行。
接下来,过程500前进到方框504,在那里系统生成与(一个或多个)噪声图像对应的一个或多个输出目标图像。(一个或多个)目标图像可以是表示机器学习系统如何处理输入到机器学习系统以进行增强的图像中的噪声的(一个或多个)图像。在一些实施例中,系统可以被配置为生成(一个或多个)目标输出图像作为所有像素的值都为0的图像。随后可以训练机器学习系统,以消除在为增强而处理的图像中检测到的传感器噪声的影响。
接下来,过程500前进到方框506,在那里系统使用(一个或多个)噪声图像和对应的(一个或多个)输出目标图像来训练机器学习系统。在一些实施例中,系统可以被配置为将(一个或多个)输入图像和(一个或多个)输出目标图像用作图像的训练集合的一部分,以在监督式学习方案中训练机器学习系统。在一些实施例中,系统可以训练机器学习系统以抵消存在于由机器学习系统处理的图像中的噪声的影响以进行增强。
在一些实施例中,系统可以被配置为将噪声图像与训练集合的一个或多个输入图像组合。在一些实施例中,系统可以被配置为通过将噪声图像与(一个或多个)输入图像级联来将噪声图像与训练集合的(一个或多个)输入图像组合。系统可以通过附加噪声图像像素值作为(一个或多个)输入图像的单独通道来级联噪声图像。例如,(一个或多个)输入图像可以具有一个红色、两个绿色和一个蓝色通道。噪声图像也可以具有一个红色、两个绿色和一个蓝色通道。噪声图像的通道可以作为附加通道添加,从而为(一个或多个)输入图像提供总共8个通道(即,原始的一个红色、两个绿色和一个蓝色通道,以及附加的噪声图像的一个红色、两个绿色和一个蓝色通道)。在一些实施例中,噪声图像的通道可以与(一个或多个)输入图像的通道不同。
在一些实施例中,系统可以被配置为通过将(一个或多个)输入图像的像素值与噪声图像的像素值组合来将噪声图像与训练集合的一个或多个输入图像组合。例如,噪声图像的像素值可以添加到(一个或多个)输入图像的像素值或从中减去。在另一个示例中,可以对噪声图像的像素值进行加权,然后将其与(一个或多个)输入图像的像素值组合。
图6示出了根据本文描述的技术的一些实施例的示例系统150,其中可以实现本文描述的技术的各方面。系统150包括显示器152、成像设备154和训练系统156。显示器152被用于显示视频数据158的帧。成像设备154被配置为捕获由显示器152显示的视频帧的图像。成像设备154可以是任何成像设备,诸如独立数码相机114A或结合图1A讨论的智能电话
114B的数码相机。训练系统156可以是例如图1A中所示的训练系统110,并且可以生成用于训练机器学习模型的训练图像160,如结合训练系统110所描述的。视频数据158可以通过机顶盒、通过视频回放设备(例如,计算机、DVD播放器、具有回放能力的录像机等)、通过计算设备(例如,训练系统156和/或分开的计算设备等)提供给显示器。
显示器152可以是能够显示视频帧的任何光投影机构。例如,显示器152可以是电视(TV)和/或智能TV,诸如发光二极管(LED)TV、有机LED(OLED)TV、带有量子点(QLED)的液晶显示器(LCD)TV、等离子体电视、阴极射线管(CRT)TV和/或任何其它类型的TV。在一些实施例中,可以使用高分辨率TV,诸如HD TV、4K TV、8K TV等。作为另一个示例,显示器152可以是投影仪,诸如将光投影到投影仪屏幕、墙壁和/或其它区域上的投影仪。
成像设备154可以被配置为捕获输入图像和目标图像。例如,成像设备可以捕获暗输入图像以模拟弱光条件。在一些实施例中,参考物体的图像可以用模拟弱光条件的曝光时间来捕获。例如,可以以大约1ms、10ms、20ms、30ms、40ms、50ms、60ms、70ms、80ms、90ms或100ms的曝光时间捕获参考物体的图像。在一些实施例中,参考物体的图像可以用模拟明亮光条件的曝光时间来捕获。例如,可以以大约1分钟、2分钟或10分钟的曝光时间来捕获参考物体的图像。
在一些实施例中,视频数据158可以在弱光条件和/或明亮条件下捕获场景。例如,在一些实施例中,视频数据可以在弱光条件下捕获场景的视频。例如,视频可以用提供小于50lux的照明的光源捕获场景。作为另一个示例,视频数据可以通过用阈值照明量(例如,使用至少200lux的光源)捕获一个或多个场景的一个或多个视频来捕获明亮的目标图像,并使用捕获的(一个或多个)视频的帧作为目标图像。在一些实施例中,视频可以是除为了生成训练数据以外的其它目的拍摄的视频,并且可以使用在本文描述的技术进行处理以生成输入和目标图像对。
在一些实施例中,视频数据158可以是压缩的和/或未压缩的视频数据。例如,在一些实施例中,可以使用未压缩的视频数据来避免使用可以包括一个或多个压缩伪影(例如,方块效应(blocking)等)的数据。在一些实施例中,可以使用压缩视频,诸如通过使用压缩视频中的关键帧和/或I帧。
图7示出了根据本文描述的技术的一些实施例的用于训练数据的受控生成的示例性过程700的流程图。方法700在步骤702处开始,在那里显示设备(例如,图6中的显示器152)显示视频数据(例如,图6中的视频数据158)的视频帧。方法700前进到步骤704,并且成像设备(例如,图6中的成像设备154)捕获所显示的视频帧的目标图像(例如,亮图像),该目标图像表示由训练系统156训练的机器学习模型的目标输出。方法700前进到步骤706,并且成像设备捕获所显示的视频帧的输入图像(例如,暗图像),该输入图像与捕获的目标图像对应并且表示将被训练系统156训练的机器学习模型的输入。虽然在方法700中以特定次序示出了步骤704和706,但这仅出于示例目的,因为可以使用任何次序来捕获输入和目标图像(例如,可以在目标图像之前捕获输入图像,可以使用相同和/或多个成像设备同时捕获输入图像和目标图像,等等)。
方法700前进到步骤708,并且计算设备(例如,图6中所示的训练系统156)访问目标图像和输入图像,并使用目标图像和输入图像训练机器学习模型以获得经训练的机器学习模型。在一些实施例中,系统可以被配置为:(1)使用在方框706处捕获的输入图像作为训练数据集的输入;(2)使用在方框704处捕获的目标图像作为训练数据集的目标输出;以及(3)对训练数据应用监督式学习算法。与相应输入图像对应的目标图像可以表示经训练的机器学习模型要输出的输入图像的目标增强版本。
在方框708处训练机器学习模型之后,过程700结束。在一些实施例中,系统可以被配置为存储经训练的机器学习模型。系统可以存储机器学习模型的一个或多个经训练的参数的(一个或多个)值。作为示例,机器学习模型可以包括一个或多个神经网络,并且系统可以存储(一个或多个)神经网络的经训练的权重的值。作为另一个示例,机器学习模型包括卷积神经网络,并且系统可以存储卷积神经网络的一个或多个经训练过的过滤器。在一些实施例中,系统可以被配置为存储经训练的机器学习模型(例如,在图像增强系统111中),以用于增强图像(例如,在弱光照条件下由成像设备捕获)。
如图7中从步骤706到步骤702的点线箭头所示,可以捕获视频的不同帧的多个目标图像和相应的输入图像。可以期望捕获多个目标图像和输入图像,包括从相同的视频和/或从多个视频捕获图像,以构建训练集合。因此,在一些实施例中,所述技术可以捕获视频的多个和/或所有帧的目标和输入图像,和/或可以捕获多个视频的帧的目标和输入图像。
在一些实施例中,可以在受控房间或环境中实现所述技术,使得房间中唯一的光是由显示设备生成的光。在一些实施例中,成像设备可以被配置为捕获从显示设备发射的光(例如,从TV发射的光)。在一些实施例中,成像设备可以被配置为捕获从表面反射的光,诸如从投影仪投射到投影仪屏幕或其它表面上的光。
在一些实施例中,成像设备可以被配置为基于显示设备的帧速率来捕获目标图像和输入图像。例如,显示器可以具有不同的帧速率,诸如60Hz、120Hz等。如果不进行补偿,那么成像设备可以以引起混叠的方式捕获图像。例如,当使用卷帘快门时,在一些帧速率下,卷帘快门可以与TV帧速率交互,使得导致混叠(例如,满足Nyquist频率的帧速率)。所述技术可以包括以避免混叠效应的采样率捕获图像。
在一些实施例中,系统可以被配置为使用由特定图像捕获技术捕获的输入-目标图像,使得可以训练机器学习模型以增强由图像捕获技术捕获的图像(例如,相机模型或成像传感器模型)。例如,可以训练机器学习模型以在弱光下照亮使用图像捕获技术捕获的图像。可以针对图像捕获技术的错误简档来训练机器学习模型,使得可以优化机器学习模型以校正图像捕获技术的误差特点。在一些实施例中,系统可以被配置为访问从一种类型的成像传感器获得的数据。作为示例,系统可以访问由CMOS成像传感器的特定模型捕获的目标图像。在一些实施例中,系统可以被配置为访问由特定相机模型捕获的训练图像。如本文所述,例如,系统可以访问由佳能EOS Rebel T7i EF-S 18-135相机和/或任何其它类型的相机捕获的目标图像。一些实施例不限于本文描述的特定类型的图像捕获技术。
成像设备可以使用各种技术(诸如通过使用不同的曝光时间和/或通过在不同的亮度设置下捕获显示)来捕获所显示的视频帧的目标图像和输入图像。在一些实施例中,成像设备可以使用不同的曝光时间来捕获目标和输入图像。例如,成像设备可以使用第一曝光时间捕获目标图像,并且可以使用小于第一曝光时间的第二曝光时间捕获所显示的视频帧的输入图像。在一些实施例中,成像设备可以通过使用第一曝光时间来捕获目标图像,该第一曝光时间足够长以便以阈值量的照明(例如,以至少200lux)来捕获所显示的视频帧的图像。在一些实施例中,成像设备可以以某些低光标准(例如,以小于50lux)捕获输入图像或暗图像。
在一些实施例中,成像设备可以使用显示器的不同亮度设置来捕获所显示的视频帧的目标图像和输入图像。例如,当显示器以第一亮度显示视频帧时,成像设备可以捕获目标图像,并且可以以比第一亮度暗的第二亮度捕获输入图像。在一些实施例中,可以调整显示器的亮度,使得成像设备可以使用相同的曝光时间来捕获目标和输入图像。在一些实施例中,可以基于如何捕获基础视频(例如,取决于是在弱光条件下还是在正常/明亮条件下捕获视频数据)来调整显示器的曝光时间和/或亮度。
在一些实施例中,TV的亮度可以被概括以确定亮度值,该亮度值各自以准确的颜色反映相关联的lux值。例如,TV可以仅具有可以从预定范围(诸如从0到100、0到50等)调整的亮度值。可以预期显示器的RGB值的lux在亮度从0变为100时基本上线性增加,使得随着亮度增加,每种颜色的lux也以线性方式类似地增加。但是,发明人已经发现并认识到,当改变TV上的亮度值时,用于各种亮度级别的RGB值可以具有不同的简档并且可以不随着级别而线性改变。因此,对于一些TV,RGB lux值可以在某些点快速增加,然后在其它点缓慢增加,而不是随亮度设置线性增加。例如,对于低亮度设置(例如,5、7、10等),显示器对于那个亮度级别可能无法(准确地)表达TV的某些颜色,使得以0.5lux显示的暗场景可以与真实光照下0.5lux的场景不同。作为另一个示例,对于高亮度设置(例如,60、70、80),显示器也可能无法准确地表示某些颜色。
在一些实施例中,可以使用校准过程来确定用于捕获各种训练图像的TV的亮度级别。例如,可以使用lux计来校准亮度级别。在一些实施例中,显示设备可以显示色表作为校准过程的一部分,以确定特定的亮度/lux级别是否输出准确的RGB值(例如,类似于在相同级别的lux照明下观看场景的RGB值)。色表可以包括例如各种条形,诸如红色、蓝色、绿色和黑色(至白色)的条形,其范围从0到100。所确定的校准简档可以被保存并用于在捕获各种类型的图像时为TV确定适当的亮度设置,诸如捕获暗图像的(一个或多个)适当的亮度设置以及捕获亮图像的(一个或多个)适当的亮度设置。
图8图示了根据本文描述的技术的一些实施例的示例过程800,该示例过程800使用从过程700获得的经训练的机器学习模型来增强图像。过程800可以由任何合适的计算设备执行。作为示例,过程800可以由参考图1A-B描述的图像增强系统111执行。
过程800在方框802处开始,在那里系统访问图像以进行增强。在一些实施例中,系统可以被配置为访问由成像设备(例如,数码相机或其成像传感器)捕获的图像。例如,系统可以访问当设备用于捕获场景的照片时捕获的图像。作为另一个示例,当设备被用于捕获视频时,系统可以访问视频的帧。在一些实施例中,系统可以被配置为在设备将图像处理应用于捕获的图像之前访问图像(例如,如以上参考图1B所描述的)。在一些实施例中,系统可以包括安装在设备(例如,智能电话)上的应用,该应用访问由该设备(例如,通过智能电话的数码相机)捕获的图像。该应用可以在将捕获的图像显示给用户之前访问图像。
接下来,过程800前进到方框804,在那里系统将在方框802处访问的图像提供给经训练的机器学习模型。例如,系统可以将在方框802处访问的图像提供给使用本文参考图7描述的过程700训练的机器学习模型。在一些实施例中,系统可以被配置为通过提供图像像素值作为对机器学习模型的输入来提供图像作为对机器学习模型的输入。例如,图像可以是1000x1000像素的图像。系统可以在每个像素处提供像素值作为对机器学习模型的输入。在一些实施例中,系统可以被配置为将图像展平为像素值的集合。例如,系统可以:(1)将
500x500像素的图像展平为250000x1像素值的数组;并且(2)提供该数组作为机器学习模型的输入。为了说明,机器学习模型(例如,CNN)可能具有多个输入。系统可以被配置为提供来自图像的像素值作为多个输入。
在一些实施例中,系统可以被配置为通过以下方式将图像作为输入提供给机器学习模型:(1)将图像划分为多个部分;并且(2)将每个部分作为输入提供给机器学习模型。例如,系统可以提供图像的每个部分的像素值作为对机器学习模型的输入。系统可以将图像的一部分的像素值作为数组输入到机器学习模型。
在一些实施例中,系统可以被配置为获得与提供给机器学习模型的输入图像对应的增强的输出图像。在一些实施例中,系统可以被配置为通过以下方式获得增强的输出图像:(1)响应于将要增强的图像的像素值提供给机器学习模型而获得多个像素值;并且(2)根据所获得的像素值生成增强图像。例如,机器学习模型可以是CNN,如本文所述。在这个示例中,可以将像素值作为输入提供给CNN的第一卷积层。
在方框804处将图像作为输入提供给机器学习模型之后,过程800前进到方框806,在那里系统从机器学习模型的输出获得增强的图像。在一些实施例中,系统可以被配置为从机器学习模型获得增强的图像的像素值。例如,机器学习模型可以输出像素值的250000x1数组,该数组指定500x500输出图像的像素处的像素值。在一些实施例中,系统可以被配置为:(1)从机器学习模型获得输入图像的多个部分的增强版本;并且(2)组合增强的图像部分以生成增强的图像。本文参考图5B-C描述了用于将图像部分作为输入提供给机器学习模型并组合与输入图像部分对应的输出的示例过程。
在一些实施例中,在系统从机器学习模型的输出获得增强的图像之后,过程800结束。例如,系统可以输出增强的图像。在一些实施例中,系统可以被配置为存储增强的图像。例如,系统可以将增强的图像存储在设备(例如,智能电话)的硬盘驱动器上。在一些实施例中,系统可以被配置为传递增强的图像以用于附加的图像处理。例如,设备可以具有应用于照片的附加图像增强处理,其可以被应用于从机器学习模型获得的增强的图像。
在一些实施例中,在从机器学习模型的输出获得增强的图像之后,过程800返回到方框802(如从方框806到方框802的虚线所指示的),在那里系统访问另一个图像以进行增强。例如,系统可以从正由成像设备捕获或先前捕获的视频接收视频帧的序列。系统可以被配置为对视频的每个帧执行方框802-806的步骤。在一些实施例中,系统可以实时地增强每个视频帧,使得观看视频的馈送的设备的用户可以观看增强的视频帧。如果视频是在弱光下捕获的(例如,日落之后在户外),那么系统可以增强捕获的视频的每一帧,使得增强在成像设备的显示器上观看的视频(例如,点亮颜色)。作为另一个示例,系统可以对由成像设备捕获的一系列照片执行方框802-806的步骤。
图9示出了其中可以实现各个方面的特别配置的分布式计算机系统900的框图。如图所示,分布式计算机系统900包括交换信息的一个或多个计算机系统。更具体而言,分布式计算机系统900包括计算机系统902、904和906。如图所示,计算机系统902、904和906通过通信网络908互连并且可以通过通信网络908交换数据。网络908可以包括计算机系统可以通过其交换数据的任何通信网络。为了使用网络908交换数据,计算机系统902、904和906以及网络908可以使用各种方法、协议和标准,其中尤其包括光纤通道、令牌环、以太网、无线以太网、蓝牙、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS6、JSON、SOAP、CORBA、REST和Web服务。为了确保数据传送是安全的,计算机系统902、904和906可以使用包括例如SSL或VPN技术在内的各种安全措施经由网络908来传输数据。虽然分布式计算机系统900图示了三个联网的计算机系统,但是分布式计算机系统900不限于此并且可以包括使用任何介质和通信协议联网的任何数量的计算机系统和计算设备。
如图9中所示,计算机系统902包括处理器910、存储器912、互连元件914、接口916和数据存储元件918。为了实现本文公开的方面、功能和过程中的至少一些,处理器910执行一系列指令,这些指令导致被操纵的数据。处理器910可以是任何类型的处理器、多处理器或控制器。示例处理器可以包括市售处理器,诸如Intel Xeon、Itanium、Core、Celeron或Pentium处理器;AMD Opteron处理器;苹果A10或A5处理器;Sun UltraSPARC处理器;IBMPower5+处理器;IBM大型机芯片;或量子计算机。处理器910通过互连元件914连接到其它系统组件,包括一个或多个存储器设备912。
存储器912在计算机系统902的操作期间存储程序(例如,编码为可由处理器910执行的指令序列)和数据。因此,存储器912可以是相对高性能的易失性随机存取存储器,诸如动态随机存取存储器(“DRAM”)或静态存储器(“SRAM”)。但是,存储器912可以包括用于存储数据的任何设备,诸如盘驱动器或其它非易失性存储设备。各种示例可以将存储器912组织成特定的并且在一些情况下是独特的结构,以执行本文公开的功能。这些数据结构的尺寸和组织被设计为存储特定数据的值和数据的类型。
计算机系统902的组件通过诸如互连机构914之类的互连元件耦合。互连元件914可以包括与诸如IDE、SCSI、PCI和InfiniBand之类的专用或标准计算总线技术相一致的系统组件之间的任何通信耦合(诸如一条或多条物理总线)。互连元件914使得包括指令和数据的通信能够在计算机系统902的系统组件之间交换。
计算机系统902还包括一个或多个接口设备916,诸如输入设备、输出设备和组合输入/输出设备。接口设备可以接收输入或提供输出。更特别地,输出设备可以渲染信息以供外部呈现。输入设备可以接受来自外部源的信息。接口设备的示例包括键盘、鼠标设备、轨迹球、麦克风、触摸屏、打印设备、显示屏、扬声器、网络接口卡等。接口设备允许计算机系统902交换信息并与外部实体(诸如用户和其它系统)通信。
数据存储元件918包括计算机可读和可写的非易失性或非暂态数据存储介质,其中存储有定义由处理器910执行的程序或其它对象的指令。数据存储元件918还可以包括记录在介质上或介质中的信息,并且该信息在程序执行期间由处理器910处理。更具体而言,信息可以被存储在被特别被配置为节省存储空间或增加数据交换性能的一个或多个数据结构中。指令可以被持久地存储为编码的信号,并且指令可以使处理器910执行本文描述的任何功能。介质可以是例如光盘、磁盘或闪存等。在操作中,处理器910或某个其它控制器使数据从非易失性记录介质中读取到另一个存储器(诸如存储器912)中,与包括在数据存储元件918中的存储介质相比,该存储器允许处理器910更快地访问信息。存储器可以位于数据存储元件918中或存储器912中,但是,处理器910在存储器内操纵数据,然后在处理完成之后将数据复制到与数据存储元件918相关联的存储介质。各种组件可以管理存储介质与其它存储器元件之间的数据移动,并且示例不限于特定的数据管理组件。另外,示例不限于特定的存储器系统或数据存储系统。
虽然通过示例的方式将计算机系统902示为可以在其上实践各种方面和功能的一种类型的计算机系统,但是各方面和功能不限于在如图9中所示的计算机系统902上实现。可以在具有与图9所示的体系架构或组件不同的体系架构或组件的一个或多个计算机上实践各种方面和功能。例如,计算机系统902可以包括专门编程的专用硬件,诸如经调整以执行本文公开的特定操作的专用集成电路(“ASIC”)。但是另一个示例可以使用具有MotorolaPowerPC处理器的运行带有MAC OS System X的几个通用计算设备以及运行专有硬件和操作系统的几个专用计算设备的网格来执行相同的功能。
计算机系统902可以是包括操作系统的计算机系统,该操作系统管理计算机系统902中包括的硬件元件的至少一部分。在一些示例中,处理器或控制器(诸如处理器910)执行操作系统。可以被执行的特定操作系统的示例包括基于Windows的操作系统(诸如
Windows NT、Windows 2000(Windows ME)、Windows XP、Windows Vista或Windows6、8或6操作系统,可从Microsoft Corporation获得)、可从Apple Computer获得的MAC OSSystem X操作系统或iOS操作系统、可从Red Hat Inc.获得的许多基于Linux的操作系统发行之一(例如,Enterprise Linux操作系统)、可从Oracle Corporation获得的Solaris操作系统,或者可从各种来源获得的UNIX操作系统。可以使用许多其它操作系统,并且示例不限于任何特定的操作系统。
处理器910和操作系统一起定义计算机平台,针对该计算机平台编写高级编程语言的应用。这些组件应用可以是可执行的、中间的、字节码或解释的代码,它们使用通信协议(例如,TCP/IP)在通信网络(例如,互联网)上通信。类似地,可以使用面向对象的编程语言(诸如.Net、SmallTalk、Java、C++、Ada、C#(C-Sharp)、Python或JavaScript)来实现各方面。也可以使用其它面向对象的编程语言。可替代地,可以使用功能性、脚本或逻辑编程语言。
此外,各种方面和功能可以在非编程环境中实现。例如,以HTML、XML或其它格式创建的文档在浏览器程序的窗口中查看时,可以渲染图形用户界面的各方面或执行其它功能。另外,各种示例可以被实现为编程的或非编程的元素或其任何组合。例如,网页可以使用HTML来实现,而从网页内调用的数据对象可以用C++编写。因此,示例不限于具体的编程语言并且可以使用任何适当的编程语言。因而,本文公开的功能组件可以包括被配置为执行本文描述的功能的各种元素(例如,专用硬件、可执行代码、数据结构或对象)。
在一些示例中,本文公开的组件可以读取影响由组件执行的功能的参数。这些参数可以物理地存储在任何形式的合适存储器中,包括易失性存储器(诸如RAM)或非易失性存储器(诸如磁性硬盘驱动器)。此外,这些参数可以被逻辑地存储在适当的数据结构(诸如由用户空间应用定义的数据库或文件)中或共同共享的数据结构(如由操作系统定义的应用注册表)中。此外,一些示例还提供了系统界面和用户界面两者,这些界面允许外部实体修改参数,从而配置组件的行为。
基于前面的公开,对于本领域的普通技术人员应当显而易见的是,本文公开的实施例不限于特定的计算机系统平台、处理器、操作系统、网络或通信协议。而且,应当显而易见的是,本文公开的实施例不限于具体的体系架构。
应当认识到的是,本文描述的方法和装置的实施例在应用中不限于在以下描述中阐述或在附图中示出的组件的构造和布置的细节。方法和装置能够在其它实施例中实现并且能够以各种方式被实践或执行。本文提供的具体实施方式的示例仅出于说明性目的,并且不旨在进行限制。特别地,结合任何一个或多个实施例描述的动作、元件和特征不旨在被排除在任何其它实施例中的类似角色之外。
术语“大约”、“基本上”和“约”在一些实施例中可以用来表示在目标值的±20%之内,在一些实施例中在目标值的±10%之内,在一些实施例中在目标值的±5%之内,还有在一些实施例中在目标值的±2%之内。术语“大约”和“约”可以包括目标值。
至此已经描述了本发明的至少一个实施例的几个方面,本领域技术人员将容易认识到各种变更、修改和改进。这样的变更、修改和改进旨在作为本公开的一部分,并且旨在落入本发明的精神和范围内。因而,前面的描述和附图仅作为示例。
/>
/>
/>
Claims (29)
1.一种计算机实现的处理图像的方法,所述方法包括:
使用至少一个处理器来执行:
获取输入图像,所述输入图像包括具有第一位深度的像素强度值的像素;
至少部分地通过将第一非线性变换应用于所述输入图像的像素强度值,对所述输入图像进行量化,以生成经量化的输入图像,所述经量化的输入图像包括第二位深度的像素强度值,其中,所述第二位深度小于所述第一位深度;以及
提供所述经量化的输入图像以用于图像处理。
2.根据权利要求1所述的方法,其中,对所述输入图像进行量化包括:
通过将所述第一非线性变换应用于所述输入图像的像素强度值,来获得经变换的输入图像;以及
将满射映射应用于所述经变换的输入图像的像素强度值,以获得所述经量化的输入图像,其中,所述满射映射将所述第一位深度的像素强度值映射到所述第二位深度的像素强度值。
3.根据权利要求2所述的方法,其中,
所述第二位深度包括第一像素强度和第二像素强度,其中,所述第一像素强度小于所述第二像素强度;以及
对所述输入图像进行量化包括:比起映射到所述第二像素强度,将所述第一位深度的更少数量的像素强度映射到所述第一像素强度。
4.根据权利要求1所述的方法,还包括:
获取来自所述图像处理管线的输出图像,所述输出图像包括所述第二位深度的像素强度值;以及
至少部分地通过将第二非线性变换应用于所述输出图像的像素强度值,来对所述输出图像进行反量化,以生成经反量化的输出图像,所述经反量化的输出图像包括所述第一位深度的像素强度值。
5.根据权利要求4所述的方法,其中,所述第二非线性变换包括所述第一非线性变换的逆变换。
6.根据权利要求1所述的方法,其中,将所述经量化的输入图像提供到所述图像处理管线包括:将所述经量化的输入图像提供到神经处理器。
7.根据权利要求1所述的方法,其中,将所述经量化的输入图像提供到所述图像处理管线包括:将所述经量化的输入图像提供到数字信号处理器(DSP)。
8.根据权利要求1所述的方法,其中,所述图像处理管线包括具有比所述至少一个处理器的功率更低的功率的一个或多个处理器。
9.根据权利要求1所述的方法,其中,所述第一位深度为10位、12位、14位或16位。
10.根据权利要求1所述的方法,其中,所述第二位深度为8位。
11.根据权利要求1所述的方法,其中,
所述第一位深度为10位、12位、14位或16位;以及
所述第二位深度为8位。
12.根据权利要求1所述的方法,其中,
所述图像处理管线包括机器学习模型,所述机器学习模型是使用包括所述第二位深度的像素强度值的经量化的图像来训练的;以及
将所述经量化的输入图像提供到所述图像处理管线包括:将所述经量化的输入图像提供到所述机器学习模型,以获得经增强的输出图像。
13.一种图像处理系统,所述系统包括:
非易失性存储器,所述非易失性存储器包含用于图像处理应用程序的多个指令;以及
至少一个处理器,所述至少一个处理器通过所述图像处理应用程序的执行而被指引为:
获取输入图像,所述输入图像包括具有第一位深度的像素强度值的像素;
至少部分地通过将第一非线性变换应用于所述输入图像的像素强度值来对所述输入图像进行量化,以生成经量化的输入图像,所述经量化的输入图像包括第二位深度的像素强度值,其中,所述第二位深度小于所述第一位深度;以及
提供所述经量化的输入图像以用于图像处理。
14.根据权利要求1所述的方法,还包括非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有多个指令,所述多个指令在被至少一个处理器执行时使得所述至少一个处理器:
获取输入图像,所述输入图像包括具有第一位深度的像素强度值的像素;
至少部分地通过将第一非线性变换应用于所述输入图像的像素强度值来对所述输入图像进行量化,以生成经量化的输入图像,所述经量化的输入图像包括第二位深度的像素强度值,其中,所述第二位深度小于所述第一位深度;以及
提供所述经量化的输入图像以用于图像处理。
15.一种计算机实现的训练用于图像增强的机器学习模型的方法,所述方法包括:
使用至少一个处理器来执行:
获取多幅图像,所述图像包括第一位深度的像素强度值;
至少部分地通过将非线性变换应用于所述多幅图像的像素强度值来对所述多幅图像进行量化,以生成多幅经量化的图像,所述经量化的图像包括第二位深度的像素强度值,其中,所述第二位深度小于所述第一位深度;以及
使用所述多幅经量化的图像来训练所述机器学习模型。
16.根据权利要求15所述的方法,其中,所述多幅图像包括输入图像和目标输出图像,并且使用所述多幅经量化的图像来训练所述机器学习模型包括:将监督学习算法应用于经量化的输入图像和经量化的目标输出图像。
17.根据权利要求15所述的方法,其中,所述机器学习模型包括神经网络。
18.根据权利要求15所述的方法,其中,使用所述多幅经量化的图像来训练所述机器学习模型包括:训练所述机器学习模型以对输入图像进行去噪。
19.一种计算机实现的增强图像的方法,所述方法包括:
使用至少一个处理器来执行:
获取待增强的输入图像;
将非线性变换应用于所述输入图像的多个像素强度值,以获得经变换的输入图像;
使用所述经变换的输入图像,来生成待提供给经训练的机器学习模型的输入;以及
将生成的所述输入提供给所述经训练的机器学习模型,以获得经增强的输出图像。
20.根据权利要求19所述的方法,其中,
所述输入图像在所述输入图像的所述多个像素强度值上具有噪声特性的第一方差;
所述经变换的输入图像在所述输入图像的所述多个像素强度值上具有所述噪声特性的第二方差;以及
所述第二方差小于所述第一方差。
21.根据权利要求20所述的方法,其中,所述噪声特性是噪声标准偏差。
22.根据权利要求19所述的方法,其中,所述经训练的机器学习模型被训练为对所述输入进行去噪。
23.根据权利要求19所述的方法,其中,所述经训练的机器学习模型包括神经网络。
24.根据权利要求19所述的方法,其中,所述经训练的机器学习模型是通过将监督训练算法应用于训练数据而生成的。
25.根据权利要求19所述的方法,其中,
所述输入图像包括第一位深度的像素强度值;
使用所述经变换的输入图像生成所述输入包括:
对所述经变换的输入图像进行量化,以获得经量化的输入图像,所述经量化的输入图像包括第二位深度的像素强度值,其中,所述第二位深度小于所述第一位深度;以及
将生成的所述输入提供给所述经训练的机器学习模型包括:将所述经量化的输入图像作为所述输入提供给所述经训练的机器学习模型。
26.根据权利要求25所述的方法,其中,对所述经变换的输入图像进行量化包括:将满射映射应用于所述经变换的输入图像的像素强度值,其中,所述满射映射将所述第一位深度的像素强度值映射到所述第二位深度的像素强度值。
27.根据权利要求26所述的方法,其中,
所述第二位深度包括第一像素强度和第二像素强度,其中,所述第一像素强度小于所述第二像素强度;以及
对所述输入图像进行量化包括:比起映射到所述第二像素强度,将所述第一位深度的更少数量的像素强度映射到所述第一像素强度。
28.一种图像处理系统,所述系统包括:
非易失性存储器,所述非易失性存储器包含用于图像处理应用程序的多个指令;以及
至少一个处理器,所述至少一个处理器通过所述图像处理应用程序的执行而被指引为:
获取待增强的输入图像;
将非线性变换应用于所述输入图像的像素强度值,以获得经变换的输入图像;
使用所述经变换的输入图像来生成待提供给经训练的机器学习模型的输入;以及
将生成的所述输入提供给所述经训练的机器学习模型,以获得经增强的输出图像。
29.根据权利要求19所述的方法,所述方法还包括非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有多个指令,所述多个指令在被至少一个处理器执行时使得所述至少一个处理器:
获取待增强的输入图像;
将非线性变换应用于所述输入图像的像素强度值,以获得经变换的输入图像;
使用所述经变换的输入图像来生成待提供给经训练的机器学习模型的输入;以及
将生成的所述输入提供给所述经训练的机器学习模型,以获得经增强的输出图像。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063047875P | 2020-07-02 | 2020-07-02 | |
US63/047,875 | 2020-07-02 | ||
PCT/US2021/040376 WO2022006556A1 (en) | 2020-07-02 | 2021-07-02 | Systems and methods of nonlinear image intensity transformation for denoising and low-precision image processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117916765A true CN117916765A (zh) | 2024-04-19 |
Family
ID=79166340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180054409.XA Pending CN117916765A (zh) | 2020-07-02 | 2021-07-02 | 用于去噪和低精度图像处理的非线性图像强度变换的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220004798A1 (zh) |
EP (1) | EP4154171A1 (zh) |
JP (1) | JP2023532228A (zh) |
KR (1) | KR20230034302A (zh) |
CN (1) | CN117916765A (zh) |
WO (1) | WO2022006556A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023224509A1 (en) * | 2022-05-19 | 2023-11-23 | Huawei Technologies Co., Ltd. | Method for transforming data and related device |
CN117830184B (zh) * | 2024-03-06 | 2024-05-31 | 陕西长空齿轮有限责任公司 | 一种金相图像增强方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE602004014901D1 (de) * | 2004-04-29 | 2008-08-21 | Mitsubishi Electric Corp | Adaptive Quantisierung einer Tiefenkarte |
SE536510C2 (sv) * | 2012-02-21 | 2014-01-14 | Flir Systems Ab | Bildbehandlingsmetod för detaljförstärkning och brusreduktion |
CN110999301B (zh) * | 2017-08-15 | 2023-03-28 | 杜比实验室特许公司 | 位深度高效图像处理 |
US10885384B2 (en) * | 2018-11-15 | 2021-01-05 | Intel Corporation | Local tone mapping to reduce bit depth of input images to high-level computer vision tasks |
-
2021
- 2021-07-02 JP JP2022578793A patent/JP2023532228A/ja active Pending
- 2021-07-02 EP EP21831543.0A patent/EP4154171A1/en not_active Withdrawn
- 2021-07-02 US US17/367,216 patent/US20220004798A1/en active Pending
- 2021-07-02 KR KR1020237001757A patent/KR20230034302A/ko active Search and Examination
- 2021-07-02 CN CN202180054409.XA patent/CN117916765A/zh active Pending
- 2021-07-02 WO PCT/US2021/040376 patent/WO2022006556A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20230034302A (ko) | 2023-03-09 |
WO2022006556A1 (en) | 2022-01-06 |
JP2023532228A (ja) | 2023-07-27 |
US20220004798A1 (en) | 2022-01-06 |
EP4154171A1 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995800B2 (en) | Artificial intelligence techniques for image enhancement | |
US11854167B2 (en) | Photographic underexposure correction using a neural network | |
CN110619593B (zh) | 一种基于动态场景的双曝光视频成像系统 | |
EP1583033A2 (en) | Digital cameras with luminance correction | |
CN111565261B (zh) | 图像处理方法、装置及电子设备 | |
CN117916765A (zh) | 用于去噪和低精度图像处理的非线性图像强度变换的系统和方法 | |
WO2023086194A1 (en) | High dynamic range view synthesis from noisy raw images | |
CN102339461A (zh) | 图像增强方法和设备 | |
JP2012003455A (ja) | 画像処理装置、撮像装置および画像処理プログラム | |
CN112819699A (zh) | 视频处理方法、装置及电子设备 | |
US11640654B2 (en) | Image processing method and apparatus | |
JP2011100204A (ja) | 画像処理装置、画像処理方法、画像処理プログラム、撮像装置及び電子機器 | |
US8164650B2 (en) | Image processing apparatus and method thereof | |
WO2023215371A1 (en) | System and method for perceptually optimized image denoising and restoration | |
WO2021093718A1 (zh) | 视频处理方法、视频修复方法、装置及设备 | |
US11983853B1 (en) | Techniques for generating training data for machine learning enabled image enhancement | |
Hristova et al. | High-dynamic-range image recovery from flash and non-flash image pairs | |
Chaki | A two-fold fusion fuzzy framework to restore non-uniform illuminated blurred image | |
Adams et al. | Perceptually based image processing algorithm design | |
Shaffa | A Region-based Histogram and Fusion Technique for Enhancing Backlit Images for Cell Phone Applications | |
CN118302788A (zh) | 从有噪原始图像进行高动态范围视图合成 | |
Mann et al. | The Fundamental Basis of HDR: Comparametric Equations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |