激光与光电子学进展, 2020, 57 (4): 041515, 网络出版: 2020-02-20   

基于改进Faster RCNN的马克杯缺陷检测方法 下载: 1394次

Mug Defect Detection Method Based on Improved Faster RCNN
作者单位
哈尔滨理工大学自动化学院, 黑龙江 哈尔滨 150080
摘要
Faster RCNN在小目标的检测方面准确度和鲁棒性性能不够理想。为此,提出一种改进Faster RCNN对马克杯缺陷进行检测,将Faster RCNN和特征金字塔网络(FPN)相结合,增加使用细节化的浅层特征,使其对小目标有更好的检测效果。分别使用改进前后的Faster RCNN在Caffe上进行仿真。结果表明,Faster RCNN检测马克杯缺陷的性能出色,但是遗漏了部分小目标;改进后的Faster RCNN对缺口和划痕缺陷的检测准确率最多提升2.485个百分点,并且在小目标识别方面也有更优异的表现。
Abstract
Faster RCNN has poorer performance in terms of accuracy and robustness for detecting small targets. For this reason, an improved Faster RCNN was proposed to detect the defects in mugs. The Faster RCNN and feature pyramid network (FPN) were combined to increase the use of detailed shallow features, so as to achieve better detection effect for small targets. Faster RCNNs before and after improvement were used to conduct simulation on Caffe. The results show that Faster RCNN performs well in defect detection for mugs, but it misses some small targets. The improved Faster RCNN increases the detection accuracy by 2.485 percent at most for gaps and scratches and performs better in small target recognition.

1 引言

在生产制造马克杯的过程中,生产材料、工艺和设备等客观因素会导致马克杯的杯口出现划痕、缺口和斑点等缺陷,这些缺陷直接影响了消费者的使用体验和生产企业的企业形象。为了避免不合格的马克杯流入市场,早期许多马克杯的生产厂家采用人工抽检来检测缺陷,但此类检测方法无法保证检测强度和精度。目前的工业检测主要采用机器学习方法[1-2],如神经网络[3]和支持向量机等[4-5],但这些方法都需要人工设计缺陷特征,其带来的突出问题就是人工设计的缺陷无法满足缺陷的多样性,无法应对缺陷种类大小、数量繁多的情况,鲁棒性不足[6-7]

近年来,随着图形处理器(GPU)性能的不断提升,深度学习领域蓬勃发展。2006年,Hinton等[8]提出了深度学习这一概念,运用卷积神经网络(CNN)从数据中学习特征。2012年,在ImageNet图像分类竞赛中,Krizhevsky团队[9]首次提出了深度CNN AlexNet,以超过第二名15.3%的准确率获得冠军,使人们对CNN在视觉任务中的应用有了进一步认识。Girshick等[10]提出了区域卷积神经网络(RCNN)模型,该模型利用选择性搜索方法选取候选区域,使用多个支持向量机对特征进行分类,从而完成目标检测。2015年,Girshick[11]提出了Fast RCNN,这是RCNN的改进版本,采用RoI Pooling来共享计算量较大的部分,提升整个模型的工作效率。后来针对提取候选特征区域运行时间较长的问题,Ren等[12]在原有网络基础上再次加以改进,引入区域推荐网络(RPN),设计了Faster RCNN模型并取得了很好的效果。相比于人工设计的特征,CNN提取的特征鲁棒性更好且语义信息更强,在人脸识别[13-14]、目标检测和语音识别[15]等计算机视觉领域中均取得了巨大成果[16]。Zhao等[17]提出了一种基于CNN的绝缘子航拍图像表面缺陷检测方法,该方法可实现对绝缘子缺陷的种类识别及定位。姚明海等[18]提出了一种基于深度主动学习的磁片表面缺陷检测方法以解决磁片表面对比度低,磨痕纹理干扰和缺陷块小且亮度变化大等难点。洪伟等[19]提出了一种基于区域全卷积网络结合残差网络的深度学习方法对火焰进行检测识别,提升了在火焰视频数据集上的平均识别精度。韩燮等[20]提出了一种基于CNN的棋子识别方法,该方法可应用于不同字体的棋子识别,并在定位误差、平均定位时间和平均棋子识别准确率等性能方面都有优秀表现。欧攀等[21]融合了空间变换网络的CNN所提取的特征,提出的方法具有更好的旋转不变特性,从而使遥感图像检测达到更高的检测精度。

