工业制造的型态,一直在随着时代和技术的发展而演变。如果说近十来年最重要的转折点,大概就是2011年德国提出的工业4.0计划了——这个计划的目标很明确:把工业生产从自动化,推向真正的智慧化。围绕着这个大方向,物联网、云端、大数据、人工智能、机器人这些核心技术都跑上了快车道。
在这其中,人工智能的进展尤其迅猛。根据不同的应用场景,训练方法和算法不断翻新。最常见的讨论无非就是机器学习和深度学习。而机器学习又能再分出几个方向:监督式学习、非监督式学习和强化式学习。本文要用到的是监督式学习,简单说就是通过标注数据的特征来训练模型,最后实现分类或预测。
图1 展示的是监督式学习的一个大致分类情况。

图1 监督式学习简易分类
为了踩准国际趋势和产业实际的节拍,这篇文章把目光投向了模具产业——这个被称为"工业之母"的领域。我们用射出成型机台做示范,借助传感器采集生产时的音频数据,再通过监督式学习方法进行标注和训练,最终做出一个能自动识别机台生产状态的AI模型。不仅如此,生产机台、传感器、手机和电脑还能通过物联网连成一张网,实现信息的实时接收。接下来,我们就把整体实验流程和软硬件配置拆开来讲一讲。
硬设备

表1 硬设备清单
这次用的传感器是QuickLogic的Merced HDK(也就是硬件开发套件)。这块开发板很合适当下的低功耗机器学习物联网设备,因为它自带16KHz采样率的数字麦克风、电子罗盘,还有六轴陀螺仪(三轴陀螺仪加三轴翻跟斗)。
数字麦克风具体用的是Knowles的SPH0641LM4H——体积小、性能强、功耗低。它的SNR是64.3 dB,声压级94 dB,灵敏度-26 dB。刻录模型时用的传输线是Sabrent的Type-A转Micro USB-B线。至于手机端,因为TestApp版本对系统有要求,所以得用Android的ASUS ZenFone 5才行。
软件与驱动程序

表2 软件与驱动程序列表
整个实验要靠SensiML的三款软件来完成。首先是Data Capture Lab,它负责收集和导入数据、做原始数据处理,还能标注数据特征。这个软件也可以导入CSV和WA V格式的文件来处理数据,全部数据能实时上传到云端。然后是Analytics Studio——用各种算法和自选参数来推理模型,效率很高,能快速产出适合边缘计算的模型。最后是装在手机上的TestApp,它连接传感器,用来验证和实时识别机台的运行状态。
步骤1. 传感器安装
硬软件都备齐了、驱动也装好了,就可以正式开始实验。先把传感器装到合适的位置上——这一步得注意环境温度不能超过传感器的工作范围,也不能妨碍机台的正常生产动作。反复考虑之后,最终把传感器装到了射座上,如图2所示。

图2 传感器安装位置
步骤2. 传感器初始状态设置
在Data Capture Lab里建个项目,切换到Capture模式来设定传感器的初始配置。点Sensor Configuration后面的加号进行设置,把装置定为Merced HDK (QuickAI),用数字麦克风,采样率设为16 kHz。具体的配置可以看图3。

图3 传感器参数配置
然后点Find Devices,通过低功耗蓝牙扫描周围的传感器,选中目标后点Connect连上就行,图4就是连接的过程。

图4 传感器连接
连好传感器之后,开始设定要训练的标签。点Add Labels来新增状态标签,见图5。这次打算识别射出成型机的基础动作:关模、射出、顶出,所以分别设了这三个Label。

图5 新增状态标签
Labels设好之后,就能开始录机台生产的音频了。录之前先选好Label,再点Begin Recording。录完的文件可以在Project Explorer里查看,文件命名就是当时选的Label。

步骤3. 生产周期音频录制
关模、射出、顶出这三个标签设定好之后,就可以录音了。这次收集了好几组完整生产周期的音频。录制中会产生.qlsm和.wa v文件,导入Data Capture Lab后会以音频波形图呈现,见图6。也可以用指令转成MFCC来做比对。
注:MFCC全称是梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients)。

