Overeasy позволяет объединять модели нулевого видения в цепочку для создания пользовательских сквозных конвейеров для таких задач, как:
Обнаружение ограничивающей рамки
Классификация
Сегментация (скоро!)
Всего этого можно достичь без необходимости собирать и аннотировать большие наборы обучающих данных.
Overeasy упрощает объединение предварительно обученных моделей с нулевым выстрелом для создания мощных индивидуальных решений компьютерного зрения.
Это так же просто, как
установка pip слишком проста
Для установки дополнений обратитесь к нашей документации.
Agents
: специализированные инструменты, выполняющие конкретные задачи по обработке изображений.
Workflows
: определите последовательность агентов для структурированной обработки изображений.
Execution Graphs
: управляйте и визуализируйте конвейер обработки изображений.
Detections
: представляют ограничивающие рамки, сегментацию и классификации.
Более подробную информацию о типах, структуре библиотеки и доступных моделях можно найти в нашей документации.
Примечание. Если у вас нет локального графического процессора, вы можете запустить наши примеры, создав копию этого блокнота Colab.
Скачать пример изображения
!wget https://github.com/overeasy-sh/overeasy/blob/73adbaeba51f532a7023243266da826ed1ced6ec/examples/construction.jpg?raw=true -O Construction.jpg
Пример рабочего процесса для определения того, носит ли человек СИЗ на рабочем месте:
from overeasy import *from overeasy.models import OwlV2from PIL import Imageworkflow = Workflow([# Обнаружение каждой головы во входном изображенииBoundingBoxSelectAgent(classes=["голова человека"], model=OwlV2()),# Применяет немаксимальное подавление для удаления перекрывающиеся ограничивающие рамкиNMSAgent(iou_threshold=0.5, Score_threshold=0),# Разделяет входные данные image на изображения каждого обнаруженного headSplitAgent(),# Классифицирует разделенные изображения с помощью CLIPClassificationAgent(classes=["каска", "без каски"]),# Сопоставляет возвращаемые имена классовClassMapAgent({"каска": "has ppe ", "без каски": "no ppe"}),# Объединяет результаты обратно в BoundingBox DetectionJoinAgent() ])image = Image.open("./construction.jpg")result,graph = workflow.execute(image)workflow.visualize(graph)
Вот схема этого рабочего процесса. Каждый слой на графике представляет собой этап рабочего процесса:
Атрибуты изображения и данных в каждом узле используются вместе для визуализации текущего состояния рабочего процесса. Вызов функции visualize
в рабочем процессе создаст экземпляр Gradio, который выглядит следующим образом.
Если у вас есть какие-либо вопросы или вам нужна помощь, откройте вопрос или свяжитесь с нами по адресу [email protected].
Давайте вместе построим потрясающие модели видения?!