• Nenhum resultado encontrado

Segmentação, Indexação e Recuperação de Vídeo Utilizando OpenCV

N/A
N/A
Protected

Academic year: 2021

Share "Segmentação, Indexação e Recuperação de Vídeo Utilizando OpenCV"

Copied!
21
0
0

Texto

(1)

Utilizando OpenCV

Thiago Teixeira Santos Carlos Hitoshi Morimoto1

Resumo:

Os constantes avanços em poder de processamento, capacidade de armazenamento, e largura de banda tornaram possível ao usuário de com- putadores o acesso, manipulação e edição de imagens e vídeos digitais. Nesse tutorial, vamos descrever alguns algoritmos de visão computacional para a seg- mentação, indexação e recuperação de vídeo utilizando o OpenCV para que, ao final do tutorial, você seja capaz de desenvolver suas próprias ferramentas de visão computacional para processamento de vídeo. Conhecimentos sobre visão computacional e experiência em programação utilizando a linguagem C++

são desejados para um melhor aproveitamento do conteúdo desse tutorial.

Abstract:

Constant advancements in processing power, larger storage ca- pacity and higher bandwidth available at lower cost, have made it possible to everyone to access, edit, and manipulate digital images and video. In this tuto- rial we present a few computer vision algorithms for video segmentation and indexing based on visual content using OpenCV. By the end of this tutorial, you will be able to develop your own computer vision tools for video proces- sing. Previous knowledge of computer vision and programming experience in C/C++ is required to take full advantage of this tutorial.

1 Introdução

Esse texto foi preparado para servir de material de apoio ao mini-curso ofe- recido no IV Workshop de Visão Computacional realizado em novembro de 2008 na Universidade Estadual Paulista em Bauru, estado de São Paulo, e é baseado na dis- ssertação de mestrado de Thiago Teixeira Santos [14]. O objetivo desse trabalho é introduzir conceitos sobre segmentação e indexação de vídeo, necessários para que possamos a seguir desenvolver alguns algoritmos simples de processamento de vídeo usando o OpenCV. Alguns desses algoritmos serão descritos em detalhes durante o mini-curso e podem ser encontrados em [14].

1Instituto de Matemática e Estatística, USP {hitoshi,thsant@ime.usp.br}

(2)

1.1 Processamento de vídeo digital

Quando assistimos a um programa em vídeo (como TV, cinema, etc), nossos olhos recebem estímulos visuais (imagens) a uma taxa rápida o suficiente para que percebamos objetos em movimento. Cada imagem estática corresponde a um quadro no vídeo. Um vídeo é tipicamente composto por 30 quadros por segundo, ou 1800 quadros por minuto, ou 108 mil quadros por hora. Esse grande volume de dados é um dos motivos que torna essa área de pesquisa tão desafiadora.

