Pular para conteúdo

Detectar, segmentar e classificar

Rode detecção de objetos, segmentação de instâncias ou classificação de imagens com Ultralytics YOLO, HuggingFace Transformers e RF-DETR (só detect/seg) por meio de um Detector / Segmentor / Classifier. O framework é detectado automaticamente pelo nome do modelo; só a string do modelo muda.

Precisa da instalação completa primeiro? Veja Instalação.

1. Instale o módulo de IA

O módulo de IA precisa do PyTorch:

make setup            # pick: control ai   (installs PyTorch)

# or: make python-ai && make pytorch

Os pesos do modelo baixam automaticamente no primeiro carregamento.

2. Detecte objetos

Escolha um framework — o nome do modelo o seleciona. detect() devolve resultados tipados com class_name, confidence e xyxy:

from nectar.ai.detection import Detector
detector = Detector("yolov8n.pt")                      # ultralytics, auto-detected
from nectar.ai.core import Framework
from nectar.ai.detection import Detector
detector = Detector("facebook/detr-resnet-50", framework=Framework.TRANSFORMERS)
from nectar.ai.core import Framework
from nectar.ai.detection import Detector
detector = Detector("rfdetr-medium", framework=Framework.RFDETR)

Depois carregue uma vez e detecte por frame:

detector.load()
result = detector.detect(image, conf=0.5)

for det in result:
    print(f"{det.class_name}: {det.confidence:.2f} at {det.xyxy}")

annotated = detector.draw_detections(image, result)

Para rodar ao vivo em uma câmera, coloque detector.detect em um callback de ImageHandler (veja Ver com uma câmera).

3. Segmente objetos

Segmentor espelha Detector com máscaras por instância; segment() devolve máscaras mais os mesmos campos de classe/score:

from nectar.ai.segmentation import Segmentor
segmentor = Segmentor("yolov8n-seg.pt")
from nectar.ai.segmentation import Segmentor
from nectar.ai.core import Framework
segmentor = Segmentor("facebook/maskformer-swin-tiny-coco", framework=Framework.TRANSFORMERS)
from nectar.ai.segmentation import Segmentor
from nectar.ai.core import Framework
segmentor = Segmentor("rfdetr-seg-medium", framework=Framework.RFDETR)
segmentor.load()
result = segmentor.segment(image, conf=0.5)

Resultado esperado

Uma lista de detecções/segmentos por frame, cada um com rótulo de classe, confiança e uma caixa (detecção) ou máscara (segmentação).

4. Classifique imagens

classify() devolve resultados tipados top-k com top1_name e top1_confidence:

from nectar.ai.classification import Classifier
classifier = Classifier("yolo26n-cls.pt")
classifier.load()
result = classifier.classify(image)
print(result.top1_name, result.top1_confidence)
from nectar.ai.classification import Classifier
from nectar.ai.core import Framework
classifier = Classifier(
    "google/vit-base-patch16-224",
    framework=Framework.TRANSFORMERS,
)
classifier.load()
result = classifier.classify(image, topk=5)

5. Além da inferência

O mesmo Detector / Segmentor / Classifier cobre o fluxo completo — apontadores na referência:

  • Slicing inference para objetos pequenos em frames de alta resolução, com pós-processamento NMS / Soft-NMS / WBF / NMMDetection.
  • Treinamento com dataclasses de config por framework, logging TensorBoard e push no HuggingFace Hub; avaliação e ferramentas de datasetvisão geral de AI.
  • CLI nectar-ai para predict / train / evaluate sem escrever um script.

6. Tutoriais em notebook (Colab)

Fluxos ponta a ponta no Google Colab:

Ver também