Project

# Title Team Members TA Documents Sponsor
6 Makeup Color Matcher
Ashley Herce
Shriya Surti
Waidat Bada
John Li design_document1.pdf
final_paper1.pdf
grading_sheet1.pdf
proposal1.pdf
video1.mp4
# **Team Members**

Ashley Herce aherce2

Shriya Surti ssurt2

Waidat Bada wbada2

# **Problem**

The beauty and skincare industry often struggles with accurately analyzing and matching human skin tones to appropriate color products due to variations in lighting, skin conditions, and subjectivity. This can result in mismatched cosmetics, dissatisfied customers, and wasted resources.

# **Solution Overview**

We propose a colorimeter device that uses a Raspberry Pi as the microcontroller and incorporates a color sensor to analyze skin tones. The device will employ RGB, HSV, and YCbCr color models to detect and quantify skin tones and match them to corresponding colors in a predefined database. By reducing external factors such as lighting and the distribution of melanin within the skin, we can more accurately measure skin color through an exact RGB value using a color sensor.
Additionally, we plan to incorporate a moisture sensor into the device to analyze the skin’s moisture levels. Skin moisture can significantly affect how products perform on the skin, and by collecting this data, we can refine product recommendations for foundations, serums, and moisturizers tailored to the individual’s skin characteristics.
The device will include a display to provide real-time feedback, color-matching suggestions, and skincare recommendations. We aim to collect a wide variety of foundations, skin tints, and serums across all brands, varying in price ranges, to make the device accessible to all users' needs.

# **Solution Components**

## **Sensor Subsystem**

To properly determine a foundation shade and skincare recommendations for a specific person, we require a method to measure both **color composition** and **skin moisture levels** with high accuracy.

### **Color Sensors**

These sensors will determine the RGB, HSV, and YCbCr values for skin tone analysis:

* **APDS-9960 Proximity Light, RGB & Gesture Sensor**
* **AS7341 10-Channel Light/Color Sensor for spectral data**
* **Adafruit AS7262 6 Channel Visible Light/Color Sensor**

### **Moisture Sensor**

A **capacitive moisture sensor** will measure the hydration levels of the user’s skin. This data will allow the device to provide recommendations not only for color-matched foundations but also for hydrating or mattifying products based on the user’s skin type.
* **Adafruit SHT31-D Temperature and Humidity Sensor**
* **Adafruit CAP1188 - 8-Key Capacitive Touch Sensor Breakout**
* **Sensirion SHT35-DIS-B**
## **Microcontroller Subsystem**

The microcontroller will process the measured data from the sensor subsystem and compute:

1. The user’s skin tone for foundation matching.
2. The skin’s moisture level for skincare recommendations.

### **Options:**

* **Raspberry Pi (e.g., Raspberry Pi 3B+)** for image and data processing.
* **STMicroelectronics STM32F7** for increased processing power.

### **Software Subsystem**

