基于Python&Facepp打的造智能监控系统
就在前天,隔壁邻居家的房子被租出去了。因为我是农村的,房子都是独立的带院子的,没错就是这样的:
因为家里经常没人住,并且还放有其他贵重物品,生怕一不留神,这些租户跳到我家。把这些东西洗劫一空。此时我已经安耐不住内心的小激动!那么。搭建一个智能监控系统可好!
2:新闻报道
2017年7月13日讯,家庭摄像头遭入侵,公民隐私被侵犯的案子,已经破了。今天傍晚,市公安局发布消息称,19天内,北京警方成功打掉了全国首例网上传播家庭摄像头破解软件的犯罪链条,抓获涉案人员24名。
这些人的脑袋都秀逗了吧,这都能干出来,吓得我赶紧自己搭建了一个智能监控系统。
3:方案设计详解
先大概叙述一下MS的功能,
1:硬件部分
两个USB高清摄像头,
一个超声波传感器(HC-SR04),
一个树莓派3 modelB,
散热扇(很重要!)
对于超声波传感器,主要的功能就是检查距离的变化,也就是说当检测是有运动物体的产生,才会激活摄像头。
1:也是为了减轻树莓派CPU负荷
2:合理利用那可怜的32G内存卡,
对于两个摄像头,一个放置在家门口的过道里,每当来人的时候,超声波传感器变化检测到运动物体,这时会激活摄像头便会捕捉一系列图片,让系统进行分析,包括面部,身体等信息,所以,这个摄像头要求拍摄的质量和角度要很好,另一个摄像头这放置在院子的边角,要求能照到整个院子,这个摄像头主要任务就是检测人体,并不强求识别出人脸,毕竟距离太远。
对于树莓派,做个监控系统的话,不能一直把电脑放在上面吧,那样太浪费资源了,所以当时狠心的买了个3B,不过还好用起来不错,他的角色就是处理硬件传回来的各种信息。。。
2:代码部分
下面慢慢道来!
0&TImes;02:环境搭建
curl安装: sudo apt-geTInstall curl
MySQLdb安装: sudo apt geTInstallpython-pip sudo apt-geTInstalllibmysqlclient-dev pipinstallmysql-python
LAMP: sudo apt-getinstallapache2 sudo apt-getinstallphp7.0sudo apt-getinstalllibapache2-mod-php7.0sudo apt-getinstallmysql-serversudo apt-getinstallphpmyadmin sudo chmod777/var/www/html/ sudoln-s /usr/share/phpmyadmin /var/www/html/ sudo sed -i‘s/;extension=php_mbstring.dll/extension=php_mbstring.dll/’/etc/php/7.0/apache2/php.ini sudo /etc/init.d/apache2 restart mysql--user=root -pCREATEDATABASEIFNOTEXISTS`MS`DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;USE`MS`;CREATETABLE`None`(`None`int(11)NOTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8;
OpenCV: sudo apt-getinstallbuild-essential sudo apt-getinstallcmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-getinstallpython-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev gitclonehttps://github.com/0x024/opencv.git cd ~/opencv mkdirreleasecdreleasecmake -DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local.。 make -j1 sudo makeinstall
0×03: 目录树
0×04:代码分析
1:MS.py(monitor system的简称)
总体文件函数的分布!
checkdist()
首先来了解一下HC-SR04超声波传感器
采用IO口TRIG触发测距,给至少10us的高电平信号;
模块自动发送8个40khz的方波,自动检测是否有信号返回;
有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2
引脚与树莓派连接方式:
VCC,超声波模块电源脚,接5V电源即可
Trig,超声波发送脚,高电平时发送出40KHZ出超声波
Echo,超声波接收检测脚,当接收到返回的超声波时,输出高电平
GND,超声波模块GND
这里附上树莓派串口的原理图!方便自定义连接
这里我将VCC连接至 Pin#02,将Gnd连接至Pin#06,将Trig连接至Pin#03,将Echo连接至Pin#05
因为之前设置成了GPIO.setmode(GPIO.BCM),所以在写的时候都要写成Name那一列,Pin#只是指示作用!
这里我自定义了一个index。默认的值就是传感器在无运动物体下所稳定的int值,这个需要根据传感器摆放位置自行设定。
初始化时将trig和echo端口都置低,首先向给 trig 发送至少10 us的高电平脉冲(模块自动向