云计算百科
云计算领域专业知识百科平台

【HALCON工业视觉应用探索】3. C# + Halcon工业零件分类系统:基于迁移学习的快速部署方案

摘要:针对汽车零件分拣中心面临的零件反光、叠放导致传统识别失效及新零件频繁增加的痛点,本文提出基于C#与Halcon 24.11深度学习模块的工业零件分类系统。该系统采用迁移学习方案,以预训练ResNet18为基础模型,通过虚拟数据生成、模型训练、实时推理三步实现零件分类。实验室测试显示,在每类300张虚拟训练样本、50张真实测试样本的条件下,训练时间7分38秒,推理速度83ms/帧,准确率达92.7%。文中详细阐述硬件选型、算法原理、完整代码实现及工业落地挑战(如叠放识别、新零件导入)的应对策略,提供可复现的虚拟数据集生成工具与参数配置文件,为工程师提供从方案设计到快速部署的全流程参考。


优质专栏欢迎订阅!

【DeepSeek深度应用】【Python高阶开发:AI自动化与数据工程实战】 【机器视觉:C# + HALCON】【大模型微调实战:平民级微调技术全解】 【人工智能之深度学习】【AI 赋能:Python 人工智能应用实战】 【AI工程化落地与YOLOv8/v9实战】【C#工业上位机高级应用:高并发通信+性能优化】 【Java生产级避坑指南:高并发+性能调优终极实战】【Coze搞钱实战:零代码打造吸金AI助手】


在这里插入图片描述


文章目录

  • 【HALCON工业视觉应用探索】3. C# + Halcon工业零件分类系统:基于迁移学习的快速部署方案
    • 关键词
    • 一、背景:工业零件分类的痛点与技术需求
      • 1.1 行业现状与挑战
        • 1.1.1 识别稳定性差
        • 1.1.2 扩展性不足
        • 1.1.3 效率瓶颈
      • 1.2 技术需求与指标
      • 1.3 迁移学习的技术优势
        • 1.3.1 特征提取能力强
        • 1.3.2 样本需求少
        • 1.3.3 扩展性好
    • 二、核心概念与技术原理
      • 2.1 迁移学习基础
        • 2.1.1 定义与原理
        • 2.1.2 模型微调策略
      • 2.2 深度学习模型架构
        • 2.2.1 ResNet18结构
        • 2.2.2 Halcon深度学习模块
      • 2.3 图像预处理技术
        • 2.3.1 光照归一化
        • 2.3.2 尺寸调整
        • 2.3.3 数据增强
      • 2.4 工业相机与光源选型
        • 2.4.1 相机参数
        • 2.4.2 光源配置
    • 三、系统设计与硬件架构
      • 3.1 系统总体架构
      • 3.2 硬件系统配置
        • 3.2.1 核心设备清单
        • 3.2.2 硬件连接图
      • 3.3 软件环境配置
        • 3.3.1 开发环境
        • 3.3.2 运行环境部署
    • 四、虚拟数据集生成与标注
      • 4.1 虚拟数据生成的必要性
      • 4.2 零件模型构建
        • 4.2.1 基础形状设计
        • 4.2.2 自定义齿轮生成算子
      • 4.3 虚拟图像生成完整实现
        • 4.3.1 生成参数配置
        • 4.3.2 图像生成核心函数
      • 4.4 数据集组织与生成
        • 4.4.1 数据集目录结构
        • 4.4.2 批量生成代码
      • 4.5 数据集质量评估
        • 4.5.1 多样性评估
        • 4.5.2 逼真度评估
        • 4.5.3 评估代码实现
    • 五、基于迁移学习的模型训练
      • 5.1 模型选择与配置
        • 5.1.1 Halcon预训练模型对比
        • 5.1.2 训练参数配置
      • 5.2 数据集加载与预处理
        • 5.2.1 数据集读取(Halcon接口)
        • 5.2.2 数据增强配置
      • 5.3 模型训练完整流程
        • 5.3.1 训练代码实现
        • 5.3.2 训练过程解析
        • 5.3.3 训练结果可视化
      • 5.4 模型评估与优化
        • 5.4.1 模型评估指标
        • 5.4.2 评估代码实现
        • 5.4.3 模型优化策略
    • 六、实时分类系统的实现与部署
      • 6.1 系统架构设计
      • 6.2 相机采集与预处理
        • 6.2.1 相机参数配置
        • 6.2.2 相机连接与图像采集
        • 6.2.3 图像预处理实现
      • 6.3 实时推理与结果处理
        • 6.3.1 推理引擎实现
        • 6.3.2 结果过滤与后处理
      • 6.4 系统集成与主程序
      • 6.5 模型部署优化
        • 6.5.1 模型量化
        • 6.5.2 边缘设备部署
    • 七、工业落地挑战与应对方案
      • 7.1 挑战1:新零件快速导入
        • 7.1.1 问题分析
        • 7.1.2 增量训练解决方案
        • 7.1.3 新零件导入流程
      • 7.2 挑战2:叠放零件识别
        • 7.2.1 问题分析
        • 7.2.2 基于目标检测的解决方案
      • 7.3 挑战3:强反光与光照变化
        • 7.3.1 问题分析
        • 7.3.2 光学与算法结合的解决方案
      • 7.4 挑战4:系统稳定性与维护
        • 7.4.1 问题分析
        • 7.4.2 稳定性保障方案
    • 八、代码结构与工程工具
      • 8.1 代码结构
      • 8.2 工程实用工具
        • 8.2.1 参数调优工具
        • 8.2.2 日志分析工具
        • 8.2.3 故障诊断手册
    • 九、工程师行动指南:从评估到落地的实施步骤
      • 9.1 可行性评估清单
        • 9.1.1 技术可行性评估
        • 9.1.2 经济可行性评估
        • 9.1.3 操作可行性评估
      • 9.2 分阶段实施计划
        • 9.2.1 第一阶段:准备与验证(2周)
        • 9.2.2 第二阶段:开发与测试(3周)
        • 9.2.3 第三阶段:现场部署与调试(2周)
        • 9.2.4 第四阶段:验收与交付(1周)
      • 9.3 风险规避与应对措施
    • 十、总结与展望
      • 10.1 核心结论
      • 10.2 行业价值
      • 10.3 未来发展方向
    • 附录:术语表
    • 投票环节

