sosbrumadinho / ideas_and_requests

Repositório utilizado apenas para requisitar colaboradores/voluntários e receber sugestões e ideias da comunidade em geral. Não use nada nesse repositório além das issues!
MIT License
9 stars 2 forks source link

Image recognition - victim body #4

Open vaniaon opened 5 years ago

vaniaon commented 5 years ago

Based on a set of photos provided by victims relatives in this issue #30 and based on the picture of the body found, identify who is the possible victim.

I guess we already have external tools that do it, but since is not my area, you all can suggests how we can do it.

diegonoceli commented 5 years ago

isso requer muitas imagens da vitima para poder reconhecer, caso contrário a ia, ficará inútil irá reconhecer todos como qualquer pessoa. A base de fotos de cada pessoa deverá ser muto grande(250 pra mais).

vaniaon commented 5 years ago

@diegonoceli, entendo. Talvez se fossem informados perfil do facebook ou google photos da pessoa. Como é um crowndsourcing... amigos e familiares poderiam ajudar enviando fotos... Só uma ideia

pictos commented 5 years ago

Na verdade não é necessário tanta fotos assim... Existem serviços de reconhecimento facial bem robusto, com camada grátis, que podem ser usados (o Azure é um deles)... Acho que o maior problema para reconhecer o rosto da vítima, vai ser a conservação do cadáver.

A questão é, isso não é contra nenhuma lei? Se não for é uma ideia valida.

English:

In fact, you do not need a lot of photos to do this ... There are very robust facial recognition services with a free layer that can be used (the Azure is one of them) ... I think the biggest problem is to recognize the face of the victim, is related to the preservation of the corpse.

The question is, is this not against any law? If it is not is a valid idea.

vaniaon commented 5 years ago

@pictos I do not think it could be against the rules. Anyway, we can think about that the victims' relative can allowed that the software can use the images for it. Also, we can put a code of condute.

Maybe I did not explain it well, but we can use face recognizing and as well tatoo, scars, etc.

I need help from IA and CG groups for figure out how we can proceed it.

Thanks.

EuFreela commented 5 years ago

O reconhecimento poderia ser aplicado em dois fatores:

  1. Reconhecimento de um corpo humano: essa idéia é mais válida e poderia ser aclopada a um drone por meio das imagens obtidas dos razantes emitindo a sua lozalização. Os drones são interessanres por voarem em baixa altitude e por sua portabilidade em locais de difícil acesso incluindo o indoor. Isso ajudaria no papel de buscas de sobreviventes ou dos corpos sobre a lama. Além disso, por ser um aplicativo, qualquer pessoa poderia contribuir com a busca emitindo a lozalização do corpo - apesar de ser uma área de risco - sem muitos conhecimentos de operar com as coordenadas geográficas;

  2. Reconhecimento da vítima: creio eu que isso passaria por uma bateria de operações legais. Em outras palavras, esse aplicativo não poderia ser público, porém uso privado e da policia. Se caso o for, os aspectos legais passam a serem miimizados devido a quem irá acessar este tipo de informação.

A ideia é interessante.

vaniaon commented 5 years ago

@EuFreela Sim! A ideia é que a ferramenta de reconhecimento seria apenas para uso da defesa civil... não seria pública. A população ajudaria apenas enviando fotos das vítimas.

Achei suas ideias bem interessantes tb.

froquede commented 5 years ago

https://noticias.uol.com.br/ultimas-noticias/agencia-brasil/2019/01/29/identificacao-das-vitimas-de-brumadinho-sera-com-novas-metodologias.htm

JBezerra commented 5 years ago

It already exists libs that allow us to do face recognition with preloaded data but i dont really not if its gonna work by the fact that the faces could not be as "recognizable" as we need... agree?

pictos commented 5 years ago

@vaniaon, uma IA que reconheça corpo humano e/ou animais é mais útil, pois pode ser usada em drones como sugerido pelo @EuFreela . O @JBezerra pontou o mesmo que eu, o reconhecimento da vitima em si tem grandes chances de dar errado, por causa do estado do cadáver.

