Skip to content

Latest commit

 

History

History
32 lines (19 loc) · 2 KB

Readme.md

File metadata and controls

32 lines (19 loc) · 2 KB

Face parts detection with YOLOv8 👃

Introduction

In this project I use the most recent implementation of YOLO by Ultralytics, YOLOv8. The goal is to train an algorithm that is able to detect separate face parts without having to use landmark detectors that don't do well when part of the face is occluded or missing. My goal is to also combine frontal, semi-frontal and profile face datasets so that the YOLO model works well on all of them.

It is also a great opportunity to try out the supervision library by Roboflow. Despite it's still in beta, it looks really helpful for some common YOLO-related tasks such as drawing the detections.

Data

For this experiment I'm using the following sources:

Results

Data quality

Some datasets such as Helen may generate noisy examples when the images have more than one face but only one set of landmarks (i.e. the ones corresponding to the "main" face in the image). This is probably affecting the precision because the model is actually detecting all the faces in these images (which is good, though). Other datasets such as AFW have as many landmarks as faces in the images.

A training batch with some images with incomplete labels

Performance

The model I've trained (nano) struggles with eyebrows, but it works really well on eyes and noses.

F1 curve