封面
把一張鞋底照片,變成防滑安全分數
問題 + 我們要做的事
問題:鞋底磨損肉眼難判斷,濕滑跌倒是真實風險;實驗室 ASTM 摩擦試驗準,但慢、貴、要送驗。
我們要做的:讓消費者拍三張鞋底照,就能得到乾/濕摩擦係數(COF)+ 防滑等級 + 白話建議;鞋廠/實驗室用同一套快速初篩。
01 · 資料
我們收到什麼資料
業主(鞋技中心/製鞋業者)首批訓練資料
- 32 雙附 FRT 鞋技中心 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 雙有標籤(原 spec 要幾百~1000)→ v1 必為「諮詢級弱模型」,要用嚴格的分組驗證。
- ② 照片對不上原設計:實際是「整底多角度照」,不是乾淨的前掌/後跟/全底分區照。
- ③ 全是新鞋:32 雙全工廠新成品 → 「該換」(replace)等級 0 筆。但消費者情境正是磨損舊鞋。
- ④ 乾式 COF 常 >1.0:模型的 sigmoid 表示不了 → 訓練時壓縮、推論還原(濕式全在範圍內,無此問題)。
04 · 模型決策
模型決策:收斂成「整底 → 兩個值」
業主拍板:整體乾/濕兩個 COF
- 單張整底照(+材質)→ 整體
(cof_wet, cof_dry),不做分區 head(資料不足以撐)。
- 用凍結的 ConvNeXt-Tiny 當特徵抽取器 + 小型 MLP head。
(整個微調 28M 參數 vs 32 筆 → 過大,會塌成「永遠猜平均」。)
- 對外的資料合約完全不動:產品端仍送 3 張分區照,推論時各跑一次、用固定權重(前掌 0.30/後跟 0.40/全底 0.30)組整體 → 前端/LLM/API 全無感。
05 · 突破一
💡 這是光裕提的方向
突破①:把背景去掉(去背)
辦公室雜亂背景是干擾,不是資訊
用 rembg(u2net)把鞋底從雜亂背景摳出來、其餘填白,模型只看鞋底本身。= 去雜訊,不是加雜訊。
原始(含背景)R² 0.07
去背後R² 0.18
濕式 32 折驗證 R² 0.07 → 0.18(翻一倍)。第一個關鍵突破。
06 · 突破二
💡 這是光裕提的點子
突破②:前中後切三段放大(三 crop)
對上「標籤本來就是分區的」
去背後沿鞋底長軸切前/中/後三段、各自放大,依亮度排序(翻轉不變),三層一起餵模型。等於變相提高解析度,又呼應「報告本來就是前掌/後跟分區量的」。
去背R² 0.18
去背 + 三 cropR² 0.32
R² 0.18 → 0.32(再翻一倍)。兩個讓準度翻倍的關鍵 lever,都是光裕提的方向。
07 · 誠實評估
怎麼誠實評估:32 折 LOSO
Leave-One-Shoe-Out 留一雙鞋交叉驗證
- 為何 leave-one-shoe-out:同一雙鞋的多張照片若跨訓練/驗證 = 作弊洩漏。改成按鞋分組、每次留一整雙當驗證、輪 32 次,數字才誠實。
- full fine-tune 為何塌:28M 參數 vs 32 個獨立標籤 → 過擬合到「永遠猜平均」,R² 變 −1.6(比亂猜還差)。凍結 backbone 才會真的隨輸入變。
- 解析度實驗:224 vs 384 只差濕式 +0.04 → 壓縮不是大魚,不用為它煩惱。
08 · 結果
最終數據結果
逐步逼近誠實上限(可靠 = 32 折 LOSO 濕式)
| 做法 | R²(濕式) | MAE |
| 整個微調(full fine-tune) | −1.6 ❌ | —(塌成平均) |
| 凍結 backbone | 0.07 | 0.065 |
| + 去背 | 0.18 | 0.056 |
| + 三 crop(出貨版) | ~0.32 | 0.054 |
出貨版用全 32 雙訓練(泛化已由 LOSO 估過);模型版本 cv-convnext_tiny-v1,推論信心 ~0.89(由 LOSO 誤差推得)。
09 · 第二層
L2:本地 LLM 生成中文報告
真預測 → Ollama gemma4:26b → 繁中三段報告
CV 模型的數字一般人看不懂。第二層把它交給本地大型語言模型(gemma4:26b,全程在機器內、不出雲,約 7–14 秒),生成「整體評估 / 具體分析 / 建議行動」三段白話報告。
「根據您提供的檢測數據,目前的評估結果為 安全(Safe),鞋底摩擦力表現尚在穩定範圍內⋯⋯前掌與後跟的濕地摩擦係數分別為 0.539 與 0.542,兩者差異極小且均維持在安全等級⋯⋯可以繼續放心穿著,但建議留意鞋底紋路是否因長期使用而變平。」
— 模型對「裕華橡膠涼鞋」的真實輸出(節錄)
10 · 誠實結論
最誠實的結論:資料是天花板
v1 是諮詢級估算器,不是安全保證
- v1「真的會跑、會隨輸入變、贏過猜平均、合約相容」,足以讓系統變真、上線、啟動資料飛輪。
- 但仍弱:R²~0.32 = 只解釋約 1/3 變異。這是 32 雙新鞋的硬上限,不是架構問題(架構已試遍)。
- 要變準,唯一的槓桿是資料 —— 尤其磨損舊鞋/低 COF/「該換」等級(目前 0 筆)。
🔁 資料飛輪:每批新資料 → 增量訓練 → 模型更準 → 更多用戶上傳 → 更多資料。第一版的價值,是把這個輪子轉起來。