Como não tenho conhecimentos sólidos em Phyton, não posso me oferecer para fazer toda a implementação. Mas posso me oferecer para orientar na criação da IA. Como o tempo é curto sugiro usarmos um serviço já existente e confiável.

Se topar, por favor me notifique.

JBezerra commented 5 years ago

@pictos eu tou 100% dentro desse projeto, na criação da IA, e com Python, e com interface se for necessário, so que eu realmente nao sei por onde seguir com o projeto, o que ser feito, como podemos realizar isso?

vaniaon commented 5 years ago

@pictos, depois da notícia que o @roquef enviou, concordo com vc.

O contato que tenho com a defesa civil não é o de TI. Ele me passa o que está acontecendo e tento pensar em soluções por aqui. Estou tentando o contato com o pessoal responsável por isso lá. Eu até topo, mas corre-se o risco de não ser utilizado por eles.

De qquer maneira, termos uma solução pronta poderia ser útil no futuro.

luisalipio commented 5 years ago

Eu posso tentar criar algoritimos de reconhecimento pra imagens de video em câmeras, como por exemplo drones ou celulares, mas a questão do banco de dados eu precisaria de ajuda

JBezerra commented 5 years ago

existe uma lib em python que faz o face recognition, se fosse pra ser assim so teria que aplicar.

Ja pra reconhecer pessoas ou animais a gente so precisaria de OpenCV ou de bibliotecas ja pre-treinadas em detecção de objetos, que tambem temos, o negocio mesmo é aplicar.

Porque outra problematica pra essa com OpenCV é, como podemos treinar a rede de reconhecimento de objetos, pessoas, animais para reconhecer coberto de lama?

luisalipio commented 5 years ago

esse seria de fato o problema em si, pra ideia que pensei seria de fato usar o OpenCV, mas pensei na questão do Bando de Dados como comparativo mais eficaz, precisariamos de fotos das vitimas em diferentes posições e a parte mais dificil seria apostar nos detalhes, iria variar da qualidade de imagem recebida pra comparação.

pictos commented 5 years ago

@JBezerra @vaniaon , acredito que devemos começar por aqui https://www.customvision.ai

acredito que ela possa nos ajudar. É bem intuitivo o uso (estilo clique e arraste), todas as operações podem ser feitas pelo navegador e ela exporta 2 resultados:

O ideal agora é juntar a maior quantidade de imagem possível, de preferencia de animais e corpos cobertos de lama, nas mais diversas posições. Lembrando que não precisam ser fotos desse acidente!

Se essa ferramenta entregar resultados bons, vai nos poupar muito tempo.

JBezerra commented 5 years ago

Vou dar uma estudada na viabilidade da construção de um dataset eficiente pra esse caso e ainda hoje retorno

luisalipio commented 5 years ago

Houve algum posicionamento com relação ao envio de imagens pra fazer as comparações?

andrebassi commented 5 years ago

@JBezerra @pictos @vaniaon -> Se precisarem de ajuda com infra, me acionem.

rrbarioni commented 5 years ago

Há um algoritmo em Python para o reconhecimento de faces: ela recebe duas imagens de faces como entrada e retorna o grau de similaridade.

O código está em https://github.com/davidsandberg/facenet

Acredito que o modelo pré-treinado está disponível.

tabatagc commented 5 years ago

Gostaria de contribuir mas não tenho conhecimento em Python, sou C# Sênior e Angular. Estou a disposição. Se alguém tiver alguma ideia de como ajudar.

Com relação a reconhecimento do corpo concordo que não poderia ser público e por contas dos tempo e condições, não vai ser 100% assertivo.

pictos commented 5 years ago

@tabatagc vc tem conhecimento nas ferramentas do Azure?

pictos commented 5 years ago

@andrebassi vamos precisar sim, vc está no grupo do telegram?

Mpcsj commented 5 years ago

Pessoal, existe o dlib com HOG e Redes Neurais convolucionais, para fazer o classificador de corpos em barro, a gente poderia usar o próprio Google e o ImageNet pra montar o Dataset e daí, usar ferramentas tipo o IMGLab para marcar os corpos nas imagens de treinamento pra construir o classificador.Ou então fazer o classificador com o Keras + Tensorflow.