图6 生产周期音频波型图
把音频和实际录像交叉比对一下就能看出来:(A)是关模,(B)是射出,(C)是顶出。把波段放大看,区别就非常明显了,如图7所示。

图7 波段放大图
步骤4. 标注作业
录音完成后就该标注了。在Label Explorer模式下,框选想截取的数据片段,右键标出对应的频谱特征段落,然后在右边的红框里设定这个特征代表的标签。标注界面如图8所示。

图8 特征标注
步骤5. 模型训练
在Data Capture Lab里标注好需要的片段后,保存并上传到云端。然后打开Analytics Studio开始训练模型。先在Notebook里新建一个Python 3项目,见图9;再输入代码来调出训练UI,见图10。

图9 Analytics Studio新增专案

图10 开启模型训练UI
接着在Project里选之前在Data Capture Lab建好的项目,新增一个Pipeline名字点Add,见图11。再到Data Exploration的Create New Query里填个名称、选好Device,再点Add,见图12。

图11 Pipeline建置

图12 Query建置
到这个阶段,训练用的数据都准备好了。确认右边的标签名称和数据数量没问题后点Sa ve,为下一步的模型训练做准备,见图13。

图13 Data Preparing
更新之后就能开始建模型了。不过有个参数必须特别注意——Window Size,在图14中红框标出来了。可以把它理解成信号切割的区间。参数设多大,要看音频特征是离散的还是一直的。这个参数直接影响模型的准确率。经过反复试验,最后用8000这个单位,得到了差不多97%(具体96.88%)的准确率,见图15。另外,这个软件的强大之处在于,训练阶段会一次性用内置的各种算法跑出五组最优模型,这样可以根据实际需求挑选最合适的。

图14 训练参数设定

图15 5组模型产出
还能通过混淆矩阵进一步了解模型的各项指标——比如分类器大小、召回率、F1-Score这些。这次选了编号0的模型作为最优解。同时也看了它的向量图和密度图(图18、图19),发现这个模型用的是K-NN分类,具体见图17。

图16 混淆矩阵

图17 模型算法构成

图18 密度图

图19 向量图
步骤6. 模型产出与刻录
选好最合适的AI模型之后,为了能让它在传感器上跑起来,得先打包和下载它的Knowledge Pack,如图20所示。

图20 Knowledge Pack生成
然后把传感器用传输线连上电脑,把Knowledge Pack里的.bin文件烧进S3 AI芯片里。连接和刻录的过程见图21和图22。

图21 传感器连接计算机

图22 开始刻录模型
刻录完成之后,可以去logs文件夹看看记录。如果出现"Success",就说明刻录成功了。Log内容如图23所示。

图23 Log檔
步骤7. 模型验证
模型烧进传感器后,就可以用手机来验证它是不是能正常工作了,同时还能收到实时的生产状态信息。先打开Test APP,用蓝牙连上目标传感器,进去Setup events,把Knowledge Pack里model.json的标签信息填到对应的字段里,见图24。标签状态都设置完之后,如果传感器正常运行并且成功识别了机台状态,Last event detected那里就会实时更新,如图25所示。

图24 状态标签设定

图25 传感器状态辨识显示面板
小结
人工智能发展到现在,很多软硬件操作已经越来越人性化、越来越方便了。这种变化的好处在于,使用者可以把更多精力放在机器学习的应用上,而不是底层的技术细节。这次实验只用到了QuickLogic Merced HDK的数字麦克风来收集数据,实际上这块开发板还有很多其他感测组件,可以用来采集更多元的数据。另外,QuickLogic最近也推出了更开源的硬件评估板QuickFeather,成本更低,设计也更灵活。
所以希望这篇文章能给各位一些参考,让大家在机器学习这条路上,能借助不同的感测组件,玩出更多巧思来。
