01
双目视觉概述
双目视觉原理、应用场景(3D重建、测距)、课程目标与硬件选型建议。
原理选型
02
相机硬件基础
相机传感器(CCD/CMOS)、镜头参数(焦距、视场角)、接口类型(USB、CSI、GigE)。
传感器接口
03
同步触发原理
硬件触发(GPIO、外部信号)与软件触发(API指令)的区别与适用场景。
硬触发软触发
04
硬件触发方案设计
使用STM32/Arduino产生PWM信号,实现双相机硬同步。
PWMSTM32
05
软件触发方案设计
基于OpenCV的多线程同步采集,解决时间戳对齐问题。
多线程时间戳
06
相机SDK开发入门
以Basler/海康相机为例,SDK安装、初始化与参数配置。
SDKBasler
07
相机参数配置
曝光时间、增益、帧率、分辨率设置,确保双相机参数一致。
曝光增益
08
图像缓冲区管理
环形缓冲区设计,防止丢帧与内存溢出。
环形缓冲防丢帧
09
时间戳同步机制
使用系统时钟、PTP协议或硬件时间戳实现帧级同步。
PTP帧同步
10
多相机标定基础
张正友标定法原理,棋盘格制作与采集要求。
标定棋盘格
11
单相机内参标定
使用OpenCV进行畸变校正与内参矩阵计算。
内参畸变
12
双相机外参标定
计算旋转矩阵与平移向量,实现立体校正。
外参立体校正
13
立体校正与极线约束
Bouguet算法原理,图像重映射实践。
极线约束重映射
14
视差图计算
SGBM算法原理与参数调优,深度图生成。
SGBM深度图
15
点云生成与可视化
将视差图转换为3D点云,使用Open3D显示。
点云Open3D
16
实时采集系统架构
生产者-消费者模型,多线程与队列设计。
架构队列
17
基于Python的多线程采集
threading与queue模块实现双相机并行采集。
Python并行
18
基于C++的多线程采集
std::thread与OpenCV Mat共享内存管理。
C++共享内存
19
GPU加速采集
使用CUDA进行图像预处理与视差计算加速。
CUDA加速
20
触发延迟测量
示波器测量硬件触发延迟,软件打戳分析延迟抖动。
延迟示波器
21
丢帧检测与恢复
序列号校验、超时重传机制设计。
丢帧重传
22
多相机同步采集系统
4相机及以上系统的同步方案与带宽管理。
多相机带宽
23
嵌入式平台部署
在Jetson Nano/RK3588上实现双目采集与处理。
JetsonRK3588
24
ROS2集成
将双目相机发布为ROS2话题,实现数据流管理。
ROS2话题
25
数据记录与回放
使用ROS2 bag或自定义格式记录同步图像流。
bag回放
26
性能优化
内存拷贝优化、零拷贝技术、DMA传输应用。
零拷贝DMA
27
常见问题排查
图像撕裂、不同步、曝光不一致等故障诊断。
故障诊断
28
工业场景案例
流水线物体尺寸测量系统设计与实现。
工业测量
29
自动驾驶场景案例
前向双目测距系统设计与实现。
自动驾驶测距
30
课程总结与进阶方向
多目视觉、事件相机、深度学习与双目融合趋势。
总结趋势