Banco de Dados Multimídia
5. Vídeo
Prof. Cláudio Baptista
Video- Introdução
Porquê necessitamos de vídeo? Para representar
movimento (motion)
O que podemos fazer com dados de video?
– capturar, armazenar, apresentar, editar -- (sem considerar
o conteúdo)
– query, busca, indexação -- dependente de contexto
Video sequence = Video stream (physical, raw data)
+ Video information (meaning)
Video - Motivação
– A grande quantidade de vídeos produzidos que
necessitam de recuperação por
– Ex.: Um ano de video da NBA mostrando os melhores
eventos:
Número total de jogos num ano: 29 * 82 / 2 + 91 = 1280
(jogos)
Precisamos de 1280 * 3 = 3840 (horas) para navegar
sequencialmente se usando um video player
– Uma facilidade de acesso randômico pode reduzir este
tempo pode ser reduzido a poucos dias.
Video - Motivação
Porquê agora?
Porquê agora?
Imagem & Video

An image is captured when a camera scans a scene
Colour => Red (R), Green (G) and Blue (B) array of digital
samples
Density of samples (pixels) gives resolution
A video is captured when a camera scans a scene at
multiple time instants
 Each sample is called a frame giving rise to a frame
rate (frames/sec) measured in Hz

TV (full motion video) is 25Hz
Mobile video telephony is 8-15 Hz
Video Data
Compressão
Compressão
Representação de Vídeo
Analógico: convertido para digital usando uma placa
de captura de vídeo (digitalização)
Digital: AVI, MPEG-1,-2,-4
Representação de Vídeo
Representação de Vídeo
Level
Granularity
Descriptive features
Video
meta
concept, producer, director
Episode
macro
events description
Clip or Shot
mini
action, talk, goal
Frame
micro
object and its spatial relationship
Representação de Vídeo
Características de vídeo
 Comparação com dados alfanuméricos
Characteristic
Video data Alphanumeric data
Symbol Set
Inifinite
Finite
Resolution
High
Low
Interpretation Ambiguity
High
Low
Interpretation Efforts
High
Low
Data Volume
Large
Small
Similarity Measure
Ill difined Well Defined
BD Vídeo
Tipos de consulta:
1. Usuário pode ter visto uma cena de um video e deseja
recuperá-la
2. Usuário pode estar procurando por um vídeo que ele
nunca viu antes
3. Usuário pode ter apenas uma vaga idéia do que ele está
procurando.
BD Vídeo
Meta: determinar a sintaxe e semântica de um video.
Passo 1: identificar a sintaxe:
Um filme é composto por segmentos, cenas e tomadas.
- Quadro (Frame): uma imagem do vídeo
- Tomadas (shots): sequência contínua de frames de uma câmera com
início e fim bem definidos.
- Cena (Episode): coleção de shots adjacentes focando os mesmos objetos
e descrevendo uma cadeia completa de ações.
- Segmento: é um grupo de cenas, não necessariamente
adjacentes, ligados por uma linha comum de ações.
Categoria: News
Data: 10/12/96
Duração: 15 min
Fonte: Globo
Num. Estórias: M
Keywords: C. Grande,
Micarande, Turismo,
festa ...
Segmento index: 1
Título: Folia nos blocos
Num. Shots: K
Frame inicial: 00000
Frame final: 02000
Evento: narração,
entrevistas, diálogos, ...
Shot index: 1
Frame inicial: 00000
Frame final: 00300
Camera: still
Nível de audio: médio
Num. Pessoas: 10
Keywords: dança, festa
animação, ...
clip
Segmento 1
...
Shot 1
...
Frame 00000
...
Segmento M
Shot K
Frame 00300
BD Vídeo
• Passo 2: semântica
Uso de metadata para especificar a semântica do video.
Através de anotações, capturas de texto, e algoritmos de
segmentação de imagem (similar a proc. de imagens).
• BD Video pode ser indexado por:
- dados bibliográficos: título, abstract, assunto, gênero
- dados estruturados: segmento, cena e tomada
- dados de conteúdo: uso de keyframes e keywords.
Análise de Movimento
 O processo de análise de movimento é dividido
em 3 estágios:
detecção de objetos em movimento
trajetória de objetos
análise final de movimento
Modelo de Informação de Video
 CBR em video usa:
