📷 流水线开发技巧
30章
🎯 多线程 · 高性能 · 相机实战
01
流水线架构概述
什么是相机流水线
为什么需要多线程
单线程vs多线程
02
线程基础与Python GIL
线程创建与管理
GIL影响
绕过GIL
03
生产者-消费者模式
经典模式详解
相机数据流
Queue使用
04
帧缓冲区设计
环形缓冲区
双缓冲/三缓冲
内存池
05
同步原语实战
Lock
Condition
Semaphore
Event
06
线程间通信
共享内存
消息队列
Pipe
事件驱动
07
相机驱动层封装
V4L2基础
OpenCV封装
自定义抽象层
08
图像预处理流水线
色彩空间转换
去噪/缩放
ROI提取
09
多阶段流水线设计
采集Stage1
处理Stage2
编码Stage3
存储/显示
10
流水线调度策略
静态调度
动态调度
负载均衡
优先级
11
帧率控制与同步
固定/可变帧率
帧同步
时间戳管理
12
零拷贝技术
MMAP
DMA-BUF
GPU零拷贝
减少搬运
13
异步处理模式
Future/Promise
回调函数
协程应用
14
线程池与工作窃取
线程池设计
工作窃取
自适应线程池
15
性能监控与调优
延迟测量
吞吐量计算
热点分析
16
死锁与竞态条件
四个必要条件
检测/预防
竞态调试
17
无锁数据结构
无锁队列
读写锁
RCU机制
18
内存序与原子操作
C++/Python原子操作
内存屏障
happens-before
19
多相机同步采集
硬件触发同步
软件时间同步
多相机标定
20
GPU加速流水线
CUDA/OpenCL
GPU-CPU协作
异步传输
21
流水线状态机
状态定义
状态转换
错误恢复
健康检查
22
日志与调试技巧
结构化日志
分布式追踪
perf/py-spy
23
单元测试与压力测试
Mock驱动
流水线单元测试
长时间稳定性
24
资源管理
内存泄漏检测
文件描述符
GPU资源释放
25
配置化流水线
YAML/JSON配置
动态重组
热加载
26
实时性保证
RT内核
线程优先级
优先级反转
实时调度
27
跨平台移植
Linux/Windows/macOS
ARM/x86优化
容器化
28
安全与异常处理
超时处理
异常传播链
优雅降级
看门狗
29
实战案例1:USB摄像头实时人脸检测
人脸检测流水线
实时采集
推理展示
30
实战案例2:多路RTSP流解码与AI推理
RTSP解码
多路并行
AI推理流水线