ilham86's picture
ilham push 4
9c23cdc verified
import streamlit as st
import matplotlib.pyplot as plt
from PIL import Image
import os
def run():
# Title
st.title('Safe and Unsafe Working Condition')
# Sub Header
st.subheader('Exploratory Data Analysis (EDA) of dataset')
# Image
image = Image.open('./src/image11.jpg')
st.image(image)
# Data
st.write('##### Dataset Overview')
main_path = './src/Worksite-Safety-Monitoring-Dataset/'
train_path = os.path.join(main_path, 'train')
val_path = os.path.join(main_path, 'valid')
test_path = os.path.join(main_path, 'test')
def plot_images(path):
labels = sorted(os.listdir(path))
figures = []
for label in labels:
folder_path = os.path.join(path, label)
images = os.listdir(folder_path)
images = images[:5]
fig, axes = plt.subplots(1, len(images), figsize=(50, 50))
if len(images) == 1:
axes = [axes]
for idx, img_file in enumerate(images):
img = plt.imread(os.path.join(folder_path, img_file))
axes[idx].imshow(img)
axes[idx].axis("off")
axes[idx].set_title(label, fontsize=50, fontweight='bold')
plt.tight_layout()
figures.append(fig)
return figures
# Train
st.write('##### Train')
figs_train = plot_images(train_path)
for fig in figs_train:
st.pyplot(fig)
# Validation
st.write('##### Validation')
figs_val = plot_images(val_path)
for fig in figs_val:
st.pyplot(fig)
# Test
st.write('##### Test')
figs_test = plot_images(test_path)
for fig in figs_test:
st.pyplot(fig)
st.markdown("""
##### Exploration:
This project aims to classify construction site conditions into **safe** or **unsafe** categories using deep learning.
The model is trained using a MobileNetV2 backbone and achieves high performance in real-world safety image classification.
The tool supports maintenance planning, reduces on-site risks, and improves safety compliance.
""")
if __name__ == '__main__':
run()