anotação manual para descrever informação
semântica (lento)
representação icônica usando métodos automáticos
para detecção de mudança de cena (cortes) (perde
a propriedade de movimento)
propriedades estáticas derivadas usando técnicas
de análise de imagens (perde aspecto temporal do
video)
Caracterização de Informação de Video
Tipos de informações físicas associados com video:
 Objeto -- video stream
 atributos (length, size, frame numbering)
 informação (format resolution headers, frame rate)
O que pode ser derivado de um video?
 O -- conjunto de objetos presentes num video
 M -- conjunto de representações de movimento
 Features, spatial relationships, derivados de O
 Spatiotemporal info derivada de O e M juntos
 Spatiotempotal info fornecida pelo designer
 Temporal relationships inferidos de M
 Image information
Operadores de Video
 Além dos clássicos: FF, play, record, Rewind,
stop e pause
 Inserir um video em outro
 Extrair um video clip
 Extração de cortes
 Extrair uma imagem de um video
Operadores de atributos de
video
 v_length:Video -> Integer
 frame_rate: Video -> Integer
 size: Video -> Integer
 resolution: Video -> String
 compression: Video -> String
Video Segmentation
Segmentação de Vídeo: O que é
importante?
Segmentação de Vídeo: O que é
importante?
Problema Semântico
Video Segmentation
Video Segmentation
Video Segmentation
Semantic Indexing Overview
Projetos: Informedia
Projetos: IBM Marvel
Áudio
Prof. Cláudio Baptista
Áudio
 Processamento de Fala
Reconhecimento de Fala
Síntese de Fala
 Reconhecimento de Música
Reconhecimento de Fala
Motivação:
 •How can machines make sense of – and participate in
– human communication? recognizing, interpreting,
understanding, generating
 Underpins

richer, human-centred approaches to computing
perceptual computers that can interpret their environment
technological enhancements to human-human
communication
Características Ácústicas
 Process the speech waveform to obtain a
representation that emphasizes those aspects of
the speech signal most relevant to ASR
Dificuldades no Reconhecimento da
fala

Speech recognition is difficult due to several sourcesv
of variation
Size - number of words in the vocabulary, perpelexity
Style - continuous speech or isolated; planned or
spontaneous;
Speaker characteristics and accent - tuned for a single
speaker, or speaker-independent?
Acoustic environment - noise, competing speakers, channel
conditions (microphone, phone line, ...)
Conhecimento linguístico

One could construct a speech recognizer using
linguistic knowledge
Acoustic phonetic rules to relate spectrogram representations
of sounds to phonemes
Base pronunciations of words stored in a dictionary
Morphological rules to construct inflected forms
Grammatical rules to model syntax
Semantic and pragmatic constraints

Very difficult to take account of the variability of spoken
language with such approaches
Machine Learning

Intense effort needed to derive and encode linguistic
rules that cover all the language
Speech has a high degree of variability (speaker,
pronunciation, spontaneity, ...)
Difficult to write a grammar for spoken language - many
people rarely speak grammatically
Data-driven approach
Construct simple models of speech which can be earned
from large amounts of data (thousands of hours of speech
recordings)
Solução: Métodos Estatísticos
 Redes Bayesianas
 Cadeias de Markov
Música
 O que é MIR?
Born ca. 1960’s in IR research
Major recent growth precipitated by advent of
networked digital music collections
Informed by multiple disciplines andliteratures
DEfinindo MIR
Music Information Retrieval (MIR) is the process of
searching for, and finding, music objects, or parts of
music objects, via a query framed musically and/or in
musical terms
 Music Objects: Scores, Parts, Recordings (WAV, MP3,
etc.), etc.
 Musically framed query: Singing, Humming, Keyboard,
Notation-based, MIDI file, Sound file, etc.
 Musical terms: Genre, Style, Tempo, etc.

Porquê MIR é complexo?
Multifaceted
O que é Oracle interMedia
 Produto que estende o Oracle9i
Adiciona características multimídia
Responsável por gerenciar, armazenar e recuperar
imagens, áudio, vídeo e texto
interMedia Text
– Serviço de procura em documentos
Oracle Visual Information Retrieval (VIR)
– Recuperação baseada em conteúdo
O que é Oracle interMedia
 Tanto dados multimídia quanto dados
tradicionais são suportados pelo banco de
dados
 Dados multimídia podem ser:
Compartilhados por múltiplas aplicações
Gerenciados sob controle da tecnologia relacional
Oferecidos em um servidor que suporta milhares de
usuários
interMedia Áudio, Imagem e
Vídeo
 O Oracle interMedia pode armazenar:
