Ultralytics YOLO27:
Get Started

Inferência#

A Ultralytics Platform disponibiliza inferência no browser para testar modelos treinados e endpoints dedicados para acesso programático.

Separador de previsão de modelos da Ultralytics Platform com sobreposição de deteções

Aba Previsão#

Todos os modelos com pesos incluem um separador Predict para inferência no browser:

  1. Navega até ao teu modelo
  2. Clica no separador Predict
  3. Carrega uma imagem, usa um exemplo ou abre a webcam
  4. Revê a sobreposição específica da tarefa, o resumo da previsão, os tempos e a resposta em bruto

Os modelos sem pesos apresentam um estado vazio — primeiro, treina o modelo ou carrega os pesos.

Zona para carregar imagens no separador Predict da Ultralytics Platform

Métodos de entrada#

O painel de previsão suporta vários métodos de entrada:

MétodoDescrição
Carregamento de imagensArrasta e larga ou clica para carregar uma imagem
Imagens de exemploClica nos exemplos incorporados (imagens do conjunto de dados ou predefinições)
Captura pela webcamTransmissão de vídeo em direto com captura de fotogramas individuais
Câmara IPFluxo RTSP ou RTSPS na tua própria implementação

Carregar imagem#

Arrasta e larga ou clica para carregar:

  • Formatos suportados: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP
  • Tamanho máximo: 10 MB
  • Inferência automática: os resultados aparecem automaticamente após o carregamento
Inferência automática

O painel de previsão executa a inferência automaticamente quando carregas uma imagem, selecionas um exemplo ou capturas um fotograma da webcam. Não é necessário clicar num botão.

Redimensionamento no cliente

Antes do carregamento, o painel redimensiona a imagem para que o lado mais comprido corresponda ao valor selecionado de Image Size e pede coordenadas normalizadas. Isto torna os testes no browser mais rápidos; os pedidos que envias por tua conta não são redimensionados.

Imagens de exemplo#

O painel de previsão apresenta até duas imagens de exemplo do conjunto de dados associado ao teu modelo, dando preferência à divisão val, depois test e, por fim, train. Se não houver nenhum conjunto de dados associado, são usados exemplos predefinidos:

ImagemConteúdo
bus.jpgCena de rua com veículos
zidane.jpgCena desportiva com pessoas

Nos modelos OBB, são apresentadas imagens aéreas de barcos e de um aeroporto.

Imagens pré-carregadas

As imagens de exemplo são pré-carregadas quando a página é aberta, pelo que clicar num exemplo inicia a inferência quase instantaneamente, sem esperar pelo descarregamento.

Webcam#

Seleciona Webcam acima da área da imagem para iniciar uma transmissão de vídeo em direto:

  1. Concede permissão para usar a câmara quando te for pedido
  2. Clica na pré-visualização do vídeo para capturar um fotograma
  3. A inferência é executada automaticamente no fotograma capturado
  4. Clica em Voltar à webcam para regressar à transmissão em direto

Na separador Predict da tua própria implementação, a webcam executa inferência continuamente. Consulta Inferência com câmara em direto.

Ver resultados#

Os resultados da inferência apresentam a saída adequada à tarefa do modelo: caixas, máscaras, pontos-chave, caixas orientadas, pontuações de classificação, cobertura semântica ou um mapa de profundidade. Quando disponíveis, os resultados dos objetos usam as cores das classes do conjunto de dados. O painel também apresenta os tempos de pré-processamento, inferência, pós-processamento e rede.

Resultados do separador Predict da Ultralytics Platform com deteções e estatísticas de velocidade

O painel de resultados apresenta:

CampoDescrição
Resumo dos resultadosLista por deteção ou as 5 principais classes para modelos de classificação e semânticos
Estatísticas de velocidadePré-processamento, inferência, pós-processamento e rede (ms)
VersõesVersões do Ultralytics e do PyTorch, além do intervalo de profundidade ou do tamanho da máscara, quando aplicável
Resposta JSONResposta bruta da API num bloco de código, com os dados do mapa em base64 omitidos

Quando há resultados, aparecem dois controlos sobre a pré-visualização: clica na imagem para a ampliar sem remover as sobreposições e usa o botão de descarregamento para guardar um JPEG anotado do resultado atual.

Parâmetros de inferência#

Ajusta o comportamento da inferência com os três controles deslizantes abaixo da imagem (os modelos de profundidade mostram apenas Image Size):

Controles deslizantes dos parâmetros da guia Predict da Ultralytics Platform

ParâmetroIntervaloPadrãoDescrição
Confiança0.01 – 1.0, incrementos de 0.010.25Limiar mínimo de confiança
IoU0.0 – 0.95, incrementos de 0.010.7Limiar de IoU da NMS
Tamanho da imagem32 – 1280, incrementos de 32640Dimensão de redimensionamento da entrada
Reexecução automática

