單元 15 · 四平台影像調校功能比較

RPi5 / Orange Pi / Orin / Thor

15.1 比較框架

調校能力 = 平台 ISP 可調參數 × 工具鏈完整度 × 可視性。三者相乘才是「你能實際做到什麼」。

15.2 四大平台能力總表

項目RPi5Orange PiOrin NanoThor T5000
ISP 形態SoC 硬體 ISP感測器內建為主NVIDIA ISPBlackwell + Holoscan
AE/AWBlibcamera ✅sensor ⚠️NVIDIA 自動 ✅✅NVIDIA ✅✅
LSC✅ tuning json⚠️ 有限✅ NVIDIA✅ NVIDIA
NR/Sharpen✅ 可調⚠️ 後處理✅✅✅✅
HDR✅ 多幀⚠️✅✅
工具鏈開源、看得見v4l2-ctl 陽春NVIDIA 封閉Holoscan 新
tuning 檔libcamera .json私有私有
學習性最佳陽春開放不透明新且高階
RPi5 定位:調校功能不是最強,但「開源 + 文件齊 + 每層看得見」是最好的學習平台——學會這裡的原理,換到 NVIDIA 平台只是換工具。

15.3 選型建議

15.4 對同一顆 OV 感測器的操作差異

用 OV5640/OV9281 在四個平台,實務差異在哪:

面向RPi5Orange PiOrin NanoThor
感測器控制介面libcamera controlsV4L2 subdev controlstegracam / Argustegracam / Holoscan
曝光設定ExposureTime(µs)exposure(驅動單位)SensorMode exp_timeSensorMode
白平衡ColourGainsred/blue_balanceArgus AWBArgus AWB
RAW 取得rpicam-still --rawv4l2-ctl + 自行解argus rawargus/Holoscan
LSCtuning json後處理NVIDIA 工具NVIDIA 工具
核心領悟:四平台做的是同一件事(控制曝光/白平衡、取 RAW、校正 LSC)——只是介面不同。本課在 RPi5 建立的「原理 + 流程」100% 可平移。學會的是一套,換的是工具。

15.5 感測器 register 層的共通性

無論平台,OV 感測器的 register 是相同的(0x300A ID、0x3500 曝光、0x350A 增益)——平台差異只在「誰幫你寫」。這正是「先懂 register、再懂平台」的價值。

四平台讀同一個 register
# 都是 OV5640/OV9281 的 ID register 0x300A
RPi5:      i2ctransfer -y 22 w2@0x36 0x30 0x0a r1
Orange Pi: i2ctransfer -y 3  w2@0x3c 0x30 0x0a r1
Orin/Thor: i2ctransfer -y 0  w2@0x36 0x30 0x0a r1
# 差別只在匯流排編號與位址,register 相同

15.6 深入:從 RPi5 轉到 NVIDIA 平台的對照心法

你在 RPi5 做的事NVIDIA 對應
libcamera controlsArgus / tegracam controls
tuning jsonNVIDIA 內部 tuning
rpicam-still --rawargus raw / v4l2
i2ctransfer 讀 register一樣(register 相同)
核心:概念(曝光/白平衡/LSC/NR)、流程(校正→美化→回歸)、register(0x300A 等)都一樣;變的只有「介面」。學會原理 = 隨時可換平台。

15.7 練習

  1. 列出「同樣想讀 sensor ID」在四平台的指令。
  2. 說明為何 register 相同而介面不同。
看完這單元你應該能說出:
  • 四平台 ISP 與調校能力。
  • RPi5 學習性優勢。
  • 工具鏈與 tuning 檔差異。
  • 依需求選平台。

進階真實情境 Worked Example:跨平台 OV9281 數據對比

場景:你在 RPi5 和 Orin Nano 上各接一顆 OV9281(黑白、global shutter),要比較兩者在機器視覺場景下的表現。

OV9281 跨平台量測
# RPi5:用 libcamera 控制 OV9281
rpicam-still --raw --width 1280 --height 800 \
  --shutter 10000 --gain 1 -o rpi5_ov9281.dng

# Orin Nano:用 argus_camera
# argus_camera --width 1280 --height 800 --exp-time 10000 \
#   --file orin_ov9281.nvraw