马克杯的缺陷在马克杯图像中占比较小,若单独使用Faster RCNN可能无法取得理想的效果。因此本文分别对Faster RCNN和特征金字塔网络(FPN)进行研究,从中找到合适的方法将二者进行结合以得到更理想的检测结果。

2 基本原理

2.1 Faster RCNN和FPN融合原理

对于CNN而言,浅层特征提供更多细节信息且语义信息比较稀疏,是细节化的特征;深层特征提供更多整体信息且语义信息比较丰富,是全局化的特征。

原始Faster RCNN中RPN仅采用网络的最后一层特征,这是因为最高层的特征具有最丰富的语义信息。该思想对于大目标的检测很有效,但是对于小目标的检测效果不佳。采集马克杯图像,发现部分缺陷在图片中占比较小,为了使最后的缺陷检测结果更为准确,将选择一种金字塔RPN结构来代替原有RPN结构。

金字塔RPN结构相比于原始Faster RCNN中的RPN结构可更好地利用浅层特征提供的细节信息,更多的细节特征使其对小目标的识别更具效果。最顶层的特征通过上采样与相邻低层进行特征融合,并且每一层都进行独立预测。整个算法大致分为三个部分:自底向上、自顶向下和横向连接。具体步骤如下。

自底向上:普通的CNN前馈过程,如果同一阶段的不同层产生相同大小的输出映射时,则选择每个阶段最后一层的输出作为待处理特征图。

自顶向下:将自底向上过程得到的特征图进行上采样,其目的是使上采样后的特征图和相邻低层的特征图大小相同,从而可以进行特征图的相加。

横向连接:将上采样的结果和自底向上生成的特征图进行融合。

图1为FPN+RPN算法网络结构图。

经FPN融合更多浅层特征的特征图,会在RPN作用下生成一系列候选框,也就是目标的定位,最后会生成两个得分,用于过滤效果不佳的候选框和修正候选框,以便更好地拟合预测的目标。经过RPN处理后得到的目标候选框会映射到原始特征图上,固定尺寸后会连接到Softmax用于最终目标分类。

Faster RCNN使用目标推荐框和特征图作为输入。但加入FPN算法后,会得到多个特征图,此时感兴趣区域(ROI)会根据特征图尺度的不同来选择不同层级的金字塔层,具体选择方式为

k=k0+log2wh224,(1)

式中:k0=5;w,h分别为ROI的宽和高;224为预训练数据集图像大小。

2.2 构造数据集

采集好马克杯图像后,通过翻转、裁剪和旋转等方式扩充数据集,使用labelImg软件对数据集进行标注,其中训练集为1532张,测试集为1470张。标注时需要注意的一点是只需要标注缺陷本身,如果标注区域过大,包括了一些非缺陷区域,则会影响最终训练效果。训练样本的多寡同样会影响训练效果:如果训练样本过少,会导致过拟合;训练样本越多,网络的泛化能力越强,最后得到的模型精度越高。部分训练样本如图2所示。其中图2(a)中包含四个缺陷,即缺口、划痕、两个斑点;图2(b)中包含一种缺陷,即斑点;图2(c)中包含两个缺口缺陷。

图 1. FPN+RPN算法网络结构图

Fig. 1. FPN+RPN algorithm network structure diagram

下载图片 查看所有图片

图 2. 部分训练样本。(a)包含四个缺陷,即缺口、划痕、两个斑点;(b)包含一种缺陷,即斑点;(c)包含两个缺口缺陷

Fig. 2. Partial training samples. (a) With four defects, one gap, one scratch, and two speckles; (b) with one speckle defect; (c) with two gap defects

下载图片 查看所有图片

为保持训练样本和测试样本的独立性,选择与训练样本不同的测试样本进行测试,这样做可以使实验结果更加有说服力。部分测试样本如图3所示。

