嵌入式视觉 · 项目工程搭建实战
📚 30 章
从零到部署
01
项目全景:嵌入式视觉是什么?硬件选型(树莓派/Jetson Nano/STM32)、软件栈概览(OpenCV/TensorFlow Lite/ONNX Runtime)
硬件选型 · 软件栈 · 视觉系统全景
02
开发环境搭建:交叉编译工具链安装、CMake与Makefile入门、Docker镜像制作与使用
交叉编译 · CMake/Makefile · Docker 环境
03
工程目录结构设计:模块化思想、src/include/test/build目录划分、命名规范与版本管理(Git)
模块化 · 目录划分 · Git 版本管理
04
代码风格与规范:Google C++ Style Guide、Python PEP8、静态检查工具(cpplint/pylint)、clang-format配置
代码规范 · 静态检查 · 格式化
05
CMakeLists.txt编写:基础语法、目标定义、库链接、第三方依赖管理(FetchContent/vcpkg)
CMake语法 · 依赖管理 · 库链接
06
Makefile与Ninja构建:Makefile核心规则、多目标编译、Ninja加速原理、构建系统对比
Makefile · Ninja · 构建加速
07
日志系统搭建:spdlog库集成、日志级别、异步日志、日志轮转与性能考量
spdlog · 异步日志 · 轮转策略
08
配置文件管理:JSON/YAML/TOML格式选择、nlohmann_json库使用、yaml-cpp集成、配置热加载
JSON/YAML/TOML · 热加载
09
命令行参数解析:getopt、CLI11库、argparse(Python)、参数校验与帮助信息
CLI解析 · getopt · CLI11 · argparse
10
单元测试框架:Google Test入门、测试夹具、参数化测试、覆盖率统计(gcov/lcov)
Google Test · 覆盖率 · 参数化
11
持续集成(CI):GitHub Actions配置、自动化构建与测试、代码质量门禁、Docker化CI流水线
GitHub Actions · CI流水线 · Docker
12
图像采集模块:V4L2驱动编程、OpenCV VideoCapture封装、多线程采集、帧率控制
V4L2 · 多线程采集 · 帧率控制
13
图像预处理流水线:色彩空间转换、缩放、归一化、ROI提取、Pipeline设计模式
预处理 · 色彩空间 · Pipeline
14
模型推理引擎:TensorFlow Lite C++ API、ONNX Runtime集成、OpenVINO部署、推理性能优化
TFLite · ONNX · OpenVINO · 推理优化
15
后处理模块:NMS算法实现、分类结果解析、目标框绘制、置信度过滤
NMS · 目标框 · 置信度过滤
16
通信模块设计:TCP/UDP Socket封装、ZeroMQ集成、Protobuf序列化、心跳机制
Socket · ZeroMQ · Protobuf · 心跳
17
数据持久化:SQLite数据库集成、图像存储策略(PNG/JPEG压缩)、时序数据存储
SQLite · 图像存储 · 时序数据
18
显示与可视化:SDL2/OpenCV HighGUI、远程Web监控(Flask/WebSocket)、帧率叠加显示
SDL2 · Web监控 · 帧率叠加
19
性能分析与优化:perf工具使用、gprof性能分析、内存泄漏检测(Valgrind)、CPU/GPU负载均衡
perf · gprof · Valgrind · 负载均衡
20
多线程与并发:std::thread/async使用、线程池实现、生产者-消费者模型、死锁预防
线程池 · 生产者-消费者 · 死锁预防
21
内存管理:智能指针(unique_ptr/shared_ptr)、内存池设计、零拷贝技术、DMA传输
智能指针 · 内存池 · 零拷贝 · DMA
22
实时性保障:实时操作系统(RT-Linux/FreeRTOS)集成、优先级反转、时间戳同步
RT-Linux · FreeRTOS · 时间戳同步
23
安全与加密:TLS/SSL通信、模型加密、固件签名、安全启动链
TLS/SSL · 模型加密 · 安全启动
24
远程更新(OTA):差分升级算法、断点续传、版本回滚、更新失败恢复
差分升级 · 断点续传 · 版本回滚
25
文档与注释:Doxygen文档生成、API文档规范、README编写、CHANGELOG维护
Doxygen · API文档 · CHANGELOG
26
调试技巧:GDB调试、Core Dump分析、远程调试、printf调试的艺术
GDB · Core Dump · 远程调试
27
硬件加速:NEON指令集优化、GPU(CUDA/OpenCL)加速、ISP流水线配置
NEON · CUDA · OpenCL · ISP
28
功耗优化:DVFS策略、休眠唤醒机制、低功耗模型选择、任务调度优化
DVFS · 休眠唤醒 · 低功耗模型
29
量产与部署:固件打包、烧录工具、生产测试、序列号管理
固件打包 · 烧录 · 生产测试
30
项目实战:从零搭建一个车牌识别系统,涵盖上述所有模块的集成与调试
车牌识别 · 全模块集成 · 调试