29
29
dl_recognize_result = None
30
30
31
31
32
- def dual_button_0_blue_wasClicked_event (state ):
33
- global dual_button_0_blue , dual_button_0_red , sys_state , FACE_RECOGNIZE , FACE_ENROLL , FACE_DELETE , detector , img , dl_recognizer , detection_result , IDLE , kp , sys_state_prev , frame_count , res , dl_recognize_result
32
+ def dual_button_0_blue_wasClicked_event (state ): # noqa: N802
33
+ global \
34
+ dual_button_0_blue , \
35
+ dual_button_0_red , \
36
+ sys_state , \
37
+ FACE_RECOGNIZE , \
38
+ FACE_ENROLL , \
39
+ FACE_DELETE , \
40
+ detector , \
41
+ img , \
42
+ dl_recognizer , \
43
+ detection_result , \
44
+ IDLE , \
45
+ kp , \
46
+ sys_state_prev , \
47
+ frame_count , \
48
+ res , \
49
+ dl_recognize_result
34
50
sys_state = FACE_RECOGNIZE
35
51
36
- def dual_button_0_red_wasClicked_event (state ):
37
- global dual_button_0_blue , dual_button_0_red , sys_state , FACE_RECOGNIZE , FACE_ENROLL , FACE_DELETE , detector , img , dl_recognizer , detection_result , IDLE , kp , sys_state_prev , frame_count , res , dl_recognize_result
52
+
53
+ def dual_button_0_red_wasClicked_event (state ): # noqa: N802
54
+ global \
55
+ dual_button_0_blue , \
56
+ dual_button_0_red , \
57
+ sys_state , \
58
+ FACE_RECOGNIZE , \
59
+ FACE_ENROLL , \
60
+ FACE_DELETE , \
61
+ detector , \
62
+ img , \
63
+ dl_recognizer , \
64
+ detection_result , \
65
+ IDLE , \
66
+ kp , \
67
+ sys_state_prev , \
68
+ frame_count , \
69
+ res , \
70
+ dl_recognize_result
38
71
sys_state = FACE_ENROLL
39
72
40
- def btnPWR_wasClicked_event (state ):
41
- global dual_button_0_blue , dual_button_0_red , sys_state , FACE_RECOGNIZE , FACE_ENROLL , FACE_DELETE , detector , img , dl_recognizer , detection_result , IDLE , kp , sys_state_prev , frame_count , res , dl_recognize_result
73
+
74
+ def btnPWR_wasClicked_event (state ): # noqa: N802
75
+ global \
76
+ dual_button_0_blue , \
77
+ dual_button_0_red , \
78
+ sys_state , \
79
+ FACE_RECOGNIZE , \
80
+ FACE_ENROLL , \
81
+ FACE_DELETE , \
82
+ detector , \
83
+ img , \
84
+ dl_recognizer , \
85
+ detection_result , \
86
+ IDLE , \
87
+ kp , \
88
+ sys_state_prev , \
89
+ frame_count , \
90
+ res , \
91
+ dl_recognize_result
42
92
sys_state = FACE_DELETE
43
93
94
+
44
95
def setup ():
45
- global dual_button_0_blue , dual_button_0_red , sys_state , FACE_RECOGNIZE , FACE_ENROLL , FACE_DELETE , detector , img , dl_recognizer , detection_result , IDLE , kp , sys_state_prev , frame_count , res , dl_recognize_result
96
+ global \
97
+ dual_button_0_blue , \
98
+ dual_button_0_red , \
99
+ sys_state , \
100
+ FACE_RECOGNIZE , \
101
+ FACE_ENROLL , \
102
+ FACE_DELETE , \
103
+ detector , \
104
+ img , \
105
+ dl_recognizer , \
106
+ detection_result , \
107
+ IDLE , \
108
+ kp , \
109
+ sys_state_prev , \
110
+ frame_count , \
111
+ res , \
112
+ dl_recognize_result
46
113
M5 .begin ()
47
114
Widgets .fillScreen (0x222222 )
48
115
BtnPWR .setCallback (type = BtnPWR .CB_TYPE .WAS_CLICKED , cb = btnPWR_wasClicked_event )
49
116
camera .init (pixformat = camera .RGB565 , framesize = camera .QVGA )
50
117
dual_button_0_blue , dual_button_0_red = DualButtonUnit ((8 , 9 ))
51
- dual_button_0_blue .setCallback (type = dual_button_0_blue .CB_TYPE .WAS_CLICKED , cb = dual_button_0_blue_wasClicked_event )
52
- dual_button_0_red .setCallback (type = dual_button_0_red .CB_TYPE .WAS_CLICKED , cb = dual_button_0_red_wasClicked_event )
118
+ dual_button_0_blue .setCallback (
119
+ type = dual_button_0_blue .CB_TYPE .WAS_CLICKED , cb = dual_button_0_blue_wasClicked_event
120
+ )
121
+ dual_button_0_red .setCallback (
122
+ type = dual_button_0_red .CB_TYPE .WAS_CLICKED , cb = dual_button_0_red_wasClicked_event
123
+ )
53
124
detector = dl .ObjectDetector (dl .model .HUMAN_FACE_DETECT )
54
125
dl_recognizer = dl .HumanFaceRecognizer ()
55
126
IDLE = 0
@@ -60,8 +131,25 @@ def setup():
60
131
sys_state_prev = IDLE
61
132
frame_count = 0
62
133
134
+
63
135
def loop ():
64
- global dual_button_0_blue , dual_button_0_red , sys_state , FACE_RECOGNIZE , FACE_ENROLL , FACE_DELETE , detector , img , dl_recognizer , detection_result , IDLE , kp , sys_state_prev , frame_count , res , dl_recognize_result
136
+ global \
137
+ dual_button_0_blue , \
138
+ dual_button_0_red , \
139
+ sys_state , \
140
+ FACE_RECOGNIZE , \
141
+ FACE_ENROLL , \
142
+ FACE_DELETE , \
143
+ detector , \
144
+ img , \
145
+ dl_recognizer , \
146
+ detection_result , \
147
+ IDLE , \
148
+ kp , \
149
+ sys_state_prev , \
150
+ frame_count , \
151
+ res , \
152
+ dl_recognize_result
65
153
M5 .update ()
66
154
dual_button_0_blue .tick (None )
67
155
dual_button_0_red .tick (None )
@@ -70,13 +158,15 @@ def loop():
70
158
if detection_result :
71
159
for res in detection_result :
72
160
kp = res .keypoint ()
73
- img .draw_string (10 , 10 , str ('face' ), color = 0x3333ff , scale = 1 )
74
- img .draw_circle (kp [0 ], kp [1 ], 3 , color = 0x3333ff , thickness = 1 , fill = True )
75
- img .draw_circle (kp [2 ], kp [3 ], 3 , color = 0x33ff33 , thickness = 1 , fill = True )
76
- img .draw_circle (kp [4 ], kp [5 ], 3 , color = 0xff0000 , thickness = 1 , fill = True )
77
- img .draw_circle (kp [6 ], kp [7 ], 3 , color = 0x3333ff , thickness = 1 , fill = True )
78
- img .draw_circle (kp [8 ], kp [9 ], 3 , color = 0x33ff33 , thickness = 1 , fill = True )
79
- img .draw_rectangle (res .x (), res .y (), res .w (), res .h (), color = 0x3366ff , thickness = 3 , fill = False )
161
+ img .draw_string (10 , 10 , str ("face" ), color = 0x3333FF , scale = 1 )
162
+ img .draw_circle (kp [0 ], kp [1 ], 3 , color = 0x3333FF , thickness = 1 , fill = True )
163
+ img .draw_circle (kp [2 ], kp [3 ], 3 , color = 0x33FF33 , thickness = 1 , fill = True )
164
+ img .draw_circle (kp [4 ], kp [5 ], 3 , color = 0xFF0000 , thickness = 1 , fill = True )
165
+ img .draw_circle (kp [6 ], kp [7 ], 3 , color = 0x3333FF , thickness = 1 , fill = True )
166
+ img .draw_circle (kp [8 ], kp [9 ], 3 , color = 0x33FF33 , thickness = 1 , fill = True )
167
+ img .draw_rectangle (
168
+ res .x (), res .y (), res .w (), res .h (), color = 0x3366FF , thickness = 3 , fill = False
169
+ )
80
170
if sys_state == FACE_DELETE :
81
171
dl_recognizer .delete_id ()
82
172
sys_state_prev = sys_state
@@ -91,34 +181,47 @@ def loop():
91
181
elif sys_state == FACE_RECOGNIZE :
92
182
dl_recognize_result = dl_recognizer .recognize (img , res .keypoint ())
93
183
if (dl_recognize_result .id ()) > 0 :
94
- print ((str (' similarity: ' ) + str ((dl_recognize_result .similarity ()))))
184
+ print ((str (" similarity: " ) + str ((dl_recognize_result .similarity ()))))
95
185
sys_state_prev = sys_state
96
186
sys_state = IDLE
97
187
frame_count = 15
98
188
else :
99
- img .draw_string (104 , 10 , str (' face no detect' ), color = 0xff0000 , scale = 1 )
189
+ img .draw_string (104 , 10 , str (" face no detect" ), color = 0xFF0000 , scale = 1 )
100
190
if frame_count > 0 :
101
191
frame_count = frame_count - 1
102
192
if sys_state_prev == FACE_ENROLL :
103
- img .draw_string (116 , 10 , str (' face enroll' ), color = 0x33ff33 , scale = 1 )
193
+ img .draw_string (116 , 10 , str (" face enroll" ), color = 0x33FF33 , scale = 1 )
104
194
elif sys_state_prev == FACE_RECOGNIZE :
105
195
if (dl_recognize_result .id ()) > 0 :
106
- img .draw_string (100 , 10 , str ((str ('recognize id: ' ) + str ((dl_recognize_result .id ())))), color = 0x33ff33 , scale = 1 )
196
+ img .draw_string (
197
+ 100 ,
198
+ 10 ,
199
+ str ((str ("recognize id: " ) + str ((dl_recognize_result .id ())))),
200
+ color = 0x33FF33 ,
201
+ scale = 1 ,
202
+ )
107
203
else :
108
- img .draw_string (96 , 10 , str (' no recognized' ), color = 0xff0000 , scale = 1 )
204
+ img .draw_string (96 , 10 , str (" no recognized" ), color = 0xFF0000 , scale = 1 )
109
205
elif sys_state_prev == FACE_DELETE :
110
- img .draw_string (100 , 10 , str ((str ('remaining id: ' ) + str ((dl_recognizer .enrolled_id_num ())))), color = 0xff0000 , scale = 1 )
206
+ img .draw_string (
207
+ 100 ,
208
+ 10 ,
209
+ str ((str ("remaining id: " ) + str ((dl_recognizer .enrolled_id_num ())))),
210
+ color = 0xFF0000 ,
211
+ scale = 1 ,
212
+ )
111
213
M5 .Lcd .show (img , 0 , 0 , 320 , 240 )
112
214
113
- if __name__ == '__main__' :
215
+
216
+ if __name__ == "__main__" :
114
217
try :
115
218
setup ()
116
219
while True :
117
220
loop ()
118
221
except (Exception , KeyboardInterrupt ) as e :
119
222
try :
120
223
from utility import print_error_msg
224
+
121
225
print_error_msg (e )
122
226
except ImportError :
123
227
print ("please update to latest firmware" )
124
-
0 commit comments