一种智能识别PCB图纸自动计价系统和方法
文献发布时间:2023-06-19 09:35:27
技术领域
本发明涉及PCB生产制造领域,具体为一种智能识别PCB图纸自动计价系统和方法。
背景技术
Gerber文件是一款计算机软件,是线路板行业软件描述线路板(线路层、阻焊层、字符层等)图像及钻、铣数据的文档格式集合,是线路板行业图像转换的标准格式。Gerber文件是所有电路设计软件都可以产生的文件,在电子组装行业又称为模板文件,在PCB制造业又称为光绘文件。是客户订购电路板(PCB)的基础文件。
客户咨询PCB生产计价的时候,前端销售需要根据客户的Gerber文件,针对PCB参数等信息进行计价,在实际销售的过程中,咨询量远大于成交量,且客户的PCB往往是定制化的,每个咨询单的区别较大;前端销售人员的专业知识往往欠缺,需要后端工程师辅助计价;因此前端的咨询计价工作需要大量的人力物力,无形的提高了人工成本。
现有技术并没有针对PCB制造业咨询的自动计价软件,无法解决行业靠劳动密集型人工审核Gerber文件完成计价的痛点问题。
发明内容
本发明的发明目的在于提供一种智能识别PCB图纸自动计价系统和方法,用于自动识别Gerber文件内的PCB参数信息,并且根据PCB参数信息进行汇总计价,以克服PCB制造业前端对接客户咨询人工成本高的问题。
本发明解决上述技术问题所采取的技术方案如下:
一种智能识别PCB图纸自动计价系统,包括Gerber数据预处理模块、OCR文字提取模块和价格计算模块;
所述Gerber数据预处理模块用于对用户上传的Gerber文件进行预处理,将Gerber文件转换成图片格式的PCB图纸;
所述OCR文字提取模块通过PCB图纸识别模型识别PCB图纸的文字,用于提取PCB参数信息;
所述价格计算模块用于PCB计价,根据OCR文字提取模块提取的PCB参数信息,一一对应价格数据,汇总所有PCB参数的价格得出计价;
其中,PCB图纸识别模型包括文字检测模型和文字识别模型,所述文字检测模型用于定位文字位置,所述文字识别模型用于识别文字内容;
所述价格计算模块包括价格数据库,所述价格数据库存储有与PCB参数信息具有唯一映射关系的具体价格数值。
进一步的,所述OCR文字提取模块包括web端和GPU服务器端。
进一步的,所述系统用于PCB生产计价。
一种智能识别PCB图纸自动计价方法,应用智能识别PCB图纸自动计价系统,包括以下步骤:
S1、通过浏览器打开网站;
S2、上传Gerber文件,转换成图片格式的PCB图纸;
S3、选择web端或GPU服务器端运行PCB图纸识别模型,识别PCB图纸的文字提取PCB参数信息;
S4、手动添加生产参数和运输参数,完善PCB生产的信息;
S5、根据PCB参数信息、生产参数和运输参数,一一对应价格数值,汇总所有的价格数值,得出计价。
进一步的,所述步骤S1之前还包括准备阶段S0,所述准备阶段S0包括以下子步骤:
S0a、收集大量Gerber转化成图片数据,对图片数据进行随机裁剪,人工标注图片位置和文本信息,制作训练集和测试集;
S0b、通过卷积神经网络和深度学习框架制作分别制作文字检测模型和文字识别模型,文字检测模型和文字识别模型组成PCB图纸识别模型;
S0c、优化PCB图纸识别模型,去除冗余,得到轻量化的PCB图纸识别模型;
S0d、将轻量化的PCB图纸识别模型导入web端,将PCB图纸识别模型导入GPU服务器端。
进一步的,所述步骤S0a还包括:
对gerber数据进行预处理,转成单张JPG格式的图片数据;
收集图片数据,人工挑选,去掉图像模糊、格式损坏等质量不好的图片;
对图片进行随机裁剪,裁剪时保证每张裁剪的图片中存在文字,边界处的文字要超过80%的文字高度;
对经过裁剪的图片进行人工标注,文字位置采用矩形框的坐标表示,文字文本信息需要手动输入;
将标注之后的数据划分为:文字位置训练集和文字位置测试集、文本信息训练集和文本信息测试集。
进一步的,所述步骤S0b还包括:
使用CTPN文字定位网络在文字位置训练集上进行精细化训练,并使用tensorflow框架搭建卷积神经网络模型,按批次读取固定数量的裁剪图片及其对应的文字位置信息,进行迭代训练,制作文字检测模型;
使用CRNN文字识别网络在文本信息训练集上进行精细化训练,并使用pytorch框架搭建卷积神经网络模型,按批次读取固定数量的裁剪图片及其对应的文字文本信息,在保持图片比例不变的情况下将短边放缩到S像素,进行多核并行迭代训练,制作文字识别模型;
将测试完成的文字检测模型和文字识别模型组合起来,形成PCB图纸识别模型。
进一步的,所述步骤S0c还包括:
设计稀疏化模型训练的损失函数;
对文字检测模型和文字识别模型分别按照剪枝比例进行裁剪,去掉冗余的网络层参数
对裁剪之后的识别模型进行精细化训练;
迭代寻找最优剪枝比例,使得剪枝之后的模型可以获得与原模型同样的精度;
输出轻量化的文字检测模型和轻量化的文字识别模型。
进一步的,所述步骤S0还包括子步骤S0e:
设置价格数据库,分别对于PCB参数信息、生产参数和运输参数,设置一一对应的价格数值。
进一步的,所述方法用于PCB生产前计价。
应用本发明的技术方案,先将Gerber文件转化为图片格式,是通过OCR视觉算法识别的基础前提;并且PCB图纸识别模型由文字检测模型和文字识别模型组成,针对文字的识别定位和文本内容识别分别使用不同的卷积神经网络构建,前期通过人工大量的采集图片数据制作训练集和测试集,对图片数据进行切割,构建大量的真实文字标签,通过精细化的训练提高PCB图纸识别模型的文字的定位精度和识别精度,避免人工的二次矫正,是实现自动化的识别的重要前提,避免了工程师人工审查图纸,提取信息的工作量;针对不同的硬件条件,提出web端和GPU服务器端配合的双识别模式,首先GPU服务器上导入完整的PCB图纸识别模型,其特点为数据处理精度高,抗干扰能力强,逻辑完整,但是数据计算量较大,且远程传输会出现延迟和卡顿的情况,同时针对PC端体积小硬件较差的实际问题,对PCB图纸识别模型进行轻量化处理,对模型按照剪枝比例进行裁剪,去掉冗余的网络层参数,较少计算量,将轻量化后的PCB图纸识别模型导入web端,用户通过在浏览器的网页上即可操作使用,通过本地的CPU完成运算,无需额外的下载安装软件;通过预先将市场的价格录入系统,针对PCB参数信息形成唯一的映射关系,若市场价发生变化,工程师调整价格数据库即可;当客户在询价咨询时,将Gerber文件导入网页即可,系统自动识别Gerber文件内的PCB参数信息并给出参考计价,极大的节约了前端客服和后端工程师的工作量,减少PCB生产厂的人工成本。
发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。
图1是本发明一种智能识别PCB图纸自动计价系统的模块框图;
图2是本发明一种智能识别PCB图纸自动计价方法流程图;
图3是本发明一种智能识别PCB图纸自动计价方法的准备阶段流程图;
图4是本发明一种智能识别PCB图纸自动计价的PCB图纸识别模型轻量化流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1-4所示,一种智能识别PCB图纸自动计价系统,包括Gerber数据预处理模块、OCR文字提取模块和价格计算模块;所述Gerber数据预处理模块用于对用户上传的Gerber文件进行预处理,将Gerber文件转换成图片格式的PCB图纸;所述OCR文字提取模块通过PCB图纸识别模型识别PCB图纸的文字,用于提取PCB参数信息;所述价格计算模块用于PCB计价,根据OCR文字提取模块提取的PCB参数信息,一一对应价格数据,汇总所有PCB参数的价格得出计价;其中,PCB图纸识别模型包括文字检测模型和文字识别模型,所述文字检测模型用于定位文字位置,所述文字识别模型用于识别文字内容;所述价格计算模块包括价格数据库,所述价格数据库存储有与PCB参数信息具有唯一映射关系的具体价格数值。
Gerber数据预处理模块将Gerber文件转成图片格式,是通过视觉算法识别的基础前提;Gerber文件内容分两部分,一部分为PCB板的设计图纸,一部分为文字解析,对设计图纸进行注解,将Gerber文件转成图片格式后,OCR文字提取模块再通过PCB图纸识别模型进行识别,提取PCB参数信息,首先通过文字检测模型识别PCB图纸的文字位置,对文字进行定位;然后再通过文字识别模型对文字的内容进行识别;最后根据识别出的PCB参数信息,在价格数据库找到对应的价格,对所有的价格进行汇总即得到了PCB生产的计价。
本实施案例中,所述OCR文字提取模块包括web端和GPU服务器端。对于文字的识别分为两步,先定位识别文字位置,再对指定内容进行文字内容识别,避免了不必要的计算量,减少了噪点的影响,提高了PCB图纸识别模型的识别速度和精度。
本实施案例中,所述PCB信息提取模块包括PC端处理模块和GPU服务器处理模块。系统的运行对硬件载体有一定的要求,针对硬件参差不齐的特性,采用web端和GPU服务器端配合的双识别模式;GPU服务器上导入完整的PCB图纸识别模型,其特点为数据处理精度高,抗干扰能力强,逻辑完整,但是数据计算量较大,且远程传输会出现延迟和卡顿的情况;针对PC端体积小硬件较差的实际问题,对PCB图纸识别模型进行轻量化处理,对模型按照剪枝比例进行裁剪,去掉冗余的网络层参数,较少计算量,将轻量化后的PCB图纸识别模型导入web端,用户通过在浏览器的网页上,后台自动下载模型插件缓存,直接可在网页操作使用,通过本地的CPU完成运算,无需额外的下载安装软件;通过轻量化运输和远程服务两个方法,减少PC端的硬件要求,减少推广成本。
本实施案例中,所述系统用于PCB生产计价。本系统的目的是自动识别Gerber文件内的PCB参数信息,并且根据PCB参数信息进行汇总计价,以克服PCB制造业前端对接客户咨询人工成本高的问题。
一种智能识别PCB图纸自动计价方法,应用智能识别PCB图纸自动计价系统,包括以下步骤:
S1、通过浏览器打开网站;
S2、上传Gerber文件,转换成图片格式的PCB图纸;
S3、选择web端或GPU服务器端运行PCB图纸识别模型,识别PCB图纸的文字提取PCB参数信息;
S4、手动添加生产参数和运输参数,完善PCB生产的信息;
S5、根据PCB参数信息、生产参数和运输参数,一一对应价格数值,汇总所有的价格数值,得出计价。
计价主要分三个阶段,第一阶段为准备阶段,将Gerber文件转换成图片格式的PCB图纸;第二阶段导入需要识别的PCB图纸,通过入PCB图纸识别模型进行文字定位和文字识别,提取PCB参数信息,所述参数信息包括材料、层数、阻焊层、板层、厚度和铜孔数量等,除了PCB图纸中会注释的PCB参数信息需要考虑,还可以手动勾选加工交付周期、拼板设计方式、运输方式和运输距离等影响计价的信息;第三阶段根据PCB参数信息、生产参数和运输参数,在价格数据库中找到唯一对应的价格数据,并进行汇总得到计价。
本实施案例中,所述步骤S1之前还包括准备阶段S0,所述准备阶段S0包括以下子步骤:
S0a、收集大量Gerber转化成图片数据,对图片数据进行随机裁剪,人工标注图片位置和文本信息,制作训练集和测试集;
S0b、通过卷积神经网络和深度学习框架制作分别制作文字检测模型和文字识别模型,文字检测模型和文字识别模型组成PCB图纸识别模型;
S0c、优化PCB图纸识别模型,去除冗余,得到轻量化的PCB图纸识别模型;
S0d、将轻量化的PCB图纸识别模型导入web端,将PCB图纸识别模型导入GPU服务器端。
PCB图纸识别模型由文字检测模型和文字识别模型组成,针对文字的识别定位和文本内容识别分别使用不同的卷积神经网络构建,前期通过人工大量的采集图片数据制作训练集和测试集,对图片数据进行切割,构建大量的真实文字标签,通过精细化的训练提高PCB图纸识别模型的文字的定位精度和识别精度;在保证识别精度的前提下,对PCB图纸识别模型进行轻量化处理,导入web端,轻量化的PCB图纸识别模型计算量较小是通过浏览器操作的必要前提。
本实施案例中,所述步骤S0a还包括:使用node和REACT软件,将单个gerber数据转成SVG格式,然后再转成单张JPG格式,去掉图像模糊、格式损坏等质量不好的图片,获得M张质量较好的图片用于后续处理,对图片数据进行随机裁剪,分为包含一行文字的图片和包含多行多列文字的图片两种方式,在裁剪时保证每张裁剪的图片中存在文字,边界处的文字要超过80%的文字高度,最终获得N1和N2张经过裁剪之后并且符合要求的图片;利用labelme软件对N1/N2张经过裁剪的图片进行人工标注,文字位置采用矩形框的坐标表示,文字文本信息需要手动输入,文字间隔小于一个字符宽度的视为同一个文本框,区分大小写,全部采用英文的标点符号;将标注之后的数据划分为文字位置训练数据集、文字位置测试数据集、文本信息训练数据集和文本信息测试数据集,其中训练数据集与测试数据集的比例为9:1。
本实施案例中,所述步骤S0b还包括:使用CTPN文字定位网络在文字位置训练集上进行精细化训练,并使用tensorflow框架搭建卷积神经网络模型,按批次读取固定数量的裁剪图片及其对应的文字位置信息,进行迭代训练,制作文字检测模型;将上一步训练的模型在文字位置测试集上进行测试,文字定位准确率LP的计算公式为:
当LP达到某一阈值P1则满足要求,其中La是指测试数据中所有的矩形框数量,Lc是指文字位置预测正确的矩形框数量。
使用CRNN文字识别网络在文本信息训练集上进行精细化训练,并使用pytorch框架搭建卷积神经网络模型,按批次读取固定数量的裁剪图片及其对应的文字文本信息,在保持图片比例不变的情况下将短边放缩到S像素,进行多核并行迭代训练,制作文字识别模型;将上一步训练的模型在文本信息测试数据集上进行测试,文字识别准确率TP的计算公式为:
当TP达到某一阈值P2则满足要求,其中Ta是指测试数据中所有的字符数量,Tc是指文本信息识别正确的字符数量。
将测试完成的文字检测模型和文字识别模型组合起来,形成PCB图纸识别模型。
TensorFlow是Google开源的第二代用于数字计算的软件库。它是基于数据流图的处理框架,图中的节点表示数学运算,边表示运算节点之间的数据交互。TensorFlow从字面意义上来讲有两层含义,一个是Tensor,它代表的是节点之间传递的数据,通常这个数据是一个多维度矩阵或者一维向量;第二层意思Flow,指的是数据流,形象理解就是数据按照流的形式进入数据运算图的各个节点。TensorFlow是一个非常灵活的框架,它能够运行在个人电脑或者服务器的单个或多个CPU和GPU上,甚至是移动设备上。
其中,TensorFlow.js是Tensorflow的JavaScript版本,支持GPU硬件加速,可以运行在Node.js或浏览器环境中。它不但支持完全基于JavaScript从头开发、训练和部署模型,也可以用来运行已有的Python版Tensorflow模型,或者基于现有的模型进行继续训练。TensorFlow.js可以让我们直接在浏览器中加载Tensorflow,让用户立即通过本地的CPU/GPU资源进行我们所需要的机器学习运算,更灵活的进行AI应用的开发。浏览器中进行机器学习,相对比与服务器端来讲,不需要安装软件或驱动,打开浏览器即可使用;可以通过浏览器进行更加方便的人机交互;可以通过手机浏览器,调用手机硬件的各种传感器;用户的数据可以无需上传到服务器,在本地即可完成所需操作。
本实施案例中,所述步骤S0c还包括:设计稀疏化模型训练的损失函数;对PCB图纸识别模型按照剪枝比例进行裁剪,去掉冗余的网络层参数对裁剪之后的识别模型进行精细化训练;迭代寻找最优剪枝比例,使得剪枝之后的模型可以获得与原模型同样的精度;输出轻量文字检测模型和轻量文字识别模型。分别针对CTPN文字定位网络和CRNN文字识别网络,修改模型训练的损失函数,加入正则化项,按照上一模块的步骤进行训练,获得稀疏化之后的模型参数,得到相应的测试准确率为LP0或TP0;
设置剪枝比例R1,按照这一比例将上一步训练的模型参数中非常小的参数层裁剪掉;
将裁剪之后的模型在文字定位或者文字识别训练数据集上进行精细化训练,直到模型损失函数收敛为止;
将精细化训练之后的模型用在文字定位/文字识别测试集上进行测试,得到相应的测试准确率LP1或者TP1;
计算精细化训练前后准确率的差值delta,即|LP1-LP0|和|TP1-TP0|,根据阈值D来决定是否结束训练,若delta 所述步骤S0还包括子步骤S0e: 设置价格数据库,分别对于PCB参数信息、生产参数和运输参数,设置一一对应的价格数值;其中,PCB参数信息包括材料、层数、阻焊颜色、厚度、尺寸、铜厚、表面处理、线宽线距、孔数量和层压结构、可剥蓝胶、碳油、HDI、背钻孔、阻抗要求、压接孔、半孔、板边电镀、控深CNC、金手指、质量验收标准等参数信息;生产参数包括生产时间、拼板要求、订单数量等参数;运输参数包括运运输方式、运输距离、货代选择等参数。当通过OCR文字提取模块完成OCR识别PCB参数信息提取后,不会自动进入计算计价的步骤,此时还可以手动勾选加工交付周期、供应商品牌、运输方式和运输距离等影响计价的信息,等确认以后,再手动点击进入计算计价,使计价结果更加贴合现实情况,更加准确。 本实施案例中,所述方法用于PCB生产前计价。当客户在询价咨询时,将Gerber文件导入网页即可,系统自动识别Gerber文件内的PCB参数信息并给出参考计价,极大的节约了前端客服和后端工程师的工作量,减少PCB生产厂的人工成本。 最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种智能识别PCB图纸自动计价系统和方法
- 一种全自动切割机智能化图纸识别加工方法及系统