系列 B 第二篇:量化「兩個年份之間城市變了多少」有兩條主流路徑——SSIM 著重結構相似度,ResNet 著重語義變化。本篇拆解兩者各自的擅長領域,並以實際數據示範何時應同時採用兩個指標。


一、為何需要「跨年變化偵測」

前一篇介紹的三個指標(邊緣密度、建築覆蓋率、紋理熵)屬於單幀指標——每張影像獨立計算一個數值。

然而研究城市發展時,真正想回答的問題是「這個地點從 2018 到 2025 發生了多大的變化」。最直覺的做法是差分(metric_2025 - metric_2018),但此方式有一個根本限制:

兩張影像的 edge_density 同樣是 0.18,差值為零——但實際上整片區域可能已完全重建,只是新舊建築的邊緣密度恰好相同。

差分丟失了「像素級的對應關係」。需要的是直接比對兩張影像本身的方法。

主流有兩條路徑:

方法 偵測對象 計算成本 可解釋性
SSIM 結構相似度(像素對應) 低(CPU 即可)
ResNet 餘弦距離 語義相似度(特徵對應) 中(一次 forward pass)

兩者並非替代關係,而是互補

- 閱讀剩餘部分 -

01 · 彩票的隨機數真的隨機嗎?讓我們用 Chi² 來查詢分析資料

彩票開到現在,將近 1900 期、總共開出 11400 顆主號碼球。如果機器是公平的,理論上 1-38 號每個號碼應該出現約 300 次 左右。

如果某個號碼出現了 335 次(比期望多 35 次),這算正常的隨機波動,還是機器有問題?

憑直覺很難判斷。30 次差距聽起來不少,但攤在 1900 期裡又似乎還好。

這正是 Chi² 適合度檢定 要解決的問題:它把「直覺判斷」變成「可量化的 p-value」

- 閱讀剩餘部分 -

在戰棋戰鬥場景裡,移動格網(MoveGrid)由大量 Sprite 組成,每個格子背後可能有 back、deco、sr 等多個 SpriteRenderer。這次做了一個 bake 功能,把這些 Sprite 靜態合併成單一 mesh,結果出現了一個值得記錄的反直覺現象。

數據對照

指標 bake-off bake-on 差異
CPU main 25.1ms 11.1ms −14ms
FPS 39.8 90.1 2.3×
Batches 106 22 −84
Render thread 4.9ms 4.6ms 幾乎不變
SetPass calls 67 67 不變

bake-off
96621-skvrs1tg86l.png

- 閱讀剩餘部分 -