Files
ViT-Face-Recognition/real_world_occluded_faces_test.py

70 lines
2.4 KiB
Python
Raw Normal View History

2023-09-14 12:39:46 +02:00
import os
2023-09-12 14:07:19 +02:00
def remove_empty_directories():
neutral_items = os.listdir(NEUTRAL_DIR)
masked_items = os.listdir(MASKED_DIR)
sunglasses_items = os.listdir(SUNGLASSES_DIR)
2023-09-12 14:07:19 +02:00
for item in neutral_items:
if not os.listdir(f"{NEUTRAL_DIR}/{item}"):
2023-09-12 14:07:19 +02:00
print(f'Neutral folder ->\t{item} has no images, removing directory')
os.rmdir(f'{NEUTRAL_DIR}/{item}')
2023-09-12 14:43:20 +02:00
for item in masked_items:
if not os.listdir(f"{MASKED_DIR}/{item}"):
print(f'Masked folder ->\t{item} has no images, removing directory')
os.rmdir(f'{MASKED_DIR}/{item}')
2023-09-12 14:07:19 +02:00
for item in sunglasses_items:
if not os.listdir(f"{SUNGLASSES_DIR}/{item}"):
2023-09-12 14:07:19 +02:00
print(f'Sunglasses folder ->\t{item} has no images, removing directory')
os.rmdir(f'{SUNGLASSES_DIR}/{item}')
2023-09-12 14:07:19 +02:00
2023-09-12 14:18:18 +02:00
def get_unique_names():
neutral_items = os.listdir(NEUTRAL_DIR)
2023-09-12 14:25:59 +02:00
masked_items = list(
map(lambda x: x.split('_wearing_mask')[0], os.listdir(MASKED_DIR))
2023-09-12 14:18:18 +02:00
)
2023-09-12 14:25:59 +02:00
sunglasses_items = list(
map(lambda x: x.split('_wearing_sunglasses')[0], os.listdir(SUNGLASSES_DIR))
)
return sorted(set(masked_items + neutral_items + sunglasses_items))
2023-09-12 14:18:18 +02:00
2023-09-12 14:07:19 +02:00
2023-09-12 14:43:20 +02:00
def get_histogram():
data = {key: {'Neutral': None, 'Masked': None, 'Sunglasses': None} for key in UNIQUE_NAMES}
neutral_items = os.listdir(NEUTRAL_DIR)
masked_items = os.listdir(MASKED_DIR)
sunglasses_items = os.listdir(SUNGLASSES_DIR)
for item in neutral_items:
name = item
data[name]['Neutral'] = len(os.listdir(f"{NEUTRAL_DIR}/{item}"))
for item in masked_items:
name = item.split('_wearing_mask')[0]
data[name]['Masked'] = len(os.listdir(f"{MASKED_DIR}/{item}"))
for item in sunglasses_items:
name = item.split('_wearing_sunglasses')[0]
data[name]['Sunglasses'] = len(os.listdir(f"{SUNGLASSES_DIR}/{item}"))
# Remove any person which does not have images for all categories
data_aux = data.copy()
for name in data.keys():
if any(val is None for val in data[name].values()):
data_aux.pop(name)
data = data_aux.copy()
2023-09-12 14:43:20 +02:00
return data
BASE_DIR = '/mnt/Data/mrt/RealWorldOccludedFaces/images'
NEUTRAL_DIR = f"{BASE_DIR}/neutral"
2023-09-12 14:43:20 +02:00
MASKED_DIR = f"{BASE_DIR}/masked"
SUNGLASSES_DIR = f"{BASE_DIR}/sunglasses"
2023-09-12 14:18:18 +02:00
2023-09-12 14:07:19 +02:00
remove_empty_directories()
2023-09-12 14:18:18 +02:00
2023-09-12 14:43:20 +02:00
UNIQUE_NAMES = get_unique_names()
DATA_HISTOGRAM = get_histogram()