Com a popularização do vídeo digital (vejahttp://www.youtube.compor exemplo), novas aplicações que exijam a sua manipulação, busca e navegação, de- mandam uma nova estrutura para esta mídia. Tradicionalmente em mídias analógi- cas como fitas de vídeo-cassete, a única forma disponível de navegação é a seqüen- cial. Com o armazenamento do vídeo em computadores, formas mais sofisticadas de acesso se tornaram possíveis. OMoving Picture Experts Group(MPEG), ao criar o pa- drão MPEG-4, em 1998, apresentou uma decomposição do conteúdo audiovisual em objetos de mídiaque podem ser combinados e reutilizados de formas diferentes em aplicações distintas.

Posteriormente, em 2001, o grupo apresentou seu novo padrão MPEG-7, for- malmente chamado Multimedia Content Description Interface. O padrão acrescenta mecanismos de anotação para descrever formas, cores, texturas e movimento presen- tes no vídeo. Mais do que isso, o MPEG-7 permite a estruturação de diversos ele- mentos espaço-temporais em relações de antes/depois, à frente/atrás, acima/abaixo, parte/todo.

Para possibilitar novas formas em seu envio, consulta e consumo, o vídeo digi- tal deve estarestruturado. Considere, por exemplo, um sistema de busca em acervos de vídeo digital, como mostrado na Figura 1. A estruturação incrementa a eficiên- cia dos extratores de características pois estes não necessitam mais efetuar processa- mento quadro-a-quadro. A própria estrutura em si pode conter também característi- cas de interesse, para responder questões como:

• Quais os segmentos que compõem a primeira cena do filme?

• Onde mais se encontra este personagem?

• Quais os segmentos filmados neste cenário?

Assim, torna-se necessário definir uma unidade para a decomposição do vídeo que leve a uma estrutura útil às várias possíveis aplicações.

(3)

Figura 1.Um sistema para recuperação de conteúdo em vídeo digital.

1.2 Estruturação e tomadas

Além dos quadros, atomadaé outra estrutura importante do vídeo. Umato- mada2 é uma seqüência de quadros que mostra uma ação contínua no tempo e no espaço. Cenas são obtidas pela combinação de várias tomadas e delas obtem-se o vídeo completo, como ilustra a Figura 2. Atransiçãode uma tomada para a seguinte pode ser feita através da simples concatenação de quadros ou da aplicação de efeitos mais complexos de edição, como dissoluções efades, que sobrepõem segmentos das duas tomadas na forma de uma passagem gradual de uma para a outra, como visto na Figura 3.

As tomadas são as estruturas com a mais fina granularidade em relação à uni- dade de ação, sendo a base para a maioria dos sistemas para segmentação e sumariza- ção de vídeo [11, 8]. De modo similar à decomposição de texto em seções, parágrafos e frases, a divisão de vídeo em tomadas pode ser utilizada para a indexação de vídeo e construção de sumários, promovendo formas eficientes de busca e navegação.

Além de navegação e busca, várias outras aplicações podem se beneficiar da estruturação por tomadas. Ferramentas automáticas e semi-automáticas para colori- zação de vídeos em preto e branco podem associar mapas de cores distintos à tomadas diferentes, agilizando o trabalho dos editores. A restauração de vídeos antigos pode ser auxiliada de forma semelhante, reaproveitando conteúdo e configurações entre tomadas similares [8].

2Utilizaremos “tomada” neste trabalho como tradução do termo “shot”.

(4)

Figura 2.Estruturação de vídeo, como visto em Lienhartet al.[11].

1.3 Sumarização e indexação

Grandes quantidades de informação, como as disponíveis em vídeo (e em acer- vos de vídeo) necessitam de técnicas eficientes de navegação e busca. A navegação exige uma exibição sucinta e representativa do conteúdo do material, como os sumá- rios utilizados em livros e revistas. Já a busca se beneficia da construção de índices que referenciem de modo apropriado os elementos desejados.

Uma forma de representar segmentos do vídeo é a utilização de um ou mais quadros-chaves. Considere como exemplo a Figura 4. Se desejamos obter um sumário

Figura 3.Uma transição gradual (dissolução) emAirline Safety and Economy (disponível viaThe Open Video Project[13]).

(5)

visual conciso do vídeo em questão, podemos admitir que há grande redundância entre os quadros da seqüência, de modo que um único deles poderia representar de modo satisfatório todo o conteúdo do segmento para fins de navegação.

Devido a sua unidade em termos de tempo e espaço, uma tomada é adequada não só à procura de quadros chaves como também para a construção demosaicos. Mo- saicos gerados por técnicas comostrip pasting, a partir dos quadros de uma tomada, podem representar, em uma única imagem, toda a ação contida em um segmento do vídeo.

Quadros-chaves e mosaicos podem ser utilizados na criação de índices, através da extração de características de imagem, como cor, textura e forma. Já as tomadas são adequadas para a extração de características envolvendo movimento.

Sistemas complexos para problemas de detecção de padrões, como reconheci- mento de faces, podem se beneficiar dessas representações sucintas do conteúdo e ter seus desempenhos incrementados, pois podem operar em uma massa menor de dados, como visto anteriormente na Figura 1.

1.4 Organização deste trabalho

A próxima seção descreve algoritmos de segmentação de vídeo, em particular, para a detecção de cortes. A forma de avaliação desses algoritmos é apresentada na Seção 3, e a Seção 4 apresenta características utilizadas para a detecção de cortes entre tomadas de vídeo. A Seção 5 discute como definir o limiar para otimizar a detecção de cortes e a Seção 6 introduz o problema de indexação e recuperação de vídeo a partir de conteúdo visual, e ilustra uma possível aplicação baseada em filtros para detecção de faces. Algoritmos para o processamento de vídeo em OpenCV são descritos na Seção 7. A Seção 8 conclui esse tutorial.

2 Segmentação de Vídeo

O problema de segmentação de vídeo em tomadas (shot boundary detection) é um passo importante para sua estruturação e para a análise de eventos. A passagem de uma tomada para outra representa uma troca de contexto essencial se estamos interessados, por exemplo, na construção de uma imagem panorâmica, no estudo da trajetória de um objeto ou qualquer outra análise dependente de unidade temporal e/ou espacial.

Podemos representar um vídeo digital como uma seqüênciaV =hq1, q2, ..., qni composta por quadrosqi, imagens de resoluçãoM ×N. Ele é obtido pela monta-

(6)

Figura 4.Tomada deAirline Safety and Economy.

(7)

gem de várias tomadas em um processo de edição, onde cada par consecutivo de tomadas é separado por umatransição. Pode-se representar uma transiçãoTi entre duas tomadas consecutivasSi e Si+1 por um par de índices (s, t), s < t, tais que Si=h..., qs−1, qsieSi+1=hqt, qt+1, ...i, como exibido na Figura 5.

A forma mais simples de transição entre duas tomadas consecutivas é ocorte, onde t = s+ 1, ilustrado na Figura 6. Já as transições graduais ocorrem quando t > s+ 1, onde os quadros no intervalo entreset sãoeditados, formados por uma composição dos quadros originais das duas tomadas em questão. É o que ocorre entre as tomadasS2eS3na Figura 5.

Figura 5.Montagem de um vídeo a partir de quatro tomadas.

Figura 6.Um corte emChallenge at Glen Canyon(disponível viaThe Open Video Project[13]).

Transições graduais obtidas pela manipulação das cores ou da intensidade lu- minosa dos quadros de duas tomadas sucessivas são chamadastransições cromáticas

(8)

[7]. Nesta categoria, os efeitos de edição mais largamente utilizados são osfades(di- minuição progressiva da luminosidade nos quadros) e asdissoluções (transformação gradual de uma tomada para a seguinte). Além das cromáticas, as transições gradu- ais podem ser espaciais como emwipes, onde uma cena é deslocada espacialmente para a entrada da próxima cena. Dada a complexidade para detecção de transições graduais, nesse tutorial trataremos apenas de cortes.

2.1 Análise do problema

Hanjalic [8] apresenta uma análise do problema de delimitação de tomadas.

A base para a resolução do problema reside no fato que quadros em torno de uma transição geralmente apresentam uma mudança significativa em seu conteúdo visual.

O processo de detecção consiste no reconhecimento dedescontinuidadesno fluxo do conteúdo visual da seqüência de vídeo.

Toma-se umacaracterística do conteúdo visual dos quadros que será utilizada como base para o método, junto a uma métrica para mensurar a variação zl(i) = z(qi, qi+l)dessa característica entre dois quadrosqieqi+l, ondel≥1é uma distância inter-quadros (um passo). Cadazl(i),1 ≤i≤n, é comparado por umdetectora um limiarK(i), decidindo-se assim seqi consiste ou não em umlimitede uma tomada.

O Algoritmo 1 a seguir sumariza o processo:

Algoritmo 1 (Determinação de descontinuidades) Dada uma seqüência de vídeoV = hq1, q2, ..., qni, encontra uma seqüência de transiçõesT =hT1, T2, ..., TviemV.

D1. [Inicialize.] Atribuai←1,T ← hi.

D2. [Calcule a variação.] Faça o processamento adequado dos quadros qi e qi+l e calculezl(i).

D3. [Obtenha o limiar.] CalculeK(i).

D4. [Excedeu?] Sezl(i)> K(i), adicione a nova transiçãoT = (i, i+l)aT e atribua i←i+l+ 1. Vá para D6.

D5. [Incrementei.] Atribuai←i+ 1.

D6. [Fim do vídeo?] Sei≥n, o algoritmo termina. Caso contrário, volte a D2.

A maioria dos algoritmos apresentados pela literatura são variações do Algo- ritmo 1, sobretudo em relação ao parâmetrol e as funçõesd(qi, qj)e K(i). Para o

(9)

sucesso do Algoritmo 1, o par característica/métrica utilizados emzl(i)deve ser tão discriminante quanto possível. SejaR¯o intervalo mínimo de valores tal quezl(i)∈R¯ para todoiondeqieqi+lestão dentro de uma mesma tomada. Analogamente, sejaR um intervalo mínimo de valores tal quezl(i)∈Rpara todoiondeqi eqi+lestão em tomadas diferentes. A funçãozl(i)é tão discriminante quanto menor for a intersecção entreReR, como indicado na Figura 7. Uma grande intersecção torna-se fonte de¯ falsos positivosefalsos negativosdurante a fase de detecção, degenerando a qualidade da solução.

Figura 7.IntervalosReR¯ e a desempenho da detecção [8].

2.2 Fatores extremos

As maiores diferenças no conteúdo visual de quadros em uma mesma tomada são causadas principalmente por movimentações de objetos, movimentação da câ- mera e mudanças de iluminação. Características e métricas muito sensíveis a esses eventos terão uma grande sobreposição dos intervalosReR¯(R¯se expande). Sezl(i) pudesse ser construída sobre características e métricas robustas em relação a esses fatores, não só a interseçãoR∩R¯seria pequena, mas também tería-se intervaloscon- sistentesmesmo em vídeos de natureza diferente. Um filme de ação ou um vídeo clip tem níveis maiores de movimentação e alteração de luminosidade do que um drama ou uma entrevista. Dizer que os intervalos são consistentes significa desempenho si- milar em vídeos diferentes sem a necessidade de ajustes manuais ou qualquer outra intervenção humana [8].

Porém, grandes alterações na luminosidade da tomada ou casos extremos de

(10)

movimentação de objetos e câmera são situações difíceis mesmo para um par carac- terística/métrica robusto. Tais situações, combinadas às descontinuidades sutis nas transições graduais, requerem o uso de algum conhecimento extra para uma melhoria na desempenho do detector.

Várias informações extras podem auxiliar um detector. Conhecimento sobre os padrões assumidos porzl(i)durante um corte ou seu comportamento no decorrer de fadesou dissoluções são dados que podem ser utilizados na etapa de decisão para evi- tar falsas conclusões. No caso de dissoluções, por exemplo, Yeo e Liu [18] mostraram que, paralsuficientemente grande, o gráfico dezl(i)assume a forma de um trapézio durante uma dissolução, o que os autores chamam de “platôs”.

Além da análise de descontinuidades, há outras informações que podem au- xiliar na detecção e na determinação da natureza de uma transição. Alattar [1] ob- servou que a variância da luminosidade dos quadros assume um padrão parabólico durante uma dissolução. Já Guimarães et al. [6] mostraram que há uma contração nos histogramas de luminosidade durantefades. Há, também, certas informaçõesa priorique podem ser utilizadas sem qualquer análise dos quadros da seqüência de vídeo. Vasconcelos e Lippman [15, 16] embutiram seu detector com informação so- bre aduraçãodas tomadas. Imediatamente após o final de uma tomada, uma nova transição tem poucas chances de ocorrer. Contudo, a probabilidade de ocorrência de uma transição vai aumentando conforme o tempo passa. Tal idéia é retomada na abordagem probabilística de Hanjalic [8].

3 Avaliação de desempenho

O sucesso de um delimitador de tomadas é medido pela acurácia com que ele identifica os extremosqseqtde uma transição. As medidas decoberturaeprecisão3, comumente utilizadas na área de recuperação de informação, são utilizadas como in- dicadores da qualidade da solução dada por um delimitador contra uma solução ideal anotada por um observador humano. Sua função é mensurar a quantidade defalsos negativose falsos positivosem uma solução proposta, ou em outras palavras, avaliar a proporção de transições reais perdidas e falsas transições inseridas por engano do detector.

ConsidereTcorte={T1, T2, ..., Tm}o conjunto de cortes reais existentes em uma seqüência de vídeoV (obtido por um avaliador humano ou através do esquema ori- ginal de edição). SejaT¯corte={T¯1,T¯2, ...,T¯p}o conjunto de cortesT¯iencontrados pelo

3Os termos “cobertura” e “precisão” serão utilizados aqui no lugar das palavras inglesas “recall” e “precision”

respectivamente.

(11)

delimitador paraV. A cobertura R, utilizado para avaliar a solução em relação a falsos negativos, é definido para cortes como

Rcorte =|Tcorte∩T¯corte|

|Tcorte| . (1)

Para avaliar o número de falsos positivos da solução, utilizamos a precisãoP, definida por

Pcorte =|Tcorte∩T¯corte|

|T¯corte| (2)

4 Características e métricas

Como visto na Seção 2.1, utiliza-se uma medida de variação do conteúdo visual entre dois quadros como base para a detecção de transições. Diversas medidas foram propostas na literatura, baseadas em características espaciais (pixels, super-pixels e bordas), características de cor e na estrutura da compressão MPEG.

4.1 Domínio espacial: comparação pixel a pixel

A comparação direta entre os pixels correspondentes de dois quadros qi e qj

foi uma das primeiras características exploradas na literatura. Uma das métricas mais simples é dada por

zpixel(qi, qj) = 1 M N

M

X

x=1 N

X

y=1

|qi[x, y]−qj[x, y]|, (3)

para quadros em níveis de cinza ou, de forma equivalente,

zpixel(qi, qj) = 1 M N

X

c∈{R,G,B}

M

X

x=1 N

X

y=1

|qi[x, y, c]−qj[x, y, c]| (4)

para quadros coloridos (no caso, no domínio RGB).

Infelizmente, tal métrica é incapaz de discernir entre uma pequena mudança em uma grande área dos quadros e uma grande alteração em uma pequena área, o que a torna muito sensível à movimentação de objetos e da câmera [9]. Devido a

(12)

isso, Nagasaka e Tanaka [12] e Zhanget al. [20] propuseram considerar apenas os pixels onde a alteração de valor fosse considerável:

dpixel(p1, p2) =

1 se|p1−p2|> kpixel,

0 caso contrário. (5)

zpixel(qi, qj) = 1 M N

M

X

x=1 N

X

y=1

dpixel(qi[x, y], qj[x, y] ), (6)

ondep1 ep2 são valores em níveis de cinza (entre0 e255) ekpixelum limiar fixado (a extensão para quadros coloridos decorre de forma análoga). Esta métrica é capaz de filtrar alterações irrelevantes entre pixels mas ainda é muito sensível aos fatores extremos, sobretudo movimentação.

4.2 Domínio espacial: blocos

Buscando utilizar informação local para incrementar a robustez da métrica em situações de movimento, alguns autores substituiram a comparação entre pixels pela comparação de blocosde pixels, que dividem o quadro em regiões retangulares de mesmas dimensões e sem sobreposição entre si. Shahraray propôs a soma ponderada das diferenças entre blocos correspondentes:

zbloco(qi, qj) =

B

X

b=1

cbdbloco(qi[b], qj[b]), (7)

ondedbloco mede a diferença entre dois blocos. Kasturi e Jain [10] assumemcb = 1

para todos os blocos e fazem uso da verossimilhança da seguinte forma:

λ(qi[b], qj[b] ) = [σ2(qi[b])+σ2 2(qj[b]) + (µ(qi[b])−µ(q2 j[b]))2]2

σ2(qi[b])·σ2(qj[b]) , (8)

dbloco(qi[b], qj[b] ) =

1 seλ(bu, bv)> kλ,

0 caso contrário. (9)

onde σ2(q[b]) e µ(q[b]) são, respectivamente, a variância e a média da intensidade luminosa no blocoq[b]. Comparada a diferença pixel a pixel, esta métrica consegue reduzir o número de falsos positivos devido a sua tolerância a movimentos lentos de câmera e/ou objetos [20]. Contudo, pode gerar falsos negativos quando blocos muito diferentes têm probabilidades com funções de densidade similares, além do fato que

(13)

os cálculos envolvidos nas equações 3.6 e 3.7 tornam muito lenta a computação da medida [20, 17, 5].

Xionget al.[17] estudaram como uma amostragem baseada em blocos poderia impactar a eficiência da segmentação. Eles argumentam que o tamanho do bloco tem estreita relação com a robustez do método a movimentações: quanto menor o bloco, mais ele se aproxima da comparação entre pixels e torna-se mais sensível a tais eventos. A partir dessa observação, os autores definem os blocos como quadrados de lado2δ, ondeδé o máximo movimento, em pixels, entre duas imagens. Eles alegam que, na prática,δ = 10 é uma estimativa que leva a bons resultados. Isto garante que, não havendo uma transição abrupta, ao menos um quarto dos pixels de blocos correspondentes são iguais. A similaridade entre os blocos é mensurada através de

dbloco(q1[b], q2[b]) =

1 se|µ(q1[b])−µ(q2[b])|> kbloco,

0 caso contrário. , (10)

onde µ(q[b]) é a média da intensidade luminosa no bloco q[b] e kbloco um limiar (a equação 3.8 pode ser vista como generalização da equação 3.3). A diferença é dada por

zbloco(qi, qj) = 1

|Bs| X

bBs

db(qbi, qbj), (11) sendoBsumaamostrado conjunto blocosB. Os autores provam que o desempenho da medida degenera muito pouco com a amostragem, podendoBs ser consideravel- mente menor que o conjunto de todos os blocosB.

4.3 Domínio espacial: bordas

Zabihet al.[19] propõem uma métrica baseada nos conceitos depixel de borda entrante4epixel de borda ausente5. Um pixel de borda entrante entre doisqieqjé um pixel(x, y)de borda deqjque não possua um correspondente em uma vizinhança de qi(x, y). Similarmente, um pixel de borda ausente é um pixel(x, y)de bordas deqi

que não possua um correpondente em uma vizinhança deqj(x, y).

Mais formalmente, seja fi a imagem binária obtida pelo detector de bordas de Canny aplicado a qi. Seja também f¯i a imagem binária obtida pela dilatação morfológica defipor um elemento estruturante (um “diamante” de altura e largura igual a2r+ 1pixels). Define-se daí afração de pixels ausentes,ρout, por

4Do originalentering edge pixel.

5Do originalexiting edge pixel.

(14)

ρout(qi, qj) = 1− P

x,yfi(x+δx, y+δy)·f¯j(x, y) P

x,yf(x, y) . (12)

Analogamente, obtem-se afração de pixels entrantes,ρin, por

ρin(qi, qj) = 1− P

x,yi(x+δx, y+δy)·fj(x, y) P

x,yf(x+δx, y+δy) . (13)

Os valoresδxeδysão inteiros que representam uma translação que alinheqie qj, obtidos por algoritmos de compensação de movimento. A partir daí, tem-se uma nova métrica, afração de bordas alteradaszρ, dada por

zρ(qi, qj) = max(ρout(qi, qj), ρin(qi, qj) ). (14) A detecção de transições realizada pelos autores baseia-se nos padrões assu- midos porρinoutentre quadros sucessivos ao longo da seqüência de vídeo. Cortes apresentam picos emρinout.Fades-inapresentam valores crescentes deρinao longo do tempo, o mesmo ocorrendo de modo análogo comfades-outout. Dissoluções são marcadas por valores crescentes deρoute um pico deρinoutna metade da transição, seguida por valores decrescentes deρin.

4.4 Domínio de cores: histogramas

Uma das características mais utilizadas na literatura é o histograma de inten- sidade luminosa. O histograma de um quadro qi em níveis de cinza no intervalo [0, L−1]é um vetorhi[l] = nl onde l é ol-ésimo nível de cinza e nlo número de pixels na imagem que apresentam tal valor. Os elementoshi[l]são comumente cha- madosbins. Baseando-se nessa característica Nagasaka e Tanaka [12] e Zhanget al.

[20] propõem o uso da diferença entre histogramasbin-a-bin

zh(qi, qj) =

L−1

X

l=0

|hi[l]−hj[l]|. (15)

Ao tratarem-se de quadros coloridos, há várias alternativas. Uma delas é reduzí-los a quadros em escala cinza. De acordo com o padrão de vídeo NTSC:

l= 0,299R+ 0,587G+ 0,114B (16)

(15)

.

Contudo, há várias formas para a construção de um histograma de cores.

Zhanget al., por exemplo, utilizam um código para cada cor obtido tomando-se os dois bits mais significativos das componentes básicas R, G e B. Com esse códigoc, a variação por histograma pode ser calculada através de

zh(qi, qj) =

64

X

c=1

|hi[c]−hj[c]|. (17)

Há opções a diferençabin-a-bin. Nagasaka e Tanaka sugerem o uso doχ2como medida, revista posteriormente por Gargiet al.[5]:

zχ2(qi, qj) = ( PL

l=1

(hi[l]−hj[l])2

hj[l] sehj[l]6= 0, PL

l=1

(hi[l]−hj[l])2

hi[l] caso contrário. (18) Contudo, de acordo com os testes de Zhanget al.e Gargiet al., oχ2não possui desempenho melhor que a de zh 15, sendo ainda mais sensível às várias formas de movimentação. Por outro lado, Gargi et al. identificam em seus testes um melhor desempenho da medida dada pelaintersecçãode histogramas, definida por

z(qi, qj) = 1−

L

X

l=1

min(hi[l], hj[l]). (19)

Quadros díspares podem ter histogramas similares, o que seria uma possível fonte de falsos negativos6. Histogramas são mais robustos à movimentação de objetos sobre um fundo constante do que as métricas em domínio espacial, mas permanecem sensíveis à movimentação de câmera.

5 Limiarização e detecção

A forma mais comum de delimitação de tomadas é utilizar o Algoritmo 1 com l= 1eK(i) =kcortepara todoi. Em outras palavras, calcula-se a variação entre todo quadroqi e seu sucessor imediatoqi+1, obtendo-se assim um sinal (Figura 8) que é posteriormente limiarizado frente a uma constantekcorte, um limiar global para todo o vídeo.

6A ocorrência de tais eventos é, felizmente, pouco freqüente.

(16)

Figura 8.Gráficoi×zh(qi, qi+1)de um segmento deAirline Safety and Economy.

Embora seja uma solução razoável para a detecção de cortes, tal detector não tem um comportamento adequado com relação às transições graduais. A região entre os quadros4500e 4525, referente a uma dissolução emAirline Safety and Economy, ilustra a situação: um limiar global sobre o sinal poderia não identificar a transição, de valores menores se comparados aos cortes em4875,4935e5028, ou ainda declarar como corte cada ponto da transição.

6 Indexação e Recuperação de Vídeo

A busca por conteúdo visual em repositórios de vídeo digital é realizada através de anotações na forma de texto, realizadas manualmente. Porém, não é sempre que essa informação se encontra disponível e, mesmo quando ela existe, em geral ela é incompleta e inexata para uma grande variedade de buscas. Por exemplo, buscas podem ser bem genéricas como “cenas de praia”, ou específicas como “Presidente Lula surfando no Guarujá”.

Como as informações visuais podem ser difíceis de serem expressadas em pa- lavras, alguns sistemas propoem o uso de exemplos na forma de imagens ou esboços.

Outros sistemas propoem o uso de filtros para a detecção de objetos específicos que permitiriam a construção de perguntas com conteúdo semântico mais elevado. Nesse trabalho, vamos introduzir um sistema de indexação automática de vídeo utilizando faces. Aplicações semelhantes foram sugeridas em [3, 4]

A Figura 9 ilustra uma possível interface para um sistema assim. Essa inter- face é constituída por 3 partes. A primeira parte (P1), presente no canto superior esquerdo, permite a visualização das faces encontradas no vídeo. A segunda parte (P2), no canto superior direito, permite a visualização de um vídeo, e a terceira parte

(17)

(P3), localizada na parte inferior da interface, mostra os quadros-chave que repre- sentam todas as tomadas extraídas do vídeo. As tomadas estão organizadas de forma cronológica, sendo possível dessa forma visualizar o vídeo como um todo na forma de um mosaico de quadros-chave. Ao se clicar em um quadro-chave em P3, o vídeo passa a ser exibido em P2 a partir dessa tomada. Ao se clicar em uma face em P1, as tomadas que contem aquela face são realçadas com uma borda em vermelho. Dessa forma é possível visualizar todas as personagens de um vídeo em P1, saber em que tomadas elas aparacem, e facilmente acessar qualquer tomada de interesse.

Figura 9.Interface de um sistema para indexação e recuperação de vídeos baseado em faces

7 Implementação dos Algoritmos usando OpenCV

O OpenCV (Intel Open Source Computer Vision Library) é uma biblioteca de có- digo aberto (open source) desenvolvida pela Intel em C/C++ que implementa várias rotinas populares para o processamento de imagens e algoritmos de visão computa-

(18)

cional. O código, documentação e instruções para instalação do OpenCV podem ser obtidos emhttp://sourceforge.net/projects/opencvlibrary.

O OpenCV pode ser utilizado para a construção de um sistema para busca e recuperação de vídeo baseado em faces como descrito na seção anterior. Para isso, vamos utilizar o seguinte esqueleto de programa para detectar os cortes e as faces contidas em um arquivo de vídeo:

1 int main( int argc, char** argv ) { 2 CvCapture* capture = 0;

3 IplImage *frame[2] = {0,0};

4 int i = 0;

5 cvNamedWindow("Video Window", 1);

6 if (argc == 2)

7 capture = cvCaptureFromFile ( argv[1] );

8 else

9 printf("Usage: %s %s\n", argv[0], "video_file_name");

10

11 while (cvGrabFrame( capture)) {

12 frame[i%2] = cvRetrieveFrame( capture );

13 cvShowImage("Video Window", frame[i%2]);

14 if(shotBoundary(frame)) storeCut(i);

15 if (detectFaces(frame[i%2])) storeFaces(frame[i%2], i);

16 i++;

17 }

18 cvReleaseCapture( &capture );

19 return 0;

20 }

Esse esqueleto está bastante simplificado para facilitar sua leitura e entendi- mento, e não mostra, por exemplo, itens importantes como os protótipos das funções, include files, e testes de consistência dos ponteiroscaptureeframedevolvidos pelas funções.

O programa recebe o nome de um arquivo de vídeo, que corresponde ao pa- râmetro argv[1]definido pelo usuário na linha de comando. Caso o número de parâmetros não seja correto, o programa fornece uma mensagem de erro ao usuário.

A funçãocvCaptureFromFileprepara um arquivo de vídeo para ser proces- sado. Ela é bastante similar a funçãocvCapture, que prepara a captura de vídeo a partir de uma câmera. A funçãocvGrabFramecaptura uma imagem (do arquivo ou câmera), que é acessada pela funçãocvRetrieveFrame. Essas duas funções per- mitem que o OpenCV capture imagens rapidamente. A funçãocvNamedWindowcria

(19)

uma janela de nome “Video Window” ecvShowImagemostra a imagem capturada em frame[i%2] na janela. Todas essas funções para captura e exibição de ima- gens estão definidas no pacotehighgui.hdo OpenCV. Você pode usar uma estrutra similar para desenvolver suas próprias ferramentas.

Observe que a variávelié utilizada para contar o número de quadros proces- sados até o momento. Quando o quadro é par, ele é armazenado emframe[0]e, quando é ímpar, ele é armazenado emframe[1]. A funçãoshotBoundaryrecebe esses 2 quadros e verifica se existe um corte entre eles. Em caso afirmativo, o quadro atual é marcado como o início de uma nova tomada e o quadro anterior como o fim da tomada anterior pela funçãostoreCut.

Finalmente a funçãodetectFacesverifica se há faces no quadro capturado e, em caso afirmativo, chama a funçãostoreFacesque organiza as faces em cada quadro para que possam ser utilizadas pela interface.

Mais detalhes sobre as funçõesdetectFaceseshotBoundaryestão dispo- níveis emhttp://www.ime.usp.br/˜hitoshi/wvc08. A funçãodetectFaces é baseada no exemplo fornecido como parte da documentação do OpenCV, que de- tecta faces utilizando filtros de Haar em cascata. Já a funçãoshotBoundaryé uma versão muito simplificada do programa desenvolvido na dissertação de mestrado dis- ponível em [14].

As estruturas a serem utilizadas pela interface definiram o que as funções storeCutestoreFacesdevem realizar, e não são tratadas nesse tutorial.

8 Conclusão

Nesse trabalho foram descritos alguns algoritmos básicos para segmentação, indexação e busca automática de conteúdo visual em vídeo. Primeiramente foram introduzidos algoritmos para dividir o vídeo em seqüências de quadros com conti- nuidade temporal, conhecidas como tomadas. As tomadas podem ser utilizadas para simplificar o processamento, o acesso, e a visualização do vídeo. A indexação de con- teúdo visual, que tipicamente é feita de forma manual, pode ser automatizada com a utilização de filtros, como descrevemos em [2]. Introduzimos uma ferramenta que ilustra o grande potencial de aplicações que integrem a visualização, busca e manipu- lação de vídeo utilizando apenas um filtro para detecção de faces. Finalmente suge- rimos um esqueleto de programa para o processamento de vídeo usando OpenCV. Os algoritmos apresentados aqui são de certa forma simples e serve apenas para intro- duzir o leitor a essa área que vem se expandindo muito rapidamente. Para conhecer detalhes de algoritmos de segmentação mais complexos para detecção de transições

(20)

graduais, sugerimos a dissertação de Santos [14].

Agradecimentos

Os autores gostariam de agradecer à Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP) e à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) pelos auxílios financeiros concedidos a esse projeto.