图 3. 部分测试样本。(a)包含一个缺口缺陷;(b)包含两个缺陷,即缺口和斑点;(c)包含一个划痕缺陷

Fig. 3. Partial test samples. (a) With one gap defect; (b) with two defects, one gap and one speckle; (c) with one scratch defect

下载图片 查看所有图片

2.3 CNN的选取

ZF(Zeiler & Fergus)网络与经典的AlexNet相比,其前面的层使用更小的卷积核和步长,使提取的特征更加精确;与VGG-16网络相比,ZF网络对GPU性能要求更低,更加符合实验要求。但ZF网络也有缺点,其准确度较低,若直接使用ZF网络很难使马克杯检测分类达到预定要求。因此,适当改进ZF网络,在保留其优点的同时增加准确度。表1为改进前后的ZF网络结构。原始ZF网络包含5个卷积层和3个最大池化层,改进后的ZF网络在原有ZF网络的基础上增加了7个卷积层和1个最大池化层,并减小了卷积层的大小和数量,将步长缩短为1。

表 1. 改进前后的ZF网络结构

Table 1. ZF network structure before and after improvement

Type of layersNumber of convolution kernelsStep size
BeforeAfterBeforeAfterBeforeAfter
Conv_1/1Conv_1/296647×7/23×3/1
Max pooling/1Max pooling/196643×3/22×2/2
Conv_2/1Conv_2/22561285×5/23×3/1
Max pooling/1Max pooling/12561283×3/22×2/2
Conv_3/3Conv_3/2384/384/2562563×3/13×3/1
Max pooling/1Max pooling/12562563×3/22×2/2
Conv_4/33843×3/1
Max pooling/13842×2/2
Conv_5/35123×3/1

查看所有表

为了更加直观地对比改进前后的ZF网络结构的性能,分别采用两种网络结构作为特征提取层,在PASCAL VOC2007数据集上,使用扩充后的数据集对Faster RCNN进行训练,绘制4个阶段的损失曲线图。其中改进前ZF网络的损失曲线如图4所示,整个训练过程共进行了4个阶段的1.8×105次迭代,迭代次数分别是6×104,3×104,6×104,3×104。从图4可以看出,虽然改进前ZF网络的损失曲线最后都可以收敛到一个范围,但是整体效果不甚理想,其中RPN和Faster RCNN第一阶段训练损失曲线均处于振荡幅度过大的状态。

图 4. 基于ZF网络的训练损失。(a) RPN第一阶段训练损失;(b) Faster RCNN第一阶段训练损失;(c) RPN第二阶段训练损失;(d) Faster RCNN第二阶段训练损失

Fig. 4. Training loss based on ZF network. (a) Stage-1 training loss of RPN; (b) stage-1 training loss of Faster RCNN; (c) stage-2 training loss of RPN; (d) stage-2 training loss of Faster RCNN

下载图片 查看所有图片

图5为改进后ZF网络的损失曲线图,迭代次数与改进前相同。相比于改进前ZF网络,改进后的RPN和Faster RCNN第一阶段训练损失曲线振荡范围过大的缺点均有所改善,第二阶段训练损失曲线均处于一个值域更低的范围内。总体来说,改进后ZF网络的训练效果优于改进前。

2.4 网络训练

网络训练流程如下:1)初始化权值和偏置;2)将批量训练样本送入网络;3)经前向传播及反向传播更新参数;4)迭代后得到最终的模型及准确率。

图 5. 改进后ZF网络的训练损失。(a) RPN第一阶段训练损失;(b) Faster RCNN第一阶段训练损失;(c) RPN第二阶段训练损失;(d) Faster RCNN第二阶段训练损失

Fig. 5. Training loss based on improved ZF network. (a) Stage-1 training loss of RPN; (b) stage-1 training loss of Faster RCNN; (c) stage-2 training loss of RPN; (d) stage-2 training loss of Faster RCNN

下载图片 查看所有图片

