296 lines
7.8 KiB
Markdown
296 lines
7.8 KiB
Markdown
# 海康工业相机激光检测系统
|
||
|
||
## 项目概述
|
||
|
||
本项目是一个基于海康工业相机(MV-CS016-10UC)的激光检测系统,主要用于检测绿色激光点和点阵灯盘。系统采用多线程架构,集成了相机管理、参数配置、检测算法和可视化界面,能够实时识别和跟踪激光目标。
|
||
本项目使用Trae的SOLO模式生成
|
||
|
||
## 系统功能
|
||
|
||
### 核心功能
|
||
|
||
1. **双模式激光检测**
|
||
- 模式A:单点/稀疏光点检测(适用于绿色激光笔)
|
||
- 模式B:点阵灯盘检测(适用于LED阵列)
|
||
- 智能仲裁:自动选择最优检测模式
|
||
|
||
2. **相机管理**
|
||
- 设备枚举和选择
|
||
- 相机参数控制(曝光时间、增益、帧率)
|
||
- 图像采集和显示
|
||
- 异常处理和重连机制
|
||
|
||
3. **参数配置**
|
||
- 实时参数调节界面
|
||
- HSV颜色空间配置
|
||
- 形态学操作参数设置
|
||
- ROI(感兴趣区域)设置
|
||
|
||
4. **性能优化**
|
||
- 自动曝光调节
|
||
- 交替帧策略
|
||
- 多线程架构
|
||
|
||
5. **可视化界面**
|
||
- 实时检测结果显示
|
||
- 双模检测状态条
|
||
- 操作日志记录
|
||
- 用户交互警告
|
||
|
||
### 技术特点
|
||
|
||
- **海康MVS SDK集成**:完整的SDK初始化、设备管理和参数控制
|
||
- **OpenCV图像处理**:高效的图像采集、转换和显示
|
||
- **多线程架构**:实时图像采集和处理
|
||
- **智能算法**:基于HSV颜色空间和形态学操作的目标检测
|
||
- **用户友好**:直观的参数调节界面和实时状态显示
|
||
|
||
## 安装和配置
|
||
|
||
### 1. 硬件要求
|
||
|
||
- 海康工业相机(推荐:MV-CS016-10UC)
|
||
- 计算机(Windows 10/11,64位)
|
||
- USB 3.0或GigE网络接口
|
||
|
||
### 2. 软件要求
|
||
|
||
- Python 3.7+
|
||
- 海康MVS SDK
|
||
- OpenCV
|
||
- NumPy
|
||
- Tkinter(Python标准库)
|
||
|
||
### 3. SDK安装
|
||
|
||
1. **下载MVS SDK**
|
||
- 访问海康官网:https://www.hikvision.com/cn/
|
||
- 搜索 "MVS SDK" 或 "机器视觉 SDK"
|
||
- 下载对应操作系统的最新版本
|
||
|
||
2. **安装SDK**
|
||
- 运行安装程序,按照默认设置安装
|
||
- 安装路径建议使用默认路径
|
||
|
||
3. **配置环境变量**
|
||
- 将SDK安装目录下的bin文件夹添加到系统PATH环境变量
|
||
- 例如:C:\Program Files\MVS\Runtime\bin\win64_x64
|
||
|
||
4. **配置Python环境**
|
||
- 复制SDK安装目录下的Python绑定文件
|
||
- 从:C:\Program Files\MVS\Development\Samples\Python\MvImport
|
||
- 到:项目目录\Python\MvImport
|
||
|
||
### 4. 依赖安装
|
||
|
||
```bash
|
||
pip install opencv-python
|
||
pip install numpy
|
||
```
|
||
|
||
## 使用指南
|
||
|
||
### 主程序
|
||
|
||
**功能**:双模式激光检测系统的主程序,集成了相机管理、参数配置、检测算法和可视化界面。
|
||
|
||
**运行方式**:
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
**操作流程**:
|
||
|
||
1. 启动程序后,系统会枚举连接的相机设备
|
||
2. 输入要打开的相机索引
|
||
3. 程序会自动初始化相机并开始取流
|
||
4. 同时启动参数控制面板
|
||
5. 系统会自动检测激光目标并显示结果
|
||
6. 按 `Q` 键退出显示窗口
|
||
7. 按 `Ctrl+C` 退出程序
|
||
|
||
**参数控制**:
|
||
- 曝光时间:控制相机曝光时长(微秒)
|
||
- 增益:控制相机信号增益(dB)
|
||
- 帧率:控制相机采集帧率(fps)
|
||
- ROI:设置感兴趣区域,提高处理速度
|
||
- HSV:调节颜色检测范围
|
||
- 形态学:设置形态学操作参数
|
||
- 几何参数:设置目标检测的几何条件
|
||
|
||
### 相机测试程序
|
||
|
||
**功能**:用于测试相机基本功能的验证程序,包括设备枚举、图像采集和显示。
|
||
|
||
**运行方式**:
|
||
|
||
```bash
|
||
python verify_camera.py
|
||
```
|
||
|
||
**操作流程**:
|
||
|
||
1. 启动程序后,系统会枚举连接的相机设备
|
||
2. 输入要打开的相机索引
|
||
3. 程序会打开相机并开始取流
|
||
4. 显示相机采集的实时图像
|
||
5. 按 `Q` 键退出显示窗口
|
||
6. 按 `Ctrl+C` 退出程序
|
||
|
||
**用途**:
|
||
- 验证相机连接是否正常
|
||
- 测试相机基本功能
|
||
- 检查图像质量
|
||
- 排查相机相关问题
|
||
|
||
### 相机控制程序
|
||
|
||
**功能**:用于相机参数调节的独立控制界面程序。
|
||
|
||
**运行方式**:
|
||
|
||
```bash
|
||
python camera_control.py
|
||
```
|
||
|
||
**操作流程**:
|
||
|
||
1. 启动程序后,系统会自动初始化相机
|
||
2. 点击 "初始化相机" 按钮枚举设备
|
||
3. 点击 "打开相机" 按钮打开选中的设备
|
||
4. 点击 "开始取流" 按钮开始采集图像
|
||
5. 使用滑块调节曝光时间、增益和帧率
|
||
6. 点击 "停止取流" 按钮停止采集
|
||
7. 点击 "关闭相机" 按钮关闭设备
|
||
|
||
**用途**:
|
||
- 快速调节相机参数
|
||
- 测试不同参数组合的效果
|
||
- 监控相机状态
|
||
|
||
## 代码结构
|
||
|
||
```
|
||
Dart/
|
||
├── main.py # 主程序:双模式激光检测系统
|
||
├── camera.py # 相机管理模块
|
||
├── camera_control.py # 相机控制界面
|
||
├── camera_hik.py # 海康相机实现
|
||
├── verify_camera.py # 相机验证程序
|
||
├── detector.py # 单点光斑检测器
|
||
├── dot_matrix_detector.py # 点阵灯盘检测器
|
||
├── arbitrator.py # 模式仲裁器
|
||
├── config_panel.py # 参数控制面板
|
||
├── auto_exposure.py # 自动曝光调节
|
||
├── utils.py # 工具函数
|
||
├── Python/
|
||
│ └── MvImport/ # 海康MVS SDK Python绑定
|
||
└── README.md # 项目说明文档
|
||
```
|
||
|
||
### 核心文件说明
|
||
|
||
| 文件 | 主要功能 | 说明 |
|
||
|------|----------|------|
|
||
| main.py | 双模式激光检测系统 | 集成所有模块,实现完整的检测流程 |
|
||
| camera.py | 相机管理 | 完整的相机管理功能和控制界面 |
|
||
| verify_camera.py | 相机验证 | 用于测试相机基本功能的独立程序 |
|
||
| detector.py | 单点光斑检测 | 基于HSV颜色空间的激光点检测 |
|
||
| dot_matrix_detector.py | 点阵灯盘检测 | 基于形态学操作的LED阵列检测 |
|
||
| arbitrator.py | 模式仲裁 | 智能选择最优检测模式 |
|
||
| config_panel.py | 参数配置 | 实时参数调节界面 |
|
||
|
||
## 常见问题和解决方案
|
||
|
||
### 1. 相机连接问题
|
||
|
||
**问题**:未找到设备
|
||
**解决方案**:
|
||
- 检查相机是否正确连接
|
||
- 检查USB/GigE接口是否正常
|
||
- 检查MVS SDK是否正确安装
|
||
- 检查设备管理器中是否识别到相机
|
||
|
||
**问题**:相机无法打开(错误码:2147483648)
|
||
**解决方案**:
|
||
- 关闭其他可能占用相机的程序
|
||
- 重启计算机
|
||
- 重新安装MVS SDK
|
||
- 检查相机驱动是否正确安装
|
||
|
||
### 2. 图像采集问题
|
||
|
||
**问题**:获取图像失败
|
||
**解决方案**:
|
||
- 检查相机连接
|
||
- 检查相机是否被其他程序占用
|
||
- 重启相机
|
||
- 调整相机参数
|
||
|
||
**问题**:图像显示异常
|
||
**解决方案**:
|
||
- 检查像素格式设置
|
||
- 调整曝光时间和增益
|
||
- 检查OpenCV安装
|
||
|
||
### 3. 检测算法问题
|
||
|
||
**问题**:激光点检测不到
|
||
**解决方案**:
|
||
- 调整HSV颜色范围
|
||
- 调整曝光时间和增益
|
||
- 检查激光光源是否正常
|
||
- 调整形态学操作参数
|
||
|
||
**问题**:误检测较多
|
||
**解决方案**:
|
||
- 缩小HSV颜色范围
|
||
- 增加形态学操作的开运算
|
||
- 调整几何参数阈值
|
||
- 设置ROI减小检测范围
|
||
|
||
### 4. 性能问题
|
||
|
||
**问题**:帧率过低
|
||
**解决方案**:
|
||
- 增大ROI范围
|
||
- 降低图像分辨率
|
||
- 启用交替帧策略
|
||
- 关闭不必要的显示窗口
|
||
|
||
**问题**:程序卡顿
|
||
**解决方案**:
|
||
- 减少同时显示的窗口数量
|
||
- 降低处理复杂度
|
||
- 检查计算机性能
|
||
|
||
## 系统要求
|
||
|
||
### 硬件要求
|
||
|
||
- CPU:Intel Core i5或更高
|
||
- 内存:8GB或更高
|
||
- 存储:10GB可用空间
|
||
- 接口:USB 3.0或GigE网络接口
|
||
|
||
### 软件要求
|
||
|
||
- 操作系统:Windows 10/11 64位
|
||
- Python:3.7或更高版本
|
||
- 海康MVS SDK:最新版本
|
||
- OpenCV:4.0或更高版本
|
||
- NumPy:1.18或更高版本
|
||
|
||
## 许可证
|
||
|
||
本项目仅供学习和研究使用,未经授权不得用于商业用途。
|
||
|
||
## 联系方式
|
||
|
||
如有问题或建议,请联系项目维护人员。
|
||
|
||
---
|
||
|
||
**注意**:使用本系统前,请确保已经正确安装和配置海康MVS SDK,并且相机已经正确连接到计算机。
|