# 兩端都轉換成 RAW 後比較
python3 - <<'EOF'
import rawpy, numpy as np
rpi = rawpy.imread('rpi5_ov9281.dng').raw_image
print(f"RPi5 OV9281: mean={rpi.mean():.1f} std={rpi.std():.1f} max={rpi.max()}")
# Orin 的 raw 需要 NVIDIA 工具轉換後再比較
EOF
為什麼選這條路徑:OV9281 是黑白感測器(無 Bayer CFA),兩平台的 ISP 處理路徑更簡單——可以直接比較「硬體底層」的差異。RPi5 用 libcamera + rawpy 讀 RAW,Orin 用 Argus raw,兩者的 raw 格式不同但物理意義相同(pixel intensity)。這能揭示「同感測器不同平台的 read noise / 動態範圍差異」。

深入原理擴充:四平台的 ISP 參數控制粒度比較

四個平台在 ISP 參數控制的「粒度」上有本質差異:

參數類別RPi5Orange PiOrin NanoThor T5000
Black Level4 通道各自獨立感測器驅動控制NVIDIA 內部Holoscan 內部
LSC 網格17×13 或自訂有限(後處理)自訂(NVIDIA 工具)自訂
CCM3×3 矩陣,分色溫固定或有限自動 + 微調自動 + AI
NR kernel可調 strength固定可調 kernel 大小AI 驅動
Sharpen可調 strength固定可調AI 驅動
HDR 幀數2-3 幀有限可調可調
核心領悟:RPi5 在「可調性」上可能不是最高(Thor 的 AI 參數更自動化),但在「可見性」上是唯一能做到「每個參數都可讀可寫可驗證」的平台。這就是「學原理」與「用工具」的差異。

深入:從 RPi5 轉到 NVIDIA 時的「心智模型」對照

大家以為沒问题但其實是陷阱:很多人以為「RPi5 的 libcamera 命令可以直接用在 NVIDIA 上」,但 NVIDIA 的 argus_camerategracam 有完全不同的 API 和參數命名。從 RPi5 轉到 NVIDIA 時,你需要重新學「介面」,但不需要重新學「原理」——這就是本課程的核心價值。

診斷式疑難排解表

症狀可能原因解決方案
RPi5 調好的 CCM 在 Orin 上色彩偏移兩平台的 ISP 管線順序不同,色彩空間轉換有差異在 Orin 上重新校正 CCM;不要直接複製 RPi5 的參數
NVIDIA 的自動 AE 比 RPi5 的手動 AE 快很多NVIDIA 有專用 AE 硬體加速,RPi5 用 software這是硬體差異,非缺陷;RPi5 可優化 convergence 參數
RPi5 的 tuning JSON 在 Orin 上無法使用JSON 格式完全不同(libcamera vs NVIDIA)需要「翻譯」——理解參數含義後,在 Orin 的對應工具中設定
同一顆 OV5647 在四平台上的色彩不同各平台的 ISP 參數/增益映射/色彩空間定義不同這是正常的;每個平台需要獨立校正
Thor 的 AI tuning 效果比 RPi5 手動好AI 模型在大量資料上訓練,可能在「平均品質」上更優但 RPi5 的手動 tuning 在「特定場景」可能更精準——各有優劣

進階挑戰題

  1. 設計一個「跨平台調校參數翻譯表」:將 RPi5 的 BlackLevel/LSC/CCM/Denoise 參數,映射到 NVIDIA Argus 的對應參數。列出每個參數的「概念相同但命名/單位不同」之處。
  2. 若你要同時維護 RPi5 和 Orin Nano 兩個平台的 tuning,如何建立「單一 source of truth」(如用 Python 腳本從一份參數表自動生成兩個平台的 tuning 檔)?
  3. 分析「Thor T5000 的 Holoscan ISP」的公開文件,與 RPi5 的 libcamera ISP 做功能對照,標出「Thor 有但 RPi5 沒有」的功能。

延伸閱讀

專案級端到端 Worked Example:多平台選型評估專案

場景:公司要為「智慧農業視覺系統」選平台,候選 RPi5 / Orange Pi / Orin Nano / Thor。你負責用本課程的框架(能力 × 工具鏈 × 可視性)做評估,並以同一顆感測器實測佐證。整合單元 15(比較)、9(架構)、11/12/13(品質指標)知識。

平台評測矩陣(用本課指標)
# 以 OV5647 為共同感測器,評測四平台
平台        ΔE(色彩)  暗角比  σ(雜訊)  工具鏈     可視性    NDA需求
RPi5        2.1      0.93    1.8     開源齊全    高      無
Orange Pi   3.2      0.90    2.2     陽春       中      無
Orin Nano   2.4      0.92    1.9     封閉自動    低      部分
Thor        2.0      0.94    1.7     Holoscan新  低      是

