Camera RTSP/HLS

Fonte de video configurada por URL. Suporta RTSP, HLS, arquivos locais e webcam.

Pipeline YOLO + ByteTrack

Deteccao de veiculos com YOLO e rastreamento com ByteTrack em tempo real.

Linha de Contagem

Linha virtual configuravel (line_position). Conta veiculos ao cruzar.

Livestream / Ciclo

Contagem agrupada em ciclos com duracao definida. Cada ciclo gera um resultado.

Resultado do Ciclo

Contagem final, timestamps, duracao e status salvo em memoria.

Webhook POST

Envia resultado do ciclo para URL configurada (opcional). Inclui contagem e metadata.

Intervalo

Pausa entre ciclos (interval_duration). Contagem pausada.

Proximo Ciclo

Reinicia contagem do zero. Repete ate ends_at da livestream.

Input
Processamento
Output
Dados
O que e um ciclo?
Um ciclo e um periodo de tempo dentro de uma livestream em que a contagem de veiculos acontece. Cada ciclo tem duracao fixa (cycle_duration), e ao final o resultado e salvo e um webhook pode ser disparado. Apos o ciclo, ha um intervalo antes do proximo comecar.
O que e uma livestream?
Uma livestream e uma sessao de monitoramento agendada para uma camera. Ela define o periodo (starts_at ate ends_at) e os parametros dos ciclos. Dentro da livestream, varios ciclos sao executados automaticamente com intervalos entre eles.
O que e o intervalo entre ciclos?
O intervalo (interval_duration) e uma pausa entre ciclos. Durante o intervalo a contagem fica pausada. Isso permite separar resultados de periodos distintos. O padrao e 30 segundos.
O que acontece se o servidor cair durante uma livestream?
O sistema possui recuperacao automatica (recover_from_crash). Ao reiniciar, livestreams que ainda nao terminaram sao retomadas. Os ciclos ja concluidos sao preservados. O ciclo que estava ativo no momento da queda pode perder dados parciais.
Como funciona o webhook?
Ao criar uma livestream, voce pode informar uma webhook_url. A cada ciclo concluido, um POST e enviado para essa URL com o resultado (contagem, timestamps, camera_id, etc). Se a URL nao for fornecida, nenhum webhook e disparado.
Como funciona a deteccao de veiculos?
O pipeline usa YOLO para detectar veiculos em cada frame e ByteTrack para rastrear objetos entre frames. Quando um veiculo rastreado cruza a linha virtual (line_position), a contagem e incrementada. O processamento roda em resolucao configuravel (process_width).
Posso ter varias cameras simultaneas?
Sim. O sistema suporta multiplas cameras rodando em paralelo. Cada camera tem seu proprio pipeline, e livestreams sao independentes por camera. O limite pratico depende dos recursos de hardware (CPU/GPU).
O que e a line_position?
A line_position e um valor entre 0.0 e 1.0 que define onde a linha de contagem fica no frame. 0.0 = topo, 1.0 = base. O padrao e 0.7 (70% abaixo do topo). Veiculos sao contados ao cruzar essa linha.
Quais modelos YOLO estao disponiveis?
O modelo padrao e yolo26n.pt. Voce pode configurar outros modelos YOLO compativeis com ultralytics ao criar ou atualizar uma camera via o campo model_name. Modelos maiores oferecem mais precisao mas exigem mais recursos.
Como acessar o stream de video ao vivo?
O stream MJPEG esta disponivel em /video_feed/{camera_id}. Voce pode usar diretamente em uma tag <img> ou abrir no browser. O parametro ?mode=live mostra o video com overlay de deteccao; ?mode=clean mostra o video original.