Um sistema de detecção de chamas utilizando apenas dados espaciais para detecção de fogo utilizando câmeras hand-held. Revisão dos trabalhos de Phillips (2002), Chen (2004), Celik (2007/2008/2009), Borges (2010) e Chenebert (2011). Utilização de Random Forests Breiman (2001) para extração e classificação das regiões.
1. Um Sistema De Detecção De Fogo
Baseado Em Vídeo
Cristiano Rafael Steffens
Orientador: Ricardo Nagel Rodrigues
Programa de Pós-Graduação em Computação
Mestrado em Engenharia da Computação
Universidade Federal do Rio Grande
1
2. AGENDA
Introdução
Objetivos
Recursos
Dataset
Trabalhos Relacionados
Método Proposto
Resultados Parciais
Propostas para a continuação do trabalho
Conclusão
2
3. INTRODUÇÃO
Sensores tradicionais;
Novas aplicações para equipamento
existente;
Desafios;
3
4. OBJETIVO
Propor um detector de chamas com bons
resultados no processamento de vídeos
obtidos a partir de câmeras móveis e capaz de
realizar detecção em tempo real minimizando
as taxas de falsos positivos e falsos negativos.
4
5. OBJETIVOS ESPECÍFICOS
Revisão dos trabalhos relacionados;
Criação de um dataset para testes
automatizados e validáveis;
Implementação de detectores existentes;
Apresentar uma alternativa funcional:
Câmeras estáticas;
Câmeras móveis;
5
7. DATASET
Preexistences:
Bilkent VisiFire Sample Fire & Smoke Video
Clips;
KMU Fire and Smoke Dataset;
Vídeos distribuídos com licença CC BY 3.0;
Estático x Hand-held/móvel;
Anotações por frame;
7
10. PHILLIPS, 2002
Utiliza a informação do espaço de cores RGB através
de Colorlookup tables treinadas;
Utiliza a variância do valor do pixel no último
segundo (30FPS) para avaliação da oscilação;
Se variância no pixel é maior que a média da
variância no frame;
É considerado fogo se a cor E a classificação pela
variância assim o indicarem;
10
11. CHEN, 2004
Combina RGB e saturação através de regras
com valores de threshold definidos de forma
experimental;
Utiliza a contagem de pixels classificados
conforme a cor no decorrer do vídeo como
“medida de desordem”;
Alarme é ativado se ambas as características
indicarem fogo;
11
12. CELIK, 2007/2009/2010
Pouca variação entre publicações (Colorspace e
parâmetros);
Separa background do foreground utilizando um
modelo gaussiano uni-modal;
Explora sempre a relação entre as cores para
determinar uma equação;
Usa média e variação nos blobs para análise
temporal.
12
13. CELIK, 2010
15
Fonte: Fast and Efficient Method for Fire Detection Using Image Processing
CELIK(2010)
14. BORGES, 2010
Classificação de vídeos de telejornais;
Utiliza um modelo de aproximação estatística +
threshold para classificação da cor;
Dados da região: área, rugosidade, variância e
inclinação do canal vermelho;
Classificador Naive Bayes;
16
15. BORGES, 2010
Classificação de vídeos de telejornais;
Utiliza um modelo de aproximação estatística +
threshold para classificação da cor;
Dados da região: área, rugosidade, variância e
inclinação do canal vermelho;
Classificador Naive Bayes;
17
16. CHENEBERT, 2011
Classificação de cor utiliza a mesma equação de
Chen (2004);
Histogramas de H + Histogramas de S + GLCM de H
e S;
Classificadores:
CART (88%, ~12FPS)
NN (83%, ~6FPS)
Análise PCA para redução de atributos não resultou
em melhora significativa.
18
17. MÉTODO PROPOSTO
19
Classificação do pixel pela cor;
Extração de regiões;
Extração de estatísticas da região;
Classificação com base nas estatísticas da
região;
Classificação com base na pulsação;
18. 20
Início
Leitura do próximo
frame
Classificação do
píxel com base na
cor [RF]
Extração de regiões
Extração de dados
estatísticos das
regiões
Não Apresenta chama?
Sim
Câmera estática?
Classificação com
base na oscilação do
píxel durante 1s
Sim
Fogo detectado em n
frames consecutivos?
Sim
Oscilação confirma
fogo?
Sim
Não
Não
Classificação da
região [RF]
Não
Reporta Detecção
20. DADOS DE COR EXTRAÍDOS
Valor de cada canal no color space RGB;
Valor de cada canal no color space HSV;
Valor de cada canal no color space Lab;
Valor de cada canal no color space YCrCb;
22
21. PRÉ-PROCESSAMENTO
Seleção dos atributos:
BestFirst:
B channel no sistema de cor Lab;
Hue channel no sistema de cor HSV;
Blue-difference croma (Cb) no sistema de cor YCbCr;
Correlação entre os atributos escolhidos é alta;
PCA:
Resolve o problema da correlação;
Apontou R, G, B, H e S como atributos mais
discriminantes;
23
22. RANDOM FORESTS
É uma combinação de classificadores de árvore
proposta por BREIMAN, 2001;
Cada árvore construída tem os atributos escolhidos
aleatoriamente;
Cada árvore classifica a instância de forma
independente;
A contagem dos votos indicará a classificação final
do objeto;
24
23. RANDOM FORESTS
Quantidade de itens selecionados por subconjunto é
2/3;
O nó é escolhido de acordo com a medida de pureza;
Quantidade de árvores é definida com base no
método experimental;
Quantidade de atributos por nó geralmente é a raiz
do total de atributos;
25
25. POR QUE RF?
Continua sendo um dos algoritmos de aprendizagem com
melhores resultados;
Consegue lidar bem com muitos atributos;
Consegue estimar quais são as variáveis mais importantes;
A estimativa de Erro OOB não é tendenciosa dado que utilizam-se
dados do dataset original selecionados aleatoriamente;
Modelos aprendidos podem ser salvos e reutilizados;
Paralelizável!
27
26. CLASSIFICAÇÃO PELA COR
28
Número máximo de níveis da árvore: 10
Suporte mínimo: 500
Árvores na floresta: 100
Variáveis avaliadas por nó: 3
Erro OOB: 0.9
Resultados sobre outro dataset:
FP: 12.99
FN: 0.61
27. EXTRAÇÃO DE PROPRIEDADES DA REGIÃO
Os seguintes valores são extraídos:
Irregularidade do contorno;
Área;
29
28. EXTRAÇÃO DE PROPRIEDADES DA REGIÃO
Os seguintes valores são extraídos:
Mediana por canal RGB;
Media por canal RGB;
Desvio Padrão por canal RGB;
Assimetria de Pearson por canal RGB;
30
29. ESTATÍSTICAS DA REGIÃO
Número máximo de níveis da árvore: 10
Suporte mínimo: 50
Árvores na floresta: 100
Variáveis avaliadas por nó: 2
Erro OOB: 0.9
31
31. RESULTADOS DO DETECTOR
Medição Valor Percentual
Total de frames avaliados 11912 100,00
Total de regiões detectadas 14193 100,00
Total de anotações no gabarito 8723 100,00
FP (Detecções fora do gabarito) 272/14193 1,91
FN (Áreas de fogo não detectadas) 604/8723 6,92
Erros de Localização 219/14193 1,54
Frames que apresentam FP 30/11912 0,25
Frames que apresentam FN 435/11912 3,65
33
32. ONDE O DETECTOR FALHA?
FP:
Reflexo do fogo em vidro e água;
Coletes reflexivos;
Ruído estruturado;
FN:
Oclusão;
Fogo muito translúcido;
34
33. PROPOSTAS FUTURAS
Integração completa no Framework
CvWorks;
Modelos para operação noturna;
Random Forests é paralelizável (CUDA);
Melhora na avaliação de FN e FP
sequenciais;
35
34. CONCLUSÃO
Revisão dos trabalhos relacionados;
Criação de um dataset para testes
automatizados e validáveis;
Implementação de detectores existentes;
Apresentar uma alternativa funcional:
Câmeras estáticas;
Câmeras móveis;
36
Notas do Editor
Ao longo das ultimas 6 décadas muitos avanços foram feitos no campo da visão computacional. Iniciando por técnicas de processamento de imagens, extração de características, detecção de movimento, fluxo óptico, reconstrução 3d, visão estereoscópica, detecção de profundidade até as técnicas de aprendizagem de máquina como um todo.
O funcionamento do sistema visual dos mamíferos sempre serviu de inspiração para a criação de novos métodos na computação. Temos hoje uma infindável lista de algoritmos, técnicas e métodos para cada subárea da visão computacional. Muitas delas são claramente inspiradas nos mecanismos visuais dos mamíferos.
A grande maioria destas técnicas, no entanto, foi desenvolvida utilizando como base câmeras estáticas e perfeitamente calibradas, ambientes com iluminação controlada e um background que não afeta significativamente o processo de detecção.
Desde a década de 70, quando a detecção e reconhecimento de objetos ainda engatinhava e embasava-se apenas nos contornos e formas geométricas, o foco da visão computacional sempre foi voltado para as coisas de tamanho, textura e forma praticamente estáticos. É notório que muito daquilo que hoje se aceita como o estado da arte foi originalmente desenvolvido para o reconhecimento de faces, que são em sua essência estáticos.
Quando utilizamos para efeito de comparação a quantidade de trabalhos publicados em visão computacional podemos ver que o número de publicações que focam em objetos deformáveis é infinitamente inferior. Ainda mais raros são os trabalhos que se preocupam em estudar os objetos translúcidos.
No caso da detecção de chamas em específico, precisa-se levar em consideração que estamos tratando também de uma fonte de luz, que pode assumir uma ampla variedade de cores, formas e texturas. Um estudo mais detalhado sobre a variância é apresentado no capítulo 4 do trabalho escrito. Além disso, pode impactar diretamente a cena capturada ao alterar características de cor dos objetos que o circundam.
A agenda desta apresentação segue:
O objetivo do trabalho realizado aqui é gerar, utilizando processamento de imagens e algoritmos de aprendizagem de máquina um sistema capas de detectar chamas que possa complementar, ou em determinados casos substituir, os sistemas de detecção de fogo e fumaça tradicionais.
Os detectores tradicionais normalmente utilizam apenas informação de fumaça, através de detectores fotoelétricos que utilizam como base para seu funcionamento a obstrução ou a dispersão da luz causada pela fumaça. Embora estes sensores sejam relativamente baratos, podendo ser facilmente encontrados com preços a partir de 10 USD .
http://www.enggcyclopedia.com/2011/11/photoelectric-smoke-detectors-work/
Já os sensores convencionais baseados em ionização, têm uma pequena quantidade de material radioativo entre duas placas carregadas eletricamente, que ioniza o ar e faz com que a corrente flua entre as placas. Quando a fumaça entra na câmara, ela interrompe o fluxo dos íons ativando o alarme.
Os dois tipos de sensores apresentam no entanto uma limitação quanto ao espaço e localização em que são utilizados.
O trabalho proposto aqui visa dar uma nova aplicação para o equipamento existente ao envolver uma área que foi pouco explorada na visão computacional.
Objetivo:
Propor um detector de chamas com bons resultados no processamento de vídeos obtidos a partir de câmeras móveis e capaz de realizar detecção em tempo real minimizando as taxas de falsos positivos e falsos negativos.
Os objetivos específicos do trabalho incluem:
Revisão dos trabalhos relacionados, buscando conhecer o estado da arte em métodos para solucionar este tipo de problema;
Ao contrario do que ocorre com outras aplicação da VC, não existe hoje um dataset estabelecido para testes de detectores de fogo. O que existem são coleções de vídeo, sem anotações de ground truth, e por este motivo não permitem a realização de testes automatizados e a validação para efeitos de comparação. Da mesma forma, não existem atualmente datasets para testes utilizando câmeras móveis.
O terceiro objetivo específico do trabalho é a implementação, quando possível, das técnicas propostas por outros pesquisadores. No decorrer do trabalho, no entanto, isto tem se tornado inviável devido a falta de alguns parâmetros e a não publicação dos dados de treinamento utilizados nos casos de classificadores de aprendizagem supervisionada.
Por fim, o trabalho busca apresentar uma alternativa funcional para detecção de fogo tanto em câmeras estáticas quanto câmeras móveis. Neste sentido, o dataset produzido inclui vídeos de robôs móveis, drones e também hand-held
Câmeras estáticas;
Câmeras móveis;
Para a codificação recorreu-se à biblioteca de visão computacional OpenCv.
Os resultados foram integrados ao framework CvWorks
Os trabalhos publicados anteriormente utilizam duas coleções de vídeos que são disponibilizados publicamente.
A primeira coleção é disponibilizada pela universidade de Bilkent da Turquia, que é também de onde surge a maior parte dos trabalhos publicados. O foco neste caso é em sistemas de vigilância para florestas utilizando câmeras estáticas em torres de vigilância, o que implica uma ênfase maior na fumaça.
A segunda coleção de vídeos públicos utilizados para detecção de chamas é disponibilizada pela universidade de Keimyung, da Coreia. Ambas as coleções não apresentam ground-truth e utilizam somente câmeras estáticas.
Como parte deste trabalho nós criamos um dataset a partir de vídeos disponibilizados sob a licença Creative Commons obtidos no Youtube. Ao total foram utilizados 11 vídeos, que foram divididos em partes menores de 30 segundos.
Na lista estão vídeos obtidos a partir de câmeras com diferentes formatos e variadas condições de iluminação. Todos os vídeos apresentam variações da posição da câmera ao longo do tempo.
As anotações do vídeo foram feitos quadro a quadro, de forma manual na forma de retângulos conforme pode ser observado na figura.
Como cada vídeo é gravado a 29 FPS, cada vídeo do dataset produzido tem em torno de 870 frames anotados. Em alguns casos pode ocorrer a existência de duas fontes distintas do fogo, onde cada uma representa uma anotação. Obviamente, leva-se em consideração a distância entre os focos.
Durante a revisão da literatura foi possível identificar um padrão nas metodologias propostas para detecção de chamas utilizando câmeras estáticas.
Existe uma tendência a combinar, de forma sequencial os classificadores de cor e classificadores de oscilação ou pulsação do fogo.
Geralmente utilizam-se câmeras fixas em torres de vigilância a partir das quais é obtido um stream de vídeo.
A primeira parte do processo é a classificação individual, pixel-a-pixel da imagem definindo regiões com a coloração de fogo.
A segunda etapa do processo varia entre os trabalhos estudados, partindo de uma abordagem que avalia apenas a variância individual de cada pixel conforme proposto em PHILLIPS (2002) até modelos que baseados em fluxo óptico conforme proposto por MUELLER (2013).
CHEN (2004) propõe um modelo de classificação utilizando o espaço de cor RGB, que aplica avaliação da crominância e medidas de desordem de forma a extrair os pixels que representam regiões de chama ou fumaça.
Estas medidas de desordem nada mais são que a extração de retângulos para cada região e a comparação com o mesmo retângulo no frame anterior, identificando se houve oscilação no brilho da região. Esta verificação do brilho é feita na escala de cinza. Um pixel é considerado como fogo quando exceder um determinado threshold.
O método utiliza valores de threshold fixados empiricamente.
Fluxograma pode ser encontrado na página 4 do artigo:
An Early Fire-Detection Method Based on Image Processing.
Publicado na ICIP
Celik, da universidade de Bilkent, é possivelmente o autor com maior número de publicações quando se trata da detecção de fogo utilizando câmeras estáticas.
O foco do seu trabalho é a detecção de chamas em florestas utilizando câmeras estáticas instaladas em torres de monitoramento. Geralmente as imagens são de uma área ampla (talvez Km²).
Os trabalhos utilizam sempre uma técnica de subtração de background, acompanhada da classificação pela cor. O foco do trabalho está na extração de modelos de cor para classificação individual dos pixels. Pouco esforço é destinado para a análise temporal.
CELIK (2007) foi publicado na EUPSICO.
Fast and Efficient Method for Fire Detection Using Image Processing - CELIK(2010)
section: area size change, boundary roughness, variance, and
red channel skewness. The features are combined according
to the Bayes classifier.
section: area size change, boundary roughness, variance, and
red channel skewness. The features are combined according
to the Bayes classifier.
A NON-TEMPORAL TEXTURE DRIVEN APPROACH TO REAL-TIME FIRE DETECTION
Este trabalho de CHENEBERT, apresentado na ICIP 2011 também se aproxima do trabalho proposto, ao tentar utilizer informações da textura para a classificação de regiões como fogo ou não fogo.
A primeira etapa consiste na classificação dos pixels individualmente utilizando a mesma equação proposta por Chen(2004), que utiliza thresholds fixos.
Para a classificação das regiões utiliza-se a extração de histogramas de 10 bins para os canais H e S do colorspace HSV resultando em 20 atributos.
Ainda para a classificação das texturas os autores utilizam GLCM extraindo energia, entropia, contraste, homoegeniedade e correlação dos valores de pixel em H e S.
Combinando estes atributos, cada região é classificada com base nestes 30 atributos que são testados em um classificador de árvore e em uma rede neural. Os resultados obtidos mostram que o algorítmo CART é o que fornece os melhores resultados.
Os autores tentaram ainda reduzir o números de atributos, de forma a encontrar os mais discriminantes, mas os rersultados mostraram que não houve uma melhora significativa.
Seguindo a mesma linha dos trabalhos apresentados anteriormente, a nossa proposta propõe as etapas de classificação pixel-a-pixel pela cor, extração de estatísticas por região e classificação com base nas estatísticas da região. A etapa final é a classificação com base na pulsação para vídeos estáticos.
O fluxo do método proposto é apresentado na figura.
Para o treinamento do classificador de cor foram utilizados aproximadamente 534 mil instâncias.
As regiões marcadas em azul na imagem correspondem à fogo. Já as regiões marcadas em amarelo foram marcadas como não fogo.
Para cada pixel foram extraídos os valores de cada canal nos colospaces RGB, HSV, Lab e YCbCr.
Estes são os colorspaces mais utilizados nos trabalhos anteriores, e dado que não existe um acordo sobre qual deles é capaz de fornecer os melhores descritores obtou-se pela extração e etiquetagem para posterior avaliação utilizando PCA.
Para redução da dimensionalidade utilizou-se BestFirst e PCA.
No Best First, considera-se a capacidade que cada atributo tem de individualmente predizer a classe correta. Os resultados mostram que a maior correlação entre atributo e classe está no canal b do colorspace Lab, seguido da matiz e do azul no YCbCr.
Nota-se no entanto que a correlação entre os atributos é escolhidos é alta, fazendo com que não sejam a representação ideal para o pixel. Poor este motivo utilizou se a análise dos componentes principais.
PCA é uma técnica estatística que utiliza uma transformação ortogonal para descobrir, dentro de um conjunto de atributos possivelmente correlacionados, um subconjunto de variáveis linearmente descorrelacionadas. A análise PCA mostrou que os melhores discriminantes são os canais R,G,B, H e S.
O algoritmo de classificação escolhido, tanto para a a classificação de cor quanto de textura da região, foi o Random Forests. Este algoritmo foi proposto inicialmente por BRIEMAN (2001) e consiste em um conjunto de classificadores de árvores, que classificam uma instância de uma forma independente.
Os subconjuntos de atributos e instâncias de treinamento para cada árvore são escolhidos aleatoriamente. A saída do classificador é dada pela moda.
Na construção das árvores cerca de dois terços das instâncias são utilizadas para treinamento e 1°3 é utilizado para testes. A taxa de erro obtida é conhecida como Out of Bag (OOB).
Cada nó é escolhido conforme a pureza, utilizando como critério de ganho de informação o índice Gini;
A quantidade de árvores na floresta é obtida através do método experimental e a quantidade de atributos por árvore e a quantidade de atributos testados por nó é usualmente a raiz quadrada do total de atributos na entrada;
O algoritmo de Random Forests se alinha com o objetivo do trabalho pois suas características fazem com que consiga lidar bem com uma grande quantidade de atributos, seja capaz de utilizar as variáveis mais discriminantes e a estimativa de erro OOB fornece sempre um numero que condiz exatamente com os dados da entrada.
Os modelos aprendidos podem ser salvos e reutilizados e são paralelizáveis.
Os parâmetros utilizados para classificação da cor são:
Número máximo de níveis da árvore: 10
Suporte mínimo: 500
Árvores na floresta: 100
Variáveis avaliadas por nó: 3
Erro OOB: 0.9
Utilizando este parâmetros é os resultados da classificação por pixel mostram que existe uma taxa de falsos positivos de ~13% enquanto a taxa de falsos negativos fica em torno de 0.6%.
A partir dos resultados pela classificação de cor, faz se a extração das regiões e são obtidas as características. Para cada região utiliza-se a irregularidade do contorno na mesma forma em que foi proposto por BORGES (2010) onde a Irregularidade é dada pela divisão do perímetro do contorno pelo perímetro do fecho convexo. Por área, neste caso, entenda-se, a contagem dos pixels marcados como cor de fogo dentro de cada região.
Utilizando os 3 canais do espaço de cor RGB são extraídas as seguintes propriedades:
Mediana por canal RGB;
Media por canal RGB;
Desvio Padrão por canal RGB;
Assimetria de Pearson por canal RGB;
Ao todo, 14 atributos são utilizados para descrever cada região;
Os parâmetros de treinamento do classificador estão definidos da seguinte forma:
Número máximo de níveis da árvore: 10
Suporte mínimo: 50
Árvores na floresta: 100
Variáveis avaliadas por nó: 2
Erro OOB: 0.9
Para evitar sobreajuste (overfitting) utilizou-se a precisão e o número de níveis da árvore como critério de poda.
Para a verificação dos resultados do detector foram consideradas válidas relações N para 1, onde é possível ter várias detecções para um mesmo ground-truth.
As anotações que não tem nenhuma detecção correspondente são consideradas como falsos negativos.
Já as detecções cuja área esteja mais de 50% fora do ground-truth são consideradas como falsos positivos.
Ao executar o detector em ~12 mil frames,
0,25 % dos frames apresentaram falsos positivos e
3,65 % dos frames apresentaram falsos negativos.
Isto significa dizer que considerando os resultados por quadro a precisão do detector é maior que 96%.
Já quando consideramos as detecções conforme o critério apresentado no slide anterior, os resultados mostram que 1,91% das detecções estão fora do gabarito, enquanto quase 7% das anotações do gabarito não foram detectadas.
219 detecções apresentam uma intersecção menor que 50% com o gabarito. Isto representa um percentual aproximadamente um e meio por cento.
Uma inspeção visual dos causadores de erros na detecção mostra que muitos dos falsos positivos ocorrem em regiões de vidro e água, que nós como humanos descartamos automaticamente ao observar a imagem. Outros causadores de falsos positivos são coletes reflexivos utilizados por equipes de resgate e o ruído estruturado que ocorre quando são utilizados encoders ruins.
Já os falsos negativos ocorrem principalmente quando o fogo é muito translúcido ou quando existe oclusão que altera significativamente o formato da região extraída.
Este problema com oclusão já havia sido levantado nos trabalhos de BORGES (2011) e CHENEBERT (2011), bem como em abordagens de câmera fixa que utilizam câmera a forma ou variação da área da chama.
As propostas para continuação do trabalho são:
Integração completa com o Framework CvWorks;
Testes com operação noturna;
Paralelização utilizando CUDA;
Melhora na avaliação de falsos negativos e falsos positivos sequencias utilizando outros de descritores de textura, como o GLCM ou histogramas.
Com base nos objetivos do trabalho, podemos afirmar que até o momento os trabalhos relacionados foram levantados;
A criação do dataset está em desenvolvimento e o que temos até o momento permite a execução de testes automatizados e validáveis;
A implementação dos detectores existentes, para efeito de comparação, teve como empecilho a não divulgação dos datasets utilizados por outros autores ou a não-completude dos artigos publicados. O trabalho de CHENEBERT (2011) está sendo implantado no momento.
Desconsiderando a questão dos datasets, a técnica proposta oferece resultados que equivalem ao estado da arte em sistemas de câmera estática e são melhores que o estado da arte em relação a câmeras móveis.