Caffe(快速特征嵌入的卷积体系结构)中的Filler层可以对权值和偏置进行初始化。其中,Xavier和MSRA都是不错的初始化方法,考虑到本文的激活函数,选择MSRA初始化权值和偏置。批量大小的选择同样至关重要:如果选择过小,会导致损失函数不收敛且训练速度慢;如果选择过大,会导致网络收敛到一些效果不佳的局部最优点。考虑到数据集大小及内存容量大小,将批量大小设置为32。

前向传播的计算公式为

Y=sns2s1Xω1+b1)ω2+b2ωn+bn,(2)

式中:X,Y分别为网络的输入和输出矩阵;ωi为权值矩阵;bi为偏置矩阵;si为每个神经元的激活函数;i=1,2,…,n。激活函数除了最后一层为计算分类得分的Softmax函数外,其余均采用Relu函数。这是因为Relu函数在激活状态下的梯度能维持在较大且一致的水平,减小训练过程中出现梯度消失和梯度爆炸等问题的概率。

完成一次前向传播后,计算损失函数的值,根据权值更新算法更新权值,重新进行前向传播,直至损失函数取得最小值。选择适用于分类问题的交叉熵损失函数[22],其表达式为

L=-1N1Ni=1kyilog(pi),(3)

式中:yi为期望输出值;k为样本总类别数;N为本批次训练样本总数;pi为Softmax函数。但是单一的交叉熵损失函数的网络泛化能力一般,有可能出现过拟合,最后得到的效果不佳。为了防止过拟合,除了增加训练样本的数量和多样性之外,还可以引入L2范数正则化项,即在原损失函数后面添加一个L2范数正则项来完成对权重的正则化,其表达式为

r(w)=12w22,(4)

式中:w为网络的权重。带有L2范数正则化项的损失函数为

L~(w;X,Y)=L(w;X,Y)+λ12w22=L(w;X,Y)+λ2wTw,(5)

式中:λ0,表示正则化项系数。则损失函数对w的梯度为

wL~(w;X,Y)=wL(w;X,Y)+λw(6)

执行一次梯度下降后w

w=w-αwL~(w;X,Y)=w-αwL(w;X,Y)+λw,(7)

w=(1-αλ)w-αwL(w;X,Y),(8)

式中:α为学习率。同理可得,未添加L2范数正则化项的原损失函数使用梯度下降法,w

w=w-αwL(w;X,Y)(9)

对比(8)式和(9)式可以看到,添加L2范数正则化项后,在执行每步梯度下降前会使前一步的w收缩,这使得添加L2范数正则化项后的损失函数最小时的解w*会沿着一定方向衰减,并且沿着此下降方向的参数会保留,而沿着不重要方向的参数会逐渐衰减,这有助于提升网络训练效率和泛化能力。

选择带动量随机梯度下降法(SGD)作为网络的权值更新算法。之所以未选择普通的SGD,是因为普通SGD的学习率是固定的,如果学习率的初始值设定不合适,就会导致损失函数的振荡或不收敛。引入动量后,其作用是在函数下降阶段积累参数之前更新时刻的梯度方向的速度,其他方向的速度会被限制,使其快速下降,并在函数上升时提供反向作用力使其停下并收敛到最小值。

学习率影响权值更新速度,其大小变化与权值更新速度呈正相关。假设学习率共进行∂次迭代,则第v次迭代时学习率的值为

αv=1-vα0+vα,(10)

式中:初始学习率α0=0.1。在∂次迭代后,学习率会保持一个恒定的值,这样会增加网络训练收敛的概率。

3 分析与讨论

实验采用Caffe深度学习平台,GPU型号为GTX1060ti。图6为使用labelImg标注训练集的软件界面。图7为基于Faster RCNN和Faster RCNN+FPN的检测结果。由图7(a)可以看出,Faster RCNN在面对大目标时,识别率还是可观的,但是在面对小目标时,会出现漏检的情况;而图7(b)使用 Faster RCNN+FPN就很好地避免了这一情况,准确度较Faster RCNN有提升,而且识别出Faster RCNN未能识别的小目标。

图 6. 使用labelImg标注数据集

Fig. 6. Labeling data set with labelImg

下载图片 查看所有图片

表 2. 不同网络结构的分类性能

Table 2. Comparison of various network structures on classification performance

