Garagista Bruno Dias Rosa

 

Garagista e veterinária Tiemi

 

Unindo os conhecimentos em veterinária da garagista Tiemi com os conhecimentos de programação do garagista Bruno, uma importante ferramenta está surgindo: um software para contagem de leucócitos que virá a acrescentar grande produtividade para os laboratórios veterinários, de pesquisa e, quem sabe, de humanos.


Atualmente, devido ao alto custo e à falta de confiabilidade dos resultados gerados pelos sistemas disponíveis, a maioria dos laboratórios requerem a contagem manual dessas células para inferir valores que auxiliam a determinação do perfil imunológico do indivíduo. Tais células são detectáveis através da visualização microscópica de lâminas com sangue corado.

 

Exemplo de imagem a ser processada (leucócitos em meio a dezenas de hemácias)

O software que está sendo desenvolvido com o apoio do Laboratório de Garagem, se utilizará de reconhecimento de imagens para encontrar as células de interesse e fornecer a contagem automaticamente, eliminando tempo precioso desperdiçado, além de falhas humanas e tendenciosidade no caso do pesquisador, aumentando produtividade e precisão aos resultados obtidos.

O Lab de Garagem deseja sucesso ao empreendimento!

 

Exibições: 2848

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de José Gustavo Abreu Murta em 22 fevereiro 2014 às 11:41

Projeto super interessante!

Afinal, conseguiram algum progresso?

Comentário de Bruno em 15 março 2011 às 16:20

Fabio

 

A tecnologia já está quase definida junto com a especificação e parte do código para o projeto.

 

Apenas os algorítimos de reconhecimento precisam ser definidos.

 

O tempo máximo é recomendado que seja menor do que uma pessoa lendo, mas não é limitante para o projeto.

 

Tolerância a erro também tem que ser menor do que o erro humano, ainda não definido, mas com certeza menos suscetível a cansaço, dor de cabeça entre outras coisas que atrapalham no caso de leitura manual.

 

Sobre as classificações e imagens veja na wikipedia.

http://pt.wikipedia.org/wiki/Leuc%C3%B3cito

 

Abraços

Comentário de Fabio Martins em 15 março 2011 às 15:42
Olá Adriana! Quando mais informações melhor! :)
Acho que pra definir a tecnologia é necessário definir algumas coisas que não conhecemos da área:
- Qual o tempo maximo pra ser viável usar um recurso automatizado? <3minutos? <1 minuto? <10 segundos?
- Qual deve ser a tolerancia a erros? Vai existir. Sempre! até 1%? 2%? 5%?
- O que muda para classificar entre Monócito Linfócito Eosinófilo Macrófago e Neutrófilo? Tamanho? Coloração? Forma fisica? Qual o desvio do padrão dessas caracteristicas? São limiares bem definidos?

Se vc puder disponibilizar algumas varias imagens de todas variações possíveis de classificação, tbm ajuda bastante! de repente falamos em localizar o leucócito por circulo, mas de repente o raio o leucócito pode mudar caso vc altere o "zoom" do microscópio. De repente falamos em localizar por cor, mas um mesmo tipo de leucócito pode reagir de uma maneira diferente...etc etc...

[[]]ś
Fabio Martins
Comentário de ADRIANA TIEMI AKAMINE em 15 março 2011 às 15:19

Olá pessoal,

 

Talvez caiba aqui um comentário para tentar explicar melhor como fazemos a leitura das lâminas, para justificar as necessidades do software em questão, pois li o comentário do Fábio ("O tempo é menor que de uma pessoa preparando as laminas de amostras e colocando no microscopio") e acho que faltou essa informação....

 

As lâminas são preparadas, obrigatoriamente, "todas de uma vez só"... Fazemos todas as lâminas e depois as lemos, uma a uma, no microscópio. Cada lâmina demora aproximadamente 3 a 5 minutos para ser lida (depende da qualidade da lâmina e do leitor - pesquisador treinado); lemos 100 células de cada lâmina e fazemos o  cálculo de porcentagem. A idéia é de diminuir este tempo de leitura, pois, no meu caso, cada experimento gera cerca de 30 lâminas, e no laboratório onde trabalho, temos experimento quase todos os dias.

 

Não sei se ajuda para novas idéias virem... rsrs

 

Obrigada a todos os que tiveram idéias...

 

Abraço!

