Banco de Dados Multimídia 5. Vídeo Prof. Cláudio Baptista.
Transcript of Banco de Dados Multimídia 5. Vídeo Prof. Cláudio Baptista.
Banco de Dados Multimídia5. Vídeo
Banco de Dados Multimídia5. Vídeo
Prof. Cláudio Baptista
Video- IntroduçãoVideo- 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çãoVideo - 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çãoVideo - Motivação
Porquê agora?Porquê agora?
Porquê agora?Porquê agora?
Imagem & VideoImagem & 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 25HzMobile video telephony is 8-15 Hz
Video DataVideo Data
CompressãoCompressão
CompressãoCompressão
Representação de VídeoRepresentaçã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ídeoRepresentação de Vídeo
Representação de VídeoRepresentaçã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ídeoRepresentação de Vídeo
Características de vídeoCaracterí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 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 elenunca viu antes
3. Usuário pode ter apenas uma vaga idéia do que ele está procurando.
BD Vídeo BD VídeoMeta: 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 objetose descrevendo uma cadeia completa de ações.- Segmento: é um grupo de cenas, não necessariamenteadjacentes, ligados por uma linha comum de ações.
Categoria: NewsData: 10/12/96Duração: 15 minFonte: GloboNum. Estórias: MKeywords: C. Grande,Micarande, Turismo, festa ...
Segmento index: 1Título: Folia nos blocosNum. Shots: KFrame inicial: 00000Frame final: 02000Evento: narração, entrevistas, diálogos, ...
Shot index: 1Frame inicial: 00000Frame final: 00300Camera: stillNível de audio: médioNum. Pessoas: 10Keywords: dança, festaanimação, ...
clip
...Segmento 1 Segmento M
...Shot 1 Shot K
...Frame 00000 Frame 00300
BD VídeoBD Vídeo
• Passo 2: semânticaUso 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 MovimentoAná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 VideoModelo 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 VideoCaracterizaçã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 VideoOperadores 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 videoOperadores de atributos de video
v_length:Video -> Integer frame_rate: Video -> Integer size: Video -> Integer resolution: Video -> String compression: Video -> String
Video SegmentationVideo Segmentation
Segmentação de Vídeo: O que é importante?Segmentação de Vídeo: O que é importante?
Segmentação de Vídeo: O que é importante?Segmentação de Vídeo: O que é importante?
Problema SemânticoProblema Semântico
Video SegmentationVideo Segmentation
Video SegmentationVideo Segmentation
Video SegmentationVideo Segmentation
Semantic Indexing OverviewSemantic Indexing Overview
Projetos: InformediaProjetos: Informedia
Projetos: IBM MarvelProjetos: IBM Marvel
ÁudioÁudio
Prof. Cláudio Baptista
ÁudioÁudio
Processamento de FalaReconhecimento de FalaSíntese de Fala
Reconhecimento de Música
Reconhecimento de FalaReconhecimento 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ústicasCaracterísticas Ácústicas
Process the speech waveform to obtain arepresentation that emphasizes those aspects of
the speech signal most relevant to ASR
Dificuldades no Reconhecimento da falaDificuldades no Reconhecimento da fala
Speech recognition is difficult due to several sourcesv of variation
Size - number of words in the vocabulary, perpelexityStyle - 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ísticoConhecimento linguístico One could construct a speech recognizer using
linguistic knowledgeAcoustic phonetic rules to relate spectrogram representations of sounds to phonemesBase pronunciations of words stored in a dictionaryMorphological rules to construct inflected formsGrammatical rules to model syntaxSemantic and pragmatic constraints
Very difficult to take account of the variability of spoken language with such approaches
Machine LearningMachine Learning Intense effort needed to derive and encode linguistic
rules that cover all the languageSpeech has a high degree of variability (speaker, pronunciation, spontaneity, ...)Difficult to write a grammar for spoken language - many people rarely speak grammaticallyData-driven approachConstruct simple models of speech which can be earned from large amounts of data (thousands of hours of speech recordings)
Solução: Métodos EstatísticosSolução: Métodos Estatísticos
Redes Bayesianas Cadeias de Markov
MúsicaMúsica
O que é MIR?Born ca. 1960’s in IR researchMajor recent growth precipitated by advent of networked digital music collectionsInformed by multiple disciplines andliteratures
DEfinindo MIRDEfinindo 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?Porquê MIR é complexo?
MultifacetedMultifaceted
O que é Oracle interMediaO que é Oracle interMedia
Produto que estende o Oracle9iAdiciona características multimídiaResponsável por gerenciar, armazenar e recuperar imagens, áudio, vídeo e textointerMedia Text– Serviço de procura em documentos
Oracle Visual Information Retrieval (VIR)– Recuperação baseada em conteúdo
O que é Oracle interMediaO 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çõesGerenciados sob controle da tecnologia relacionalOferecidos em um servidor que suporta milhares de usuários
interMedia Áudio, Imagem e VídeointerMedia Áudio, Imagem e Vídeo
O Oracle interMedia pode armazenar:Binary Large Objects (BLOBs) – localmente no banco de dadosFile-Based Large objects (BFILEs) – arquivos do sistema operacional, externos ao BDURLs – armazenadas em um servidor HTTPDados de áudio e vídeo streaming – armazenados em servidores especializados
Orientado a ObjetosOrientado 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ívelExtensí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á oferecidosPlugins para outras fontes externas de mídiaRefazer métodos como o setProperties()Suportar novos formatos de áudio, vídeo e imagem
Conceitos de ÁudioConceitos 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 ÁudioMetadados de Áudio
Exemplos de metadados para áudio:FormatosTipos de compressãoNúmero de canaisTaxa de execuçãoTamanho de amostraDuração
Conceitos de VídeoConceitos de Vídeo
O objeto ORDVideo é semelhante ao ORDAudioMudanç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ídeoMetadados de Vídeo Exemplos de metadados de vídeo:
FormatosTipos de compressãoTaxas de frameTamanho de frameResolução de frameTempo de duraçãoNúmero de coresTaxa de transferência
Oracle Visual Information RetrievalOracle 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 ImagemAtributos 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 ORDVirA classe ORDVir
A classe ORDSYS.ORDVir é a base para as funcionalidades do VIR
Criação de índices para a coluna de imagens da tabelaRecuperação por conteúdo
Composta da imagem, atributos de imagem, métodos específicos e um atributo assinatura
Métodos do ORDVirMétodos do ORDVir
Análise e ComparaçãoAnalyse() – analisa a imagem e gera uma assinatura (atributo signature), usada para a realização de Content-Based RetrievalVIRScore() e VIRSimilar() – comparam assinaturas de duas imagens e determinam se elas são similares
Métodos do ORDVirMétodos do ORDVir
Extração de PropriedadessetProperties() – determina automaticamente as propriedades características da imagemMétodos “get” – retornam alguns atributos individualmente. Ex: getHeight() e getWidth()
Verificação de PropriedadescheckProperties() – verifica se as propriedades armazenadas conferem com a imagem
Métodos do ORDVirMétodos do ORDVir
Modificaçãoprocess() e processCopy() – usados para conversão de formato, compressão e funções de manipulação, como corte da imagem e scaling
Movimentaçãocopy() e processCopy() – copiam imagens em outro objeto ORDVir
Métodos do ORDVirMétodos do ORDVir
Movimentação (cont.)export(), import() e importFrom() – usados para mover imagens entre bancos de dadossetSource() – ajusta ou altera informações sobre imagens armazenadas externamente
ExclusãodeleteContent() – remove os dados do atributo BLOB
Fundamentos de Content-Based RetrievalFundamentos 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 Content-Based RetrievalFuncionamento do Content-Based 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 Content-Based RetrievalFuncionamento do Content-Based 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 imagensQuanto menor o score, mais semelhantes as imagens
Cor Global e Cor LocalCor 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 LocalCor Global e Cor Local Imagens semelhantes pela cor global (score = 0)
Imagens semelhantes pela cor local (score = 0,02461)
Textura e Estrutura Textura e Estrutura Imagens semelhantes pela textura (score = 4,1)
Imagens semelhantes pela estrutura (score = 0,61939)
Funcionamento da BuscaFuncionamento 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ídoImagens com score global abaixo do limite são retornadas como semelhantes
Funcionamento da BuscaFuncionamento da Busca Exemplo: considerando-se os scores e pesos
Scores – cor global = 15, cor local = 90, textura = 5 e estrutura = 50Pesos - cor global = 0.1, cor local = 0.6, textura = 0.2 e estrutura = 0.1Score 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
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 Carregando Imagens na Tabela DECLAREimage ORDSYS.ORDVIR;IdNum NUMBER;ctx RAW(4000) :=NULL;BEGINIdNum := 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;END;
Recuperação de uma ImagemRecuperaçã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
Recuperação de Imagens Usando Imagem de Comparação DECLAREthreshold NUMBER;compare_sig RAW(2000);compare_img ORDSYS.ORDVir;photo_id NUMBER;photographer VARCHAR2(64);annotation VARCHAR2(255);photo ORDSYS.ORDVIR; CURSOR getphotos ISSELECT photo_id, photographer, annotation, photo FROM
stockphotos TWHERE ORDSYS.VIRSimilar(T.photo.Signature, compare_sig,’globalcolor="0.2" localcolor="0.3" texture="0.1"structure="0.4"’, threshold)=1 AND photo_id <> 1;
Recuperação de Imagens Usando Imagem de Comparação
Recuperação de Imagens Usando Imagem de ComparaçãoBEGINSELECT s.photo INTO compare_img FROM stockphotos sWHERE photo_id = 1;compare_img.Analyze;compare_sig:= compare_img.signature;threshold := 25;OPEN getphotos;LOOPFETCH getphotos INTO photo_id, photographer, annotation,
photo;EXIT WHEN getphotos%NOTFOUND;-- Nesse ponto exibe-se ou armazena-se os resultadosEND LOOP;CLOSE getphotos;END;
Criação de um ÍndiceCriaçã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’);