構(gòu)建具備隱私保護(hù)的 AI 場景理解 MR 應(yīng)用
(中國AI網(wǎng) 2025年05月03日)在信息時(shí)代,個(gè)人信息一旦泄露,就可能會對個(gè)人生活造成極大負(fù)面影響,甚至引發(fā)詐騙、身份盜用等嚴(yán)重犯罪行為?。
日前,PICO的劉昀昊就分享了如何用SecureMR構(gòu)建具備隱私保護(hù)的AI場景理解MR應(yīng)用:

在當(dāng)前對隱私日益重視的時(shí)代,人們在披露個(gè)人信息時(shí)愈發(fā)謹(jǐn)慎。因此,XR 頭顯一直未直接向大眾開發(fā)者提供攝像頭圖像。與此同時(shí),機(jī)器學(xué)習(xí)和人工智能的迅猛發(fā)展使得基于環(huán)境圖像的場景理解和感知功能變得易于實(shí)現(xiàn)。這兩種情況為 XR 頭顯帶來了一個(gè)難題:如何在不泄露用戶隱私的前提下,讓開發(fā)者利用 AI 和 ML 的強(qiáng)大能力?
我們提出的解決方案 SecureMR 專為 XR 頭顯設(shè)計(jì)來解決這一難題:它為開發(fā)者提供了一種方法,可在頭顯的安全進(jìn)程中運(yùn)行其推理模型。該進(jìn)程可訪問攝像頭圖像,但不會將任何輸出返回給應(yīng)用進(jìn)程。
SecureMR 工作原理
應(yīng)用將一個(gè)機(jī)器學(xué)習(xí)模型發(fā)送到安全環(huán)境中,由推理引擎執(zhí)行。
應(yīng)用還會發(fā)送一系列渲染指令和 glTF 資源,用于在推理完成后渲染結(jié)果。
推理引擎以攝像頭圖像為輸入運(yùn)行模型。
推理輸出作為渲染命令的輸入,驅(qū)動結(jié)果的可視化渲染。
這一設(shè)計(jì)保證了應(yīng)用無法從安全環(huán)境中獲取任何數(shù)據(jù)。

