用于優(yōu)化數(shù)字相機(jī)中圖像質(zhì)量的系統(tǒng)和方法
【專利摘要】公開了用于優(yōu)化數(shù)字相機(jī)中圖像質(zhì)量的系統(tǒng)和方法。數(shù)字相機(jī)包括配置為基于由數(shù)字相機(jī)所采集的原始圖像來生成經(jīng)優(yōu)化的圖像的圖像優(yōu)化引擎。圖像優(yōu)化引擎實現(xiàn)一個或多個機(jī)器學(xué)習(xí)引擎以選擇隨后可用來渲染原始圖像的渲染算法和渲染算法引數(shù)。
【專利說明】用于優(yōu)化數(shù)字相機(jī)中圖像質(zhì)量的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總地涉及數(shù)字?jǐn)z影,并且更具體地,涉及用于優(yōu)化數(shù)字相機(jī)中圖像質(zhì)量的系統(tǒng)和方法。
【背景技術(shù)】
[0002]數(shù)字?jǐn)z影的普及在過去十年里突飛猛進(jìn),這主要是由于在諸如手機(jī)的移動設(shè)備中包含了數(shù)字相機(jī)。由于數(shù)字相機(jī)技術(shù)改進(jìn),導(dǎo)致數(shù)字圖像分辨率的增加,越來越多的人們已達(dá)到完全依靠基于手機(jī)的數(shù)字相機(jī)用于所有攝影需求。用戶需要快速拍攝具有專業(yè)質(zhì)量的照片的能力,并且因此,大部分現(xiàn)代數(shù)字相機(jī)現(xiàn)在包括實現(xiàn)眾多圖像處理算法并可用來改進(jìn)數(shù)字圖像質(zhì)量的圖像信號處理器(ISP)。
[0003]典型地,相機(jī)從傳感器獲得圖像被稱為“圖像采集”,并且將圖像處理算法應(yīng)用到原始圖像以產(chǎn)生經(jīng)優(yōu)化的圖像的過程被稱為“圖像渲染”。提供這種處理的算法被稱為“渲染算法”并且包括但不限于噪聲降低、自動白平衡調(diào)節(jié)、色調(diào)校正、銳化、顏色增強(qiáng)等。典型地,每個渲染算法的精密操作由具體引數(shù)(argument)所控制。例如,顏色飽和度算法可由引數(shù)所控制,該引數(shù)是高于或低于某一標(biāo)準(zhǔn)值的飽和度的百分比。這些算法可以完全實現(xiàn)在硬件、數(shù)字信號處理器上的固件、如圖形處理單元(GPU)的可編程引擎上的特殊代碼、或軟件或以上的某一組合中。
[0004]每個這種算法典型地由算法設(shè)計師基于設(shè)計師關(guān)于計算攝影的經(jīng)驗來手動地設(shè)計和實現(xiàn)。因此,許多設(shè)計師已在與圖像質(zhì)量相關(guān)的狹窄領(lǐng)域中變成專家。例如,給定的設(shè)計師可在針對“噪聲降低”或針對控制“白平衡”的設(shè)計算法方面被視為專家??紤]到產(chǎn)生高質(zhì)量圖像所要求的巨大數(shù)量的算法以及在處理來自數(shù)字傳感器的原始圖像中的各種問題,許多數(shù)字相機(jī)供應(yīng)商雇用一大批算法設(shè)計師,其中每個設(shè)計師具有設(shè)計和調(diào)整算法以校正或增強(qiáng)一個高度具體問題的廣泛經(jīng)驗。在許多情況下,這些算法要求來自數(shù)字相機(jī)的用戶的輸入以正確運(yùn)行。例如,給定的算法可要求描述用戶希望攝影的場景類型諸如“海灘”或“森林”的信息。算法隨后根據(jù)該用戶所提供的信息調(diào)節(jié)某些參數(shù)。
[0005]數(shù)字?jǐn)z影的當(dāng)前狀態(tài)的一個問題在于:數(shù)字相機(jī)供應(yīng)商典型地投入大量時間和金錢設(shè)計要包括在ISP中的算法,并且盡管如此,許多數(shù)字相機(jī)仍然要求顯著的用戶交互以產(chǎn)生質(zhì)量過得去的圖像。該安排不太理想,因為盡管在ISP開發(fā)中投入了該大規(guī)模的時間和金錢,但是大部分?jǐn)?shù)字相機(jī)供應(yīng)商仍然達(dá)不到利用用戶期望的“傻瓜相機(jī)(point andshoot)”功能性來產(chǎn)生高質(zhì)量圖像。
[0006]因此,本領(lǐng)域需要的是用于實現(xiàn)數(shù)字相機(jī)中的圖像處理算法的更有效技術(shù)。
[0007]在技術(shù)開發(fā)的另一條路線中,已開發(fā)出豐富的機(jī)器學(xué)習(xí)技術(shù)集,其使機(jī)器學(xué)習(xí)引擎(MLE)能被訓(xùn)練為實現(xiàn)任意復(fù)雜的功能和算法。使用諸如監(jiān)督式學(xué)習(xí)、諸如人工神經(jīng)網(wǎng)絡(luò)(ANN)的MLE、或支持向量機(jī)(SVM)、或眾多其他MLE中的一個的技術(shù),可被訓(xùn)練為將新的但尚看不見的數(shù)據(jù)分類。MLE還可被訓(xùn)練為實現(xiàn)從新的但看不見的輸入到輸出的變換,該輸出與如由訓(xùn)練數(shù)據(jù)所表示的期望的理想輸出緊密地匹配。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的一個實施例闡述用于渲染圖像的方法,包括經(jīng)由包括在數(shù)字相機(jī)中的光學(xué)傳感器采集原始圖像、基于與原始圖像相關(guān)聯(lián)的像素值集來生成針對原始圖像的圖像統(tǒng)計集、使第一機(jī)器學(xué)習(xí)引擎選擇渲染算法以及與所選擇的渲染算法相對應(yīng)的渲染算法引數(shù)集;以及通過利用渲染算法和渲染算法引數(shù)集處理原始圖像來渲染經(jīng)優(yōu)化的圖像。
[0009]本文所描述的技術(shù)的優(yōu)勢在于:圖像優(yōu)化引擎內(nèi)的機(jī)器學(xué)習(xí)引擎可被訓(xùn)練為生成圖像而不要求設(shè)計師團(tuán)隊來創(chuàng)作以及調(diào)整大規(guī)模的算法合集。進(jìn)一步地,數(shù)字相機(jī)的用戶可以利用較少的手動相機(jī)控制取得更優(yōu)秀的經(jīng)優(yōu)化的圖像,從而改進(jìn)用戶體驗。
【專利附圖】
【附圖說明】
[0010]因此,可以詳細(xì)地理解本發(fā)明的上述特征,并且可以參考實施例得到對如上面所簡要概括的本發(fā)明更具體的描述,其中一些實施例在附圖中示出。然而,應(yīng)當(dāng)注意的是,附圖僅示出了本發(fā)明的典型實施例,因此不應(yīng)被認(rèn)為是對其范圍的限制,本發(fā)明可以具有其他等效的實施例。
[0011]圖1是示出了配置為實現(xiàn)本發(fā)明的一個或多個方面的計算機(jī)系統(tǒng)的框圖;
[0012]圖2是根據(jù)本發(fā)明的一個實施例的、用于圖1的計算機(jī)系統(tǒng)的并行處理子系統(tǒng)的框圖;
[0013]圖3是根據(jù)本發(fā)明的一個實施例的、示出了數(shù)字相機(jī)的框圖;
[0014]圖4A是根據(jù)本發(fā)明的一個實施例的、示出了配置為處理數(shù)字圖像的圖像優(yōu)化引擎的示意圖;
[0015]圖4B是根據(jù)本發(fā)明的一個實施例的、示出了訓(xùn)練圖4A中示出的圖像優(yōu)化引擎的示意圖;
[0016]圖5A是根據(jù)本發(fā)明的一個實施例的、示出了圖3中示出的圖像優(yōu)化引擎的另一個實施例的不意圖;
[0017]圖5B是根據(jù)本發(fā)明的一個實施例的、示出了訓(xùn)練圖5A中示出的圖像優(yōu)化引擎的示意圖;
[0018]圖6是根據(jù)本發(fā)明的一個實施例的、用于使用圖4A和4B的圖像優(yōu)化引擎處理數(shù)字圖像的方法步驟的流程圖;
[0019]圖7是根據(jù)本發(fā)明的一個實施例的、用于使用圖5A和5B的圖像優(yōu)化引擎處理數(shù)字圖像的方法步驟的流程圖;
[0020]圖8是根據(jù)本發(fā)明的一個實施例的、用于訓(xùn)練圖4A和4B的圖像優(yōu)化引擎的方法步驟的流程圖;以及
[0021]圖9是根據(jù)本發(fā)明的一個實施例的、用于訓(xùn)練圖5A和5B的圖像優(yōu)化引擎的方法步驟的流程圖。
【具體實施方式】
[0022]在下面的描述中,將闡述大量的具體細(xì)節(jié)以提供對本發(fā)明更透徹的理解。然而,本領(lǐng)域的技術(shù)人員應(yīng)該清楚,本發(fā)明可以在沒有一個或多個這些具體細(xì)節(jié)的情況下得以實施。在其他實例中,未描述公知特征以避免對本發(fā)明造成混淆。
[0023]系統(tǒng)概述
[0024]圖1為示出了配置為實現(xiàn)本發(fā)明的一個或多個方面的計算機(jī)系統(tǒng)100的框圖。計算機(jī)系統(tǒng)100包括中央處理單元(CPU) 102和包括設(shè)備驅(qū)動程序103的系統(tǒng)存儲器104。CPU102和系統(tǒng)存儲器104經(jīng)由可以包括存儲器橋105的互連路徑通信。存儲器橋105可以是例如北橋芯片,經(jīng)由總線或其他通信路徑106 (例如超傳輸(HyperTransport)鏈路)連接到輸入/輸出(I/O)橋107。I/O橋107,其可以是例如南橋芯片,從一個或多個用戶輸入設(shè)備108 (例如鍵盤、鼠標(biāo))接收用戶輸入并且經(jīng)由路徑106和存儲器橋105將該輸入轉(zhuǎn)發(fā)到CPU102。并行處理子系統(tǒng)112經(jīng)由總線或其他通信路徑113 (例如外圍部件互連(PCI)express、加速圖形端口(AGP)或超傳輸鏈路)耦連到存儲器橋105 ;在一個實施例中,并行處理子系統(tǒng)112是將像素傳遞到顯示設(shè)備110 (例如常規(guī)的基于陰極射線管(CRT)或液晶顯示器(IXD)的監(jiān)視器)的圖形子系統(tǒng)。系統(tǒng)盤114也連接到I/O橋107。交換器116提供I/O橋107與諸如網(wǎng)絡(luò)適配器118以及各種插卡120和121的其他部件之間的連接。其他部件(未明確示出),包括通用串行總線(USB)或其他端口連接、壓縮光盤(⑶)驅(qū)動器、數(shù)字視頻光盤(DVD)驅(qū)動器、膠片錄制設(shè)備及類似部件,也可以連接到I/O橋107。將圖1中的各種部件互連的通信路徑可以使用任何適合的協(xié)議實現(xiàn),諸如PC1、PC1-Express (PCIe),AGP、超傳輸或者任何其他總線或點(diǎn)到點(diǎn)通信協(xié)議,并且如本領(lǐng)域已知的,不同設(shè)備間的連接可使用不同協(xié)議。
[0025]在一個實施例中,并行處理子系統(tǒng)112包含經(jīng)優(yōu)化用于圖形和視頻處理的電路,包括例如視頻輸出電路,并且構(gòu)成圖形處理單元(GPU)。在另一個實施例中,并行處理子系統(tǒng)112包含經(jīng)優(yōu)化用于通用處理的電路,同時保留底層(underlying)的計算架構(gòu),本文將更詳細(xì)地進(jìn)行描述。在又一個實施例中,可以將并行處理子系統(tǒng)112與一個或多個其他系統(tǒng)元件集成起來,該其他系統(tǒng)元件諸如存儲器橋105、CPU102以及I/O橋107,以形成片上系統(tǒng)(SoC)。
[0026]應(yīng)該理解,本文所示系統(tǒng)是示例性的,并且變化和修改都是可能的。連接拓?fù)?,包括橋的?shù)目和安排、CPU102的數(shù)目以及并行處理子系統(tǒng)112的數(shù)目,可根據(jù)需要修改。例如,在一些實施例中,系統(tǒng)存儲器104直接連接到CPU102而不是通過橋,并且其他設(shè)備經(jīng)由存儲器橋105和CPU102與系統(tǒng)存儲器104通信。在其他替代性拓?fù)渲校⑿刑幚碜酉到y(tǒng)112連接到I/O橋107或直接連接到CPU102,而不是連接到存儲器橋105。而在其他實施例中,I/O橋107和存儲器橋105可能被集成到單個芯片上。大型實施例可以包括兩個或兩個以上的CPU102以及兩個或兩個以上的并行處理系統(tǒng)112。本文所示的特定部件是可選的;例如,任何數(shù)目的插卡或外圍設(shè)備都可能得到支持。在一些實施例中,交換器116被去掉,網(wǎng)絡(luò)適配器118和插卡120、121直接連接到I/O橋107。
[0027]圖2示出了根據(jù)本發(fā)明的一個實施例的并行處理子系統(tǒng)112。如所示的,并行處理子系統(tǒng)112包括一個或多個并行處理單元(PI3U) 202,每個并行處理單元202都耦連到本地并行處理(PP)存儲器204。通常,并行處理子系統(tǒng)包括U個PPU,其中U≥I。(本文中,類似對象的多個實例需要時以標(biāo)識對象的參考數(shù)字和標(biāo)識實例的括號中的數(shù)字來表示。)PPU202和并行處理存儲器204可使用一個或多個集成電路設(shè)備來實現(xiàn),諸如可編程處理器、專用集成電路(ASIC)或存儲器設(shè)備,或者以任何其他技術(shù)可行的方式來實現(xiàn)。[0028]再參考圖1,在一些實施例中,并行處理子系統(tǒng)112中的一些或所有PPU202是具有渲染管線的圖形處理器,其可以配置為實施與下述相關(guān)的各種任務(wù):經(jīng)由存儲器橋105和總線113從CPU102和/或系統(tǒng)存儲器104所供應(yīng)的圖形數(shù)據(jù)生成像素數(shù)據(jù),與本地并行處理存儲器204 (可被用作圖形存儲器,包括例如常規(guī)幀緩沖區(qū)(buffer))交互以存儲和更新像素數(shù)據(jù),傳遞像素數(shù)據(jù)到顯示設(shè)備110等等。在一些實施例中,并行處理子系統(tǒng)112可包括一個或多個作為圖形處理器而操作的PPU202以及一個或多個用于通用計算的其他PPU202。這些PTO可以是同樣的或不同的,并且每個PPU可具有其自身的專用并行處理存儲器設(shè)備或不具有專用并行處理存儲器設(shè)備。一個或多個PPU202可輸出數(shù)據(jù)到顯示設(shè)備110,或者每個PPU202可輸出數(shù)據(jù)到一個或多個顯示設(shè)備110。
[0029]在操作中,CPU102是計算機(jī)系統(tǒng)100的主處理器,控制和協(xié)調(diào)其他系統(tǒng)部件的操作。具體地,CPU102發(fā)出控制PPU202的操作的命令。在一些實施例中,CPU102寫入用于每個PPU202的命令流到入棧緩沖區(qū)(pushbuffer)中(在圖1或圖2中未明確示出),該入棧緩沖區(qū)可位于系統(tǒng)存儲器104、并行處理存儲器204、或CPU102和PPU202都可訪問的其他存儲位置中。PPU202從入棧緩沖區(qū)讀取命令流,然后相對于CPU102的操作異步地執(zhí)行命令。
[0030]現(xiàn)在返回參考圖2,每個PPU202包括經(jīng)由連接到存儲器橋105 (或者,在一個替代性實施例中,直接連接到CPU102)的通信路徑113與計算機(jī)系統(tǒng)100的其余部分通信的I/O單元205。PPU202到計算機(jī)系統(tǒng)100的其余部分的連接也可以變化。在一些實施例中,并行處理子系統(tǒng)112可實現(xiàn)為可插入到計算機(jī)系統(tǒng)100的擴(kuò)展槽中的插卡。在其他實施例中,PPU202可以和諸如存儲器橋105或I/O橋107的總線橋集成在單個芯片上。而在其他實施例中,PPU202的一些或所有元件可以和CPU102集成在單個芯片上。
[0031]在一個實施例中,通信路徑113是PCIe鏈路,如本領(lǐng)域所知的,其中專用通道被分配到每個PPU202。也可以使用其他通信路徑。I/O單元205生成用于在通信路徑113上傳送的包(或其他信號),并且還從通信路徑113接收所有傳入的包(或其他信號),將傳入的包引導(dǎo)到PPU202的適當(dāng)部件。例如,可將與處理任務(wù)相關(guān)的命令引導(dǎo)到主機(jī)接口 206,而將與存儲器操作相關(guān)的命令(例如,對并行處理存儲器204的讀取或?qū)懭?引導(dǎo)到存儲器交叉開關(guān)單元210。主機(jī)接口 206讀取每個入棧緩沖區(qū),并且將由入棧緩沖區(qū)所指定的工作輸出到前端212。
[0032]有利地,每個PPU202都實現(xiàn)高度并行處理架構(gòu)。如詳細(xì)示出的,PPU202 (O)包括處理集群陣列230,該陣列230包括C個通用處理集群(GPC)208,其中C≤I。每個GPC208能夠并發(fā)執(zhí)行大量的(例如,幾百或幾千)線程,其中每個線程是程序的實例(instance)。在各種應(yīng)用中,可分配不同的GPC208用于處理不同類型的程序或用于實施不同類型的計算。例如,在圖形應(yīng)用中,可以分配第一 GPC208集以實施曲面細(xì)分(tessellation)操作以及產(chǎn)生用于補(bǔ)丁的基元拓?fù)?,可以分配第?GPC208集以實施曲面細(xì)分著色(shading)以評估用于基元拓?fù)涞难a(bǔ)丁參數(shù)以及確定頂點(diǎn)位置和每個頂點(diǎn)的其他屬性。GPC208的分配可以取決于因每種類型的程序或計算所產(chǎn)生的工作量而變化。
[0033]GPC208經(jīng)由工作分布單元200接收所要執(zhí)行的處理任務(wù),工作分布單元200從前端單元212接收定義處理任務(wù)的命令。處理任務(wù)包括所要處理的數(shù)據(jù)的索引,例如表面(補(bǔ)丁)數(shù)據(jù)、基元數(shù)據(jù)、`頂點(diǎn)數(shù)據(jù)、和/或像素數(shù)據(jù),以及定義數(shù)據(jù)將被如何處理(例如,什么程序?qū)⒈粓?zhí)行)的狀態(tài)參數(shù)和命令。工作分布單元200可配置為獲取與任務(wù)相對應(yīng)的索引,或者工作分布單元200可從前端212接收索引。前端212確保在由入棧緩沖區(qū)所指定的處理發(fā)起前,將GPC208配置為有效狀態(tài)。
[0034]當(dāng)PPU202用于圖形處理時,例如,將用于每個補(bǔ)丁的處理工作量分成近似相等大小的任務(wù)以使曲面細(xì)分處理分布到多個GPC208。工作分布單元200可配置為以能夠?qū)⑷蝿?wù)提供到多個GPC208用于處理的頻率來產(chǎn)生任務(wù)。相比之下,在常規(guī)系統(tǒng)中,處理典型地由單個處理引擎實施,而其他處理引擎保持空閑,在開始它們的處理任務(wù)之前等待單個處理引擎完成其任務(wù)。在本發(fā)明的一些實施例中,部分GPC208配置為實施不同類型的處理。例如,第一部分可配置為實施頂點(diǎn)著色和拓?fù)渖?,第二部分可配置為實施曲面?xì)分和幾何著色,以及第三部分可配置為實施屏幕空間中的像素著色以產(chǎn)生經(jīng)渲染的圖像。由GPC208所產(chǎn)生的中間數(shù)據(jù)可被存儲在緩沖區(qū)中以允許中間數(shù)據(jù)在GPC208之間被傳送用于進(jìn)一步處理。
[0035]存儲器接口 214包括D個分區(qū)單元215,每個分區(qū)單元215直接耦連到并行處理存儲器204的一部分,其中D≥I。如所示的,分區(qū)單元215的數(shù)目一般等于DRAM220的數(shù)目。在其他實施例中,分區(qū)單元215的數(shù)目也可以不等于存儲器設(shè)備的數(shù)目。本領(lǐng)域的技術(shù)人員應(yīng)該理解動態(tài)隨機(jī)存取存儲器(DRAM) 220可以用其他合適的存儲設(shè)備來替代并且可以是一般常規(guī)的設(shè)計。因此省略了詳細(xì)描述。諸如幀緩沖區(qū)或紋理映射圖的渲染目標(biāo)可以跨DRAM220加以存儲,這允許分區(qū)單元215并行寫入每個渲染目標(biāo)的各部分以有效地使用并行處理存儲器204的可用帶寬。
[0036]任何一個GPC208都可以處理要被寫到并行處理存儲器204內(nèi)的任何DRAM220的數(shù)據(jù)。交叉開關(guān)單元210配置為路由每個GPC208的輸出到任何分區(qū)單元215的輸入或到另一個GPC208用于進(jìn)一步處理。GPC208通過交叉開關(guān)單元210與存儲器接口 214通信,以對各種外部存儲器設(shè)備進(jìn)行讀取或?qū)懭?。在一個實施例中,交叉開關(guān)單元210具有到存儲器接口 214的連接以和I/O單元205通信,以及到本地并行處理存儲器204的連接,從而使得在不同GPC208內(nèi)的處理內(nèi)核能夠與系統(tǒng)存儲器104或?qū)τ赑PU202而言非本地的其他存儲器通信。在圖2所示的實施例中,交叉開關(guān)單元210直接與I/O單元205連接。交叉開關(guān)單元210可使用虛擬信道來分開GPC208與分區(qū)單元215之間的業(yè)務(wù)流。
[0037]另外,GPC208可被編程以執(zhí)行與種類繁多的應(yīng)用相關(guān)的處理任務(wù),包括但不限于,線性和非線性數(shù)據(jù)變換、視頻和/或音頻數(shù)據(jù)過濾、建模操作(例如,應(yīng)用物理定律以確定對象的位置、速率和其他屬性)、圖像渲染操作(例如,曲面細(xì)分著色器、頂點(diǎn)著色器、幾何著色器、和/或像素著色器程序)等等。PPU202可將數(shù)據(jù)從系統(tǒng)存儲器104和/或本地并行處理存儲器204轉(zhuǎn)移到內(nèi)部(片上)存儲器中,處理該數(shù)據(jù),并且將結(jié)果數(shù)據(jù)寫回到系統(tǒng)存儲器104和/或本地并行處理存儲器204,其中這樣的數(shù)據(jù)可以由其他系統(tǒng)部件訪問,所述其他系統(tǒng)部件包括CPU102或另一個并行處理子系統(tǒng)112。
[0038]PPU202可配備有任何容量(amount)的本地并行處理存儲器204,包括沒有本地存儲器,并且可以以任何組合方式使用本地存儲器和系統(tǒng)存儲器。例如,在統(tǒng)一存儲器架構(gòu)(UMA)實施例中,PPU202可以是圖形處理器。在這樣的實施例中,將不提供或幾乎不提供專用的圖形(并行處理)存儲器,并且PPU202會以排他或幾乎排他的方式使用系統(tǒng)存儲器。在UMA實施例中,PPU202可集成到橋式芯片中或處理器芯片中,或作為具有高速鏈路(例如,PCIe)的分立芯片提供,所述高速鏈路經(jīng)由橋式芯片或其他通信手段將PPU202連接到系統(tǒng)存儲器。
[0039]如上所示,在并行處理子系統(tǒng)112中可以包括任何數(shù)目的PPU202。例如,可在單個插卡上提供多個PPU202、或可將多個插卡連接到通信路徑113、或可將一個或多個PPU202集成到橋式芯片中。在多PPU系統(tǒng)中的PPU202可以彼此同樣或不同。例如,不同的PPU202可能具有不同數(shù)目的處理內(nèi)核、不同容量的本地并行處理存儲器等等。在存在多個PPU202的情況下,可并行操作那些PI3U從而以高于單個PPU202所可能達(dá)到的吞吐量來處理數(shù)據(jù)。包含一個或多個PPU202的系統(tǒng)可以以各種配置和形式因素來實現(xiàn),包括臺式電腦、筆記本電腦或手持式個人計算機(jī)、服務(wù)器、工作站、游戲控制臺、嵌入式系統(tǒng)等等。
[0040]優(yōu)化數(shù)字圖像
[0041]圖3是根據(jù)本發(fā)明的一個實施例的、示出了數(shù)字相機(jī)302的框圖300。數(shù)字相機(jī)302可包括在諸如手機(jī)或平板計算機(jī)的移動設(shè)備內(nèi),或者可表示專用于數(shù)字?jǐn)z影的設(shè)備。通過操作數(shù)字相機(jī)302,用戶可以采集數(shù)字圖像。如所示,數(shù)字相機(jī)302包括CPU304、PPU306、光學(xué)傳感器308、存儲器312以及輸入/輸出(I/O)設(shè)備310。CPU304可以與圖1中示出的CPU102大致相似,而PPU306可以與圖2中示出的PPU202大致相似。
[0042]光學(xué)傳感器308配置為接收光波并配置為輸出表示這些光波的顏色和強(qiáng)度的電信號等等。光學(xué)傳感器308可以是例如濾色器陣列(CFA)或電荷耦合器件(CCD)等等。I/O設(shè)備310可包括諸如鍵盤、觸模板、麥克風(fēng)、快門釋放按鈕等等的輸入設(shè)備,以及諸如屏幕、揚(yáng)聲器、一個或多個發(fā)光二極管(LED)等等的輸出設(shè)備。此外,I/O設(shè)備310可包括能夠?qū)嵤┹斎牒洼敵霾僮鞫叩脑O(shè)備,諸如觸摸屏、以太網(wǎng)端口、通用串行總線(USB)、串行端口等。CPU304、PPU306、光學(xué)傳感器308以及I/O設(shè)備310耦連到一起并且耦連到存儲器312。
[0043]存儲器312可以是能夠存儲數(shù)據(jù)的任何類型的單元,包括隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、一個或多個硬件/軟件寄存器、緩沖區(qū)等等。如所示,存儲器312包括原始圖像320、圖像優(yōu)化引擎322以及經(jīng)優(yōu)化的圖像324。當(dāng)數(shù)字相機(jī)302的用戶希望采集數(shù)字圖像時,用戶操縱I/O設(shè)備310以使光學(xué)傳感器308接收光波(S卩,用戶可以按快門釋放按鈕來“照相”)。光學(xué)傳感器308隨后使所采集的光波的表示被寫到存儲器312作為原始圖像320中的一個或多個。CPU304和/或PPU306可以參與處理由光學(xué)傳感器308所生成的信號以產(chǎn)生原始數(shù)據(jù)320。
[0044]圖像優(yōu)化引擎(IOE) 322可隨后處理原始圖像320以渲染經(jīng)優(yōu)化的圖像324。10E322可以如所示的是駐留在存儲器312中的軟件程序,并且可由CPU304和/或PPU306執(zhí)行以處理原始圖像320??商娲?,10E322可以是嵌入在數(shù)字相機(jī)302內(nèi)并且耦連到CPU304/PPU306、光學(xué)傳感器308、存儲器312以及I/O設(shè)備310的硬件單元。如下文結(jié)合圖4A-10所更詳細(xì)描述的,10E322可以實現(xiàn)處理原始圖像320以產(chǎn)生經(jīng)優(yōu)化的圖像324的各種不同技術(shù)。
[0045]圖4A是示出了圖3中示出的10E322的一個實施例的示意圖400。如所示,示意圖400包括也在圖3中示出的原始圖像320、10E322以及經(jīng)優(yōu)化的圖像324。如上所述,10E322配置為通過處理原始圖像320生成經(jīng)優(yōu)化的圖像324。
[0046]對于給定的原始圖像320,10E322首先生成原始圖像統(tǒng)計402。原始圖像統(tǒng)計402可包括不同值,其中每個值與可針對給定的圖像計算的不同統(tǒng)計相對應(yīng)。原始圖像統(tǒng)計402可包括種類繁多的不同統(tǒng)計,包括表示與圖像相關(guān)聯(lián)的顏色分布、亮度分布、對比度、飽和度、曝光度和/或其他統(tǒng)計的量。
[0047]10E322配置為使用機(jī)器學(xué)習(xí)引擎(MLE) 404來處理原始圖像302和原始圖像統(tǒng)計402。MLE404實現(xiàn)一般可用來基于一個或多個輸入值計算一個或多個輸出值的一個或多個機(jī)器學(xué)習(xí)算法。MLE404可包含決策樹、人工神經(jīng)網(wǎng)絡(luò)(ANN)、貝葉斯網(wǎng)絡(luò)、不同機(jī)器學(xué)習(xí)算法的組合等等,并且可使用一個或多個監(jiān)督式學(xué)習(xí)技術(shù)被訓(xùn)練,如下文更詳細(xì)論述的。10E322實現(xiàn)MLE404以基于原始圖像統(tǒng)計402以及可選地基于原始圖像302來生成渲染控制參數(shù)406集。
[0048]渲染控制參數(shù)406的一個子集包括渲染算法選擇器406A,其中的每一個與不同渲染算法408相對應(yīng),剩余的渲染控制參數(shù)406包括要被提供到渲染算法408的渲染算法引數(shù)406B。10E322選擇與渲染算法選擇器406A相對應(yīng)的算法408,并且隨后利用所指定的參數(shù)406B將所選擇的算法應(yīng)用到原始圖像以渲染經(jīng)優(yōu)化的圖像。10E322可針對原始圖像320中的每一個重復(fù)該過程以渲染經(jīng)優(yōu)化的圖像324。在一個實施例中,10E322使用與給定的原始圖像320相關(guān)聯(lián)的原始圖像統(tǒng)計402以及使用與先前的和/或隨后的圖像相關(guān)聯(lián)的原始圖形統(tǒng)計來處理該給定的原始圖像320。
[0049]如上所述,MLE404配置為實現(xiàn)一個或多個機(jī)器學(xué)習(xí)算法并且通過實現(xiàn)一個或多個監(jiān)督式學(xué)習(xí)技術(shù)來被訓(xùn)練,如下文結(jié)合圖4B所更詳細(xì)描述的。
[0050]圖4B是根據(jù)本發(fā)明的一個實施例的、示出了用于訓(xùn)練MLE404的技術(shù)的示意圖450。針對每個原始圖像320,提供了用來訓(xùn)練MLE404的“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像424。如所示,針對每個原始圖像320,原始圖像統(tǒng)計402被生成并且其可選地與原始圖像聯(lián)合被提供到MLE404。利用可以是隨機(jī)的、或以符合機(jī)器學(xué)習(xí)工藝的狀態(tài)的方式所更加仔細(xì)地選擇的值的合集來初始化MLE404。MLE404生成隨后用來選擇渲染算法408的渲染算法選擇器406A,并且還生成提供給這些算法的渲染算法引數(shù)406B。算法408渲染隨后與“理想的”經(jīng)優(yōu)化的圖像424相比較的經(jīng)優(yōu)化的圖像324,該“理想的”經(jīng)優(yōu)化的圖像424被期望渲染自原始圖像320。訓(xùn)練引擎405隨后計算經(jīng)優(yōu)化的圖像324與經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像424的偏差,并且基于該偏差計算用于MLE404的經(jīng)改進(jìn)的參數(shù)。MLE404可隨后生成經(jīng)改進(jìn)的渲染控制參數(shù)406。
[0051]迭代上文概述的過程直到由訓(xùn)練引擎405所計算的偏差小于某一期望的容差(tolerance)為止,這時來源于渲染控制參數(shù)406的經(jīng)優(yōu)化的圖像324接近“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像424。例如,可以應(yīng)用該過程來訓(xùn)練MLE404以選擇色調(diào)映射曲線,該色調(diào)映射曲線將導(dǎo)致渲染經(jīng)優(yōu)化的圖像324最接近訓(xùn)練集424中的“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像,使得當(dāng)不在訓(xùn)練集中的給定的原始圖像320被提供到MLE404時,MLE404將產(chǎn)生渲染控制參數(shù)406,該渲染控制參數(shù)406將生成與“理想的”經(jīng)優(yōu)化的圖像相似的經(jīng)優(yōu)化的圖像。
[0052]在一個實施例中,手動地、即通過收集由可替代渲染控制參數(shù)406所產(chǎn)生的圖像的人為生成的評級(rating)來生成經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像424。在另一個實施例中,MLE404可通過從數(shù)字相機(jī)302的用戶接收輸入而持續(xù)地被訓(xùn)練,該輸入表示使用給定的渲染控制參數(shù)406集所生成的經(jīng)優(yōu)化的圖像324的感知質(zhì)量。通過針對用于不同原始圖像的不同渲染控制參數(shù)來重復(fù)該過程,訓(xùn)練引擎405可以調(diào)節(jié)與MLE404相關(guān)聯(lián)的權(quán)值以更有效地選擇渲染算法選擇器406A和渲染算法引數(shù)406B。以這種方式,MLE404可被訓(xùn)練為預(yù)測用戶的偏好。
[0053]在一個實施例中,MLE404在數(shù)字相機(jī)302中被原地訓(xùn)練。在另一個實施例中,MLE404在計算機(jī)系統(tǒng)100或并行處理子系統(tǒng)112上被脫機(jī)訓(xùn)練,并且該經(jīng)訓(xùn)練的MLE404實現(xiàn)在數(shù)字相機(jī)302中。在又一個實施例中,MLE404在位于遠(yuǎn)程的計算系統(tǒng)即基于云的計算系統(tǒng)上持續(xù)地被訓(xùn)練。通過實現(xiàn)上文所描述的技術(shù),可以顯著改進(jìn)由數(shù)字相機(jī)302所渲染的輸出圖像的質(zhì)量。圖5A概述了用于改進(jìn)圖像質(zhì)量的另一個技術(shù)。
[0054]圖5A是根據(jù)本發(fā)明的一個實施例的、示出了圖3示出的10E322的另一個實施例的示意圖500。如所示,10E322配置為基于原始圖像322渲染經(jīng)優(yōu)化的圖像324。10E322配置為以與結(jié)合圖4A-4B所描述的同樣方式針對給定的原始圖像320生成原始圖像統(tǒng)計502。因此,原始圖像統(tǒng)計可以與圖4A-4B示出的原始圖像統(tǒng)計402大致相似。10E322配置為使用MLE504處理原始圖像統(tǒng)計502以及可選地處理原始圖像320以生成導(dǎo)出的圖像統(tǒng)計512。導(dǎo)出的圖像統(tǒng)計512表示可基于原始圖像統(tǒng)計502而推斷的統(tǒng)計,并且可表示原始圖像的質(zhì)量,諸如場景類型(例如“海灘”、“森林”等)、聚焦深度等等。一般而言,導(dǎo)出的圖像統(tǒng)計512表示外部環(huán)境的性質(zhì)。
[0055]MLE504可與圖4A-4B示出的MLE404大致相似,并且因此,可使用若干不同的機(jī)器學(xué)習(xí)算法來實現(xiàn)并且可被訓(xùn)練為通過應(yīng)用各種不同的監(jiān)督式學(xué)習(xí)技術(shù)來生成導(dǎo)出的圖像統(tǒng)計512。圖5B是根據(jù)本發(fā)明的一個實施例的、示出了訓(xùn)練MLE504的方法的示意圖550。針對每個原始圖像320提供用來訓(xùn)練MLE504的“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像524。如所示,對于每個原始圖像320,原始圖像統(tǒng)計502被生成并且其可選地與原始圖像聯(lián)合被提供到MLE504,該MLE504以基本與在圖4A中MLE404被初始化的相似方式被初始化。MLE504基于原始圖像統(tǒng)計502以及可選地原始圖像320和導(dǎo)出的統(tǒng)計512來計算隨后被提供到MLE514的導(dǎo)出的統(tǒng)計512、計算轉(zhuǎn)而對算法508進(jìn)行選擇以及提供其輸入引數(shù)的渲染控制參數(shù)506。算法依然計算與經(jīng)標(biāo)示的“理想的”經(jīng)優(yōu)化的圖像524相比較的經(jīng)優(yōu)化的圖像324,并且其輸出被提供到MLE504,并且過程被迭代直到經(jīng)優(yōu)化的圖像如所期望般接近“理想的”經(jīng)優(yōu)化的圖像524。
[0056]一旦導(dǎo)出的圖像統(tǒng)計512已由MLE504所生成,則這些統(tǒng)計以及原始圖像320和原始圖像統(tǒng)計502由MLE514加以處理以生成渲染控制參數(shù)506。與圖4中示出的渲染控制參數(shù)406相似,渲染算法選擇器506A中的每一個是與渲染算法508相對應(yīng)的值,并且渲染算法引數(shù)506B中的每一個作為被提供給所選擇的渲染算法508。以與結(jié)合圖4A所描述的同樣的方式,10E322對算法508進(jìn)行選擇并且提供它們的引數(shù),并且隨后將算法應(yīng)用到原始圖像以渲染經(jīng)優(yōu)化的圖像。10E322可針對原始圖像320中的每一個來重復(fù)該過程以生成經(jīng)優(yōu)化的圖像324。
[0057]MLE514可與圖4A-4B中示出的MLE404大致相似,并且因此,MLE504可使用若干不同的機(jī)器學(xué)習(xí)算法來實現(xiàn)并且可以通過應(yīng)用各種不同的監(jiān)督式學(xué)習(xí)技術(shù)而被訓(xùn)練為生成渲染控制參數(shù)506。例如,可使用具有相對應(yīng)的“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像524的“示范性的”原始圖像320集來訓(xùn)練MLE514。針對每個原始圖像320,原始統(tǒng)計502以及導(dǎo)出的統(tǒng)計512被生成并被作為輸入提供到MLE514,其生成對算法508進(jìn)行選擇并且提供它們的輸入的渲染控制參數(shù)506,隨后生成經(jīng)優(yōu)化的圖像324。經(jīng)優(yōu)化的圖像324依然通過訓(xùn)練引擎505與理想的經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像524“相比較”。訓(xùn)練引擎505計算經(jīng)優(yōu)化的圖像324與經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像524的偏差,并且基于該偏差計算用于MLE504和514的經(jīng)改進(jìn)的參數(shù)。MLE514可隨后生成經(jīng)改進(jìn)的渲染控制參數(shù)506。該過程依然迭代直到由訓(xùn)練引擎505所計算的偏差小于某一期望的容差為止,這時來源于渲染控制參數(shù)506的經(jīng)優(yōu)化的圖像324接近“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像524。
[0058]在該過程的一個實施例中,MLE514可在具有已經(jīng)經(jīng)訓(xùn)練的MLE504的系統(tǒng)中被訓(xùn)練。在另一個實施例中,MLE504可在具有已經(jīng)經(jīng)訓(xùn)練的MLE514的系統(tǒng)中被訓(xùn)練。在又一個實施例中,MLE504和MLE514可以同時一起被訓(xùn)練。與MLE404 —樣,MLE504和MLE514可在數(shù)字相機(jī)302中被原地訓(xùn)練、在計算機(jī)系統(tǒng)100或并行處理子系統(tǒng)112上被脫機(jī)訓(xùn)練并隨后在數(shù)字相機(jī)302上實現(xiàn)、或在位于遠(yuǎn)程的計算系統(tǒng)及基于云的計算系統(tǒng)上持續(xù)地被訓(xùn)練。通過實現(xiàn)上文所描述的技術(shù),可以顯著改進(jìn)由數(shù)字相機(jī)302所渲染的輸出圖像的質(zhì)量。
[0059]在一個實施例中,手動地、即通過收集由可替代渲染控制參數(shù)506所產(chǎn)生的圖像的人為生成的評級來生成經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像524。在另一個實施例中,MLE504和/或MLE514可通過從數(shù)字相機(jī)302的用戶接收輸入而持續(xù)地被訓(xùn)練,該輸入表示使用給定的渲染控制參數(shù)506集所生成的經(jīng)優(yōu)化的圖像324的感知質(zhì)量。通過針對用于不同原始圖像的不同渲染控制參數(shù)來重復(fù)該過程,訓(xùn)練引擎505可以調(diào)節(jié)與MLE504和/或514相關(guān)聯(lián)的權(quán)值以更好地選擇渲染算法選擇器506a和渲染算法引數(shù)506b。以這種方式,MLE514可被訓(xùn)練為預(yù)測用戶的偏好。
[0060]通過實現(xiàn)上文所描述的技術(shù),可以顯著改進(jìn)由數(shù)字相機(jī)302所渲染的經(jīng)優(yōu)化的圖
像的質(zhì)量。
[0061]本領(lǐng)域的技術(shù)人員將認(rèn)識到的是,可以應(yīng)用種類繁多的機(jī)器學(xué)習(xí)算法和相關(guān)聯(lián)的訓(xùn)練技術(shù)以實現(xiàn)MLE404、504和514中的每一個。進(jìn)一步地,可以以任何技術(shù)上可行的方式將上文結(jié)合圖3-5所描述的10E322的不同實施例加以組合。下文結(jié)合圖7_10更詳細(xì)地對這些不同實施例中的每一個進(jìn)行描述。
[0062]圖6是根據(jù)本發(fā)明的一個實施例的、用于使用圖4A-4B中示出的10E322來處理數(shù)字圖像的方法步驟的流程圖。盡管結(jié)合圖1-4B的系統(tǒng)描述了方法步驟,但是本領(lǐng)域的技術(shù)人員將理解的是,配置為以任何次序?qū)嵤┓椒ú襟E的任何系統(tǒng)均在本發(fā)明的范圍內(nèi)。
[0063]如所示,方法600開始于步驟602,其中10E322接收原始圖像。原始圖像可由例如圖3中示出的數(shù)字相機(jī)302內(nèi)的光學(xué)傳感器308采集。在步驟604,10E322針對原始圖像生成原始圖像統(tǒng)計。由10E322所生成的原始圖像統(tǒng)計可包括不同的值,其中每個值與可針對原始圖像所計算的不同統(tǒng)計相對應(yīng)。原始圖像統(tǒng)計可包括種類繁多的不同統(tǒng)計,包括表示與圖像相關(guān)聯(lián)的顏色分布、亮度分布、對比度、飽和度、曝光度和/或其他統(tǒng)計的量。
[0064]在步驟606,10E322使用MLE404基于原始圖像統(tǒng)計并且可選地也基于原始圖像來生成渲染控制參數(shù)。渲染控制參數(shù)選擇要被應(yīng)用到原始圖像的算法以及要被給定到這些算法的引數(shù)。如上文結(jié)合圖4A所描述的,MLE404可以通過應(yīng)用任何技術(shù)上可行的監(jiān)督式學(xué)習(xí)算法而被訓(xùn)練,如結(jié)合圖4B所描述的。
[0065]在步驟608,10E322通過利用所選擇的算法和它們的引數(shù)處理原始圖像來渲染經(jīng)優(yōu)化的圖像。方法600然后結(jié)束。通過實現(xiàn)方法600,10E322可以生成經(jīng)優(yōu)化的圖像,所述經(jīng)優(yōu)化的圖像與原始圖像相比具有經(jīng)改進(jìn)的質(zhì)量。圖7概述了用于生成經(jīng)優(yōu)化的圖像的另一個方法。[0066]圖7是根據(jù)本發(fā)明的一個實施例的、用于使用圖5A-5B中示出的10E322來處理數(shù)字圖像的方法步驟的流程圖。盡管結(jié)合圖1-3及5A的系統(tǒng)描述了方法步驟,但是本領(lǐng)域的技術(shù)人員將理解的是,配置為以任何次序?qū)嵤┓椒ú襟E的任何系統(tǒng)均在本發(fā)明的范圍內(nèi)。
[0067]如所示,方法700開始于步驟702,其中10E322接收原始圖像。在步驟704,10E322針對原始圖像生成原始圖像統(tǒng)計。步驟702和704可以分別與圖6中示出的方法600的步驟602和604大致相似。
[0068]在步驟706,10E322基于原始圖像統(tǒng)計并且可選地還基于原始圖像來生成針對原始圖像的導(dǎo)出的圖像統(tǒng)計。導(dǎo)出的圖像統(tǒng)計表示可基于原始圖像統(tǒng)計而推斷的統(tǒng)計,并且可表示原始圖像的質(zhì)量,諸如場景類型(例如“海灘”、“森林”等)、亮度顏色、聚焦深度等等。一般而言,導(dǎo)出的圖像統(tǒng)計表不外部環(huán)境的性質(zhì)。如上文結(jié)合圖5A所描述的,10E322實現(xiàn)MLE504以生成導(dǎo)出的圖像統(tǒng)計。還如上所描述的,MLE504可通過將任何技術(shù)上可行的監(jiān)督式學(xué)習(xí)算法應(yīng)用到MLE504而被訓(xùn)練以調(diào)節(jié)MLE504內(nèi)的權(quán)值。這樣做時,可將“示范性的”原始圖像與它們的相對應(yīng)的“理想的”經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像結(jié)合使用來訓(xùn)練包括MLE504的系統(tǒng)。
[0069]在步驟708,10E322使用MLE514基于導(dǎo)出的統(tǒng)計以及可選地還基于原始圖像統(tǒng)計以及可選地完全或部分原始圖像來生成渲染控制參數(shù)。渲染控制參數(shù)選擇要被應(yīng)用到原始圖像的算法以及要被給定到這些算法的引數(shù)。與MLE504 —樣,MLE514可通過應(yīng)用任何技術(shù)上可行的監(jiān)督式學(xué)習(xí)算法而被訓(xùn)練,如結(jié)合圖5B所描述的。
[0070]在步驟710,10E322將具有所指定的引數(shù)的所選擇的算法應(yīng)用到原始圖像以渲染經(jīng)優(yōu)化的圖像。方法700然后結(jié)束。通過實現(xiàn)方法700,10E322可生成經(jīng)優(yōu)化的圖像,所述經(jīng)優(yōu)化的圖像與原始圖像相比具有經(jīng)改進(jìn)的質(zhì)量。圖8和9概述了用于訓(xùn)練MLE404、504和514的方法的兩個實施例。
[0071]圖8是根據(jù)本發(fā)明的一個實施例的、用于訓(xùn)練圖4A-4B中示出的10E322的方法步驟的流程圖。盡管結(jié)合圖1-4B的系統(tǒng)描述了方法步驟,但是本領(lǐng)域的技術(shù)人員將理解的是,配置為以任何次序?qū)嵤┓椒ú襟E的任何系統(tǒng)均在本發(fā)明的范圍內(nèi)。
[0072]如所示,方法800開始于步驟802,其中10E322內(nèi)的訓(xùn)練引擎405初始化MLE404。訓(xùn)練引擎405可利用可以是隨機(jī)的、或以符合機(jī)器學(xué)習(xí)工藝的狀態(tài)的方式所更加仔細(xì)地選擇的值的合集來初始化MLE404。
[0073]在步驟804,10E322接收原始圖像。原始圖像可通過例如圖3中示出的數(shù)字相機(jī)302內(nèi)的光學(xué)傳感器308來采集。在步驟806,10E322針對原始圖像生成原始圖像統(tǒng)計。原始圖像統(tǒng)計可包括不同的值,其中每個值與可針對原始圖像所計算的不同統(tǒng)計相對應(yīng)。原始圖像統(tǒng)計可包括種類繁多的不同統(tǒng)計,包括表示與圖像相關(guān)聯(lián)的顏色分布、亮度分布、對比度、飽和度、曝光度和/或其他統(tǒng)計的量。
[0074]在步驟808,10E322內(nèi)的MLE404基于原始圖像統(tǒng)計并且可選地也基于原始圖像來生成渲染控制參數(shù)。渲染控制參數(shù)選擇要被應(yīng)用到原始圖像的算法以及要被給定到這些算法的引數(shù)。在步驟810,10E322通過利用渲染算法選擇和渲染控制參數(shù)內(nèi)的渲染算法引數(shù)處理原始圖像來渲染經(jīng)優(yōu)化的圖像。
[0075]在步驟812,訓(xùn)練引擎405計算在經(jīng)優(yōu)化的圖像和經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像之間的偏差??梢允謩拥?、即通過收集由渲染控制參數(shù)所產(chǎn)生的圖像的人為生成的評級來生成經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像。在步驟814,訓(xùn)練引擎405確定在步驟812所計算的偏差是否超過閾值。如果是,則訓(xùn)練引擎405基于在經(jīng)優(yōu)化的圖像和經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像之間的差異來調(diào)節(jié)MLE404內(nèi)的權(quán)值,并且方法800隨后返回到步驟804并且如上所述地繼續(xù)進(jìn)行。經(jīng)調(diào)節(jié)的值隨后可由MLE404用來計算經(jīng)改進(jìn)的渲染控制參數(shù)。如果在步驟814訓(xùn)練引擎405確定偏差落在閾值之下,那么方法800結(jié)束。
[0076]圖9是根據(jù)本發(fā)明的一個實施例的、用于訓(xùn)練圖5A-5B中示出的10E322的方法步驟的流程圖。盡管結(jié)合圖1-3及5A-5B的系統(tǒng)描述了方法步驟,但是本領(lǐng)域的技術(shù)人員將理解的是,配置為以任何次序?qū)嵤┓椒ú襟E的任何系統(tǒng)均在本發(fā)明的范圍內(nèi)。
[0077]如所示,方法900開始于步驟902,其中10E322內(nèi)的訓(xùn)練引擎505初始化MLE504和514。訓(xùn)練引擎505可利用可以是隨機(jī)的、或以符合機(jī)器學(xué)習(xí)工藝的狀態(tài)的方式所更加仔細(xì)地選擇的值的合集來初始化MLE504和514。
[0078]在步驟904,10E322接收原始圖像。原始圖像可通過例如圖3中示出的數(shù)字相機(jī)302內(nèi)的光學(xué)傳感器308來采集。在步驟906,10E322針對原始圖像生成原始圖像統(tǒng)計。原始圖像統(tǒng)計可包括不同的值,其中每個值與可針對原始圖像所計算的不同統(tǒng)計相對應(yīng)。原始圖像統(tǒng)計可包括種類繁多的不同統(tǒng)計,包括表示與圖像相關(guān)聯(lián)的顏色分布、亮度分布、對比度、飽和度、曝光度和/或其他統(tǒng)計的量。在步驟908,10E322內(nèi)的MLE514基于原始圖像統(tǒng)計生成導(dǎo)出的圖像統(tǒng)計。導(dǎo)出的圖像統(tǒng)計表示可基于原始圖像統(tǒng)計而推斷的統(tǒng)計,并且可表示原始圖像的質(zhì)量,諸如場景類型(例如“海灘”、“森林”等)、聚焦深度等等。一般而言,導(dǎo)出的圖像統(tǒng)計表示外部環(huán)境的性質(zhì)。
[0079]在步驟910,10E322內(nèi)的MLE514基于原始圖像統(tǒng)計以及導(dǎo)出的圖像統(tǒng)計以及可選地也基于原始圖像來生成渲染控制參數(shù)。渲染控制參數(shù)選擇要被應(yīng)用到原始圖像的算法以及要被給定到這些算法的引數(shù)。在步驟912,10E322通過利用渲染算法選擇和渲染控制參數(shù)內(nèi)的渲染算法弓I數(shù)處理原始圖像來渲染經(jīng)優(yōu)化的圖像。
[0080]在步驟914,訓(xùn)練引擎505計算在經(jīng)優(yōu)化的圖像和經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像之間的偏差??梢允謩拥?、即通過收集由渲染控制參數(shù)所產(chǎn)生的圖像的人為生成的評級來生成經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像。在步驟916,訓(xùn)練引擎505確定在步驟914所計算的偏差是否超過閾值。如果是,則訓(xùn)練引擎505基于在經(jīng)優(yōu)化的圖像和經(jīng)標(biāo)示的經(jīng)優(yōu)化的圖像之間的差異來調(diào)節(jié)MLE504和514內(nèi)的權(quán)值。該調(diào)節(jié)可以同時發(fā)生,訓(xùn)練引擎504可以在牽涉不同原始圖像的不同訓(xùn)練周期期間調(diào)節(jié)MLE504和514內(nèi)的權(quán)值。經(jīng)調(diào)節(jié)的值隨后可由MLE504和514用來計算經(jīng)改進(jìn)的渲染控制參數(shù)。方法900隨后返回到步驟904并且如上所述地繼續(xù)進(jìn)行。如果在步驟916訓(xùn)練引擎505確定偏差落在閾值之下,那么方法900結(jié)束。
[0081]本領(lǐng)域的技術(shù)人員將認(rèn)識到的是,上文結(jié)合圖3-9所描述的技術(shù)可以以任何技術(shù)上可行的方式進(jìn)行結(jié)合。例如,MLE404、504和514可以全部合并入10E322并且實現(xiàn)為配置為從原始圖像生成經(jīng)優(yōu)化的圖像的圖像處理管線的一部分。進(jìn)一步地,本文所描述的MLE可以在數(shù)字相機(jī)302被發(fā)布到市場之前被初始訓(xùn)練,并且還可以基于用戶輸入而經(jīng)受持續(xù)的訓(xùn)練。
[0082]總之,數(shù)字相機(jī)包括配置為基于由數(shù)字相機(jī)所采集的原始圖像來生成經(jīng)優(yōu)化的圖像的圖像優(yōu)化引擎。圖像優(yōu)化引擎實現(xiàn)一個或多個機(jī)器學(xué)習(xí)引擎以選擇渲染算法并且對它們提供引數(shù)以渲染來自原始圖像的經(jīng)優(yōu)化的圖像。圖像優(yōu)化引擎配置為通過利用所選擇的算法和相對應(yīng)的引數(shù)處理原始圖像來生成經(jīng)優(yōu)化的圖像。
[0083]有利地,圖像優(yōu)化引擎內(nèi)的機(jī)器學(xué)習(xí)引擎可被訓(xùn)練為生成圖像而不要求圖像處理算法設(shè)計師團(tuán)隊來產(chǎn)生調(diào)整這種算法的算法合集。進(jìn)一步地,數(shù)字相機(jī)的用戶不再被要求向數(shù)字相機(jī)提供關(guān)于外部環(huán)境的質(zhì)量的大量的手動輸入,從而改進(jìn)了用戶體驗。
[0084]本發(fā)明的一個實施例可被實施為與計算機(jī)系統(tǒng)一起使用的程序產(chǎn)品。該程序產(chǎn)品的程序定義實施例的各功能(包括本文中描述的方法)并且可以被包含在各種計算機(jī)可讀存儲介質(zhì)上。示例性計算機(jī)可讀存儲介質(zhì)包括但不限于:(i)不可寫的存儲介質(zhì)(例如,計算機(jī)內(nèi)的只讀存儲器設(shè)備,諸如可由CD-ROM驅(qū)動器讀取的CD-ROM盤、閃存、ROM芯片或任何類型的固態(tài)非易失性半導(dǎo)體存儲器),在其上存儲永久性信息;和(ii)可寫的存儲介質(zhì)(例如,磁盤驅(qū)動器或硬盤驅(qū)動器內(nèi)的軟盤或者任何類型的固態(tài)隨機(jī)存取半導(dǎo)體存儲器),在其上存儲可更改的信息。
[0085]以上已參照特定實施例對本發(fā)明進(jìn)行了描述。然而,本領(lǐng)域的技術(shù)人員將理解的是,可對此做出各種修改和變化而不脫離如隨附權(quán)利要求書中所闡述的本發(fā)明的較寬精神和范圍。因此,前面的描述以及附圖應(yīng)被視為是例示性而非限制性的意義。
【權(quán)利要求】
1.一種用于渲染圖像的計算機(jī)實現(xiàn)的方法,包括: 經(jīng)由包括在數(shù)字相機(jī)中的光學(xué)傳感器來采集原始圖像; 基于與所述原始圖像相關(guān)聯(lián)的像素值集生成針對所述原始圖像的圖像統(tǒng)計集; 使第一機(jī)器學(xué)習(xí)引擎選擇渲染算法和與所選擇的渲染算法相對應(yīng)的渲染算法引數(shù)集;以及 通過利用所述渲染算法和所述渲染算法引數(shù)集處理所述原始圖像來渲染所述圖像。
2.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,其中所述第一機(jī)器學(xué)習(xí)引擎通過以下各項被訓(xùn)練: 接收目標(biāo)圖像; 通過將所述圖像與所述目標(biāo)圖像比較來計算偏差值; 確定所述偏差值超過閾值;以及 基于在與所述圖像和所述目標(biāo)圖像相關(guān)聯(lián)的像素值之間的差異來調(diào)節(jié)所述第一機(jī)器學(xué)習(xí)引擎內(nèi)的權(quán)值集。
3.根據(jù)權(quán)利要求2所述的計算機(jī)實現(xiàn)的方法,其中所述第一機(jī)器學(xué)習(xí)引擎包括人工神經(jīng)網(wǎng)絡(luò)并且其中調(diào)節(jié)與所述第一機(jī)器學(xué)習(xí)引擎相關(guān)聯(lián)的所述權(quán)值集包括將反向傳播學(xué)習(xí)算法應(yīng)用到所述權(quán)值集。
4.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,其中所述圖像統(tǒng)計集包括表示與所述原始圖像相關(guān)聯(lián)的白平衡、對比度、飽和度和/或曝光度的原始圖像統(tǒng)計。
5.根據(jù)權(quán)利要求4所述的計算機(jī)實現(xiàn)的方法,其中所述圖像統(tǒng)計集進(jìn)一步包括由第二機(jī)器學(xué)習(xí)引擎基于所述原始圖像統(tǒng)計所生成的導(dǎo)出的圖像統(tǒng)計,并且其中所述導(dǎo)出的圖像統(tǒng)計指示外部環(huán)境的性質(zhì)。
6.根據(jù)權(quán)利要求5所述的計算機(jī)實現(xiàn)的方法,其中所述第一和第二機(jī)器學(xué)習(xí)引擎通過以下各項被訓(xùn)練: 接收目標(biāo)圖像; 通過將所述圖像與所述目標(biāo)圖像比較來計算偏差值; 確定所述偏差值超過閾值; 基于在與所述圖像和所述目標(biāo)圖像相關(guān)聯(lián)的像素值之間的差異來調(diào)節(jié)所述第一機(jī)器學(xué)習(xí)引擎內(nèi)的權(quán)值集;以及 基于在與所述圖像和所述目標(biāo)圖像相關(guān)聯(lián)的像素值之間的差異來調(diào)節(jié)所述第二機(jī)器學(xué)習(xí)引擎內(nèi)的權(quán)值集。
7.根據(jù)權(quán)利要求6所述的計算機(jī)實現(xiàn)的方法,其中所述第一機(jī)器學(xué)習(xí)引擎包括人工神經(jīng)網(wǎng)絡(luò)并且調(diào)節(jié)與所述第一機(jī)器學(xué)習(xí)引擎相關(guān)聯(lián)的所述權(quán)值集包括將反向傳播學(xué)習(xí)算法應(yīng)用到所述權(quán)值集,以及其中所述第二機(jī)器學(xué)習(xí)引擎包括人工神經(jīng)網(wǎng)絡(luò)并且調(diào)節(jié)與所述第二機(jī)器學(xué)習(xí)引擎相關(guān)聯(lián)的所述權(quán)值集包括將反向傳播學(xué)習(xí)算法應(yīng)用到所述權(quán)值集。
8.一種配置為渲染圖像的計算設(shè)備,包括: 處理單元,其配置為: 經(jīng)由包括在數(shù)字相機(jī)中的光學(xué)傳感器來采集原始圖像; 基于與所述原始圖像相關(guān)聯(lián)的像素值集生成針對所述原始圖像的圖像統(tǒng)計集; 使第一機(jī)器學(xué)習(xí)引擎選擇渲染算法和與所選擇的渲染算法相對應(yīng)的渲染算法引數(shù)集;以及 通過利用所述渲染算法和所述渲染算法引數(shù)集處理所述原始圖像來渲染所述圖像。
9.根據(jù)權(quán)利要求8所述的計算設(shè)備,進(jìn)一步包括: 存儲器,其耦連到所述處理單元并且存儲程序指令,所述程序指令當(dāng)由所述處理單元執(zhí)行時使所述處理單元: 采集所述原始圖像, 生成所述圖像統(tǒng)計集, 使所述第一機(jī)器學(xué)習(xí)引擎選擇所述渲染算法和所述渲染算法引數(shù)集,以及 渲染所述圖像。
10.根據(jù)權(quán)利要求8所述的計算設(shè)備,其中所述第一機(jī)器學(xué)習(xí)引擎通過以下各項被訓(xùn)練: 接收目標(biāo)圖像; 通過將所述圖像與所述目標(biāo)圖像比較來計算偏差值; 確定所述偏差值超過閾值;以及 基于在與所述圖像和所述目標(biāo)圖像相關(guān)聯(lián)的像素值之間的差異來調(diào)節(jié)所述第一機(jī)器學(xué)習(xí)引擎內(nèi)的權(quán)值集,其中所述第一機(jī)器學(xué)習(xí)引擎包括人工神經(jīng)網(wǎng)絡(luò)并且其中調(diào)節(jié)與所述第一機(jī)器學(xué)習(xí)引擎相關(guān)聯(lián)的所`述權(quán)值集包括將反向傳播學(xué)習(xí)算法應(yīng)用到所述權(quán)值集。
【文檔編號】H04N17/00GK103731660SQ201310479312
【公開日】2014年4月16日 申請日期:2013年10月14日 優(yōu)先權(quán)日:2012年10月12日
【發(fā)明者】邁克爾·布賴恩·考克斯 申請人:輝達(dá)公司