【HALCON工业视觉应用探索】3. C# + Halcon工业零件分类系统:基于迁移学习的快速部署方案


关键词

工业零件分类;迁移学习;C#编程;Halcon深度学习;快速部署;虚拟数据集;机器视觉


一、背景:工业零件分类的痛点与技术需求

1.1 行业现状与挑战

在汽车制造、机械加工等领域,零件的自动化分类是生产物流环节的关键工序。某虚拟汽车零件分拣中心的调研数据显示,其日常需处理6类核心零件(螺栓、垫片、弹簧、齿轮、轴承、外壳),传统分类方式存在三大痛点:

1.1.1 识别稳定性差
  • 反光干扰:金属零件表面粗糙度差异大(Ra0.8-Ra6.3),在环形光源照射下易产生高光区域,导致特征丢失。虚拟测试显示,未处理反光时传统模板匹配的准确率仅68%。
  • 叠放问题:零件在输送带上的无序叠放率达30%,传统OCR或形状匹配算法无法区分重叠区域的特征,误分类率高达45%。
  • 环境波动:车间温度变化(15-35℃)导致相机镜头轻微形变,光照强度波动(±20%)影响图像一致性,分类准确率随工作时间下降5-8%。
1.1.2 扩展性不足
  • 新零件导入周期长:传统算法需重新设计特征提取规则,平均耗时3-5天,无法满足每月新增2-3种零件的需求。
  • 参数调整复杂:每种零件需单独优化光照、阈值等参数,维护成本高,某案例显示维护工程师日均处理12起参数调整请求。
1.1.3 效率瓶颈
  • 人工分拣效率:熟练工人单小时处理约800件,单日工作8小时极限约6000件,且错误率随疲劳度上升(从1%升至5%)。
  • 传统自动化系统:基于机器视觉的固定算法系统处理速度约1000件/小时,但受限于上述稳定性问题,实际有效 throughput 仅700件/小时。

1.2 技术需求与指标

根据虚拟工厂的生产要求,零件分类系统需满足以下核心指标:

指标
要求值
说明
分类准确率 >95% 测试集(真实拍摄图像)中正确分类的比例
推理速度 <100ms/帧 单张图像从输入到输出分类结果的时间
新零件部署时间 <1工作日 从采集样本到模型上线的全流程时间
硬件成本 <5万元 不含机器人的视觉系统成本
环境适应性 温度10-40℃,光照波动±30% 满足车间环境要求

1.3 迁移学习的技术优势

针对上述需求,迁移学习相比传统算法具有显著优势:

1.3.1 特征提取能力强

