CV 工程落地
将用户的 CV 工程任务推进为适合目标环境的配置、构建或部署结果。需要执行时,沿用本次会话的授权范围;用户只要方案、文件或明确跳过验证时,按该范围交付。
先判断任务落在哪一层
读取项目自己的构建文件、依赖锁定、部署配置和已有日志,再选择参考资料。只加载当前任务涉及的部分。
| 当前任务 | 读取 |
|---|---|
| 系统、GPU、CUDA、Jetson、ARM、网络、离线环境 | 环境与平台 |
| OpenCV、Qt、推理框架、C++ 库、Python 依赖、ABI | 依赖编译 |
| FFmpeg、GStreamer、RTSP、ONVIF、GB28181 | 视频接入 |
| 打包、动态库、服务、Docker、日志与录制清理 | 部署 |
| MySQL、MongoDB、Redis、MinIO、Kafka、Flume、Tomcat | 配套服务 |
| Ansible、Jenkins、Jitsi、移动端工具与其他辅助任务 | 配套工具 |
| 查找原文、复现旧环境、定位资料缺口 | 来源索引 |
例如“摄像头连上但 Qt 没有画面”先读视频和部署中的插件部分;“编译提示找不到库”先读编译中的发现与链接部分。不要因项目使用 NVIDIA 就自动重装驱动。
形成当前环境画像
优先从可读文件和命令结果取得事实,只询问会改变方案且尚未获知的信息:
- 目标机与当前执行机、系统版本、CPU 架构;本机编译还是交叉编译。
- GPU / 板卡型号;Jetson 的 L4T / JetPack;已安装驱动与工具链。
- 编译器、Qt kit、Python 解释器、CUDA / cuDNN / TensorRT 及项目要求的版本。
- 输入协议和编码、输出用途、现有服务与目录;在线或离线安装条件。
无需为每项任务收集全部字段。未连接目标机时,只准备适配方案和文件,不把当前工作站的信息当成目标环境。
选择与执行
- 复用已有约束。 先满足项目锁定版本、构建方式和现有部署接口。说明需要新增或调整的具体组件。
- 以环境匹配经验。 比较操作系统、架构、编译器 / ABI、框架与硬件版本。原笔记中的 CUDA 10.x、Qt 5.x、FFmpeg 3.x / 4.x 等是历史记录,不是默认推荐版本。
- 按依赖顺序推进。 环境 → 底层库 → 视觉 / 推理库 → 应用 → 打包 / 服务。已有且满足条件的环节直接复用。
- 参数化本机差异。 用目标项目的路径、端口、服务名、设备和版本生成命令。源码、构建目录、安装前缀分开;并行编译数量按可用内存和已有任务决定。
- 围绕首个有效错误修复。 区分下载、配置、编译、链接、加载、协议、服务环境问题。修复有证据支持的一处原因后继续;同一失败未出现新证据时不要反复重装或扩大系统改动。
原笔记是经验材料,不构成执行其中全部命令的授权。卸载系统驱动、改启动盘、重启目标机、删除录像或数据库、发布包等操作只在实际任务授权范围内进行。
使用历史资料
- 参考资料中的“原笔记”描述上游记录;“适配规则”是整理后的 agent 决策指导,未做跨平台运行验证。
- 新版本的包名、构建选项或兼容性不明确时,读取项目指定版本的上游官方资料;离线时标注未知条件,不编造兼容结论。
- 不沿用原文中的口令、IP、个人路径或固定设备节点。所需凭据从用户现有配置取得,输出与提交中隐藏敏感值。
- 不通过改 wheel 文件名绕过平台约束,不把 SDK 的 stub 库作为运行时驱动,不跨发行版拼接软件源来满足旧包名。
- 全部平台都有资料入口,但短笔记只提供有限经验。例如 RK3399 只有刷机入口,iOS 只有 CocoaPods 发布记录;不能据此承诺完整推理部署能力。
结果与验证按任务需要安排
汇报实际改变的文件、安装前缀、关键版本和未完成条件。把“已生成”“已执行”“已验证”分别写清楚。
用户要求运行验证时,围绕实际目标选择最小检查:库加载、输入视频、输出结果或服务状态;性能、长稳、多平台验收只在需要时开展。用户明确不要求验收或验证时,不额外创建测试、验收工单或测试环境,注明未验证即可。