Referências

[1] Adnan M. Alattar. Detecting and compressing dissolve regions in video sequen- ces with a dvi multimedia image compression algorithm. Proceedings of IEEE International Symposium on Circuits and Systems (ISCAS), 1:13–16, Maio 1993.

[2] R.A. Barbosa, F. Silva, T.T. Santos, and C.H. Morimoto. An extensible automatic video browsing tool. InWorkshop Teses e Dissertações - Sibgrapi 05, Natal, RN, October 2005.

[3] Csaba Czirjek, Noel O’Connor, Sean Marlow, and Noel Murphy. Face detection and clustering for video indexing applications. InProceedings of the ACIVS 2003 - Advanced Concepts for Intelligent Vision Systems, pages 3–15. IEEE, September 2003.

[4] Andrew Fitzgibbon and Andrew Zisserman. On affine invariant clustering and automatic cast listing in movies. In Proc. of 7th the European Conference on Computer Vision, volume 3, pages 304–320. Springer Verlag, 2002.

[5] Ullas Gargi, Rangachar Kasturi, and Susan H. Strayer. Performance characte- rization of video-shot-change detection methods. IEEE Transactions on Circuits and Systems for Video Technology, 10(1):1–13, 2000.

[6] Silvio Jamil Ferzoli Guimarães, Michel Couprie, Arnaldo de Albuquerque Araújo, and Neucimar Jerônimo Leite. Video segmantation based on 2d image analysis. Pattern Recognition Letters, 24:947–957, 2003.