A alteração de qualquer parâmetro reexecuta automaticamente a inferência na imagem atual, com um intervalo de 500 ms. Não é necessário carregar a imagem novamente.

Limiar de confiança#

Filtra as previsões por confiança:

  • Mais alto (0.5+): menos previsões, mais confiáveis
  • Mais baixo (0.1-0.25): mais previsões, algum ruído
  • Padrão (0.25): equilibrado para a maioria dos casos de uso

Limiar de IoU#

Controla a supressão não máxima:

  • Mais alto (0.7+): permite mais caixas sobrepostas
  • Mais baixo (0.3-0.5): suprime deteções sobrepostas de forma mais agressiva
  • Padrão (0.7): comportamento equilibrado da NMS para a maioria dos casos de uso

Inferência de implantação#

Cada endpoint dedicado em execução inclui uma guia Predict na respetiva página de implantação. Esta guia usa o próprio serviço de inferência da implantação, em vez do serviço de inferência partilhado, permitindo testar o endpoint implantado no navegador.

Num endpoint pronto, as imagens processadas também contribuem para a guia Monitoring. Os exemplos e gráficos agregados são dados temporários leves mantidos na memória; parar, reiniciar, reimplantar, redimensionar ou substituir o modelo pode apagá-los. Guarda os exemplos num conjunto de dados para os manter.

Inferência com câmara em direto#

No separador Predict de uma implementação que te pertence, seleciona Webcam ou Câmara IP para executar o endpoint em vídeo em direto:

FonteComo funciona
WebcamO navegador envia os fotogramas para o endpoint um de cada vez e apresenta cada resultado sobre a transmissão em direto
Câmara IPIntroduz um URL rtsp:// ou rtsps://, incluindo as credenciais, e clica em Ligar; o endpoint lê a câmara e transmite cada resultado de volta

A inferência em direto usa a chave API associada ao endpoint, que só o proprietário do espaço de trabalho pode carregar; para os outros membros da equipa, a webcam captura fotogramas individuais e a Câmara IP não está disponível, tal como no separador Predict de um modelo. A câmara IP tem de estar acessível a partir da Internet: o endpoint recusa endereços de rede local como 192.168.x.x. Cada resultado corresponde ao fotograma mais recente, pelo que alguns fotogramas são ignorados quando a inferência fica para trás. As alterações dos controlos deslizantes aplicam-se ao próximo fotograma da webcam e reiniciam o fluxo da câmara IP. A inferência em direto é pausada quando o separador do navegador fica oculto. Clica na pré-visualização para capturar um fotograma, ou em Desligar para deixar de ver a câmara IP.

Câmara em segundo plano#

Um endpoint com tamanho personalizado de CPU e memória pode continuar a monitorizar uma câmara IP depois de desligar ou fechar a página. Quando a câmara ligada apresentar resultados, ativa Manter em execução em segundo plano. O cabeçalho da implementação apresenta Câmara ligada, e os resultados são enviados para o separador Monitorização como exemplos temporários e estatísticas de predição.

  • Definições: A câmara em segundo plano usa sempre a confiança predefinida (0.25), IoU (0.7) e o tamanho de imagem de treino do modelo; os controlos deslizantes não se aplicam a esta câmara.
  • Custo: É executada na instância ativa do endpoint sem custos adicionais; a tarifa horária de disponibilidade aplica-se quer a câmara esteja ligada quer esteja desligada.
  • Alterações: Ligar ou desligar a câmara, ou mudar para outra câmara, reinicia a instância do endpoint, mantendo o endpoint pronto, mas limpando os dados temporários de monitorização.
  • Parar: Desativa o interruptor. Desligar ou fechar a página não para a câmara, e redimensionar o endpoint para o tamanho predefinido remove-a. Se a câmara ficar offline, o endpoint continua a tentar restabelecer a ligação.
  • Ciclo de vida do endpoint: Parar o endpoint para a câmara e as cobranças; ao iniciá-lo novamente, a câmara guardada retoma a execução.

Os endpoints de tamanho predefinido permitem inferência em direto com webcam e câmara IP, sem a opção de execução em segundo plano. Para guardar uma câmara em segundo plano através da API, usa a ação camera da implementação.

Transmitir resultados da API#

Envia um URL RTSP ou RTSPS como source, com o cabeçalho Accept: text/event-stream, para um URL de endpoint dedicado para receber resultados como eventos enviados pelo servidor:

curl -N -X POST \
  "https://YOUR_DEPLOYMENT_URL.run.app/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: text/event-stream" \
  -F "source=rtsp://user:password@camera.example.com:554/stream" \
  -F "conf=0.25"