Binary Large Objects (BLOBs) – localmente no
banco de dados
File-Based Large objects (BFILEs) – arquivos do
sistema operacional, externos ao BD
URLs – armazenadas em um servidor HTTP
Dados de áudio e vídeo streaming – armazenados
em servidores especializados
Orientado a Objetos
 O interMedia usa tipos de objeto semelhantes a
classes Java e C++
ORDAudio, ORDImage, ORDVideo
 Instâncias dos objetos são compostas dos
dados da mídia e de metadados
 São exemplos desses metadados:
Tamanho, duração, formato ou tipo de compressão
 Objetos incluem métodos específicos da mídia
Extensível
 O interMedia foi programado para ser extensível
 Tipos de extensões possíveis:
Criar um novo tipo de objeto ou um tipo de objeto
composto baseado nos tipos já oferecidos
Plugins para outras fontes externas de mídia
Refazer métodos como o setProperties()
Suportar novos formatos de áudio, vídeo e imagem
Conceitos de Áudio
 O objeto ORDAudio consiste do campo de
dados onde o áudio é armazenado, mais uma
série de metadados
 O interMedia pode armazenar e recuperar
qualquer formato de áudio
Pode extrair automaticamente os metadados para
uma série de formatos populares
Metadados de Áudio
 Exemplos de metadados para áudio:
Formatos
Tipos de compressão
Número de canais
Taxa de execução
Tamanho de amostra
Duração
Conceitos de Vídeo
 O objeto ORDVideo é semelhante ao ORDAudio
Mudanças apenas nos metadados e nos métodos
de determinação automática
 Assim como para áudio, o ORDVideo extrai
metadados para os formatos mais populares
 Armazena e recupera qualquer tipo de vídeo
Metadados de Vídeo

Exemplos de metadados de vídeo:
Formatos
Tipos de compressão
Taxas de frame
Tamanho de frame
Resolução de frame
Tempo de duração
Número de cores
Taxa de transferência
Oracle Visual Information
Retrieval
 Extensão do Oracle8i destinada a fazer Content-
Based Retrieval e conversão de formatos de
imagem
 Consiste de um objeto que armazena ou
referencia a imagem e métodos que gerenciam
e fazem processamentos
 As imagens possuem uma série de atributos
específicos
Atributos de Imagem
 Largura
 Altura
 Tamanho
 Tipo ou formato do arquivo
 Tipo ou formato de compressão
 Tipo da imagem (monocromática, colorida, etc.)
 Tipo MIME
A classe ORDVir
 A classe ORDSYS.ORDVir é a base para as
funcionalidades do VIR
Criação de índices para a coluna de imagens da
tabela
Recuperação por conteúdo
 Composta da imagem, atributos de imagem,
métodos específicos e um atributo assinatura
Métodos do ORDVir
 Análise e Comparação
Analyse() – analisa a imagem e gera uma
assinatura (atributo signature), usada para a
realização de Content-Based Retrieval
VIRScore() e VIRSimilar() – comparam assinaturas
de duas imagens e determinam se elas são
similares
Métodos do ORDVir
 Extração de Propriedades
setProperties() – determina automaticamente as
propriedades características da imagem
Métodos “get” – retornam alguns atributos
individualmente. Ex: getHeight() e getWidth()
 Verificação de Propriedades
checkProperties() – verifica se as propriedades
armazenadas conferem com a imagem
Métodos do ORDVir
 Modificação
process() e processCopy() – usados para
conversão de formato, compressão e funções de
manipulação, como corte da imagem e scaling
 Movimentação
copy() e processCopy() – copiam imagens em outro
objeto ORDVir
Métodos do ORDVir
 Movimentação (cont.)
export(), import() e importFrom() – usados para
mover imagens entre bancos de dados
setSource() – ajusta ou altera informações sobre
imagens armazenadas externamente
 Exclusão
deleteContent() – remove os dados do atributo
BLOB
Fundamentos de Content-Based
Retrieval
 Solução para recuperação em grandes bancos
de dados de imagens
Podem ser usados dados inseridos manualmente,
mas com a adição e modificação de imagens em um
grande banco, a entrada manual de atributos é ruim
 Extração automática de características da
imagem para procura por comparação
Funcionamento do ContentBased Retrieval
 Um sistema de Content-Based Retrieval
processa as informações contidas em uma
imagem e cria uma abstração
 Operações de consulta operam nessa
