Skip to content

Soy-Ismael/Real-Time-Fruit-Detection-YOLOv9-v8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time-Fruit-Detection-YOLOv9-v8

En este repositorio encontraras ejemplos basicos de códigos para implementar detección de frutas con YOLOv8/v9 con el lenguage de programación python 🐍.

main.py -> Este archivo fue el proyecto completo en partes temprana del desarrollo, su código esta completamente comentado y tiene más contenido del necesario para ejecutar la deteccion de frutas, en general, es un archivo explicativo y con fines de experimentales, todos los archivos subsiguientes se basan en este.

custom_dataset.py -> Este archivo contiene código limpio y legible sobre como puedes ejecutar la detección de frutas en tiempo real o sobre una imagen con un modelo pre-entrenado para detectar hasta 4 frutas distintas con un dataset personalizado

default_dataset.py -> Este archivo es similar a custom_dataset solo que utiliza el dataset de coco con más de 122,000 imagenes para detectar hasta 79 clases distintas.

segment_dataset.py -> Este archivo es similar a default_dataset solo que utiliza el modelo de segmentación de YOLO para dibujar el contorno del objeto a detectar en cuestion, todo esto con el dataset de coco.

fruit detection dataset

Setup

Necesitaras una NPU o tarjeta gráfica para ejecutar este proyecto

Instalar (Python)

  1. Descargar el repositorio
  1. Instalar las dependencias
  • Abre una terminal en la raíz del proyecto y ejecutar pip install -r requirements.txt en la terminal para linux / Windows

Debes seleccionar las opciones según tu sistema, copiar el comando debajo del recuadro y ejecutarlo en la terminal

  1. Ejecutar el archivo principal python custom_dataset.py puedes hacer doble click en el para ejecutarlo, hacerlo mediante la terminal abriendola en la raíz del proyecto o mediante visual studio code si tienes la extension "python" instalada

Este proyecto fue ejecutado con el siguiente hardware:

  • Ryzen 7 5800H 3.20 GHz
  • 16 GB RAM DDR4 3200 MHz
  • NVIDIA RTX 3050 TI 4GB (laptop)

Este proyecto se ejecuta en local por lo que usa los recursos del computador para analizar las entradas y predecir el objeto en cuestion, aquí hay un ejemplo de cuanto exige a mi hardware. Uso de recursos

Dataset

El dataset o conjunto de datos es la coleccion de imagenes que usaras para entrenar a tu red neuronal, lo ideal es tener alrededor de 1,000 imagenes para entrenamiento y alrededor de 200 para validación, cuantas más imagenes utilices mejor.

Detalles

  • 191 Imagenes
  • 4 Clases (y sus indices)
    • 0 Manzana roja
    • 1 Banana
    • 2 Manzana verde
    • 3 Naranja

Nota: las clases estan en Ingles

example of fruit detection

Nota: el modelo fue entrenado para frutas, pero con un conjunto de datos distinto podrias utilizarlo para detectar cualquier cosa.

Resources

Obvie algunas carpetas en este repositorio por su peso, pero puedes descargarlas con los siguientes links directos a Mega:

runs

La carpeta runs contiene los modelos personalizados despues de entrenarlos con un dataset en particular, he entrenado el dataset 8 veces siendo la primera el menor número de imagenes y el 8vo entrenamiento con las 191 imagenes y las 4 clases (El 4to entrenamiento es el que me ha dado los mejores resultados en condiciones adecuadas de luz)

Puedes obtener la carpeta de runs aquí

fruits

La carpeta de fruits es el propio dataset, contiene las 191 imagenes con su correcpondiente archivo JSON de etiqueta, las etiquetas fueron realizadas con la herramienta labelme

Puedes obtener la carpeta de fruits aquí

data

La carpeta data contiene el dataset en un formato aceptado por YOLO para entrenar un modelo personalizado, esta carpeta contiene las imagenes para entrenamiento y validacion así como sus respectivas etiquetas y un archivo .yaml para definir la ruta de ambos directorios y las clases

Puedes obtener la carpeta data aquí