Advertisement
MarcelloGrechi

Captcha And Neural Nets Flow

Apr 30th, 2012
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. == Motivação ==
  2. Existem consultas que exigem o preenchimento de um [http://pt.wikipedia.org/wiki/CAPTCHA Catpcha] para serem executadas, nestes casos, fazemos uso de [http://pt.wikipedia.org/wiki/Rede_neural Redes Neurais] para conseguirmos quebrar estes Captchas de modo a fazer desnecessária a presença de alguem digitando estes Captchas em cada consulta.
  3.  
  4. Mais sobre Redes neurais,e exemplos de Captchas, podem ser encontrados para Download neste [http://www.mediafire.com/?mwahh86oj0tc4ad Link].
  5.  
  6. == Descrevendo o Passo a Passo ==
  7. Existem passos que devem ser realizados, apenas uma vez, antes do processo de usar de fato a rede para fazer a quebra dos Captchas. Estes passos são conhecidos como o processo de "treinamento" da rede que será utilizada para cada Consulta. Uma rede diferente é treinada para cada Fonte de consulta que precise de uma, elas são usadas para cada aplicação específica.
  8.  
  9. Os passos a serem seguidos são:
  10.  
  11. 1 - Salvar imagens diversas (uma grande amostragem), de Catpchas da fonte de consulta a ser usada. Mil imagens é um número bom.
  12.  
  13. 2 - Tendo as imagens baixadas, temos que realizar um tratamento em cima delas (cada conjunto de captchas precisa de um tratamento diferente) de modo a conseguirmos extrair as letras/números desta imagem.
  14.  
  15. 3 - Com as letras extraídas, o próximo passo é "dizer para a rede" oque significa cada uma destas letras manualmente. Nós usamos dois softwares que trabalham de maneira diferente para tal tarefa (mais em "Ferramentas de Apoio").
  16.  
  17. 4 - Tendo feito o reconhecimento manual das Letras, agora devemos submeter os arquivos gerados no passo anterior para um terceiro software, que realiza o treinamento da rede. Este é um processo automático mas requer uma máquina que não esteja sendo utilizada, já que o processamento nesta etapa chega a níveis muito altos.
  18.  
  19. == Processo de Tratamento de Imagem ==
  20. Esta etapa do processo é basicamente "tentativa e erro", não existe uma sequência fixa de tratamentos a serem aplicados que funcione para todos os Catpchas de todas as Fontes de consultas diferentes.
  21. Para começar, um exemplo de Captcha deve ser aberto com o Image Processing Lab, onde você deverá aplicar os filtros e ver os resultados. O seu objetivo aqui, é conseguir deixar as letras todas brancas, e o fundo da imagem preto. Feito isso, você deverá replicar estes passos do tratamento, em código usando a Biblioteca interna "NeuralNetLib" ou a oferecida pela AForge.net .
  22.  
  23. Fazendo assim, é possível gerar um arquivo binário representando cada letra, onde os pixels "ligados" ( brancos, ou seja, referente as letras e não ao fundo da imagem ), são representados pelo número 1, analogamente os pixels "desligados", que representam o fundo, são representados por Zero. Um Exemplo de Arquivo contendo Letras e suas representações binárias pode ser encontrado [http://www.mediafire.com/?36hfee7r7ztxob7 aqui] .
  24.  
  25. Cada Linha deste arquivo possui 401 caracteres, sendo 400 digitos binários ( visto que a imagem de cada letra possuia 20 x 20 Pixels de dimensão) e no final de linha, é colocado a letra que representa este conjunto de pixels. Este arquivo é gerado automaticamente depois de usarmos as ferramentas de identificação manual de letras desenvolvida internamente ("ClassifyLetters").
  26.  
  27. == Ferramentas de Apoio ==
  28. Como ferramentas de apoio, como está documentado na [http://www.mediafire.com/?mwahh86oj0tc4ad exibição de slides deste tema], nós fazemos uso atualmente de:
  29.  
  30. 1 - Para processamento de imagens, o [http://www.aforgenet.com/projects/iplab/ Image Processing Lab], da AForge é usado para simular em cima de uma imagem, os passos que devem ser realizados em código, mais tarde, para conseguirmos extrair as letras de um Captcha.
  31.  
  32. 2 - Para uso dos métodos de processamento de imagens do Image Processing Lab, nós fazemos uso da [http://www.aforgenet.com/news/2011.12.12.releasing_framework_2.2.3.html Biblioteca do AForge] (dll) juntamente com a "NeuralNetLib" (dll) desenvolvida por nós, que faz uso dos métodos presentes no framework da AForge.
  33.  
  34. 3 - Links para as Ferramentas internas de identificação de imagens e treinamento da rede serão colocados em breve, juntamente com a documentação de cada uma.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement