teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

不必要な文の削除

2020/07/29 04:22

投稿

aqufiz
aqufiz

スコア70

answer CHANGED
@@ -4,18 +4,6 @@
4
4
  ```
5
5
  でtimeモジュールをimportして,
6
6
 
7
- ```python
8
- while True:
9
- tick = cv2.getTickCount()
10
- close_eye = 0.0
11
-
12
- ret, rgb = cap.read()
13
- gray = cv2.cvtColor(rgb, cv2.COLOR_RGB2GRAY)
14
- faces = face_cascade.detectMultiScale(
15
- gray, scaleFactor=1.11, minNeighbors=3, minSize=(100, 100))
16
- ```
17
- ~~この部分に,close_eye=0.0を加えます.~~
18
-
19
7
  while分の中に入れてしまうと毎回初期化されてしまうため,
20
8
  こちらの位置に修正してください.
21
9
  ```Python

4

codeの再修正

2020/07/29 04:21

投稿

aqufiz
aqufiz

スコア70

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  while True:
9
9
  tick = cv2.getTickCount()
10
10
  close_eye = 0.0
11
- t1 = 0.0
11
+
12
12
  ret, rgb = cap.read()
13
13
  gray = cv2.cvtColor(rgb, cv2.COLOR_RGB2GRAY)
14
14
  faces = face_cascade.detectMultiScale(
@@ -20,7 +20,7 @@
20
20
  こちらの位置に修正してください.
21
21
  ```Python
22
22
  cap = cv2.VideoCapture(0)
23
-
23
+ t1 = 0.0
24
24
  close_eye = 0.0
25
25
  face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
26
26
  face_parts_detector = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')

3

codeの修正

2020/07/29 04:17

投稿

aqufiz
aqufiz

スコア70

answer CHANGED
@@ -8,6 +8,7 @@
8
8
  while True:
9
9
  tick = cv2.getTickCount()
10
10
  close_eye = 0.0
11
+ t1 = 0.0
11
12
  ret, rgb = cap.read()
12
13
  gray = cv2.cvtColor(rgb, cv2.COLOR_RGB2GRAY)
13
14
  faces = face_cascade.detectMultiScale(
@@ -31,11 +32,10 @@
31
32
  ずれていた場合は修正してください.
32
33
  ```Python
33
34
  if (left_eye_ear + right_eye_ear) < 0.45:
34
- if close_eye == 0.0:
35
+ if t1 == 0.0:
35
36
  t1 = time.time()
36
37
  else:
37
- t2 = time.time()
38
- close_eye += t2-t1
38
+ close_eye += time.time()-t1
39
39
  t1 = time.time()
40
40
  if close_eye > 4.0:
41
41
  cv2.putText(rgb,"close",
@@ -51,4 +51,5 @@
51
51
  line_notify = requests.post(line_notify_api, data=payload, headers=headers)
52
52
  else:
53
53
  close_eye = 0.0
54
+ t1 = 0.0
54
55
  ```

2

close_eyeの位置の修正

2020/07/29 04:16

投稿

aqufiz
aqufiz

スコア70

answer CHANGED
@@ -13,8 +13,19 @@
13
13
  faces = face_cascade.detectMultiScale(
14
14
  gray, scaleFactor=1.11, minNeighbors=3, minSize=(100, 100))
15
15
  ```
16
- この部分に,time=0.0を加えます.
16
+ ~~この部分に,close_eye=0.0を加えます.~~
17
17
 
18
+ while分の中に入れてしまうと毎回初期化されてしまうため,
19
+ こちらの位置に修正してください.
20
+ ```Python
21
+ cap = cv2.VideoCapture(0)
22
+
23
+ close_eye = 0.0
24
+ face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
25
+ face_parts_detector = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
26
+ ```
27
+
28
+
18
29
  そして,該当の部分を下記のようにすれば,うまく行くかもしれません.
19
30
  ただ,瞳を検出していないと判定している部分の位置があっているか分からないので,
20
31
  ずれていた場合は修正してください.

1

timeをclose_eyeに変更しました.

2020/07/29 01:57

投稿

aqufiz
aqufiz

スコア70

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  ```python
8
8
  while True:
9
9
  tick = cv2.getTickCount()
10
- time = 0.0
10
+ close_eye = 0.0
11
11
  ret, rgb = cap.read()
12
12
  gray = cv2.cvtColor(rgb, cv2.COLOR_RGB2GRAY)
13
13
  faces = face_cascade.detectMultiScale(
@@ -20,13 +20,13 @@
20
20
  ずれていた場合は修正してください.
21
21
  ```Python
22
22
  if (left_eye_ear + right_eye_ear) < 0.45:
23
- if time == 00:
23
+ if close_eye == 0.0:
24
24
  t1 = time.time()
25
25
  else:
26
26
  t2 = time.time()
27
- time += t2-t1
27
+ close_eye += t2-t1
28
28
  t1 = time.time()
29
- if time > 4.0:
29
+ if close_eye > 4.0:
30
30
  cv2.putText(rgb,"close",
31
31
  (10,180), cv2.FONT_HERSHEY_PLAIN, 3, (0,0,255), 3, 1)
32
32
    
@@ -39,5 +39,5 @@
39
39
  headers = {'Authorization': 'Bearer ' + line_notify_token } # 発行したトークン
40
40
  line_notify = requests.post(line_notify_api, data=payload, headers=headers)
41
41
  else:
42
- time = 0.0
42
+ close_eye = 0.0
43
43
  ```