TSL color space

From HandWiki

TSL color space (Tint, Saturation and Lightness ) is a perceptual color space which defines color as tint (the degree to which a stimulus can be described as similar to or different from another stimuli that are described as red, green, blue, yellow, and white, can be thought of as hue with white added), saturation (the colorfulness of a stimulus relative to its own brightness), and lightness (the brightness of a stimulus relative to a stimulus that appears white in similar viewing conditions). Proposed by Jean-Christophe Terrillon and Shigeru Akamatsu,[1] TSL color space was developed primarily for the purpose of face detection.

Conversion between RGB and TSL

rg chromaticities

The conversion from gamma-corrected RGB values (0–1) to TSL is straightforward:[1]

  • [math]\displaystyle{ T = \begin{cases} 0.5 - \frac{\operatorname{atan2}(g', r')}{2\pi}, & \mbox{if}~g' \ne 0 \\ 0, & \mbox{if}~g'=0 \\ \end{cases} }[/math] – the zero special case is to maintain the original behavior
  • [math]\displaystyle{ S = \sqrt{\frac{9}{5}\left( r'^2 + g'^2 \right)} }[/math]
  • [math]\displaystyle{ L = 0.299R + 0.587G + 0.114B }[/math] – the Luma

where:

  • [math]\displaystyle{ r = \tfrac{R}{R+G+B}, g = \tfrac{G}{R+G+B} }[/math] – the rg chromaticity
  • [math]\displaystyle{ r' = r - \tfrac{1}{3}, g' = g - \tfrac{1}{3} }[/math] – centering on white

Likewise, the reverse transform is as follows:[2]

  • [math]\displaystyle{ R = k \cdot r }[/math]
  • [math]\displaystyle{ G = k \cdot g }[/math]
  • [math]\displaystyle{ B = k \cdot (1-r-g) }[/math]

where:

  • [math]\displaystyle{ r = r' + \frac{1}{3} }[/math]
  • [math]\displaystyle{ g = g' + \frac{1}{3} }[/math]
  • [math]\displaystyle{ r' = \sqrt{\frac{5 S^2}{9(x^{-1}+1)}} }[/math]
  • [math]\displaystyle{ g' = \sqrt{\frac{5 S^2}{9(x+1)}} }[/math]
  • [math]\displaystyle{ k = \frac{L}{0.185r + 0.473g + 0.114} }[/math] – Luma converted to average intensity
  • [math]\displaystyle{ x = \tan^2 ({2\pi \cdot (T - \frac{1}{4})}) }[/math]

For T = 0, conversion from TSL to RGB is not unique because the sign of r' is lost by the forward conversion due to the g' = 0 special case. Removing the special case produces a system that deviates from the original paper but preserves the sign.

Advantages of TSL

The advantages of TSL color space lie within the normalization within the RGB-TSL transform. Utilizing normalized r and g allows for chrominance spaces TSL to be more efficient for skin color segmentation. Additionally with this normalization, the sensitivity of the chrominance distributions to the variability of skin color is significantly reduced, allowing for an easier detection of different skin tones.[3]

Comparison of TSL to other color spaces

Terrillon investigated the efficiency of facial detection for several different color spaces. Testing consisted of using the same algorithm with 10 different color spaces to detect faces in 90 images with 133 faces and 59 subjects - 27 Asian, 31 Caucasian, and 1 African). TSL showed superior performance to the other spaces, with 90.8% correct detection and 84.9% correct rejection. A full comparison can be seen in the table below.[3]

Color Space # of Elements CD (%) CR (%)
TSL 258 90.8 84.9
r-g 328 74.6 80.3
CIE-xy 388 56.6 83.5
CIE-DSH 318 60.9 75.0
HSV 408 55.7 84.7
YIQ 471 47.3 79.8
YES 494 41.6 80.3
CIELUV 418 24.1 79.0
CIELAB 399 38.4 83.6

Disadvantages of TSL

TSL space could be made more efficient and robust. There currently exists no color correction algorithms for different camera systems. Additionally, despite a better accuracy of skin tone detection, detecting dark skin color still proves to be a challenge.[1]

Applications

Being a relatively new color space and having very specific uses, TSL hasn’t been widely implemented. Again, it is only very useful in skin detection algorithms. Skin detection itself can be used for a variety of applications – face detection, person tracking (for surveillance and cinematographic purposes), and pornography filtering are a few examples. A Self-Organizing Map (SOM) was implemented in skin detection using TSL and achieved comparable results to older methods of histograms and Gaussian mixture models.[4]

See also

References

  1. 1.0 1.1 1.2 Terrillon, Jean-Christophe; Akamatsu, Shigeru (1998). "Automatic Detection of Human Faces in Natural Scene Images by Use of a Skin Color Model and of Invariant Moments". Proc. Of the Third International Conference on Automatic Face and Gesture Recognition. Nara, Japan. pp. 130–135. 
  2. Dmitry Ivanov (21 June 2023). "Color-space: tsl.js". https://github.com/colorjs/color-space/blob/822a488ad752326f85bd5491a853a4a5c32adc59/tsl.js. 
  3. 3.0 3.1 Terrillon, Jean-Christophe; Akamatsu, Shigeru (1999). "Comparative performance of different skin chrominance models and chrominance spaces for the automatic detection of human faces in color images". Proceedings Fourth IEEE International Conference on Automatic Face and Gesture Recognition (Cat. No. PR00580). 99. pp. 54–61. doi:10.1109/AFGR.2000.840612. ISBN 0-7695-0580-5. 
  4. Brown, D.; Craw, I.; Lewthwaite, J. (2001). "A SOM Based Approach to Skin Detection with Application in Real Time Systems". British Machine Vision Conference. Manchester, United Kingdom.