Appearance
计算机视觉与 OpenCV
本页解决什么:区分图像分类、目标检测、分割、OCR 等定性视觉任务,以及 DIC、PIV、光流等定量测量任务,帮助 PM 判断视觉项目到底输出标签、位置、mask,还是物理量场。
基本原理
计算机视觉让机器从图像和视频中提取结构化信息。传统视觉侧重像素处理、几何、特征点、光流和相机标定;深度视觉侧重用 CNN、Transformer 等模型学习图像表示。
OpenCV 是视觉工程库,不是深度学习模型本身。它负责图像读取、滤波、边缘、阈值、轮廓、特征匹配、相机标定、视频流和可视化,常用于模型前处理和后处理。
解决的问题
| 类型 | 问题 | 输出 |
|---|---|---|
| 定性视觉 | 图像里有什么,在哪里,是否异常 | 类别、检测框、分割 mask、OCR 文本 |
| 定量视觉 | 多大、多快、如何变形、如何运动 | 长度、面积、速度、位移、应变、轨迹 |
| 视觉工程 | 图像质量差、畸变、视角变化、实时视频 | 校正图、增强图、ROI、测量结果 |
AIMA 感知章节映射
AIMA 将感知放在智能体闭环中:传感器从环境获得观测,系统把观测解释为可行动的信息。现代 CV 继承这个逻辑,只是传感器从简单输入扩展到相机、激光雷达、显微图像、高速视频和多模态数据。
| AIMA 感知问题 | 现代 CV 对应 | 应用 |
|---|---|---|
| 从传感器获得环境信息 | 图像采集、标定、去噪 | 工业相机、机器人、自动驾驶 |
| 从低层信号提取结构 | 边缘、角点、轮廓、光流 | OpenCV 前处理、DIC/PIV |
| 识别对象和场景 | 分类、检测、分割 | 质检、医学影像、安防 |
| 将感知用于行动 | 感知-规划-控制闭环 | 机器人、自动实验、Agent 工具调用 |
应用场景
- 工业质检:缺陷检测、尺寸测量、表面瑕疵识别。
- 医学影像:病灶分割、组织分类、影像辅助分析。
- 交通与安防:车辆检测、行人跟踪、事件识别。
- 实验工程:高速相机视频处理、DIC/PIV 前处理、光流分析。
- 农业与遥感:作物识别、病虫害检测、地物分割。
Python 库
| 库 | 作用 | 适用边界 |
|---|---|---|
opencv-python | 图像/视频处理、标定、轮廓、光流 | 视觉工程基础 |
scikit-image | 图像处理算法和测量 | 科研和图像分析 |
Pillow | 图像读写和轻量处理 | 简单图像任务 |
ultralytics | YOLO 检测与分割 | 快速目标检测 |
detectron2 | 检测、实例分割、关键点 | 研究和复杂视觉任务 |
最小示例
python
import cv2
image = cv2.imread("part.jpg", cv2.IMREAD_GRAYSCALE)
blur = cv2.GaussianBlur(image, (5, 5), 0)
_, binary = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
areas = [cv2.contourArea(c) for c in contours]
print(f"detected regions: {len(areas)}, max area: {max(areas, default=0):.1f}")这个示例展示了传统视觉的基本流程:读取图像、去噪、阈值、轮廓、测量。它适合规则明显、对数据量要求低的场景。
工程流程概览
图像采集 -> 标定/校正 -> ROI 和增强 -> 检测/分割/测量 -> 结果可视化 -> 人工或业务规则验证。
下一步
- 要理解材料变形测量:看 DIC 数字图像相关。
- 要理解流体速度场:看 PIV 粒子图像测速。
- 要理解 AI 在实验场中的作用:看 AI 定量视觉分析。
