PDF

I learn about this paper because of nude.js.

This paper proposes an algorithm to classify nude pictures. Firstly, it classify pixels in a picture as “skin” and “non-skin”. Then connect the skin pixels into skin regions. For the largest three skin regions, make a bounding polygon (indeed only a quadrilateral as it takes only the leftmost, rightmost, uppermost and lowermost pixels). Base on the skin regions and the polygon, a picture contains nudity unless any of the following is met:

  • Total skin pixels <15% pixels in a picture
  • Largest skin region has <35% total skin pixels AND 2nd largest has <30% AND 3rd largest has <30%
  • Largest skin region has <45% total skin pixels
  • Total skin pixels <30% pixels in a picture AND skin pixels in the bounding polygon <55% size of polygon
  • Number of skin regions >60 AND average intensity within polygon <0.25

In the last bullet, intensity is the saturation value in HSV space. Converting from RGB to HSV is given by the following formulae:

Extended reading: Finding Naked People by Margaret M. Fleck and David A Forsyth

Bibliographic data

@inproceedings{
   title = "An Algorithm for Nudity Detection",
   author = "Rigan Ap-Apid",
   booktitle = "Proc. 5th Philippine Computing Science Congress",
   page = "201--205",
   month = "Mar",
   year = "2005",
   address = "Cebu City, Philippines",
}