散模型的紅外圖像彩色化:從原理到實(shí)戰(zhàn))
紅外圖像有個(gè)很有意思的矛盾它采集的是“看不見的光”卻總被我們用“看得見的灰度圖”來展示。結(jié)果就是即便你拿著全場(chǎng)最貴的紅外相機(jī)輸出的畫面在沒有訓(xùn)練過的人眼里還是和黑白監(jiān)控沒什么區(qū)別——屋頂是黑的、人是灰的、車輛和路面糊成一團(tuán)。做安防、工業(yè)檢測(cè)、夜間巡檢的朋友應(yīng)該都有同感我們真正想看的不是“那里熱不熱”而是“那個(gè)東西到底是什么顏色、什么材質(zhì)”。而“基于擴(kuò)散模型的紅外圖像彩色化”恰好解決的就是這個(gè)核心痛點(diǎn)——把單通道紅外強(qiáng)度圖轉(zhuǎn)換成符合自然色彩認(rèn)知的彩色圖像讓機(jī)器視覺和人眼認(rèn)知真正對(duì)齊。這篇文章我把整條路線從頭到尾梳理了一遍。從紅外圖像為什么難上色到擴(kuò)散模型的核心原理拆解再到一份可以照著跑的實(shí)現(xiàn)流程最后整理了主流方法的前沿對(duì)比。適合正在做圖像生成的開發(fā)者、做紅外相關(guān)產(chǎn)品的算法工程師也適合打算用擴(kuò)散模型做跨模態(tài)任務(wù)素描上色、深度圖轉(zhuǎn)彩色圖、夜視增強(qiáng)的研究者。我會(huì)盡量把每一步的“為什么”講透而不是只給一段代碼讓你復(fù)制。1. 為什么紅外圖像的“上色”比想象中難1.1 紅外圖像不是“黑白照片”而是熱量分布圖我第一次接觸紅外彩色化任務(wù)時(shí)第一反應(yīng)是這不就是灰度圖上色嗎后來才發(fā)現(xiàn)這個(gè)認(rèn)知偏差害我不淺。紅外相機(jī)的輸出本質(zhì)上是場(chǎng)景熱輻射強(qiáng)度的分布像素明暗代表溫度高低而不是可見光的反射亮度。普通的灰度圖是可見光反射強(qiáng)度的單通道投影雖然也是“單通道”物理含義和紅外完全不同。這就帶來幾個(gè)非常麻煩的特性溫度相近但顏色完全不同的物體在紅外圖里幾乎看不出差別同一物體在不同熱狀態(tài)下紅外表現(xiàn)差異極大——?jiǎng)傁ɑ鸬钠嚭托旭傊械钠嚰t外圖像是兩個(gè)樣子玻璃、水面、金屬表面對(duì)紅外線的反射和吸收規(guī)律與可見光完全不同紋理特征對(duì)不上。這些特性讓紅外彩色化成了一個(gè)典型的“病態(tài)問題”一個(gè)紅外輸入可能對(duì)應(yīng)多個(gè)合理顏色輸出。一輛紅色的汽車停在路邊熄火半小時(shí)后它在紅外圖里可能和旁邊藍(lán)色的車幾乎一模一樣。算法必須從周圍場(chǎng)景、車輛輪廓、路面位置等上下文信息推斷出“這應(yīng)該是一輛紅色的車”這已經(jīng)超過了一般像素級(jí)映射的范疇需要一定的語義理解能力。1.2 偽彩色可視化與真實(shí)彩色化的界限現(xiàn)在絕大多數(shù)紅外設(shè)備默認(rèn)顯示的“彩色”都是偽彩色映射把單通道數(shù)值映射到Jet藍(lán)到紅漸變、Iron鐵紅、Rainbow等顏色查找表。偽彩色確實(shí)解決了人眼分辨層次少的問題——溫度從低到高對(duì)應(yīng)從藍(lán)到紅的漸變對(duì)比度大幅提升熱斑一眼就能看出來。但偽彩色不是彩色化。它沒有生成物體的固有色車依然是漸變色塊而不是“一輛紅色汽車”。真實(shí)彩色化的目標(biāo)完全不同給定紅外輸入推斷場(chǎng)景在自然光下應(yīng)該呈現(xiàn)的顏色。這要求模型知道哪塊是天空、哪塊是草地、哪輛車是紅色。這也是為什么早期用簡(jiǎn)單回歸模型做這個(gè)任務(wù)效果總是一片灰蒙蒙的。因?yàn)榧兿袼丶?jí)映射缺少對(duì)場(chǎng)景內(nèi)容的抽象能力網(wǎng)絡(luò)找不到顏色和紅外強(qiáng)度之間的穩(wěn)定規(guī)律——事實(shí)上它們之間確實(shí)沒有一個(gè)簡(jiǎn)單穩(wěn)定的映射關(guān)系。而生成模型的價(jià)值就在于它可以在訓(xùn)練數(shù)據(jù)里學(xué)到“這種輪廓通常對(duì)應(yīng)什么顏色”的統(tǒng)計(jì)規(guī)律并以視覺合理的方式生成出來。2. 擴(kuò)散模型憑什么能做好彩色化原理與選型拆解2.1 擴(kuò)散模型的生成邏輯擴(kuò)散模型的核心思想其實(shí)不復(fù)雜把一張圖片一點(diǎn)一點(diǎn)加噪聲加到最后變成純?cè)肼暼缓笥?xùn)練一個(gè)網(wǎng)絡(luò)學(xué)會(huì)逆向把這團(tuán)噪聲一步步還原成圖片。前向加噪過程可以寫成x_t √(α_t) x_0 √(1-α_t) ε其中 x_0 是原始彩色圖α_t 是隨時(shí)間步 t 遞減的系數(shù)ε 是高斯噪聲。整個(gè)過程可以理解為“逐漸破壞”圖片t 越小x_t 越接近原圖t 越大x_t 越接近純?cè)肼?。?xùn)練目標(biāo)是讓網(wǎng)絡(luò)預(yù)測(cè)出加入的噪聲 ε損失函數(shù)是L E[||ε - ε_(tái)θ(x_t, t, c)||2]注意這里有一個(gè)額外的輸入 c也就是條件信息。在紅外彩色化任務(wù)中c 就是紅外圖像。網(wǎng)絡(luò)不僅看到帶噪聲的彩色圖 x_t 和時(shí)間步 t還看到對(duì)應(yīng)的紅外圖需要在這個(gè)條件的引導(dǎo)下完成去噪。推理時(shí)從一個(gè)隨機(jī)噪聲開始每步讓網(wǎng)絡(luò)預(yù)測(cè)并去除一部分噪聲迭代若干步后得到完整彩色圖。這就是“反向去噪”過程。用生活化的類比GAN 像一個(gè)一錘子買賣的畫家直接畫一張完整圖畫不好就靠判別器挑刺并反饋擴(kuò)散模型像一個(gè)反復(fù)修改的雕塑師從一整塊噪聲材料開始每一步只去掉一點(diǎn)雜質(zhì)逐步成形。這個(gè)“逐步細(xì)化”的過程決定了擴(kuò)散模型能保留更多紋理細(xì)節(jié)且輸出的變化空間更大。2.2 為什么不用 GAN 或 CNN 回歸不少做圖像翻譯的同學(xué)會(huì)問pix2pix 不是已經(jīng)能實(shí)現(xiàn)紅外到彩色的轉(zhuǎn)換嗎為什么還要用擴(kuò)散模型確實(shí)能做但效果差異很大。傳統(tǒng) CNN 回歸用 L1/L2 損失直接訓(xùn)練一個(gè)映射網(wǎng)絡(luò)結(jié)果穩(wěn)定、速度快但輸出幾乎總是模糊的。因?yàn)?L2 損失天然傾向取平均值多模態(tài)問題一個(gè)輸入對(duì)應(yīng)多個(gè)顏色答案取平均之后只?;颐擅梢黄瑳]有高頻紋理。GAN 類方法如 pix2pix生成的圖像色彩鮮艷、細(xì)節(jié)豐富但訓(xùn)練不穩(wěn)定容易出現(xiàn)模式坍縮即生成器只學(xué)會(huì)幾種有限的風(fēng)格。此外GAN 的判別器容易“投機(jī)取巧”靠一些紅外圖里不存在的紋理偽影騙過判別器讓輸出看起來花哨但不真實(shí)。擴(kuò)散模型訓(xùn)練穩(wěn)定沒有對(duì)抗平衡問題輸出多樣性高天然匹配彩色化這一多模態(tài)任務(wù)缺點(diǎn)也比較明顯——顯存占用大、推理速度慢。但質(zhì)量上限和可控性是最高的。簡(jiǎn)單做了一張對(duì)比方法是否需配對(duì)數(shù)據(jù)訓(xùn)練穩(wěn)定性輸出多樣性主要問題CNN 回歸需要穩(wěn)定低結(jié)果模糊缺少紋理GANpix2pix 系列需要一般依賴調(diào)參中模式坍縮、易出偽影擴(kuò)散模型條件擴(kuò)散需要穩(wěn)定高顯存占用大推理慢我當(dāng)時(shí)選擇擴(kuò)散模型還有一個(gè)重要考量這個(gè)任務(wù)的評(píng)價(jià)標(biāo)準(zhǔn)是“視覺合理”而不是“像素精確”。偽彩色已經(jīng)能準(zhǔn)確表達(dá)溫度了如果彩色化結(jié)果在像素級(jí)上略有偏差但整體觀感自然、語義正確那它就是成功的。擴(kuò)散模型恰恰在“讓人看起來合理”這件事上做得最好。3. 完整實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)備、模型構(gòu)建與訓(xùn)練細(xì)節(jié)3.1 數(shù)據(jù)集的構(gòu)建與預(yù)處理做任何條件生成任務(wù)數(shù)據(jù)都是命根子。紅外彩色化需要紅外-可見光圖像對(duì)。公開可選的數(shù)據(jù)集有 KAIST 多光譜數(shù)據(jù)集、FLIR 數(shù)據(jù)集等但如果你針對(duì)的是特定場(chǎng)景比如工業(yè)管道巡檢或特定型號(hào)的紅外相機(jī)最好自采數(shù)據(jù)做微調(diào)。數(shù)據(jù)準(zhǔn)備有四個(gè)關(guān)鍵步驟配準(zhǔn)。紅外相機(jī)與可見光相機(jī)通常視場(chǎng)角不同、安裝位置不同獲得的圖像在空間上不完全對(duì)齊。簡(jiǎn)單的做法是先用棋盤格標(biāo)定獲得剛性變換矩陣然后做透視變換把可見光圖映射到紅外圖的坐標(biāo)系。裁剪。配準(zhǔn)后圖像邊緣往往有無效區(qū)域統(tǒng)一裁剪掉。歸一化。紅外圖是單通道建議先做分位數(shù)歸一化比如把 2% 到 98% 分位的強(qiáng)度映射到 [-1, 1]可以抵抗個(gè)別高溫目標(biāo)的極端值影響。數(shù)據(jù)增強(qiáng)。隨機(jī)水平翻轉(zhuǎn)、隨機(jī)裁剪、輕微的亮度和對(duì)比度抖動(dòng)。注意不要做高級(jí)的顏色增強(qiáng)——彩色圖是監(jiān)督信號(hào)顏色信息不能隨意破壞。一個(gè)容易忽略的點(diǎn)紅外圖的熱分布受環(huán)境影響很大同一個(gè)場(chǎng)景白天和晚上拍出來的紅外圖差異明顯。如果訓(xùn)練集只有白天數(shù)據(jù)晚上推理效果會(huì)很差。有條件的話同一場(chǎng)景盡量覆蓋不同時(shí)段、不同季節(jié)。3.2 模型結(jié)構(gòu)設(shè)計(jì)要點(diǎn)模型主干用條件 UNet這是擴(kuò)散模型的標(biāo)準(zhǔn)架構(gòu)。幾個(gè)關(guān)鍵設(shè)計(jì)點(diǎn)條件注入方式。最簡(jiǎn)單的是通道拼接把紅外圖直接和帶噪彩色圖在通道維度拼接。這種方式實(shí)現(xiàn)簡(jiǎn)單但也會(huì)讓網(wǎng)絡(luò)把紅外特征和彩色特征耦合得很緊稍有不對(duì)齊生成結(jié)果就容易出現(xiàn)色塊漂移。更推薦的做法是類似 ControlNet 的思路把紅外圖通過一個(gè)小型特征提取網(wǎng)絡(luò)以零卷積的方式注入到 UNet 的各個(gè)尺度層。這樣原始生成能力被保留條件信息作為“引導(dǎo)”加入訓(xùn)練更穩(wěn)定結(jié)果也更可控。增加交叉注意力層。在 UNet 的中間層加入交叉注意力讓彩色化過程能“關(guān)注”紅外圖上對(duì)應(yīng)的關(guān)鍵區(qū)域。這對(duì)于大范圍語義信息的傳遞比如判斷整體場(chǎng)景是室內(nèi)還是室外很有幫助。輸入輸出通道。紅外圖單通道彩色圖三通道。如果使用預(yù)訓(xùn)練的擴(kuò)散模型權(quán)重注意輸入通道數(shù)變化后第一層卷積權(quán)重需要重新初始化。一個(gè)變通做法是把紅外圖復(fù)制成三通道再輸入保住預(yù)訓(xùn)練權(quán)重但會(huì)損失一些信息精確度。具體選哪種要看你的數(shù)據(jù)量數(shù)據(jù)多放開通道重新訓(xùn)練效果好數(shù)據(jù)少復(fù)制三通道更穩(wěn)妥。3.3 損失函數(shù)與訓(xùn)練超參數(shù)擴(kuò)散模型的核心損失就是噪聲預(yù)測(cè)損失。但只靠這個(gè)損失生成結(jié)果可能在顏色上“跑偏”——比如天空變成綠色。我實(shí)際訓(xùn)練時(shí)加了兩個(gè)輔助損失感知損失LPIPS約束生成結(jié)果和真實(shí)彩色圖在特征空間上接近能顯著減少模糊感和結(jié)構(gòu)錯(cuò)位。色彩直方圖損失計(jì)算生成圖與真實(shí)圖的 RGB 直方圖差異能有效抑制整體色偏。這個(gè)損失不用太強(qiáng)權(quán)重在 0.05 左右的量級(jí)就夠。參考的超參數(shù)配置圖像尺寸256×256兼顧顯存和細(xì)節(jié)批量大小8 到 16根據(jù)顯存調(diào)整優(yōu)化器AdamW學(xué)習(xí)率 1e-4帶 5000 步 warmup時(shí)間步1000采樣步數(shù)DDIM 50 步訓(xùn)練輪數(shù)大約 50 到 80 輪觀察驗(yàn)證集 FID 收斂后提前停止訓(xùn)練擴(kuò)散模型最忌諱上來就用大 batch 和超大學(xué)習(xí)率我在一開始就是這么做的結(jié)果 loss 直接發(fā)散。后來改成小 batch 低學(xué)習(xí)率 warmup訓(xùn)練才真正跑起來。另外混合精度訓(xùn)練AMP幾乎是必須的顯存占用能降一半訓(xùn)練速度提升不少。4. 實(shí)操過程從零跑通一個(gè)紅外彩色化 Demo4.1 環(huán)境搭建基礎(chǔ)環(huán)境是 Python 3.10、PyTorch 2.x、CUDA 11.8 及以上。需要的主要依賴有 torch、torchvision、diffusers或自寫的擴(kuò)散采樣邏輯、lpips 等。如果你不想從零手寫擴(kuò)散模型可以直接基于 diffusers 庫改造。但提醒一句diffusers 的抽象層次較高自定義條件注入時(shí)反而費(fèi)勁。想深入理解原理、方便改結(jié)構(gòu)的話推薦手寫一個(gè)簡(jiǎn)化版的 DDPM 訓(xùn)練循環(huán)。代碼量不多而且后期調(diào)試空間大。4.2 訓(xùn)練與推理流程核心訓(xùn)練循環(huán)偽代碼如下for epoch in range(epochs): for ir_img, rgb_img in dataloader: # ir_img: (B, 1, H, W), rgb_img: (B, 3, H, W) t torch.randint(0, timesteps, (B,)) # 隨機(jī)采樣時(shí)間步 noise torch.randn_like(rgb_img) x_t sqrt_alpha_bar[t] * rgb_img sqrt(1 - alpha_bar[t]) * noise pred_noise model(x_t, t, ir_img) # 條件輸入 loss mse(pred_noise, noise) # 可選加上 lpips 損失、直方圖損失 loss.backward() optimizer.step()這里每輪迭代隨機(jī)取一個(gè)時(shí)間步 t模型要在任意噪聲程度下都能正確去噪。訓(xùn)練時(shí)收斂的標(biāo)志是 loss 明顯下降并穩(wěn)定在一個(gè)較低值。推理時(shí)的邏輯我強(qiáng)調(diào)一下# 從純?cè)肼曢_始帶條件逐步去噪 x torch.randn_like(rgb_img) for t in reversed(range(0, sampling_steps)): pred_noise model(x, t, ir_img) x denoise_step(x, pred_noise, t, ddimTrue)DDIM 采樣器把原來 1000 步的迭代壓縮到 50 步左右每步不再需要重新計(jì)算完整噪聲。我實(shí)測(cè)下來DDIM 50 步已經(jīng)能得到和 1000 步幾乎同等質(zhì)量的結(jié)果速度提升了大概 10 到 15 倍。如果對(duì)質(zhì)量要求不高20 步也可以接受。4.3 評(píng)估指標(biāo)評(píng)估彩色化質(zhì)量不能只看像素誤差我的經(jīng)驗(yàn)是組合使用多個(gè)指標(biāo)FID衡量生成圖片分布與真實(shí)圖片分布的距離對(duì)人眼感知更友好。這是我最看重的指標(biāo)。LPIPS衡量結(jié)構(gòu)感知相似度數(shù)值越小表示感知上越接近。SSIM/PSNR可以參考但不能作為唯一標(biāo)準(zhǔn)。彩色化是一個(gè)多模態(tài)任務(wù)PSNR 高不代表看起來自然反而可能意味著輸出偏保守、偏模糊。主觀評(píng)估找?guī)讉€(gè)人盲測(cè)打分對(duì)比不同方法的“自然感”和“語義正確性”。這步不能省。我自己的體會(huì)是FID 和 LPIPS 更可靠PSNR 容易騙人。有一次我調(diào)參把 PSNR 提了 2 個(gè)點(diǎn)結(jié)果人眼看起來整體偏灰、顏色發(fā)悶明顯不如之前的版本。5. 常見問題與排查技巧實(shí)錄5.1 訓(xùn)練不穩(wěn)定loss 波動(dòng)大生成圖帶雪花噪點(diǎn)這是一個(gè)非常常見的問題尤其是在從零訓(xùn)練、沒有預(yù)訓(xùn)練權(quán)重的情況下。排查優(yōu)先級(jí)如下學(xué)習(xí)率太高。擴(kuò)散模型的學(xué)習(xí)率通常要比常規(guī) CNN 訓(xùn)練低一檔1e-4 起步比較安全不要一上來就 5e-4。數(shù)據(jù)歸一化不一致。彩色圖和高斯噪聲的量級(jí)如果不是同一個(gè)范圍去噪任務(wù)就會(huì)很別扭。把所有圖像統(tǒng)一歸一化到 [-1, 1]噪聲采樣也在這個(gè)量級(jí)下構(gòu)建。batch size 太小導(dǎo)致噪聲預(yù)測(cè)的梯度估計(jì)方差太大。試試梯度累積等效 batch 達(dá)到 16 以上。我在調(diào)試中還發(fā)現(xiàn)warmup 步數(shù)太少也會(huì)有影響。建議至少 1000 到 5000 步的線性 warmup讓優(yōu)化器先把模型參數(shù)“穩(wěn)住”。5.2 生成結(jié)果嚴(yán)重偏綠或偏藍(lán)這個(gè)現(xiàn)象我印象最深刻。紅外圖像與顏色的關(guān)聯(lián)本來就是統(tǒng)計(jì)性的網(wǎng)絡(luò)很容易學(xué)到訓(xùn)練集中占主導(dǎo)的顏色分布整體色調(diào)偏移。一個(gè)有效的解決方法是加色彩直方圖損失強(qiáng)迫生成結(jié)果的全局顏色分布接近真實(shí)分布。注意權(quán)重不能太大否則會(huì)壓制細(xì)節(jié)多樣性。另一個(gè)思路是在推理時(shí)用無分類器引導(dǎo)Classifier-free guidance訓(xùn)練時(shí)按一定比例隨機(jī)丟棄條件推理時(shí)同時(shí)計(jì)算有條件和無條件的結(jié)果再插值放大條件影響。這個(gè)技巧能明顯增強(qiáng)生成結(jié)果與紅外輸入的對(duì)應(yīng)關(guān)系減少顏色漂移。5.3 顯存不夠用條件擴(kuò)散模型的顯存占用相當(dāng)可觀256×256、batch 8 在 24GB 顯存上勉強(qiáng)跑得動(dòng)。如果只有 12GB 顯存有幾個(gè)降級(jí)方案混合精度訓(xùn)練顯存直接減半使用梯度累積等效擴(kuò)大 batch 但不增加顯存把圖像裁成 patch 訓(xùn)練比如 256 的圖裁成 4 個(gè) 128×128 的 patch改用潛在擴(kuò)散模型Latent Diffusion先訓(xùn)練或使用一個(gè) VAE 把圖像壓縮到低維潛在空間在潛在空間做擴(kuò)散。這樣顯存占用大幅下降而且生成質(zhì)量幾乎不受影響這也是當(dāng)前主流做法。5.4 推理太慢實(shí)時(shí)性跟不上擴(kuò)散模型推理慢是公認(rèn)的短板。如果做的是離線處理50 步 DDIM 完全夠用。如果要接近實(shí)時(shí)可以考慮減少采樣步數(shù)到 20 步左右配合一個(gè)好的采樣器DPM-Solver 這類做蒸餾把多步采樣壓縮成少步甚至一步用潛在擴(kuò)散模型減少每步的計(jì)算量將 UNet 量化到 8-bit用 TensorRT 做推理加速。把模型從 PyTorch 轉(zhuǎn)為 ONNX Runtime 或 TensorRT 后實(shí)測(cè)推理速度能提升 2 到 4 倍部署到邊緣設(shè)備問題不大。6. 前沿對(duì)比擴(kuò)散模型 vs GAN vs 回歸方法6.1 主流方案橫向?qū)Ρ认旅孢@張表是我在項(xiàng)目方案評(píng)審時(shí)做的對(duì)比基本能覆蓋當(dāng)前主流路線方案輸出質(zhì)量理論速度訓(xùn)練成本適用場(chǎng)景傳統(tǒng)偽彩色映射中僅可視化實(shí)時(shí)無溫度分布觀察CNN 回歸低偏模糊實(shí)時(shí)低對(duì)清晰度要求不高的場(chǎng)景GANpix2pix較高快中需要快速生成、可接受偽影條件擴(kuò)散模型高慢高離線高質(zhì)量彩色化、語義保真潛在條件擴(kuò)散高中中顯存受限、需要平衡速度與質(zhì)量我自己的判斷是如果項(xiàng)目預(yù)算和算力有限、實(shí)時(shí)性要求高先用 CNN 回歸或偽彩色迭代出一個(gè)可用版本如果追求高質(zhì)量、可接受離線推理?xiàng)l件擴(kuò)散模型是當(dāng)前最優(yōu)解。未來隨著蒸餾和推理加速技術(shù)成熟擴(kuò)散模型的實(shí)時(shí)部署也會(huì)越來越可行。6.2 值得關(guān)注的前沿方向潛變量擴(kuò)散是當(dāng)前絕對(duì)主流。相比像素空間直接做擴(kuò)散潛在空間的計(jì)算量小一個(gè)量級(jí)而且可以復(fù)用大量公開的預(yù)訓(xùn)練權(quán)重。這個(gè)方案很適合紅外彩色化這類任務(wù)。條件注入的精細(xì)化也是一個(gè)大趨勢(shì)。ControlNet 推出后很多人用它做紅外圖引導(dǎo)效果比直接拼接通道好不少。它最大的優(yōu)勢(shì)是可以凍結(jié)基礎(chǔ)生成模型只訓(xùn)練條件注入分支訓(xùn)練成本和難度都大幅下降??缬蚍夯瘑栴}也不能忽視。不同廠家的紅外相機(jī)響應(yīng)曲線、分辨率、噪聲水平差異極大在 A 相機(jī)上訓(xùn)練好的模型換到 B 相機(jī)上效果往往打折。一個(gè)可行的思路是在訓(xùn)練時(shí)做“紅外風(fēng)格增強(qiáng)”對(duì)紅外圖做隨機(jī)亮度偏移、對(duì)比度變化、高斯模糊和加噪讓模型對(duì)這些變化不敏感。多模態(tài)融合是一個(gè)很有潛力的方向。如果場(chǎng)景中同時(shí)有紅外和可見光弱光圖像可以讓模型以兩者為條件互相補(bǔ)足。紅外對(duì)溫度敏感可見光弱光對(duì)紋理敏感融合后的彩色化結(jié)果往往比單一輸入更好。這個(gè)方向上擴(kuò)散模型的多條件生成能力有天然優(yōu)勢(shì)。最后做個(gè)小結(jié)我在做這個(gè)項(xiàng)目的整個(gè)過程中比較深的體會(huì)是真正決定最終效果的往往不是模型結(jié)構(gòu)有多新而是數(shù)據(jù)和條件注入的細(xì)節(jié)有沒有做到位。紅外圖像歸一化方式、配準(zhǔn)精度、條件特征的注入位置這些對(duì)結(jié)果的影響比換一個(gè)更大的 UNet 要顯著得多。調(diào)試階段給大家一個(gè)實(shí)用建議把紅外圖、真實(shí)彩色圖、生成彩色圖并排保存每訓(xùn)練幾百步就肉眼檢查一次???loss 曲線容易自我催眠直接看圖會(huì)直擊要害。很多時(shí)候你覺得模型“快要崩了”其實(shí)只是視覺對(duì)比的假象。這項(xiàng)技術(shù)后續(xù)還可以往下擴(kuò)展的方向挺多把整個(gè)流程接到實(shí)時(shí)視頻流上或者把紅外和可見光兩個(gè)傳感器做統(tǒng)一的多模態(tài)框架都是可以深挖的點(diǎn)。如果這篇文章能幫你少走幾段彎路那就值了。