Update app.py
Browse files
app.py
CHANGED
@@ -11,7 +11,9 @@ import math
|
|
11 |
import torch
|
12 |
from torch import nn
|
13 |
from PIL import Image
|
|
|
14 |
from feat.utils.io import get_resource_path
|
|
|
15 |
|
16 |
CLASS_LABELS = ['angry', 'disgust', 'fear', 'happy', 'neutral', 'sad', 'surprise']
|
17 |
|
@@ -20,7 +22,31 @@ def _get_resource_path():
|
|
20 |
|
21 |
get_resource_path = _get_resource_path
|
22 |
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
os.environ["TWILIO_ACCOUNT_SID"] = "ACf1e76f3fd6e9cbca940decc4ed443c20"
|
26 |
os.environ["TWILIO_AUTH_TOKEN"] = "5cadf5cc7120dd995f11b3dc57e46d52"
|
@@ -148,7 +174,7 @@ st.markdown("""
|
|
148 |
</style>
|
149 |
""", unsafe_allow_html=True)
|
150 |
|
151 |
-
detector = Detector(face_model="retinaface", landmark_model= "pfld", au_model
|
152 |
source = "Webcam"
|
153 |
recog = True
|
154 |
|
|
|
11 |
import torch
|
12 |
from torch import nn
|
13 |
from PIL import Image
|
14 |
+
from feat import Detector
|
15 |
from feat.utils.io import get_resource_path
|
16 |
+
from feat.pretrained import get_pretrained_models
|
17 |
|
18 |
CLASS_LABELS = ['angry', 'disgust', 'fear', 'happy', 'neutral', 'sad', 'surprise']
|
19 |
|
|
|
22 |
|
23 |
get_resource_path = _get_resource_path
|
24 |
|
25 |
+
def _get_pretrained_models(face_model, landmark_model, au_model, emotion_model, facepose_model, verbose):
|
26 |
+
return (
|
27 |
+
face_model,
|
28 |
+
landmark_model,
|
29 |
+
au_model,
|
30 |
+
emotion_model,
|
31 |
+
facepose_model,
|
32 |
+
)
|
33 |
+
get_pretrained_models = _get_pretrained_models
|
34 |
+
|
35 |
+
|
36 |
+
def _calculate_md5(fpath: str, chunk_size: int = 1024 * 1024) -> str:
|
37 |
+
# Setting the `usedforsecurity` flag does not change anything about the functionality, but indicates that we are
|
38 |
+
# not using the MD5 checksum for cryptography. This enables its usage in restricted environments like FIPS. Without
|
39 |
+
# it torchvision.datasets is unusable in these environments since we perform a MD5 check everywhere.
|
40 |
+
if sys.version_info >= (3, 9):
|
41 |
+
md5 = hashlib.md5(usedforsecurity=True)
|
42 |
+
else:
|
43 |
+
md5 = hashlib.md5()
|
44 |
+
with open(fpath, "rb") as f:
|
45 |
+
while chunk := f.read(chunk_size):
|
46 |
+
md5.update(chunk)
|
47 |
+
return md5.hexdigest()
|
48 |
+
|
49 |
+
|
50 |
|
51 |
os.environ["TWILIO_ACCOUNT_SID"] = "ACf1e76f3fd6e9cbca940decc4ed443c20"
|
52 |
os.environ["TWILIO_AUTH_TOKEN"] = "5cadf5cc7120dd995f11b3dc57e46d52"
|
|
|
174 |
</style>
|
175 |
""", unsafe_allow_html=True)
|
176 |
|
177 |
+
detector = Detector(face_model="retinaface", landmark_model= "pfld", au_model="xgb", facepose_model="img2pose", emotion_model="resmasknet")
|
178 |
source = "Webcam"
|
179 |
recog = True
|
180 |
|