Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import seaborn as sns | |
import matplotlib.pyplot as plt | |
import plotly.express as px | |
dist_df = pd.read_csv('./csv/distribution.csv') | |
st.set_page_config( | |
page_title="Facial Emotion Classification", | |
layout="wide", | |
initial_sidebar_state="expanded", | |
) | |
def distribution(): | |
# distribution plot | |
st.header("Image Distribution") | |
fig = px.bar(dist_df, | |
x="label", y="count", | |
labels={"label": "Emotions", "count": "Image Count"}, | |
color="label", template="plotly_white") | |
fig.update_layout(height=600) | |
# Show the plot | |
st.plotly_chart(fig, use_container_width=True) | |
st.markdown(''' | |
''') | |
def samples(): | |
st.header("Image Samples") | |
sample_img = st.sidebar.selectbox(label="Select Emotion Sample", | |
options=["Angry", "Disgusted", "Fearful", "Happy", "Neutral", "Sad", "Surprised"]) | |
if sample_img == "Angry": | |
st.image('./image/angry.png') | |
st.markdown(''' | |
This emotion is usually characterized by feelings of anger, frustration, and dissatisfaction towards something perceived as threatening or hurtful. | |
**Physical Signs:** | |
* The outer part of the eyebrows is raised. | |
* The eyes are usually narrowed and sharp. | |
* The muscles around the mouth are tensed. | |
''') | |
elif sample_img == "Disgusted": | |
st.image('./image/disgusted.png') | |
st.markdown(''' | |
This emotion is related to feelings of fear or being disturbed by something disliked or considered disgusting. | |
**Physical Signs**: | |
- The eyebrows are raised. | |
- The upper eyelids are raised. | |
- The nose is wrinkled. | |
- Usually, the mouth is slightly tense and slightly raised. | |
''') | |
elif sample_img == "Fearful": | |
st.image('./image/fearful.png') | |
st.markdown(''' | |
This emotion involves feelings of fear or anxiety due to the presence of a threat or danger. | |
**Physical Signs**: | |
- Widened eyes | |
- Outer part of the eyebrows slightly lowered | |
- Mouth usually slightly downturned | |
- In this emotion, hands are often used to cover parts of the face. | |
''') | |
elif sample_img == "Happy": | |
st.image('./image/happy.png') | |
st.markdown(''' | |
This emotion is usually characterized by feelings of joy, happiness, and contentment. Happy facial expressions include smiling, twinkling eyes, and a tendency to be open and friendly. | |
**Physical Signs**: | |
- Eyes appear sparkling | |
- Mouth is smiling | |
''') | |
elif sample_img == "Neutral": | |
st.image('./image/neutral.png') | |
st.markdown(''' | |
Neutral emotion indicates the absence of strong emotions or facial expressions that do not show intense feelings. | |
Physical Signs in this expression are that each **facial feature appears not prominent**. | |
''') | |
elif sample_img == "Sad": | |
st.image('./image/sad.png') | |
st.markdown(''' | |
This emotion involves feelings of sadness, disappointment, and loss. | |
Physical Signs: | |
- Eyebrows are usually furrowed. | |
- Eyes become downcast or droopy. | |
- The corners of the mouth slightly downturned. | |
''') | |
elif sample_img == "Surprised": | |
st.image('./image/surprised.png') | |
st.markdown(''' | |
This emotion arises when someone experiences an unexpected event or receives surprising information. | |
Physical Signs: | |
- Eyebrows raise entirely. | |
- Eyes widen. | |
- Typically, the mouth opens. | |
''') | |
st.subheader("Mean (Avg.) of Image") | |
st.image('./image/mean.png') | |
st.markdown(''' | |
By calculating the mean of image from each class, the following information is obtained: | |
* The most prominent expressions are **Happy and Surprised**, easily identifiable from the characteristics of the mouth. | |
* **Sad, Fearful, and Neutral** expressions are somewhat challenging to differentiate. | |
* **Angry and Disgusted** expressions appear similar due to the characteristics of the eyebrows and mouth. | |
''') | |
if __name__ == "__main__": | |
distribution() | |