泰山派3M-RK3576 OpenCV 开发指南
本指南在泰山派3M-RK3576开发板上使用 Python + OpenCV 进行 USB 摄像头开发。从环境搭建到硬件加速,循序渐进。
适用系统
| 系统 | 桌面环境 | 状态 |
|---|---|---|
| Ubuntu24-Xubuntu | XFCE | ✅ 已验证 |
| Ubuntu24-GNOME | GNOME | ✅ 适用 |
开发环境概览
| 项目 | 版本/信息 |
|---|---|
| Python | 3.12.3 |
| OpenCV | 4.13.0(计算机视觉库) |
| NumPy | 2.4.6(数值计算库,OpenCV 核心依赖) |
| 摄像头接口 | USB HOST(UVC 协议) |
| 硬件加速 | MPP(VPU 硬件编解码) |
实测性能数据
测试环境
泰山派3M-RK3576,Ubuntu24-Xubuntu,USB 摄像头(/dev/video73)。
基础性能
| 功能模块 | 分辨率 | 帧率 | 备注 |
|---|---|---|---|
| 摄像头预览(纯显示) | 640×480 | 24.9fps | 推荐配置,流畅 |
| 摄像头预览(纯显示) | 1280×720 | 23.4fps | 全屏实时显示 |
| 视频录制(不显示) | 1280×720 | 24.7fps | 纯录制无显示开销 |
| 视频录制 + 实时显示 | 1280×720 | 14.3fps | OpenCV 方案,帧率腰斩 |
| 人脸检测(优化版) | 640×480 | 19.3fps | Haar 级联分类器 |
| 图像处理 4 合 1 | 640×480 | 26.2fps | 4 种算法同时显示 |
硬件加速效果
| 方案 | 文件大小(10s) | 帧率 | 说明 |
|---|---|---|---|
| OpenCV 软件编码 | 12.8MB | 14.3fps(边录边看) | CPU 全干,卡顿 |
| GStreamer + MPP 硬编码 | 3.5MB | 25.0fps(边录边看) | 硬件分担,流畅 |
系列文档目录
学习路线
建议按顺序阅读,每章都有完整可运行的代码示例。
| 序号 | 文档 | 内容概要 |
|---|---|---|
| 1 | 环境搭建 | Python 虚拟环境创建、OpenCV 安装与验证 |
| 2 | USB摄像头识别与验证 | 设备识别、V4L2 工具使用、GStreamer 快速预览 |
| 3 | 基础图像采集 | VideoCapture 打开摄像头、实时显示、保存图片 |
| 4 | 视频录制与回放 | VideoWriter 录制视频、编码格式选择、视频回放 |
| 5 | 图像处理入门 | 灰度转换、模糊滤波、边缘检测、颜色空间 |
| 6 | 实战:人脸检测 | Haar 级联分类器、实时人脸框选、性能调优 |
| 7 | 进阶技巧与问题排查 | 多摄像头、分辨率设置、常见报错处理 |
| 8 | 硬件加速进阶 | MPP 硬件编解码、GStreamer 管线、实时处理优化 |
新手必读
三个最常见的坑
- ADB/SSH 运行脚本没画面:必须加
DISPLAY=:0,否则窗口无法显示 - 摄像头设备号不是 0:RK3576 有 70+ 个视频节点,USB 摄像头编号通常很大(如 73)
- 每次都要激活虚拟环境:
source ~/opencv-env/bin/activate,否则 import cv2 报错