以手機相機來評定印刷品質
Printing quality assessment from phone camera
以手機相機來評定印刷品質

Fig. 用手機來做為評判印刷品質的工具。
從事色彩的工作很長的時間,對於色彩這個現象,我工作宗旨叫做 ”By Number” ,可以是 ” Print by Number”、”Display by Number” 、” Paint by Number”、”Textile printing/dyeing by Number”……
色彩現象要形成 ”Number”,少不了通過某一種儀器,一直以來接觸過各型各樣的色彩儀器,及其相應的各種軟體。目前手邊的主力是 i1 Pro 3及自行撰寫的軟體。在各方面都能夠跟迅速的達成色彩上的工作目標;以印刷產業面來講,要操作的重點不外色差、版調值(Tone Value)及灰平衡,目前都有成熟的工作邏輯與工具。

Fig. 曾經用過和各式各樣的色彩儀器,i1 還是最順手最有效率的工具。

Fig. 不同時期的i1 光譜儀。
色彩工作一直以來被認為是一種相對技術高端、建置成本高端的工作。但如果理解了其中的工作本質,其實也就是兩件事情:一是經由儀器取得物件表面的光譜數據,二是將此光譜數據轉換成我們要達成的工作目標的指引,如CIE 色度、濃度、版調(TV)、色差、灰差……。再就是根據這些工作指引架構出操作及管理的邏輯。
我一直試著要降低色彩工作在操作技術及建置成本上的門檻;軟體能夠自己撰寫,自然沒有所謂的軟體成本可言。硬體方面 i1 是一個非常有效率的工具,如果要去做認証如 Fogra PSO 或是 idealliance G7,i1 會是個最低等級的硬體要求。但如果是一種封閉式的、自訂標準的管理設計,也沒有一定要用到i1,只要能夠穩定的輸出色彩數據,就能夠達成管理與操控的目的。
前幾年開始就慢慢接觸一些比較低階的色彩儀器,各有其優缺點,漸漸的,CR30變成我最常使用的工具,主要是方便攜帶,而且能透過藍牙與手機一起工作,這個帶來很大的方便。
相對於必須把筆電設置好後連上USB線去驅動i1讀取資料再判讀資料,只要把手機掏出來,與CR30連上藍牙就可以把工作完成。雖然說CR30的絕對精度我估它只有90%左右,但對處理相對數據如版調(TV)與灰平衡,它與高階儀器沒有兩樣。所以撇開考試認證,很多情況我用手機及CR30就足以處理掉問題。

Fig. 近幾年開始接觸一些低階的色彩儀器。

Fig. CR30 絕對精度不若 i1 但方便性有很大的優勢。在礙於對位機制,及 i1 Scan (strip reading)的能力,i1 與CR30 的使用情境大約是一半一半。
但雖然CR30已經達成我某種程度降低色彩工作門檻的目的,但終究還是有其一定的成本。對於”色彩即是數字”沒有概念的一般使用者,要進入這個領域的動機其實還是不足的。
我終極的想法一直是只要拿著手機相機,在不依賴任何其他週邊設備,就能實現某種”色彩即是數字”的這種概念的操作。一直有些想法,也一直知道其中困難與不足的地方,再加上IT能力不足,所以一直沒有去嘗試。
程式邏輯現在可以透過AI的協助取得品質還不錯的程式碼,重點還是工作邏輯必須有效。編碼這端現在不是我擔心的部分,拍攝環境的變數才是真正必須去克服的地方。
這陣子跟幾款AI(ChatGPT、Claude、Copilot、Gemini……)工作下來的經驗,覺得是時候該下來先建立一個模型試試,以做為後續繼續發展的基礎,於是展開了以下的這一串工作。

Fig. 與Claude 開啟第一次對話,就問如何在圖像裏框出這 3×3 的九宮格導具。

Fig. 與Claude 開啟第一次對話,問如何在圖像裏框出這 3×3 的九宮格導具。
以手機鏡頭來評估印刷品質的基本構想是這個樣子:
印刷品必須印出圖中3×3的九宮格導具,這九個色塊的構成之前就提到過多次:CMYK 滿版、CMYK 50%及C50MY40 灰平衡。相機必須分辨出這九宮格的範圍,取出RGB值後,轉換成CIE 系統值,再換算出色差、TV、灰差等數值,再根據滿版色色差、TV 差值與灰平衡的亮度差及灰差來做評分。
第一個要解決的問題是,如何在拍攝到的圖片中將這個三乘三的九宮格框出來?
這期間與Claude共同做著各種嘗試,如:偵測色塊色彩特性、自定標記……種種努力的成果並不能穩定的框出我要的範圍。

Fig. 由左至右分別是為色塊偵測、小標記偵測及大標記偵測的各種嘗試。