Comentário de Guilherme em 9 março 2011 às 0:15
Hmmm...
acho que o filtro pode lhe dar maior rapidez no processo,e voçe poderia muito bem programar para a contagem dos que ja filtrados forem azuis ou verdes....
Galera esta discussão merece um "joinha" muito da Horaaa...
Vamos criar um topico para processamento de imagens.....vou devorar a opencv quando tiver mais tempo e tentar postar algo util..heheheheh
Comentário de Fabio Martins em 8 março 2011 às 23:47

Hm...não entendi.

O modo automatizado vai ser para uma produção em escala industrial? Não sei qual a necessidade, mas acredito que 5 segundos por frame é algo aplicável...O tempo é menor que de uma pessoa preparando as laminas de amostras e colocando no microscopio, mas se ela não pode esperar, vc pode ir jogando as imagens em filas e ir processando a contagem em offline...

 

Fora isso, vc pode usar algum método de reconhecimento de padrão, como o viola-jones. Este é o melhor método de detecção de padrões que existe atualmente. Pesquise por filtros haar-like que certamente estes dois caras serão citados. É o modo usado para detectar faces no orkut/facebook, mas é aplicavel a qualquer padrão, desde que treinado para isso. Nesse caso, vc precisará juntar um monte de leucócitos individuais e normalizados.

 

[]'s

Fabio Martins

 

Comentário de Bruno em 8 março 2011 às 23:32

Blz Fabio.

 

Muito legal a idéia, mas 5 a 10 segundos é muito tempo, quem conta as células vai passando no microscópio muito rápido, quase que formando um filme, o método de contagem precisa ser muito otimizado.

 

Mas acredito que com essas ideias que vc deu e outras mais será possível otimizar bastante.

 

Obrigado

 

Abraços.

Comentário de Fabio Martins em 8 março 2011 às 21:54

Opa, blz?

 

"Tempo" é dificil de determinar. Mas basicamente, vai depender da resolução da imagem e a "quantidade de leucocitos" (na verdade, a quantidade de bordas detectadas)

 

A transformada de hough é basicamente "criar circulos de raios iquais em todas as bordas detectadas" e depois criar uma valor de corte da soma de onde o perimetro destes circulos coincidiram, ou seja, detectaria o centro aproximado do leucocito. 

Então intuitivamente o tempo seria, no PIOR caso (a imagem inteira ser borda, ou criar um circulo em CADA pixel da imagem) assim:

t = n*X*Y*360*N

n = tempo para desenhar UM circulo.

X = largura da imagem

Y = altura da imagem

360 = graus

N = um fator entre os graus.

 

Isso usando um pc simples de um só núcleo. Mas existem outras estratégias se vc implementar sua propria função de transformada de hough, como pular pixels, ou dividir a imagem e paralelizar seu algoritmo....

 

Entretanto, acho que pra essa aplicação, vc nem precisa se preocupar com isso. Chuto entre 5 e 10 segundos pra uma imagem de uns 640x480, ou seja, MUITO mais rapido de que contar manualmente.

 

Uma outro modo bastante simples que pensei é de contar isso simplesmente segmentando a imagem e contando pixels aleatórios da imagem, vc sabendo quanto cabe de "pixels" dentro de cada leococito, vc divide o valor total de pixels de leococitos pela quantidade de pixels aproximado que existem dentro de UM leococito. Sacou?

 

Vai ter uma margem de erro obvio, assim como qualquer outro modo automatizado, mas acho que pra aplicação deve funcionar perfeitamente. Vale uns testes pra ver qual modo é melhor....

 

Alias, esta ultima metodologia que falei é uma teoria matematica novi(ssima) pra calculo de áreas geométricas complexas (como territórios geograficos)...só esqueci como que ela se chama... =S

 

[[]]'s

 

 

Comentário de Bruno em 8 março 2011 às 21:25

Eai Fabio

 

Eu to começando a ver as documentações do OpenCV.

 

Quanto tempo você acha que leva para aplicar esse processamento em uma imagem ?

 

Abraços

 

Comentário de Fabio Martins em 7 março 2011 às 22:40

Oi, acho que posso dar minha contribuição neste assunto:

 

Acho que isso é facilmente resolvido, e com menos complexidade usando este passos:

-Detecção de bordas com algoritmo de Canny.

-Transformada de Hough para detecção de circulos (ja que o raio parece aproximadamente iquais)

-Segmentação de cores usando limiares para selecionar o tipo de leucócito.

 

A parte que tem maior custo computacional é a transformada de hough, mas para o tipo de aplicação, completamente viável.

 

Para facilitar o desenvolvimento avaliem o framework de visão computacional opensource chamado openCV!

Que é uma mão na roda pra Visão computacional. Com 10 linhas de programação faz isso que sugeri!

 

Abraços...

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço