做嵌入式的人想转视觉方向,最常见的问题是"不知道从哪开始"。这次我把自己的学习规划完整写出来:技术栈怎么选、为什么选 OpenCV 4.14 而不是最新版、97 个官方示例怎么一个个跑完、学完之后怎么接到国产 AI 视觉芯片上落地。全程 7 个阶段、约 12 周,每一步都有明确的交付物。
一、方向定位:嵌入式视觉的四层技术栈
嵌入式视觉不是单一技能,而是一条完整的数据链路。我把它拆成四层,每一层选一个最主流的工具:
| 层级 | 技术选型 | 解决什么 |
|---|---|---|
| 应用层 | Qt 6.9 Widgets | 界面、交互、多线程、显示 |
| 算法层 | OpenCV 4.14 | 图像处理、特征、标定、检测 |
| 采集层 | 国产工业相机 + MVS SDK | 实时图像采集、相机控制 |
| 部署层 | 国产 AI 视觉 SoC | 算法上板、NPU/DSP 加速、产线落地 |
这个组合的逻辑很清晰:Qt 负责"看得见"的部分,OpenCV 负责"算得对"的部分,工业相机负责"采得到"的部分,最后借助国产 AI 视觉芯片把算法部署到真实产品里。四层拆开学,每层都有海量教程;串起来做,就是一个完整的工业视觉工程师技能树。

二、版本决策:为什么学 OpenCV 4.14 而不是最新的 5.0
很多人学技术的第一反应是"装最新的"。OpenCV 5.0 确实已经发布,但我的选择是 4.14 作为学习主线,理由全部来自实测:
- 5.0 是十年一遇的大版本重构,API 大规模变动,网上教程、问答、书籍几乎全部基于 4.x,遇到问题搜不到答案
- 官方 97 个示例程序是按 4.x 维护的,示例即教材,这是学习效率的命根子
- 相机厂商 SDK 的官方示例也是 4.x API,即拿即用
- 5.0 放在进阶阶段做对比学习,"4.x 写法 vs 5.0 写法"本身就是一篇好文章
一句话:学习的目的是掌握方法,不是尝鲜版本。4.14 学到的东西,切到 5.0 只是一篇对比笔记的距离。
三、总体路线图:7 个阶段,约 12 周

- 阶段 0 环境搭建(第 1 周):Qt + OpenCV + 相机 SDK 装好,VSCode 工程模板跑通
- 阶段 1-2 基础双修(第 1-3 周):C++17 强化 + Qt Widgets 信号槽、多线程
- 阶段 3-4 OpenCV 主攻(第 3-7 周):核心模块 + 图像处理全遍历,这是主体
- 阶段 5 高级模块(第 7-8 周):特征检测、相机标定、视频分析、ML/DNN
- 阶段 6 相机采集(第 8-9 周):SDK 实时采集,Mat 转换,三合一打通
- 阶段 7 综合项目(第 10-12 周):采集 + 处理 + UI 一体化,性能优化
每个阶段结束都有交付物:要么是跑通的工程,要么是知识库页面,要么是一篇文章。没有交付物的学习等于没学。
四、OpenCV 全实例遍历:97 个官方示例逐个跑
这是整个规划里最"笨"也最有效的一招:把 OpenCV 官方 samples 目录里的 97 个 C++ 示例程序全部跑一遍,加上官方教程,一个不落。每个实例三件套:
- 运行截图存档
- 理论要点整理(原理、API、公式)
- 知识库页面沉淀
配一张进度表,97 个示例按模块分组(核心、图像处理、特征、标定、视频、检测、ML/DNN),每跑一个勾一个。跑通优先于跑深,先建立全貌,再回头深挖感兴趣的方向。这是把"学过"变成"掌握"的硬功夫。
五、与国产 AI 视觉芯片的衔接
学完 PC 端四层技术栈后,部署层的路是通的:OpenCV 算法验证通过 → 交叉编译工具链移植 → 板端 ARM 运行 → 算子迁移到 NPU/DSP 加速。工业视觉落地场景(定位、测量、缺陷检测、字符识别)在嵌入式 SoC 上的性能优化,是嵌入式视觉工程师最有溢价的能力。这部分作为学习规划的第二阶段,先打好 PC 端地基,板端部署水到渠成。
六、预期成果
- 一个可复用的 VSCode + CMake 工程模板(Qt + OpenCV + 相机 SDK 三件套)
- 一套完整的 LLM Wiki 知识库:97 个实例全覆盖,踩坑按"现象/原因/解决"结构化记录
- 一个三合一综合项目:工业相机实时采集 + OpenCV 处理 + Qt 界面
- 一系列学习笔记文章,每完成一个模块沉淀一篇
结语
嵌入式视觉的学习没有捷径,但有最优路径:选对版本、跑完实例、沉淀知识、串成项目。路线已经画好,剩下的就是每周按节奏执行。下一篇写环境搭建的完整实测过程,踩过的坑全部摊开。
如果这篇对你有启发,欢迎点赞、在看、转发三连,我们下篇见。