深度学习模型(如ResNet)通过多层卷积自动学习零件的层次化特征,从低级的边缘、纹理到高级的形状、结构,无需人工设计特征算子。测试显示,ResNet18对金属零件的特征提取能力优于传统SIFT+SVM方法,尤其在反光场景下准确率提升23%。

1.3.2 样本需求少

迁移学习利用预训练模型在大规模图像上学习的通用特征,针对特定任务只需少量标注样本(每类100-300张)即可达到较高精度,解决工业场景中标注数据稀缺的问题。相比之下,从零训练的深度学习模型需每类1000+样本,传统算法需大量人工设计规则。

1.3.3 扩展性好

通过增量训练,新零件的模型更新可复用原有模型的特征提取层,仅需训练分类层,大幅缩短部署时间。虚拟测试显示,新增一类零件的模型训练时间可控制在30分钟内。

二、核心概念与技术原理

2.1 迁移学习基础

2.1.1 定义与原理

迁移学习是一种机器学习方法,旨在将从一个任务(源任务)学习到的知识应用于另一个相关任务(目标任务)。在工业零件分类中:

  • 源任务:ImageNet数据集上的1000类图像分类
  • 目标任务:6类工业零件的分类

其核心思想是:预训练模型在源任务上学习的通用视觉特征(如边缘检测、纹理识别)可迁移到目标任务,只需微调顶层网络适应特定零件的特征。

2.1.2 模型微调策略