Cada evento de fotograma contém images no formato da resposta, com coordenadas normalizadas (0-1), um URL de dados JPEG preview do fotograma e metadata com a tarefa e os nomes das classes. Só se aplicam conf, iou e imgsz, e a transmissão do URL da câmara em segundo plano do endpoint usa as definições predefinidas. Os eventos que contêm apenas status não incluem um fotograma, e um evento com uma mensagem error (não foi possível ler a câmara ou o endpoint não consegue executar o modelo) termina o fluxo. O fluxo também fecha quando o endpoint é reiniciado ou o pedido atinge o limite de tempo; por isso, volta a ligar-te com um intervalo crescente quando terminar sem erro. A rota de predição de implementações e o SDK da API da Plataforma não fazem transmissão; envia os pedidos da câmara para o URL do endpoint com a chave API associada. Um pedido de câmara source sem o cabeçalho devolve 400.

API do endpoint dedicado#

O cartão API Docs na guia Predict do modelo contém exemplos de pedidos em Python, JavaScript e cURL, preenchidos previamente com os valores de confiança, IoU e tamanho da imagem definidos atualmente nos controles deslizantes. O URL e a chave são marcadores de posição até implantares o modelo — um botão Deploy junto às guias de código leva à guia Deploy do modelo. Após a implantação, a guia de resultado Docs na guia Predict da página de implantação preenche o URL desse endpoint e, para os proprietários do espaço de trabalho, a respetiva chave de API associada, pronta para copiar e executar.

Autenticação#

Inclui a tua chave de API nos pedidos:

Authorization: Bearer YOUR_API_KEY
É necessária uma chave de API

Para executar inferências nos teus próprios scripts, notebooks ou aplicações, inclui uma chave de API. Gera uma em Settings > API Keys. Um endpoint dedicado aceita apenas a única chave com que foi criado; a API de modelo partilhada aceita qualquer chave ativa no espaço de trabalho, e os modelos públicos também aceitam pedidos anónimos.

Endpoint#

Os endpoints dedicados recebem pedidos no respetivo URL:

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

A inferência partilhada usa a API da Platform com o caminho completo do modelo:

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

Ambos aceitam o mesmo corpo multipart/form-data e devolvem respostas com a mesma estrutura. Com o SDK de Python, usa client.models.predict(owner, project, model, body=...) para inferência partilhada ou client.deployments.predict(owner, deployment, body=...) para uma implantação dedicada. Ambos os métodos do SDK chamam a API da Platform, pelo que se aplicam os limites de taxa e o limite de tamanho dos pedidos. Para os evitar, envia o pedido diretamente para um URL de endpoint dedicado, conforme indicado em Pedido. Exemplo de inferência partilhada:

from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
    results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})

Pedido#

import requests

url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

with open("image.jpg", "rb") as image_file:
    response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())

Exemplos de código da guia Predict da Ultralytics Platform, guia Python

Parâmetros do pedido#

ParâmetroTipoPadrãoIntervaloDescrição
fileficheiro--Ficheiro de imagem ou vídeo (obrigatório, a menos que source esteja definido)
conffloat0.250.01 – 1.0Limiar mínimo de confiança
ioufloat0.70.0 – 0.95Limiar de IoU da NMS
imgszint-32 – 1280Tamanho da imagem de entrada em píxeis; por predefinição, usa o tamanho de treino do modelo (640, se não estiver disponível)
normalizeboolfalse-Devolve as coordenadas da caixa delimitadora entre 0 e 1
decimalsint50 – 10Precisão decimal dos valores das coordenadas
vid_strideint1≥ 1Prevê em cada N-ésimo fotograma do vídeo; as imagens ignoram este parâmetro
bitsint88, 12, 16Quantização do mapa de profundidade; apenas para modelos de profundidade
sourcestring--URL da imagem ou string em base64 (alternativa a file); máximo de 4,096 caracteres através da API da Platform

Resposta#