# 加權評分(依需求自訂權重)
# 學習/教學 → 可視性 0.5:RPi5 勝
# 量產自動化 → 工具鏈 0.5:Orin/Thor 勝
# 客製深調 → 可調參數 0.5:RPi5 勝

# 結論範例:
# 首代產品驗證 → RPi5(快、看得見)
# 量產部署 → Orin Nano(自動化、穩定)
# Thor 待生態成熟再評估
專案規模與跨單元整合:選型不是「誰畫質最好」,而是「誰符合我的約束」:量測數據用單元 11/12/13 的方法、架構用單元 9 的認知、介面用單元 15 的翻譯表。這份評估矩陣同時是給管理層的決策文件——有數據、有權重、有理由。

量測/驗證 SOP:平台評測

  1. 統一感測器、光源、色卡/灰卡、曝光參數。
  2. 各平台拍 RAW,量測 ΔE、暗角比、σ。
  3. 評估工具鏈:RAW 取得、tuning 修改、debug 能力。
  4. 評估可視性:每層是否可讀可驗。
  5. 確認 NDA/文件限制與量產支援。
  6. 以加權矩陣產出建議並記錄理由。
判讀指標:量測差異 <15% 內視為等效(差異可能來自參數未對等);工具鏈與可視性決定「後續維護成本」;NDA 決定「你能不能自己改」。

平台間對照:選型關鍵面向

面向RPi5Orange PiOrin NanoThor
定位學習/原型/教育低成本 DIY工業/多感測器/GMSL次世代 AI/HSB
成本最低中高
調校自由度最高低(自動化)低(AI)
上手速度中(需 NDA)慢(生態新)
單一 ISP 管線驅動品質不一封閉、綁 NVIDIA文件少、貴

互動式檢核清單


第 3 輪深度加深

① Register 位元級完整工作流:RPi5 vs Orin tuning 對照

功能RPi5 registerOrin equivalent差異說明
AE targetlibcamera YAML: ae.target_brightness3A XML: aeTargetBrightness格式不同,RPi5 用 YAML,Orin 用 XML
AWB modelibcamera YAML: awb.mode3A XML: awbModeRPi5 選項較少
LSC enableISP control bit[3]NV ISP registerRPi5 直接操作硬體 register
NR strengthISP tuning registerNV 3A tuning XMLRPi5 需 devmem2,Orin 有 GUI 工具
SharpenISP tuning registerNV sharpen controlRPi5 可直接寫 register

② 多層疑難排解決策樹

決策樹 A:跨平台調校結果不一致

跨平台不一致
├─ 檢查 A:tuning 檔案格式差異
│  ├─ RPi5 YAML vs Orin XML → 手動翻譯等效參數
│  └─ 格式相同 → 繼續
├─ 檢查 B:ISP pipeline 模組差異
│  ├─ RPi5 缺少某些模組 → 功能不完全等效
│  └─ 模組相同 → 繼續
├─ 檢查 C:sensor 輸出格式差異
│  ├─ 位元深度/Bayer 順序不同 → 調整 raw processing
│  └─ 相同 → 繼續
└─ 檢查 D:量化指標是否在容差內
   ├─ PSNR >30dB, ΔE <5 → 差異可接受
   └─ 超出容差 → 需要針對該平台獨立 tuning

③ 量測驗證完整 SOP:跨平台調校品質比對

  1. 控制條件:相同感測器 + 相同光源 + 相同曝光 + 相同場景
  2. 量化指標:
    a. PSNR (dB):畫質保真度
    b. ΔE*ab:色彩一致性
    c. MTF10:銳利度一致性
    d. SNR (dB):雜訊一致性
    e. DR (dB):動態範圍一致性
  3. 工具:rawpy + scikit-image + colour-science + numpy
  4. 判讀:五項指標全在容差內 = 調校一致;任一超出 = 該平台需獨立調校
  5. 常見偏差:不同 ISP 設計 → 無法完全一致 → 取「可接受差異」

④ 四平台終極對照

面向RPi5Orange PiOrin NanoThor推薦
調校工具成熟度★★★★★★★★★★★★★★★Orin 工具最成熟
調校自由度★★★★★★★★★★★★★★★★Orin/Thor 最自由
學習曲線中等很高RPi5 最適合學習
調校文件★★★★★★★★★★★★★RPi5 文件最好
社群支援★★★★★★★★★★★★★RPi5 社群最活躍
調校一致性baseline偏差較大±可接受±可接受以 RPi5 為 baseline

⑤ 完整 Bring-up 專案 Checklist