Spaces:
Runtime error
Runtime error
File size: 3,586 Bytes
950325a 7a3a9cc a027ab8 7a3a9cc 4d8b913 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
try:
import detectron2
except:
import os
os.system('pip install git+https://github.com/facebookresearch/detectron2.git')
import streamlit as st
from PIL import Image
import numpy as np
# Ownwe libraries
from src import predict_image
URL_IMAGE_1 = "https://github.com/frorozcol-UN/Detectron2_Tutorial/blob/main/Data/raw/24e5dcbc-7afd-4345-b6da-4bffe79e4415.jpeg?raw=true"
URL_IMAGE_2 = "https://github.com/frorozcol-UN/Detectron2_Tutorial/blob/main/Data/predict/f94394ec-ccd2-497b-9c7e-b22e7df9f54c.jpeg?raw=true"
def header():
"""
Esta funci贸n es para el header de la p谩gina
"""
st.header("Este es un detector de da帽os en veh铆culos")
st.markdown("Este sistema es creado por frorozcol m谩s informaci贸n en: [Dectectron2_Tutorial](https://github.com/frorozcol-UN/Detectron2_Tutorial)")
def info():
st.write("""
Detectron2 es un Framework de detecci贸n de objetos de vanguardia
desarrollado por Facebook AI Research. Est谩 construido sobre PyTorch,
lo que permite a los desarrolladores usar su poder y flexibilidad
para entrenar r谩pidamente y f谩cilmente modelos de detecci贸n de objetos.
Una de las caracter铆sticas clave de Detectron2 es su implementaci贸n de Mask R-CNN,
un modelo de detecci贸n de objetos que tambi茅n puede hacer segmentaci贸n de m谩scaras
para cada objeto detectado en una imagen. Esto es 煤til en una variedad de aplicaciones,
como la manipulaci贸n de im谩genes y la visualizaci贸n de datos en 3D.
En resumen, Detectron2 es un marco poderoso y f谩cil de usar para la detecci贸n de objetos
que proporciona una amplia variedad de modelos y herramientas para ayudar a los desarrolladores
a entrenar y mejorar sus modelos de detecci贸n de objetos.""")
def shows_image(img1, img2):
col1, col2 = st.columns(2)
with col1:
st.write("Imagen original")
st.image(img1, width=400)
with col2:
st.write("Imagen con da帽os detectados")
st.image(img2, width=400)
def demonstrates_images():
"""
Esta funci贸n es para mostrar las im谩genes y de la pagina
es la segunda secci贸n de la p谩gina
"""
st.header("Demostraci贸n del programa")
st.write("En esta secci贸n se muestran las im谩genes de entrada y salida del programa")
shows_image(URL_IMAGE_1, URL_IMAGE_2)
def uploads_image():
"""
This function is for the inputs of the model, return the image or return None if the image is not uploaded
"""
img_upload = st.file_uploader("Subir imagen", type=["jpg", "png", "jpeg"])
if img_upload is not None:
img = Image.open(img_upload)
return img
return None
def shows_results(values, image):
shows_image(image, values["image"])
st.write("Estas son las 谩reas de da帽os detectados: ")
st.write("El area se mide en pixeles cuadrados, por lo que para obtener el area en metros cuadrados se debe, hacer una regla de 3 con el tama帽o de la imagen en metros cuadrados")
for idx, data in enumerate(zip(values["masks"],values["areas"])):
st.write("Da帽o id", idx)
st.write(f"脕rea: {data[1]} px^2")
img_binary = Image.fromarray((data[0]* 255).astype(np.uint8), 'L')
st.image(img_binary)
def main():
header()
info()
demonstrates_images()
image = uploads_image()
if image is not None:
values = predict_image(image)
shows_results(values, image)
main() |