Network structureAP /%Average detectiontime /s
ScratchSpeckleGap
Faster RCNN85.32097.030.094
Faster RCNN and two layers of FPN87.8681.1198.300.123
Faster RCNN and three layers of FPN88.3282.3698.510.135
Faster RCNN and four layers of FPN88.5682.9898.760.149

查看所有表

图 7. 马克杯缺陷检测结果对比图。(a)原始Faster RCNN检测结果;(b)加入FPN后的Faster RCNN检测结果

Fig. 7. Comparison of mug defect inspection results. (a) Original Faster RCNN; (b) Faster RCNN after FPN addition

下载图片 查看所有图片

对于 Faster RCNN + FPN来讲,融合不同层数的底层特征,最后的检测表现也不同。为了验证是否融合层数越多越好,使用相同的数据集对不同模型进行检测,结果见表2,AP表示某一类缺陷的准确率。

表2可以看出,在使用传统Faster RCNN检测时,其准确率尚可,平均检测时间较短,但也有不足,在Faster RCNN的斑点AP为0即意为其无法检测出较小的缺陷;而使用Faster RCNN +若干FPN层时,添加的FPN层数越多,即结合的特征尺度数量越多,对应缺陷的AP也越高,说明该网络结构的性能越好。增加到4层FPN时,检测性能达到最佳。缺口和划痕缺陷的mAP(即所有类别缺陷的平均准确率)为93.66%,相比于原始Faster RCNN的91.175%,提升了2.485个百分点。但是,Faster RCNN+FPN使用了额外的浅层特征,导致其比Faster RCNN的检测时间长0.029~0.055 s。

4 结论

以Faster RCNN为基础,提出了一种改进Faster RCNN的马克杯缺陷检测方法。原始Faster RCNN仅采用网络的最后一层特征,无法提供足够的细节特征,而引入FPN后,使得更多的浅层特征参与到整个算法中,利用浅层特征细节信息丰富的特点,将浅层特征和深层特征相融合,丰富了特征的语义信息。最后在Caffe框架上分别构建Faster RCNN和Faster RCNN+FPN网络,利用标记好的数据集对两个网络进行训练,最后得到融合4层网络的Faster RCNN+FPN对缺口和划痕缺陷的检测准确率为93.66%,相比于单独使用Faster RCNN提升了2.485个百分点,并且检测出Faster RCNN未能识别的直径小于1 mm的斑点缺陷。检测准确率的提升,将减小合格马克杯检测为缺陷马克杯的概率。马克杯小缺陷的准确识别,避免更多的小缺陷马克杯流入市场,对建立良好的企业形象和提升消费者用户体验均有裨益。

参考文献

[1] 刘明周, 马靖, 张淼, 等. 基于机器视觉的机械产品装配系统在线作业方法[J]. 计算机集成制造系统, 2015, 21(9): 2343-2353.

    Liu M Z, Ma J, Zhang M, et al. Online operation method for assembly system of mechanical products based on machine vision[J]. Computer Integrated Manufacturing Systems, 2015, 21(9): 2343-2353.

[2] 周显恩, 王耀南, 朱青, 等. 基于机器视觉的瓶口缺陷检测方法研究[J]. 电子测量与仪器学报, 2016, 30(5): 702-713.

    Zhou X E, Wang Y N, Zhu Q, et al. Research on defect detection method for bottle mouth based on machine vision[J]. Journal of Electronic Measurement and Instrumentation, 2016, 30(5): 702-713.

[3] Wang P, Zhu L, Zhu Q J, et al. An application of back propagation neural network for the steel stress detection based on Barkhausen noise theory[J]. NDT & E International, 2013, 55: 9-14.

[4] Xie L J, Huang R, Gu N, et al. A novel defect detection and identification method in optical inspection[J]. Neural Computing and Applications, 2014, 24(7/8): 1953-1962.

[5] Halfawy M R, Hengmeechai J. Automated defect detection in sewer closed circuit television images using histograms of oriented gradients and support vector machine[J]. Automation in Construction, 2014, 38: 1-13.

[6] LeCun Y, Boser B, Denker J S, et al. Backpropagation applied to handwritten zip code recognition[J]. Neural Computation, 1989, 1(4): 541-551.

