技术领域:
本发明涉及机器学习、物联网以及移动互联网技术领域,具体涉及一种智能家居中基于alljoyn和机器学习的智能化控制系统和方法。
背景技术:
:
智能家居是一个集成了互联网技术、计算机技术、无线通讯技术与电子技术的技术行业,它目前还是一个处于成长期的新兴,各方面技术并不是很成熟。它能够对家庭设备进行智能管理和控制,提供舒适、便利和可靠的家庭居住环境。但是,目前智能家居行业对智能性的重视程度不高,就目前主流的智能家居产品而言,只是简单地做到了如场景选择、定时功能以及条件触发等一些“人为触发”的功能,一旦离开了用户,这些控制方案基本上就行不通了。这种智能化程度很低的智能家居产品很难满足人们对于智能家居“智能化”的需求,所以,智能家居产品开发者们越来越重视对智能家居产品“智能化”程度的提高。
机器学习是在近十几年间最热门的学科之一,普遍认为机器学习是属于人工智能的一个分支,其涉及统计学,概率学,计算复杂性理论等多门学科。它的基本思想是通过对数据量达到一定程度的历史经验的分析学习,求出针对数据的分类或者是回归的目标函数,设计出能够让计算机自动学习的算法,并根据设计出的算法对未知数据进行求解。目前,机器学习已被广泛应用到了多个领域中,从我们经常使用互联网搜索引擎,到语音识别,再到图像识别图像分类,甚至是一些大型的预测系统,都是将机器学习与当前常用的技术相结合的结果。随着机器学习的快速发展,机器学习将会与越来越多领域的技术相结合。目前,将机器学习引入智能家居领域是解决智能家居“智能化”程度低问题的有效途径。
alljoyn框架是高通公司在2012年开源的局域网通信软件框架,高通公司致力于将其打造为通用的物联网语言。随着alljoyn框架的成熟,alljoyn技术逐渐应用在智能家居中,主要作为家庭局域网设备通信的解决方案,它支持点对点session和多点session。alljoyn框架为嵌入式设备提供了thin应用,为局域网内移动端应用与嵌入式设备通信提供支持,可以实现在无外网的情况下对设备进行基本控制。
本方案是针对目前市场上主流智能家居控制系统存在的缺陷和不足进行改进,通过引入alljoyn框架来提高局域网设备通信的灵活性、安全性以及扩展性,同时将机器学习与智能家居控制相结合,大大提高了智能家居的“智能化”程度。
技术实现要素:
:
本发明的目的在于设计出一种基于alljoyn和机器学习的智能家居控制系统和方法,实现随时随地通过网络对智能家居设备进行控制、设备状态的实时同步、智能场景的无缝切换以及智能家居系统的自我管理。
为了实现上述目的,本发明所采用的技术方案如下:
一种基于alljoyn和机器学习的智能家居控制系统包括:
机器学习系统,根据训练样本集训练出基于lstm的神经网络模型,并与meshblu服务器进行数据通信;
传感器数据采集模块,与alljoyn网关采用alljoyn协议通信,采集各传感器的数据发送给alljoyn网关;
智能家居设备,与alljoyn网关采用alljoyn协议通信,将自身状态数据发送给alljoyn网关,并受alljoyn网关控制指令的控制;
alljoyn网关,包括外网代理模块和网关代理模块,alljoyn网关用外网代理模块与meshblu服务器建立长连接,维持双向通信;alljoyn网关用网关代理模块处理与局域网内的智能家居设备和传感器数据采集模块通信;
移动终端,通过alljoyn协议与alljoyn网关通信,通过websocket协议与meshblu服务器通信;用于获取系统状态并发送控制指令;
meshblu服务器,与alljoyn网关和移动终端通信,通过机器学习系统得到预测的设备状态信息,向alljoyn网关发送控制指令,向移动终端反馈设备状态或只能场景切换信息。
所述系统的基于alljoyn和机器学习的智能家居控制方法包括如下步骤:
s10、采集样本集,训练出神经网络模型;
s20,部署机器学习系统,与服务器建立通信;
s30,部署alljoyn网关,与服务器建立通信;
s40,将设备和数据采集模块接入alljoyn网关;
s50,移动端应用控制设备;
s60,更新神经网络模型;
s70,无缝切换智能场景。
上述的技术方案,其中,所述步骤s10中训练出lstm神经网络模型包括如下步骤:
s11.对智能家居样板房内的传感器数据和对应的设备状态数据进行采集,智能家居样板房内部署的传感器类型有红外传感器、光传感器、室内室外温度传感器、室内室外湿度传感器,利用传感器控制模块对智能家居样板房内的传感器进行设定时间间隔的定时采样,同时利用alljoyn网关对家庭内各个智能家居设备的状态进行同步采样,对一年内采样的数据进行归一化处理,同时过滤连续时间戳峰值变化超过设定阈值的数据,生成样本集,并按照留出法将样本集划分成训练集、测试集和验证集;
s12.构建基于lstm的神经网络,利用进行归一化和过滤处理后的训练集在tensorflow平台上对神经网络进行迭代训练,得到初始神经网络预测模型。
上述的技术方案,其中,所述步骤s20中部署机器学习系统,与服务器建立通信包括如下步骤:
s21,将s11中的模型部署在tensorflow机器学习平台,tensorflow平台通过amqp通信协议与meshblu服务器平台对接。
s22,作为新样本的传感器数据通过meshblu服务器预处理后转发到机器学习系统。
s23,机器学习系统接收新样本,利用lstm神经网络模型生成一组预测数据,并将预测数据转发给服务器。
s24,meshblu服务器根据预测数据生成一组控制指令,一组控制指令对应着一种智能场景控制方案。
上述的技术方案,其中,所述步骤s30部署alljoyn网关,与服务器建立通信包括如下步骤:
s31,用websocket通信模块(外网代理模块)与网关代理模块组成网关。
s32,网关用外网代理模块与服务器建立长连接,维持双向通信。
s33,网关用网关代理模块处理与局域网设备的通信。
上述的技术方案,其中,所述步骤s40将设备和数据采集模块接入alljoyn网关包括如下步骤:
s41,智能设备和传感器数据采集模块,通过alljoyn协议接入alljoyn网关。
s42,alljoyn网关根据外部指令控制设备和数据采集模块。
上述的技术方案,其中,所述步骤s60更新神经网络模型包括如下步骤:
s60,用户对设备进行控制后,网关将当前设备状态数据和传感器数据通过外网代理模块传递给服务器。
s61,meshblu服务器对数据进行预处理生成一条训练数据,传递给机器学习系统。
s63,机器学习系统接收到训练数据,更新模型。
本发明的智能家居控制方案产生以下几种良好的效果:
效果1:本发明采用的网关由alljoyn网关代理模块和外网代理模块组成,两个模块相互协作,任何智能设备状态的改变都会及时上报给用户,提高了设备状态信息在内外网同步的实时性。
效果2:本发明采用基于中间态作为第三层输入的lstm神经网络模块的变体,构成机器学习系统的神经网络,在同一验证数据集下的预测精度高于采用标准的lstm神经网络。
效果3:本发明采用的机器学习系统根据由服务器生成的训练样本进行模型的自更新,不断地适应新的家庭行为,提高了机器学习系统的泛化性能。
效果4:本发明采用内外网设备控制分离的策略,局域网通信由alljoyn网关代理模块管理,与服务器的通信采用外网代理模块管理,用户在局域网中对设备的控制可以不依赖于服务器,同时,处于局域网的用户可以通过外网代理模块来限制处于外网的用户对设备的控制,提高了智能家居系统的稳定性与安全性。
附图说明
图1是本方案的原理图。
图2是本方案设备控制流程图。
图3是本方案采用的lstm网络模块变体结构图。
图4是本方案智能场景切换流程图。
具体实施方式
以下结合附图和具体实施对本发明进行详细描述,但不作为对本发明的限定。
本方案利用googletensorflow机器学习平台,在python环境下将机器学习系统部署后端,作为服务器端的辅助模块,在场景模式下,根据一组采集的传感器数据预测出当前的设备状态,最终通过alljoyn协议完成对设备的控制,实现智能场景的切换。
本方案的具体实施步骤如下:
a采集样本集,训练出神经网络模型
步骤a包括以下过程:
1.对智能家居样板房内的传感器数据和对应的设备状态数据进行采集。智能家居样板房内部署的传感器类型有红外传感器、光传感器、室内室外温度传感器、室内室外湿度传感器,利用传感器控制模块对智能家居样板房内的传感器进行时间间隔为300秒的定时采样,同时利用alljoyn网关对家庭内各个设备的状态进行同步采样,一天可以采集到288条样本数据。对一年内采样的数据进行归一化处理,同时过滤连续时间戳峰值变化超过设定阈值的数据,生成样本集,并按照留出法将样本集划分成训练集、测试集和验证集。
2.搭建基于lstm的神经网络,利用进行归一化和过滤处理后的训练集在tensorflow平台上对神经网络进行1000次迭代训练,之后再进行一系列的测试和验证操作,得出预测准确度达到95%以上的初始神经网络预测模型。
本实施例的lstm网络模型采用基于标准的4个神经网络层lstm模块的变体,如附图3所示,只保留“忘记门”(forgetgate),“输入门”(inputgate)和“输出门”(outputgate),并只对“忘记门”和“输出门”添加“窥视孔”(peephole),采用对偶的“忘记门”和“输入门”。
b、部署机器学习系统,与服务器建立通信
机器学习系统以步骤a所训练的神经网络模型为核心,并通过amqp与服务器建立通信。机器学习系统根据接收到的数据类型,做出不同的行为。当接收到服务器处理后的训练数据时,机器学习系统进行自更新,而当接收到新样本数据时,它将对当前家庭设备状态进行预测,生成一组设备状态的预测数据通过amqp发送到服务器。
c、部署alljoyn网关,与服务器建立通信
步骤c包括以下过程:
1.在openwrt环境下,对网关集成alljoyn网关代理模块和外网代理模块。网关代理模块根据alljoyn协议管理局域网内的设备,主要负责控制设备和上报设备状态到服务器;外网代理模块通过websocket协议与服务器保持长连接,并与网关代理模块进行通信,用于上报设备状态信息和传感器状态信息、下发设备控制指令。
2.网关代理模块通过外网代理模块与服务器通信,当外网连接断开时,网关代理模块与局域网的通信不会受到影响,用户依然可以对设备进行基本的控制。
d、将设备和数据采集模块接入alljoyn网关
对设备和传感器数据采集器集成alljoyn控制模块,通过alljoyn协议接入网关。根据alljoyn协议,网关可以对设备和传感器数据采集器进行控制,对传感器数据采集器的控制,主要是通知传感器数据采集模块对传感器进行数据采集并上报给网关,由网关作进一步处理。
e、移动端应用控制设备
用户通过移动端应用对设备进行控制分为情况:
1.用户处于家庭内局域网(内网)中。移动端应用对设备的控制只通过alljoyn协议来完成,然后网关将新的设备状态同步到服务器,实现外网同步。
2.用户处于广域网或与家庭局域网不再同一网段(外网)中。移动端对设备的控制,通过websocket协议将控制指令发送到服务器,然后服务器将指令下发到网关,网关通关alljoyn协议完成对设备的控制。
f、更新神经网络模型
步骤f更新神经网络模型包括以下步骤:
1.用户通过客户端对设备进行控制后,家庭内部所有设备状态信息被网关标记一个唯一的数据id并上报给服务器,同时提取当前家庭内传感器的数据信息,标记其与同一批设备状态信息具有相同的数据id,并上报给服务器。
2.服务端拿到具有相同数据id的一组设备状态数据和一组传感器数据,然后将其合并归一化处理,得到一条训练数据(设备状态作为标记信息),生成的训练数据由服务器通过amqp发送给机器学习系统。
3.机器学习系统接收到训练数据之后,利用sgd算法更新神经网络模型。
g、无缝切换智能场景
智能场景的切换以回家模式为例作为说明:
1.在用户回家的时候,触发智能门禁,智能门禁的alljoyn模块与网关通信,网关向传感器数据采集模块发送数据采集指令。
2.传感器数据采集模块收到数据采集指令后,将会采集当前家庭环境中的传感器数据信息,并将其发送给网关。
3.网关收到传感器数据信息,将其标记为新样本数据,通过外网代理模块将其发送给服务器。
4.服务器收到新样本数据后,进行归一化处理,然后将其发送到机器学习系统。
5.机器学习系统收到新样本后,利用预测模型生成一组设备状态的预测数据,并发送给服务器。
6.服务器接收到预测数据,对其进行处理生成一组设备的控制指令,同时通知手机客户端将要进行智能场景切换。
7.用户通过手机客户端确认后,客户端将会发送确认信息给服务器。
8.服务器收到智能场景切换的确认信息后,将控制指令发送给网关,网关收到控制指令之后,通过alljoyn协议完成对家庭内设备的控制,实现智能场景的切换。