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

Orin Nano 視角

Orin Nano 在四平台中的位置

項目RPi5Orange PiOrin NanoThor T5000
ISP 形態開源 libcamera感測器內建NVIDIA ISPBlackwell+Holoscan
AE/AWBlibcamera ✅sensor ⚠️NVIDIA 自動 ✅✅NVIDIA ✅✅
LSC⚠️
NR/Sharpen⚠️✅✅✅✅
HDR⚠️✅✅
GMSL 多感測器✅(HSB)
可視性低(自動化)
Orin Nano 定位:「專業自動化調校 + GMSL 多感測器」——RPi5 學習平台與 Thor 次世代平台之間的工業級橋樑。

選型建議

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

面向RPi5Orange PiOrin NanoThor
感測器控制libcameraV4L2 subdevtegracam/Argustegracam/Holoscan
曝光ExposureTimeexposureSensorMode exp_timeSensorMode
白平衡ColourGainsred/blue_balanceArgus AWBArgus AWB
RAWrpicam --rawv4l2-ctlargus rawargus/Holoscan
核心領悟:四平台做的是同一件事,只是介面不同——本課建立的原理與流程可 100% 平移。

15.5 感測器 register 層的共通性

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

四平台讀同一個 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

15.4 深入:對同一顆 OV9281 的四平台操作

面向RPi5Orange PiOrin NanoThor
感測器控制libcameraV4L2 subdevtegracam/Argustegracam/Holoscan
曝光ExposureTimeexposureSensorMode exp_timeSensorMode
白平衡ColourGainsred/blue_balanceArgus AWBArgus AWB
RAWrpicam --rawv4l2-ctlargus rawargus/Holoscan
核心領悟:register 相同、概念相同、流程相同;變的只有介面。

15.5 練習

  1. 列出「讀 sensor ID」在四平台的指令。
  2. 說明 register 相同而介面不同的原因。
看完這單元你應該能說出:
  • 四平台調校能力差異。
  • Orin Nano 工業級定位。
  • GMSL 多感測器關鍵差異。
  • 依需求選平台。

15.6 深入原理:為什麼 register 相同、介面不同

感測器 register 是「硬體事實」——任何平台都得讀同一個 ID、寫同一組曝光位元。差異在於「軟體把 register 包裝到哪裡」:

平台包裝層你面對的介面調校入口
RPi5libcamera IPAColourGains / ExposureTimetuning file
Orange PiV4L2 subdevexposure / red_balanceV4L2 controls
Orin Nanotegracam + ArgusSensorMode / Argus APIDTB mode + ISP 自動化
Thortegracam + HoloscanSensorModeHoloscan pipeline
核心領悟:你學的是「感測器本身」——這部分永不變;平台只是在變「誰幫你寫、用什麼介面寫」。這正是本課可以跨平台通用的原因。

15.7 Worked Example:同一顆 OV9281 在四平台出圖

四平台「拍照」對照
RPi5:      rpicam-still --output img.jpg
Orange Pi: v4l2-ctl --stream-mmap --stream-count=1 --stream-to=img.raw
Orin/Thor: argus_camera --mode 0 --capture-auto 1 --duration 1

命令不同,但背後都是「初始化感測器 → 出圖」。把這三條命令當成平台能力的「hello world」,先跑通再談調校。

15.8 疑難排解決策樹:選平台 / 換平台

決策樹
1. 需要 GMSL / 工業距離多感測器?
   ├─ 是 → Orin Nano(或 Thor,需更高效能)
   └─ 否 ┐
2. 需要開源調校演算法?
   ├─ 是 → RPi5(libcamera)
   └─ 否 ┐
3. 預算最低、只要能出圖?
   ├─ 是 → Orange Pi(感測器內建 ISP)
   └─ 否 ┐
4. 工業量產 + 自動化調校 → Orin Nano ✅

15.9 常見錯誤 / 陷阱

陷阱 ①:從 RPi5 帶「libcamera 參數」到 Orin 找不到對應——先找「功能對應」而非「參數同名」。
陷阱 ②:誤以為四平台「畫質一樣」——ISP 能力差異很大,同一顆感測器不同平台的品質表現不同。
陷阱 ③:換平台時把驗證流程丟掉——流程(black→LSC→AWB→回歸)才是可攜的資產。

15.10 練習

  1. 列出四平台「讀感測器 ID」的指令並排比較。
  2. 說明為何 register 相同、介面不同。
  3. 寫下你專案「現在 → 未來」的平台遷移策略。

15.11 進階:如何把 RPi5 的調校知識「翻譯」到 Orin

翻譯表
RPi5 libcamera ──────────→ Orin
ExposureTime            → SensorMode exp_time / tegracam exposure
ColourGains             → Argus AWB gains
rpicam --raw            → argus_camera --raw-file
tuning file (json)      → DTB mode + NVIDIA 內部 tuning
LSC tables              → NVIDIA 工具生成網格
"逐參數手動"            → "設場景讓自動化收斂"
方法:不要找「同名參數」,要問「這個功能在 Orin 上由誰負責、用什麼介面」——功能對應法讓你快速遷移。

