• Nenhum resultado encontrado

A realiza¸c˜ao de experimentos ´e a fun¸c˜ao central da ferramenta.

Para iniciar um experimento o usu´ario deve selecionar quais descritores e quais bases de imagens ser˜ao usados (ver Figura 4.4(a)). Em seguida ele insere uma descri¸c˜ao textual sobre o experimento e escolhe quantas ou quais ser˜ao as imagens de consulta utilizadas para os c´alculos de distˆancia (ver Figura 4.4(b)). O usu´ario pode usar todas as imagens da base como imagens de consulta, usar um n´umero pr´e-definido de imagens ou enviar

4.3. Realiza¸c˜ao de experimentos 57

um arquivo contendo uma lista de imagens de consulta. Esta lista deve conter obrigato- riamente imagens que perten¸cam `a mesma base de imagens usada no experimento. Caso esteja sendo usada uma base de imagens classificada, a ferramenta exibe uma op¸c˜ao para que o usu´ario escolha se deseja que os valores de Precision × Recall sejam calculados ou n˜ao. As medidas de Precision × Recall s˜ao detalhadas na Se¸c˜ao 5.1.3.

(a) (b)

Figura 4.4: Telas de configura¸c˜ao do experimento a ser realizado.

A realiza¸c˜ao do experimento se divide basicamente em duas etapas: extra¸c˜ao de ca- racter´ısticas e c´alculos de distˆancia.

Assim que o usu´ario submete o formul´ario pela interface, um arquivo de configura¸c˜ao ´e gerado, um diret´orio respons´avel por armazenar resultados do experimento ´e criado no sistema de arquivos e ent˜ao o experimento se inicia.

Existem duas rotinas principais na ferramenta que s˜ao respons´aveis pelas duas etapas de um experimento. Quando o experimento se inicia, o c´odigo identificador do expe- rimento ´e passado para a rotina respons´avel pela extra¸c˜ao de caracter´ısticas. A rotina obt´em as configura¸c˜oes do experimento a partir do arquivo de configura¸c˜oes gerado previ- amente. Estas configura¸c˜oes incluem os descritores e as bases de imagens a serem usados, o caminho da lista de imagens de consulta, se for o caso, e a informa¸c˜ao sobre a gera¸c˜ao ou n˜ao de curvas de Precision × Recall. A rotina primeiramente cria uma lista em mem´oria contendo os caminhos no sistema de arquivos de todas as imagens das bases escolhidas. S˜ao indexadas apenas imagens nos formatos JPG, GIF, PNG e PPM. A partir de ent˜ao inicia-se o processo iterativo sobre as imagens. Para cada imagem, ´e verificado se o seu tipo de arquivo ´e PPM. Caso n˜ao seja, ´e gerada uma c´opia da imagem em formato PPM e esta ´e usada pelos descritores. Para cada descritor escolhido, ´e criado um subdiret´orio

58 Cap´ıtulo 4. Ferramenta para automatiza¸c˜ao de testes comparativos

dentro do diret´orio principal do experimento, que ser´a respons´avel por armazenar os ve- tores de caracter´ısticas do descritor. Ap´os isso, ´e feita a chamada `a fun¸c˜ao Extraction do descritor. A fun¸c˜ao ´e executada trˆes vezes e o tempo destas trˆes execu¸c˜oes ´e medido. Uma vari´avel guarda a m´edia aritm´etica de tempo destas trˆes execu¸c˜oes. Este valor ´e tamb´em guardado para o c´alculo da m´edia final e do desvio padr˜ao dos tempos de extra¸c˜ao do descritor. Assim que o descritor atual termina de extrair o vetor de caracter´ısticas da imagem atual, passa-se para o pr´oximo descritor, at´e que todos os descritores do experi- mento tenham feito o mesmo. Ap´os isso, a c´opia da imagem no formato PPM ´e exclu´ıda, caso tenha sido necess´aria, e passa-se para a pr´oxima imagem.

Assim que todas as imagens tiverem sido processadas por todos os descritores, a rotina calcula a m´edia de tempo de extra¸c˜ao de cada descritor, assim como o desvio padr˜ao. Estes valores s˜ao inseridos no banco de dados. Al´em disso, a rotina mant´em um arquivo de log que guarda cada passo de execu¸c˜ao. Este arquivo de log tamb´em fica dentro do diret´orio do experimento no sistema de arquivos.

Ao se terminar a extra¸c˜ao de caracter´ısticas, a rotina respons´avel pelos c´alculos de distˆancia ´e iniciada. Seu parˆametro de entrada, assim como o da rotina de extra¸c˜ao, ´e o c´odigo identificador do experimento. A rotina faz a leitura do arquivo de configura¸c˜ao e obt´em os dados do experimento. Inicia-se o processo iterativo. Para cada descritor do experimento, cria-se uma lista em mem´oria com todos os vetores de caracter´ısticas gerados pelo descritor atual durante a rotina de extra¸c˜ao. Se o usu´ario tiver escolhido um n´umero X de imagens de consulta, ´e criada uma lista de imagens de consulta que cont´em apenas as X primeiras entradas da lista de vetores de caracter´ısticas criada no in´ıcio. Caso contr´ario, a mesma lista completa de vetores de caracter´ısticas ser´a usada como a lista de consultas. A rotina ent˜ao percorre cada imagem da lista de imagens de consulta e a compara com cada imagem da lista completa de vetores. A compara¸c˜ao ´e feita pela fun¸c˜ao Distance do plugin. Esta fun¸c˜ao ´e chamada trˆes vezes para cada compara¸c˜ao e o tempo destas trˆes execu¸c˜oes ´e calculado. Uma vari´avel guarda a m´edia aritm´etica destas trˆes execu¸c˜oes. Ao final dos c´alculos de distˆancia, a m´edia e desvio padr˜ao dos tempos de cada c´alculo de distˆancia s˜ao computados e inseridos no banco de dados. Todos os passos do processo s˜ao registrados no arquivo de log.

Cada distˆancia calculada ´e armazenada no banco de dados. A entidade Distance mostrada no diagrama Entidade-Relacionamento da Figura 4.8 ´e usada para representar as distˆancias de cada experimento. As informa¸c˜oes consideradas pela entidade Distance tamb´em s˜ao usadas para a exibi¸c˜ao dos resultados de consultas dos descritores. Mais detalhes do banco de dados da ferramenta na Se¸c˜ao 4.5.

A ferramenta sempre calcula os tempos de extra¸c˜ao e os tempos de distˆancia de todos os experimentos realizados.

Documentos relacionados