* **Skin Detection Algorithm:** Threshold-based detection algorithm that utilizes RGB-HSV-YCbCr models. Cornell University provides a human skin detection color model algorithm ([https://arxiv.org/abs/1708.02694](https://arxiv.org/abs/1708.02694)) which extracts the RGB values with a high accuracy rate. This algorithm would primarily be beneficial with the use of the color sensor as it breaks down computing the RGB of skin tone mathematically.
* **Color Matching:** Database integration for matching detected skin tones with product shades, utilizing datasets like [Kaggle Makeup Shades](https://www.kaggle.com/datasets/utkarshx27/makeup-shades) and [Sephora API](https://www.retailed.io/datasources/api/sephora-product) The database provides the Brands, product name and hex values for products available at Ulta and Sephora retails.

### **Moisture Analysis and Recommendations**

A secondary algorithm will analyze the moisture sensor data to classify the user’s skin as **dry**, **combination**, or **oily**, and provide tailored product recommendations. The following research paper goes more in depth on how it will work: [Design of a Handheld Skin Moisture Measuring Device for Application towards Eczema](https://macsphere.mcmaster.ca/bitstream/11375/14416/1/fulltext.pdf#:~:text=Skin%20moisture%20can%20be%20quantified%20as%20water%20content,capacitance%20due%20to%20the%20dielectric%20properties%20of%20water)

## **Display Subsystem**

* **LCD Screen:** Displays matched colors and information. Supports HDMI, DisplayPort, or USB-C DisplayPort Alternate Mode.
* **User Interface**: We plan to integrate a friendly User Interface on the LCD screen to display the user’s skin value and different products that match their value or are at an appropriate threshold.

Alternatively, rather than use an LCD Screen we can create a mobile application which can be utilized separately from this project for makeup enthusiasts to find their perfect shade by manually inputting a RGB value of their skin as opposed to using our device to determine the RGB value.

## **Lighting Subsystem**
* **Integrated LED Flash:** Provides consistent lighting for accurate color detection under various ambient light conditions.
* Utilize enclosed environments to prevent interference with ambient lighting

## **Power Subsystem**

* This subsystem ensures that all electronic components within the other subsystems are adequately powered during use.
* **Power Supply:** Battery-powered operation with support for USB-C charging.
* **Regulators:** Onboard 3.3V and 5V regulators to support sensors and peripherals.

# **Criterion for Success**
**Moisture Level Analysis**: Provide accurate moisture level readings to recommend suitable skincare products.
* **Skin Detection Accuracy:** Achieve at least 90% accuracy in identifying skin pixels across various lighting conditions using RGB-HSV-YCbCr models.
* **Color Matching Precision:** Accurately match detected skin tones to product colors with a precision of 90% or higher. Precision can be achieved by seeing the difference between the expected and measured RGB output of a tested foundation shade.
* **User Interface:** Provide an intuitive interface with real-time feedback on matched colors via an LCD screen.
* **Portability:** Ensure the device is lightweight, battery-powered, and easy to use.

# **Alternatives**

There are a few shade matchers on the market that are centered around one specific cosmetic line. Sephora and Ulta utilize a “Shade Finder” Quiz for users to determine their perfect shade match relying on the user's current foundation shade which may not be accurate or exist. The concept that we develop would rely on an exact match through measured RGB values rather than user perception. Additionally, YSL has a developed product specifically to create a perfect matte lipstick shade based on a custom RGB value ([via application](https://www.yslbeautyus.com/rouge-sur-mesure/rouge-sur-mesure-custom-lip-color-creator/WW-50912YSL.html?srsltid=AfmBOorPcSGqrBeUGsCVU5kpJlStYlK7uLuLsNLrijPrSQz3rsRFZICa)) However, the product is specific to lipstick and the brand which retails at $350 for the device while our proposed solution utilizes pre-existing products available on the market that accessible for all consumers.

Automatic Piano Tuner

Joseph Babbo, Colin Wallace, Riley Woodson

Automatic Piano Tuner

Featured Project

# Automatic Piano Tuner

Team Members:

- Colin Wallace (colinpw2)

- Riley Woodson (rileycw2)

- Joseph Babbo (jbabbo2)

# Problem

Piano tuning is a time-consuming and expensive process. An average piano tuning will cost in the $100 - $200 range and a piano will have to be retuned multiple times to maintain the correct pitch. Due to the strength required to alter the piano pegs it is also something that is difficult for the less physically able to accomplish.

# Solution

We hope to bring piano tuning to the masses by creating an easy to use product which will be able to automatically tune a piano by giving the key as input alongside playing the key to get the pitch differential and automatically turning the piano pegs until they reach the correct note.

# Solution Components

## Subsystem 1 - Motor Assembly

A standard tuning pin requires 8-14 nm of torque to successfully tune. We will thus need to create a motor assembly that is able to produce enough torque to rotate standard tuning pins.

## Subsystem 2 - Frequency Detector/Tuner

The device will use a microphone to gather audio measurements. Then a microprocessor processes the audio data to detect the pitch and determine the difference from the desired frequency. This can then generate instructions for the motor; direction to turn pegs and amount to turn it by.

## Subsystem 3 - User Interface/Display Panel

A small but intuitive display and button configuration can be used for this device. It will be required for the user to set the key being played using buttons on the device and reading the output of the display. As the device will tune by itself after hearing the tone, all that is required to display is the current key and octave. A couple of buttons will suffice to be able to cycle up and down keys and octaves.

## Subsystem 4 - Replaceable Battery/Power Supply

Every commercial product should use standard replaceable batteries, or provide a way for easy charging. As we want to develop a handheld device, so that the device doesn’t have to drag power wires into the piano, we will need a rechargeable battery pack.

# Criterion For Success

The aim of the Automatic Piano Tuner is to allow the user to automatically tune piano strings based on a key input alongside playing a note. We have several goals to help us meet this aim:

- Measure pitch accurately, test against known good pitches

- Motor generates enough torque to turn the pegs on a piano

- Tuner turns correctly depending on pitch

- Easy tuning of a piano by a single untrained person

Project Videos