Mapa mental
Haar Cascade
Conteúdo do mapa
Haar Cascade
(1) Conseguir img negativas (sem o objeto)
- http://image-net.org/
- (Utilizar o) Downloader.py
- Salvar as img negativas em um diretório
(2) Criar uma lista de imagens negativas
- (Utiliza o) CreateImagesList.py
- Gera um arquivo de saida com o dir. de imagens negativas em cada linha "bg.txt"
- (Utiliza o) CreateImagesList.py
(3) Aquisição de imagens positivas
- (3.0) Recortar de imagens reais
- Conseguir uma grande quantidade de imagens com o objeto
- (Utilizar o) Downloader.py
- Salvar as imagens pos. em um diretório
- Utiliza o opencv_annotation para informar onde os objetos estão em casa imagem
- Gera como arquivo de saida o annotations.txt
- annotations.txt é o mesmo arquivo que o images.lst criado pelo CreateSamples.py
- Gera como arquivo de saida o annotations.txt
- (Utilizar o) Downloader.py
- Conseguir uma grande quantidade de imagens com o objeto
- (3.1) Gerar imagens positivas com a ajuda do OpenCV
- (3.2) Conseguir imagens que não tenha o objeto (pode ser as negativas)
- Salva as imagens que nal contém o obj. em um diretório
- Utiliza o CreateImagesList.py para listar as imagens do diretório
- Gera o arquivo "bg.txt"
- Utiliza o CreateImagesList.py para listar as imagens do diretório
- Salva as imagens que nal contém o obj. em um diretório
- (3.2) Conseguir imagens que contenham o somente objeto
- Salva as imagens que somente contenham o objeto em um diretório
- Importante que as imagens tenham proporções semelhantes
- Utiliza o CreateImagesList.py para listar as imagens do diretório
- Gera o arquivo "pos.txt"
- Salva as imagens que somente contenham o objeto em um diretório
- Utiliza o CreateSamples.py para criar uma lista de imagens positivas
- python CreateSamples.py --vec vetorpos.vec* --pos pos.txt --bg bg.txt --num 500 --bgcolor* 0 --bgthresh* 80 --inv* --randinv* --out-image-folder* ./saida/ --maxidev* 40 --maxzangle* 0.50 --maxxangle* 1.10 --maxyangle* 1.10 --width* 15 --height* 25
- Gera o arquivo .vec se o argumento --vec for informado
- Gera uma pasta com as imagens positivas criadas e o "images.lst" caso o argumento --out-image-folder tiver sido informado
- images.lst é o mesmo arquivo que o annotations.txt criado pelo opencv_annotations
- (3.2) Conseguir imagens que não tenha o objeto (pode ser as negativas)
- (3.0) Recortar de imagens reais
(4) Conseguir o arquivo .vec
- opencv_createsamples -info (images.lst ou annotations.txt) -num (quantidade de imgs para colocar no arquivo) -w 22 -h 80 -vec arquivoDeSaida.vec
- Gera o ArquivoDeSaida.vec
- opencv_createsamples -info (images.lst ou annotations.txt) -num (quantidade de imgs para colocar no arquivo) -w 22 -h 80 -vec arquivoDeSaida.vec
(5) Treinar o Classificador
- Para isso utiliza o opencv_traincascade ele precisa de um conjunto de imagens negativas, e o arquivo .vec
- Código de exemplo opencv_traincascade -data classifier -vec samples.vec -bg bg.txt -numStages 14 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000 -numNeg 2000 -w 22 -h 30 -mode ALL -precalcValBufSize 1024 -precalcIdxBufSize 1024
- Gera uma pasta no --data com o .xml de cada estágio e o final chamado Cascade.xml
- Para isso utiliza o opencv_traincascade ele precisa de um conjunto de imagens negativas, e o arquivo .vec
(6) Escolher melhores valores para o minNeighbors e scaleFactor
- Para isso, utilizar o FindSFandMinNeigh.py, ele necessita de um arquivo que descreve um conjunto de imagens positivas (pos.txt ou annotations.txt) e um classificador treinado.
- O console onde a aplicação foi executada irá apresentar como saida quais são os melhores valores para o MinNeighbors e o ScaleFactor
- Para isso, utilizar o FindSFandMinNeigh.py, ele necessita de um arquivo que descreve um conjunto de imagens positivas (pos.txt ou annotations.txt) e um classificador treinado.
(8) Encontrar os objetos em imagens e videos
- Utiliza o ObjectFinder.py. Para isso será necessário que descreva os classificadores com seus parâmetros. Caso queira pocessar um conjunto de imagens, insira a pasta onde elas estão senão a webcam padrão será utilizada.
- Exibição das imagens processadas.
- Utiliza o ObjectFinder.py. Para isso será necessário que descreva os classificadores com seus parâmetros. Caso queira pocessar um conjunto de imagens, insira a pasta onde elas estão senão a webcam padrão será utilizada.
(7) Cria um arquivo que descreva os classificadores
- Como visto na seção 6 do tutorial, será necessário descrever em um arquivo formatado a localização dos classificadores e os parâmetros que cada um utilizará.
- Classificadores.csv (não precisa ter esse nome ou extensão, apenas estar separado por virgula e conter o cabeçalho, como no tutorial.)
- Como visto na seção 6 do tutorial, será necessário descrever em um arquivo formatado a localização dos classificadores e os parâmetros que cada um utilizará.
Informações
- Descrição
- Mapa Mental sobre Haar Cascade, criado por Thiago Alves em 30-12-2016.
- Criado por
- Thiago Alves
- Visualizações
- 7
- Avaliação