以下是2632天前的记录
智能魔镜
1 2017年02月14日 星期二基于Dragonboard 410c的智能魔镜设计(4)——如何检索视频消息并播放显示
互联网 (0)前面给大家介绍了如何自动的检索指定用户的文本消息,并且采用html模板方式在qt控件上自动循环的播放文本消息,但是在智能魔镜中我们还可以向指定用户推送视频消息,实时显示视频消息,这里进一步向大家介绍如何在基于dragonboard 410c的智能魔镜上实现视频消息的自动检索和播放。与检索文本消息类似,在我们构建的智能魔镜数据库中的pushInfo表中保存了视频消息的路径,如果在该表中的字段infoType==1的时候,为视频消息,这时候在pushInfo表中的filePath中将会记录该视频的具体的地址,可以是云端也可以是本地的视频路径,都可以支持,同样在视频消息中,字段isTop和viewWight依然对其其作用,可以控制该视频的播放顺序和是否播放,如果isTop为1表示该视频将优先播放,如果多个视频消息的isTop为1那么将根据时间先后来排序,如果viewWight为0表示该消息已经播放,不再播放,根据上述规则,本文在数据库类中构建getTextMessageList(self,userID)函数来完成对指定用户的视频消息的检索,具体实现代码如下:def getUserVideoM
基于Dragonboard 410c的智能魔镜设计(5)——通过人脸进行用户身份识别
互联网 (0)根据前面的设计方案,在设计的基于dragonboard 410c的智能魔镜中,需要根据超声波检测到有人靠近的时候,通过USB摄像头采集人脸数据,然后根据数据库中的人脸数据进行人脸匹配,识别用户的身份,*终根据用户身份显示不同的消息和推送不同的内容,这期blog将重点向大家介绍智能魔镜中的人脸检测和识别处理实现的原理和过程。需要进行基于人脸的用户身份识别,首先需要检测出人脸,然后根据检测出来的人脸与数据库中的人脸进行匹配,*终得出匹配度,根据匹配度确定该人脸的身份,这里将从这两个方面来向大家介绍如何在智能魔镜中实现人脸身份检测,其实在前面的一系列blog中已经给大家介绍了人脸识别和检测的实现方法,这里就在结合智能魔镜代码设计再向大家如何应用前面已经设计好的人脸检测和识别的代码,将其集中到智能魔镜中的应用中来。在基于USB摄像头人脸识别的文章中已经告诉了大家如使用Python和OpenCV来何构建人脸检测代码,我们这里构建了一个getFac.py文件,在该文件中通过getFac类来实现人脸的检测,其实也就是对前面blog方法的一次封装即可,具体代码如下:def getface faces=
以下是2638天前的记录
智能魔镜
2 2017年02月08日 星期三基于Dragonboard 410c的智能魔镜设计(8)——python脚本实现UI原型
互联网 (0)在上一篇文章中,已经跟大家介绍如何智能魔镜的UI原型设计,并且采用designer.exe工具完成了原始的魔镜UI界面设计,可以看出,整个魔镜的UI设计非常简单,但是如果要实心较好的效果,我们单独使用designer.exe工具很难完成,这就需要我们在完成原型设计后得到的xml文件进行进一步的修改和细化,以达到我们的设计要求。这里,大家可以直接修改designer.exe文件的xml的元素的属性等来调节和细化UI,同时也可以使用pyuic5工具将其转换成py脚本,然后对其进行修改,本文在设计中,直接使用pyuic5工具将其进行了转换,然后进行修改,*终得到的UI代码如下:# -*- coding: utf-8 -*-from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName(“MainWindow”)desktopRect=QtWidgets.QDesktopWidget().screenGeome
基于dragonboard 410c的智能魔镜设计(9)——如何实现UI交互控制逻辑
互联网 (0)在UI原型设计和Python脚本实现UI原型两个blog中已经跟大家介绍了整个智能魔镜端的交互UI的设计原型和实现的Python脚本及方式,这里将进一步教大家如何实现整个UI交互的逻辑控制程序,根据智能魔镜整体设计文章中的设计方案,智能魔镜交互主要是依托摄像头、超声波和显示屏与用户进行交互,智能魔镜依托超声波模块实时的监控镜子前面的人体动态,在有人靠近的时候启动摄像头,然后通过图像识别来处理和识别当前的用户身份,*后根据用户身份启动显示模块控制显示,将指定的用户消息推送显示在当前使用镜子的用户面前。以上就是在智能魔镜中的显示控制逻辑设计中需要完成的内容,在具体实现的过程中,对于显示逻辑控制这一块,主要是通过构建了一个magic_mirroWindows.py文件来实现,在这里实现了对魔镜的交互UI类的实例化,同时创建了一个magic_mirroWindows类来实现魔镜UI控制的各个逻辑控制功能,其中主逻辑是通过实例化该类来启动魔镜的UI交互程序,在UI交互程序控制中,首先会通过函数调用刷新页面的公共显示信息,然后调用定时器对执行过程进行控制,定时的检测当前镜子前面的情况,然后根据定时
基于Dragonboard 410c的智能魔镜设计(2)——如何设计数据库
互联网 (0)本篇blog将在智能魔镜设计(1)整体方案的基础上,完成对基于dragonboard 410c的智能魔镜的数据库的设计,首先我们根据方案分析,可以知道,在智能魔镜上需要保持用户信息、保持消息信息,因此,基本可以构建一个用户表userInfo和一个消息表pushInfo两个表就可以对整个智能魔镜的数据进行管理,可以方便的调用和存储相关的数据,具体的数据库设计方案如下:上述两个表中,userInfo表用于存储系统中的用户信息,主要包括ownerID, 用户ID,Name,用户名,password 用户密码,保存的是MD5密码摘要信息,email,用户邮箱、phone 用户手机、haarValue,用户脸部特征值,pushInfo表为推送消息表,系统中所有的推送消息都被保存在该表中,其中infoID为消息的ID,ownerID为消息的拥有者的ID,表示这条消息是属于哪个用户的,系统将在后续根据这个值将消息推送给该用户,pushID,推送者,表示这条消息是由哪个用户推送过来的,系统根据该值识别推送消息的用户,infoType,消息类型,该值为0或者1 ,位0的时候表示是普通的文本消息,填写in
基于Dragonboard 410c的智能魔镜设计(3)——针对不同用户的消息检索显示
互联网 (0)在前两个blog中已经跟大家介绍了如何应用dragonbaord 410c来搭建智能魔镜,对系统的整体设计方案和数据库的构建方案进行了分析和设计,给出了详细的设计框架和部分数据库的实现代码,本节将在此基础上向大家介绍,如何实现在镜子上根据不同的用户播放不同的消息的功能。根据前面的设计,我们已经搭建好了数据库,并且在数据库中构建了一张pushInfo表来管理系统的消息,其表中设计了消息ID,ownerID和pushID等字段,通过ownerID我们可以方便的查询出该消息的发送者,同时通过pushID我们可以查询得到该消息的推送者,这样要检索出当前用户的消息,我们只需要根据摄像头检测出来的用户身份ID在该pushInfo表中以ownerID字段就可以检索出所有的该用户的消息,同时在表中还设置了viewWight和isTop两个字段用于标记该消息的显示顺序,如果isTop表示该消息要显示在*前面,如果该用户有多条的isTop的消息,则按照时间的先后排序,将*近的消息显示在*前面,同时还根据viewWight来判断消息是否被显示,如果该字段设置为0表示该消息已经被显示,无需再显示,根据这一规则