[7] A Hampapur, T. Weymouth, and R. Jain. Digital video segmentation. InProcee- dings of the second ACM international conference on Multimedia, pages 357–364.

ACM Press, 1994.

[8] Alan Hanjalic. Shot-boundary detection: Unraveled and resolved? IEEE Tran- sactions on Circuits and Systems for Video Technology, 12(2):90–105, fevereiro 2002.

(21)

[9] F Idris and S. Panchanathan. Review of image and video indexing techniques.

Journal of Visual Communication and Image Representation, 8(2):146–166, June 1997.

[10] R. Kasturi and R. Jain. Computer Vision: Principles, chapter Dynamic Vision, pages 469–480. IEEE Computer Society Press, Washington, DC, 1991.

[11] Rainer Lienhart, Silvia Pfeiffer, and Wolfgang Effelsberg. Video abstracting.

Communications of ACM, 40(12):54–62, 1997.

[12] Akio Nagasaka and Yuzuru Tanaka. Automatic video indexing and full-video search for object appearances (abstract). J. Inf. Process., 15(2):316, 1992.

[13] The Open Video Project. http://www.open-video.org.

[14] Thiago Teixeira Santos. Segmentação automática de tomadas em vídeo. Mas- ter’s thesis, Instituto de Matemática e Estatística, Universidade de São Paulo, 2004.

