Search⌘ K
AI Features

Recognizing Eyes Color

Explore how to use Python and machine learning techniques to detect faces and identify dominant eye colors in images. Learn to implement key functions like color extraction with k-means clustering, eye center localization, and region segmentation for eyes. This lesson equips you with practical coding skills for analyzing eye color in digital images.

Introduction

It’s been said that the eyes are the doorway to the heart and the window to the soul, that our eyes are a reflection of our inner self and emotions. Just as every person has a unique fingerprint, no one has the exact same eye color.

But what gives eyes their color? The amount of melanin pigmentation determines the iris color. The more pigment there is, the darker the iris will be. Blue, gray, and green eyes are lighter because there is less melanin inside the iris.

Objective

This lesson aims to develop a lightweight utility through Python-based modulen that automatically detects faces in a digital image and recognizes the color of the eyes.

Dependencies

We’ll be using the following Python external libraries.

Library

Version

MediaPipe

0.8.9

opencv-python

4.4.0.46

scikit-learn

1.0.1

NumPy

1.19.4

webcolors

1.11.1

filetype

1.0.7

Let’s code the functions!

Let’s take a look at the core functions of this utility.

The extract_dominant_colors function

This function is used to gather the dominant colors of a chosen image. The function leverages machine learning by using an unsupervised clustering algorithm (k-means clustering) to cluster the image pixels data based on their RGB values. We perform the following steps using this function:

  • Line 14 maintains a copy of the image for further processing.

  • Line 17 converts the image loaded using the OpenCV library from the BGR format to the RGB format.

  • Line 20 calls the reshape function to create a 2D array based ...