Finding Gray with AI
Finding Gray with ai
與人工智能一起尋找灰平衡

Finding Gray with ai
灰平衡(含亮度差與灰差)對印刷作業來講是一個重要的控制項,現今市場上的技術也非常成熟,基本上P2P (300格)導具+Curve 軟體可以達到很好的效果,但畢竟有其建置成本及技術的門檻,也就是說,大多數的圖像輸出從業人員還是沒能具備這樣的能力,無法做這樣的操作,再者,很多產品也無須達到 P2P+Curve 的精度,因此,我也一直在尋找更簡便的做法,精度或許差一些,但建置成本及技術門檻會降低很多,希望能讓更多的同業人員能進入這個領域。
我自己在灰色平衡尋找的工具上至少發展過三代,也都有一定的效果。現今AI的能力如此強大,我就試著看看AI能提出什麼樣的工作方法。
在程式開發上,一直比較習慣用Claude,這一次工作的開發,在概念的討論及程式碼的形成,90%以上是經由Claude 完成。

Fig. P2P (300格)導具+Curve 軟體可以達到很好的灰平衡效果
如前述,正規做法的p2p導具需要測量300個色塊,這一次試著改寫我經常使用的CT 25工具,同樣是25格,但這25格會全部用來尋找更好的灰平衡。
於是我開起了與AI的對話:
If I only have 25 patches available, what arrangement should I use to predict the CMY combination for target gray values at 25%, 50%, and 75%, with target Lab values of (75, 0.48, 1.92), (57.5, 0.32, 1.28), and (39, 0.16, 0.64)?
取得的第一次反應如下
規劃策略如下:7 個主軸色塊(定義 L* 與 CMY 覆蓋率曲線)+ 6 個星狀色塊 × 3 個區域(映射局部的 CMY->Lab 梯度以進行逆向計算)。
第 1 組 — 中性主軸:7 個色塊
建立各階調區域的 L* 位置。C(青色)的比例保持略高於 M(洋紅)= Y(黃色),這是多數印刷機典型的灰平衡偏置:
| # | C | M | Y | Purpose |
| 1 | 0 | 0 | 0 | Paper white |
| 2 | 10 | 8 | 8 | Near highlight |
| 3 | 20 | 16 | 16 | 25% zone center |
| 4 | 35 | 28 | 28 | Between zones |
| 5 | 50 | 40 | 40 | 50% zone center |
| 6 | 62 | 50 | 50 | Between zones |
| 7 | 75 | 62 | 62 | 75% zone center |
第 2 組 — 25% 區域星狀分佈:6 個色塊(圍繞主軸色塊 #3)
| # | C | M | Y | Maps |
| 8 | 20 | 16 | 21 | +Y → b* positive |
| 9 | 20 | 16 | 11 | −Y → b* negative |
| 10 | 20 | 21 | 16 | +M → a* positive |
| 11 | 20 | 11 | 16 | −M → a* negative |
| 12 | 25 | 16 | 16 | +C → L* darker |
| 13 | 15 | 16 | 16 | −C → L* lighter |
第 3 組 — 50% 區域星狀分佈:6 個色塊(圍繞主軸色塊 #5)
| # | C | M | Y | Maps |
| 14 | 50 | 40 | 45 | +Y |
| 15 | 50 | 40 | 35 | −Y |
| 16 | 50 | 45 | 40 | +M |
| 17 | 50 | 35 | 40 | −M |
| 18 | 55 | 40 | 40 | +C |
| 19 | 45 | 40 | 40 | −C |
第 4 組 — 75% 區域星狀分佈:6 個色塊(圍繞主軸色塊 #7)
| # | C | M | Y | Maps |
| 20 | 75 | 62 | 67 | +Y |
| 21 | 75 | 62 | 57 | −Y |
| 22 | 75 | 67 | 62 | +M |
| 23 | 75 | 57 | 62 | −M |
| 24 | 80 | 62 | 62 | +C |
| 25 | 70 | 62 | 62 | −C |
其主要灰色預測策略如下:
在每個區域,這 6 個星狀色塊能提供一個局部3×3 雅可比矩陣(Jacobian):

Fig. 3×3 Jacobian matrix
求此 3×3 矩陣的逆矩陣,即可計算出相對於主軸中心的ΔC, ΔM, ΔY修正量,從而精準達到目標值(例如 75, 0.48, 1.92 等)。
先說,我也不清楚 Jacobian matrix 是什麼東西?是如何運作?但我可以把它預測出來的數值去做實體的驗證,可不可行, 數據出來就知道了!
總之,經過幾輪的修正,最後的25格分佈如下:
Group 1 — Neutral Spine: 7 patches
| # | C | M | Y | Purpose |
| 1 | 0 | 0 | 0 | Paper white — highlight L* anchor |
| 2 | 100 | 100 | 100 | CMY solid — shadow L* anchor |
| 3 | 25 | 19 | 19 | 25% zone center |
| 4 | 38 | 30 | 30 | Between zones |
| 5 | 50 | 40 | 40 | 50% zone center |
| 6 | 63 | 53 | 53 | Between zones |
| 7 | 75 | 66 | 66 | 75% zone center |
Group 2 — 25% Zone Star: 6 patches
| # | C | M | Y | Maps |
| 8 | 25 | 19 | 24 | +Y → b* positive |
| 9 | 25 | 19 | 14 | −Y → b* negative |
| 10 | 25 | 24 | 19 | +M → a* positive |
| 11 | 25 | 14 | 19 | −M → a* negative |
| 12 | 30 | 19 | 19 | +C → L* darker |
| 13 | 20 | 19 | 19 | −C → L* lighter |
Group 3 — 50% Zone Star: 6 patches
| # | C | M | Y | Maps |
| 14 | 50 | 40 | 45 | +Y |
| 15 | 50 | 40 | 35 | −Y |
| 16 | 50 | 45 | 40 | +M |
| 17 | 50 | 35 | 40 | −M |
| 18 | 55 | 40 | 40 | +C |
| 19 | 45 | 40 | 40 | −C |
Group 4 — 75% Zone Star: 6 patches
| # | C | M | Y | Maps |
| 20 | 75 | 66 | 71 | +Y |
| 21 | 75 | 66 | 61 | −Y |
| 22 | 75 | 71 | 66 | +M |
| 23 | 75 | 61 | 66 | −M |
| 24 | 80 | 66 | 66 | +C |
| 25 | 70 | 66 | 66 | −C |
其間,提供Claude 相關G7對於目標 L*及目標 a*,b*的計算方法,以此,準備好導具,改寫SDK,灰色預測及評分由 Claude agent 自行形成程式碼。

Fig. CT25gray 導具,CMY 模式。
把這個工具拿到一數位碳粉機做測試,直接看一下成果:

Fig. 某數位碳粉機原始狀態,在我的灰平衡評分系統取得滿分28分中的3分,25%灰修正值為(20,20,16),50%灰修正值(40,39,33),75%灰修正值(62,63,55)。

Fig. 修正狀態,在灰平衡評分系統取得滿分28,改善效果非常明顯。
由上述案例可以看得出來改善效果非常明顯,原本偏綠及偏暗的狀況都有修正回來,而且得到的數值都還不錯。
再一個案例:

Fig. 另一型碳粉機,原始分數14/28。

Fig. 修正後取得 28/28。
第二個案例修正值一樣明顯有效。
再下來我想知道一下它跟Curve 軟體300格作業的差距,於是用P2P跟Curve再做一次修正作業,驗證結果自然是28/28滿分。
目前兩個案例下來,CT25Gray 工具有機會取代 P2P+ Curve 嗎?現在還不好說,但非常有機會,我會持續驗證。我也問了AI對於一種新型作業的開發,要多少樣本才能宣告有效?AI 回答Minimum valid claim 至少達到30個,那就等到收夠30個樣本再來做一次整理說明。

Fig. P2P + Curve 的修正表現,自然是28/28。
既然都是滿分,那還有什麼好比的?我把規格再分細一點,把P2P作業與CT25Gray作業的亮度差與灰差做總個總合;P2P 是 3.5,CT25Gray 是3.2,依數據,CT25Gray 表現還好一些;不過,這個差距已經沒有什麼意義了。

Fig. 把兩邊的亮度差與灰差做總個總合,P2P 是 3.5,CT25 Gray 是3.2,這個差距已經沒有什麼意義了。
同樣的概念再延伸發展,對影像輸出而言,對於色域較廣的輸出設備(數位噴墨、廣色域印刷……)直接以RGB 模式輸出有可能取得較CMYK模式(如CRPC6, Fogra39)更飽和的色彩;但G7並未定義RGB printer 的做法,我跟AI討論了這方面的問題,於是有了這樣的做法:
RGB 25-Patch Gray Balance Layout
The star-pattern structure maps directly from CMY→RGB by substituting channels. The central patch at each tone has R=G=B (equal channels), surrounded by ±Δ satellites for each channel.
Channel analogy
CMY channel RGB equivalent Lab axis primarily affected
C (cyan) R (red) a*
M (magenta) G (green) a*, b*
Y (yellow) B (blue) b*
Full 25-patch layout (0–255 scale, Δ=13 ≈ 5%)
| # | Role | R | G | B |
| 1 | White | 255 | 255 | 255 |
| 2 | RGB Black | 0 | 0 | 0 |
| 3 | Ctr Highlight | 191 | 191 | 191 |
| 4 | TRC linearity | 217 | 217 | 217 |
| 5 | Ctr Midtone | 128 | 128 | 128 |
| 6 | GB+Δ | 128 | 141 | 141 |
| 7 | Ctr Shadow | 64 | 64 | 64 |
| 8 | B+Δ @ Hi | 191 | 191 | 204 |
| 9 | B−Δ @ Hi | 191 | 191 | 178 |
| 10 | G+Δ @ Hi | 191 | 204 | 191 |
| 11 | G−Δ @ Hi | 191 | 178 | 191 |
| 12 | R+Δ @ Hi | 204 | 191 | 191 |
| 13 | R−Δ @ Hi | 178 | 191 | 191 |
| 14 | B+Δ @ Mid | 128 | 128 | 141 |
| 15 | B−Δ @ Mid | 128 | 128 | 115 |
| 16 | G+Δ @ Mid | 128 | 141 | 128 |
| 17 | G−Δ @ Mid | 128 | 115 | 128 |
| 18 | R+Δ @ Mid | 141 | 128 | 128 |
| 19 | R−Δ @ Mid | 115 | 128 | 128 |
| 20 | B+Δ @ Shad | 64 | 64 | 77 |
| 21 | B−Δ @ Shad | 64 | 64 | 51 |
| 22 | G+Δ @ Shad | 64 | 77 | 64 |
| 23 | G−Δ @ Shad | 64 | 51 | 64 |
| 24 | R+Δ @ Shad | 77 | 64 | 64 |
| 25 | R−Δ @ Shad | 51 | 64 | 64 |

Fig. CT25gray 導具,RGB printer 模式
跟CMY 模式不同的是,目標L*不是依照 G7 TR015 曲線,而是用Gamma 2.2 曲線;目標 a*,b*則沿用G7 規則。
這一次在一個噴墨印表機測試,直接由RGB driver 列印。

Fig. 噴墨原始狀態,28分裡面拿到6分。

Fig. 修正後拿到滿分 28/28。
再一個樣本證實是有效的修正,我會持續在各種場合取得測試樣本,在一定的樣本量之後再來做一次整理說明。
尚無留言
Comments RSS
TrackBack Identifier URI
No comments. Be the first.
Leave a comment
