Olho mágico - Linux New Media
Olho mágico - Linux New Media
Olho mágico - Linux New Media
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TUTORIAL<br />
54<br />
TUTORIAL | Videomonitoramento<br />
Monitoramento de video com ZoneMinder<br />
<strong>Olho</strong> <strong>mágico</strong><br />
Vandalismo, danos à propriedade e roubo<br />
são preocupações sérias para muitas<br />
pessoas, mas o <strong>Linux</strong> e o software livre<br />
de monitoramento de video lhe dão<br />
uma chance de pegar os culpados.<br />
por Erik Bärwaldt<br />
Bicicletas roubadas, carros riscados,<br />
pichação nas paredes<br />
– tudo na porta da sua casa.<br />
Quando uma investigação policial<br />
desse tipo de crime falha por falta<br />
de provas conclusivas, um sistema<br />
de monitoramento de video pode<br />
fazer milagres. Um monitoramento<br />
efetivo de pontos estratégicos não<br />
precisa custar o olho da cara. Apenas<br />
com um PC <strong>Linux</strong>, o software livre<br />
ZoneMinder [1] e algumas câmeras<br />
padrão, você pode mitigar o gasto de<br />
centenas de reais.<br />
Preparação<br />
O valor utilitário de um sistema de<br />
monitoramento de video depende<br />
da qualidade das câmeras utilizadas.<br />
Para que as imagens do video tenham<br />
alguma chance de ser aceitas como<br />
evidência um em processo, precisam<br />
ter alta resolução para que a imagem<br />
seja nítida quando for necessário fazer<br />
um zoom para ver detalhes importantes.<br />
Como você pode imaginar, nem<br />
toda câmera é adequada pra monitoramento<br />
de vídeo. Além disso, deve-<br />
-se levar em consideração o local. Se<br />
quiser monitorar áreas ao ar livre, a<br />
câmera deve ser projetada para uso externo:<br />
não existe vantagem se a chuva<br />
estragar o equipamento. Se ocasionalmente<br />
houver necessidade de mudar<br />
a área observada, será necessário usar<br />
uma câmera pan/tilt com motor que<br />
movimente a lente em dois eixos para<br />
monitorar áreas diferentes. As câmeras<br />
Pan/Tilt/Zoom (PTZ) suportam um<br />
uso ainda mais fl exível. Se necessário,<br />
elas lhe permitem aproximar a imagem<br />
da área monitorada.<br />
Figura 1 A interface web simplista depois de iniciar o ZoneMinder.<br />
Se as áreas de monitoramento estiverem<br />
em locais escuros, ou se precisar<br />
monitorar à noite, também será<br />
necessária uma fonte de luz infravermelha.<br />
Caras, as câmeras profi ssionais<br />
de vigilância frequentemente incluem<br />
diversos leds (diodos emissores de luz)<br />
que têm um alcance de até 10 metros<br />
em condições climáticas ruins. Se estiver<br />
usando as webcams mais baratas e<br />
normalmente menores para monitorar<br />
um ambiente interno, ou se sua câmera<br />
de vigilância não tiver led, podem<br />
ser encontradas luzes infravermelhas<br />
especiais como componentes avulsos.<br />
Suporte <strong>Linux</strong><br />
Embora as câmeras especiais pan/tilt<br />
pareçam todas iguais por fora, elas têm<br />
grandes diferenças técnicas. As lentes<br />
são praticamente idênticas em todos<br />
www.linuxmagazine.com.br
Figura 2 A interface do ZoneMinder permite que as<br />
confi gurações necessárias sejam feitas rapidamente.<br />
os modelos disponíveis hoje, exceto<br />
pela quantidade de pixels, mas muitas<br />
câmeras não suportam outros sistemas<br />
operacionais e não funcionam no <strong>Linux</strong>.<br />
As que contam com uma placa<br />
de interface para TV ( TV tuner ) e as<br />
câmeras S Video analógicas podem<br />
frequentemente ser usadas em combinação<br />
com o ZoneMinder, supondo<br />
que se tenha os drivers <strong>Linux</strong> para a<br />
TV ou a placa de captura. De qualquer<br />
forma, deve-se primeiramente checar a<br />
lista de compatibilidade do programa<br />
[2] , especialmente se a intenção for<br />
dispôr várias câmeras diferentes em paralelo,<br />
tanto internas quanto externas.<br />
A falta de drivers para <strong>Linux</strong> (ainda)<br />
pode causar problemas com as<br />
câmeras populares USB. Em particular,<br />
você deve fi car longe de câmeras<br />
antigas com baixa resolução. As câmeras<br />
desse tipo normalmente não<br />
conseguem produzir evidências úteis.<br />
Graças a vários projetos, o suporte de<br />
webcams para <strong>Linux</strong> têm melhorado<br />
signifi cativamente nos últimos anos.<br />
Se for usar uma câmera USB, sua<br />
primeira tentativa deve ser a GSPCA<br />
<strong>Linux</strong> Magazine #84 | Novembro de 2011<br />
[3] e a UVC Video [4] , onde se pode<br />
descobrir se a câmera escolhida realmente<br />
trabalha com <strong>Linux</strong>. Como o<br />
kernel incluiu ambos os drivers desde<br />
a versão 2.6.27, as câmeras classifi cadas<br />
como compatíveis pelos projetos<br />
funcionarão no <strong>Linux</strong> sem necessidade<br />
de intervenção manual.<br />
Finalmente, você deve se assegurar<br />
de que o PC de monitoramento<br />
tem capacidade sufi ciente no disco<br />
rígido. Os vídeos gravados em alta<br />
resolução, com altas taxas de frames<br />
e muito coloridos, consomem uma<br />
enorme quantidade de espaço.<br />
Instalação do software<br />
O ZoneMinder é um aplicativo altamente<br />
modular com interface de<br />
controle via web. Consequentemente,<br />
é preciso preencher várias condições<br />
antes de usar o programa. Além do<br />
Video4<strong>Linux</strong> para suportar as câmeras<br />
e placas de video, o servidor web<br />
Apache com MySQL, e do Perl, também<br />
é preciso instalar o FFmpeg e os<br />
pacotes libjpeg para gravar imagens<br />
estáticas e em movimento.<br />
Figura 3<br />
Descubra a confi guração correta<br />
para a câmera.<br />
Videomonitoramento | TUTORIAL<br />
Felizmente, os distribuidores <strong>Linux</strong><br />
mais populares e seus derivados<br />
agora incluem pacotes para o Zone-<br />
Minder que permitem a instalação do<br />
programa diretamente do repositório<br />
usando o Synaptic, MCC ou YaST,<br />
o que geralmente resolve qualquer<br />
dependência. Testei o sistema em<br />
uma variação especial Live CD do<br />
ZoneMinder, mas não a testei exaustivamente<br />
porque ela é baseada no<br />
Xubuntu 8.10, que está descontinuado<br />
e não tem drivers para muitas<br />
das webcams e das placas de video<br />
por avançadas causa da sua idade.<br />
Para simplifi car a instalação e a<br />
confi guração do sistema de vigilância<br />
de video, que de certa maneira<br />
é complexo por conta de todos os<br />
pacotes e codecs que requer, o ZoneMinder<br />
oferece um script [5] que<br />
automatiza com segurança essa tarefa<br />
e modifi ca a memória de confi guração.<br />
Para começar, copie o script<br />
e salve-o com um editor de textos.<br />
Para torná-lo executável, logue-se<br />
como root (ou use sudo -s ) e aplique<br />
chmod +x no script. Depois execute-o.<br />
55
56<br />
TUTORIAL | Videomonitoramento<br />
Figura 4 A tela de confi guração do ZoneMinder. Figura 5 Pré-confi gurações facilitam o ajuste das câmeras PTZ e IP.<br />
O script vai fazer todas as alterações<br />
necessárias de uma vez só.<br />
Daqui em diante, toda vez que você<br />
inicializar o seu sistema, o Apache vai<br />
subir automaticamente. Você poderá<br />
ver a interface do ZoneMinder acessando<br />
http://127.0.0.1/zm do seu navegador.<br />
Início<br />
Quando aberto pela primeira vez, o<br />
programa aparece com uma interface<br />
simples que ainda precisa ser confi -<br />
gurada ( fi gura 1 ). Preste atenção ao<br />
valor mostrado no campo Disk: . Ele<br />
indica o espaço ocupado no disco<br />
como porcentagem. Se você pensa<br />
em operar várias câmeras, esse valor<br />
precisa ser o mais baixo possível para<br />
evitar que as gravações em alta resolução<br />
ocupem toda a memória do disco,<br />
mesmo a taxas de frame aceitáveis.<br />
Se tiver anexado algumas câmeras<br />
ao sistema, agora você precisa integrá-las<br />
com o ZoneMinder. Testei o<br />
Figura 6 Visão geral da atividade das câmeras.<br />
sistema com três webcams USB diferentes<br />
da Logitech e da Chicony.<br />
Para adicionar as câmeras ao Zone-<br />
Minder, clique no botão <strong>New</strong> Monitor<br />
na janela principal. O programa agora<br />
abre outra tela com quatro colunas<br />
horizontais no topo. A coluna Source<br />
( fi gura 2 ) tem os parâmetros do disco<br />
rígido que precisa ser modifi cado.<br />
O ZoneMinder facilita o processo<br />
graças a uma ferramenta que lê os<br />
dados técnicos da câmera. Para fazer<br />
isso entre com o seguinte comando<br />
no terminal ( fi gura 3 ):<br />
$ zmu -d nome_do_equipamento<br />
-V 1 -q -v<br />
O nome do equipamento normalmente<br />
é /dev/videoX , no qual X é um<br />
número que começa com zero. O<br />
programa agora mostra uma lista de<br />
especifi cações do equipamento. Para<br />
descobrir os parâmetros necessários, vá<br />
até Window Attributes e preste atenção<br />
aos valores nas linhas Width e Height<br />
para resolução em pixels. Na seção<br />
Picture Attributes , veja a linha Palette<br />
e preste atenção na tabela de cores.<br />
Finalmente, no fi nal do processo do<br />
programa, irá encontrar a entrada<br />
Format que lista os padrões de TV<br />
(NTSC, PAL, SECAM).<br />
De posse dessas informações, você<br />
pode completar as lacunas necessárias<br />
na janela de confi guração Source do<br />
ZoneMinder. Assegure-se de que a<br />
entrada do campo Capture Method<br />
seja Video For <strong>Linux</strong> version 2 ; ele<br />
suporta mais ou menos todas as câmeras<br />
recentes. Depois de completar<br />
as entradas, clique no botão Save .<br />
Modo de operação<br />
Em seguida, vá até a aba General ( fi gura<br />
4 ), onde, na caixa de texto Name , você<br />
pode informar um nome intuitivo para<br />
a localização da câmera antes de defi -<br />
nir o modo de operação do aparelho.<br />
Normalmente não é necessário modifi<br />
car a entrada Source Type para Local<br />
para câmeras conectadas diretamente<br />
na máquina. No caso das câmeras IP<br />
que você conecta à sua intranet, porém,<br />
deve-se selecionar Remote . A opção<br />
Monitor do menu Function mostra<br />
www.linuxmagazine.com.br
o sinal de vídeo, mas não grava nada.<br />
Escolher o Modect habilita a detecção<br />
de movimentação e gera um evento<br />
quando o ZoneMinder registrar um<br />
movimento. Neste caso a gravação inicia<br />
automaticamente, e não para até que o<br />
ZoneMinder decida que os movimentos<br />
cessaram. O próximo movimento<br />
na frente da câmera gera outro evento<br />
e começa a gravar novamente.<br />
A terceira opção, Record , inicia<br />
uma gravação permanente e independente<br />
da movimentação. Se você não<br />
restringir manualmente a duração da<br />
gravação, o programa gravará todos os<br />
sinais de video dessa câmera, criando,<br />
portanto, uma enorme quantidade de<br />
dados. A opção Mocord combina Record<br />
e Modect . O ZoneMinder, então,<br />
Quadro 1: Câmeras de<br />
vigilância: dicas e truques<br />
Para usar o ZoneMinder efi cazmente,<br />
é preciso escolher as câmeras<br />
e os seus locais cuidadosamente.<br />
Como uma capacidade limitada de<br />
armazenamento não permite guardar<br />
toda a informação do monitoramento,<br />
a maioria das câmeras de<br />
vigilância não começa a gravar até<br />
que se detecte algum movimento.<br />
Por isso, o ideal é instalá-las para<br />
monitorar locais calmos.<br />
Em caso de uso em área externa,<br />
é preciso evitar árvores ou arbustos<br />
cobrindo a maior parte da área<br />
de vigilância. Ambos irão se mover<br />
com o vento e disparar a fi lmagem<br />
o tempo todo. Se não for possível<br />
deixar objetos móveis não importantes<br />
fora do alcance da câmera<br />
de vigilância, será preciso defi nir as<br />
suas próprias zonas no ZoneMinder<br />
(veja a seção “Zonas de alarme”).<br />
As câmeras de vigilância nunca devem<br />
monitorar uma área com um ângulo<br />
muito fechado, de cima. Identifi -<br />
car as pessoas que estão nessa área<br />
num piscar de olhos será muito difícil.<br />
Ao invés disso, a câmera deve monitorar<br />
de uma posição lateral elevada.<br />
Se usar câmeras de tomada, assegure-se<br />
que os fi os não estão visíveis<br />
e de fácil alcance por pessoas<br />
não autorizadas. Cortar o fi o desabilitará<br />
a câmera de vigilância, deixando<br />
o ZoneMinder no escuro.<br />
<strong>Linux</strong> Magazine #84 | Novembro de 2011<br />
grava permanentemente e gera um<br />
evento sempre que começa a gravar;<br />
porém, se detectar algum movimento<br />
na frente da câmera, ele o lista em<br />
maiúsculas na lista de eventos. A<br />
opção fi nal, Nodect suporta o uso de<br />
detectores de movimentos externos<br />
que muitas câmeras incluem por padrão.<br />
Neste caso é a câmera, e não o<br />
ZoneMinder, que aciona os eventos.<br />
Após selecionar o modo de operação,<br />
verifi que a caixa de texto Enabled<br />
para ligar a câmera. Para defi nir o<br />
número de imagens por segundo que<br />
o ZoneMinder deve criar, é necessário<br />
acrescentar entradas nos campos<br />
Maximum FPS e Alarm Maximum<br />
FPS . A primeira entrada se refere à<br />
operação normal e a segunda a um<br />
caso de alerta. O nível máximo de<br />
quadros por segundo para uma situação<br />
de alerta deve ser mais alto do<br />
que para as operações normais; assim,<br />
você pode acompanhar a ação mais<br />
de perto no caso de haver um evento,<br />
além de gravar com mais detalhes.<br />
Se seu computador for robusto e<br />
você tiver espaço de disco sufi ciente,<br />
faz sentido usar valores de até 30<br />
fps aqui. Depois de preencher todos<br />
esses detalhes, clique em Save . Agora<br />
a câmera está pronta para funcionar.<br />
O ZoneMinder tem um grande<br />
número de dispositivos que tem boas<br />
opções para câmeras profi ssionais IP<br />
ou PTZ e placas de video suportadas<br />
por ele. Clique em Presets no canto<br />
direito no alto da janela de confi guração<br />
para encontrá-las. No menu em<br />
cascata Preset ( fi gura 5 ), selecione o<br />
modelo da câmera e as opções básicas<br />
e clique em Save . O ZoneMinder<br />
usará essas confi gurações, porém é<br />
preciso especifi car o endereço IP para<br />
a câmera e o modo de operação no<br />
campo Function . Normalmente, não<br />
há outras mudanças a serem feitas.<br />
Figura 8 Janela de menu de execução.<br />
Videomonitoramento | TUTORIAL<br />
Figura 7 O ZoneMinder fornece uma<br />
lista de eventos com cenas<br />
capturadas pela câmera.<br />
Fontes e alvos<br />
Na janela do navegador, o ZoneMinder<br />
mostra as fontes das imagens em<br />
uma lista. Note as entradas na coluna<br />
Source ( fi gura 6 ): os dispositivos em<br />
verde estão funcionando corretamente.<br />
Se vir uma câmera vermelha, há um<br />
problema – normalmente um erro de<br />
confi guração. Nesse caso, clique em<br />
Name para este campo e a imagem<br />
da câmera deve aparecer na janela do<br />
monitor. Se a janela estiver preta, ou<br />
se aparecer apenas um frame vazio, é<br />
preciso reconfi gurar a câmera. Para<br />
modelos menos potentes, em geral<br />
funciona fazer testes de resolução e<br />
velocidade de frame.<br />
O janela do monitor ( fi gura 7 ) mostra<br />
tanto a imagem da câmera atual<br />
como a lista de eventos com duração<br />
e número de frames. Quando você<br />
clica em um evento na coluna Name ,<br />
ele começa de novo. A seção acima<br />
na janela ( fi gura 8 ) fornece informações<br />
gerais para a sequência específi ca<br />
de imagens e um menu no qual se<br />
processam as imagens se necessário.<br />
Uma vez que o ZoneMinder, inicialmente,<br />
armazena os eventos como<br />
57
58<br />
TUTORIAL | Videomonitoramento<br />
Figura 9<br />
Diálogo criado a partir da sequência de imagens<br />
do vídeo.<br />
uma sequência de imagens em diretório<br />
temporário, é preciso executar um<br />
segundo passo se você quiser gerar um<br />
video com eles. Para fazê-lo, clique em<br />
Video no menu. Na janela que aparece<br />
( fi gura 9 ), escolha as opções de<br />
que precisa. O ZoneMinder suporta<br />
diversas extensões populares de video<br />
e permite que se escolha o tamanho<br />
do video (no campo Video Size ) e a<br />
velocidade do frame. Para propósitos<br />
documentais, escolha a opção Real para<br />
o campo Frame Rate , que corresponde<br />
à gravação em tempo real.<br />
Depois de fazer as mudanças necessárias,<br />
clique em Generate Video .<br />
Depois de criar o vídeo, será aberta<br />
uma tabela com as informações da<br />
sequência. Na coluna da direita selecione<br />
Action para defi nir o que acontece<br />
na sequência de vídeo. O video<br />
foi criado, mas não salvo: é preciso<br />
selecionar o comando Download no<br />
campo Action . O ZoneMinder nomeia<br />
e guarda o video na pasta de<br />
downloads do usuário no disco rígido.<br />
Zonas de alarme<br />
Para evitar disparar eventos no limite<br />
da área de vigilância – por exemplo,<br />
uma rua vizinha com tráfego intenso<br />
em uma área de vigilância em larga<br />
escala – pode-se defi nir zonas de alarme<br />
baseadas na imagem da câmera.<br />
Para fazê-lo, clique na coluna<br />
Zones para a câmera na janela principal<br />
do ZoneMinder. Isso mostra<br />
uma janela com uma tabela que<br />
informa as coordenadas nos eixos<br />
X e Y abaixo da imagem atual da<br />
câmera. O ZoneMinder sobrepõe<br />
uma faixa verde na imagem da câmera<br />
defi nida pelas coordenadas na<br />
tabela. Para modifi car a área na qual<br />
os alarmes estão ativados, apenas arraste<br />
os pontos, e para modifi car o<br />
formato da imagem, adicione mais<br />
pontos ( fi gura 10 ).<br />
A tabela à esquerda da câmera<br />
serve para várias outras confi gurações<br />
relacionadas à programação<br />
de eventos ou alarmes. Ajustar a<br />
sensibilidade do software impede<br />
qualquer movimento insignifi cante<br />
de disparar um evento. O ZoneMinder<br />
mostra alertas em sequência na<br />
lista de eventos para que se possa<br />
identifi car os eventos críticos num<br />
relance. Novamente, é preciso clicar<br />
em Save para manter as alterações.<br />
Conclusão<br />
O ZoneMinder permite que se faça<br />
uma confi guração profi ssional de<br />
sistema de monitoramento de video<br />
que é difícil superar nos quesitos suporte<br />
amplo e opções de confi guração<br />
fl exíveis. O programa oferece um desempenho<br />
bastante útil em projetos<br />
grandes com várias câmeras. Ele funciona<br />
em discos rígidos antigos graças<br />
ao seus recursos de fontes econômicas,<br />
apesar de todos os requisitos típicos<br />
de processamento de vídeo.<br />
Figura 10 Zonas de alarme permitem defi nir as áreas<br />
de monitoramento.<br />
O único lado ruim do software<br />
ZoneMinder é a falta de tradução<br />
para aqueles que precisam de uma<br />
língua estrangeira e de confi gurações<br />
para algumas câmeras USB menos<br />
desenvolvidas. Mas pelo fato de o<br />
ZoneMinder ser um software livre<br />
e em constante desenvolvimento,<br />
pode-se esperar dos mantenedores<br />
que as fraquezas do produto sejam<br />
melhoradas para uma versão futura. ■<br />
Mais informações:<br />
[1] ZoneMinder: http://<br />
www.zoneminder.com/<br />
[2] Lista de compatibilidade<br />
ZoneMinder: http://www.<br />
zoneminder.com/wiki/<br />
index.php/Hardware_<br />
Compatibility_List<br />
[3] Lista de Compatibilidade<br />
GSPCA: http://lwn.<br />
net/Articles/291036/<br />
[4] Lista de Compatibilidade<br />
de video <strong>Linux</strong> UVC:<br />
http://www.ideasonboard.<br />
org/uvc/#devices<br />
[5] Script de Confi guração:<br />
http://www.zoneminder.<br />
com/forums/viewtopic.<br />
php?t=16628<br />
Gostou do artigo? go?<br />
Queremos ouvir sua opinião. inião.<br />
Fale conosco em<br />
cartas@linuxmagazine.com.br ine.com.b<br />
Este artigo no nosso so site: sit<br />
http://lnm.com.br/article/6024<br />
article 024<br />
www.linuxmagazine.com.br
<strong>Linux</strong> Magazine #84 | Novembro de 2011<br />
Videomonitoramento | TUTORIAL<br />
59