Estudo 1 · condição “sem ProvInCiA” (logs)

Saída de execução do pipeline (logs do terminal)

Este é o material que o participante recebe na condição logs: a saída crua do terminal dos 6 scripts do pipeline “Chuvas Niterói”, exatamente como aparece ao rodá-los em sequência. É o que um pesquisador tem sem um sistema de proveniência.

⚠️ Amostra representativa (poucos vídeos/frames) para caber na tela. Os scripts não imprimem timestamps nem duração de cada transformação — esses dados só existem na proveniência. Nomes de arquivo aparecem abreviados.
participante@estudo1: ~/Chuvas/Evaluation
$ python 1-Video_Download_Niteroi_LOCAL.py
[INFO] Tentando baixar: https://appnittrans.niteroi.rj.gov.br:8888/000017/last_video.mp4
[INFO] Tamanho do vídeo baixado: 2458.34 KB
✅ Vídeo salvo: /mnt/d/.../videos_salvos/FelicianoSodre20250506_142230.mp4
[INFO] Tentando baixar: https://appnittrans.niteroi.rj.gov.br:8888/000016/last_video.mp4
[INFO] Tamanho do vídeo baixado: 41.07 KB
[ERRO] Vídeo de Arariboia não salvo: tamanho insuficiente ou erro HTTP (200)
[INFO] Tentando baixar: https://appnittrans.niteroi.rj.gov.br:8888/000020/last_video.mp4
[INFO] Tamanho do vídeo baixado: 3120.88 KB
✅ Vídeo salvo: /mnt/d/.../videos_salvos/RioBrancoXVNovembro20250506_142242.mp4
^C
Traceback (most recent call last):
  File "1-Video_Download_Niteroi_LOCAL.py", line 155, in <module>
    time.sleep(1)
KeyboardInterrupt

$ python 2-extracao.py

🎬 Iniciando extração de frames para: FelicianoSodre20250506_142230.mp4
🖼️  4 frames salvos para FelicianoSodre20250506_142230.mp4:
  [1] /mnt/d/.../frames/a3f9c1_20250506142312.jpg (existe? True)
  [2] /mnt/d/.../frames/b7e2d4_20250506142314.jpg (existe? True)
  [3] /mnt/d/.../frames/c1a8f0_20250506142316.jpg (existe? True)
  [4] /mnt/d/.../frames/d9b3e7_20250506142318.jpg (existe? True)
   ✅ Frame [1] registrado com sucesso.
   ✅ Frame [2] registrado com sucesso.
   ✅ Frame [3] registrado com sucesso.
   ✅ Frame [4] registrado com sucesso.
✔️ Task 1 finalizada.

🎬 Iniciando extração de frames para: RioBrancoXVNovembro20250506_142242.mp4
🖼️  4 frames salvos para RioBrancoXVNovembro20250506_142242.mp4:
  [1] /mnt/d/.../frames/e5c2a9_20250506142250.jpg (existe? True)
  [2] /mnt/d/.../frames/f0d7b1_20250506142252.jpg (existe? True)
  [3] /mnt/d/.../frames/1a4e8c_20250506142254.jpg (existe? True)
  [4] /mnt/d/.../frames/2b9f3d_20250506142256.jpg (existe? True)
   ✅ Frame [1] registrado com sucesso.
   ✅ Frame [2] registrado com sucesso.
   ✅ Frame [3] registrado com sucesso.
   ✅ Frame [4] registrado com sucesso.
✔️ Task 2 finalizada.

$ python 3-classificando.py
✅ a3f9c1_20250506142312.jpg classificado como sem_chuva
✅ b7e2d4_20250506142314.jpg classificado como chuva_leve
✅ c1a8f0_20250506142316.jpg classificado como chuva_forte
✅ d9b3e7_20250506142318.jpg classificado como sem_chuva
✅ e5c2a9_20250506142250.jpg classificado como chuva_leve
✅ f0d7b1_20250506142252.jpg classificado como sem_chuva
✅ 1a4e8c_20250506142254.jpg classificado como chuva_forte
✅ 2b9f3d_20250506142256.jpg classificado como chuva_com_alagamento
✔️ Script 3 finalizado e proveniência registrada com sucesso.

$ python 4-separando.py
✅ Classe 'chuva_com_alagamento' processada e separada.
✅ Classe 'chuva_forte' processada e separada.
✅ Classe 'chuva_leve' processada e separada.
✅ Classe 'sem_chuva' processada e separada.
🚀 Script 4 finalizado. Dataset separado e proveniência registrada.

$ python 5-treinamento.py
Found 168 images belonging to 2 classes.
Found 36 images belonging to 2 classes.
Epoch 1/10
6/6 [==============================] - 3s 274ms/step - loss: 0.6931 - accuracy: 0.5119 - val_loss: 0.6825 - val_accuracy: 0.5556
Epoch 2/10
6/6 [==============================] - 1s 205ms/step - loss: 0.6402 - accuracy: 0.6548 - val_loss: 0.6088 - val_accuracy: 0.6944
Epoch 3/10
6/6 [==============================] - 1s 210ms/step - loss: 0.5333 - accuracy: 0.7440 - val_loss: 0.5211 - val_accuracy: 0.7500
      ... (épocas 4 a 9) ...
Epoch 10/10
6/6 [==============================] - 1s 208ms/step - loss: 0.2145 - accuracy: 0.9226 - val_loss: 0.3502 - val_accuracy: 0.8611
✅ Treinamento concluído – 168 imagens registradas.

$ python 6-teste.py
1/1 [==============================] - 0s 78ms/step
✅ Imagem: 3c7a1e_20250506142301.jpg | Previsto: sem_chuva | Verdadeiro: sem_chuva
1/1 [==============================] - 0s 41ms/step
✅ Imagem: 9b2f4d_20250506142303.jpg | Previsto: chuva_forte | Verdadeiro: chuva_leve
1/1 [==============================] - 0s 39ms/step
✅ Imagem: 7e0c8a_20250506142305.jpg | Previsto: chuva_forte | Verdadeiro: chuva_forte
1/1 [==============================] - 0s 40ms/step
✅ Imagem: 5d1b6f_20250506142307.jpg | Previsto: sem_chuva | Verdadeiro: sem_chuva
🎯 Acurácia no conjunto de teste: 86.00%

$ 

O que os logs mostram — quais frames foram gerados/classificados, as classes previstas, a acurácia final. O que NÃO mostram (e a ProvInCiA responde):