Como o Campus Consciente decide.
Nenhuma pessoa detectada vira alarme. Vira pontos — e os pontos dependem de quem é, de quando está ali, de se insistiu e de quantas pessoas desconhecidas há.
O problema que resolvemos
Um alarme convencional trata todo evento como igual: uma pessoa às 14h de uma terça, com aula acontecendo, e às 3h de um domingo, com o campus trancado, produzem a mesma resposta. O resultado é conhecido — ou ele dispara tanto que ninguém escuta, ou é calibrado tão conservador que deixa de detectar o que importa.
Trocamos a pergunta. Em vez de "como detectar movimento?", perguntamos: "esta pessoa, neste horário, neste contexto, deveria estar aqui?"
O motor de score
| Nível | Pontuação | Resposta do sistema |
|---|---|---|
| VERDE | 0 – 24 | Registra e monitora |
| AMARELO | 25 – 49 | Atenção no painel; a pessoa não cadastrada vira um avistamento com foto para validação humana |
| LARANJA | 50 – 74 | Mensagem no Telegram do responsável, com a foto da pessoa não reconhecida |
| VERMELHO | 75 – 100 | Sirene no painel + mensagem no Telegram com foto |
Toda resposta do sistema inclui a conta que a produziu, por extenso. Um score sem explicação é um número mágico — e número mágico não se audita.
Os sete modos operacionais
O contexto vem de três fontes: o relógio, a grade de ocupação da sala com o calendário de feriados, e o operador — que pode avisar que vai ter evento.
| Modo | Fator | Quando |
|---|---|---|
| AULAS | 0,5 | Há aula agendada na sala — movimento é esperado; nada escala por repetição ou quantidade |
| EVENTO | 0,5 | Ligado pelo operador no painel (feira, vestibular, palestra): o sistema opera como num dia de aula normal, até o horário de fim |
| FORA DE AULA | 1,0 | Prédio aberto, sem aula agendada |
| ESVAZIAMENTO | 1,5 | Dias úteis, das 23h à meia-noite |
| FIM DE SEMANA | 1,5 | Sábados e domingos |
| FERIADO | 2,5 | Data no calendário — campus fechado |
| MADRUGADA | 2,5 | Todos os dias, da meia-noite às 6h — vence até o modo evento |
Na prática: uma pessoa não cadastrada vale 26 pontos durante a aula (35 × 0,5 × 1,5 — só atenção) e 100 pontos na madrugada (35 × 2,5 × 1,5 = 131, limitado a 100). Uma pessoa cadastrada na madrugada vale 26: a identidade segura o risco. Mesma câmera — o que muda é quem é e quando.
Quem é: o reconhecimento facial
O YOLOv8n detecta as pessoas e um rastreador segue cada uma pelo vídeo. Dois detectores de rosto trabalham em cascata (o leve resolve o caso fácil; o pesado entra só quando o rosto está virado, pequeno ou na contraluz). O ArcFace transforma o rosto em um vetor de 512 números, comparado com os das pessoas cadastradas. A decisão junta várias amostras — quanto mais claro o caso, menos amostras — e cada pessoa fica num de três estados:
| Estado | No painel | Fator | O que acontece |
|---|---|---|---|
| Reconhecida | caixa verde com o nome | 0,3 | Presença registrada automaticamente; a identidade continua sendo conferida pelo rosto |
| Identificando | caixa amarela | 1,0 | Ainda juntando amostras; caso duvidoso espera até 8 s antes de decidir |
| Não cadastrada | caixa vermelha | 1,5 | Vira um avistamento com foto; um humano valida no painel |
Cadeira não é gente. Uma caixa do YOLO só vira pessoa depois de provar: rosto, movimento, nota alta e constante, sinal de vida (gente viva nunca fica 100% imóvel) ou continuidade de uma pessoa já provada. Mochila na cadeira, casaco e sombra ficam invisíveis — e nunca geram alarme.
Menos falso alarme
A identidade decide. Pessoa cadastrada fora de hora não é intruso: o fator 0,3 segura o risco. Só quem não é reconhecido escala.
Sala cheia não é ameaça. Em aula ou em evento autorizado, presença contínua é o esperado — e não escala por repetição nem por quantidade. O campus é um lugar cheio de gente.
Na dúvida, espera. No fundo da sala o rosto fica "meio parecido"; em vez de alarmar em 1 s, o sistema espera até 8 s por uma amostra melhor. Intruso de verdade cai em "estranho" e é pego em menos de 1 s.
Quem sai e volta é a mesma pessoa. Reidentificação pelo rosto, sem fotos repetidas e sem alertas em dobro.
Idade e gênero: ocupação, não risco
O modelo FairFace estima a faixa etária (de 10 em 10 anos) e o gênero aparentes de quem passa pela sala, combinando várias amostras para não oscilar. É informação para a estatística de ocupação do campus — nunca entra no cálculo de risco, por decisão de projeto.
Relatório do dia para baixar: ocupação por hora, presenças, avistamentos com validação, alertas e os eventos do score, com a conta de cada um.
Arquitetura
Percepção
Câmera IP Full HD (RTSP) · FIAP IABox EduVision (Snapdragon) · rede cabeada e fechada, sem internet.
Decisão
YOLOv8n · YuNet + SCRFD em cascata · ArcFace · FairFace · motor de score contextual · grade de aulas, feriados e modo evento · banco SQLite.
Comunicação
Painel web servido pela própria IABox (nível, câmera ao vivo, pessoas, avistamentos, demo, estatísticas) · sirene · ponte no notebook → Telegram com foto e Gemini · relatório HTML e CSV.
PythonFastAPIOpenCVYOLOv8ArcFaceFairFaceNext.jsReactSQLiteFIAP IABoxTelegramGemini
Privacidade por design
Reconhecimento com responsabilidade. Rostos viram vetores de números; nenhuma imagem de rosto fica guardada no cadastro. Processamento local: tudo roda na IABox, dentro da sala, sem internet — nenhuma imagem sai do campus. Fotos temporárias: a foto do avistamento existe para o humano validar e vai ao Telegram só em LARANJA e VERMELHO; é apagada ao fim de cada sessão. Idade e gênero são estimativas de ocupação e nunca critério de risco. O assistente (Gemini) recebe só dados agregados — nível, contagens, horários, nomes de quem está cadastrado — nunca imagens. Governança: nada é decidido só pela IA; um humano valida cada pessoa não reconhecida.