15.12 快速參考:四平台關鍵指令小抄

操作RPi5Orange PiOrin
出圖rpicam-stillv4l2-ctlargus_camera
RAW--raw--stream-to--raw-file
曝光ExposureTimeexposureexp_time
白平衡ColourGainsred/blue_balanceAWB

15.13 看完本單元該記住的三件事

register 相同、介面不同——原理可 100% 平移。
遷移用「功能對應法」,不是「同名參數」。
依需求選平台:開源→RPi5、量產→Orin、次世代→Thor。

延伸閱讀

15.9 進階真實情境 Worked Example:跨平台「同一功能」的實作差異

場景:你需要在四個平台上都做到「從 sensor 取 RAW → ISP 處理 → 顯示」,比較每個平台的實作複雜度。

四平台的「出圖」指令比較
# === Orin Nano ===
argus_camera --mode 0 --capture-auto 1 --duration 1
# 優點:Argus 自動管理 ISP pipeline
# 缺點:API 較複雜(需 libargus)

# === RPi5 ===
libcamera-still --nopreview -o rpi.jpg
# 優點:libcamera 簡單一行搞定
# 缺點:調校參數需改 YAML 配置檔

# === Qualcomm (如果有) ===
# vendor SDK(非公開),需要 QCOM 相權限
# 優點:ISP 性能強
# 缺點:封閉,不公開 API

# === STM32MPU ===
# GStreamer + ISP plugin
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! autovideosink
# 優點:標準 Linux 生態
# 缺點:ISP 功能有限

設計決策:從「出圖到顯示」的指令複雜度:RPi5 最簡單 → Orin Nano 中等 → STM32 需手動設定 → Qualcomm 需要 vendor SDK。但「調校深度」正好相反:Qualcomm 最深 → Orin Nano 次深 → RPi5 中等 → STM32 最淺。

15.10 深入原理擴充:四平台的 ISP 調校工具比較

平台調校工具調校方式特色
Orin NanoNVIDIA ISP Tuning Tool + ArgusGUI + script可視化 histogram/ waveform;參數可匯出為 .bin
RPi5libcamera YAML 配置 + tuning tool純文字配置open source;可即時重載
QualcommChi-CDK / ISP Tuning ToolGUI + vendor SDK功能最完整但封閉
STM32MPUGStreamer pipeline + 手動 register手動為主ISP 功能最少;調校空間有限
大家以為沒問題但其實是陷阱:「RPi5 的調校參數可以搬到 Orin Nano」——不行。兩者的 ISP 架構完全不同(libargus vs libcamera),參數格式、pipeline 順序、支援的功能都不一樣。搬到另一個平台需要「重新量測 + 重新調校」。

15.11 診斷式疑難排解表

症狀可能原因解決方案
從 RPi5 搬參數到 Orin 後色彩全錯參數格式/含義不同(例如 CCM 矩陣的排列方式不同)不要搬參數。用 Orin 的 tuning tool 重新計算
Orin Argus 比 RPi5 libcamera 延遲高Argus pipeline 較長(更多 ISP 區塊)用 bypass 模式跳過不需要的區塊;或評估 RPi5 是否夠用
STM32 ISP 調校效果不如預期STM32 ISP 功能有限(無 LSC/AWB 自動化)接受限制;或外接 ISP 模組
Qualcomm 的 ISP 性能最好但無法客製Qualcomm ISP 是封閉的硬體加速器接受限制;在 Qualcomm SDK 允許的範圍內調校
跨平台測試時「同一感測器」表現不同感測器 init table 不同(各平台驅動設定不同)固定感測器 init table(同一份 I2C 初始化 sequence)再比 ISP

15.12 進階挑戰題

  1. 為你的專案做一個「平台選型決策矩陣」:列出行列(功能 × 平台),評分每個平台在該功能上的表現(1-5 分)。
  2. 若你需要將一個已調校好的影像系統從 Orin Nano 移植到 RPi5,寫出一份「移植 checklist」:哪些東西可以直接搬、哪些需要重寫、哪些需要重新量測。
  3. 比較四個平台的「調校學習曲線」:從「零經驗」到「能獨立完成調校」,每個平台大概需要多少時間和資源?

15.13 專案級端到端 Worked Example:平台選型與標竿專案

場景:新專案要在四平台中選一,需求是「工業環境、4 路 GMSL、自動化調校」。專案目標:用證據而不是喜好做選型——在各平台跑同一套標竿,輸出決策矩陣。

