vital_prediction / age_estimator /mivolo /tools /dataset_visualization.py
jaimin's picture
Upload 78 files
bf53f45 verified
import argparse
from typing import Dict, List
import cv2
from mivolo.data.data_reader import PictureInfo, read_csv_annotation_file
from ultralytics.yolo.utils.plotting import Annotator, colors
def get_parser():
parser = argparse.ArgumentParser(description="Visualization")
parser.add_argument("--dataset_images", default="", type=str, required=True, help="path to images")
parser.add_argument("--annotation_file", default="", type=str, required=True, help="path to annotations")
return parser
def visualize(images_dir, new_annotation_file):
bboxes_per_image: Dict[str, List[PictureInfo]] = read_csv_annotation_file(new_annotation_file, images_dir)[0]
print(f"Found {len(bboxes_per_image)} unique images")
for image_path, bboxes in bboxes_per_image.items():
im_cv = cv2.imread(image_path)
annotator = Annotator(im_cv)
for i, bbox_info in enumerate(bboxes):
label = f"{bbox_info.gender} Age: {bbox_info.age}"
if any(coord != -1 for coord in bbox_info.bbox):
# draw face bbox if exist
annotator.box_label(bbox_info.bbox, label, color=colors(i, True))
if any(coord != -1 for coord in bbox_info.person_bbox):
# draw person bbox if exist
annotator.box_label(bbox_info.person_bbox, "p " + label, color=colors(i, True))
im_cv = annotator.result()
cv2.imshow("image", im_cv)
cv2.waitKey(0)
if __name__ == "__main__":
parser = get_parser()
args = parser.parse_args()
visualize(args.dataset_images, args.annotation_file)