一、选题简介
1.选题名称
- 生人报警
2.选题原因
-
首先是通过这两次实验,我们对利用OpenCV进行人脸识别有一定的知识了解和技术掌握
-
其次,生人报警是人脸识别的一项重要用途,在生活中的许多方面都有涉及到。该项目通过摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸, 进而对检测到的人脸视觉特征信息进行身份鉴别,可对异常人员及陌生人徘徊逗留识别报警。
3.预期功能
- 遇到“生人”(未知人员)徘徊逗留进行报警
- 记录“熟人”(认证人员)访问时间
- 通过网页直播监控画面
二、设计,重点说明系统部署所使用的容器
1.工作流程
2.整体部署
3.具体布置
(1)树莓派
-
容器
(2)服务器
-
容器
-
数据库
-
rtml实现代码
- docker-compose.yml
version: "3"
services:
rtmp:
build: ./rtmp
ports:
- "1935:1935"
- "8080:80"
volumes:
- /home/pi/docker1/rtmp/conf/nginx.conf:/opt/nginx/nginx.conf
- /usr/local/python3/lib/python3.7/site-packages/django/bin/Home_surveillance/static:/www/static
mysql:
build: ./mysql
ports:
- "3306:3306"
volumes:
- /home/pi/docker1/mysql/data/:/var/lib/mysql/
environment:
MYSQL_ROOT_PASSWORD : 123456
- rtmp/Dockerfile
FROM jun3/rtmp
RUN apt-get update && apt-get install -y vim
- mysql/Dockerfile
FROM mysql:5.7
# allow no password
ENV MYSQL_ALLOW_EMPTY_PASSWORD no
三、运行结果,展示容器启动后,程序的运行结果
四、最终的组内分工+贡献比
学号 | 名称 | 任务 | 贡献比 |
---|---|---|---|
031702623 | 蔡嘉懿 | 搭建树莓派环境,部署树莓派镜像以及树莓派上python代码的编写 | 17% |
031702627 | 李志恒 | nginx服务器等的设置以及django后端的大部分内容 | 22% |
031702632 | 林华伟 | 搭建树莓派环境,部署树莓派镜像以及树莓派上python代码的编写 | 17% |
031702606 | 余琳玲 | 搭建了docker环境、设计mysql数据库的以及部分网页的设计 | 17% |
111700306 | 陈佳雯 | 制作PPT、搭建了docker环境、设计mysql数据库以及部分网页的设计 | 17% |
031702616 | 林涛 | 编写博客、配置服务器端环境以及部分网页的的设计 | 10% |
五、总结(组员分别撰写,统一提交)
-
蔡嘉懿:
作为组长,在本次实验中我选择了项目内容,对任务进行分工,在具体实验中我负责树莓派的配置和相关代码的编写。在实验过程中,我们遇到了一些困难,绕了一些远路,做了些无用功,但从这些经验教训中,我们找到了正确的路,并成功完成了项目,当然这也少不了我的组员们的配合。总之,通过这次实验,我收获了许多。
-
李志恒:
在本次实验中我主要负责了django架构的部署和后端代码的编写,首先是将django和nginx连接起来,然后是django和mysql连接起来。刚开始的时候我们的项目整体部署在树莓派上,遇到的问题就是树莓派的arm架构不支持mysql,后面好不容易弄到了arm上的mysql镜像,结果版本不够,django3.0至少需要mysql5.7,所以又换了个镜像。结果最后换到了服务器上面部署......感觉这些活都白干了,然后又遇到了nginx和uwsgi沟通的问题,还有静态资源定位的问题,花了好长时间一个个解决这些问题。最后终于把应用部署到了服务器上面,感觉终于有一点产品的感觉了,虽然网站很简陋.......但是感觉还是可以的.......
-
林华伟:
这次基于树莓派的人脸识别监控实现过程中,我参与了后端的部署,通过架构云服务器和树莓派来部署web应用,实现了树莓派将视频等数据推流到云服务器上,用户再通过前端界面拉流查看直播监控界面。我们后端采用了nginx加rtmp模块的服务器以及python的管道部署实现了较低的直播延迟(大约只有一两秒,几乎无感),给予用户良好的直播观看体验。
-
余琳玲:
微服务的特点是可以将应用分解为多个部分,使得每一个微服务专注于一个功能,这样方便分工的同时也加大了一些工作量。在部署docker环境和写前端界面的时候遇到了不少问题,在这个过程中学习到uwsgi服务器本身是内网接口,通过nginx被浏览器访问到,用django或是uwsgi这种东西来负责静态文件的处理有点浪费资源,所以整个静态文件的处理都直接有nginx完成,微服务的关键是隔离和划分各个服务。
-
陈佳雯:
这门课磨了这么久终于了结束了!!不过,磨人的同时也确实收获了很多以前完全没了解过的知识。在这次大作业当中,更加深了微服务的了解。特别是nginx的conf配置吧...在这次大作业中,踩了不少坑。还学习了nginx的静态资源服务,才发现自己只了解了微服务的冰山一角啊。整个项目都是用python来写的,对flask框架搭建和视频在web端的传输有了初步的认识。不得不说,python的好多库都太香了...
-
林涛:
这次的大作业全靠大佬带,因为本人Python不怎么会(其实什么都不会),所以这次作业就只能做些简单的工作,比如写博客,配置树莓派、服务器,帮忙写网页等,但从这门课还是学会了许多新知识,比如容器的创建、镜像的部署以及树莓派的使用等。