зеркало из
				https://github.com/ssciwr/AMMICO.git
				synced 2025-10-30 21:46: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
	 Inga Ulusoy
						Inga Ulusoy