Fig. Claude 建議將 RGB 訊息轉為HSV 訊息來判定左上的黃色,左下的青色及右下的黑色來框住3×3 導具。
花了很多時間在色彩偵測與標記偵測的種種嘗試下,一直未能取得能穩定的把3×3圖框捕捉下來的方法。再者,色塊偵測與標記偵測出來的範圍通常未能是正方型,還必須要有一段程式修正其變形才得以做後續應用。

Fig. 標記偵測的失誤導至捕捉圖像的變形,需要另一套程式碼校正回正方形。
於是嘗試了另一種方式:直接在取景畫面上打上正方形的取景框,將3×3導具主動帶入正方形取景框後再捕捉拍攝。這樣的工作方式可以直接避免掉色塊與標記偵測的失誤。

Fig. 直接在取景畫面上標示出取景框,導具主動帶入取景框後拍攝,用法更直接,避免掉色塊與標記偵測錯誤的不穩定性。其中還設計了一個邏輯,就是當RGB反應值未能達到200的時候,表示光源過低,或者是曝光不足,App 畫面增加一個 exposure slider,可以在曝光不足時手動增加曝光量。
測試下來,主動取景的方式確實是有比色塊偵測和標記偵測來的穩定很多,基本上會是以此邏輯來發展後續的工作。
再接下來遇到的問題是,由於不是在固定控制的拍攝環境,光源的色溫、光源的分佈、光源的閃頻、相機自動白平衡判定、自動曝光判斷定……都會導致數據的誤差。
其中一個現象,一般光源都是由上往下照射的環境,上半部的受光量一定比下半部的受光量高,依此,衍生出來其中的一個工作邏輯是:在同一個拍攝場景,將導具上下翻轉再拍攝一次,然後再將上下左右顛倒的九宮格數據再做一次平均。

Fig. 樣本稿拍攝完後,App 提示上下翻轉後再拍一次。
完成第二次拍攝後,系統會顯示這9個位置的平均 RGB值,並依 DidplayP3 RGB profile 將RGB訊息轉換為Lab。 這裡要注意到,這時候的Lab還是D65下的Lab,然而印刷的標準值都是在D50下設定的,如果用這一組Lab去對應印刷標準,數值差異會很大,會失去我們標準化評估的目的,因此系統該必須介入一個D65到D50的Lab轉換函式,數值才能跟接近我們熟悉的印刷上的Lab值。

Fig. Copilot 提供的 LabD65ToLabD50 轉換程式碼。

Fig. 兩次翻轉拍攝後,系統顯示兩組影像平均後的RGB值及其P3RGB(D50) Lab 值,並取樣最亮的30個像素平均做為白點參考(white reference)。
再接續一個問題,紙白數值是印刷品評估的重要訊息,它會用來做灰平衡目標值及版調計算的基礎。程式會取樣本裏最亮的30個像素平均做為白點參考(white reference)。
在隨機的拍攝環境,參考白點(white reference)是很不穩定的,試著處理這個問題的時候有各種想法,包括單點線性Normalization,parabola 多點 Normalization & fitting、或是SCCA 轉換……都在考慮之中。目前先選定用最亮像素作為做線性Normalization 的規則,強制將最白點像素歸一化在R=233,G=231,B=236,其餘像素依線性(linear)規則轉換。

Fig. 目前先選定用最亮像素作為做線性Normalization 的規則,強制將最白點像素歸一化在 R=233, G=231, B=236,其餘像素依線性(linear)規則轉換。
大約可以知道,線性的Normalization 並不能做得很精確,但幾個測試下來,確實是比沒做Normalization能取得更好的數據。這個App 主要還是先把基礎工作邏輯堆上來,後續還有很多修正、優化或是各種不同的工作想法會慢慢引導出來。
再者,P3RGB 色域涵蓋不到Cyan 100%的位置,為了讓評估數值更合理化,Cyan 100%的標準Lab會做一些變動,這邊會先暫定一個數值下來,至於如何才是更好、更合理的數值還需要更多時間的嘗試與測試。

Fig. P3 RGB 色域(黃色範圍)無法涵蓋CRPC6 Cyan 100%的位置,所以C的參考標準值會做一些修正。
接下來是設定一個評分機制:對滿版這種要求絕對精度的項目,相機環境很難充分達成,分數佔比要低一些,CMYK滿版色塊各占5分,四個色塊的占比是20/80。其他TV及灰平衡是一種相對的運算,分數佔比可以高一些。CMYK 50%各佔10分,四個色塊佔比是40/80,C50MY40灰平衡單一色塊占20/80,分別是亮度差10分及灰度差10分。
階梯式分數分配如以下圖表。
Fig. 九宮格階梯式評分表。
接著是顯示 Delta-E 與 TV 的計算結果,可以看得出來CMYK滿版部分 Normalized 之後色差會降低,但相對計算的TV 部分沒有太大變化。
Delta-E 的計算比較沒有問題。TV 的計算是將紙白、滿版與版調(50%)的Lab 換算成XYZ 後,以 Colorimetric TV 公式計算,結果會與濃度方式計算的TV有所不同。不過,作為一種封閉式的管理,只要是維持相同的模式,就可以是有效的管理。

