зеркало из
https://github.com/ssciwr/AMMICO.git
synced 2025-10-30 13:36:04 +02:00
родитель
27732c5fab
Коммит
6e7df1eb9f
@ -8,4 +8,4 @@ coverage:
|
|||||||
target: 0
|
target: 0
|
||||||
patch:
|
patch:
|
||||||
default:
|
default:
|
||||||
target: 80
|
target: 70
|
||||||
|
|||||||
@ -60,10 +60,10 @@ def draw_matches(matches, img1, img2, kp1, kp2):
|
|||||||
h2 = img2.shape[0]
|
h2 = img2.shape[0]
|
||||||
w1 = img1.shape[1]
|
w1 = img1.shape[1]
|
||||||
w2 = img2.shape[1]
|
w2 = img2.shape[1]
|
||||||
nWidth = w1 + w2
|
nwidth = w1 + w2
|
||||||
nHeight = max(h1, h2)
|
nheight = max(h1, h2)
|
||||||
hdif = int((h2 - h1) / 2)
|
hdif = int((h2 - h1) / 2)
|
||||||
newimg = np.zeros((nHeight, nWidth, 3), np.uint8)
|
newimg = np.zeros((nheight, nwidth, 3), np.uint8)
|
||||||
|
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
newimg[hdif : hdif + h1, :w1, i] = img1
|
newimg[hdif : hdif + h1, :w1, i] = img1
|
||||||
@ -202,14 +202,14 @@ def get_file_list(dir, filelist, ext=None, convert_unix=True):
|
|||||||
|
|
||||||
elif os.path.isdir(dir):
|
elif os.path.isdir(dir):
|
||||||
for s in os.listdir(dir):
|
for s in os.listdir(dir):
|
||||||
newDir = os.path.join(dir, s)
|
new_dir = os.path.join(dir, s)
|
||||||
get_file_list(newDir, filelist, ext)
|
get_file_list(new_dir, filelist, ext)
|
||||||
|
|
||||||
if convert_unix:
|
if convert_unix:
|
||||||
new_filelist = []
|
new_filelist = []
|
||||||
for file in filelist:
|
for file_ in filelist:
|
||||||
file = file.replace("\\", "/")
|
file_ = file_.replace("\\", "/")
|
||||||
new_filelist.append(file)
|
new_filelist.append(file_)
|
||||||
return new_filelist
|
return new_filelist
|
||||||
else:
|
else:
|
||||||
return filelist
|
return filelist
|
||||||
|
|||||||
@ -11,7 +11,9 @@ class JSONContainer:
|
|||||||
rich display rendering.
|
rich display rendering.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, data={}):
|
def __init__(self, data=None):
|
||||||
|
if data is None:
|
||||||
|
data = {}
|
||||||
self._data = data
|
self._data = data
|
||||||
|
|
||||||
def _repr_json_(self):
|
def _repr_json_(self):
|
||||||
|
|||||||
@ -14,13 +14,15 @@ from retinaface import RetinaFace
|
|||||||
from misinformation.utils import DownloadResource
|
from misinformation.utils import DownloadResource
|
||||||
import misinformation.utils as utils
|
import misinformation.utils as utils
|
||||||
|
|
||||||
|
DEEPFACE_PATH = ".deepface"
|
||||||
|
|
||||||
|
|
||||||
def deepface_symlink_processor(name):
|
def deepface_symlink_processor(name):
|
||||||
def _processor(fname, action, pooch):
|
def _processor(fname, action, pooch):
|
||||||
if not os.path.exists(name):
|
if not os.path.exists(name):
|
||||||
# symlink does not work on windows
|
# symlink does not work on windows
|
||||||
# use copy if running on windows
|
# use copy if running on windows
|
||||||
if not os.name == "nt":
|
if os.name != "nt":
|
||||||
os.symlink(fname, name)
|
os.symlink(fname, name)
|
||||||
else:
|
else:
|
||||||
shutil.copy(fname, name)
|
shutil.copy(fname, name)
|
||||||
@ -38,7 +40,7 @@ deepface_age_model = DownloadResource(
|
|||||||
url="https://github.com/serengil/deepface_models/releases/download/v1.0/age_model_weights.h5",
|
url="https://github.com/serengil/deepface_models/releases/download/v1.0/age_model_weights.h5",
|
||||||
known_hash="sha256:0aeff75734bfe794113756d2bfd0ac823d51e9422c8961125b570871d3c2b114",
|
known_hash="sha256:0aeff75734bfe794113756d2bfd0ac823d51e9422c8961125b570871d3c2b114",
|
||||||
processor=deepface_symlink_processor(
|
processor=deepface_symlink_processor(
|
||||||
pathlib.Path.home().joinpath(".deepface", "weights", "age_model_weights.h5")
|
pathlib.Path.home().joinpath(DEEPFACE_PATH, "weights", "age_model_weights.h5")
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -56,7 +58,9 @@ deepface_gender_model = DownloadResource(
|
|||||||
url="https://github.com/serengil/deepface_models/releases/download/v1.0/gender_model_weights.h5",
|
url="https://github.com/serengil/deepface_models/releases/download/v1.0/gender_model_weights.h5",
|
||||||
known_hash="sha256:45513ce5678549112d25ab85b1926fb65986507d49c674a3d04b2ba70dba2eb5",
|
known_hash="sha256:45513ce5678549112d25ab85b1926fb65986507d49c674a3d04b2ba70dba2eb5",
|
||||||
processor=deepface_symlink_processor(
|
processor=deepface_symlink_processor(
|
||||||
pathlib.Path.home().joinpath(".deepface", "weights", "gender_model_weights.h5")
|
pathlib.Path.home().joinpath(
|
||||||
|
DEEPFACE_PATH, "weights", "gender_model_weights.h5"
|
||||||
|
)
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -65,7 +69,7 @@ deepface_race_model = DownloadResource(
|
|||||||
known_hash="sha256:eb22b28b1f6dfce65b64040af4e86003a5edccb169a1a338470dde270b6f5e54",
|
known_hash="sha256:eb22b28b1f6dfce65b64040af4e86003a5edccb169a1a338470dde270b6f5e54",
|
||||||
processor=deepface_symlink_processor(
|
processor=deepface_symlink_processor(
|
||||||
pathlib.Path.home().joinpath(
|
pathlib.Path.home().joinpath(
|
||||||
".deepface", "weights", "race_model_single_batch.h5"
|
DEEPFACE_PATH, "weights", "race_model_single_batch.h5"
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -74,7 +78,7 @@ retinaface_model = DownloadResource(
|
|||||||
url="https://github.com/serengil/deepface_models/releases/download/v1.0/retinaface.h5",
|
url="https://github.com/serengil/deepface_models/releases/download/v1.0/retinaface.h5",
|
||||||
known_hash="sha256:ecb2393a89da3dd3d6796ad86660e298f62a0c8ae7578d92eb6af14e0bb93adf",
|
known_hash="sha256:ecb2393a89da3dd3d6796ad86660e298f62a0c8ae7578d92eb6af14e0bb93adf",
|
||||||
processor=deepface_symlink_processor(
|
processor=deepface_symlink_processor(
|
||||||
pathlib.Path.home().joinpath(".deepface", "weights", "retinaface.h5")
|
pathlib.Path.home().joinpath(DEEPFACE_PATH, "weights", "retinaface.h5")
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -236,10 +240,10 @@ class EmotionDetector(utils.AnalysisMethod):
|
|||||||
|
|
||||||
# Run the model (ignoring output)
|
# Run the model (ignoring output)
|
||||||
with NocatchOutput():
|
with NocatchOutput():
|
||||||
mask, withoutMask = mask_detection_model.predict(face)[0]
|
mask, without_mask = mask_detection_model.predict(face)[0]
|
||||||
|
|
||||||
# Convert from np.bool_ to bool to later be able to serialize the result
|
# Convert from np.bool_ to bool to later be able to serialize the result
|
||||||
return bool(mask > withoutMask)
|
return bool(mask > without_mask)
|
||||||
|
|
||||||
|
|
||||||
class NocatchOutput(ipywidgets.Output):
|
class NocatchOutput(ipywidgets.Output):
|
||||||
|
|||||||
@ -75,8 +75,8 @@ def find_files(path=None, pattern="*.png", recursive=True, limit=20):
|
|||||||
def initialize_dict(filelist: list) -> dict:
|
def initialize_dict(filelist: list) -> dict:
|
||||||
mydict = {}
|
mydict = {}
|
||||||
for img_path in filelist:
|
for img_path in filelist:
|
||||||
id = img_path.split(".")[0].split("/")[-1]
|
id_ = img_path.split(".")[0].split("/")[-1]
|
||||||
mydict[id] = {"filename": img_path}
|
mydict[id_] = {"filename": img_path}
|
||||||
return mydict
|
return mydict
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Загрузка…
x
Ссылка в новой задаче
Block a user