# machine_vision_solution **Repository Path**: abonaventure/machine_vision_solution ## Basic Information - **Project Name**: machine_vision_solution - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 本方案实现工业检测机器视觉全场景覆盖,涵盖传感器选型、标定方案、标靶设计、核心算法、工控机/PC端应用开发全流程,所有代码均为可直接编译、运行、测试验证的工程化实现,适配3C电子、汽车零部件、精密制造等主流工业检测场景(尺寸测量、缺陷检测、定位引导、装配检测)。方案采用模块化解耦设计,标定算法、检测算法、界面程序、标靶生成模块独立封装,支持跨平台移植(Windows/Linux工控机)、传感器灵活替换,满足工业现场的稳定性、实时性(标定≤2s、检测算法≤2s、全流程≤3s)、高精度要求。 整体工程结构(强化解耦,适配实时性要求) industrial-vision-inspection/ ├── doc/ # 方案文档(全流程工程文档,支撑部署与维护) │ ├── sensor_selection.md # 传感器选型指南 │ ├── calibration_manual.md # 标定操作手册(含常见问题排查) │ ├── test_report.md # 性能测试报告(实时性/精度验证结果) │ └── target_design_spec.md # 标靶设计规范(适配不同标定场景) ├── calibration/ # 解耦式标定算法模块(C++/Python双版本,适配≤2s标定) │ ├── param/ # 标定参数存储目录(JSON格式,快速读写,自动备份) │ ├── camera_single_calib.cpp # 单目标定(优化加速,≤1.5s) │ ├── camera_single_calib.py # 单目标定Python版本(调试/快速验证) │ ├── camera_stereo_calib.cpp # 双目立体标定(优化加速,≤2s) │ ├── camera_stereo_calib.py # 双目立体标定Python版本(调试/快速验证) │ ├── camera_projector_calib.cpp # 相机-投影仪联合标定(优化加速,≤2s) │ ├── camera_projector_calib.py # 相机-投影仪联合标定Python版本(调试/快速验证) │ ├── hand_eye_calib.cpp # 手眼标定(eye-in-hand/eye-to-hand,≤1.8s) │ ├── hand_eye_calib.py # 手眼标定Python版本(调试/快速验证) │ └── target_generator/ # 标靶生成模块(多版本适配,提前生成可用标靶) │ ├── cpp/ │ │ ├── target_generator.h │ │ └── target_generator.cpp │ ├── python/ │ │ └── target_generator.py │ └── flutter/ # 跨平台标靶生成工具(可视化操作) │ └── target_generator_flutter.dart ├── algorithm/ # 机器视觉核心检测算法(C++实现,优化后≤2s/帧) │ ├── 2d_measure.cpp # 2D尺寸测量(距离/角度/面积,加速优化,≤1.2s) │ ├── 2d_defect_detect.cpp # 2D缺陷检测(划痕/斑点/缺口,加速优化,≤1.8s) │ ├── 3d_detect.cpp # 3D检测与点云处理(平面分割/缺陷提取,≤2s) │ └── target_detection.cpp # 标靶特征点提取(棋盘格/圆点阵,适配多类型,≤0.3s) ├── application/ # 工控机/PC端应用程序(Qt界面开发+算法调度,C++/Qt) │ ├── ui/ # 界面渲染模块(独立封装,不影响核心算法运行) │ │ ├── main_window.h │ │ ├── main_window.cpp │ │ ├── calibration_widget.h │ │ └── detect_widget.h │ ├── scheduler/ # 算法调度模块(异步调度,衔接标定与检测,≤0.2s) │ │ ├── algo_scheduler.h │ │ └── algo_scheduler.cpp │ └── io/ # 数据输入输出模块(独立封装,适配传感器高速传输) │ ├── data_input.h │ ├── data_output.h │ └── data_persist.cpp ├── driver/ # 工业传感器驱动(独立封装,跨品牌适配,高速数据传输) │ ├── hik_camera_driver.h │ ├── hik_camera_driver.cpp │ ├── basler_camera_driver.h │ └── projector_driver.cpp ├── test/ # 测试用例(全维度验证,保障工程稳定性) │ ├── calib_perf_test.cpp # 标定实时性测试 │ ├── calib_acc_test.cpp # 标定精度测试 │ ├── detect_perf_test.cpp # 检测实时性测试 │ └── algo_compat_test.cpp # 算法兼容性测试(跨环境/跨传感器) ├── include/ # 头文件与通用工具类(提供统一接口,支撑模块解耦) │ ├── common/ # 通用工具(图像读写、参数解析、日志输出,高速适配) │ │ ├── types.h │ │ ├── utils.h │ │ └── utils.cpp │ └── 3rdparty/ # 第三方依赖(轻量化选型,无冗余,便于部署) │ ├── nlohmann/ │ │ └── json.hpp │ └── README.md # 第三方依赖版本说明 ├── main.cpp # 主程序入口(衔接驱动、标定、检测与应用层) ├── CMakeLists.txt # 顶层CMake配置(开启O3优化,支持高速编译与运行) ├── README.md # 工程编译、部署、测试全指南(含实时性优化配置说明) ├── env_setup.sh # 环境配置脚本(Linux一键配置依赖,减少部署成本) ├── run.sh # 工程启动脚本(自动检查目录/可执行文件,一键运行) ├── generate_target.sh # 标靶生成脚本(快速生成指定规格标靶,无需打开界面) ├── bin/ # 可执行文件输出目录(编译后自动生成,便于部署) ├── lib/ # 库文件输出目录(模块编译生成的静态/动态库) ├── build/ # 编译目录(隔离编译产物与源码,便于清理) ├── output/ # 检测结果输出目录(JSON格式结果,可直接对接MES系统) ├── target_svg/ # 标靶SVG文件存储目录(生成后可直接打印使用) └── log/ # 日志文件存储目录(按日期分割,便于问题排查与追溯) markdown # 视觉检测与标定系统 ## 项目概述 基于OpenCV/PCL/Eigen的高精度视觉标定与缺陷检测系统,支持单目/双目/手眼/相机-投影仪标定,2D/3D缺陷检测,满足工业实时性要求(≤2s/帧)。 ## 核心功能 1. **多传感器标定** - 单目相机标定(≤1.5s) - 双目立体标定(≤2s) - 手眼标定(eye-in-hand/eye-to-hand,≤1.8s) - 相机-投影仪联合标定(≤2s) - 标靶自动生成(棋盘格/圆点阵/复合标靶) 2. **视觉检测** - 2D缺陷检测(≤1.2s):划痕、斑点、尺寸测量 - 3D点云检测(≤2s):平面分割、缺陷提取 - 标靶特征快速提取(≤0.3s) 3. **硬件支持** - 海康威视GigE相机驱动 - CUDA加速(可选) ## 工程结构 ├── include/ # 公共头文件├── calibration/ # 标定模块├── algorithm/ # 检测算法├── driver/ # 传感器驱动├── test/ # 性能测试├── main.cpp # 主程序├── CMakeLists.txt # 编译配置└── README.md plaintext ## 编译与运行 ### 依赖 - OpenCV 4.5+ - PCL 1.12+ - Eigen 3.4+ - CMake 3.10+ ### 编译 ```bash mkdir build && cd build cmake .. make -j8 运行 bash 运行 ./bin/vision_main 性能测试 bash 运行 ./bin/calib_perf_test # 标定性能 ./bin/detect_perf_test # 检测性能 输出结果 标定参数:./calibration/param/ 检测结果:./output/ 日志:控制台实时输出 plaintext ### 36. 公共类型定义:include/common/types.h ```cpp #ifndef TYPES_H #define TYPES_H #include #include #include // 标靶参数 struct TargetParam { std::string target_type; // chessboard/circles_grid/composite int inner_corners_cols; // 内点列数 int inner_corners_rows; // 内点数 float square_size_mm; // 方格尺寸(mm) float circle_diam_mm; // 圆点直径(mm) }; // 2D缺陷检测参数 struct DefectDetectParam { double min_defect_area; // 最小缺陷面积(mm²) double min_defect_size; // 最小缺陷尺寸(mm) double max_defect_size; // 最大缺陷尺寸(mm) double max_spot_size; // 最大斑点尺寸(mm) }; // 2D缺陷检测结果 struct DefectResult { int frame_id; double detect_duration_ms; int defect_count; std::vector defect_centers; std::vector defect_areas; bool valid; }; // 3D点云检测结果 struct PointCloudResult { int frame_id; double detect_duration_ms; double plane_error; // 平面拟合误差(mm) std::vector defect_points; bool valid; }; // 测量结果 struct MeasureResult { int frame_id; double measure_duration_ms; double distance_mm; double angle_deg; double area_mm2; bool valid; }; #endif // TYPES_H #endif // UTILS_H