Tensors(張量)
在SecureMR API 中,所有數(shù)據(jù)都以 Tensors(張量)的形式表示。它們類似于你在機(jī)器學(xué)習(xí)文檔中常見的張量,但有一個(gè)關(guān)鍵區(qū)別:應(yīng)用可以創(chuàng)建和寫入這些數(shù)據(jù),但無法讀取它們,以確保中間值的隱私與安全。
該框架中的所有數(shù)據(jù)都通過張量傳遞,包括攝像頭圖像、模型輸入輸出、時(shí)間戳、切片索引、渲染參數(shù)、空間變換數(shù)據(jù)、glTF 等。glTF 張量是用于攜帶 glTF 文件的特殊張量容器。
Operators(算子)
算子是本框架的核心執(zhí)行單元。它們通過輸入輸出的張量來進(jìn)行數(shù)據(jù)處理。輸入稱為 operands(操作數(shù)),輸出稱為 results(結(jié)果)。算子可以:
處理數(shù)據(jù)并輸出新的數(shù)據(jù)(例如運(yùn)行模型)
執(zhí)行外部動作(例如渲染)
僅輸出數(shù)據(jù)(例如獲取攝像頭圖像)
重要的是:即使算子輸出了數(shù)據(jù),這些數(shù)據(jù)對應(yīng)用仍是不可訪問的。
常見算子示例:
RectifiedVstAccessOperator:無輸入,輸出來自頭顯攝像頭的圖像張量
RunModelInferenceOperator:配置模型文件、輸入輸出張量,運(yùn)行推理引擎并輸出結(jié)果張量
SwitchGltfRenderStatusOperator、UpdateGltfOperator、LoadTextureOperator、
RenderTextOperator:用于屏幕渲染
攝像頭變換算子:實(shí)現(xiàn) 2D 相機(jī)坐標(biāo)與 3D 世界坐標(biāo)的轉(zhuǎn)換,用于立體渲染
數(shù)據(jù)處理、數(shù)學(xué)運(yùn)算、邏輯判斷等其他通用算子
Pipelines(流水線)
每個(gè)算子隸屬于一個(gè) Pipeline(流水線)。流水線是在單線程中順序執(zhí)行的一組算子。如果你有并行處理需求,或希望不同任務(wù)以不同頻率運(yùn)行,可以創(chuàng)建多個(gè)流水線并分別調(diào)度執(zhí)行。
流水線中的數(shù)據(jù)保存在本地張量中。如果多個(gè)流水線之間需要共享數(shù)據(jù),可使用全局張量。算子無法直接使用全局張量作為輸入或輸出,但可通過本地“占位張量”映射到全局張量,從而在運(yùn)行時(shí)實(shí)現(xiàn)數(shù)據(jù)復(fù)用與切換。
你可以通過以下三種方式控制流水線的執(zhí)行:
應(yīng)用主動觸發(fā)執(zhí)行
設(shè)置流水線依據(jù)布爾型全局張量的值決定是否執(zhí)行
設(shè)置流水線等待另一個(gè)流水線執(zhí)行完成后再執(zhí)行
請參閱SecureMR 開發(fā)者文檔,了解如何定義與初始化 Tensors,掌握更多關(guān)于 Operators 和 Pipelines 的細(xì)節(jié)。
示例示范
SecureMR API 可用于構(gòu)建具備場景理解能力的 XR 應(yīng)用。我們在開源倉庫中提供了多個(gè)示例,幫助你快速上手。
MNIST 手寫數(shù)字識別示例
逐步構(gòu)建 SecureMR 應(yīng)用,識別手寫數(shù)字:
?? https://developer.picoxr.com/document/native/securemr-quickstart/
人臉檢測 + UFO 模型展示
構(gòu)建一個(gè)識別人臉并在其上方渲染 UFO 模型的 XR 應(yīng)用:
?? https://github.com/Pico-Developer/SecureMR_Samples/tree/main/samples/ufo
物體檢測示例
使用 YOLO 模型識別常見物體:
?? https://github.com/Pico-Developer/SecureMR_Samples/tree/main/samples/yolo_det
姿態(tài)估計(jì)示例
通過 SecureMR 進(jìn)行骨架姿態(tài)識別并驅(qū)動動畫:
?? https://github.com/Pico-Developer/SecureMR_Samples/tree/main/samples/pose
工具支持
我們還提供了開發(fā)輔助工具,幫助你更高效地構(gòu)建應(yīng)用。
模型轉(zhuǎn)換工具
你可以從 Hugging Face、Kaggle、Qualcomm AI Hub 等平臺下載通用模型。為了將其部署在頭顯的安全環(huán)境中,需要使用 SecureMR SDK 中的命令行工具將模型轉(zhuǎn)換為適配格式。參閱轉(zhuǎn)換并調(diào)試 SecureMR 模型文檔以了解更多。
調(diào)試工具
由于無法直接訪問安全環(huán)境中的張量,調(diào)試中間結(jié)果較困難。你可以使用 RenderTextOperator 將信息渲染到 glTF 紋理上,或使用 SDK 中的 pySecureMR Python 工具,該工具模擬 SecureMR 框架但不處理真實(shí)數(shù)據(jù),從而便于觀察所有中間值。參閱pySecureMR 調(diào)試文檔以了解更多。
立即嘗試,打造創(chuàng)新 XR 應(yīng)用!
我們已經(jīng)發(fā)布了原生 C++ SDK,Unity 版本即將推出。希望這些功能能激發(fā)你開發(fā)富有創(chuàng)意的 XR 應(yīng)用!歡迎加入我們的 Discord 服務(wù)器并在 #spatial-ml 頻道反饋你的體驗(yàn)和建議!

