Normalizing Human Skin Colors for User Interaction

13,827

Solution 1

I'd do something like the Nintendo Wii's Mii Editor and just show several swatches of colors. Even if the monitor isn't calibrated, if someone sees them all on the screen at once they should be able to make the correct choice.

alt text

You can then give the color an internal name and do your data mining on that.

Solution 2

olayforyou.com defines these skin tones

alt text http://www.freeimagehosting.net/uploads/151ab0ddd7.jpg

  • very fair
  • fair
  • olive
  • dark
  • very dark

Any person using cosmetics regularly would understand these terms. These rest of us are just guessing :-)

Solution 3

I personally wouldn't define a domain; let that be a textbox and everybody fills anything he/she wants. I prefer this way just because can be a polemic and potentially offensive subject, like this.

EDIT: Or, what about doesn't display any names, but colors instead? Use that Von Luschan's scale and use a "Select your color: " label. You don't need to name it and can to define a domain into your database.

Solution 4

You may wish to consider skin tones defined by cosmetic companies as these can be quite exact and even refer to tanning effects.

Solution 5

Despite monitor calibration issues, I think that the von Luschan chromatic scale along with the numbers and textual descriptions you have shown, is the best. Sure it's a bit subjective, but so are all the alternatives.

Seeing the entire available range of selections, and visualizing very light and dark people, it's not to hard to come up with an estimate of where you lie on the scale.

Plus, the combination of numbers, colors, and words makes it easier to hone in on your approximate color.

EDIT:

I do see that you have expressed doubts about using the chromatic scale in your post - I just thought you might consider these points. People don't have to be familiar with the scale ahead of time to use it. I've never seen it before but it makes perfect sense to me.

Share:
13,827
Alix Axel
Author by

Alix Axel

If you need to, you can contact me at: alix [dot] axel [at] gmail [dot] com. I'm #SOreadytohelp Some of my GitHub repositories: phunction, a minimalistic PHP HMVC Framework. halBox, bash script to bootstrap Debian/Ubuntu servers. ArrestDB, RESTful API for SQLite, MySQL and PostgreSQL databases. genex.js, Genex module for Node.js. If you know how to work with regexes, have a look at http://namegrep.com/. ;)

Updated on June 21, 2022

Comments

  • Alix Axel
    Alix Axel almost 2 years

    A while ago I came across this answer that introduced me to the obscure (at least for me) ISO 5218: a standard for representing human sexes (or is it genders? - thanks @Paul).

    For a pet project I'm working on I need my database schema to store the skin color of a person, and I'm wondering if a similar standard exists. All my life I've heard people using terms such as "White", "Caucasian", "Black", "Blonde", "Brunette", "Afro", "Albino" and so on, but after some research in Wikipedia I've realized that everybody is wrong, because those words can all have different meanings:

    The Wikipedia has the following about human races:

    • Caucasoid
    • Congoid
    • Capoid
    • Mongoloid
    • Australoid

    Seriously, Mongoloid?! I don't know about the connotations of the English language but in my native language (Portuguese) that's a synonym for a person who suffers from the Down syndrome disorder...

    This Wikipedia page also has some interesting additional information:

    Johann Friedrich Blumenbach (1752-1840), one of the founders of what some call scientific racism theories, came up with the five color typology for humans: white people (the Caucasian or white race), more or less black people (the Ethiopian or black race), yellow people (the Mongolian or yellow race), cinnamon-brown or flame colored people (the American or red race) and brown people (the Malay or brown race).

    The problem with using races (besides the horrific names chosen and scientific racism), is that they don't necessarily represent the skin color of a person... Take the following photo from Wikipedia:

    Tanzanian albino child sitting with his family.

    The most serious attempt I could find to classify skin color is the Von Luschan's chromatic scale:

    Human Skin Color Distribution Von Luschan's chromatic scale

    Most people however, are not aware of their von Luschan's scale (myself included). I also though of having the user visually specifying the color of their skin tone but that could lead to some problems due to the different color profiles used by the operating systems / monitors.

    There is also a more general von Luschan's scale used to classify sun tanning risk:

    1. von Luschan 1-5 (very light).
    2. von Luschan 6-10 (light).
    3. von Luschan 11-15 (intermediate).
    4. von Luschan 16-21 ("Mediterranean").
    5. von Luschan 22-28 (dark or "brown").
    6. von Luschan 29-36 (very dark or "black").

    Since this can become a very sensitive topic for some people I'm wondering what would be the best way to store this information in a normalized database. Is there a correct globally accepted standard to describe skin color without affecting susceptibilities while using straightforward terms and avoiding complicated and unfamiliar definitions such as von Luschan's scale?

    Human Rainbow of Skin Colors

    Similar standards exist for eye and hair color. How would you approach the skin tone terminology?