Update emotion.py
Browse files- emotion.py +3 -10
emotion.py
CHANGED
|
@@ -19,8 +19,7 @@ CONF_TH = 40.0
|
|
| 19 |
SWITCH_CONFIRM_SEC = 2.5
|
| 20 |
IOU_TH = 0.25
|
| 21 |
|
| 22 |
-
|
| 23 |
-
DETECTOR_BACKEND = "opencv"
|
| 24 |
ALIGN_FACE = True
|
| 25 |
|
| 26 |
|
|
@@ -71,7 +70,7 @@ SCORE_CHOICES = [SCORE_LABELS[i] for i in [1, 2, 3, 4, 5]]
|
|
| 71 |
# =========================
|
| 72 |
@dataclass
|
| 73 |
class AppState:
|
| 74 |
-
mode: str = "攝影機辨識"
|
| 75 |
|
| 76 |
running: bool = True
|
| 77 |
finished: bool = False
|
|
@@ -425,6 +424,7 @@ def on_stream(frame_rgb: np.ndarray, st: AppState):
|
|
| 425 |
# =========================
|
| 426 |
# Mode / Buttons
|
| 427 |
# =========================
|
|
|
|
| 428 |
def on_restart(st: AppState):
|
| 429 |
st = _reset_state_for_camera(st)
|
| 430 |
return (
|
|
@@ -464,18 +464,11 @@ def on_stop(st: AppState):
|
|
| 464 |
# =========================
|
| 465 |
# Gradio UI
|
| 466 |
# =========================
|
| 467 |
-
# ### [整合需求] 下方的 UI Block 可以保留,
|
| 468 |
-
# 之後整合進 app.py 時,app.py 會只 import 上面的函式,不會執行這裡。
|
| 469 |
-
# 這樣隊友還是可以單獨執行這個檔案來測試。
|
| 470 |
css = """
|
| 471 |
#app_container { max-width: 960px; margin: 0 auto; }
|
| 472 |
.gradio-container { background: #f1f5f9 !important; }
|
| 473 |
"""
|
| 474 |
|
| 475 |
-
# 為了方便 app.py 整合,我們把 UI 宣告包成一個函式 render_ui (或是 create_demo)
|
| 476 |
-
# 但為了不改動隊友原本的結構,我們保留下面的寫法,但加上 if __name__ == "__main__"
|
| 477 |
-
# 這樣 app.py import 時不會自動跑出介面
|
| 478 |
-
|
| 479 |
if __name__ == "__main__":
|
| 480 |
with gr.Blocks(title="Emotion Detector") as demo:
|
| 481 |
st = gr.State(AppState())
|
|
|
|
| 19 |
SWITCH_CONFIRM_SEC = 2.5
|
| 20 |
IOU_TH = 0.25
|
| 21 |
|
| 22 |
+
DETECTOR_BACKEND = "mtcnn" # 想快一點可改 "opencv"
|
|
|
|
| 23 |
ALIGN_FACE = True
|
| 24 |
|
| 25 |
|
|
|
|
| 70 |
# =========================
|
| 71 |
@dataclass
|
| 72 |
class AppState:
|
| 73 |
+
mode: str = "攝影機辨識" # 保留欄位但固定為攝影機
|
| 74 |
|
| 75 |
running: bool = True
|
| 76 |
finished: bool = False
|
|
|
|
| 424 |
# =========================
|
| 425 |
# Mode / Buttons
|
| 426 |
# =========================
|
| 427 |
+
|
| 428 |
def on_restart(st: AppState):
|
| 429 |
st = _reset_state_for_camera(st)
|
| 430 |
return (
|
|
|
|
| 464 |
# =========================
|
| 465 |
# Gradio UI
|
| 466 |
# =========================
|
|
|
|
|
|
|
|
|
|
| 467 |
css = """
|
| 468 |
#app_container { max-width: 960px; margin: 0 auto; }
|
| 469 |
.gradio-container { background: #f1f5f9 !important; }
|
| 470 |
"""
|
| 471 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 472 |
if __name__ == "__main__":
|
| 473 |
with gr.Blocks(title="Emotion Detector") as demo:
|
| 474 |
st = gr.State(AppState())
|