12.04.2013 Views

Olho mágico - Linux New Media

Olho mágico - Linux New Media

Olho mágico - Linux New Media

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!