PTT評價

[心得] 圖片/影片/全景圖自動拼接工具

看板C_Chat標題[心得] 圖片/影片/全景圖自動拼接工具作者
avans
(阿緯)
時間推噓 6 推:6 噓:0 →:1

圖片/影片/全景圖自動拼接工具(ImageStitcherByOpenCV)
https://huggingface.co/spaces/avans06/ImageStitcherByOpenCV

在動畫中常常會有由左至右或由下至上來過場顯示一張大圖
若想將之恢復為原始的大圖
在過去需要將多張圖片透過PS等軟體來拼接合併
但合併時你可能會發現每張圖片
亮度對比或人物比例大小存在些微的不同
導致合併上會遇到許多困難

說到圖片拼接工具
幾乎沒聽過是要拼接動畫圖片
一般來說都是為了照片的全景圖而存在的
而這個工具就是為此需求而誕生的
他除了可拼接多張二次元圖片外
也能拼接照片全景圖或
輸入一個影片檔案(檢測多幀影像並合併為一張圖)

輸入的圖片必須要有一部分重疊的區域
圖片方向可以是下到上也能是左到右
程式會自動偵測,底下是測試範例

測試1
https://i.imgur.com/W68TjHs.png
https://i.imgur.com/IYORik5.png

測試2
https://i.imgur.com/WgjZlmp.jpeg
https://i.imgur.com/gHgj0xx.jpeg

___

為了達到良好的拼接效果,使用者可能需要了解各參數的作用
___

[Gradio 介面參數說明]

1. 前處理設定 (Preprocessing Settings)
裁切頂部(Crop Top %)與裁切底部(Crop Bottom %)
在進行拼接之前可去除圖片上下方不需要的區域(例如:字幕、浮水印、不相關內容),從每張原始圖片或每個影片幀的頂部、底部移除指定高度的百分比。

2. OpenCV 拼接器設定 (OpenCV Stitcher Settings)
此區塊的設定主要影響使用 OpenCV 內建 `cv2.Stitcher` 類別進行拼接時的行為(即當「拼接器模式」選擇 "SCANS" 或 "PANORAMA" 時)。如果選擇 "DIRECT_PAIRWISE",則會跳過(2.)的設定,改用下方的「3. 成對拼接設定」。

* 拼接器模式 (Stitcher Mode),選擇 OpenCV 內建拼接器的主要運作模式。

`SCANS`:針對主要由平移構成的影像序列進行優化(例如:掃描文件、相機直線移動拍攝)。可能使用較簡單的幾何模型。

`PANORAMA`:針對相機旋轉拍攝的全景圖進行優化。通常使用完整的透視變換(
Homography)來處理複雜的幾何變形。

`DIRECT_PAIRWISE`:不使用 OpenCV 內建的 `cv2.Stitcher`。直接採用與處理影片幀相同的「成對拼接」邏輯,依序將圖片兩兩進行特徵匹配與縫合。

* 註冊特徵解析度 (Registration Resolution)
這是進行特徵點偵測與匹配時,所使用的影像縮放比例。數值越低(例如 0.6),處理速度越快,但對於高解析度的原始影像,可能會因為縮小而遺失部分細微特徵,導致匹配效果下降。

* 接縫估計解析度 (Seam Estimation Resolution)
這是計算圖片間最佳拼接線(接縫)時,所使用的影像縮放比例。尋找接縫是計算密集的操作,降低此解析度可以大幅提升速度,且通常對最終品質影響不大。

* 合成解析度 (Compositing Resolution)
這是最終將圖片混合(渲染)到輸出畫布上時,所使用的影像縮放比例。
設為 -1.0 表示使用與原始影像相同的解析度進行合成,能保留最多細節。

* 啟用波浪校正 (Enable Wave Correction)
嘗試校正全景圖中常見的透視畸變(波浪狀變形),不一定適用所有情況。

* 曝光補償 (Exposure Compensation)
選擇 OpenCV 內建拼接器用來調整不同圖片間亮度與對比度差異的方法。

`NO`:不進行曝光補償。

`GAIN`:對每張圖片計算單一的亮度增益值進行調整。

`GAIN_BLOCKS`:將圖片切分成區塊,計算每個區塊的增益值。


3. 成對拼接設定 (Pairwise Stitching Settings)(影片/直接模式/備用)
成對拼接的功能是執行時,每次僅以兩張圖片做拼接,然後反覆將全部圖片拼接完成此區塊的設定會在以下情況生效:(1) 處理影片輸入;(2) 圖片列表模式下選擇了
"DIRECT_PAIRWISE";(3) 圖片列表模式下選擇 "SCANS" 或 "PANORAMA" 但 OpenCV 內建拼接器失敗,程式會自動切換到備用的成對拼接方法。

* 成對變換模型 (Pairwise Transform Model)
選擇兩張圖片之間進行幾何對位時使用的數學模型,如果一種模型拼接失敗或效果不佳,可以嘗試另一種。

`Homography`:單應性矩陣,可以處理透視變換(旋轉、平移、縮放、傾斜、梯形變形)。適用於大多數全景圖或有視角變化的情況,但對微小錯誤較敏感,可能引入不自然的變形。