{
    "images": [
        {
            "shape": [1080, 1920],
            "results": [
                {
                    "class": 0,
                    "name": "person",
                    "confidence": 0.92,
                    "box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
                },
                {
                    "class": 2,
                    "name": "car",
                    "confidence": 0.87,
                    "box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
                }
            ],
            "speed": {
                "preprocess": 1.2,
                "inference": 12.5,
                "postprocess": 2.3
            }
        }
    ],
    "metadata": {
        "imageCount": 1,
        "classNames": ["person", "bicycle", "car", "..."],
        "functionTimeAlive": 1284.51,
        "functionTimeCall": 0.018,
        "task": "detect",
        "version": {
            "ultralytics": "8.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Vista da resposta JSON da guia Predict da Ultralytics Platform

Campos da resposta#

CampoTipoDescrição
imagesarrayLista de imagens processadas, uma entrada por cada fotograma de vídeo processado
images[].shapearrayDimensões da imagem [altura, largura]
images[].resultsarrayLista de deteções
images[].results[].classintÍndice da classe (ID inteiro)
images[].results[].namestringNome da classe
images[].results[].confidencefloatConfiança da deteção (0-1)
images[].results[].boxobjectCoordenadas da caixa delimitadora
images[].semantic_maskobjectMapa de classes por píxel (apenas para modelos semânticos)
images[].depthobjectMapa de profundidade por píxel (apenas para modelos de profundidade)
images[].speedobjectTempos de processamento em milissegundos
metadataobjectNúmero de imagens, nomes das classes do modelo, tempos do serviço, tarefa e versões

Respostas específicas por tarefa#

O formato da resposta varia consoante a tarefa:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}

Limites de taxa#

A API de modelo partilhada está limitada a 20 pedidos/minuto por chave de API, utilizador com sessão iniciada ou IP anónimo. A rota de inferência da implantação da Platform (POST /api/deployments/{owner}/{deployment}/predict) tem o mesmo limite. Quando o limite é atingido, a API devolve 429 com um cabeçalho Retry-After. Consulta a referência completa dos limites de taxa para ver todas as categorias de endpoint.

Precisas de mais capacidade?

Os pedidos enviados diretamente para um endpoint dedicado não passam pelo limitador de taxa da API da Platform. O endpoint continua a rejeitar pedidos para reduzir a carga com 429 e um cabeçalho Retry-After quando está temporariamente sem capacidade. Para inferência local de alto volume, consulta o guia do modo Predict.

Tratamento de erros#

Respostas de erro comuns:

CódigoMensagemSolução
400Imagem inválidaVerifica o formato do ficheiro ou se o modelo tem pesos treinados
401Não autorizadoVerifica a chave de API
404Modelo não encontradoVerifica os nomes do proprietário, do projeto e do modelo
413Entrada demasiado grandeReduz o tamanho do ficheiro para ficar abaixo do limite do endpoint
429Limite de taxa atingidoAguarda e tenta novamente, ou envia os pedidos diretamente para um endpoint dedicado
500Erro do servidorTenta novamente o pedido
503Serviço indisponívelO serviço Predict está a iniciar ou está inacessível; aguarda um pouco e tenta novamente

Perguntas frequentes#

  • Ambos os métodos de inferência aceitam ficheiros de vídeo:

    • Os endpoints dedicados aceitam ficheiros de vídeo diretamente. Formatos suportados (até 32 MB por pedido): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Os resultados são devolvidos por fotograma processado, e um pedido pode ser executado até 1 hora. Consulta os endpoints dedicados para mais detalhes.
    • A inferência partilhada (POST /api/models/{owner}/{project}/{model}/predict) usa o mesmo serviço de predição e aceita os mesmos formatos de vídeo, mas os pedidos estão limitados a cerca de 4.5 MB e expiram após cerca de 30 segundos, pelo que só são adequados para clipes curtos. O separador Predizer do navegador só carrega imagens; por isso, usa um endpoint dedicado para ficheiros de vídeo ou a Inferência com câmara em direto para uma webcam ou câmara IP.

    Os modelos de profundidade não aceitam ficheiros de vídeo.

  • Na guia Predict, o botão de transferência sobre a pré-visualização guarda o resultado atual como JPEG anotado. A própria API devolve previsões em JSON. Para as visualizar:

    1. Usa as previsões para desenhar caixas localmente
    2. Executa o modelo localmente com Ultralytics e guarda o resultado anotado com save() (ou obtém um array com plot()):
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("image.jpg")
    results[0].save("annotated.jpg")

    Consulta a documentação do modo Predict para conhecer a API completa de resultados e as opções de visualização.

    • Limite da aba Predict: 10 MB
    • Limite da API de inferência partilhada: cerca de 4,5 MB por pedido, inclusive através do SDK Python
    • Limite do endpoint dedicado: 32 MB por pedido enviado diretamente ao URL do endpoint
    • Redimensionamento automático na aba Predict: as imagens são redimensionadas para o Image Size selecionado antes do carregamento

    As imagens grandes são redimensionadas automaticamente no navegador, mantendo a proporção. Os pedidos que envias por conta própria não são redimensionados, por isso os pedidos acima do limite são rejeitados com 413.

  • A API atual processa uma imagem por pedido. Para processar em lote:

    1. Envia pedidos separados para cada imagem
    2. Distribui os pedidos por endpoints dedicados quando for adequado
    3. Usa a inferência local para processar lotes grandes
    Inferência em lote com Python
    import concurrent.futures
    
    import requests
    
    url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
    headers = {"Authorization": "Bearer YOUR_API_KEY"}
    images = ["img1.jpg", "img2.jpg", "img3.jpg"]
    
    def predict(image_path):
        with open(image_path, "rb") as f:
            return requests.post(url, headers=headers, files={"file": f}).json()
    
    with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
        results = list(executor.map(predict, images))

Comentários