资讯专栏INFORMATION COLUMN

基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现

weknow619 / 2404人阅读

摘要:第步安装是一个免费开源软件,可运行世界上的服务器。要检查是否安装了,请将浏览器指向您服务器的地址例如。可以运行以下命令来显示你的服务器的地址第步安装是一个强大的数据库管理系统,用于组织和检索数据。环境是一个开源消息代理,实现了协议版本和。

目录

效果演示

第三方库的安装

 换源

魔镜界面绘制

服务器部署

人脸识别

流程图

 源码地址


效果演示

天气新闻日期热点等更新【录屏】

 

第三方库的安装

import paho.mqtt.client as pahomqttfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QApplicationfrom PyQt5 import QtGui, QtCore, QtWidgetsfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *from bs4 import BeautifulSoupimport Adafruit_DHTfrom aip import AipSpeechfrom aip import AipFacefrom playsound import playsoundimport pyaudioimport requestsimport cv2import snowboydecoderfrom mirrorUI import Ui_MainWindowfrom face import FaceFunctionfrom speech import SpeechFunctionimport sys, osimport timeimport stringimport randomimport hashlibimport base64import signalimport RPi.GPIO as GPIOimport jsonimport waveimport urllibimport urllib3import reimport threading

 换源

sudo nano /etc/apt/sources.listdeb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contribdeb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contribsudo vim /etc/apt/sources.list.d/raspi.listdeb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main uisudo apt-get updatesudo apt-get upgradesudo mkdir ~/.pipsudo vim ~/.pip/pip.conf[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=mirrors.aliyun.com

安装mqtt

pip3 -Vpip3 install paho-mqtt

安装Qt5

sudo apt-get install python3-pyqt5 -y

 git clone提速

git config --global http.postBuffer 524288000

安装Adafruit_DHT

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.gitcd Adafruit_Python_DHTsudo python3 setup.py install

opencv安装
 

sudo apt-get install libhdf5-dev libhdf5-serial-dev -ysudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 -ysudo apt-get install libatlas-base-dev -ysudo apt-get install libjasper-dev -ypip3 install opencv_python

安装字体

复制到/usr/share/fonts/

安装portaudio

下载portaudio库http://portaudio.com/download.htmlsudo apt install libasound-dev # 一定要有这一句sudo ./configuresudo makesudo make installvim ~/.bashrcexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libsudo ldconfig

安装snowboy

sudo apt-get install pulseaudio -y
sudo apt-get install sox -y
sox -d -d  # 测试
sudo apt-get install python3-pyaudio -y
sudo apt-get install swig -y
sudo apt-get install libatlas-base-dev -y
git clone https://github.com/Kitt-AI/snowboy.git
cd snowboy/swig/Python3 && make

// snowboydecoder将第 5 行代码 from * import snowboydetect 改为 import snowboydetect 即可直接运行
// 具体用法可参考链接:https://www.jianshu.com/p/a1c06020f5fd

安装Gst(playsound用到)


sudo apt-get install gir1.2-gst-plugins-base-1.0 -y
 

安装nginx


1、安装nginx  web服务器

sudo apt-get install nginx -y


2、启动nginx

sudo /etc/init.d/nginx start


nginx的www根目录默认在 /usr/share/nginx/html中


3、修改nginx的配置文件

sudo vim /etc/nginx/sites-available/default

listen   8080;## listen for ipv4; this line is default and implied
//监听的端口号,如果与其它软件冲突,可以在这里更改
root /usr/share/nginx/www;
//nginx 默认路径html所在路径
index index.html index.htm index.php;
//nginx默认寻找的网页类型,可以增加一个index.php
 

其他库


pip3 install bs4 requests playsound baidu-aip pyaudio lxml
 

魔镜界面绘制

1、安装Qt

​    [http://download.qt.io/archive/qt/5.9/5.9.3/](http://download.qt.io/archive/qt/5.9/5.9.3/)

下载exe:[qt-opensource-windows-x86-5.9.3.exe](http://download.qt.io/archive/qt/5.9/5.9.3/qt-opensource-windows-x86-5.9.3.exe)

2、使用下载工具IDM,100M宽带下载速度能达到12M/s

[https://www.lanzous.com/i5sglrc](https://www.lanzous.com/i5sglrc)

3、下载过程中,先去注册一个Qt账号

[https://login.qt.io/register](https://login.qt.io/register)

4、.ui转.py


pyuic5 -o mirrorUI.py mirrorUI.ui
 

5、mirrorUI.py添加启动语句


import sys
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)   # 定义Qt应用
    MainWindow = QtWidgets.QMainWindow()     # 窗口实例
    ui = Ui_MainWindow()                     # 界面UI实例
    ui.setupUi(MainWindow)                   # 绘制界面
    MainWindow.show()                        # 显示窗口
    sys.exit(app.exec_())                    # 应用关闭
 

6、界面label对应表

label_temperature         温度
label_humidity                湿度
label_weather                  天气
label_weathertips          天气助手
label_weathericon         天气图标
label_time                      时间
label_date                     日期
label_week                        星期
label_historyhead          历史上的今天
label_historymsg            历史上的今天 的内容
label_communicate      文字交互区
label_todohead              今日事项
label_todomsg                今日事项 的内容
label_headlineshead    今天头条
label_headlinesmsg      今日头条 的内容
label_gif                              洛天依gif图

7、信号与槽函数


# 继承QObject
class MQTT(QObject):  
# 创建信号量,传字符串
mqttSignal = pyqtSignal(object)
# 连接信号与槽函数
mqtt.mqttSignal.connect(ui.updateCommunicate)
# 发送信号量
self.mqttSignal.emit("qwe")
 

8、github源码链接:

[https://github.com/1061700625/RaspberryPi-MagicMirror](https://github.com/1061700625/RaspberryPi-MagicMirror)

9、mirrorUI.ui路径:

[mirrorUI.ui](https://github.com/1061700625/RaspberryPi-MagicMirror/blob/master/PythonProject/mirrorUI.ui)

服务器部署

web环境

搭建Linux+Apache+MySQL+PHP环境。

第1步:安装Apache

Apache是一个免费开源软件,可运行世界上50%的Web服务器。


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
sudo /etc/init.d/apache2 restart
 

要检查是否安装了Apache,请将浏览器指向您服务器的IP地址(例如http://127.0.0.1)。

可以运行以下[命令](https://www.linuxcool.com/)来显示你的服务器的IP地址:


ifconfig | grep inet | awk "{ print $2 }"
 

第2步:安装MySQL(Ubuntu)

MySQL是一个强大的数据库管理系统,用于组织和检索数据。


sudo apt-get install mysql-server mysql-client
 

查看端口:


sudo netstat -tap | grep mysql
 

用命令激活它:


sudo mysql_install_db
 

通过运行MySQL设置脚本完成:


sudo /usr/bin/mysql_secure_installation
 


Would you like to setup VALIDATE PASSWORD plugin? => y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 => 0
New password: => xxxxxxxx
Re-enter new password:  => xxxxxxxx
Remove anonymous users?: => y
Disallow root login remotely?: => y
Remove test database and access to it?: => y
Reload privilege tables now?: => y
 

第2步:安装MySQL(Raspbian)


sudo apt-get install mariadb-server mariadb-client
 

用命令激活它:


sudo mysql_install_db
 

启动服务


/usr/bin/mysqld_safe --datadir="/var/lib/mysql"
sudo service mysql start
 

通过运行MySQL设置脚本完成:


sudo /usr/bin/mysql_secure_installation
 


Enter current password for root (enter for none):
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
 

第3步:安装PHP

PHP是一种开源的Web脚本语言,广泛用于构建动态网页。


sudo apt install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2 libapache2-mod-php7.2
 

测试PHP:


查看版本:
php --version

输出phpinfo:


sudo vim /var/www/html/phpinfo.php


写入如下内容:



浏览器输入:


http://127.0.0.1/phpinfo.php

第4步:重新启动apache以使所有更改生效


sudo service apache2 restart
 

第5步:安装phpmyadmin


sudo apt install php-mbstring php7.2-mbstring php-gettext -y
sudo systemctl restart apache2.service
sudo apt install phpmyadmin -y

安装过程中的选项:

- 选择 **Apache2** 并点击确定
- 选择 **Yes**来配置 phpMyAdmin 管理的数据库
- 输入刚设置的数据库**密码**
- 若报错,可以选择**ignore**

安装完成后需要将**phpmyadmin**的文件夹复制到**www/html**文件夹下进行管理


sudo cp -Rf /usr/share/phpmyadmin /var/www/html/
 

打开浏览器并输入http://127.0.0.1/phpmyadmin

输入用户名、密码后登陆

网站部署

放置页面

将**pictureViewer**文件夹整个放到/var/www/html/路径下:
复制:sudo cp -r pictureViewer /var/www/html

移动:sudo mv pictureViewer /var/www/html

修改权限:


sudo chmod 777 /var/www/html/pictureViewer/*
 

将文件夹名**pictureViewer**修改为**MagicMirror**:


sudo mv /var/www/html/pictureViewer /var/www/html/MagicMirror
 

浏览器输入http://127.0.0.1/MagicMirror即可

测试是否能上传图片成功

打开并修改文件夹下的testUpload.py:


vim /var/www/html/MagicMirror/testUpload.py
 


url = "http://127.0.0.1/MagicMirror/upload_file.php"
 

运行Python:


cd /var/www/html/MagicMirror/
python3 testUpload.py
 

若提示缺少库,则先安装:


pip3 install requests
 

上传成功后,刷新浏览器界面,会多一张图片。

 MQTT环境

Eclipse Mosquitto是一个开源消息代理,实现了MQTT协议版本3.1和3.1.1。

Mosquitto安装

添加存储库(Raspbian可跳过):


sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
 

更新软件包:


sudo apt-get update
 

安装:


sudo apt-get install mosquitto -y
 

安装命令行客户端:


sudo apt-get install mosquitto-clients -y
 

默认情况下,Ubuntu将在安装后启动Mosquitto服务。

在新终端中,使用`mosquitto_sub`订阅测试主题:


mosquitto_sub -h localhost -t test
 

新开一个其他终端并发布消息:


mosquitto_pub -h localhost -t test -m "hello world"
 

启动服务端


#-c:指定特定配置文件启动
#-d:后台运行
mosquitto -c /etc/mosquitto/mosquitto.conf -d
 

异常情况

如果遇到**Unable to acquire the dpkg frontend lock**这个问题

首先检查是否在运行apt,apt-get相关的进程:


ps aux | grep -i apt
 

如果存在与apt相关的正在运行的进程,kill掉进程:


sudo kill -9
 

继续上一次的配置:


sudo dpkg --configure -a
 

或者直接简单粗暴的:


sudo killall apt apt-get
 

之后可以新的apt操作

人脸识别

流程图


初始化 --> 开启子线程 --> OpenCV人脸识别 -->  情感检测 --> 照片上传服务器 --> OpenCV人脸识别
 

 情感检测API

百度AI平台:https://console.bce.baidu.com/

流程图

安卓app

 

 

魔镜

系统连接图

 

 源码地址

点我下载https://download.csdn.net/download/weixin_41937552/29782241

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121992.html

相关文章

  • 百度世界发布渡鸦新品,软硬件结合更懂生活

    摘要:百度世界发布划时代产品,软硬件结合更懂智能生活月日,百度世界大会在北京盛大举行。百度已与一汽集团签署战略合作协议,共同推动该项技术产品落地。渡鸦在会上同时公布了另外两款即将面世的产品。 百度世界发布划时代产品,软硬件结合更懂智能生活 11 月 16 日,2017 百度世界大会在北京盛大举行。百度在会上发布了手机百度 10.0 和全新人工智能硬件Raven H等软硬件产品。百度董事长兼首...

    trilever 评论0 收藏0
  • 工作5年后我才发现:90%技术问题,可以解决

    摘要:指令识别唤醒后,可以下发指令比如播放音乐,查询天气,拨打电话定闹钟等,检查指令可以正常被执行。所以,语音识别测试也可以进行一些自动化测试。 01.前言 现在市面上...

    wupengyu 评论0 收藏0
  • 关于AI视觉-如何连接使用智能语音开发套件(USB语音开发套件)

    摘要:用户在使用语音开发套件的时候,可接入开放平台利用其提供的丰富接口,自定义地实现诸如语音唤醒,语音识别,语音降噪,语义理解,语音合成,内容信源,回声消除需搭配与硬件来实现全双工交互需搭配与硬件来实现等功能。 ...

    tigerZH 评论0 收藏0
  • 持续更新免费API,做一个API搬运工

    摘要:为了方便广大的开发者,特此统计了网上诸多的免费,为您收集免费的接口服务,做一个的搬运工,以后会每月定时更新新的接口。将长段中文切词分开。 为了方便广大的开发者,特此统计了网上诸多的免费API,为您收集免费的接口服务,做一个api的搬运工,以后会每月定时更新新的接口。有些接口来自第三方,在第三方注册就可以成为他们的会员,免费使用他们的部分接口。 百度AccessToken:针对HTTP ...

    Shihira 评论0 收藏0
  • 基于云计算上人工智能服务

    摘要:全球主要的云计算提供商现在提供基于云计算的人工智能产品。显然,由于从头开始构建这样一个系统的费用高昂,人工智能作为一项服务仍然一直位于行业巨头所在的领域。在用于人工智能服务的品牌下,公司提供不少于项服务。如今,采用人工智能的企业遇到了一个主要障碍,那就是在内部开发人工智能产品成本高昂,因此有了外包人工智能产品的需求。而对于从中小企业到预算受限的大型企业来说,通过云计算来采用人工智能的成本要低...

    Leo_chen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<