封面
把一張鞋底照片,變成防滑安全分數
問題 + 我們要做的事
問題:鞋底磨損肉眼難判斷,濕滑跌倒是真實風險;實驗室 ASTM 摩擦試驗準,但慢、貴、要送驗。
我們要做的:讓消費者拍三張鞋底照,就能得到乾/濕摩擦係數(COF)+ 防滑等級 + 白話建議;鞋廠/實驗室用同一套快速初篩。
01 · 資料
訓練資料的實際狀況
貴公司提供之首批訓練資料
- 其中 32 雙附 ASTM F2913 正式檢測報告;另 9 雙僅有照片、無對應報告(無標籤,本次未納入訓練)。
- 涵蓋 11 家鞋廠、材質含橡膠(NR)/EVA/TPR/TPE/PU。
- 照片為「整個鞋底各角度的手持照」、背景較雜亂 —— 此特性與後續方法選擇相關。
02 · 標籤
標籤是金級的,但鎖在 PDF 裡
ASTM F2913:2011 摩擦係數試驗
每份報告含 前掌 / 後跟 / 水平 × 乾 / 濕 共 6 個 COF 值。COF 已是 0–1 量級(濕式 0.30–0.86),剛好對齊模型輸出。
- PDF 無文字層(純影像)→ 用視覺萃取數字。
- 用報告第 3 頁「個別量測值」的平均,逐格交叉驗證 → 32 份全部對得上(誤差僅四捨五入)。
- 抽驗數值較特殊者(如某粗跟女鞋後跟乾式僅 0.34)→ 比對照片確認屬實(粗跟為光滑硬質、抓地力低),非萃取錯誤。
標籤品質高(實驗室正式報告)。主要限制不在資料準確度,而在樣本數量 —— 見下一頁。
03 · 資料探勘
資料探勘:四項關鍵議題
這四點決定了後續的模型方法
- ① 樣本數量有限:僅 32 雙具標籤(一般期望數百至千筆)→ v1 定位為諮詢級估算工具,需採嚴謹的分組驗證。
- ② 照片型態與原規劃不同:實際為「整底多角度照」,非乾淨的前掌/後跟/全底分區照。
- ③ 樣本皆為新鞋:32 雙均為工廠新品 → 「建議更換」等級 0 筆;而消費者情境多為磨損舊鞋。
- ④ 乾式 COF 常 >1.0:超出模型輸出範圍 → 訓練時壓縮、推論時還原(濕式皆在範圍內,無此問題)。
04 · 模型方法
模型方法:聚焦於「整底 → 兩個數值」
輸出定為整體乾/濕兩個 COF
- 單張整底照(+材質)→ 整體
(cof_wet, cof_dry),暫不做分區輸出(現有資料量不足以支撐)。
- 採用凍結的 ConvNeXt-Tiny 作為特徵抽取器 + 小型分類層。
(若完整微調 2,800 萬參數對應 32 筆資料,將過度擬合、退化為「永遠輸出平均值」。)
- 對外資料介面維持不變:產品端仍上傳 3 張分區照,推論時各推一次、以固定權重(前掌 0.30/後跟 0.40/全底 0.30)組成整體,前端/語言模型/API 皆無需調整。
05 · 方法一
方法一:移除背景雜訊(去背)
原始照片背景雜亂,會干擾模型判讀
導入去背處理(rembg / u2net),將鞋底自辦公室/實驗室背景中分離、其餘區域填白,使模型專注於鞋底本身的紋路與磨耗。
原始(含背景)R² 0.07
去背後R² 0.18
導入此方法後,濕式 32 折交叉驗證 R² 由 0.07 提升至 0.18。
06 · 方法二
方法二:分區放大(前中後三段)
檢測報告原本即以前掌/後跟分區量測
在去背後,沿鞋底長軸切分為前/中/後三段並各自放大,一併輸入模型。此作法等同提高有效解析度,也對應檢測報告原本以分區方式量測的特性。
去背R² 0.18
去背 + 三段放大R² 0.32
加入分區放大後,R² 由 0.18 進一步提升至 0.32。
07 · 成效驗證
嚴謹的驗證方法:32 折交叉驗證(LOSO)
Leave-One-Shoe-Out 留一雙鞋交叉驗證
- 為何採留一雙鞋:同一雙鞋的多張照片若同時出現在訓練與驗證,會造成資料洩漏、評估虛高。改以鞋為單位分組、每次保留一整雙作驗證、輪替 32 次,數字才具參考性。
- 完整微調為何失敗:2,800 萬參數對應 32 個獨立標籤 → 過度擬合至「永遠輸出平均值」,R² 為 −1.6(低於直接猜平均)。凍結特徵抽取層後,模型才會真正隨輸入變化。
- 解析度測試:224 與 384 像素的濕式 R² 僅差約 0.04,影像壓縮對成效影響有限。
08 · 結果
成效驗證結果
逐步逼近資料可支撐的上限(以 32 折交叉驗證濕式 R² 為準)
| 方法 | R²(濕式) | 平均誤差 MAE |
| 完整微調 | −1.6 | —(退化為平均值) |
| 凍結特徵層 | 0.07 | 0.065 |
| + 去背 | 0.18 | 0.056 |
| + 分區放大(出貨版) | ~0.32 | 0.054 |
出貨版以全 32 雙資料訓練(泛化能力已由交叉驗證估算);模型版本 cv-convnext_tiny-v1,推論信心約 0.89(由交叉驗證誤差推算)。
09 · 第二層
第二層:本地語言模型生成中文報告
模型預測值 → 本地語言模型(gemma4:26b)→ 繁體中文三段報告
摩擦係數數值對一般使用者較不直觀。第二層將數值交由本地大型語言模型(gemma4:26b,全程於機器內運算、不經外部雲端,約 7–14 秒),生成「整體評估/具體分析/建議行動」三段易讀報告。
「根據您提供的檢測數據,目前的評估結果為 安全(Safe),鞋底摩擦力表現尚在穩定範圍內⋯⋯前掌與後跟的濕地摩擦係數分別為 0.539 與 0.542,兩者差異極小且均維持在安全等級⋯⋯可以繼續放心穿著,但建議留意鞋底紋路是否因長期使用而變平。」
— 模型對某橡膠涼鞋樣本的實際輸出(節錄)
10 · 結論
結論:資料量是目前的主要限制
v1 為諮詢級估算工具,非安全保證
- v1 已能穩定運作、輸出隨輸入變化、優於基準(猜平均值),足以支撐系統上線並啟動資料累積循環。
- 目前 R²~0.32(約解釋三分之一的變異)。此為 32 雙新鞋樣本下的上限,而非模型架構限制(已測試多種架構)。
- 提升準確度的關鍵在於資料 —— 尤其磨損舊鞋/低摩擦係數/「建議更換」等級樣本(目前為 0 筆)。
🔁 資料累積循環:每批新資料 → 增量訓練 → 模型更準確 → 更多使用 → 更多資料。第一版的核心價值,在於啟動此循環。