Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS UNIVERSITÁRIO DO ARAGUAIA INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA
CURSO DE CIÊNCIA DA COMPUTAÇÃO
MICROSCOPYSCANNER – UM KIT DESENVOLVIDO COM
ARDUINO, IMPRESSÃO 3D E PROCESSAMENTO DIGITAL
DE IMAGENS PARA ESCANEAR E CONSTRUIR UM
PANORAMA DE IMAGEM DE MICROSCOPIA
RENATO DONIZETE PERALTA
BARRA DO GARÇAS – MT
2018
UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS UNIVERSITÁRIO DO ARAGUAIA INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA
CURSO DE CIÊNCIA DA COMPUTAÇÃO
MICROSCOPYSCANNER – UM KIT DESENVOLVIDO COM
ARDUINO, IMPRESSÃO 3D E PROCESSAMENTO DIGITAL
DE IMAGENS PARA ESCANEAR E CONSTRUIR UM
PANORAMA DE IMAGEM DE MICROSCOPIA
RENATO DONIZETE PERALTA
Monografia apresentada ao Instituto de Ciências
Exatas e da Terra do Campus Universitário do
Araguaia, da Universidade Federal de Mato Grosso,
como requisito parcial para conclusão do Curso de
Graduação em Bacharelado em Ciência da
Computação.
Orientador: Prof. Dr. Robson da Silva Lopes
BARRA DO GARÇAS – MT
2018
DEDICATÓRIA
À minha mãe Dirce Keiko Tutihashi e ao meu pai Paulo Ricardo
Monteiro Peralta, pelo apoio, motivação e todas as outras formas
de incentivo.
AGRADECIMENTOS
Aos meus pais Paulo Ricardo Monteiro Peralta e Dirce Keiko Tutihashi que
sempre me motivaram e incentivaram, sem medir esforços, a estudar e correr atrás dos
meus sonhos.
Aos meus irmãos Eduardo, Paula e Pedro por estarem comigo nessa trajetória.
Aos professores do curso de Ciência da Computação, em especial ao meu
orientador professor Robson da Silva Lopes por todo o conhecimento e experiência
adquiridos nessa etapa. Também quero agradecer a todos os outros professores que
participaram nesses anos de aprendizagem.
Ao professor José Marques Pessoa pela contribuição da impressora 3D, materiais
e pela ajuda durante o desenvolvimento do aplicativo mobile.
Ao professor Ivairton Monteiro Santos por todo o conhecimento transmitido
durante os dois anos de pesquisa realizada com ele.
À professora Lívia Lopes Azevedo por toda a ajuda e amparo durante a escrita
deste trabalho.
A todos os membros do laboratório de Imunologia da Relação Materno Infantil e
do Laboratório de Cronoimunomodulação Imuno, em especial aos professores Eduardo
Luzía França, Danny Laura Gomes Fagundes e ao técnico do laboratório José Nivaldo da
Silva por toda a ajuda e pelo material emprestado durante o desenvolvimento deste
trabalho.
Aos meus amigos Arthur Sales, Eduarde Brandão, Iann Rodrigues, Igor
Rodrigues, Johan Vilela, Junior Alves, Michael Jordan e Oséias Ayres por toda
colaboração no desenvolvimento deste trabalho e pelas experiências nos últimos anos.
Em especial ao Oséias, pela contribuição direta neste trabalho.
RESUMO
Utilizado para visualizar minúsculas estruturas, o microscópio é um equipamento
essencial para qualquer laboratório, todavia é observado que os usuários desse
equipamento laboratorial sofrem de desconfortos e também estão sujeitos ao
desenvolvimento de problemas de saúde ocasionados pelo seu uso prolongado. Diante
disso, equipamentos para escanear lâminas de microscopia foram desenvolvidos e são
vendidos, no entanto por valores muitos altos. Alguns trabalhos buscaram sanar tal
necessidade por meio da criação de sistemas de baixo custo, utilizando impressão 3D,
Arduino para controlar o microscópio e webcam ou câmeras adaptadas aos microscópios
para capturar as imagens. Diante disso, este trabalho propõe o desenvolvimento de um kit
chamado “MicroscopyScanner” para capturar imagens geradas por microscópio,
varrendo a lâmina por meio de um equipamento desenvolvido com tecnologia Arduino e
impressão 3D, e processando digitalmente as imagens para gerar uma única imagem. O
sistema é composto por dois softwares, sendo um aplicativo móvel para plataforma
Android desenvolvido com o framework Lazarus Android Mobile Wizard, responsável
por capturar as imagens na ocular do microscópio e controlar de forma semiautomática,
ou automática, a mesa do microscópio e um software, para computador, que realiza a
construção panorâmica de imagens, a partir de amostra de lâminas, que utiliza métodos
de processamento digital de imagens da biblioteca OpenCV. Com o sistema
desenvolvido, o usuário pode observar a amostra da tela do celular, comandar a
movimentação da lâmina nos sentidos X e Y, capturar imagens percorrendo uma área
especificada e construir a imagem panorâmica da amostra. O manuseio do microscópio
com o auxílio desse sistema, torna-se uma tarefa menos cansativa, em que, ao invés de
analisar a amostra através da ocular do microscópio e realizando a movimentação manual
da lâmina, pode-se registrar e construir um panorama, de forma automática, da região de
interesse, o que permite a posterior observação da amostra em mídia digital em uma tela
de computador, ou também utilizá-la em algum software de auxílio a diagnóstico através
de imagens. Outra característica atraente deste sistema, é o seu baixo custo para aquisição,
com o preço em torno de 450 dólares, na época de conclusão deste trabalho, considerando
que scanners de lâminas profissionais custam mais de 53900,00 dolares.
PALAVRAS-CHAVE: microscópio óptico, arduino, OpenCV, problemas de saúde,
impressora 3D.
ABSTRACT
Used to view tiny structures, the microscope is an essential equipment for any laboratory,
however it is observed that the users of this laboratory equipment suffer from discomforts
and are also subject to the development health problems occasioned by their prolonged
use. Faced with this, equipment for scanning microscopy slides have been developed and
are sold, however they are expensive. Some works have sought to remedy such a need by
creating low cost systems using 3D printing, Arduino to control the microscope and
webcam or cameras adapted to the microscopes to capture the images. Faced with this,
this paper proposes the development of a kit called "MicroscopyScanner" to capture
images generated by a microscope, sweeping the slide through an equipment developed
with Arduino technology and 3D printing, and digitally processing the images to generate
a single image. The system consists of two softwares, a mobile application for Android
platform developed with the framework Lazarus Android Mobile Wizard, responsible for
capturing the images in the eyepiece of the microscope and to control in a semi-automatic,
or automatic, way the microscope table and a computer software, that realizes the
panoramic construction of images, from sample of slides, that uses methods of digital
processing of images of the library OpenCV. With the system developed, the user can
observe the sample of the screen of the cell phone, command the movement of the blade
in the X and Y directions, capture images traversing a specified area and construct the
panoramic image of the sample. The Handling the microscope with the help of this system
becomes a less tedious task, in which, instead of analyzing the sample through the
eyepiece of the microscope and performing the manual movement of the slide, a
panorama can be recorded and constructed, automatically, of the region of interest, which
allows the subsequent observation of the sample on digital media on a computer screen,
or also use it in some software for diagnostic aid through images. Another attractive
feature of this system is its low acquisition cost, priced at around $ 450, at the time of
completion of this work, whereas professional blade scanners cost more than $ 53,900.
KEY WORDS: Optical Microscope, Arduino, OpenCV, Health Problems, 3D Printer.
LISTA DE ILUSTRAÇÕES
Figura 1 – Principais componentes de um microscópio óptico. Imagem adaptada de
(“Componentes de um microscópio”, [s.d.]). ................................................................. 15
Figura 2 – Placa Arduino modelo UNO (imagem adaptada de (“Arduino”, [s.d.])). ..... 20
Figura 3 – Microcomputador Raspberry Pi 3 modelo B (imagem adaptada de (“Raspberry
Pi”, [s.d.])). ..................................................................................................................... 20
Figura 4 – Exemplo de comunicação provida pelo protocolo JNI. ................................ 24
Figura 5 – Módulos que compõe o sistema MicroscopyScanner e comunicação entre eles.
........................................................................................................................................ 27
Figura 6 – Diagrama de atividades do MSM. ................................................................. 28
Figura 7 – Tela inicial do aplicativo. .............................................................................. 29
Figura 8 – Tela de movimentação semiautomática. ....................................................... 30
Figura 9 – Comunicação entre a aplicação MSM e o módulo MM. .............................. 31
Figura 10 – Caminho percorrido durante a varredura, o ponto inicial é marcado pela letra
I e o ponto final pela letra F. ........................................................................................... 32
Figura 11 – Diagrama de fluxo do sistema proposto em (JUAN; GWUN, 2010). ........ 34
Figura 12 – Suporte adaptador de celular para telescópio, binóculo e microscópios. a)
Suporte adaptador e b) Suporte adaptador com celular e fixado em um microscópio ... 36
Figura 13 – (a) Imagem vista no ocular do microscópio. (b) Ilustração do foco sobre a
lâmina. (c) Varredura da lâmina sem sobreposição de área. (d) Varredura da lâmina com
sobreposição. .................................................................................................................. 37
Figura 14 – Pré-processamento aplicado nas imagens da base de dados. (a) imagem
original, (b) região de interesse na imagem, (c) área selecionada para aplicar o recorte,
(d) resultado da aplicação do recorte. ............................................................................. 39
Figura 15 – Segmentos de dois resultados que apresentam falhas, obtidos com
configurações de recorte diferentes. ............................................................................... 40
Figura 16 – Tela inicial do software MSS. ..................................................................... 41
Figura 17 – Apresentação do resultado da construção panorâmica da amostra. ............ 41
Figura 18 – Motor de passo modelo 5V 28BYJ-48. ....................................................... 43
Figura 19 – Shield bluetooth. .......................................................................................... 43
Figura 20 – Esquema do circuito do sistema de movimentação. (a) Motores de passo; (b)
Microcontroladoras dos motores; (c) Shield bluetooth; (d) Placa Arduino e (e)
Protoboard. .................................................................................................................... 44
Figura 21 – Pares de imagens registradas com diferentes deslocamentos entre capturas.
........................................................................................................................................ 47
Figura 22 – Componentes do suporte. ............................................................................ 48
Figura 23 - Suporte dos motores do MM acoplado ao microscópio. ............................. 49
Figura 24 – Acoplamento do celular e do MM ao microscópio. .................................... 50
Figura 25 - Imagem da base de dados, utilizada para construção panorâmica. .............. 51
Figura 26 - Imagem panorâmica da amostra rotacionada em 90 graus para a esquerda. 52
Figura 27 – Imagem panorâmica recortada para melhorar a apresentação ao usuário. .. 53
Figura 28 – Zoom digital na área marcada na imagem da Figura 27. ............................ 54
LISTA DE ABREVIATURAS E SIGLAS
CSS Cascading Style Sheets
GUI Graphical User Interface (Interface Gráfica do Usuário)
HTML5 Hypertext Markup Language, Versão 5
IDE Integrated Development Environment
JNI Java Native Interface
KNN K-Nearest Neighbor
LAMW Lazarus Android Module Wizard
MM Microscopy Mover
MSM Microscopy Scanner Mobile
MSS Microscopy Scanner Stitcher
NDK Native Development Kit
PDI Processamento Digital de Imagens
RANSAC RANdom Sample Consensus
SDK Software Development Kit
SIFT Scale Invariant Feature Transform
SO Sistema Operacional
SURF SpeedUP Robust Features
XML Extensible Markup Language
SUMÁRIO
1 INTRODUÇÃO .................................................................................................... 12
2 INSTRUMENTAÇÃO TEÓRICA ...................................................................... 14
2.1 MICROSCÓPIO ÓPTICO ..................................................................................... 14
2.2 PLATAFORMAS DE AUTOMAÇÃO ..................................................................... 19
2.3 IMPRESSÃO 3D ................................................................................................ 21
2.4 FRAMEWORK DE DESENVOLVIMENTO ANDROID ............................................. 22
2.4.1 Lazarus Android Module Wizard (LAMW) ................................................ 23
2.5 PROCESSAMENTO DIGITAL DE IMAGENS .......................................................... 25
2.5.1 OpenCV ...................................................................................................... 25
2.5.2 ImageJ ........................................................................................................ 26
3 O MICROSCOPYSCANNER ............................................................................. 27
3.1 ARQUITETURA DO SISTEMA ............................................................................. 27
3.2 APLICATIVO MÓVEL - MICROSCOPY SCANNER MOBILE (MSM) ........................ 27
3.3 MÓDULO DE CONSTRUÇÃO PANORÂMICA DA LÂMINA .................................... 33
3.3.1 Imagens panorâmicas ................................................................................. 33
3.3.2 Algoritmo Surf ............................................................................................ 34
3.3.3 Método Bundle Adjustment ......................................................................... 35
3.3.4 Algoritmo Blending .................................................................................... 35
3.3.5 Classe stitching_detalhed da biblioteca OpenCV ...................................... 35
3.3.6 Módulo de construção de imagens panorâmicas – Microscopy Scanner
Stitcher (MSS) ......................................................................................................... 36
3.4 Módulo de automação do microscópio – Microscopy Mover (MM).............. 42
3.4.1 Equipamentos utilizados no circuito do MM .............................................. 42
3.4.2 Definição dos parâmetros de funcionamento do MM ................................ 45
3.4.3 Suporte dos motores ................................................................................... 48
3.5 FUNCIONAMENTO E USO DO SISTEMA ............................................................. 50
4 RESULTADOS E DISCUSSÃO ......................................................................... 51
5 CONSIDERAÇÕES FINAIS ............................................................................... 56
6 TRABALHOS FUTUROS ................................................................................... 57
REFERÊNCIAS ........................................................................................................... 58
12
1 INTRODUÇÃO
O microscópio óptico é um equipamento laboratorial muito importante na ciência, sendo
muito utilizado em laboratórios, uma vez que possibilita ao utilizador observar amostras não
visíveis a olho nu (PRATAVIEIRA, 2014). No entanto, os procedimentos de análises utilizando
esse equipamento demandam de horas consecutivas para serem concluídas, isso expõe os
profissionais da área ao desenvolvimento de doenças crônicas e problemas de visão
(AGRAWAL et al., 2017).
Esses problemas podem ser minimizados com o uso de um escanner de lâminas,
permitindo aos usuários de microscópios ópticos o uso automático desse equipamento
laboratorial e a não necessidade de observar a amostra por ele. Assim os riscos de
desenvolvimento de problemas de saúdes ocasionados pelo seu uso prolongado e incorreto são
reduzidos. De acordo com Bandeira (2005), salvar amostras de lâminas de esfregaço sanguíneo
em mídia digital é uma alternativa muito importante, uma vez que esse tipo de material
laboratorial pode se deteriorar com o passar do tempo.
Empresas do mercado de equipamentos laboratoriais produzem escanners de lâminas,
equipamentos esses que são capazes de registrar a amostra em mídia digital, porém possuem
alto custo de aquisição. Alguns laboratórios de pesquisas de instituições de ensino possuem
esse tipo de equipamento, no entanto, é necessário agendar horário e em alguns casos, pagar
pela sua utilização.
Existem pesquisas que buscam desenvolver equipamentos que visam auxiliar os
utilizadores de microscópio óptico em sua rotina, como os trabalhos de (Ma et al., 2007) e
(SEMENISHCHEV; VORONIN; MARCHUK, 2017) que propõem sistemas automáticos para
captura e construção panorâmica da amostra, apenas o primeiro não possui um subsistema de
motorização do microscópio. No entanto, a ferramenta utilizada para a captura das imagens é a
câmera do próprio microscópio, que em muitas vezes, é um equipamento que possui valor de
aquisição elevado. Outro trabalho que visa auxiliar os utilizadores de microscópio óptico em
suas rotinas é o proposto por (OLIVEIRA et al., 2017) que apresenta um sistema baseado em
dispositivos móveis da plataforma Android, capaz de identificar o parasito da malária a partir
de imagens salvas ou capturadas pelo próprio dispositivo.
Dado as dificuldades de acesso a equipamentos laboratoriais capazes de construir uma
imagem digital de lâminas de microscopia e as limitações contidas nos trabalhos relacionados,
13
o presente trabalho tem como objetivo a criação de um sistema para utilização semiautomática
ou totalmente automática de um microscópio óptico. Este é dividido em três subsistemas, o
primeiro corresponde a um aplicativo móvel para plataforma Android que possui a função de
capturar imagens gerada pela ocular do microscópio, sendo também capaz de controlar o
segundo subsistema, que por sua vez é responsável pela movimentação automática da lâmina
com uso de motores de passo controlados por plataforma de automação Arduino. Por último, o
subsistema de construção panorâmica das imagens coletadas pela aplicativo móvel.
Para o desenvolvimento do aplicativo móvel foi utilizado o framework Lazarus Android
Module Wizard, que provê ao desenvolvedor maior facilidade e abstração dos métodos
implementados em linguagem nativa do dispositivo. A estrutura física, responsável pelo suporte
dos motores e fixação na platina do microscópio, utiliza tecnologia de impressão 3D. O
subsistema de construção panorâmica da amostra utiliza a classe Stitching_detalhed da
biblioteca OpenCV.
O sistema apresentado neste trabalho mostra-se eficaz em seu propósito, apesar de
possuir algumas limitações, como a regulagem automática do foco, ainda é capaz de auxiliar o
utilizador do microscópio óptico em sua rotina de trabalho, permitindo a estes, a diminuição
dos riscos de surgimento de problemas de saúde associados ao uso prolongado e errôneo do
microscópio óptico. E também permite que a amostra seja salva em mídia digital, evitando
perdas por deterioração das lâminas.
Este trabalho está estruturado da seguinte maneira. O capítulo 2 apresenta a
instrumentação teórica utilizada para o desenvolvimento do sistema proposto, o capítulo 3
discute a sua arquitetura, os detalhes do desenvolvimento, também apresenta os subsistemas
que constituem o sistema, além de demonstrar a interação entre eles, o capítulo 4 apresenta os
resultados preliminares obtidos, o capítulo 0 conclui esse trabalho. Por último, o capítulo 6
descreve os trabalhos futuros.
14
2 INSTRUMENTAÇÃO TEÓRICA
Neste capítulo é realizada uma breve explanação sobre os temas e conceitos que
norteiam e fornecem base para o desenvolvimento do presente trabalho. Em um primeiro
momento é apresentado o microscópio óptico, suas vantagens para ciência e em seguida os
problemas de saúdes ocasionados pelo seu uso prolongado. Na sequência também são
apresentados equipamentos e sistemas que podem ser utilizados para automatizar o uso desse
equipamento laboratorial e os materiais e métodos utilizados no desenvolvimento do sistema
proposto neste trabalho.
2.1 MICROSCÓPIO ÓPTICO
Utilizado para visualizar minúsculas estruturas, o microscópio é um equipamento
essencial para qualquer laboratório. Pratavieira (2014) ressalta que o microscópio óptico é um
importante instrumento na ciência, pois este possibilita a visualização de estruturas impossíveis
de observar a olho nu.
A criação do microscópio é tida como um marco para a ciência, uma vez que possibilitou
aumentar a campo de visão dos pesquisadores. Essa invenção é creditada aos holandeses Hans
e Zacharias Jansen, em 1591, uma vez que foram os primeiros a compor um microscópio por
meio da combinação de duas lentes no mesmo tubo (PRATAVIEIRA, 2014).
Em 1667, Antony van Leeuwenhoek realizou experimentos com microscópios, criados
por ele mesmo, que provia um aumento da percepção visual de até 300 vezes. Com esse
instrumento, Antony constatou a existência de espermatozoides, estudou os glóbulos vermelhos
do sangue e diferentes tipos de insetos (BRADBURY, 1967).
Atualmente, o tipo de microscópio mais utilizado é o óptico. Este funciona com um
conjunto de lentes que ampliam a imagem que é transpassada por um feixe de luz. A Figura 1
apresenta um modelo de microscópio óptico e seus principais componentes, e na sequência, são
descritas as suas respectivas funções.
15
Figura 1 – Principais componentes de um microscópio óptico. Imagem adaptada de (“Componentes de um
microscópio”, [s.d.]).
Objetivas: As objetivas são lentes sobrepostas, na maioria das vezes três ou quatro, que
apresentam grande capacidade ampliação. Por exemplo, o microscópio Nikon Eclipse E200
possui quatro lentes de diferentes ampliações, 4X, 10X, 40X e 100X.
Revólver: A estrutura giratória em que esse conjunto de lentes é anexado é chamado de
revólver.
Oculares: Encaixada na extremidade superior do tubo, cuja função e aumentar a
imagem formada pela objetiva. O aumento fornecido pela ocular está, geralmente, gravado nela.
Por exemplo: 5x, 8x, 10x, etc.
Platina: Também conhecida como mesa, é o componente responsável pelo
posicionamento da lâmina para a análise, este item pode ser levantado ou abaixado para o ajuste
do foco, esse procedimento é realizado através do uso dos botões macro e micrométricos. O
16
botão macrométrico permite o ajuste grosso do foco, já o micrométrico é responsável pelo ajuste
fino. A pinça, também conhecida como grampo, é um importante item que compõe a platina,
possui a função de fixar a lâmina neste componente.
Charriot: Esse componente permite movimentar a lâmina nas direções vertical e
horizontal. Nesse modelo de microscópio em questão, ao se realizar a movimentação da lâmina
na direção horizontal, a amostra move-se sobre a platina, porém na direção vertical, a platina é
movimentada junto com a lâmina.
Condensador: responsável por orientar e espalhar regularmente os raios luminosos
emitidos pela fonte de luz sobre o campo de visão do microscópio.
Fonte de luz: Nos microscópios modernos é uma lâmpada, mas em microscópios mais
antigos era um espelho que refletia a luz.
O microscópio é uma ferramenta importante na rotina de profissionais da área da saúde,
as tarefas realizadas nesse equipamento podem levar horas para serem concluídas. O uso
prolongado sem interrupções do microscópio é associado ao desenvolvimento de doenças
crônicas. A dificuldade de acomodação, os movimentos oculares repetitivos durante o processo
de triagem das lâminas e a centralização do olho podem ocasionar desconforto, cansaço visual
e fadiga ocular (JAIN; SHETTY, 2014).
A postura inapropriada durante o uso do microscópio para observar as amostras na
ocular faz com que as pessoas se posicionem o corpo para frente, assim afastando-se do encosto
da cadeira, de forma que a cabeça e as costas se inclinem além dos limites admissíveis,
ocasionando dores nas costas e no pescoço. Os profissionais de laboratórios estão sujeitos à
sofrerem lesões por ficarem sentados durante longos períodos de tempo e muitas vezes, de
forma errada durante o procedimento de análise das lâminas (AGRAWAL et al., 2017).
Gupta et al. (2015) ressalta que o uso prolongado desse equipamento laboratorial pode
levar ao desenvolvimento de lesões musculoesqueléticas. Um exemplo é a síndrome de dor
crônica, essas dores surgem no pescoço, ombros e nas costas, sendo que podem levar à graves
danos permanentes.
Para facilitar a captura e análise de imagens de microscopia, diversas empresas
especialistas do ramo da microscopia desenvolveram e vendem scanner de lâminas. Esses
equipamentos são capazes de registrar em mídia digital uma ou várias amostras de uma única
vez, o que auxilia e poupa tempo dos profissionais e pesquisadores utilizadores de
microscópios. No entanto, esses equipamentos possuem elevado valor tanto para aquisição
17
quanto manutenção, o que impossibilita a compra dele por pequenos grupos de pesquisas ou
pequenos laboratórios de análises clínicas. Instituições maiores, a exemplo da Universidade de
São Paulo (USP), Universidade Federal de São Carlos (UFSCAR) e Universidade Federal de
Minas Gerais (UFMG) adquiriram scanners de lâmina e disponibilizam para a comunidade
científica por meio de agendamento.
A UFSCAR disponibiliza um Scanner de Lâminas Histológicas, além de outros
equipamentos, para pesquisadores de São Paulo, do Brasil, da América Latina e de outros
países. O equipamento dessa instituição fica à disposição das instituições de pesquisa e
pesquisadores em geral, todavia é necessário realizar o agendamento de horário pelo site para
utilizar um dos equipamentos disponíveis, sendo cobrado uma taxa de R$ 10,0 por lâmina
digitalizada. O modelo do Scanner disponibilizado por ela é o Panoramic Desk, esse
equipamento utiliza a uma objetiva de 40X para digitalizar a lâmina, ele produz uma imagem
de toda a lâmina sem distorção.
Dado o alto custo para a aquisição e manutenção de um scanner de lâmina profissional, têm
sido desenvolvidas pesquisas que buscam reduzir o preço de equipamentos que realizam a tarefa
de escanear lâminas. Ma et al. (2007) propõe o uso do Autostitch1 para construção panorâmica
de imagens de microscópios e Semenishchev et al. (2017) também apresenta um trabalho que
visa ajudar os utilizadores de microscópios. Esses dois trabalhos propõem sistemas automáticos
para coleta das imagens, construção panorâmica da amostra, e apenas o segundo possui sistema
de movimentação, (MA et al., 2007) utiliza um microscópio equipado com sistema de
movimentação motorizada. No entanto, do dois são dependentes de um microscópio equipado
com câmera, que também é equipamento que possui valor elevado.
Com uma função diferente, mas ainda com o objetivo de auxiliar os utilizadores de
microscópios, Soares et al. (2013) propõe um sistema totalmente automático para contabilizar
os glóbulos brancos2 de um esfregaço sanguíneo3, para prover uma ajuda eficiente aos exames
que utilizam microscópio. A estrutura do sistema é composta de três subsistemas: de captura de
imagens, de movimentação da lâmina no microscópio e por último, de processamento das
imagens. O subsistema de movimentação (ou tração, como dito pelo autor) é responsável por
realizar os movimentos nas direções X e Y da lâmina, para coletar as imagens sem a necessidade
1 Software não-livre de construção de imagens panorâmicas, desenvolvido por Matthew Brown e David G. Lowe,
da University of British Columbia. 2 Células de defesa produzidas pelo organismo para proteger o corpo humano de elementos estranhos, como
bactérias ou vírus, que possam representar alguma ameaça. 3 Técnica que possibilita a separação das células da amostra sobre uma lâmina de microscopia.
18
de um profissional realizar essa tarefa manualmente. O autor utiliza um dispositivo webcam
para compor o primeiro subsistema, correspondente à coleta das imagens. A captura das
imagens e movimentação dos motores são controlados por um microcomputador.
Bandeira (2005) também propôs um trabalho de contagem automática de células de sangue por
meio de processamento de imagens. O processo de coleta de imagens deste trabalho é composto
por um dispositivo webcam que é acoplada na ocular do microscópio e um software responsável
por orientar e adquirir as imagens. Seu sistema possui um controle de posicionamento das
aquisições, porém a movimentação da lâmina é um procedimento manual.
Ainda segundo Bandeira (2005), a contagem de reticulócitos1, por meio de análise de imagens,
possui baixo custo e proporciona o aumento do número de exames realizados pelo laboratório.
Outro recurso importante desse sistema, é que ele armazena a amostra em formato digital para
posterior análise ou consulta, pois esse tipo de amostra de sangue (esfregaço sanguíneo) se
deteriora com o tempo.
Uma limitação dos trabalhos de Bandeira (2005) e Soares et al. (2013) é que eles são
dependentes da utilização de uma webcam como ferramenta para capturar as imagens, apesar
desse equipamento poder ser utilizado para outras finalidades, ainda assim torna-se
razoavelmente caro adquiri-lo para tal finalidade, uma vez que webcam de boa qualidade possui
valor de aquisição elevado. Uma alternativa para isso, é utilizar celulares para a coleta de
imagens, uma vez que esses dispositivos móveis possuem boa qualidade de hardware da câmera
e esse recurso é acessível a qualquer pessoa que possua o aparelho.
Oliveira et al. (2017) apresenta um sistema automático baseado em dispositivos móveis
para detecção da malária, sendo que seu algoritmo é capaz de detectar o parasito Plasmodium
falciparum. Sua aplicação é destinada à plataforma Android e o seu o objetivo foi de prover o
diagnóstico rápido e preciso. O autor propõe dois aplicativos, o primeiro identifica o parasito
em tempo real, com o celular acoplado na ocular do microscópio. O segundo aplicativo também
é destinado à detecção da malária, porém, ao invés de coletar as imagens diretamente do
microscópio por meio da câmera, ele possui o recurso de carregar uma imagem presente no
dispositivo. No entanto, o processo de coleta das imagens não é automatizado, o sistema
depende de um usuário para movimentar a lâmina e capturar as imagens.
Dados os problemas de saúde ocasionados pelo uso prolongado do microscópio óptico
e algumas maneiras para auxiliar sua utilização, este trabalho tem como propósito automatizar
1 Reticulócitos são hemácias imaturas produzidas pela medula óssea.
19
o procedimento de manuseio desse equipamento laboratorial. Para construir um sistema com
tal objetivo, pode-se utilizar algumas plataformas computacionais de automação, as quais são
descritas na próxima seção.
2.2 PLATAFORMAS DE AUTOMAÇÃO
Uma vez que buscamos neste trabalho automatizar o processo de captura de imagens
microscópicas por meio da automatização da varredura da lâmina e que o produto final,
também, seja de baixo custo, neste ponto do trabalho vamos apresentar algumas tecnologias
que podem ser utilizadas no processo de automação.
(CAMPANA; OPLUSTIL; PAZ, 2011) define automação como utilização de técnicas
mecânicas ou computadorizadas com o objetivo de maximizar a eficiência de um determinado
processo, aumentando a produção com um consumo de energia inferior e também prover maior
segurança.
Existem diversas plataformas de automação disponíveis e de baixo custo, tais como Arduino e
Raspberry Pi, no entanto a mais conhecida é a plataforma de computação física ou embarcada
Arduino.
(CAVALCANTE; TAVOLARO; MOLISANI, 2011) define Arduino como uma
plataforma que foi construída para promover a interação física entre o ambiente e o computador
utilizando dispositivos eletrônicos de forma simples e baseada em softwares e hardwares livres.
O Arduino pode interagir com o ambiente onde está disposto coletando dados por meio
de módulos sensores ou controlando equipamentos, por exemplo, motores, leds, entre outros.
Possui hardware e software open source, sendo acessível para qualquer pessoa utilizar e
desenvolver a aplicação desejada. A linguagem de programação utilizada para desenvolver as
aplicações na plataforma Arduino é baseada em C e C++ (“Arduino”, [s.d.]).
Basicamente, a plataforma Arduino constitui-se em uma placa de circuitos com entradas
e saídas para um microcontrolador, um o bootloader que já vem gravado no microcontrolador
e um ambiente de desenvolvimento. O microcontrolador é composto por um microprocessador,
memória e periféricos de entrada/saída. Pode ser programado para funções específicas, como,
por exemplo, monitoração de ambientes, controle de máquinas e diferentes automações
(CAVALCANTE; TAVOLARO; MOLISANI, 2011).Um dos modelos de arduino mais simples
é o UNO, apresentado na Figura 2, esta placa possui o microcontrolador ATmega328P com 32
20
KB de memória flash e 16 MHz de velocidade de clock, além disso dispõe de 14 pinos digitais
que podem ser utilizados como entrada ou saída, e seis entradas analógicas (“Arduino”, [s.d.]).
Figura 2 – Placa Arduino modelo UNO (imagem adaptada de (“Arduino”, [s.d.])).
Outra plataforma bastante utilizada em projetos de automação é o microcomputador
Raspberry Pi (“Raspberry”, [s.d.]), apresentado na Figura 3. Ele possui maior poder
computacional em relação ao Arduino UNO e também maior valor comercial para aquisição.
O Raspberry Pi 3 modelo B é equipado com um processador de Quad Core 1.2 GHz Broadcom
BCM2837 64bit, memória RAM de 1GB, 4 portas USB (universal serial bus), 40 pinos de
entrada/saída de dados, adaptadores de Wifi e Bluetooth integrados na placa, conector HDMI.
Figura 3 – Microcomputador Raspberry Pi 3 modelo B (imagem adaptada de (“Raspberry Pi”, [s.d.])).
21
2.3 IMPRESSÃO 3D
Além do equipamento eletrônico que permite a automação, neste caso, responsável pela
comunicação com aplicativo móvel instalado no celular, também se faz necessário o
desenvolvimento de componentes físicos, por exemplo engrenagens, que permitam movimentar
a mesa do microscópio. Desta forma ainda buscando o desenvolvimento de um produto que
seja de baixo custo, neste trabalho foi utilizado tecnologia de impressão 3-D.
Essa tecnologia permite a criação de objetos tridimensionais a partir de uma modelagem
3D e tem sido usada em diversas áreas, como por exemplo, na produção de modelos
arquitetônicos, próteses médicas, na educação, entre outras aplicações. Os modelos são
construídos camada a camada, em que, cada uma é construída por meio do varrimento da
superfície com uma trajetória depositando matéria prima nesse percurso (COELHO, 2012).
Lacerda e Ribeiro (2016) utilizaram esse equipamento para o desenvolvimento de
próteses de membros humanos, tornando o acesso mais fácil às pessoas que possuem
deficiência. Coelho (2012) faz o uso dessa tecnologia para fabricar implantes ósseos. O autor
propõe um método em que a área afetada é exposta e a parte de osso doente é extraída, após
isso, a área onde o implante ósseo será aplicado é digitalizado para a correta confecção da peça.
Outro exemplo de utilização de impressora 3D é o AUTOSCOPE (“AutoScope”, [s.d.]),
esse trabalho apresenta um protótipo cuja sua função é realizar os movimentos de um
microscópio, sua estrutura foi confeccionada com a ajuda de uma impressora 3D. Ele é
equipado com motores de passo, responsáveis pela tração do componente charriot, o controle
do funcionamento e interação com o usuário é provido pelo uso de um Arduino modelo Nano,
que possui especificações de hardware semelhantes ao modelo Uno, no entanto com dimensão
reduzida. Esse equipamento permite a movimentação regular de lâminas de microscópio, uma
vez que a movimentação manual pode ser imprecisa, por outro lado, ainda é necessário o
controle do usuário por meio de um JoyStick.
Para a criação de objetos com impressoras 3D é necessário utilizar softwares de
modelagem, os mais conhecidos são o Blender (“Blender.org”, [s.d.]), 3DS Max (“3ds Max”,
[s.d.]), AutoCAD (“AutoCAD”, [s.d.]) entre outros disponíveis na internet. Esses softwares
permitem aos usuários modelarem seus objetos com as características desejadas.
As impressoras 3D possibilitam a fácil criação de objetos para diversos fins, nos últimos
anos elas tornaram-se mais populares e acessíveis. O preço para confecção de grandes objetos
22
ainda possui um valor razoavelmente elevado, no entanto, para pequenos projetos, tornam-se
acessíveis.
2.4 FRAMEWORK DE DESENVOLVIMENTO ANDROID
Recente pesquisa divulgada pela Fundação Getúlio Vargas indicava que até maio de
2018 o Brasil teria 306 milhões de dispositivos portáteis em uso – além de smartphones, o
número inclui notebooks e tablets. Segundo o levantamento, em dezembro do ano passado o
país atingiu a marca de mais de 208 milhões de habitantes, ou seja, quase 1,5 dispositivo portátil
ativo por habitante (MEIRELLES, 2017).
No contexto, o sistema operacional (SO) Android, é o mais utilizado no mundo,
atualmente corresponde à 84,8% dos usuários, totalizando 1,455 bilhões de dispositivos
executando esse SO (“IDC”, [s.d.]). Segundo, ainda, dados do StatCounter, quando observado
todos os SO’s, em setembro de 2018 o SO Android aparece como o mais utilizado no mundo,
totalizando 40,74% de todos os equipamentos computacionais, enquanto que em segundo lugar,
aparece o Windows com 36,39% (“Operating”, 2018).
Dado a grande quantidade de pessoas utilizando smartphones com SO Android e o
avanço dos recursos utilizados pelas câmeras destes equipamento tornou-se trivial obter
imagens com boa qualidade com os smartphones utilizados no dia-a-dia. (WANG; REIMEIER;
WOLTER, 2016).
Desta forma, o desenvolvimento de aplicativos para essa plataforma, que faça uso da
grande capacidade de captura de imagens dos smartphones, apresenta-se como uma alternativa
de baixo custo para criação de equipamentos de captura de imagens microscópicas. Assim,
tendo em vista a criação de um sistema composto por um aplicativo móvel capaz de registar
imagens de uma lâmina de microscopia, possibilitando auxiliar os profissionais da área da saúde
e que seja acessível a um grande número de usuários, neste trabalho é utilizada essa tecnologia
para a criação do sistema proposto.
A linguagem de programação padrão utilizada pela plataforma Android é o Java. Para o
desenvolvimento de aplicações destinadas à essa plataforma, é necessário o uso de dois
conjuntos principais de ferramentas, a primeira é o Software Development Kit (SDK) que possui
um conjunto de debuggers, bibliotecas e emuladores. A segunda é o Native Development Kit
(NDK), que através desta, possibilita incorporar códigos da linguagem C e C++ em aplicativos
23
Android, e também o uso de bibliotecas escritas nessa linguagem ou até mesmo em Object
Pascal.
Para a comunicação do SDK e NDK é necessário do uso protocolo Java Native Interface
(JNI), responsável pela interação do Java com outras linguagens de programação. O JNI permite
a reutilização de bibliotecas já existentes, facilitando o trabalho do desenvolvedor e
minimizando o tempo de criação do sistema.
Para facilitar o desenvolvimento de aplicações móveis pode-se utilizar um framework,
o qual é uma coleção de ferramentas que juntas auxiliam o programador no processo de
desenvolvimento de seu software. É possível configurar estas ferramentas para que somente as
funcionalidades que lhe interessam possam ser utilizadas, sendo que seu uso se dá
principalmente pelo fato de durante o desenvolvimento ele possibilita a automatização de
tarefas repetidas e seu alto nível de reutilização de código (MATTSSON; BOSCH, 1997).
Alguns dos frameworks mais conhecidos para o desenvolvimento de aplicações móveis
são o PhoneGap (“PhoneGap”, [s.d.]), Sencha (“Sencha”, [s.d.]) e Embarcadero Delphi XE6
(“Embarcadero”, [s.d.]). Os dois primeiros são frameworks gratuitos de código aberto,
permitem criar aplicativos que utilizam tecnologias como JavaScript, CSS (Cascading Style
Sheets) e HTML5 (Hypertext Markup Language, versão 5), comuns a todos os dispositivos
móveis. Já o Embarcadero Delphi XE6 é destinado ao desenvolvimento de aplicações
totalmente nativas, com acesso completo dos recursos do dispositivo, porém não é gratuito
(DELIA et al., 2015).
Outro framework gratuito e de código aberto que vem ganhando espaço no mercado de
desenvolvimento móvel é o Lazarus Android Module Wizard (LAMW), possui uma
comunidade de colaboradores que impulsionam o seu crescimento.
Dadas as vantagens do uso de um framework no desenvolvimento de aplicações móveis,
como facilidade de gerenciamento de recursos e implementação do sistema, este trabalho utiliza
o framework LAMW para desenvolvimento do aplicativo proposto.
2.4.1 Lazarus Android Module Wizard (LAMW)
O LAMW é um framework destinado ao desenvolvimento de aplicações para a
plataforma Android, utiliza o paradigma de “arrastar e soltar” componentes para modelar
interface gráfica do usuário (GUI), esse recurso gera todos os arquivos XML (Extensible
Markup Language) necessário para execução da aplicação, facilitando o trabalho do
24
desenvolvedor. Além disso, o LAMW é um plug-in para a IDE (Integrated Development
Environment) Lazarus, que tem como linguagem de programação disponível o Object Pascal,
que é considerada simples e fácil de se aprender (FONSECA, 2017).
O LAMW faz o uso do protocolo JNI para invocar métodos nativos em Java a partir da
linguagem Object Pascal. Como apresentado na Figura 4, o LAMW possui uma biblioteca
lamw.so, responsável pela comunicação, através do protocolo JNI, com a máquina virtual Java,
o qual solicita a execução do código Java correspondente.
Figura 4 – Exemplo de comunicação provida pelo protocolo JNI.
Ainda de acordo com (FONSECA, 2017), o LAMW propõe reunir em componentes,
funções comuns para a plataforma de desenvolvimento Android, viabilizando a realização de
tarefas simples (construção da GUI) e também de tarefas mais complexas (protocolos de redes,
sensores, GPS, bluetooth, banco de dados, media player, localização, mapas, câmera, etc).
O trabalho de (FONSECA, 2017) faz o uso desse framework para o desenvolvimento
de um aplicativo móvel chamado AppFret que possui como função, locar serviços de
transportes e de frete. Ele faz o uso de diversos componentes disponibilizados pelo LAMW,
dos mais simples como botões, aos mais sofisticados como recursos de localização global.
Outro aplicativo desenvolvido com esse framework é AppGás de (SIRQUEIRA, 2017),
que possui a função de facilitar a encomenda/compra de gás de cozinha para os usuários e
também possui a funcionalidade específica para empresa gerenciar as encomendas recebidas.
Assim como (FONSECA, 2017), esse o desenvolvimento do AppGás faz o uso de componentes
sofisticados do LAMW.
25
2.5 PROCESSAMENTO DIGITAL DE IMAGENS
Além das tecnologias apresentadas, o processamento digital de imagens (PDI) também
é um recurso interessante para compor o sistema de auxílio no uso de microscópio proposto
neste trabalho.
Essa área da tecnologia possui diversas aplicações, tanto em imagens como em vídeos.
Alguns exemplos de utilização são o melhoramento da qualidade das imagens por meio de
aplicação de filtros de suavização, extração de informações, construção de imagens
panorâmicas, entre outras aplicações. Apesar de possuir métodos complexos, existem na
literatura algumas bibliotecas e software que possibilitam ao desenvolvedor e usuário a fácil
utilização e aplicação de métodos de PDI. Dado isso, esse trabalho utiliza essa tecnologia para
realizar o processamento das imagens coletadas.
2.5.1 OpenCV
OpenCV (Open Source Computer Vision Libary) é uma biblioteca de código aberto para
visão computacional, escrita em linguagem de programação C e C++, feita para ser executada
nos SO’s Linux, Windows e Mac OS X, iOS e Android. Essa biblioteca é projetada para
eficiência computacional, possuindo forte foco em aplicações de tempo real (“OpenCV”,
[s.d.]).
Essa biblioteca possui mais de 2500 algoritmos otimizados, possui um abrangente
conjunto de algoritmos de visão computacional e de aprendizado de máquina. Os algoritmos
providos pela OpenCV podem ser utilizados em aplicações simples, como, remover ruídos,
extrair bordas, até as mais sofisticadas, como, identificar objetos, detectar e reconhecer rostos,
classificar ações humanas em vídeos, rastrear objetos em movimento, rastrear movimentos de
câmera, acompanhar movimentos dos olhos, unir um conjunto de imagens para produzir uma
imagem panorâmica de alta resolução de uma cena inteira, etc.
Um algoritmo implementado pela biblioteca OpenCV muito conhecido, é o detector de
faces em imagens estáticas proposto por Viola e Jones (VIOLA; JONES, 2004). Os trabalhos
de (GUIMARÃES, 2016) e (VEGA, 2016) fazem o uso desse detector.
No entanto, o uso dessa biblioteca é via linha de comando, uma tarefa que pode se tornar
complicada para profissionais que não são da área da tecnologia. Com isso, surgiram softwares
26
que visam facilitar o uso de métodos de processamento digital de imagens através de interface
gráfica com um nível alto de abstração, um exemplo e software para esse fim, é o ImageJ.
2.5.2 ImageJ
Entre os softwares voltados para processamento de imagens para a área da saúde, o
ImageJ (Image processing and analysis in Java. National Institutes of Health, EUA) é um dos
mais conhecidos. Possui arquitetura aberta que pode ser estendido por plug-ins, ele possui um
conjunto de métodos capazes de auxiliar os profissionais de laboratório em suas tarefas. Possui
uma grande comunidade de colaboradores, desde não programadores até desenvolvedores
profissionais, isso faz com que este software cresça cada vez mais e aumente suas áreas de
aplicação (RUEDEN et al., 2017).
O ImageJ possibilita ao usuário utilizar métodos PDI para realizar edição, análise e
processamentos de imagens utilizando a interface do software, além de permitir a visualização
das imagens por meio do mesmo recurso. Em relação à biblioteca OpenCV, esse software
permite a abstração da implementação dos métodos, fator atraente para profissionais que não
sejam da área da computação.
Um exemplo de utilização desse software é no auxílio de contabilização de células, no
entanto, ainda é necessário que o usuário interaja muito com o ImageJ, selecionando e aplicando
manualmente os métodos de pré-processamento e contabilização.
Dadas as facilidades de se utilizar métodos de processamento de imagens com o auxílio
de interface gráfica, o presente trabalho propõe a criação de um software para facilitar, ao
usuário, a tarefa de construir a imagem panorâmica da amostra.
27
3 O MICROSCOPYSCANNER
3.1 ARQUITETURA DO SISTEMA
O sistema de escaneamento de lâminas (MicroscopyScanner) proposto neste trabalho é
composto por três subsistemas, apresentados na Figura 5, sendo eles: o primeiro subsistema
corresponde à aplicação móvel, seção 3.2, recebe o nome de Microscopy Scanner Mobile
(MSM), o segundo é o subsistema de processamento de imagens, seção 3.3.6, Microscopy
Scanner Stitcher (MMS) responsável pela reconstrução panorâmica da lâmina, e por último é
apresentado o subsistema de movimentação X e Y do microscópio, seção 3.4, chamado de
Microscopy Mover (MM).
Figura 5 – Módulos que compõe o sistema MicroscopyScanner e comunicação entre eles.
3.2 APLICATIVO MÓVEL - MICROSCOPY SCANNER MOBILE (MSM)
Dado o grande número de usuários de dispositivos móveis com sistema Android e o fácil
acesso aos recursos disponíveis pelos smartphones, o presente trabalho propõe o
desenvolvimento de uma aplicação móvel para plataforma Android, a qual visa prover o auxílio
para manipulação semiautomática e totalmente automática do microscópio em procedimentos
de análises de lâminas.
28
O aplicativo proposto neste trabalho recebe tal nome devido suas funcionalidades de
percorrer a lâmina de microscopia, e também, caso desejado, permite registrar as imagens da
amostra em uma região especificada. As imagens coletadas constituem a base de dados para a
construção panorâmica da lâmina.
Na Figura 6, é apresentado o diagrama de atividades referente ao funcionamento do
MSM, e na sequência são descritas as atividades realizadas pelo usuário e pela própria
aplicação.
Figura 6 – Diagrama de atividades do MSM.
29
Como apresentado no diagrama da Figura 6, ao iniciar o aplicativo MSM, é
disponibilizada ao usuário a tela inicial, apresentada na Figura 7. Essa tela dispõe de um
componente visual responsável por apresentar a imagem gerada pela câmera do dispositivo.
Esse recurso permite ao usuário visualizar a amostra para ajustar manualmente o foco do
microscópio e também definir a ampliação correta para utilização do módulo de movimentação
MM (seção 3.4). Nesta etapa da aplicação, todos os movimentos realizados no microscópio são
manuais, o subsistema MM ainda não está ativado.
Figura 7 – Tela inicial do aplicativo.
O componente visual utilizado na tela inicial é o JcustomCamera.pas, uma classe escrita
em Object Pascal do framework LAMW, que permite ao desenvolvedor manipular em alto
nível o componente da câmera do dispositivo móvel, assim permitindo a abstração dos métodos
implementados em linguagem nativa do dispositivo. O LAMW cria um ponteiro para a classe
JcustomCamera.java, da máquina virtual Java, responsável pelas configurações básicas do
componente.
Ao clicar no botão “iniciar” o MSM realiza o procedimento de verificação de
preenchimento dos parâmetros “linhas” e “colunas”, utilizados no procedimento de varredura
da lâmina, se estão incorretos, o fluxo de execução retorna para a tela inicial, caso contrário, o
parâmetro “ampliação” e enviado via tecnologia bluetooth para o módulo MM, então é
inicializada a tela de movimentação semiautomática da lâmina (Figura 8). Nesta etapa o MSM
30
provê de um JoyStick, em que o usuário pode movimentar a lâmina e observar a amostra, tudo
pelo dispositivo móvel, sem a necessidade de manipular manualmente o microscópio.
Figura 8 – Tela de movimentação semiautomática.
O sistema pode ser utilizado de duas maneiras diferentes, na primeira, o usuário pode
movimentar a lâmina de forma semiautomática, selecionando a direção e interrompendo esse
movimento pelo próprio aplicativo, e sem registrar as imagens. No diagrama da Figura 6, a
funcionalidade corresponde à segunda atividade realizada no lado usuário, onde selecionado
um comando, a aplicação o envia para MM, e o fluxo de execução volta para a tela de
movimentação, assim permitindo ao usuário realizar quantos movimentos desejados.
Na segunda opção, com o foco posicionado no ponto inicial desejado, o MSM realiza a
varredura automática da amostra, obedecendo os parâmetros “linhas” e “colunas” informados,
coletando as imagens durante o percurso. Para realizar a segunda opção, é necessário selecionar
o botão “escanear”. Para a evitar distorções nas imagens coletadas, a comunicação entre a
aplicação MSM e o MM é síncrona, em que é necessária a confirmação de conclusão da
movimentação realizada pelo MM, ou seja, o aplicativo MSM envia um comando de
movimentação para o MM, que por sua vez, realiza esse movimento especificado e ao concluir
o comando, envia a confirmação correspondente. O MSM segue o seu fluxo de execução apenas
31
após o recebimento da confirmação de conclusão do comando. As trocas de mensagens entre o
aplicativo MSM e o módulo MM são apresentados no diagrama de sequência da Figura 9.
Figura 9 – Comunicação entre a aplicação MSM e o módulo MM.
A coleta das imagens é semelhante ao preenchimento de uma matriz, em que cada
imagem é um elemento que a compõe. O aplicativo obedece os parâmetros “linhas” e “colunas”
preenchidos na tela inicial, Figura 7, que correspondem às dimensões da matriz.
32
Na Figura 10 é apresentado o caminho percorrido na amostra durante a coleta das
imagens, ressaltando que a platina do microscópio é o componente movimentado durante esse
processo.
No diagrama de sequência da Figura 9 é apresentado o procedimento de coleta das
imagens, realizado da seguinte maneira: com o foco posicionado o ponto inicial I, o sistema
sempre inicia com deslocamento para a direita, ao atingir o limite imagens coletadas no sentido
horizontal o foco é posicionado para baixo, esse procedimento é realizado até que todas as
imagens sejam coletadas (linhas e colunas).
Figura 10 – Caminho percorrido durante a varredura, o ponto inicial é marcado pela letra I e o ponto final pela
letra F.
Todas as imagens coletadas nessa etapa são nomeadas com a sua respectiva posição na
matriz, a métrica utilizada na coleta é apresenta da seção 3.3.6 e a distância entre cada captura
é apresentada na seção 3.4.2. Os nomes são estruturados a partir da seguinte concatenação de
dados:
(L + “_” + C + “.jpg”),
onde L representa o índice da linha e C o índice da coluna. Os nomes das imagens são obtidos
dessa maneira para que o usuário possa realizar a varredura de toda a lâmina, e posteriormente,
caso desejado seja possível selecionar apenas um conjunto de imagens, correspondente à uma
sub-região da área registrada da base, para realizar a construção panorâmica.
O propósito do aplicativo é controlar o subsistema de movimentação MM e prover ao
usuário uma aplicação capaz de controlar o microscópio óptico de forma semiautomática e/ou
automática. Em ambas as opções é necessária a utilização dos recursos da câmera e do bluetooth
do dispositivo móvel. Sendo assim, aplicação foi desenvolvida com o framework LAMW
devido a facilidade de criação de aplicações e recursos providos por essa ferramenta, além dela
33
ser criada pelo professor Dr. José Marques Pessoa1, membro da instituição de ensino em que
essa pesquisa veio a ser desenvolvida.
Outro recurso disponível pelo LAMW utilizado no desenvolvimento do MSM, é a classe
JBluetooth.pas assim como o recurso JcustomCamera.pas, o framework o disponibiliza pronto
para o uso, todas as configurações necessárias em código Java já são implementadas pela classe.
3.3 MÓDULO DE CONSTRUÇÃO PANORÂMICA DA LÂMINA
Nesta seção é dada uma breve descrição sobre imagens panorâmicas. Também são
apresentados alguns sistemas que realizam essa tarefa e discutidas as principais etapas
realizadas. Por último, é apresentado o software proposto neste trabalho, destinado à construção
panorâmica de imagens que utiliza a classe Stitching_detalhed da biblioteca OpenCV.
3.3.1 Imagens panorâmicas
Devido a necessidade de retratar um ambiente em maior angulação, as imagens
panorâmicas tornam-se uma ferramenta importante para realizar essa tarefa, com esse recurso,
é possível combinar vários pontos de vista de uma mesma cena em apenas um simples ponto
de vista. Elas têm sido aplicadas em cenários de jogos, como exemplo, simuladores de corrida
e de voo, também para produzir imagens de satélites, entre outras finalidades (JUAN; GWUN,
2010). A construção desse tipo de imagem é feita por meio de uso de softwares ou de lentes
especiais (HIRAGA; SILVA; ARTERO, 2013).
No caso de construção de imagens panorâmicas construídas por software, é executada
uma tarefa de junção de imagens, denominada Stitching (costura em português), ou também
chamada construção e mosaicos (HIRAGA; SILVA; ARTERO, 2013). A construção
panorâmica de imagens, em geral é constituída por duas etapas principais, sendo elas:
correspondência de imagens e mistura de imagens (JUAN; GWUN, 2010).
No trabalho de Juan et al. (2010) é apresentado um diagrama de fluxo das etapas
realizadas na construção panorâmicas de imagens (Figura 11). No primeiro passo da etapa
chamada de “Matching” e aplicado, em cada imagem, o algoritmo Modified SURF. Este
algoritmo é baseado no SURF (SpeededUP Robust Features) de (BAY et al., 2008) , o qual é
responsável pela detecção e descrição dos pontos chaves. No segundo passo é aplicado o
1 Docente do curso de Ciência da Computação da Universidade Federal de Mato Grosso, Campus
universitário da Araguaia II.
34
algoritmo KNN (K-nearest neighbor) para encontrar pontos correspondentes entre todas as
imagens da base de dados, no terceiro passo, é realizada eliminação de falsas correspondências
e estimação da matriz homográfica, entre pares de imagens, com a aplicação do algoritmo
RANSAC (RANdom Sample Consensus).
Na segunda etapa, correspondente ao “Blending”, as matrizes homográficas geradas na
etapa anterior são ajustadas pelo algoritmo Bundle Adjustment, e por último, é aplicado o
algoritmo Multi-band blending que é uma modificação do algoritmo Linear Blend responsável
pela suavização das diferenças de intensidades de brilho e cor entre cada par de imagens.
Figura 11 – Diagrama de fluxo do sistema proposto em (JUAN; GWUN, 2010).
3.3.2 Algoritmo Surf
O SURF é um algoritmo para detecção e descrição de características de imagens digitais
apresentado por Bay et al. (2008), é baseado no SIFT (Scale Invariant Feature Transform)
Lowe (2004), entretanto, é mais rápido computacionalmente. Esse algoritmo é invariante à
rotação e escala, ou seja, ele obtém a mesma descrição dos pontos chaves que se encontram em
diferentes escalas ou rotações dos objetos dentro da imagem.
A invariância de escala desse algoritmo é proporcionada devido a aplicação dos filtros
de detecção de variação de intensidade dos pixels da imagem em diferentes escalas, isso permite
a extração características da imagem em diferentes tamanhos e escalas (MESQUITA, 2016).
35
3.3.3 Método Bundle Adjustment
Durante o procedimento de junção de imagens para construção de um panorama, podem
surgir alguns erros, e à medida que são adicionadas novas imagens, esse erro é propagado e
acumulado na imagem final. Triggs et al., (2000) propõem o método Bundle Adjustment,
responsável por otimizar a estrutura 3D e os parâmetros de visualização (posicionamento e/ou
calibração da câmera), em resumo, é responsável pela minimização dos erros de projeção. Na
maioria das vezes é utilizado como último passo em algoritmos de construção panorâmica, e o
seu uso é fundamental para o melhoramento do resultado final.
3.3.4 Algoritmo Blending
No procedimento de construção de imagens panorâmicas, a mesclagem das imagens é
realizada com a sobreposição de duas ou mais imagens, com isso, surgem diferenças nítidas na
imagem resultante ocasionadas por fatores como iluminação e diferentes ângulos (HIRAGA;
SILVA; ARTERO, 2013).
Para resolver esse problema, o algoritmo blending minimiza a diferença entre as
imagens, tentando tornar o panorama o mais homogêneo possível. Esse algoritmo pode ser
dividido em duas categorias, a primeira é o blending linear e o segundo é o de múltiplas bandas.
Segundo Brown; Lowe, (2007), o blending linear gera borrões na imagens resultante, enquanto
que a versão de múltiplas bandas é mais eficaz em seu propósito.
3.3.5 Classe stitching_detalhed da biblioteca OpenCV
A biblioteca OpenCV dispõe de uma classe chamada stitching_detelhed, implementada
em linguagem C++, ela faz o uso dos métodos descritos nas seções 3.3.2, 3.3.3 e 3.3.4, além de
outros necessários para construir imagens panorâmicas.
Essa biblioteca possui a característica de execução com passagem de parâmetros por
meio de flags, em que pode se configurar os métodos e parâmetros a serem utilizados durante
execução do procedimento. O utilizador pode configurar os parâmetros desejados para realizar
a “costura”, porém, o uso dessa classe é por meio de linha de comando, um modo de operação
que a maioria de usuários de computadores não possuem conhecimento, dado isso, é proposto
o desenvolvimento de um software que faz o uso dessa classe e provê ao usuário a utilização
via interface gráfica.
36
3.3.6 Módulo de construção de imagens panorâmicas – Microscopy Scanner Stitcher
(MSS)
Neste protótipo, o smartphone é fixado na ocular do microscópio, por meio de um
suporte, Figura 12. No entanto, este item foi adquirido pela internet. Este suporte permite que
a câmera do celular fique alinhada à ocular do microscópio proporcionando a captura das
imagens.
(a)
(b)
Figura 12 – Suporte adaptador de celular para telescópio, binóculo e microscópios. a) Suporte adaptador e b)
Suporte adaptador com celular e fixado em um microscópio
A imagem gerada pela ocular do microscópio possui forma arredondada com bordas de
cor preta, como ilustrado no item (a) da Figura 13. O item (b), da mesma imagem, ilustra como
seria o posicionamento do foco sobre a lâmina, esse exemplo é utilizado para demonstrar a área
que a lente do microscópio não é capaz de apresentar ao usuário devido seu formato
arredondado. Para analisar mais regiões da amostra, é necessário deslocar a lente sobre a
lâmina.
A Figura 13(c) ilustra como é realizado o processo de coleta de imagens sem gerar
sobreposição entre elas, os círculos pretos 1, 2 e 3 ilustram a posição do foco sobre a lâmina, a
execução da coleta dessa maneira é desejada quando existe a necessidade de registrar dados
sem duplicação de informações, como exemplo, um determinado objeto não pode aparecer em
mais de uma imagem, então o foco do microscópio deve ser posicionado lado a lado de maneira
que os focos adjacentes possuam apenas um ponto de intersecção. Porém, realizar a coleta dessa
37
maneira acarreta perda de informação, como ilustrado na Figura 13(d), em que a área preta não
é registrada durante o procedimento de varredura.
O item (e) da Figura 13 apresenta uma estratégia de varrer a lâmina maximizando a área
registrada, esse processo é executado da mesma maneira que no item (c), porém o deslocamento
do foco entre cada captura é menor, assim é possível maximizar o registro da área varrida, os
círculos em amarelo I e II representam as imagens extras (em relação item c) coletadas. Essa
estratégia permite registrar partes da lâmina que a anterior ignora, porém, isso acarreta em
duplicação de informações, uma vez que é necessário sobrepor o foco para registrar as imagens,
como demonstrado, onde a imagem I sobrepõe parte das imagens 1 e 2, e a II sobrepõe de 2 e
3.
Pode-se observar que a estratégia utilizada no procedimento apresentado na Figura 13(e)
consegue registrar áreas da lâmina que a estratégia da Figura 13(d), não é capaz de registrar.
Figura 13 – (a) Imagem vista no ocular do microscópio. (b) Ilustração do foco sobre a lâmina. (c) Varredura da
lâmina sem sobreposição de área. (d) Varredura da lâmina com sobreposição.
Na a criação de uma imagem panorâmica é necessário que exista sobreposição entre
cada par de imagens a ser costurada, para identificar pontos em comum entre elas, como pode-
se observar na Figura 13(e), as imagens extras I e II possuem sobreposição com suas adjacentes
(1, 2 e 3), com isso é possível construir uma imagem panorâmica a partir desse conjunto de
imagens.
Dado o problema de sobreposição, foi desenvolvido o módulo de processamento de
imagens para compor o sistema. Neste módulo é executado o procedimento de construção
panorâmica das imagens coletadas pelo aplicativo MSM, com a finalidade de eliminar a
duplicação de informações contidas na base. O software desenvolvido neste trabalho utiliza a
38
classe stitching_detailed para realizar a tarefa de construção panorâmica. A escolha dessa classe
deu-se pela facilidade de uso provida pela biblioteca OpenCV que implementa os métodos
necessários para realizar essa tarefa e também pela eficácia dela.
Neste módulo também são executados os métodos de pré-processamento da base de
dados gerada pelo MSM. As imagens são recortadas para remover as regiões que não possuem
informações relevantes para a costura final, são áreas das imagens que possuem apenas cor
preta e que geram falhas na imagem resultante da construção panorâmica. No presente trabalho,
esse procedimento é chamado de seleção da região de interesse.
As etapas realizadas para obtenção da região de interesse são apresentadas na Figura 14.
O item (a) apresenta a imagem coletada na ocular do microscópio, pode-se observar que exceto
a área correspondente ao foco, o restante da imagem não possui informação relevante para o
procedimento de construção panorâmica da amostra, então é necessário localizar a região
relevante.
Esse procedimento é realizado automaticamente com alguns métodos da biblioteca
OpenCV. A primeira etapa é aplicar a limiarização na imagem colorida na imagem original
(Figura 14(a)), ou seja, convertê-la para a escala de cinza (preto e banco), para isso é o utilizado
o método cv2.threshold(), onde especificado um limiar, os pixels com valores abaixo dele
assumem para si o valor 0 (correspondente a cor preta) e os com valores acima assumem o valor
255 (cor branca). Após isso, o método cv2.findContours() é aplicado para localizar todos os
objetos presentes na imagem. Como o foco do microscópio é o maior objeto presente na
imagem, basta selecioná-lo no conjunto de contornos obtidos com o método
cv2.findContours(). Realizados esses procedimentos, é obtida a imagem apresentada na Figura
14(b), onde a área dentro do retângulo branco é a região de interesse, referenciada neste trabalho
como área total do foco do microscópio.
39
Figura 14 – Pré-processamento aplicado nas imagens da base de dados. (a) imagem original, (b) região de
interesse na imagem, (c) área selecionada para aplicar o recorte, (d) resultado da aplicação do recorte.
Apesar de reduzir consideravelmente as regiões irrelevantes para a construção
panorâmica, ainda prevalecem partes na imagem que geram imperfeições no resultado final.
Assim, é necessário aplicar o recorte das imagens que compõem a base de dados, o item (c) da
Figura 14 apresenta a imagem resultante do procedimento de localização da região de interesse,
o retângulo branco demonstra a fatia da imagem que será recortada e o item (d) apresenta a
saída da etapa do pré-processamento.
O tamanho da fatia a ser recortada apresenta-se como um parâmetro relevante para o
correto funcionamento do subsistema de construção panorâmica. A Figura 15 apresenta dois
segmentos de construções panorâmicas, em que são utilizados diferentes tamanhos de fatias,
onde item (a) apresenta a resultado obtido com as imagens da base recortados com 90% da
altura e 65% da largura, total do foco.
40
No entanto, pode-se observar uma falha na construção da imagem panorâmica com esses
parâmetros, onde o círculo preto marca uma área que possui um buraco, ocasionado pelo recorte
mal aplicado na base de dados, em que prevalecem regiões não pertencentes ao foco do
microscópio. O item (b) da Figura 15 utiliza as imagens recortadas com 90% da altura e 50%
da largura, apesar de obter um resultado melhor, as falhas encontradas na configuração anterior
prevalecem. O item (d) da Figura 14 é um exemplo de recorte ruim, uma vez que prevalecem
na imagem áreas que não pertencem ao foco, onde os quatro cantos da imagem possuem e cor
preta.
Com base em análises das imagens geradas por construções panorâmicas, constatou-se
que toda a região de cor preta que não pertence ao foco do microscópio deve ser removida, os
parâmetros obtidos que obedecem esse requisito são 85% da altura e 50% da largura total do
foco do microscópio.
Figura 15 – Segmentos de dois resultados que apresentam falhas, obtidos com configurações de recorte
diferentes.
O software proposto para realizar essa tarefa, foi desenvolvido em linguagem Java no
ambiente integrado de desenvolvimento NetBeans (“NetBeans IDE”, 2018). O objetivo desse
software é facilitar o uso da classe stitcher_detalhed para profissionais que não sejam da área
de ciência da computação.
A tela inicial, Figura 16, possui uma estrutura simples, devido ao software possuir
apenas o objetivo de construir imagens panorâmicas. Ela dispõe de um botão chamado
“panoramic” responsável por iniciar a execução do procedimento de construção panorâmica de
imagens. Os botões “Zoom in” e “Zoom out” são utilizados para auxiliar na visualização da
imagem resultante.
41
Figura 16 – Tela inicial do software MSS.
Os procedimentos realizados pelo sistema são executados por threads, para evitar o
travamento da interface gráfica, são criadas threads para realizar as etapas de pré-
processamento das imagens, correspondente ao recorte delas discutido na seção 3.3, e para a
construção panorâmica, a thread criada executa a classe stitcher_detalhed, apresentada na seção
3.3.5.
Ao concluir a construção da imagem, o resultado é apresentado ao usuário (Figura 17),
que pode apenas analisar a amostra pela interface do software, ou pode selecionar um diretório
no computador e salvar a imagem para futuras análises.
Figura 17 – Apresentação do resultado da construção panorâmica da amostra.
42
3.4 Módulo de automação do microscópio – Microscopy Mover (MM)
O módulo para automação proposto neste trabalho é dividido em duas partes, a primeira
corresponde aos equipamentos mecânicos e eletrônicos que o constituem, seção 3.4.1, e a
segunda é o suporte dos motores confeccionados por impressão 3D. A modelagem
tridimensional do suporte foi desenvolvida utilizando o software de modelagem Blender
(“Blender.org”, [s.d.]), e para a impressão das peças, foi utilizada a impressora 3DCloner
modelo DH (“Cloner”, [s.d.]).
3.4.1 Equipamentos utilizados no circuito do MM
Para a criação do protótipo, foram utilizados os seguintes equipamentos:
Placa Arduino, modelo Uno;
2 motores de passo modelo 5V 28BYJ-48, com microcontroladora;
Shield bluetooth HC-05.
A plataforma de automação utilizada neste trabalho foi o Arduino Uno, essa escolha
deu-se pelas características de seu hardware, em que esse modelo atende às necessidades de
quantidade de pinos e capacidade de processamento requeridos para executar as tarefas de
controle dos motores de passos e realizar a comunicação via módulo bluetooth.
O motor de passo, Figura 18, é um dispositivo eletromecânico que recebe pulsos elétricos e os
convertem em movimentos mecânicos. A rotação do eixo desse dispositivo é dada em
pequenos incrementos angulares, chamados de “passos”, a direção da rotação desse tipo de
motor é diretamente relacionada às sequências de impulsos elétricos recebidos. A velocidade
é determinada pela frequência dos pulsos e a angulação do movimento é determinada pelo
número de passos. Por possuir movimentos precisos, esse dispositivo pode ser uma boa
43
escolha em projetos que possuam esse tipo de requisito (SILVA; ZANIN, 2011) .
Figura 18 – Motor de passo modelo 5V 28BYJ-48.
Este dispositivo foi escolhido para compor o protótipo devido sua precisão e suavidade
de movimento do eixo, dado que o movimento da lâmina do microscópio deve ser suave para
não gerar distorções nas imagens coletadas pelo aplicativo e também por possuir uma
movimentação precisa. Desta forma, podemos controlar com exatidão o deslocamento e sem
gerar imperfeições nas imagens capturadas durante a execução do sistema.
Shields são placas para expansão de hardware, utilizadas em plataformas de
prototipagem para adicionar novas funcionalidades à aplicação desejada. O shield bluetooth,
Figura 19, permite a comunicação sem fio com outros dispositivos. De acordo com (DUTRA,
2018), o bluetooth utiliza a radiofrequência como meio de comunicação com outros
dispositivos. A taxa de transferência de dados dessa tecnologia varia entre as faixas de 1 Mbps
e 2 Mbps. O shield bluetooth HC-05 possui um alcance de comunicação de até dez metros de
distância e também possui segurança na transmissão dos dados, pelo fato de exigir autenticação
entre os pares de dispositivos para que haja comunicação e transferência entre eles.
Figura 19 – Shield bluetooth.
44
O MM é equipado com dois motores de passo, um para realizar a movimentação na
direção do eixo X da amostra e o outro para a direção do eixo Y e uma shield bluetooth para
comunicação externa. A movimentação da lâmina é proporcionada pela ativação dos motores
de passo, eles são acionados em tempos diferentes, em momento algum são ativados
simultaneamente.
A placa Arduino utilizada é responsável pelo controle e acionamento dos motores de
passo e utiliza o shield bluetooth para realizar a comunicação com o aplicativo MSM, em que
o protótipo recebe comandos para movimentar a lâmina e envia a confirmação de conclusão do
movimento por este canal.
O esquema do circuito do subsistema de automação MM do microscópio é apresentado
na Figura 20, nela pode-se observar as conexões do shield bluetooth (item c) e das
microcontroladoras (item b) dos motores de passo (item a) com a placa arduino (item d). O
shield bluetooth HC-05 necessita de duas portas I/O do arduino, além dos pinos de alimentação,
uma para o pino RX (receptor) e outra para o TX (transmissor). Os dados trocados são
sequências de caracteres, a parte lógica do sistema de movimentação possui um parser
responsável pela identificação dos comandos recebidos e determinação das atividades a serem
executadas.
Figura 20 – Esquema do circuito do sistema de movimentação. (a) Motores de passo; (b) Microcontroladoras dos
motores; (c) Shield bluetooth; (d) Placa Arduino e (e) Protoboard.
As microcontroladoras dos motores de passo necessitam de quatro portas cada uma.
Foram destinados os pinos de 4 a 7 para o primeiro motor, de 8 a 11 para o segundo, e 2 e 3
45
para o módulo bluetooth. Os motores são alimentados por uma fonte externa de 5V, e a shield
bluetooth é alimentado pelo próprio arduino.
Para o desenvolvimento do algoritmo responsável por realizar as tarefas de acionamento
dos motores, foi utilizada a biblioteca Stepper.h, a qual permite ao desenvolvedor a abstração
do funcionamento e sequência de pulsos a serem enviados para os motores para realizar a
movimentação desejada. O primeiro passo para o uso dessa biblioteca, é criar uma nova
instância da classe Stepper e especificar os pinos no qual o motor será conectado. A seguir é
apresentado um exemplo desse procedimento:
Stepper meuMotor(passosPorVolta, 4, 6, 5, 7),
onde, a variável passosPorVolta especifica o número de passos necessários para o motor realizar
uma volta de 360 graus completa (modelo de motor de passo utilizado nesse trabalho é o 5V
28BYJ-48). Os valores 4, 6, 5 e 7 são os pinos do arduino que serão utilizados para controlar o
motor.
Os outros dois métodos utilizados da classe Stepper para controlar o motor de passo são
setSpeed(velocidade) e step(passos), o primeiro é responsável por definir a velocidade de
movimentação do eixo, ou seja, a frequência em que os pulsos serão enviados ao motor, o
segundo método é utilizado para especificar o tamanho/comprimento do movimento que o
motor deve realizar, onde valores negativos fazem o eixo do motor girar no sentido horário, e
valores positivos fazem girar no sentido anti-horário.
3.4.2 Definição dos parâmetros de funcionamento do MM
Os parâmetros velocidade e deslocamento dos motores para execução do subsistema
MM foram obtidos a partir de testes empíricos, em que diferentes configurações foram
utilizadas, de modo a se obter os valores ideais desses parâmetros, para minimizar o número de
imagens coletadas para cobrir uma determinada região da amostra.
A velocidade de movimentação dos motores é um parâmetro que possui grande impacto
no funcionamento do JoyStick da aplicação móvel, uma vez que se possuir um valor elevado,
dificultará a visualização da amostra e se possuir valor baixo, tornará o procedimento muito
demorado.
O parâmetro mais importante durante a etapa de coleta das imagens é o deslocamento
entre cada imagem capturada, que é definido pelo número de passos que o motor deve
46
movimentar. Se o deslocamento for muito grande, pode-se não obter sobreposição entre as
imagens. Para realizar o procedimento de costura de imagens, é necessário que exista
sobreposição de área entre as imagens. Por outro lado, se o deslocamento entre as capturas for
muito curto, a área de sobreposição torna-se muito grande implicando na geração de uma base
de dados muito grande.
Devido às limitações de disponibilidade de amostras e tempo, foram definidos os
parâmetros de funcionamento apenas para a ampliação de 40X do microscópio, no entanto, o
subsistema de automação MM está pronto para receber as informações restantes, sendo
necessário apenas inserir no código fonte os valores dos parâmetros de deslocamento e
velocidade para as ampliações faltantes.
Os valores dos parâmetros de velocidade e deslocamento para a ampliação 40X também
foram obtidos por meio de testes empíricos, em que foram analisadas diversas configurações
dos parâmetros a fim de se obter aquela capaz de registrar região desejadas com o menor
número de imagens possível sem gerar imperfeições no resultado final.
Na Figura 21 são apresentados algumas configurações de deslocamento estre capturas
de imagens, utilizadas para a definição dos parâmetros de movimentação do MM. Para
demostrar influência dos deslocamentos horizontal e vertical, são apresentados pares de
imagens, onde os pontos correspondentes entre elas são ligados por linhas da cor azul. As linhas
pretas tracejadas são utilizadas nos itens (a), (b) e (c) para facilitar a visualização da área de
sobreposição entre as imagens.
Na Figura 21 são apresentados pares de imagens adjacentes capturadas com diferentes
tamanhos de deslocamento entre as imagens, os itens (a), (b) e (c) possuem deslocamentos,
entre as capturas dos pares de imagens no sentido horizontal da amostra, de 30, 35 e 40 passos,
respectivamente. De forma semelhante, porém no sentido vertical, os itens (d), (e) e (f) possuem
deslocamentos entre capturas de 45, 50 e 55 passos, respectivamente. Os pontos
correspondentes presentes entre os pares de imagens são ligados através de linhas de cor azul,
de modo a demonstrar a região de sobreposição entre elas.
47
Figura 21 – Pares de imagens registradas com diferentes deslocamentos entre capturas.
Pode-se observar na Figura 21 a influência dos parâmetros de deslocamento entre cada
captura, onde valores altos para esse parâmetro implicam áreas de sobreposição muito
pequenas, que em muitos casos podem ser insuficientes para o procedimento de costura, por
outro lado, valores baixos, implicam em regiões grandes de sobreposição, tornando a base de
dados muito grande.
Cada configuração possui quatro parâmetros, sendo eles: velocidade de movimentação
para o JoyStick, velocidade de movimentação para a coleta das imagens, deslocamento entre
capturas no sentido X, e por último, deslocamento entre capturas no sentido Y. Os valores dos
parâmetros definidos, para a ampliação de 40X da lente objetiva do microscópio, foram de 40
e 200 para as velocidades do JoyStick e captura das imagens, respectivamente, e de 35 e 45
48
passos para o deslocamento entre as capturas, nos sentidos X e Y respectivamente. A velocidade
de movimentação é a mesma para as direções X e Y.
3.4.3 Suporte dos motores
Nessa seção é apresentado o suporte dos motores (Figura 22), que é responsável por
posicionar e acoplar os motores de passo no microscópio. Na sequência são apresentados seus
componentes e estrutura, e descritas suas respectivas funções.
Figura 22 – Componentes do suporte.
A estrutura do suporte dos motores proposta neste trabalho foi baseada em
(“AutoScope”, [s.d.]) e as engrenagens baseadas nos modelos disponíveis em (“Otvinta”,
[s.d.]). Otvinta provê diversas modelagens 3D de engrenagens, além de ferramentas que
possibilitam ao usuário gerar funções matemáticas para criar engrenagens com distintas
configurações, como quantidade de dentes, diferentes raios, entre outras configurações.
Os componentes que compõem o suporte foram projetados para serem utilizados no
microscópio óptico modelo Nikon Eclipse E200, portanto, os fixadores superior e inferior (itens
(a) e (b), respectivamente, da Figura 22) foram projetados para acoplarem na platina desse
49
modelo em específico. Para utilizá-lo em outro modelo, basta projetar os adaptadores (a) e (b),
e as engrenagens (h) que são fixadas no charriot, as demais peças do protótipo podem ser
reutilizadas. O item (c) é utilizado para conectar o corpo do suporte ao fixador inferior (b) da
platina.
O parafuso de rosca (item f) permite elevar ou abaixar os motores individualmente, desta
forma é possível regular as posições dos motores para o seu correto funcionamento, tornando o
MM flexível. Essa característica faz com que esse módulo de automação possa ser utilizado em
outros modelos de microscópio.
Outra regulagem permitida neste suporte, é a distância entre as engrenagens fixadas nos
eixos dos motores (itens g) e as engrenagens acopladas no charriot do microscópio, essa
regulagem é provida pelo uso de um parafuso de rosca (item d) que permite aproximar ou afastar
o corpo do suporte (item e), contendo os motores, em direção às engrenagens fixadas no charriot
do microscópio.
Devido possuir a estrutura modular, em que as peças (a), (b) e (h), responsáveis pela
acoplagem no microscópio, podem ser trocadas facilmente, esse protótipo torna-se uma
ferramenta que pode ser utilizada em vários outros modelos de microscópio.
A Figura 23 apresenta o acoplamento do subsistema de movimentação MM acoplado ao
microscópio.
Figura 23 - Suporte dos motores do MM acoplado ao microscópio.
50
3.5 FUNCIONAMENTO E USO DO SISTEMA
O smartphone é acoplado no microscópio por meio de um suporte que permite alinhar a
câmera do dispositivo móvel com a imagem gerada na ocular do microscópio, a Figura 24
apresenta como o smartphone é fixado na ocular. Nela também é demonstrado o acoplamento
do sistema de automação MM, em que o suporte dos motores é fixado na platina do microscópio
e as engrenagens no charriot.
Figura 24 – Acoplamento do celular e do MM ao microscópio.
O funcionamento do sistema ainda não é completamente automático, fica a cargo do
usuário recolher as imagens no diretório criado pela a aplicação no dispositivo móvel e enviá-
las via cabo USB para o computador, que por sua vez, executará a construção panorâmica da
amostra com o software MSS.
51
4 RESULTADOS E DISCUSSÃO
O dispositivo móvel utilizado durante os testes, foi um smartphone Asus Live G500,
equipado com câmera traseira de 8 megapixels. A base de dados utilizada nos testes foi
composta por 40 imagens coletadas pelo aplicativo móvel MSM na ampliação de 40X do
microscópio, sendo registrada uma região da lâmina com 10 imagens no sentido horizontal e 4
imagens no sentido vertical. O procedimento de coleta das imagens demandou em torno de
quatro minutos (para o número de imagens descrito) para ser concluído. Já os procedimentos
processamentos de imagens realizado pelo software MSS gastou entre 15 a 25 minutos para
construir o panorama da amostra em um computador equipado com processador Intel CORE i5
5200U de 2,4 GHz. As bases coletadas para os testes possuíam entre 40 MB e 50 MB de
memória.
Na Figura 25 é apresentada uma imagem selecionada aleatoriamente da base de dados
utilizada durante os testes, com o intuito de demonstrar o ganho obtido com o sistema proposto,
em que torna-se possível juntar diversas imagens em apenas uma. Na Figura 27 é apresentado
um resultado de construção panorâmica obtida pelo sistema proposto utilizando a base em que
a imagem da Figura 25 foi retirada. Nela pode-se observar uma pequena falha de precisão de
posicionamento durante a captura de algumas imagens, em que algumas imagens aparecem fora
da sua posição, no entanto, o funcionamento do sistema não é comprometido.
A base de dados utilizada para essa construção possuía 44,2 MB e a imagens final gerada
foi de 4,03 MB. Isso demonstra um grande ganho de memória, reduzindo consideravelmente a
quantidade de memória necessária para armazenar os dados da lâmina de microscopia.
Figura 25 - Imagem da base de dados, utilizada para construção panorâmica.
52
Figura 26 - Imagem panorâmica da amostra rotacionada em 90 graus para a esquerda.
53
A Figura 27 apresenta a imagem resultante (Figura 26) recortada, de modo a torna-la
mais apresentável ao usuário final. A área marcada pelo retângulo preto é ampliada
posteriormente, Figura 28, para se demonstrar a qualidade da imagem construída. Isso
possibilita ao usuário a visualização da amostra sem a necessidade de se utilizar uma ampliação
maior do microscópio.
Figura 27 – Imagem panorâmica recortada para melhorar a apresentação ao usuário.
54
Figura 28 – Zoom digital na área marcada na imagem da Figura 27.
Para avaliar o sistema proposto neste trabalho, foram executados testes com várias bases
de dados coletadas pelo subsistema MSM, utilizando as especificações descritas anteriormente,
de modo a se constatar o seu correto funcionamento. Os testes foram realizados por
profissionais que não pertencem à área da microscopia, as próximas versões deste trabalho,
visam a utilização de profissionais especializados para aumentar a confiabilidade do resultado
final.
A interação entre os subsistemas MSM e MM funcionaram corretamente sem o
surgimento de anomalias ou deformações nas imagens coletadas e também permitindo ao
usuário a visualização da amostra através da tela do dispositivo.
55
Em alguns casos, as imagens coletadas apresentaram baixa nitidez, no entanto, isso é
decorrente do mau acoplamento do dispositivo móvel na ocular do microscópio, da qualidade
da amostra ou o ajuste errado do foco do microscópio.
O subsistema de automação MM funcionou de acordo com o seu propósito. No entanto,
devido ao microscópio óptico possuir movimentação minuciosa, em alguns casos apresentou
pequenos erros de precisão em seus movimentos, porém, sem o comprometimento do
funcionamento do sistema. Ainda assim seus resultados foram satisfatórios, provendo ao
usuário maior facilidade de uso e evitando a sua exposição aos problemas de saúdes associados
ao uso prolongado deste equipamento laboratorial.
Por último, o subsistema de construção panorâmica da lâmina também apresentou
resultados satisfatórios, em que as imagens geradas não apresentaram falhas. No entanto,
podem surgir falhas em algumas construções, ocasionadas por ausência ou baixo número de
pontos correspondentes entre as imagens, esse problema ocorre quando aparecem poucos
objetos nas imagens. Outro detalhe que pode comprometer o uso desse subsistema, é o tempo
necessário para execução da costura das imagens, em que algumas bases de dados
razoavelmente grandes demandam de um tempo elevado para realizar o procedimento. No
entanto, esse custo de tempo é decorrente da implementação da classe Stitching_detalhed da
biblioteca OpenCV, que em alguns momentos do procedimento não utiliza o poder de
processamento total do computador, em que esses determinados procedimentos são realizados
de forma sequencial, fazendo uso de apenas um núcleo do processador por vez.
56
5 CONSIDERAÇÕES FINAIS
O uso do microscópio óptico para análises de lâminas é na maioria das vezes uma tarefa
que demanda de períodos prolongados, e além de estar associada ao surgimento de doenças em
seus utilizadores, também é uma tarefa propensa a erros, devido à fadiga ocular associada à
observação da amostra através da ocular do microscópio. Esses problemas motivaram o
desenvolvimento do sistema de escaneamento de lâminas proposto neste trabalho.
Apesar dos resultados obtidos serem satisfatórios, o sistema ainda necessita de algumas
melhorias para facilitar o seu uso. Determinar os parâmetros de movimentação do subsistema
de automação é uma tarefa difícil, o que dificultou a contemplação de todas as ampliações do
microscópio no sistema.
A aplicativo MSM e o software de construção panorâmica MSS podem ser
disponibilizados gratuitamente, para a aquisição do sistema, é necessário apenas confeccionar
o suporte dos motores e comprar os componentes do circuito desse subsistema, então, o valor
para a aquisição do sistema MicroscopyScanner na data de conclusão desta pesquisa, está
orçado em aproximadamente 450,00 dólares. Valor bastante acessível quando comparado aos
Scanners de lâminas profissionais que custam mais de 53900,00 dólares.
Este trabalho apresenta a primeira versão do sistema de escaneamento automático de
lâminas de microscopia. Os trabalhos subsequentes terão como foco a melhoria da precisão,
eficiência e maior facilidade de uso para o usuário final à medida que os usuários sugerirem
melhorias.
57
6 TRABALHOS FUTUROS
Dado que este trabalho pode ser uma ferramenta importante na rotina de utilizadores de
microscópios ópticos. A seguir são apresentadas algumas propostas de trabalhos futuros:
Definir dos parâmetros de movimentação do subsistema MM para as ampliações
das objetivas faltantes (4X, 10X e 100X) do microscópio;
Remodelar a estrutura do suporte dos motores de modo a reduzir o material
utilizado para confeccionar o subsistema MM;
Utilizar técnicas de paralelização na base de dados da construção panorâmicas
para otimizar o tempo de execução;
Desenvolver uma aplicação móvel capaz de transmitir a imagem gerada pela
ocular do microscópio através de cabo USB, ou por rede, e tornar o subsistema
que executa no computador como o principal;
Integrar as etapas de captura e montagem da imagem panorâmica, para que estas
sejam realizadas de maneira automática, sem a necessidade de o usuário recolher
a base de dados no dispositivo móvel;
Implementar outras métricas durante o pré-processamento da base de dados,
como o formato do recorte aplicado e seleção automática da área de interesse,
de modo a reduz os problemas de deformação ocasionados pelas lentes;
Utilizar profissionais da área da microscopia para analisar as imagens geradas;
Adicionar a regulagem automática do foco.
58
REFERÊNCIAS
3ds Max. Disponível em: <https://www.autodesk.com.br/products/3ds-max/overview>.
Acesso em: 4 set. 2018.
AGRAWAL, P. R. et al. Work related musculoskeletal disorders among medical laboratory
professionals: a narrative review. International Journal of Research in Medical Sciences, v.
2, n. 4, p. 1262–1266, 2017.
Arduino. Disponível em: <https://www.arduino.cc/>. Acesso em: 12 maio. 2018.
AutoCAD. Disponível em: <https://www.autodesk.com.br/products/autocad/overview>.
Acesso em: 10 jul. 2018.
AutoScope. Disponível em: <http://sybarite.us/category/makingstuff/autoscope/>. Acesso em:
15 abr. 2018.
BANDEIRA, M. V. Localização de imagens ao microscópio utilizando processamento
digital de imagem. [s.l.] Dissertação (Mestrado em Engenharia Elétrica)-Universidade Federal
do Rio Grande do Sul, Porto Alegre, 2005.
BAY, H. et al. Speeded-Up Robust Features (SURF). Computer Vision and Image
Understanding, v. 110, n. 3, p. 346–359, 2008.
Blender.org. Disponível em: <https://www.blender.org/>. Acesso em: 15 mar. 2018.
BRADBURY, S. The Compound Microscope in England: 1650–1750. In: The Evolution of
the Microscope. [s.l.] Elsevier, 1967. p. 36–67.
BROWN, M.; LOWE, D. G. Automatic Panoramic Image Stitching using Invariant Features.
International Journal of Computer Vision, v. 74, n. 1, p. 59–73, 2007.
CAMPANA, A.; OPLUSTIL, G.; PAZ, C. Conceitos de automação na medicina laboratorial :
revisão de literatura. Jornal Brasileiro de Patologia e Medicina Laboratorial, v. 47, n. 2, p.
119–127, 2011.
CAVALCANTE, M. A.; TAVOLARO, C. R. C.; MOLISANI, E. Física com Arduino para
iniciantes. Revista Brasileira de Ensino de Física, v. 33, n. 4, p. 4503–4503, dez. 2011.
Cloner. Disponível em: <http://www.3dcloner.com.br/>. Acesso em: 28 maio. 2018.
COELHO, R. J. DE F. T. Design intraoperativo de implantes biomédicos individualizados.
[s.l.] Dissertação (Mestrado em Design - Produto) - Escola Superior de Artes e Design, 5 dez.
2012.
Componentes de um microscópio. Disponível em:
<http://www.blog.mcientifica.com.br/componentes-de-um-microscopio/componentes-de-um-
microscopio/>. Acesso em: 11 out. 2018.
DELIA, L. et al. Multi-platform mobile application development analysis. 2015 IEEE 9th
International Conference on Research Challenges in Information Science (RCIS).
Anais...IEEE, maio 2015Disponível em: <http://ieeexplore.ieee.org/document/7128878/>.
Acesso em: 27 set. 2018
DUTRA, J. W. A. Desenvolvimento de um Protótipo de Dispositivo Para Contagem de
Veículos em Vias Urbanas. [s.l.] Trabalho de Conclusão de Curso apresentado como requisito
parcial para obtenção do título de Bacharel em Engenharia de Transportes e Logística, Curso
Engenharia de Transportes e Logística, Universidade Federal de Santa Catarina, Joinville, 2018.
59
Embarcadero. Disponível em: <https://www.embarcadero.com/>. Acesso em: 9 out. 2018.
FONSECA, A. Aplicativo Appfret: Exemplo de Desenvolvimento Com o Framework
LAMW. [s.l.] Trabalho de Conclusão de Curso (Especialização)-Universidade Federal de Mato
Grosso, Barra do Garças, 2017.
GUIMARÃES, R. M. Desenvolvimento de um Protótipo de Software de Reconhecimento
Facial de Tempo Real Para Registro Eletrônico de Ponto em Ambientes Indoor com
Utilização do Dispositivo Kinect. [s.l.] Dissertação (Mestrado em Sistemas de Informação e
Gestão do Conhecimento) - Universidade FUMEC, Belo Horizonte, 23 fev. 2016.
GUPTA, A. A. et al. Ergonomic Microscope: Need of the Hour. Journal of clinical and
diagnostic research: JCDR, v. 9, n. 5, p. ZC62, 2015.
HIRAGA, A. K.; SILVA, F. A. DA; ARTERO, A. O. Algoritmos para construção de panorama
de imagens 360 e visualização. Colloquium Exactarum, v. 5, n. 1, p. 12–25, 2013.
IDC - Smartphone Market Share - OS. Disponível em:
<https://www.idc.com/promo/smartphone-market-share/os>. Acesso em: 21 set. 2018.
JAIN, G.; SHETTY, P. Occupational concerns associated with regular use of microscope.
International Journal of Occupational Medicine and Environmental Health, v. 27, n. 4, p.
591–598, 2014.
JUAN, L.; GWUN, O. SURF applied in panorama image stitching. Image Processing Theory
Tools and Applications (IPTA), 2010 2nd International Conference on Image Processing
Theory, Tools and Applications. Anais...Paris: IEEE, 2010
LACERDA, G. F.; RIBEIRO, R. C. Produção de próteses médicas a partir de compósitos
poliméricos formados com resíduos de rochas e PLA. p. 181–185, 2016.
LOWE, D. G. Distinctive Image Features from Scale-Invariant Keypoints. International
journal of computer vision, v. 60, n. 2, p. 91–110, nov. 2004.
MA, B. et al. Use of Autostitch for automatic stitching of microscope images. Micron, v. 38,
n. 5, p. 492–499, 2007.
MATTSSON, M.; BOSCH, J. Framework Composition : Problems , Causes and Solutions
Department of Computer Science and Business Administration. Technology of Object-
Oriented Languages and Systems, 1997. TOOLS 23. Proceedings. Anais...Santa Barbara, CA,
USA: IEEE, 1997
MEIRELLES, F. S. Pesquisa Anual do Uso de TI | FGV EAESP. Disponível em:
<https://eaesp.fgv.br/ensinoeconhecimento/centros/cia/pesquisa>. Acesso em: 9 set. 2018.
MESQUITA, E. DE M. Desenvolvimento de algoritmos via visão computacional para
identificação de local e posterior controle de pouso de um quadrirrotor comercial. [s.l.]
Monografia (Bacharelado em Engenharia Mecatrônica)—Universidade de Brasília, Brasília,
2016.
NetBeans IDE. Disponível em: <https://netbeans.org/>. Acesso em: 11 set. 2018.
OLIVEIRA, A. D. et al. The Malaria System MicroApp: A New, Mobile Device-Based Tool
for Malaria Diagnosis. JMIR research protocols, v. 6, n. 4, 2017.
OpenCV library. Disponível em: <https://opencv.org/>. Acesso em: 24 ago. 2018.
Operating System Market Share Worldwide | StatCounter Global Stats. Disponível em:
<http://gs.statcounter.com/os-market-share>. Acesso em: 25 set. 2018.
60
Otvinta.com -- A Collection of Tutorials and Resources for 3D Modeling and 3D Printing
Enthusiasts. Disponível em: <http://www.otvinta.com/index.html>. Acesso em: 28 maio.
2018.
PhoneGap. Disponível em: <https://phonegap.com/>. Acesso em: 5 set. 2018.
PRATAVIEIRA, S. Montagem e caracterização de um microscópio óptico não linear para
imagens de tecidos biológicos. [s.l.] Tese (Doutorado em Física Aplicada) - Instituto de Física
de São Carlos, Universidade de São Paulo, São Carlos, 2014.
Raspberry Pi. Disponível em: <https://www.raspberrypi.org/>. Acesso em: 4 set. 2018.
RUEDEN, C. T. et al. ImageJ2: ImageJ for the next generation of scientific image data. BMC
Bioinformatics, v. 18, n. 1, p. 529, 2017.
SEMENISHCHEV, E. A.; VORONIN, V. V; MARCHUK, V. I. Method for stitching
microbial images using a neural network. SPIE Commercial + Scientific Sensing and
Imaging, 2017, Anaheim, California, United States, 2017
Sencha. Disponível em: <https://www.sencha.com/>. Acesso em: 20 ago. 2018.
SILVA, L. A. DA; ZANIN, M. J. Montagem de fresa CNC. [s.l.] Trabalho de Conclusão de
Curso (Graduação) - Universidade Tecnológica Federal do Paraná, Medianeira, 8 dez. 2011.
SIRQUEIRA, W. A. AppGás - Aplicativo de Gestão de Vendas e Distribuição de Gás. [s.l.]
Trabalho de Conclusão de Curso (Especialização)-Universidade Federal de Mato Grosso, Barra
do Garças, 2017.
SOARES, Á. M. D. S. et al. Development and implementation of an automated system to aid
laboratory diagnosis using image processing. Journal of Biomedical Science and
Engineering, v. 6, n. 5, p. 579–585, 2013.
TRIGGS, B. et al. Bundle Adjustment-A Modern Synthesis. International workshop on
vision algorithms, p. 298–372, 2000.
VEGA, P. J. S. Reconhecimento Facial em Vídeo com uma amostra por pessoa utilizando
Stacked Supervised Auto-encoder. [s.l.] Dissertação apresentada como requisito parcial para
obtenção do título de Mestre pelo Programa de Pós-Graduação em Engenharia Elétrica da PUC-
Rio, Rio de Janeiro, 2016.
VIOLA, P.; JONES, M. J. Robust Real-Time Face Detection. International Journal of
Computer Vision, v. 57, n. 2, p. 137–154, maio 2004.
WANG, Q.; REIMEIER, F.; WOLTER, K. Efficient Image Stitching through Mobile
Offloading. Electronic Notes in Theoretical Computer Science, v. 327, p. 125–146, 2016.