選型專案流程
# Step 1 · 需求量化(回顧 9.6 決策流程)
#   列出:感測器數、距離(GMSL?)、調校深度、預算、供電 / 散熱
# Step 2 · 標竿測試(每平台各跑一次,回顧 9.14 SOP)
#   出圖三件套 + RAW 品質 + 延遲 + 多路能力
# Step 3 · 能力矩陣(回顧 15.12-1)
#   列功能 × 平台,1-5 分 + 權重
# Step 4 · 風險評估
#   Orin: GMSL ✅ / 黑箱 ⚠️;RPi5: 開源 ✅ / 無 GMSL ❌
#   Orange Pi: 便宜 ✅ / 陽春 ⚠️;Thor: 強 ✅ / 貴 ⚠️
# Step 5 · 決策文件:結論 + 理由 + 備援方案

專案輸出:標竿數據 + 能力矩陣 + 決策文件。選型結果可用數據回推,不怕換人換意見。

15.14 量測/驗證 SOP:跨平台功能對照驗證

  1. 出圖:每平台跑「列舉 → 出圖 → RAW」三件套。
  2. RAW 品質:同一顆感測器跑同一套 rawstat。
  3. 延遲:量端到端延遲(取幀 → 顯示)。
  4. 多路:測試可同時開幾路相機。
  5. 調校深度:逐項核對 LSC / AWB / NR / HDR 可調性。
  6. GMSL:確認有無、幾路、remap 流程。
驗收指標:每平台一份標竿報告,同一量尺可比較。

15.15 平台間對照:調校功能(本單元主軸)

面向Orin NanoRPi5Orange PiThor
AE/AWB 自動化✅✅⚠️(感測器)✅✅
LSC⚠️
NR / Sharpen✅✅⚠️✅✅ + AI
HDR⚠️✅✅
GMSL 多感測器✅(HSB)
可視性低(自動化)
結論:Orin 是「工業自動化 + GMSL」的中堅;RPi5 是開源學習;Orange Pi 是成本最低;Thor 是次世代高階。選擇依「需求權重」而非「功能多寡」。

15.16 互動式檢核清單:跨平台驗收

15.13 Register 位元級完整工作流:跨平台 AWB 效果對比

步驟Orin NanoRPi5Orange Pi
1. 灰卡出圖argus --capture-auto 1rpicam --awb autov4l2-ctl(auto)
2. RGB ratioPython 計算 R/G, B/GPython 計算 R/G, B/GPython 計算 R/G, B/G
3. 色偏判定< 0.05 = PASS< 0.05 = PASS< 0.05 = PASS
4. 手動覆蓋argus --awb-mode manualrpicam --awb manualV4L2 awb=0
5. 色溫設定--color-temperature 5500--awb-gains 1.0,1.0不支援
跨平台 AWB 對比驗證
#!/usr/bin/env python3
# cross_platform_awb.py — 比較三平台 AWB 效果
import numpy as np

platforms = {
    "Orin Nano": "orin_graycard.raw",
    "RPi5": "rpi5_graycard.raw",
    "Orange Pi": "opi_graycard.raw"
}

for name, f in platforms.items():
    try:
        data = np.fromfile(f, dtype=np.uint16).reshape(800, 1280)
        r = data[0::2, 0::2].mean()
        g = data[0::2, 1::2].mean()
        b = data[1::2, 0::2].mean()
        rg = r / g; bg = b / g
        deviation = abs(rg - 1.0) + abs(bg - 1.0)
        verdict = "PASS" if deviation < 0.05 else "NEEDS TUNING"
        print(f"{name}: R/G={rg:.3f} B/G={bg:.3f} deviation={deviation:.3f} [{verdict}]")
    except FileNotFoundError:
        print(f"{name}: file not found")

15.14 多層疑難排解決策樹

決策樹:跨平台調校移植失敗
1. Orin 的 tuning 參數搬到 RPi5 無效?
   ├─ 是 → 檔案格式不同(XML vs JSON)
   │       用語不同(gain vs analogue_gain)
   │       需要參數映射表
   └─ 否 ┐
2. 數值範圍不同?
   ├─ 是 → 歸一化後比較(0-1 range)
   └─ 否 → 參數語義不同 → 查各平台 API

15.15 量測驗證完整 SOP

  1. 統一測試條件:相同鏡頭 + 相同光源 + 相同灰卡。
  2. 各平台出圖:Orin(argus)、RPi5(rpicam)、Orange Pi(v4l2-ctl)。
  3. RGB ratio 計算:Python 全平台共用腳本。
  4. 結果比較:平台 A 色偏 0.03 vs B 0.04 → 差異 < 0.02 = 相當。
  5. 報告產出:表格格式——平台 × 調校功能 × 是否支援 × 效果。
判讀標準:各平台 AWB 色偏 < 0.05 = 功能等效;差異 > 0.02 需追查。

15.16 四平台终极對照

功能Orin NanoRPi5Orange PiThor
AWB 手動控制
曝光手動控制
LSC 可調
降噪可調✅ + AI
HDR 控制有限✅ + AI
銳利化控制✅ + AI 超解析度
ROI 控制有限
即時預覽
調參 UINVIDIA tuning toollibcamera 向導NVIDIA + Holoscan
跨平台移植需格式轉換JSON 格式N/A需格式轉換

15.17 完整 Bring-up 專案 Checklist