【導讀】隨著人工智能技術的快速發展,視覺檢測技術在醫療健康領域的應用越來越廣泛。傳統的視力檢測需要專業醫護人員操作,檢測效率較低,且難以實現自動化。本項目基于米爾RK3576開發板,設計并實現了一套智能視力檢測系統,旨在提供一種便捷、高效的視力檢測方案。RK3576是一款高性能ARM架構的開發板,搭載瑞芯微處理器,具備強大的AI推理能力,適合運行手勢識別、圖像處理等AI任務。

一、項目背景與目標
實現自動視力檢測:用戶通過簡單的手勢即可完成左右眼的視力檢測
AI手勢識別:利用MediaPipe實現精準的OK手勢檢測,作為啟動測試的交互方式
智能化流程控制:自動識別E字方向、判斷測試結果、自動切換測試眼別
語音交互:集成語音播報功能,提供清晰的測試指引和結果反饋
二、系統功能設計
2.1 功能架構
系統架構圖說明:

架構說明:
RK3576開發板: 核心控制器,運行所有業務邏輯
視頻播放模塊: 使用GStreamer進行硬件解碼播放引導視頻
手勢識別模塊: MediaPipe Hands檢測OK手勢作為啟動信號
距離檢測模塊: 串口讀取TOF傳感器數據,檢測用戶距離
語音播報模塊: ES8388音頻編解碼,播報歡迎詞和檢測結果
UI顯示模塊: PySide6 Qt開發,HDMI輸出到顯示屏
數據流向:
攝像頭采集圖像 → MediaPipe手勢識別 → 判斷OK手勢
TOF傳感器檢測距離 → 串口通信 → 判斷距離是否合適
隨機生成E字方向 → 顯示在屏幕上
用戶手勢 → 攝像頭采集 → 手勢識別 → 對比判斷
測試結果 → 語音播報 + 屏幕顯示
2.2 核心功能模塊

2.3 測試流程

流程說明:
系統初始化 - 啟動攝像頭、手勢識別、距離傳感器、音頻系統
播放引導視頻 - 開機自動播放intro_guide.mp4介紹使用方法
等待OK手勢 - 視頻結束后顯示提示,用戶做OK手勢啟動測試
右眼測試 - 隨機顯示E字方向,用戶用手勢回答,3次測試后判斷結果
左眼測試 - 自動切換到左手,重復右眼測試流程
顯示結果 - 播報雙側視力結果,顯示在屏幕上
等待重新測試 - 用戶可再次做OK手勢重新開始測試
三、硬件與電路說明
3.1 硬件清單

Intel RealSense D435 深度攝像頭特點
本項目選用Intel RealSense D435深度攝像頭作為視覺采集設備,用于手勢圖像采集。相比普通USB攝像頭具有以下優勢:
雙流輸出
同時支持RGB彩色流和深度流
本項目使用RGB流(640x480)進行手勢識別
深度流可用于未來擴展(如手勢分割)
高質量圖像
RGB分辨率:1920x1080 @ 30fps
采集分辨率:640x480 @ 15fps(用于手勢識別)
內置自動白平衡、自動曝光功能
適用于各種光照條件
即插即用
通過USB 3.0接口連接
提供跨平臺的librealsense SDK (pyrealsense2)
支持Linux、Windows等操作系統
穩定性強
工業級品質,穩定性好
自動曝光和對焦,適應能力強
在復雜環境下仍能準確識別手勢
易于集成
Python綁定支持,易于開發
幀同步機制,確保數據一致性
實時性好,滿足手勢識別需求
TOF激光測距模塊特點
本項目選用TOF(Time of Flight)激光測距模塊作為距離檢測設備,具有以下優勢:
超寬測距范圍
測距范圍:2cm ~ 10m
覆蓋從近到遠的各種使用場景
高精度測量
測量精度:±1cm
分辨率高,可檢測微小距離變化
快速響應
響應時間:<100ms
實時檢測用戶距離,適用于動態場景
抗干擾能力強
不受光照變化影響
不受被測物體顏色和材質影響
低功耗
功耗低,發熱小
適合長時間運行
3.2 硬件接線
RK3576開發板
│
├── USB3.0接口 ────> Intel RealSense D435 深度攝像頭
│ │
├── 串口(UART) ─────> TOF激光測距模塊
│ │
├── I2S/PCM ────────> 音頻編解碼 (ES8388) ──> 喇叭
│ │
└── HDMI ──────────> 顯示器 (HDMI OUT)
3.3 系統環境
操作系統: Buildroot Linux (ARM64)
Python版本: 3.10+
AI框架: MediaPipe (Google)
視覺庫: Intel RealSense SDK (librealsense)
GUI框架: PySide6
多媒體: GStreamer + ALSA
音頻格式: WAV (44.1kHz, 16bit, stereo)
四、關鍵技術說明
4.1 AI手勢識別
使用Google的MediaPipe框架進行手勢識別,主要特點:
模型: MediaPipe Hands (預訓練模型)
輸入: RGB圖像 (640x480)
輸出: 21個關鍵點坐標、手勢分類
性能: 實時推理 (30fps)
4.1.1 MediaPipe Hands 21個關鍵點
MediaPipe Hands 模型輸出21個手部關鍵點,編號從0到20:
8 12 16 20
│ │ │ │
▼ ▼ ▼ ▼
○───────────○───────────○───────────○ ← 食指、中指、無名指、小指
│ │ │ │
7 11 15 19
│ │ │ │
○───────────○───────────○───────────○
│ │ │ │
6 10 14 18
│ │ │ │
○───────────○───────────○───────────○
│ │ │ │
5 9 13 17
│ │
○───────────────────────○
│ │
4 13
│ │
○────┴───────────────────────┴────○
│ │
0 9
│ │
└────────────────────────────────┘
(手腕)
關鍵點索引說明:
0: 手腕
1-4: 拇指 (掌骨→近節指骨→遠節指骨→指尖)
5-8: 食指
9-12: 中指
13-16: 無名指
17-20: 小指



