📋 《AIDI视觉检测模块技术开发需求文档》
- 项目概述
项目名称:海康VM 4.3.0 AIDI检测模块
目标平台:Windows x64, VisionMaster 4.3.0
开发语言:C++
开发工具:Visual Studio 2019
核心功能:加载阿丘科技AIDI模型,实现图像分割与分类检测
- 模块技术规格
2.1 输入输出接口
// 输入接口
INPUT:
- Image: 图像数据 (BGR8格式)
- ModelPath: 模型路径 (全局变量)
// 输出接口
OUTPUT:
- ResultImage: 检测结果图 (带可视化)
- SegmentationMask: 分割掩码图
- DefectProbability: 缺陷概率值
- Status: OK/NG状态
2.2 参数配置界面
【基本参数区域】
□ 输入源选择 [下拉框:快速匹配/全局变量/外部通讯]
【运行参数区域】
□ 模型路径 [全局变量选择器]
□ 最小分数 [滑动条,0.1步进,0-1范围]
□ 推理模式 [下拉框:快速启动/极速推理/高精度极速推理]
□ 推理设备 [下拉框:CPU/GPU0/GPU1]
【结果显示区域】
□ 图像显示 [检测区域高亮]
□ OK/NG状态 [颜色可配置]
- 模型文件格式支持
支持的AIDI模型结构:
moxing/
└── Segment_0/
└── model/
└── V1/
├── dataset_info.json
├── model.aqbin # 主要模型文件
├── recorder.json
├── test.json
└── train.json
- 核心功能要求
4.1 模型加载与推理
class AIDIEngine {
public:
bool LoadModel(const std::string& model_path);
bool Inference(const cv::Mat& input_image,
cv::Mat& segmentation_result,
std::vector<float>& class_probabilities);
std::string GetErrorMsg() const;
private:
// AIDI推理引擎实例
// 模型配置信息
// 预处理参数
};
4.2 授权管理模块
class LicenseManager {
public:
bool CheckAuthorization(); // 验证授权
std::string GetMachineCode(); // 生成机器码
bool ActivateLicense(const std::string& license_file); // 激活授权
int GetRemainingDays(); // 获取剩余天数
private:
// 硬件指纹生成 (MAC+硬盘序列号+CPU ID)
// 时间验证逻辑
// 数字签名验证
};
- 性能指标
- 推理速度:< 200ms (CPU), < 50ms (GPU)
- 内存占用:< 1GB
- 支持分辨率:最高 4096×4096
- 模型加载时间:< 3秒
- 依赖库要求
必需依赖:
- 海康VM 4.3.0 SDK (ModuleBaseLib.lib)
- OpenCV 4.5.1+ (图像处理)
- ONNX Runtime 1.14+ (推理引擎)
- AIDI推理SDK (阿丘科技提供)
可选依赖:
- CUDA 11.0+ (GPU加速)
- cuDNN 8.0+ (深度学习加速)
- 开发交付物
【源代码】
✅ AIDI_Module.h/cpp - 主模块类
✅ LicenseManager.h/cpp - 授权管理
✅ AIDIEngine.h/cpp - 推理引擎
✅ ModuleEntry.cpp - DLL入口点
【编译输出】
✅ AIDI_Module.dll - 主模块文件
✅ 依赖库集合 - 所有运行时库
【测试材料】
✅ 测试工程.vmproj - 海康VM测试工程
✅ 样本模型文件 - 用于功能验证
✅ 测试图像集 - 功能测试用例
- 授权系统设计
// 授权文件格式 (.lic)
struct LicenseInfo {
std::string device_id; // 设备指纹
std::string company_name; // 客户名称
std::string issue_date; // 签发日期
std::string expire_date; // 到期日期
std::string license_type; // 授权类型
std::string signature; // 数字签名
};
// 授权状态
enum LicenseStatus {
VALID, // 有效
EXPIRED, // 已过期
INVALID_DEVICE, // 设备不匹配
TAMPERED // 文件篡改
};
- 错误处理与日志
// 错误代码定义
enum ErrorCode {
SUCCESS = 0,
ERROR_MODEL_LOAD_FAILED,
ERROR_INFERENCE_FAILED,
ERROR_LICENSE_INVALID,
ERROR_IMAGE_FORMAT,
ERROR_GPU_NOT_AVAILABLE
};
// 日志输出
void LogInfo(const std::string& message);
void LogError(const std::string& message);
void LogDebug(const std::string& message);
- 测试验证要求
功能测试:
✅ 模型加载正确性
✅ 推理准确性验证
✅ 授权系统正常工作
✅ 内存泄漏检测
✅ 多线程安全性
性能测试:
✅ 推理速度基准测试
✅ 内存占用监控
✅ 长时间运行稳定性
✅ 多模型切换测试
🚀 给开发者的额外说明
技术难点重点:
- AIDI模型格式解析 - 需要阿丘科技SDK支持
- 海康VM模块接口 - 严格遵循IMV_Module规范
- 授权系统安全性 - 防止破解和篡改
- 多设备兼容性 - 不同GPU环境的适配
开发优先级:
- 基础推理功能
- VM模块接口集成
- 授权管