[Review] Hair detection, segmentation, and hairstyle classification in the wild - YBIGTA/pytorch-hair-segmentation GitHub Wiki
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
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)
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
- 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).