ciker_li 发表于 2020-2-24 23:02

炒冷饭,做一个监视熊孩子有没有认真学习的工具

本帖最后由 ciker_li 于 2020-2-24 23:02 编辑

今天偶尔看到一篇opencv的例子,讲解怎么进行人脸识别。
灵感一闪,突然想到,这是不是正好可以检测人是否正在看电脑屏幕,从而判断是否在认真听讲。
说干就干,代码在此
import numpy as np
import cv2
import winsound
import datetime

start = datetime.datetime.now()      <font size="3"><b>#记录起始时间</b></font>

face_cascade = cv2.CascadeClassifier('D:/Python/Python37-32/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml') <b><font size="3"> #cv2自带的训练好的人脸识别模块</font></b>


cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    if len(faces) <= 0:
      end = datetime.datetime.now()
      if((end-start).seconds > 25): <b> <font size="3">#如果25秒没有检测到人脸就报警</font></b>
            winsound.PlaySound('e:/vscode/work/warning.wav', winsound.SND_FILENAME)    <font size="4"><b> #报警声音自己录制
</b></font>            
    else:
      start = datetime.datetime.now()

    if cv2.waitKey(1) & 0xFF == ord('q'):
      break
# 释放摄像头资源
cap.release()
cv2.destroyAllWindows()
程序思路很简单,就是判断有没有检测到人脸,如果25秒内没有,就报警

存在问题:
1、opencv人脸识别的准确率不是很高,有时候带个眼镜,或者侧点脸就识别不出来了
2、没有隐藏进程,容易被杀掉
3、肯定还有很多缺点,懒得想了

这个程序就是炒个冷饭,估计快开学了,认真写好的话也没啥用了,
写得太好,万一被熊孩子查到,给个差评怎么办

有时间还是用C++编写好使

还有个问题困惑我好久了

怎么能发这样看着高大上格式的代码,求指点!

庞晓晓 发表于 2020-2-24 23:15

天生无用 发表于 2020-2-25 18:17

for abc in range(2,1000): #序列 []()''
    for cde in range(2,abc):
      if abc % cde == 0:
            break
    else:
      print(abc,end= '|')


庞晓晓 发表于 2020-2-24 23:16

xiaoaiai2468 发表于 2020-2-24 23:20

{:301_993:}拿张相片能不能破解掉(滑稽.jpg)

毫无存在感 发表于 2020-2-24 23:22

这个的话加一个眼睛动态监测会不会好点

wfik 发表于 2020-2-24 23:23

楼上不禁和我想一:lol块去了

shaguadou 发表于 2020-2-24 23:25

需求是原动力,哈哈

saysee 发表于 2020-2-24 23:38

哈哈!有技术就是好!

unixcs 发表于 2020-2-24 23:58

熊孩子要哭了系列

花花公子 发表于 2020-2-25 00:04

熊孩子再也不能不误正业了。楼主威武。。
页: [1] 2
查看完整版本: 炒冷饭,做一个监视熊孩子有没有认真学习的工具