乐高51515中有一个很有意思的扩展叫做“机器学习”,这里的机器学习主要是有图像识别和声音识别两种。


乐高机器人编程——51515中机器学习的应用  第1张


01

机器学习

首先,让我们来了解一下什么是机器学习。机器学习是一种让计算机从数据中学习并改进的技术。通过使用算法和模型,机器学习能够从数据中寻找模式,并根据这些模式对未知数据进行预测和决策,机器学习主要有监督学习和非监督学习两种类型。
那么,机器学习是怎么工作的呢?
在监督学习中,我们给机器提供一组已知答案的数据,让机器通过学习这些数据,找到其中的规律和模式。这样,机器就可以根据这些规律和模式对新的未知数据进行预测。比如,我们给机器提供一系列的猫狗图片和对应的标签,机器就可以通过学习这些图片,识别出新的猫狗图片。
在非监督学习中,我们则不给机器提供答案,而是让机器从数据中自动找到数据内部的规律和结构。比如,我们给机器提供一组未经标注的猫狗图片,让机器通过学习和比较这些图片,自动识别出猫狗的特征。
机器学习的应用非常广泛,包括人脸识别、自动驾驶、疾病预测、语音识别、推荐系统等。比如,在人脸识别中,机器学习可以通过学习大量的人脸图片,识别出不同的人脸特征;在自动驾驶中,机器学习可以通过学习大量的驾驶数据,让汽车自动识别路况和避免危险。



02


乐高51515中机器学习的应用


乐高51515中的机器学习采用的是监督学习,也就是我们需要提前准备好训练数据,然后将训练数据提供给机器让其学习训练,后将要识别的目标给机器让其根据之前的学习给出判断。


我们通过一个例子来说明,我们要让机器学会识别手写的“A”,“B”,“C”,“D”四个字母。


第一步:准备训练数据。

ABCD各手写9份(这里数量越多越好,如果有不同的人写不同的笔迹也更好一些)。

乐高机器人编程——51515中机器学习的应用  第2张


第二步:训练模型

打开51515配套的软件“Mindstorms”:

乐高机器人编程——51515中机器学习的应用  第3张

新建项目,选择词语模块,进入编程界面:

乐高机器人编程——51515中机器学习的应用  第4张


乐高机器人编程——51515中机器学习的应用  第5张

检查一下是否添加了“机器学习”扩展,如果没有添加的话请添加该扩展:

乐高机器人编程——51515中机器学习的应用  第6张


乐高机器人编程——51515中机器学习的应用  第7张

根据引导进入机器学习模型库,逐步建立模型:

乐高机器人编程——51515中机器学习的应用  第8张

选择图像模型

乐高机器人编程——51515中机器学习的应用  第9张

建立模型后需要再次添加类,这里的类就是将收集的训练数据进行归类,以便于机器进行学习

乐高机器人编程——51515中机器学习的应用  第10张

添加第一个类,获取摄像头权限

乐高机器人编程——51515中机器学习的应用  第11张

将摄像头对准实现准备好的“A”,逐个拍照进行采集

乐高机器人编程——51515中机器学习的应用  第12张

采集完后点击完成,这样就建好了第一个关于字母A的类

乐高机器人编程——51515中机器学习的应用  第13张

这里可以给类进行重命名,便于后续程序中使用

乐高机器人编程——51515中机器学习的应用  第14张

乐高机器人编程——51515中机器学习的应用  第15张

接着依次建立剩余的三个类:

乐高机器人编程——51515中机器学习的应用  第16张

类建好后就可以开始训练模型,让模型自己分析类的特征学会区别四个类,这里不需要人工干预,点击“训练模型”即可:

乐高机器人编程——51515中机器学习的应用  第17张

训练完成后,右边会出现摄像头的实时画面,并且下面有ABCD四个类的概率指示条,将摄像头对准需要识别的字母,模型就会开始对比之前的类,然后判断识别的目标字母与四个类的相似概率,哪个概率高,模型就会判断这个目标字母属于哪个类:

比如下面这个目标字母,模型给出的结论是与“B”这个类的相似概率高为97%,所以判断目标字母为B

乐高机器人编程——51515中机器学习的应用  第18张

同样的也可以识别其他字母:

乐高机器人编程——51515中机器学习的应用  第19张

乐高机器人编程——51515中机器学习的应用  第20张


但是在实践过程中会发现,并不是每次都能识别成功,光线、视角等其他环境因素也会影响判断。


接下来我们在程序中应用,通过摄像头来识别字母,然后在集线器的显示屏上输出结果,程序如下:

乐高机器人编程——51515中机器学习的应用  第21张


乐高机器人编程——51515中机器学习的应用  第22张


运行看看结果:

将摄像头对准左上角字母A,模型给出的结果属于A的概率大73%,其次是20%的D,所以显示屏输出A:

乐高机器人编程——51515中机器学习的应用  第23张

同样是字母A,摄像头角度和光线稍微不一样,结果也很不一样,下面这个虽然也判断出了是A,但是概率只有44%,仅比D多2%

乐高机器人编程——51515中机器学习的应用  第24张

再变一下角度,竟然就判断出属于B了

乐高机器人编程——51515中机器学习的应用  第25张


因为训练模型算法是系统内置的,所以我们能完善的只有两点:

1、尽可能多的采集训练数据,比如让不同的笔迹的人来提供训练数据;

2、识别的环境也尽可能的与训练时保持相近,或者在训练时尽可能的收集更多使用环境的数据。


以上就是乐高51515中关于机器学习在图像识别上的简单介绍,仅仅是一个抛砖引玉,如果有更多关于的玩法或者问题可以联系我,一起来探讨。