Fig. 第三頁顯示 Delta-E 與 TV 的計算結果,TV 的計算以 Colorimetric TV 公式計算,結果會與濃度方式計算的TV有所不同。作為一種封閉式的管理,只要是維持相同的模式,就可以是有效的管理。
最後一頁以分數的方式呈現出來,裡面會呈現滿版、TV與灰平衡的各別分數,然後會有一個總分。總分超過80分以綠色顯示,70分到80分之間以黃色顯示,70分以下則以紅色顯示。
以相機鏡頭這一種環境變數影響很大的狀況下,能看到綠色分數就等於是還不錯的品質。
這其中要去探索、嘗試的題目還非常非常的多;如Normalization 的策略、標準值相對於P3RGB的 Fitting、寬容值的設定、SCCA 介入的影響、TV 的計算方式(是否直接採用SCTV?)……可以想像還有很多方法可以來增加這種情境運用的信任度。
如同上述,這個APP只是一個開端,一個開啟用手機鏡頭來評估印刷品質可行性的開端,缺失當然還很多,但總是要開始。

Fig. 最後一頁以分數的方式呈現出來,裡面會呈現滿版、TV與灰平衡的個別分數,然後會有一個總分。總分超過80分以綠色顯示,70分到80分之間以黃色顯示,70分以下則以紅色顯示。
繼續衍生下一個工作邏輯。
上一個工作邏輯是設定在某個標準數據(CRPC6)下對拍攝的樣本作評分,拍攝環境會帶來很大的影響/干擾。
再下來的工作邏輯是:手邊有一個實體標準稿,在同一個拍攝環境下,先拍標準稿再拍樣本稿,單純的比較兩邊的色差,就可以判斷樣本的品質好不好。
由於拍攝環境是相同的狀況下,環境變數的干擾因而相對的抵消掉,這個邏輯的信任度要比上一個邏輯要好一些。
這次在Copilot 主動編碼下,長按 ”CAPTURE” 鍵會轉換到 No-flip 模式,第一張先拍標準稿,再拍第二張樣本稿,比對兩張稿件九個部位(再加紙白)的色差即可對樣本稿做出評分。

Fig. 長按 “CAPTURE” 即可轉換為 ”No-flip” 模式,先拍標準稿,再拍樣本稿即可取得評分。
同樣的,會有一個階梯式分數分配,分數分配圖表如下。
評分項目有10個部位,除了九宮格的九個位置,再加上像素最亮的部分(紙白)。分數88分以上呈綠色,88分 與 78分之間呈黃色,78分以下為紅色。
Fig. No-flip mode 階梯式分數分配。

Fig. 評分項目有10個部位,除了九宮格的九個位置,再加上像素最亮部分(紙白)。分數88分以上呈綠色,88分 與 78分之間呈黃色,78分以下為紅色。

Fig. No-flip mode,88 分以上呈綠色。
第二種邏輯的信任度要比第一個邏輯要高一些,主要是同一環境拍攝,環境干擾的因素可以相對抵減,但其中人造光源閃頻的因素一樣不能消除。

Fig. 手持取樣圖示。

Fig. 固定位置取樣圖示。
以上兩種邏輯分法,在控制良好的光源環境及固定位置拍攝下都可以有很好的信任度。然而視工作情況而定,有些時候就是必須在各種不同的環境下快速的取得數據,那第二個邏輯的信任度會高一些,不過手邊必須帶著標準稿。
如同之前的敘述,我對用手機來處理色彩問題有很多的想像,這只是諸多題目之一的一個開端。
更想表達的概念是,這些手機色彩相關App,它扮演著色彩產業” 帶路雞(台語)”的角色,經由最低的門檻帶入”色彩即數字” 的概念來處理色彩問題。手邊就有經由簡單的APP帶出後續近200萬設備的案例。一旦對” 色彩即數字” 有所體認,在有更高階的要求下,是能帶動上百萬的設備投入。
最後談一下,AI正確率並不是100%,但快速便宜的產生80%的正確率已經讓世界進步太多太多,就僅對我撰寫程式而言,這是毫無疑問的。
同樣的,在色彩品質的評估,不求100%,能用快速便宜的方式來達成80%的正確率,也同樣可以帶動這個產業很大的進步。
尚無留言
Comments RSS
TrackBack Identifier URI
No comments. Be the first.
Leave a comment
