為什么同一組照片,兩次特征匹配算出的旋轉角度會有細微差別?在這年復一年拍攝的延時攝影項目里,這個看似無傷大雅的隨機性,差點讓地平線在畫面中反復漂移。問題的根源出在對齊流程的核心環節——用 RANSAC 算法估計幾何變換時,它天生的隨機采樣機制會讓每次運行都投出略有不同的票。
要理解這一點,得先回到項目本身。作者用手機在幾年間從幾乎相同的機位拍下數百張照片,但“幾乎”這個詞藏著所有麻煩。人的站位每次都有細微偏移,手機也從三星 S10 換到 S21,再到 iPhone 14 Pro,不同機型的相機焦距各有差異。于是,原片里的山巒和天空不僅比例不同,角度也各有參差。如果不對每張圖做畸變校正,直接播放就會看到整個風景在鏡頭里劇烈抖動。
![]()
對齊這件事,用計算機視覺的通用做法就是特征匹配。OpenCV 這個開源視覺庫提供了 ORB 算法,它先是結合 FAST 檢測關鍵點,再用 Harris 角點度量篩出最強的那一批點,并通過圖像金字塔拿到多尺度特征。完成匹配后,就需要一個能從包含外點的數據里估算變換模型的算法,這正是 RANSAC 登場的地方。它靠隨機抽樣不斷投票,假設局內點會聚向同一個模型,而噪聲點則不會一致性地支持任何一個模型。
作者最初選用 3×3 的單應矩陣作為變換,結果圖像扭曲嚴重,透視失真被關鍵點匹配的微小誤差放大了不少。改進方案是把變換矩陣降到 2×3,只保留平移和統一的縮放,這樣一來形變可控了許多。但依然有個無法繞開的坎:RANSAC 的隨機性。哪怕輸入完全相同的配點,兩次計算也可能給出略微不同的旋轉量。這對延時攝影來說,意味著每一幀的地平線都可能出現隨機漂移,整個視頻的穩定感蕩然無存。
面對這個“要靈活性還是要確定性”的抉擇,作者沒有嘗試調參去壓制隨機性,而是做了一個干脆的取舍——直接把旋轉矩陣的旋轉分量強制置為零。損失了角度校正的精度,換來了幀與幀之間絕對的穩定。在幾個月甚至幾年的素材里,這種剔除旋轉的做法,反而讓時間流動的感覺變得更加純粹。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.