abstração, ao invés de operar na imagem
 No VIR, essa abstração é a assinatura, sendo
armazenada em um vetor
Funcionamento do ContentBased Retrieval
 A assinatura contém informações a respeito dos
seguintes atributos visuais: cor global, cor local,
textura e estrutura
 As imagens do banco são recuperadas através
de uma imagem de comparação
 O score é a distância relativa entre as imagens
Quanto menor o score, mais semelhantes as
imagens
Cor Global e Cor Local
 Cor global refere-se à distribuição de cores em
toda a imagem, enquanto cor local considera a
distribuição de cores e a localização
 Comparativo:
Cor Global e Cor Local

Imagens semelhantes pela cor global (score = 0)

Imagens semelhantes pela cor local (score = 0,02461)
Textura e Estrutura

Imagens semelhantes pela textura (score = 4,1)

Imagens semelhantes pela estrutura (score = 0,61939)
Funcionamento da Busca
 Para a realização de consultas, atribui-se pesos
para cada um dos atributos visuais citados
 Scores são calculados para cada atributo, então
calcula-se a média ponderada
 Um limite (threshold) é atribuído
Imagens com score global abaixo do limite são
retornadas como semelhantes
Funcionamento da Busca
 Exemplo: considerando-se os scores e pesos
Scores – cor global = 15, cor local = 90, textura = 5
e estrutura = 50
Pesos - cor global = 0.1, cor local = 0.6, textura =
0.2 e estrutura = 0.1
Score Global: (0,1 x 15 + 0,6 x 90 + 0,2 x 5 + 0,1 x
50) = 61,5
 Invertendo-se os pesos de cor global e local:
(0,6 x 15 + 0,1 x 90 + 0,2 x 5 + 0,1 x 50) = 24
Exemplos de Código usando
Content-Based Retrieval
 Criação de uma tabela
CREATE TABLE stockphotos (photo_id NUMBER,
photographer VARCHAR2(64), annotation
VARCHAR2(255), photo ORDSYS.ORDVir);
Carregando Imagens na Tabela
DECLARE
image ORDSYS.ORDVIR;
IdNum NUMBER;
ctx RAW(4000) :=NULL;
BEGIN
IdNum := 1;
INSERT INTO stockphotos VALUES (IdNum, ’Janice Gray’,
’Beach scene, balls on water’,
ORDSYS.ORDVIR.init(’FILE’,’ORDVIRDIR’,’virdemo1.dat’));
SELECT photo INTO image FROM stockphotos WHERE photo_id
= IdNum FOR UPDATE;
image.import(ctx);
image.Analyze;
UPDATE stockphotos SET photo = image WHERE photo_id =
IdNum;
COMMIT;
Recuperação de uma Imagem
DECLARE
image ORDSYS.ORDVIR;
myid INTEGER :=1;
BEGIN
SELECT photo INTO image FROM
stockphotos
WHERE photo_id = myid;
END;
Recuperação de Imagens
Usando Imagem de Comparação
DECLARE
threshold NUMBER;
compare_sig RAW(2000);
compare_img ORDSYS.ORDVir;
photo_id NUMBER;
photographer VARCHAR2(64);
annotation VARCHAR2(255);
photo ORDSYS.ORDVIR;
CURSOR getphotos IS
SELECT photo_id, photographer, annotation, photo
FROM stockphotos T
WHERE
ORDSYS.VIRSimilar(T.photo.Signature,
compare_sig,
’globalcolor="0.2" localcolor="0.3" texture="0.1"
Recuperação de Imagens
Usando Imagem de Comparação
BEGIN
SELECT s.photo INTO compare_img FROM stockphotos
s
WHERE photo_id = 1;
compare_img.Analyze;
compare_sig:= compare_img.signature;
threshold := 25;
OPEN getphotos;
LOOP
FETCH getphotos INTO photo_id, photographer,
annotation, photo;
EXIT WHEN getphotos%NOTFOUND;
-- Nesse ponto exibe-se ou armazena-se os
resultados
END LOOP;
Criação de um Índice
CREATE INDEX imgindex ON
stockphotos(photo.signature)
INDEXTYPE IS ordsys.ordviridx
PARAMETERS(’ORDVIR_DATA_TABLESPACE =
tbs_1,ORDVIR_INDEX_TABLESPACE = tbs_2’);
Download

Características Multimídia do Oracle8i – Oracle interMedia