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() | |