Detecção de imagens
Por: Felipe Santos • 12/11/2019 • Trabalho acadêmico • 3.579 Palavras (15 Páginas) • 674 Visualizações
[pic 1]
CIÊNCIA DA COMPUTAÇÃO (CC)
“DESENVOLVIMENTO DE SISTEMA PARA DETECÇÃO DE OBJETOS”
Área de desenvolvimento de software
por
Adonias Lima de Gouveia,
Vinicius Eduardo,
Victor Ledier Morel,
Guilherme Pinheiro de Oliveira
Ricardo Piantola
Orientador
Santana de Parnaíba
2019
[pic 2]
CIÊNCIA DA COMPUTAÇÃO (CC)
“DESENVOLVIMENTO DE SISTEMA PARA DETECÇÃO DE OBJETOS”
Área de desenvolvimento de software
por
Adonias Lima de Gouveia,
Vinicius Eduardo,
Victor Ledier Morel,
Guilherme Pinheiro de Oliveira
Ricardo Piantola
Orientador
Relatório apresentado à Banca Examinadora do
Trabalho de conclusão do Curso de Ciência da
Computação para análise e aprovação.
Santana de Parnaíba
2019
Desenvolvedores deste trabalho
Adonias Lima de Gouveia D129GG0
Vinicius Eduardo P. da Silva C92ADG8
Victor Ledier Morel N10073-7
Guilherme Pinheiro de Oliveira D11DAE-0
SUMÁRIO
- INTRODUÇÃO..................................................................................................5
- DESENVOLVIMENTO.......................................................................................6
- Levantamento de Requisitos...................................................................6
- Fluxograma da Aplicação........................................................................7
- Preparando o ambiente de desenvolvimento..........................................8
- Linguagem de Programação..............................................................8
- Sistema Operacional.......................................................................10
- Computador Utilizado no Desenvolvimento.....................................10
- Entrada da Imagem...............................................................................11
- Detecção do Objeto...............................................................................12
- Treinamento..........................................................................................12
- Compilando imglab com CMAKE.....................................................13
- Criando arquivo .xml com imglab.....................................................14
- Treinamento com Support Vector Machine (SVM)...........................14
- Armazenamento das Imagens..............................................................15
- Testando a Detecção de objetos...........................................................15
- CONCLUSÃO..................................................................................................19
- REFERENCIAS BIBLIOGRAFICAS...............................................................20
1. INTRODUÇÃO
A evolução tecnológica está permitindo por meio de desenvolvimento de software, grandes avanços no quesito autonomia. Inicialmente tínhamos o que era de se esperar, a capacidade de uma máquina pensar e trabalhar de uma forma aproximada a de um ser humano. Todo software trabalha com base em uma entrada de dados, sejam dados para comandos de movimentação, processamento ou imagens. Em áreas como detecção facial e detecção de objetos, as imagens são as chaves necessárias para o processamento e execução de atividades por meio da classificação das características resultando na identificação de uma pessoa ou na identificação de características de um objeto.
Com a identificação de objetos é possível expandir a capacidade cognitiva e autônoma de uma máquina. Envolvendo exemplos reais, veículos autônomos se movimentam identificando a faixa de rolamento, pessoas e outros veículos ao seu redor. Também é possível proteger uma nação utilizando a detecção de objetos, reconhecer ameaças como mísseis, pode preservar a vida dos cidadãos de bem.
Fazer com que o computador detecte e classifique um objeto, é algo trabalhoso que detém de cálculos matemáticos através de algoritmos e tratamentos em imagens. É necessário criar uma estrutura para que a aplicação na qual executará a detecção possa realizar o procedimento obtendo resultados positivos, para isso, será necessário criar uma base de dados de um ou mais objetos para que seja possível qualificar o objeto posto à teste.
A estrutura conterá bibliotecas disponíveis através do open source para realizar a detecção, que será alterada por alguns motivos e um deles é evidente, nem todas as imagens podem ser reconhecidas ou algum objeto pode deixar ser identificado ou até mesmo usar testes comparado uma imagem real a uma imagem em forma desenho pode resultar em erros, em vez de detectar o real, reconheça apenas o desenho. Aprimorando as bibliotecas é possível alcançar o resultado, detectar e reconhecer qualquer objeto real em uma imagem.
2. DESENVOLVIMENTO
2.1. Levantamento de Requisitos
- Entrada de arquivos de imagem pelo usuário;
- 2 (dois) tipos de entrada:
- Entrada Única: Apenas 1 (uma) imagem;
- Entrada em Massa: 2 (duas) ou mais imagens.
- Implementar aprendizado de máquina para cada nova imagem carregada para que ela seja usada como parâmetro para as classificações posteriores;
- Em caso de erro no processo, o processo retornará ao estado inicial;
- O resultado da classificação deve ficar disponível para integração com outras aplicações;
- A aplicação deve ser capaz de detectar objetos nos mais diversos fundos:
- Água;
- Vegetação;
- Vias rodoviárias;
- Etc.
- A aplicação deve apresentar as informações de compatibilidade entre as imagens, por exemplo: porcentagem de precisão;
- Entrada dos parâmetros de treinamento do algoritmo via arquivo com extensão “.xml”.
2.2. Fluxograma da Aplicação
[pic 3]
[pic 4]
- Entrada Imagem: carregamento dos arquivos de imagem.
- Armaze. IMG: armazenamento da imagem para classificação subsequente.
- Menu: Momento de escolher qual tipo de carregamento de imagem: Único ou Em Massa.
- Divisão Base de Dados: Divide a base de dados em dois com indexação.
- Algoritmo BS e Algoritmo IS: Ordenação e agrupamento das imagens.
- Threads: Ordenação e Classificação das imagens.
- SVM: Algoritmo de classificação entre imagens de treino e as de entrada.
2.3. Preparando o ambiente de desenvolvimento
2.3.1 Linguagem de Programação
O processamento de dados é sem dúvida o primeiro aspecto utilizado para escolher a linguagem com maior desemprenho e codificação ágil. Portanto, para decidir qual seria a melhor linguagem de programação para este projeto realizamos alguns testes para comparar as 3 (três) linguagens importantes e ativas no mercado: Python, Java e C# (C Sharp).
...