[Review] Hair detection, segmentation, and hairstyle classification in the wild - YBIGTA/pytorch-hair-segmentation GitHub Wiki

Paper Link

ABSTRACT

  • In this paper, the author build a hair probability map by classifying overlapping patches describe by features extracted from a CNN. Then, they segment at pixel level uncertain areas by using LTP(Linear Ternary Pattern) features and SVM.
  • Another contribution is presenting and sharing Figaro1k, a database for hair detection containing 1050 unconstrained view images and subdivided into seven different hairstyle classes.

1. Introduction

  • Problems of hair segmentation - 1) Wide number of variation in hairstyle, color and dye. - 2) The scarcity of shared databases annotated for hair detection from unconstrained views.

  • Paper aims - Performing a complete hair analysis (detection, segmentation, and hairstyle classification) form unconstrained view without a prior knowledge on body parts.

2. Proposed method

image

I. Hair segmentation at pixel level

- a) feature extraction from high-probability-hair (in red) vs. non-hair regions (in grey) - b) representation of hair vs. non-hair models of the specific image - c) segmentation is performed as a patch classification step (central pixel classification) only on the uncertain region (in blue)

image

II. Hair Style Classification

- Classification is performed on a square moving window which extracts non-overlapping square patches of size 35 × 35 from the segmented hair region and classify them into one hairstyle class. The overall hairstyle class is eventually obtained by employing a majority voting scheme on patch classification results.

3. Experimental results

image

image - Fourteen examples (two per hairstyle class) of the proposed method are shown. Displayed outputs for each example: original image (RGB), ground truth (overlay in blue), hair detection method (overlay in yellow), and final segmentation step (overlay in red).