Android相機幀接入視覺SDK時,應先確認輸入數據怎樣排列,再確認旋轉、裁剪、縮放和鏡像分別在哪裡發生。預覽看起來正常,不能直接證明模型讀到了正確像素,也不能證明檢測框已映射到正確顯示位置。
格式名稱不能代替平面佈局
對多平面圖像,記錄每個平面的行步長、像素步長及有效範圍,不把數據直接當成緊密連續排列。Android圖像平面文檔分別定義相鄰行和像素樣本的字節間距。轉換或複製邏輯需要按實際格式與SDK接口核對,不能只根據預覽圖判斷。
異步任務要明確數據有效期
Image文檔說明,關閉圖像後再訪問此前取得的平面緩衝區,其行為未定義。若異步任務在圖像關閉後仍需數據,應在關閉前複製所需內容到應用管理的緩衝區,並按任務完成條件管理複用。複製本身不能代替格式和邊界檢查。
分開記錄圖像與顯示座標
| 處理環節 | 需要說明 | 驗證時保存 |
|---|---|---|
| 原始輸入 | 圖像尺寸、格式及裁剪區域 | 原始幀與實際有效區域 |
| 模型輸入 | 旋轉、縮放或裁剪的處理順序 | 提交給SDK的圖像與參數 |
| 結果座標 | 原點、單位及對應圖像 | 結果數值及圖像版本 |
| 預覽疊加 | 顯示尺寸、留邊或裁剪及鏡像 | 顯示區域和位置對照圖 |
顯示正確不等於鏈路全部通過
相機方向、設備方向和預覽尺寸的關係可參考Android預覽說明。實際SDK是否已處理旋轉或鏡像,仍以其接口約定和測試為準,避免重複變換。用同一幀核對模型輸入、結果及疊加;沒有取得原始輸入證據時,輸入鏈路保留待驗證狀態。本文僅解釋處理方法,未開展新的設備測試。
相關服務:Android、移動端與嵌入式視覺SDK、項目諮詢。