[7] Dai JF, LiY, He KM, et al. R-FCN: object detection via region-based fully convolutional networks[C]∥Proceedings of the 30th International Conference on Neural Information Processing Systems, December 5-10, 2016, Barcelona, Spain. San Diego: NIPS, 2016: 379- 387.

[8] Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527-1554.

[9] KrizhevskyA, SutskeverI, Hinton GE. Imagenet classification with deep convolutional neural networks[C]∥Advances in Neural Information Processing Systems, December 3-6, 2012, Lake Tahoe, Nevada, United States. San Diego: NIPS, 2012: 1097- 1105.

[10] GirshickR, DonahueJ, DarrellT, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, June 23-28, 2014, Columbus, Ohio. New York: IEEE, 2014: 580- 587.

[11] GirshickR. Fast R-CNN[C]∥2015 IEEE International Conference on Computer Vision (ICCV), December 7-13, 2015, Santiago, Chile. New York: IEEE, 2015: 1440- 1448.

[12] Ren S Q, He K M, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.

[13] SunY, LiangD, Wang XG, et al. ( 2015-02-03)[2019-05-29]. https:∥arxiv.gg363.site/abs/1502. 00873.

[14] Hafemann L G, Sabourin R, Oliveira L S. Learning features for offline handwritten signature verification using deep convolutional neural networks[J]. Pattern Recognition, 2017, 70: 163-176.

[15] Abdel-Hamid O, Mohamed A R, Jiang H, et al. Convolutional neural networks for speech recognition[J]. ACM Transactions on Audio, Speech, and Language Processing, 2014, 22(10): 1533-1545.

[16] RedmonJ, DivvalaS, GirshickR, et al. You only look once: unified, real-time object detection[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE, 2016: 779- 788.

[17] Zhao Z B, Liu N, Wang L. Localization of multiple insulators by orientation angle detection and binary shape prior knowledge[J]. IEEE Transactions on Dielectrics and Electrical Insulation, 2015, 22(6): 3421-3428.

[18] 姚明海, 陈志浩. 基于深度主动学习的磁片表面缺陷检测[J]. 计算机测量与控制, 2018, 26(9): 29-33.

    Yao M H, Chen Z H. Deep active learning in detection of surface defects on magnetic sheet[J]. Computer Measurement & Control, 2018, 26(9): 29-33.

[19] 洪伟, 李朝锋. 基于区域全卷积网络结合残差网络的火焰检测方法[J]. 激光与光电子学进展, 2018, 55(4): 041011.

    Hong W, Li C F. Flame detection method based on regional fully convolutional networks with residual network[J]. Laser & Optoelectronics Progress, 2018, 55(4): 041011.

[20] 韩燮, 赵融, 孙福盛. 基于卷积神经网络的棋子定位和识别方法[J]. 激光与光电子学进展, 2019, 56(8): 081007.

    Han X, Zhao R, Sun F S. Methods for location and recognition of chess pieces based on convolutional neural network[J]. Laser & Optoelectronics Progress, 2019, 56(8): 081007.

[21] 欧攀, 张正, 路奎, 等. 基于卷积神经网络的遥感图像目标检测[J]. 激光与光电子学进展, 2019, 56(5): 051002.

    Ou P, Zhang Z, Lu K, et al. Object detection in of remote sensing images based on convolutional neural networks[J]. Laser & Optoelectronics Progress, 2019, 56(5): 051002.

[22] 刘聪. 基于卷积神经网络的微小零件表面缺陷检测技术研究[D]. 哈尔滨: 哈尔滨理工大学, 2019.

    LiuC. Research on surface defects detection of micro parts based on convolution neural network[D]. Harbin: Harbin University of Science and Technology, 2019.

李东洁, 李若昊. 基于改进Faster RCNN的马克杯缺陷检测方法[J]. 激光与光电子学进展, 2020, 57(4): 041515. Dongjie Li, Ruohao Li. Mug Defect Detection Method Based on Improved Faster RCNN[J]. Laser & Optoelectronics Progress, 2020, 57(4): 041515.

本文已被 7 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!