在Halcon 24.11中,基于预训练ResNet18的微调策略如下:

  • 冻结底层卷积层(通常前10层):保留通用特征提取能力
  • 解冻高层卷积层和分类层:适应工业零件的特定特征
  • 采用小学习率(1e-4):避免破坏预训练的有用特征
  • 数学上,微调过程是最小化损失函数: L ( θ ) = 1 N ∑ i = 1 N CrossEntropy ( f ( x i ; θ ) , y i ) + λ ∥ θ ∥ 2 L(\\theta) = \\frac{1}{N} \\sum_{i=1}^N \\text{CrossEntropy}(f(x_i; \\theta), y_i) + \\lambda \\|\\theta\\|^2 L(θ)=N1i=1NCrossEntropy(f(xi;θ),yi)+λθ2 其中 θ \\theta θ为可训练参数, λ \\lambda λ为正则化系数,防止过拟合。

    2.2 深度学习模型架构

    2.2.1 ResNet18结构

    ResNet18是一种深度残差网络,包含18层卷积层,通过残差连接解决深层网络的梯度消失问题。其结构如下:

    #mermaid-svg-EugSlaZI8DzhiRNt {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EugSlaZI8DzhiRNt .error-icon{fill:#552222;}#mermaid-svg-EugSlaZI8DzhiRNt .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-EugSlaZI8DzhiRNt .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-EugSlaZI8DzhiRNt .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-EugSlaZI8DzhiRNt .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-EugSlaZI8DzhiRNt .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-EugSlaZI8DzhiRNt .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-EugSlaZI8DzhiRNt .marker{fill:#333333;stroke:#333333;}#mermaid-svg-EugSlaZI8DzhiRNt .marker.cross{stroke:#333333;}#mermaid-svg-EugSlaZI8DzhiRNt svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-EugSlaZI8DzhiRNt .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-EugSlaZI8DzhiRNt .cluster-label text{fill:#333;}#mermaid-svg-EugSlaZI8DzhiRNt .cluster-label span{color:#333;}#mermaid-svg-EugSlaZI8DzhiRNt .label text,#mermaid-svg-EugSlaZI8DzhiRNt span{fill:#333;color:#333;}#mermaid-svg-EugSlaZI8DzhiRNt .node rect,#mermaid-svg-EugSlaZI8DzhiRNt .node circle,#mermaid-svg-EugSlaZI8DzhiRNt .node ellipse,#mermaid-svg-EugSlaZI8DzhiRNt .node polygon,#mermaid-svg-EugSlaZI8DzhiRNt .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-EugSlaZI8DzhiRNt .node .label{text-align:center;}#mermaid-svg-EugSlaZI8DzhiRNt .node.clickable{cursor:pointer;}#mermaid-svg-EugSlaZI8DzhiRNt .arrowheadPath{fill:#333333;}#mermaid-svg-EugSlaZI8DzhiRNt .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-EugSlaZI8DzhiRNt .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-EugSlaZI8DzhiRNt .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-EugSlaZI8DzhiRNt .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-EugSlaZI8DzhiRNt .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-EugSlaZI8DzhiRNt .cluster text{fill:#333;}#mermaid-svg-EugSlaZI8DzhiRNt .cluster span{color:#333;}#mermaid-svg-EugSlaZI8DzhiRNt div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-EugSlaZI8DzhiRNt :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    输入图像(224x224x3)

    卷积层1(7×7, 64)

    最大池化(3×3, 步长2)

    残差块1(2层)

    残差块2(2层)

    残差块3(2层)

    残差块4(2层)

    全局平均池化

    全连接层(1000类)

    softmax输出

    在零件分类任务中,替换最后的全连接层为6类输出: f ( x ) = softmax ( W 2 ⋅ ReLU ( W 1 ⋅ x + b 1 ) + b 2 ) f(x) = \\text{softmax}(W_2 \\cdot \\text{ReLU}(W_1 \\cdot x + b_1) + b_2) f(x)=softmax(W2ReLU(W1x+b1)+b2) 其中 W 1 , b 1 W_1, b_1 W1,b1为中间层参数, W 2 , b 2 W_2, b_2 W2,b2为分类层参数。

    2.2.2 Halcon深度学习模块

    Halcon 24.11的深度学习模块提供完整的模型训练与推理接口:

    • CreateDlModelClassification:创建分类模型
    • SetDlModelParam:配置模型参数(学习率、批大小等)
    • TrainDlModel:模型训练
    • ApplyDlModel:推理预测

    这些接口封装了底层GPU加速(CUDA)和自动微分计算,简化了深度学习在工业视觉中的应用。

    2.3 图像预处理技术

    2.3.1 光照归一化

    工业图像的光照变化会影响模型稳定性,预处理步骤包括:

  • Gamma校正:调整图像对比度,公式为 I ′ = I γ I\’ = I^\\gamma I=Iγ γ \\gamma γ通常取0.5-2.0
  • 均值减法:去除图像均值, I ′ = I − μ I\’ = I – \\mu I=Iμ μ \\mu μ为训练集图像均值
  • 对比度归一化: I ′ = I − μ σ I\’ = \\frac{I – \\mu}{\\sigma} I=σIμ σ \\sigma σ为标准差
  • 2.3.2 尺寸调整

    ResNet18要求输入图像尺寸为224×224,需对采集的图像(如2448×2048)进行缩放:

    • 缩放方法:双线性插值(平衡速度与质量)
    • 保持比例:先裁剪至正方形区域,再缩放至目标尺寸,避免零件变形
    2.3.3 数据增强

    为提高模型泛化能力,训练阶段采用数据增强:

    • 随机旋转(-15°至15°):模拟零件摆放角度变化
    • 随机缩放(0.8-1.2倍):模拟距离变化
    • 随机水平/垂直翻转:增加样本多样性
    • 随机亮度/对比度调整:模拟光照波动

    2.4 工业相机与光源选型

    2.4.1 相机参数
    参数
    推荐值
    原因
    分辨率 500万像素(2448×2048) 平衡细节与处理速度,单个零件至少占100×100像素
    帧率 >15fps 满足1000件/小时的处理需求(15fps≈54000件/小时)
    快门类型 全局快门 避免运动模糊(输送带速度通常1-2m/s)
    接口 GigE Vision 长距离传输(≤100m),工业级可靠性
    2.4.2 光源配置

    针对金属零件反光问题,采用组合光源:

    • 主光源:环形光源(波长650nm红光),倾斜45°照射,减少镜面反射
    • 辅助光源:同轴光源,提供均匀背景照明
    • 偏振片:安装在相机镜头前,消除特定方向的反光

    光源控制采用PWM调光,可通过软件实时调整亮度(10-100%)。

    三、系统设计与硬件架构

    3.1 系统总体架构

    系统采用\”图像采集→预处理→深度学习推理→分拣控制\”的四阶段架构,具体流程如下:

    #mermaid-svg-1HEbPMTJCaBCltJ8 {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .error-icon{fill:#552222;}#mermaid-svg-1HEbPMTJCaBCltJ8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-1HEbPMTJCaBCltJ8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .marker.cross{stroke:#333333;}#mermaid-svg-1HEbPMTJCaBCltJ8 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-1HEbPMTJCaBCltJ8 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .cluster-label text{fill:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .cluster-label span{color:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .label text,#mermaid-svg-1HEbPMTJCaBCltJ8 span{fill:#333;color:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .node rect,#mermaid-svg-1HEbPMTJCaBCltJ8 .node circle,#mermaid-svg-1HEbPMTJCaBCltJ8 .node ellipse,#mermaid-svg-1HEbPMTJCaBCltJ8 .node polygon,#mermaid-svg-1HEbPMTJCaBCltJ8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-1HEbPMTJCaBCltJ8 .node .label{text-align:center;}#mermaid-svg-1HEbPMTJCaBCltJ8 .node.clickable{cursor:pointer;}#mermaid-svg-1HEbPMTJCaBCltJ8 .arrowheadPath{fill:#333333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-1HEbPMTJCaBCltJ8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-1HEbPMTJCaBCltJ8 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-1HEbPMTJCaBCltJ8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-1HEbPMTJCaBCltJ8 .cluster text{fill:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 .cluster span{color:#333;}#mermaid-svg-1HEbPMTJCaBCltJ8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-1HEbPMTJCaBCltJ8 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    零件输送

    触发相机

    图像采集

    图像预处理

    深度学习推理

    分类结果

    PLC控制分拣

    完成

    异常处理

    各阶段功能说明:

  • 图像采集:当传感器检测到零件时,触发工业相机拍摄,图像通过GigE接口传输至工控机
  • 预处理:对原始图像进行光照归一化、尺寸调整等操作,适配模型输入要求
  • 深度学习推理:调用训练好的模型预测零件类别,输出分类结果及置信度
  • 分拣控制:将分类结果通过Modbus协议发送至PLC,控制机器人或气动分拣装置
  • 3.2 硬件系统配置

    3.2.1 核心设备清单
    设备类型
    推荐型号
    关键参数
    价格(参考)
    工业相机 海康威视MV-CE050-10GM 500万像素,全局快门,GigE 约4500元
    镜头 Computar M1224-MPW2 12mm焦距,2/3\”靶面 约1800元
    光源 嘉励CLS-120RD 环形红光+偏振片,24V 约1200元
    工控机 研华ARK-3520 i5-10210U,8GB内存,256GB SSD 约6500元
    GPU(可选) NVIDIA GTX 1650 4GB显存,支持CUDA 约1500元
    传感器 欧姆龙E3Z-LS61 光电传感器,检测距离5-30mm 约300元
    总计 约14800元
    3.2.2 硬件连接图

    #mermaid-svg-OBYZh7t43A2bb71G {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OBYZh7t43A2bb71G .error-icon{fill:#552222;}#mermaid-svg-OBYZh7t43A2bb71G .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OBYZh7t43A2bb71G .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-OBYZh7t43A2bb71G .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OBYZh7t43A2bb71G .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OBYZh7t43A2bb71G .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OBYZh7t43A2bb71G .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OBYZh7t43A2bb71G .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OBYZh7t43A2bb71G .marker.cross{stroke:#333333;}#mermaid-svg-OBYZh7t43A2bb71G svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OBYZh7t43A2bb71G .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-OBYZh7t43A2bb71G .cluster-label text{fill:#333;}#mermaid-svg-OBYZh7t43A2bb71G .cluster-label span{color:#333;}#mermaid-svg-OBYZh7t43A2bb71G .label text,#mermaid-svg-OBYZh7t43A2bb71G span{fill:#333;color:#333;}#mermaid-svg-OBYZh7t43A2bb71G .node rect,#mermaid-svg-OBYZh7t43A2bb71G .node circle,#mermaid-svg-OBYZh7t43A2bb71G .node ellipse,#mermaid-svg-OBYZh7t43A2bb71G .node polygon,#mermaid-svg-OBYZh7t43A2bb71G .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OBYZh7t43A2bb71G .node .label{text-align:center;}#mermaid-svg-OBYZh7t43A2bb71G .node.clickable{cursor:pointer;}#mermaid-svg-OBYZh7t43A2bb71G .arrowheadPath{fill:#333333;}#mermaid-svg-OBYZh7t43A2bb71G .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OBYZh7t43A2bb71G .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OBYZh7t43A2bb71G .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-OBYZh7t43A2bb71G .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-OBYZh7t43A2bb71G .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OBYZh7t43A2bb71G .cluster text{fill:#333;}#mermaid-svg-OBYZh7t43A2bb71G .cluster span{color:#333;}#mermaid-svg-OBYZh7t43A2bb71G div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OBYZh7t43A2bb71G :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    工控机

    相机

    光源控制器

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【HALCON工业视觉应用探索】3. C# + Halcon工业零件分类系统:基于迁移学习的快速部署方案
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!