Overeasy le permite encadenar modelos de visión de disparo cero para crear canalizaciones personalizadas de un extremo a otro para tareas como:
Detección de cuadro delimitador
Clasificación
Segmentación (¡próximamente!)
Todo esto se puede lograr sin necesidad de recopilar y anotar grandes conjuntos de datos de entrenamiento.
Overeasy simplifica la combinación de modelos de disparo cero previamente entrenados para crear potentes soluciones de visión por computadora personalizadas.
Es tan fácil como
instalación de pip demasiado fácil
Para instalar extras, consulte nuestros documentos.
Agents
: Herramientas especializadas que realizan tareas específicas de procesamiento de imágenes.
Workflows
: Defina una secuencia de Agentes para procesar imágenes de forma estructurada.
Execution Graphs
: administre y visualice el proceso de procesamiento de imágenes.
Detections
: representan cuadros delimitadores, segmentaciones y clasificaciones.
Para obtener más detalles sobre los tipos, la estructura de la biblioteca y los modelos disponibles, consulte nuestros documentos.
Nota: Si no tiene una GPU local, puede ejecutar nuestros ejemplos haciendo una copia de este cuaderno de Colab.
Descargar imagen de ejemplo
!wget https://github.com/overeasy-sh/overeasy/blob/73adbaeba51f532a7023243266da826ed1ced6ec/examples/construction.jpg?raw=true -O construcción.jpg
Ejemplo de flujo de trabajo para identificar si una persona lleva un EPP en un lugar de trabajo:
from overeasy import *from overeasy.models import OwlV2from PIL import Imageworkflow = Workflow([# Detecta cada cabeza en la entrada imageBoundingBoxSelectAgent(classes=["person's head"], model=OwlV2()),# Aplica supresión no máxima para eliminar cuadros delimitadores superpuestosNMSAgent(iou_threshold=0.5, score_threshold=0),# Divide la imagen de entrada en imágenes de cada una headSplitAgent(),# clasifica las imágenes divididas usando CLIPClassificationAgent(classes=["hard hat", "no hard hat"]),# Asigna los nombres de clase devueltosClassMapAgent({"hard hat": "has ppe", "no hard hat") hat": "no ppe"}),# Combina los resultados nuevamente en un BoundingBoxDetectionJoinAgent() ])imagen = Imagen.open("./construction.jpg")resultado, gráfico = flujo de trabajo.execute(imagen)flujo de trabajo.visualize(gráfico)
A continuación se muestra un diagrama de este flujo de trabajo. Cada capa del gráfico representa un paso en el flujo de trabajo:
Los atributos de imagen y datos de cada nodo se utilizan juntos para visualizar el estado actual del flujo de trabajo. Llamar a la función visualize
en el flujo de trabajo generará una instancia de Gradio que se ve así.
Si tiene alguna pregunta o necesita ayuda, abra un problema o comuníquese con nosotros a [email protected].
¿Construyamos juntos modelos de visión increíbles?