Showing
4 changed files
with
10 additions
and
6 deletions
| ... | @@ -28,6 +28,9 @@ app = Flask(__name__) | ... | @@ -28,6 +28,9 @@ app = Flask(__name__) |
| 28 | sess = tf.compat.v1.Session() | 28 | sess = tf.compat.v1.Session() |
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | +def image_standardization(image): | ||
| 32 | + return (image - 127.5) / 128.0 | ||
| 33 | + | ||
| 31 | def resize(image): | 34 | def resize(image): |
| 32 | resized = cv2.resize(image, (image_size, image_size), interpolation=cv2.INTER_AREA) | 35 | resized = cv2.resize(image, (image_size, image_size), interpolation=cv2.INTER_AREA) |
| 33 | return resized | 36 | return resized |
| ... | @@ -80,6 +83,7 @@ def register(): | ... | @@ -80,6 +83,7 @@ def register(): |
| 80 | image_np = np.frombuffer(image, dtype=np.uint8) | 83 | image_np = np.frombuffer(image, dtype=np.uint8) |
| 81 | image_np = cv2.imdecode(image_np, cv2.IMREAD_UNCHANGED) | 84 | image_np = cv2.imdecode(image_np, cv2.IMREAD_UNCHANGED) |
| 82 | image_np = cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB) | 85 | image_np = cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB) |
| 86 | + image_np = image_standardization(image_np) | ||
| 83 | image_np = prewhiten(image_np) | 87 | image_np = prewhiten(image_np) |
| 84 | image_np = resize(image_np) | 88 | image_np = resize(image_np) |
| 85 | image_np = image_np.reshape(-1, image_size, image_size, 3) | 89 | image_np = image_np.reshape(-1, image_size, image_size, 3) |
| ... | @@ -127,7 +131,7 @@ def verify(): | ... | @@ -127,7 +131,7 @@ def verify(): |
| 127 | if (distance < dist_min): | 131 | if (distance < dist_min): |
| 128 | verified_id = row_data['student_id'] | 132 | verified_id = row_data['student_id'] |
| 129 | dist_min = distance | 133 | dist_min = distance |
| 130 | - new_embedding = db_embedding * 0.97 + embedding * 0.03 | 134 | + new_embedding = db_embedding * 0.99 + embedding * 0.01 |
| 131 | new_embedding = new_embedding.tobytes() | 135 | new_embedding = new_embedding.tobytes() |
| 132 | sql = "UPDATE student_embedding SET embedding=_binary %s WHERE student_id = %s" | 136 | sql = "UPDATE student_embedding SET embedding=_binary %s WHERE student_id = %s" |
| 133 | cursor.execute(sql, (new_embedding, verified_id)) | 137 | cursor.execute(sql, (new_embedding, verified_id)) | ... | ... |
| ... | @@ -257,13 +257,13 @@ and is wrapped around the whole page content, except for the footer in this exam | ... | @@ -257,13 +257,13 @@ and is wrapped around the whole page content, except for the footer in this exam |
| 257 | <canvas id="canvasOutput">/canvas> | 257 | <canvas id="canvasOutput">/canvas> |
| 258 | </div> | 258 | </div> |
| 259 | <div id="inputForm"> | 259 | <div id="inputForm"> |
| 260 | - <strong>얼굴 이미지는 서버에 저장되지 않습니다</strong><br> | 260 | + <strong>얼굴 이미지는 '절대로' 저장되지 않습니다</strong><br> |
| 261 | - <strong>(복원 불가능한 512차원 벡터로 변환됩니다)</strong><br> | ||
| 262 | <strong>학번과 이름은 임의로 입력해주세요</strong><br> | 261 | <strong>학번과 이름은 임의로 입력해주세요</strong><br> |
| 263 | <strong>예)1234/홍길동 등</strong><br> | 262 | <strong>예)1234/홍길동 등</strong><br> |
| 264 | 학번: <input type="text" id="student_id"><br> | 263 | 학번: <input type="text" id="student_id"><br> |
| 265 | 이름: <input type="text" id="student_name"><br> | 264 | 이름: <input type="text" id="student_name"><br> |
| 266 | - <input id="sender" type="button" onclick="submit()" value="등록" disabled> | 265 | + <input id="sender" type="button" onclick="submit()" value="등록" disabled><br> |
| 266 | + 등록 후: <a href="https://gabibing.com">출석체크 페이지</a> | ||
| 267 | </div> | 267 | </div> |
| 268 | </div> | 268 | </div> |
| 269 | </div> | 269 | </div> | ... | ... |
-
Please register or login to post a comment