用新的R2023a实例应用AI
在最新的MATLAB发行版(R2023a)的文档中有许多新的示例,展示了如何使用和应用最新的机器学习和深度学习功能。请随意深入了解机器学习发布说明和深度学习发布说明探索所有新特性和示例。在这篇博文中,我将展示三个应用深度学习的新例子:
目视检查是一种基于图像的零件检测方法,用相机扫描被测零件的故障和质量缺陷。具有高分辨率相机的视觉检测系统可以有效地检测人眼难以发现的微级甚至纳米级缺陷。在这里,我将向您展示文档示例中的重点内容基于YOLO v4网络的pcb缺陷检测。pcb包含单个电子设备及其连接。pcb中的缺陷可能导致性能差或产品故障。通过检测这些缺陷,生产线可以去除有缺陷的pcb,确保电子设备的高质量。这个例子展示了如何使用YOLOv4深度神经网络检测、定位和分类pcb上的缺陷。我将主要强调MATLAB工具,使您能够简化pcb的视觉检查并专注于应用程序,而不是花费太多时间在数据管理和创建深度学习网络上。
准备培训数据
MATLAB提供了为目标检测准备数据的函数,部分函数如下表所示:功能 | MATLAB函数 | 更多的细节 |
数据管理 | imageDatastore | 阅读和管理培训图像。 |
fileDatastore | 读取和管理注释数据。 | |
结合 | 组合多个数据存储。 | |
转换数据 | 变换 | 将数据存储中的数据转换为(1)将图像和边界框的大小调整为输入网络的大小,以及(2)增加(例如,水平翻转和缩放)输入数据。 |
估计锚箱 | estimateAnchorBoxes | 根据预处理训练数据中对象的大小估计指定数量的锚盒。 |
创建探测器
而不是从头开始创建一个深度学习模型,你可以得到一个pretrained模型,你可以修改和重新训练它以适应你的任务。方法可以在一行代码中获得YOLOv4对象检测器yolov4ObjectDetector函数。detectorToTrain = yolov4ObjectDetector("tiny-yolov4-coco",classNames,…anchorBoxes InputSize = InputSize);得到对象检测器后,使用trainYOLOv4ObjectDetector函数来训练它。
检查单个图像
的检测函数可以预测边界框、标签和每个边界框的类特定置信度得分。使用detect检查单个图像并显示结果。[bboxes,scores,labels] = detect(detector,sampleImage);imshow (sampleImage) showShape(“矩形”,bboxes标签=标签);标题(“预测缺陷”)对于这个特定的图像,在PCB上检测到三个缺失的孔,如下图所示。想象一下pcb大规模生产的影响…… 图:目视检查的PCB图像显示缺孔
检查多个图像
检测功能可以像检测单个PCB上的缺陷一样轻松地发现数据存储中所有PCB图像上的缺陷。然后,您可以评估训练过的对象检测器。检测所有测试图像的边界框。detectionResults = detect(detector,dsTest);方法计算每个类的平均精度分数evaluateDetectionPrecision函数。精度量化了探测器正确分类物体的能力。还要计算每个检测到的缺陷的召回率和精度值。召回量量化了检测器检测类的所有相关对象的能力。
[averagePrecision,recall,precision] = evaluateDetectionPrecision(detectionResults,dsTest);
更多的资源
- 查看更多目视检查示例。
- 看看C-CORE和Equinor是如何用MATLAB开发自动化软件的用深度学习分析卫星雷达图像。
- 请查看计算机视觉工具箱自动视觉检查库,它使您能够训练、校准和评估最先进的异常检测器。
训练数据准备
除了目视检查示例(和其他示例)中显示的用于数据管理的MATLAB工具外,MATLAB还提供了一个表格文本文件的数据存储,这有助于管理本例中的EEG时间序列。深度学习网络
卷积网络基于连续小波变换(CWT)的平方幅值来预测脑电数据的类别类函数。这个大小的平方也被称为尺度图。尺度图是一种理想的时频变换方法,适用于时间序列数据,如脑电图波形,具有慢振荡和瞬态现象。 图:脑电时间序列尺度图定义一个使用输入信号的时频变换进行分类的网络。netSPN = [sequenceInputLayer(1,"MinLength",4097,"Name","input","Normalization","zscore")卷积1dlayer (5,1,"stride",2)cwtLayer(“SignalLength ", 2047年,“IncludeLowpass”,的确,“小波”、“丘比特”)maxPooling2dLayer([5,10]) convolution2dLayer([5,10],5,"Padding","same") maxPooling2dLayer([5,10]) batchNormalizationLayer reluLayer ([5,10],10,"Padding","same") maxPooling2dLayer([2,4]) batchNormalizationLayer reluLayer flatlayer globalAveragePooling1dLayer dropoutLayer(0.4) fullyConnectedLayer(3) softmaxLayer classificationLayer("Classes",unique(trainLabelsSPN),"ClassWeights", " classwights ");
与使用CWT(尺度图)的幅度或平方幅度作为预处理步骤的深度学习网络不同,本示例使用可微尺度图层(cwtLayer)。在网络内部有一个可微的尺度图层,你可以把可学习的操作放在尺度图的前后。这种类型的层显著地扩展了时频变换可能带来的体系结构变化。
分类结果
使用a可视化分类结果混淆矩阵图。混淆图在测试集上显示了良好的性能。混淆图中的行摘要显示模型的召回率,而列摘要显示精度。召回率和准确率一般都在95%到100%之间。 图:脑电分类的混淆矩阵图更多的资源
查看以下链接,了解MATLAB用户如何将机器学习和深度学习应用于基于脑电图的bmi和癫痫发作检测: 简化顺序建模ROM是一种减少计算机模型的计算复杂性或存储需求,同时在控制误差范围内保持预期保真度的技术。高保真非线性模型可能需要数小时甚至数天的时间来模拟。这给许多工程团队带来了巨大的计算挑战。基于人工智能的降阶模型可以显著加快高阶大型系统的仿真和分析速度。人工智能可以根据组件的测量数据创建模型,因此您可以以准确,动态和低成本的方式获得正确的答案。即使您已经有了一个高保真的第一原理模型,您也可以使用数据驱动的模型来创建一个可能更简单、模拟速度更快的代理模型。一个更快但同样准确的模型可以帮助您在设计、测试和部署系统时取得进展。要了解更多关于使用AI的ROM,请查看我们之前的博文和这个视频。示例概述
您可以使用各种技术训练AI模型,例如lstm和Neural ode。这个新例子展示了如何使用连续时间回声状态网络(CTESN)执行降阶建模。这个神经网络是一种循环神经网络(RNN),以及LSTM,它使用油藏计算框架来投影来自高维空间的信号。 图:用连续时间回声状态网络代替ODE求解器。如果您需要使用不同的参数多次求解模型中的ODE,则可以应用示例中显示的方法。为了节省计算资源,您可以使用一组自动导出的解决方案来训练神经网络,然后将神经网络合并到您的模型中,而不是使用系统内的ODE求解器来近似解决方案。金宝搏官方网站CTESN模型的计算速度通常比ODE求解器快。结论
我希望以上对三个新示例的简要描述能够激发您的好奇心,尝试它们并探索MATLAB R2023中的其他新的AI功能和示例。在这里发表评论,谈论您激动人心的AI应用程序,以及您将如何利用最新的MATLAB AI功能。- 类别:
- 深度学习
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。