[15] Nuno Vasconcelos and Andrew Lippman. A bayesian video modeling framework for shot segmentation and content characterization. InProceedings of the 1997 Workshop on Content-Based Access of Image and Video Libraries (CBAIVL ’97), page 59. IEEE Computer Society, 1997.

[16] Nuno Vasconcelos and Andrew Lippman. Statistical models of video structure for content analyis and characterization. IEEE Transactions on Image Processing, 9(1):3–19, Janeiro 2000.

[17] Wei Xiong, John Chung-Mong Lee, and Man-Ching Ip. Net comparison:a fast and effective method for classifying image sequences. InProc.of SPIE Conference on Storage and Retrieval for Image and Video Databases III, volume 2420, pages 318–328, San Jose, CA, 1995.

[18] Boon-Lock Yeo and Bede Liu. Rapid scene analysis on compressed video. IEEE Transactions on Circuits and Systems for Video Technology, 5:533–544, December 1995.

[19] Ramin Zabih, Justin Miller, and Kevin Mai. A feature-based algorithm for de- tecting and classifying scene breaks. Proceedings of ACM Mutlimedia 95, pages 189–200, Novembro 1995.

[20] HongJiang Zhang, Atreyi Kankanhalli, and Stephen W. Smoliar. Automatic par- titioning of full-motion video. Multimedia Systems, 1(1):10–28, 1993.

Referências

Documentos relacionados

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Foi membro da Comissão Instaladora do Instituto Universitário de Évora e viria a exercer muitos outros cargos de relevo na Universidade de Évora, nomeadamente, o de Pró-reitor (1976-

6 Num regime monárquico e de desigualdade social, sem partidos políticos, uma carta outor- gada pelo rei nada tinha realmente com o povo, considerado como o conjunto de

Este trabalho tem como objetivo contribuir para o estudo de espécies de Myrtaceae, com dados de anatomia e desenvolvimento floral, para fins taxonômicos, filogenéticos e

Water and wastewater treatment produces a signi ficant amount of methane and nitrous oxide, so reducing these emissions is one of the principal challenges for sanitation companies