`Affine_Partial`:部分仿射變換,處理平移、旋轉和均勻縮放。比 Affine_Full 更受限。

`Affine_Full`:完整仿射變換,處理平移、旋轉、縮放(可不均勻)和切變(傾斜)。比 Homography 模型更穩定,較不易產生奇怪的扭曲,適合掃描件或主要為平移/旋轉的場景。

* 混合方法 (Blending Method)
在重疊區域用來平滑接縫的演算法。

`Linear`:線性漸變混合。計算速度較快,效果尚可。

`Multi-Band`:多頻段融合。通常能產生更自然、無縫的過渡效果,但計算成本較高。

* 啟用增益補償 (Enable Gain Compensation)
在進行混合之前,嘗試計算並補償兩張圖片之間的整體亮度差異,通常建議啟用,可以改善拼接後亮度不均的問題。

* 匹配比例閾值 (Match Ratio Threshold)
Lowe's 比例測試閾值,用來篩選特徵匹配點對。比較最佳匹配和次佳匹配的距離,如果比例小於此閾值,則認為是好的匹配。
數值越低篩選越嚴格,留下的匹配點越可靠,但也可能過濾掉一些有用的匹配。

* RANSAC 重投影閾值 (RANSAC Reproj Threshold)
在估計幾何變換(Homography/Affine)時,RANSAC 演算法用來判斷一個特徵匹配點對是否為「內點 (inlier)」的最大容許重投影誤差(單位:像素)。
數值越低,對匹配精度的要求越嚴格。預設值 5.0 是個常用起點。如果對位不準確,
可以嘗試降低此值;如果找不到足夠的內點導致變換估計失敗,可以嘗試提高此值。

* 最大距離係數 (Max Distance Coeff)
在初步篩選匹配點時,限制兩個匹配的特徵點在各自影像上的像素距離。
超過此距離的匹配會被直接濾除。計算方式為:`此係數 * 影像對角線長度`。
快速排除掉明顯距離過遠、不可能是正確匹配的點對。
預設 0.5 表示匹配點的距離不能超過影像對角線長度的一半。如果相鄰圖片重疊很少或移動很大,可能需要調高此係數。

* 最大混合寬度 (Max Blending Width)
限制成對拼接過程中,中間畫布的最大寬度。防止消耗過多記憶體。

* 最大混合高度 (Max Blending Height)
限制成對拼接過程中,中間畫布的最大高度,防止消耗過多記憶體。

* 混合平滑核心大小 (Blend Smooth Kernel Size)
在計算混合權重(遮罩)後,使用高斯模糊進行平滑處理的核心大小。必須是正的奇數(例如 5, 15, 21)才能啟用平滑。數值越大,平滑範圍越廣,過渡越柔和,但也可能模糊邊緣。設為 -1 或偶數可以關閉平滑步驟。

* 多頻段混合層級 (Multi-Band Blend Levels)
當混合方法選擇 "Multi-Band" 時,設定影像金字塔的層數。層數越多,理論上過渡越平滑,但計算量也越大。預設 4 層。


4. 影片拼接器設定 (Video Stitcher Settings)
此區塊的設定僅在輸入為影片檔案時生效。

* 取樣間隔 (毫秒) (Sample Interval (ms))
設定從影片中提取幀來進行拼接的時間間隔(單位:毫秒)。
間隔越小,取樣的幀越多,拼接結果可能更連續,但處理時間也越長。間隔越大,速度越快,但如果影片移動過快,可能導致相鄰幀之間缺乏足夠重疊而拼接失敗。

* 最大合成寬度 (影片) (Max Composite Width (Video))
在影片處理過程中,限制持續拼接的結果影像的最大寬度。防止拼接結果無限增長。當寬度達到此限制時,會將當前的拼接結果儲存起來,並用下一幀作為新的起點開始拼接。

* 最大合成高度 (影片) (Max Composite Height (Video))
同上,限制拼接結果的最大高度。


5. 後處理設定 (Postprocessing Settings)

* 裁切黑邊 (拼接後) (Crop Black Borders (Post-Stitch))
在所有拼接步驟完成之後,自動偵測並移除最終輸出影像周圍的黑色(或接近黑色)的無用邊界區域。

* 嚴格無黑邊 (裁剪後)(Strict No Black Edges (Post-Crop))
當啟用「嚴格無黑邊」,程式會在執行完標準的黑邊裁剪後,再執行檢查與裁剪的步驟它會持續檢查影像的四周邊緣並裁剪任何黑色像素,達到絕對無黑邊的效果,啟用此模式會比標準裁剪多裁掉一部分影像內容。最終輸出的影像尺寸會因此比僅使用標準裁剪時還小。


--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.64.188 (臺灣)
PTT 網址

pigin85278905/01 16:48

error40505/01 16:48這麼專業的嗎

eva05s05/01 16:50先推

keepgoingKH05/01 16:54專業推

allen88688605/01 17:12好專業

AoWsL05/01 17:23有這種東西?沒玩過 不過這個AI圖跑運鏡也能用 謝謝