Mpcsj commented 5 years ago

Pensei em construir uma solução em Python com essas ferramentas de detecção rodando numa máquina mais robusta e usar os drones apenas para a captura de imagens e anexar metadados de localização pra depois que for feita a classificação das imagens, saber onde que a foto for tirada.

Mpcsj commented 5 years ago

O openCv entraria pra "desenhar" o local exato onde o corpo está dentro da imagem e as outras ferramentas fariam a detecção (poderia testar o OpenCv pra detecção também e usar a que tiver o melhor resultado).

pictos commented 5 years ago

@Mpcsj , obrigado pelo interesse! Inicialmente vamos tentar usar algum serviço já existente pra modelar a IA, pois usar um serviço já validado nos poupa tempo - caso dê certo. A proposta inicial é usarmos o https://www.customvision.ai (se quiser ir olhando a ferramenta). Essa ferramenta faz todo o treinamento na nuvem e oferece um endpoint para acessar a IA e tbm um modelo para anexar a aplicação e trabalhar offline.

Irei criar um repositório, ainda hoje, para isso.

Mpcsj commented 5 years ago

bacana, assim que criar o repositório , vou ajudar a montar o dataset então

victormaricato commented 5 years ago

Alguém acha interessante usar GAN pra tentar gerar uma imagem aproximada da vítima pré-desastre pra posteriormente avaliar com uma Tool tipo a customvision proposta pelo @pictos?

victormaricato commented 5 years ago

Assim como o problema da geolocalização de onde as vítimas foram encontradas, coloco aqui o questionamento sobre como podemos pegar dados fictícios pra validação da ferramenta. Dependendo com dados de Mariana? A parte de conseguir fotos das vítimas pré desastre acho que é mais fácil via o crowdsourcing que a @vaniaon falou.

pictos commented 5 years ago

@maricatovictor estava pensando em algo mais genérico... Se eu não entendi errado, nossa IA deve ser capaz de identificar corpos naquele mar de lama... Então nossa base dados precisa contar corpos na lama, sem precisar identificar de quem é o corpo. Acredito que não precisamos pensar na identificação da vitima, já que o cadáver irá para o IML de qualquer maneira.

pictos commented 5 years ago

@cacarrara vc poderia mover essa issue para este repo, por gentileza.

victormaricato commented 5 years ago

Ah sim, bem observado... da mesma forma acho que talvez a galera que tenha trabalhado em Mariana tenha algo a disponibilizar. Alguém tem informação sobre se os corpos estão ficando pela superfície da lama mesmo, ou se a maioria está sendo encontra abaixo da superfície?

luizblanes commented 5 years ago

Reconhecimento facial não vai ser efetivo visto que as features não estarão identificáveis pela lama. Algoritmos de face detect e body detect podem ser úteis sim. Mas para eficiência um dataset deve ser criado. Os algoritmos atuais usam até textura de roupa para detectar corpo. Isso vai gerar altíssimos índices de falso negativo. Viola Jones apesar de simples deve ser mais acertivo pra face detect, porém como a área eh grande eh importante fazer um pre processamento das imagens e ajustar para a resolução das imagens. Para Isso recomendo o uso de escala nas imagens. Imagens sem escala vão demandar muito poder de processamento. A altura dos drones e o ângulo de abertura da camera permite inferir a escala.

GuiUzeda commented 5 years ago

Prezados, eu acabei de mexer com um pipeline para retreinar as ultimas camadas do DeepLab para outra aplicação. Essa rede é voltada para segmentação semântica de imagens. Imagino que nesse caso seja bem adequado. Treinei uma rede utilizando apenas 100 imagens de treino e o resultado é surpreendentemente bom. Treinei apenas em meu Notebook utilziando uma GPU 1060, mas creio que podemos utilizar o Colab para futuros treinamentos.

Temos já alguma base de iamgens para anotar e colocar em treinamento?