• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      3D LUT生成與轉(zhuǎn)換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2021-12-30 09:32:00鄭曉發(fā)劉宇飛
      現(xiàn)代電影技術(shù) 2021年12期
      關(guān)鍵詞:插值顏色色彩

      鄭曉發(fā) 劉宇飛

      (北京郵電大學(xué)數(shù)字媒體與設(shè)計(jì)藝術(shù)學(xué)院,北京 100876)

      1 引言

      LUT,英文全稱為Look Up Table。直譯中文為“顏色查找表”。LUT 的本質(zhì)為數(shù)學(xué)轉(zhuǎn)換模型,通過對(duì)顏色的采樣與插值計(jì)算,將色彩輸入數(shù)值轉(zhuǎn)換為特定的數(shù)值輸出。其作用于圖像的結(jié)果就是圖像的顏色產(chǎn)生了變化。3D LUT 通過對(duì)RGB值做映射,實(shí)現(xiàn)了全立體色彩空間的控制,任意通道輸入值的變化都會(huì)對(duì)三個(gè)顏色造成影響,這使3D LUT 能夠用于精確的顏色校準(zhǔn)工作,也可以對(duì)色相、飽和度、色彩空間等進(jìn)行調(diào)整與轉(zhuǎn)換。

      3D LUT 在各行各業(yè)中有著廣泛的應(yīng)用。色彩管理中,LUT 轉(zhuǎn)換將不同色彩空間連接,盡量縮小影像在不同媒介及顯示設(shè)備上的視覺差別;數(shù)字?jǐn)z影方面,一些數(shù)字?jǐn)z影機(jī)機(jī)內(nèi)不進(jìn)行白平衡處理,會(huì)因感光元件感知不同顏色靈敏度上的差異,發(fā)生偏色現(xiàn)象,還有一些數(shù)字?jǐn)z影機(jī)使用對(duì)數(shù)空間來記錄數(shù)據(jù),需要借助LUT 的處理,獲得正常色彩關(guān)系的監(jiān)看畫面;影像創(chuàng)作領(lǐng)域,調(diào)色師在調(diào)色系統(tǒng)上使用LUT 對(duì)影像進(jìn)行處理,滿足導(dǎo)演想要的目標(biāo)效果;日常生活中的彩色打印機(jī),同樣會(huì)用到LUT,將以RGB 記錄的圖像轉(zhuǎn)換到打印機(jī)噴頭使用的CMYK 空間,實(shí)現(xiàn)色彩的高準(zhǔn)確性和平滑過渡。隨著視頻創(chuàng)作行業(yè)的磅礴發(fā)展,相機(jī)、攝影機(jī)制造商的對(duì)數(shù)空間技術(shù)下放,越來越多的人開始學(xué)習(xí)相關(guān)知識(shí),接觸到數(shù)字調(diào)色等技術(shù),大眾使用與生成LUT 的需求空前旺盛。

      目前,3D LUT生成與轉(zhuǎn)換軟件系統(tǒng)開發(fā)方面,有Oleg Sharonov等開發(fā)的專業(yè)調(diào)色軟件3D LUT Creator;攝影師Ben Turley基于JavaScript獨(dú)立開發(fā)的LutCalc;Greg Cotton 等開發(fā)的MacOS色彩科學(xué)軟件Lattice。這些軟件都有自己的優(yōu)勢(shì)功能,但是普遍存在功能不夠均衡,調(diào)色與LUT編輯只側(cè)重一方面,人機(jī)交互性差,智能化程度低等問題。

      綜上,針對(duì)傳統(tǒng)3D LUT 軟件存在的問題,本文通過對(duì)3D LUT 應(yīng)用與生成原理的研究,設(shè)計(jì)開發(fā)出一款具備常用功能而又操作友好的3D LUT 處理系統(tǒng),將智能化處理方法接入到3D LUT 的生成中,同時(shí)與其他軟件協(xié)作,解決如何快捷有效地生成3D LUT 的問題,更好地滿足用戶需求。

      2 系統(tǒng)總體架構(gòu)設(shè)計(jì)

      2.1 體系架構(gòu)

      本文設(shè)計(jì)的3D LUT 生成與轉(zhuǎn)換系統(tǒng)編程語言為Python,基于Qt 框架,融合PIL、NumPy、Face Recognition等第三方開源庫,可運(yùn)行在Windows、Mac OS等操作系統(tǒng)上,系統(tǒng)架構(gòu)分為三層,包括數(shù)據(jù)層、應(yīng)用層、表示層。

      圖1 系統(tǒng)架構(gòu)圖

      本系統(tǒng)幾乎不需要涉及到持久化存儲(chǔ),也沒有聯(lián)網(wǎng)或大批量查詢的需要,所以并沒有使用數(shù)據(jù)庫來完成數(shù)據(jù)存儲(chǔ),要處理的圖片和生成的LUT 都在計(jì)算機(jī)的文件系統(tǒng)上,由操作系統(tǒng)進(jìn)行管理。

      數(shù)據(jù)層主要涉及到由文件系統(tǒng)管理,存儲(chǔ)在硬盤上的圖像文件或不同格式的LUT,這些數(shù)據(jù)可能由用戶準(zhǔn)備,也可能是由系統(tǒng)的相關(guān)模塊生成而來。同時(shí)為了提高程序運(yùn)行效率和反應(yīng)速度,將最常用的幾個(gè)屬性常駐在內(nèi)存中,如預(yù)覽窗口當(dāng)前正在使用的LUT 和標(biāo)準(zhǔn)色彩圖 (HALD),因?yàn)榇蠖鄶?shù)操作都是對(duì)該LUT 變量進(jìn)行運(yùn)算,或者根據(jù)HALD來求解。

      應(yīng)用層是系統(tǒng)的核心,包含基礎(chǔ)算法層與業(yè)務(wù)邏輯層兩個(gè)部分?;A(chǔ)算法層對(duì)底層算法進(jìn)行實(shí)現(xiàn),保證執(zhí)行效率,支撐業(yè)務(wù)邏輯層,而業(yè)務(wù)邏輯層則對(duì)應(yīng)可被表示層調(diào)用的各項(xiàng)功能,并與外部系統(tǒng)進(jìn)行數(shù)據(jù)交換。

      表示層直接與用戶進(jìn)行交互,經(jīng)過前期精心設(shè)計(jì),借助可視化GUI設(shè)計(jì)工具和代碼混合實(shí)現(xiàn),為用戶提供了良好的體驗(yàn)。信號(hào)與槽機(jī)制搭建起了應(yīng)用層與表示層之間的橋梁,單獨(dú)修改界面外觀不會(huì)影響到任何邏輯功能。

      2.2 流程設(shè)計(jì)

      用戶將待處理圖像輸入系統(tǒng),在調(diào)用功能對(duì)圖像進(jìn)行處理時(shí),修改都會(huì)先作用在HALD 上,系統(tǒng)根據(jù)HALD 的數(shù)值變化再生成LUT,這一LUT 也可以是用戶從外部輸入的LUT。經(jīng)過插值計(jì)算后,LUT 作用到輸入圖像,最終效果顯示在用戶界面上。用戶也可以對(duì)LUT 做編輯操作,修改LUT 的大小或是將兩個(gè)LUT 進(jìn)行合并,這些操作都會(huì)反應(yīng)到圖像上,如果用戶對(duì)效果滿意的話,便可以將該LUT 導(dǎo)出成標(biāo)準(zhǔn)格式的本地文件。

      圖2 系統(tǒng)核心流程圖

      2.3 模塊劃分

      為了將系統(tǒng)繁雜的功能組織起來,實(shí)現(xiàn)解耦,提高系統(tǒng)的安全性和可移植性,采用模塊化開發(fā),合理地劃分為五個(gè)模塊,包括LUT 編輯、色彩空間轉(zhuǎn)換、一級(jí)校色、第三方軟件對(duì)接、輔助查看。

      圖3 系統(tǒng)組成框圖

      3 系統(tǒng)關(guān)鍵技術(shù)

      3.1 HALD相關(guān)技術(shù)

      標(biāo)準(zhǔn)色彩圖(HALD)是3D LUT 的一種圖像表示形式,其中包含3D LUT 中的所有顏色層次。它的每個(gè)像素都對(duì)應(yīng)了一個(gè)不同的顏色,按照一定的規(guī)則進(jìn)行排列。對(duì)于一款3D LUT 生成系統(tǒng)來說,HALD 即為它的核心,在比對(duì)標(biāo)準(zhǔn)HALD 與修改后HALD 逐像素變化并記錄后,便可以得到對(duì)應(yīng)的3D LUT。這一特性使其獲得了接入各個(gè)模塊與算法的巨大潛力。

      圖4 大小為64的標(biāo)準(zhǔn)色彩圖

      HALD 生成技術(shù)可以生成一張標(biāo)準(zhǔn)的方形HALD 圖片,而對(duì)于系統(tǒng)內(nèi)部而言,標(biāo)準(zhǔn)方形圖片自由度略低,處理起來也會(huì)影響效率,所以并沒有直接生成標(biāo)準(zhǔn)圖片 HALD,而是生成了形狀是1×N×3的數(shù)組,這個(gè)數(shù)組在導(dǎo)出為圖片后高僅有一個(gè)像素,省去了先生成一個(gè)比目標(biāo)尺寸大的最小平方數(shù)HALD 再縮小到目標(biāo)尺寸的過程。

      在生成HALD 時(shí)需要指定LUT 的大小,接下來是根據(jù)大小確定生成色值大小的間隔,或者說色值增長的步長,根據(jù)這個(gè)步長,以R、G、B的順序?qū)⑺薪M合遍歷出來就得到了HALD。

      LUT 求解是與HALD 生成對(duì)應(yīng)的,根據(jù)圖像或數(shù)組形式的HALD 求解出LUT,并直接轉(zhuǎn)為內(nèi)部的LUT 類(形狀為N×N×N×3),輸入時(shí)也要指定大小??紤]到HALD 與LUT 大小是完全相同的,且一一對(duì)應(yīng),只需按照一定規(guī)則改變讀入的HALD 數(shù)組形狀,便能得到LUT。

      3.2 LUT插值

      LUT 的增長速度是三次方級(jí)的,大小為33的LUT 占用存儲(chǔ)空間是1.2MB 左右,而能覆蓋全部8位色深的大小為256的LUT 占用存儲(chǔ)空間則高達(dá)576MB,大小每增長n倍,存儲(chǔ)空間占用和計(jì)算量就會(huì)增長n倍,8倍存儲(chǔ)占用只能得到2倍的精度提高。受限于存儲(chǔ)空間和算力,LUT 不可能記錄所有的顏色,常用的LUT 大小一般在17到65之間。

      LUT 沒有記錄到的顏色就要通過插值來計(jì)算,其中,記錄在LUT 上的顏色稱為晶格點(diǎn) (Lattice)。LUT 預(yù)覽的功能由插值算法支撐,根據(jù)系統(tǒng)內(nèi)部流程設(shè)計(jì),插值性能如果不夠好,會(huì)極大地拖慢整個(gè)系統(tǒng)的運(yùn)行速度,幾乎每一步操作都要卡一下,為用戶使用帶來很大的不便,所以算法的實(shí)現(xiàn)過程中會(huì)把速度納為一個(gè)重要的考慮因素。

      系統(tǒng)開發(fā)過程中實(shí)現(xiàn)了最近鄰、三線性、四面體三種被各大視頻調(diào)色處理軟件普遍采納的插值方法,并選擇了兼顧速度和效果的三線性插值作為最后實(shí)裝的插值方法,下面展開說明三線性的插值方法7。

      圖5 三線性插值示意

      我們將RGB 色彩空間中的顏色三元組定義為(r,g,b),R是比r小的最高頂點(diǎn),R是比r大的最低頂點(diǎn),B,B,G,G同理,輸入顏色相對(duì)于這些頂點(diǎn)的位置用δ,δ,δ表示,計(jì)算方式見式(1):

      三元組 (r,g,b)周圍的八個(gè)頂點(diǎn)定義見式(2):

      在三個(gè)顏色通道上獨(dú)立執(zhí)行三個(gè)線性插值 (三個(gè)通道的計(jì)算順序沒有要求),完成計(jì)算見式(3):

      3.3 色彩空間轉(zhuǎn)換

      色彩空間轉(zhuǎn)換包括色域、白點(diǎn)、Gamma的轉(zhuǎn)換。

      色域和白點(diǎn)的轉(zhuǎn)換都是以CIE XYZ空間為橋梁的,我們可以將不同色彩空間下坐標(biāo)的轉(zhuǎn)換用一個(gè)舊基底到新基底的過渡矩陣來描述,通過坐標(biāo)變換公式來得到結(jié)果。

      過渡矩陣P的展開寫法如式 (5),其中r,r,r為目標(biāo)色域中紅色基點(diǎn)的xyz坐標(biāo)值,g和b同理,i,i,i為縮放系數(shù)。

      i,i,i需要通過給定目標(biāo)白點(diǎn)的xyz坐標(biāo)w,w,w來求解。

      xyz坐標(biāo)是經(jīng)過歸一化了的,z可以通過1-x-y來求出,所以只需提供目標(biāo)色域的三基色與白點(diǎn)的xy坐標(biāo)值,就可以解出矩陣P,通過矩陣運(yùn)算與XYZ空間下的值互相轉(zhuǎn)換。

      實(shí)際程序的編寫過程中用到了NumPy的einsum (愛因斯坦求和約定)方法加速矩陣乘法,省去圖像逐像素遍歷的過程,極大縮短了轉(zhuǎn)換所消耗的時(shí)間。

      對(duì)于轉(zhuǎn)換過程中出現(xiàn)的超范圍情況,即最小值小于0,最大值大于1,直接對(duì)超范圍的數(shù)值做裁切,小于0的賦值0,大于1的賦值1。

      大多數(shù)Gamma曲線都是一個(gè)分段函數(shù),前半段為直線,后半段為對(duì)數(shù)曲線,只在具體參數(shù)上有較大差異,這里以Sony S-Log3 的Gamma轉(zhuǎn)換為例列出偽代碼:

      算法實(shí)現(xiàn)中使用了NumPy的select函數(shù)來減少嵌套循環(huán)和判斷帶來的巨大開銷,按照分段函數(shù)的邏輯,在一個(gè)步驟里對(duì)圖像數(shù)組中滿足不同條件的像素值做不同的計(jì)算。

      4 功能實(shí)現(xiàn)

      4.1 界面設(shè)計(jì)

      界面按照不同功能的使用頻率進(jìn)行分區(qū),圖片預(yù)覽窗口占了很大比重,常用的功能做成按鈕放到上方,色彩空間轉(zhuǎn)換下拉欄和一級(jí)校色滑塊放到右側(cè),其他使用頻率較低的功能收納到菜單欄中。這些功能總共涉及到了43個(gè)信號(hào)與槽。在用Qt Designer創(chuàng)建UI文件時(shí),小到標(biāo)簽按鈕,大到整個(gè)窗口,都置于布局中,這讓用戶界面上的組件看起來非常整齊,也能做到在窗口大小變化時(shí)自動(dòng)適應(yīng)。

      圖片預(yù)覽的地方重寫了Qt自帶的QGraphics-View 類,且定義了新的信號(hào)以實(shí)現(xiàn)拖拽打開圖片功能,依托Qt的事件處理機(jī)制,實(shí)現(xiàn)了鼠標(biāo)控制圖片縮放移動(dòng)、圖片自適應(yīng)縮放等功能。系統(tǒng)主界面如圖6所示。

      圖6 3D LUT 生成與轉(zhuǎn)換系統(tǒng)主界面

      4.2 LUT編輯

      LUT 編輯模塊包括LUT 的輸入輸出、插值算法支撐的LUT 預(yù)覽與尺寸修改、LUT 的合并。

      LUT 輸入輸出功能支持當(dāng)今最主流的幾種LUT 格式:Cube、Lustre 3DL、Nuke 3DL、VLUT。LUT 文件的本質(zhì)是文本文件,LUT 輸入輸出的過程也就是按照一定規(guī)則讀寫文本文件的過程,重點(diǎn)在于對(duì)格式的把握上。主導(dǎo)這幾種格式的廠商大多提供了嚴(yán)謹(jǐn)細(xì)致的白皮書,是重要的參考依據(jù),在規(guī)格書之外,開發(fā)過程中也參考了許多使用場景進(jìn)行測(cè)試,以提高兼容性。根據(jù)測(cè)試,生成的范圍為0~1 的不同格式LUT可以在相關(guān)DCC軟件中正常讀取和使用。

      圖7 LUT 導(dǎo)出窗口

      LUT 預(yù)覽功能借助插值算法將當(dāng)前LUT 應(yīng)用到輸入圖像上,并把結(jié)果交由GUI顯示。LUT 尺寸修改功能會(huì)先計(jì)算一個(gè)原LUT 與目標(biāo)LUT 之間的縮放比率,新建一個(gè)目標(biāo)大小的空LUT,調(diào)用插值算法計(jì)算原來的位置乘上縮放比率后的新對(duì)應(yīng)顏色。如果縮放是呈整數(shù)倍比例的話,則無需插值計(jì)算,直接間隔取對(duì)應(yīng)的晶格點(diǎn),修改過程會(huì)很快。

      LUT 合并功能將兩個(gè)大小相同的輸入LUT 合并為一個(gè)新LUT。實(shí)現(xiàn)過程可以看作是一個(gè)多次映射,將LUT 1的映射結(jié)果作為LUT 2的輸入,得到合并后的LUT。

      4.3 色彩空間轉(zhuǎn)換

      色彩空間轉(zhuǎn)換模塊調(diào)用轉(zhuǎn)換算法完成色域、白點(diǎn)、Gamma的轉(zhuǎn)換,只需廠商提供的規(guī)格書中色域三個(gè)基點(diǎn)及白點(diǎn)的xyz坐標(biāo)和Gamma轉(zhuǎn)換公式便可以增加可轉(zhuǎn)換的色彩空間,將其輸入轉(zhuǎn)換算法得到結(jié)果。

      4.4 一級(jí)校色

      一級(jí)校色模塊包括了常用的參數(shù)如亮度、對(duì)比度、曝光、飽和度、自然飽和度、色溫、色調(diào)的調(diào)整,也包括了智能化的自動(dòng)色彩均衡和自動(dòng)白平衡功能以及手動(dòng)色彩匹配。

      自動(dòng)色彩均衡是通過OpenCV 直方圖來實(shí)現(xiàn)的,把R、G、B 三個(gè)通道分別獨(dú)立縮放到0~255的范圍,如果該圖像的環(huán)境光有明顯的色調(diào)傾向,比方說R 和G 占主導(dǎo)地位,該算法便會(huì)增強(qiáng)B通道,來讓它的黃色調(diào)不那么明顯。

      自動(dòng)白平衡功能調(diào)用了第三方庫,該庫使用了一種數(shù)據(jù)驅(qū)動(dòng)方法,在給定白平衡錯(cuò)誤的圖像后,會(huì)在數(shù)據(jù)集中搜索類似的錯(cuò)誤圖像,基于這些圖像的混合特征來構(gòu)建校正變換矩陣,校正后的圖像看起來像在相機(jī)拍攝照片時(shí)就已經(jīng)正確應(yīng)用了白平衡一樣。算法實(shí)現(xiàn)中同時(shí)也調(diào)用了Face Recognition庫,針對(duì)人臉單獨(dú)做自動(dòng)白平衡,應(yīng)對(duì)主體和背景光照色溫反差較大的場景。該功能在實(shí)際使用中可以配合Da Vinci Resolve的遮罩追蹤完成二級(jí)校色。

      手動(dòng)色彩匹配功能使用了薄板樣條插值 (Thin Plate Spline,TPS)算法,扭曲對(duì)象為三維空間中的顏色,在給定內(nèi)容相同、色彩不同的圖片后,通過手動(dòng)選點(diǎn),便可反求出較為平滑的3D LUT。當(dāng)用戶不知道硬盤中圖像的轉(zhuǎn)換方式,也沒有轉(zhuǎn)換LUT,但是有轉(zhuǎn)換后的圖和原圖時(shí),就可以使用該功能快捷方便地得到一個(gè)適用性較高的LUT。

      4.5 第三方軟件對(duì)接

      該模塊通過調(diào)用API與Adobe Premiere Pro和Da Vinci Resolve聯(lián)動(dòng),從Premiere中讀取單幀預(yù)覽畫面,或是將當(dāng)前編輯的LUT 應(yīng)用到Resolve時(shí)間軸上的視頻片段。前者抓取CTI的時(shí)間碼,根據(jù)時(shí)間碼將序列對(duì)應(yīng)幀導(dǎo)出JPEG 圖片到硬盤上,接下來按照讀取一般圖片的流程讀取。后者調(diào)用LUT輸入輸出功能將正在編輯的LUT 導(dǎo)出到Resolve存放LUT 的路徑,將導(dǎo)出的LUT 應(yīng)用給此刻時(shí)間軸上的視頻片段。

      4.6 輔助查看

      為了方便用戶觀察,系統(tǒng)還內(nèi)置了LUT 可視化、直方圖查看、色卡生成三個(gè)功能。

      圖8 LUT 可視化

      LUT 可視化借助Open3D 將每個(gè)晶格點(diǎn)當(dāng)作點(diǎn)云繪制在了三維空間中,用戶可以自由拖動(dòng)、旋轉(zhuǎn)、縮放,直觀的去查看LUT 的特征,從原點(diǎn)出發(fā)的坐標(biāo)軸會(huì)示意映射前的顏色。

      直方圖使用QT 自帶的繪圖功能進(jìn)行繪制,可以自由選擇要查看的通道,也可以在原圖與應(yīng)用LUT 后的圖片之間切換。

      圖9 直方圖顯示

      色卡生成功能會(huì)通過顏色量化算法對(duì)當(dāng)前的圖片進(jìn)行分析,統(tǒng)計(jì)出各個(gè)顏色的占比,按占比降序列出主要顏色,并顯示該色的RGB值、十六進(jìn)制值和占比具體數(shù)字,為用戶對(duì)畫面配色的分析提供了很大的便利。

      圖10 色卡生成

      5 結(jié)語

      本文以3D LUT 在各行各業(yè)得到廣泛應(yīng)用,大眾用戶使用與轉(zhuǎn)換LUT 的需求為背景,基于Python和Qt,開發(fā)出了一款界面美觀、功能豐富、有創(chuàng)新性的3D LUT 生成與轉(zhuǎn)換系統(tǒng)。系統(tǒng)實(shí)現(xiàn)了一個(gè)3D LUT 軟件應(yīng)有的主要功能:LUT 預(yù)覽、LUT 讀寫、色彩空間轉(zhuǎn)換、一級(jí)校色,在各項(xiàng)指標(biāo)上與專業(yè)軟件非常接近;而在基本功能之上,系統(tǒng)又探索了傳統(tǒng)軟件缺少的功能,自動(dòng)白平衡、自動(dòng)色彩均衡、色盤提取使LUT 的生成過程更具智能;與第三方軟件對(duì)接的部分打破了軟件之間的界限,進(jìn)一步簡化了用戶的操作;系統(tǒng)兼顧功能和美觀易用,可跨平臺(tái)運(yùn)行,性能上也充分為工程應(yīng)用考慮,具有使用價(jià)值。?

      猜你喜歡
      插值顏色色彩
      基于Sinc插值與相關(guān)譜的縱橫波速度比掃描方法
      神奇的色彩(上)
      認(rèn)識(shí)顏色
      春天的色彩
      一種改進(jìn)FFT多譜線插值諧波分析方法
      基于四項(xiàng)最低旁瓣Nuttall窗的插值FFT諧波分析
      色彩當(dāng)?shù)?俘獲夏日
      Coco薇(2015年5期)2016-03-29 23:18:25
      2015春夏鞋履色彩大集結(jié)
      Coco薇(2015年3期)2015-12-24 02:46:58
      特殊顏色的水
      和顏色捉迷藏
      兒童繪本(2015年8期)2015-05-25 17:55:54
      自贡市| 南阳市| 阿鲁科尔沁旗| 赞皇县| 高密市| 峨眉山市| 巫山县| 章丘市| 巨野县| 吉隆县| 修文县| 汶川县| 承德市| 馆陶县| 葵青区| 珠海市| 高密市| 宣汉县| 枣阳市| 昌乐县| 临沭县| 洞头县| 兰坪| 吉首市| 昌宁县| 苏尼特左旗| 兰坪| 河西区| 登封市| 西藏| 铜陵市| 普洱| 陕西省| 平和县| 峨眉山市| 中江县| 福安市| 丹凤县| 左权县| 洪江市| 班玛县|