文檔圖像旋轉對VLM OCR的影響及基于Phi-3.5-Vision+分類頭的文檔方向分類器及數據構建思路 原創
假設文檔的存在方向旋轉,那么會進一步的干擾VLM進行OCR的性能,下面看一個預處理方案,解決文檔旋轉干擾OCR問題,并進行一些評估,方法較為簡單,快速看一下。

OCR 工作流對比在樣本英文和印度文字文檔上進行旋轉校正前后的情況。由于對齊錯誤導致的重復和幻覺(紅色標注)等問題通過模塊得到緩解,從而獲得準確的結果
旋轉分類任務定義:將文檔旋轉校正轉化為四分類任務,覆蓋最常見的四種旋轉狀態:
- 類別0:-90°(逆時針旋轉90°)
- 類別1:0°(正立)
- 類別2:90°(順時針旋轉90°)
- 類別3:180°(倒置)
模型架構
視覺編碼器
初始化Phi-3.5-Vision-Instruct的視覺編碼器作為 backbone,該編碼器基于CLIP ViT-L/14結構,具備強視覺特征提取能力,且參數量適中(整體模型約304M參數)。
動態裁剪策略
為解決單一圖像輸入難以兼顧“全局布局”和“局部文本細節”的問題,設計了多尺度裁剪方案:
- 預處理步驟:先將輸入圖像(RGB格式,H×W×3)縮放、填充至“長和寬均能被336整除”的分辨率。
- 裁剪生成:
a.局部裁剪:將圖像分割為不重疊的336×336補丁(最多16個),捕捉局部文本特征。
b.全局裁剪:將整圖縮放到336×336,保留全局布局信息。
這么做可以通過多視角輸入提升模型對文本位置不均、邊緣填充過多等復雜場景的魯棒性。
分類頭
既然是一個四分類任務,那么自然有基于特征的分類頭。
- 特征聚合:每個裁剪塊經編碼器輸出序列后,提取首個位置的CLStoken(全局特征表示,跟bert的分類類似),再對所有裁剪塊的CLS token取平均,得到統一的圖像表征。
- 多層分類頭:采用輕量前饋神經網絡,結構為:
a.第一層:線性投影(維度從D→D/2,D為編碼器輸出維度1024)+ GELU激活 + 20% dropout(防過擬合)。
b.第二層:線性投影(維度從D/2→4),輸出四分類logits。
- 損失函數:Softmax交叉熵損失。
數據

訓練數據:英文數據集(11K文檔圖像,含發票、合同等真實場景);11種印度語言數據集(38K圖像,源自Wikisource
旋轉增強:對訓練數據均勻施加四種旋轉變換,模擬真實的隨機旋轉場景。
性能



參考文獻:Seeing Straight: Document Orientation Detection for Efficient OCR,https://arxiv.org/pdf/2511.04161v1
本文轉載自??大模型自然語言處理?? 作者:老余

















