Fotogrametria 3D - Desempenho nos Sistemas Operacionais: Windows, Linux e Mac OS X

_images/Fotogram_capa.png
  • Cicero Moraes 3D Designer, Arc-Team Brazil, Sinop-MT

  • Rodrigo Dornelles Cirurgião Plástico, Núcleo de Plástica Avançada - NPA, São Paulo-SP

  • Everton da Rosa Cirurgião BMF, Hospital de Base, Brasília-DF

DOI

https://doi.org/10.6084/m9.figshare.13456442


O mercado de sistemas operacionais reflete as necessidades, apreciações e até restrições pecuniárias dos seus utilizadores. Graças às ferramentas de desenvolvimento coletivo é muito comum que todas as plataformas tenham à sua disposição uma ampla gama de desenvolvedores focados na melhora do desempenho ao usuário. Com a popularização de compiladores multiplataformas é muito comum que aplicações ofereçam opções para os três sistemas operacionais de computadores mais populares: Windows, Linux e Mac OS X. O presente capítulo explora o desempenho da fotogrametria 3D nos três sistemas rodando na mesma máquina, um notebook munido de um processador i7, 20 GB de memória RAM e com armazenamento SSD.

Importante

Este material utiliza a seguinte licença Creative Commons: Atribuição 4.0 Internacional (CC BY 4.0).

Descrição Técnica

Buscando a melhor abordagem possível para comparar o desempenho de uma mesma ferramenta de fotogrametria em três sistemas operacionais diferentes, os autores optaram por utilizar um mesmo notebook com os três sistamas instalados no mesmo dispositivo de armazenamento, buscando assim fornecer condições semelhantes para o cálculo do desempenho.

Notebook:

  • Marca: Lenovo;

  • Modelo: Ideapad S145;

  • Processador: Intel Core i7-8565U 1.80GHz;

  • Memória RAM: 20GB;

  • GPU 1: UHD Graphics 620;

  • GPU 2: NVIDIA GeForce MX110 2GB;

  • Armazenamento 1: 480 GB SDSSDA SanDisk;

  • Armazenamento 2: 512 GB SSD M.2 NVMe Intel;

  • Armazenamento 3: 1.0 TB 5400 RPM WD10JPCX WD Blue.

Sistemas operacionais:

  • Windows 10 Home;

  • Windows Subsystem for Linux (WSL) com binários do Ubuntu 18.04;

  • Ubuntu 20.04;

  • Mac OS X 10.15 Catalina.

O Windows 10 foi baixado diretamente do site da Microsoft que fornece ISOs do sistema operacional para download [Mic] e o Windows Subsystem for Linux foi instalado diretamente pela Microsoft Store [MdRD20b].

O Linux utilizado foi uma versão mais nova do Linux 3DCS [MdRD20a] que tem como base a versão Netboot do Ubuntu 20.04 disponível para download no site do distribuidor [Ubu].

Para rodar o Mac OS X foi necessário uma prática conhecida como hackintosh [Gog] que permite a instalação do sistema operacional em máquinas não fornecidas pelo fabricante Apple. O uso do sistema foi feito em caráter excepcional para a testagem das ferramentas descritas neste capítulo. Ainda que possa configurar uma quebra de contrato, a instalação de um sistema operacional em uma máquina não fornecida pelo fabricante não representa crime no Brasil, posto que obrigar o uso de uma máquina específica para rodar determinado sistema operacional pode configurar venda casada, uma prática ilegal no país segundo o inciso I do Artigo 39 do Código de Defesa do Consumidor. [dR]

Aviso

Ainda que haja muita discussão sobre os limites legais de tal prática, os autores não recomendam o uso do hackintosh para ferramentas de produção, tampouco a compra de máquinas prontas com essas configurações para uso em produção. A situação abordada neste capítulo é puramente didática, experimental e sem fins lucrativos.

Fotogrametria

O processo de fotogrametria consiste em indicar um diretório onde há uma série de fotografias que seguem um protocolo de captura pré definido [MdRD20d] [MdRD20c]. Uma vez indicado o local das fotos o OpenMVG [MMPM16] encontra a localização tridimensional da câmera no momento em que a foto foi efetuada e cria uma nuvem esparsa de pontos correspondente ao objeto digitalizado. Em seguida os dados de posicionamento das câmeras são exportados ao OpenMVS [Cer20] que utiliza as informações para gerar uma nuvem densa de pontos. A nuvem densa de pontos é então reconstruída em uma malha 3D e a malha recebe os dados de texturização (cores) advindas das fotografias. Ao final do processo é gerado um modelo tridimensional devidamente colorizado.

Por padrão o OrtogOnBlender copia as imagens para um diretório temporário de modo a não alterar as fotografias originais. Se as imagens têm alguma incompatibilidade com o OpenMVG há uma correção automática, como por exemplo, a conversão do formato Heic para Jpg ou a inserção de dados de abertura da câmera. A cópia e eventual correção são ignoradas pelo cronômetro que estipula o Fator de Tempo por Fotografia (FTF) [MdRD20e], utilizado para a mensuração dos dados que leva em consideração apenas o tempo de processamento efetuado pelo OpenMVG e pelo OpenMVS.

Foram elencadas 10 sequências de fotografias (com o número de capturas entre parênteses): Padrão (26), Bauru (25), Everton (38), Fotogram 1 (26), Fotogram 2 (26), Fotogram 3 (26), Fotogram 4 (26), Fotogram 5 (26), Fotogram 6 (39) e Mão (50).

Resultados

_images/Fotogram_tabela.png

Tabela com os resultados do fator de Fator de Tempo por Foto (FTF) em segundos.

Os dados foram organizados em uma tabela e ao final extraíu-se uma média de todos os tempos (Fig. 1). Para rodar os testes os autores optaram por fazê-los todos no SDSSDA SanDisk de 480 GB. O sistema operacional em questão foi instalado, os testes rodados, o dispositivo era então formatado e outro sistema instalado, repetindo o processo.

_images/Fotogram_tabela_geral.png

Gráfico com os resultados da média geral do Fator de Tempo por Foto (FTF) em cada sistema operacional.

O resultado utilizando a mesma abordagem com todos os sistemas operacionais diferentes, colocou o Mac OS X em último lugar (Fig. 2) com pouco menos de 4 segundos de diferença do Windows e do Linux que vieram praticamente empatados na terceira e segunda posições. Curiosamente, a primeira posição foi ocupada pelo WSL. Embora muitos usuários o definam como um Linux que roda dentro do Windows, o que ele faz na verdade é traduzir os binários do Linux para que os mesmos possam ser executados diretamente pelo Windows, ou seja, não há um kernel Linux no processo [Mic20]. A diferença foi tão grande (26,59%) em relação ao Mac OS X que este ficou fora da margem de erro de 8%.

_images/Fotogram_tabela_wsl.png

Gráfico com os resultados da média do FTF em um computador com processador i9.

Em face do resultado atípico envolvendo o WSL um teste foi efetuado em outro computador munido de um processador i9 com 64 GB de RAM, utilizando a sequência Padrão (26 fotos) e um dispositivo de armazenamento SSD M.2 NVMe Intel 512 GB. O resultado foi diferente para o WSL colocando-o em último lugar (Fig. 3).

_images/Fotogram_tabela_ftf.png

Gráfico com os resultados o FTF em processadores e sistemas operacionais diferentes.

Buscando uma melhor compreensão dos números que envolvem a fotogrametria e máquinas com diferentes características, os usuários do OrtogOnBlender foram convidados a testarem o tempo de digitalização e extrair o FTF dos seus computadores utilizando a sequência de fotografias disponível no diretório FOTOGRAMETRIA. Essa é a mesma sequência utilizada neste capítulo sob o nome de Padrão (26). O resultado do teste foi um gráfico, até o momento com 50 resultados, envolvendo diversos processadores e sistemas operacionais diferentes (Fig. 4).

_images/Fotogram_wsl_2.png

Gráfico os resultados do FTF com um mesmo processador em computadores diferentes

Analisando os dados do gráfico de processadores e FTF é possível extrair uma série de resultados que envolvem o modelo i7-8750H de 2.20GHz em vários computadores diferentes. Neste caso o WSL também ficou em último, ainda que com uma pequena margem de diferença (Fig. 5).

Isso evidencia que o WSL não é efetivamente mais rápido em todas as situações, mas quanto ao Mac OS X, seria ele um sistema menos robusto que os demais? Não necessariamente.

_images/Fotogram_mac_outros.png

Gráfico com os resultados o FTF em processadores e sistemas operacionais diferentes.

Foi possível isolar 5 resultados em computadores diferentes envolvendo o processador i7-7700HQ de 2.80GHz. Neste cenário um computador com o Windows está em primeiro e outro computador com o mesmo sistema está em úlitmo (Fig. 6). O Mac OS X está entre dois outros com um resultado significativamente menor que o último e praticamente o mesmo do terceiro, ou seja, não é o menos robusto se forem levados em consideração todos os testes efetuados, posto que a média do Windows (19,73) ficou muito compatível com o resultado do Mac.

_images/Fotogram_grafico_suprimido.png

Gráfico com os melhores resultados do FTF em processadores e sistemas operacionais diferentes.

Um outro gráfico foi gerado com os melhores resultados, reduzindo o número de IDs (processadores) de 50 para 32 (Fig. 7). Curiosamente o valor de 19,8 apresentado pelo processador i7-8565U de 1.80 GHz foi alcançado há alguns meses antes da edição deste capítulo, justamente pelo notebook aqui utilizado e rodando o sistema operacional Linux em uma versão anterior, a 18.04 (atualmente trata-se da 20.04). Em uma série de testes efetuados para o levantamento da margem de erro, o resultado do FTF foi de 22,58 até 23,25 segundos, ou seja, em um mesmo computador houve uma variação de 19,8 até 23,25 segundos por foto, o que dá uma margem de erro arredondada de 8% para mais e para menos.

Qualquer detalhe como uma compilação com parâmetros específicos, ou mesmo uma biblioteca do sistema que é chamada para executar determinada atividade no decorrer do processo, pode influenciar e alterar o tempo total da fotogrametria.

_images/Tomo_compara.png

Gráfico com o tempo levado para organizar e reconstruir a mesma tomografia computadorizada.

Uma situação que ajuda na compreensão do que acontece em processos complexos como o abordado aqui é outro teste feito durante os estudos que originaram este capítulo. Na ocasião foi levantado o tempo necessário para a organização dos arquivos (Fig. 8 em azul) e também o tempo necessário para a reconstrução da tomografia em uma malha 3D (Fig. 8 em laranja).

É possível perceber que o Windows leva grande vantagem no processo de organização dos arquivos que consiste em identificar os dados do paciente e organizá-los em diretórios diferentes. No entanto, quando a demanda recai no processamento da reconstrução o Windows é claramente inferior aos demais sistemas operacionais.

_images/Tomo_compara_media.png

Gráfico com o tempo médio dos processo conjuntos de organização e reconstrução 3D.

Contudo, quando se é levado em consideração o processo como um todo e a média é gerada, as diferenças podem se diluir a ponto de dar vantagem a um sistema ou outro, como no caso do Linux em primeiro seguido pelo Windows em segundo, que mesmo tendo um processamento de reconstrução inferior ao Mac OS X deixou-o em último lugar (Fig. 9).

Seria essa uma prova cabal de que o Mac OS X é de fato menos robusto que os demais? Não necessariamente.

_images/Fotogram_nuvem_densa.png

Gráfico com o número de fotos utilizadas para a geração da nuvem densa de pontos.

Dentre os testes efetuados no processo, um deles foi descartado da contagem final por conta de uma diferença significativa de fotografias utilizadas para a geração da nuvem densa de pontos, etapa essencial para a reconstrução da malha tridimensional (3D mesh). Eram no total 122 fotografias de uma face humana, o Linux utilizou as 122 para os cálculos, seguido do Mac com 120, o que não seria um problema. A discrepância significativa foi justamente no número utilizado pelo WSL e o Windows, um com 101 e outro com 97 fotos (Fig. 10). Ainda que o WSL tenha efetuado o cálculo com menos imagens ele o fez na primeira tentativa, já o processamento no Windows teve que ser repetido várias vezes por conta de um erro não identificado que impossibilitava o cálculo final causando a interrupção do processo.

_images/Fotogram_arquivos.png

Gráfico com o tamanho médio dos arquivos em MB.

Um fato a ser documentado é que não houve diferença significativa no tamanho médio dos arquivos gerados durante o processo (Fig. 11).

_images/Fotogram_midias.png

Gráfico com o FTF em mídias e sistemas operacionais diferentes.

Foram efetuados testes em mídias e conexões diferentes para avaliar a influência das mesmas no resultado final do processo. O Linux e o Windows foram instalados em um disposivo SSD M.2 com uma taxa de leitura quase 4x maior do que o SSD SATA. O Mac foi testado com o um SSD SATA (conectado internamente) e o mesmo SSD conectado a uma entrada USB. O Linux também foi instalado e testado em um HD (disco) conectado internamente no SATA do notebook. Ao final, quando levada em consideração a mídia, no caso específico da fotogrametria não houve diferença significativa nos resultados dentro de um mesmo sistema operacional (Fig. 12).

Conclusão

Apesar de pequenas diferenças no tempo e no número de fotos que possam ser utilizadas nos cálculos envolvendo a fotogrametria no OrtogOnBlender, não houve grandes e inibidoras incompatibilidades entre os sistemas operacionais mais populares, com exceção do WSL, o que não garante que o mesmo seja robusto em todas as instalações, como demonstrado em testes externos ao computador utilizado aqui.

O fato é que a diferença não justifica a troca de um sistema no qual o usuário é familiarizado, por outro cujo os estudos muitas vezes terão que ser iniciados do zero, gastando um tempo precioso na adaptação do mesmo. O objetivo do OrtogOnBlender ao fornecer versões para o Windows, o Linux e o Mac é justamente contemplar os usuários de todos estes sistemas oferecendo um desempenho compatível, ainda que os processos que envolvem o funcionamento em mais baixo nível tenham diferenças significativas.

Felizmente a fotogrametria é uma pequena parte do processo de planejamento cirúrgico digital e ainda que uma sequência de fotos leve de segundos a poucos minutos de diferença em relação a outro sistema, isso dificilmente impactará no tempo total do trabalho.

Cer20

Dan Cernea. OpenMVS: multi-view stereo reconstruction library. 2020. URL: https://cdcseacave.github.io/openMVS.

dR

Presidência da República. Lei nº 8.078, de 11 de setembro de 1990. URL: http://www.planalto.gov.br/ccivil_03/leis/l8078compilado.htm.

Gog

Ronaldo Gogoni. O que é hackintosh? [3 motivos para fazer]. URL: https://tecnoblog.net/302675/o-que-e-hackintosh-3-motivos-para-fazer/.

Mic

Microsoft. Baixar imagem de disco do windows 10 (arquivo iso). URL: https://www.microsoft.com/pt-br/software-download/windows10ISO.

Mic20

Microsoft. Io que é o subsistema do windows para linux? 2020. URL: https://docs.microsoft.com/pt-br/windows/wsl/about.

MdRD20a

Cicero Moraes, Everton da Rosa, and Rodrigo Dornelles. Como instalar o linux3dcs em um ssd externo. 2020. URL: http://www.ciceromoraes.com.br/doc/pt_br/OrtogOnBlender/Instalacao_Linux3DCS_SSD.html.

MdRD20b

Cicero Moraes, Everton da Rosa, and Rodrigo Dornelles. Instalando o linux no windows para rodar o smvs e o img2dcm. 2020. URL: http://www.ciceromoraes.com.br/doc/pt_br/OrtogOnBlender/Instalacao_Windows.html#instalando-o-linux-no-windows-para-rodar-o-smvs-e-o-img2dcm.

MdRD20c

Cicero Moraes, Everton da Rosa, and Rodrigo Dornelles. Protocolo simples de fotogrametria para crânios. 2020. URL: http://www.ciceromoraes.com.br/doc/pt_br/OrtogOnBlender/Fotogrametria_Cranio.html.

MdRD20d

Cicero Moraes, Everton da Rosa, and Rodrigo Dornelles. Protocolo de fotogrametria da face. 2020. URL: http://www.ciceromoraes.com.br/doc/pt_br/OrtogOnBlender/Fotogrametria_Face.html.

MdRD20e

Cicero Moraes, Everton da Rosa, and Rodrigo Dornelles. Resultados da digitalização. 2020. URL: http://ortogonline.com/doc/pt_br/OrtogOnLineMag/1/Nariz.html#resultados-da-digitalizacao.

MMPM16

Pierre Moulon, Pascal Monasse, Romuald Perrot, and Renaud Marlet. Openmvg: open multiple view geometry. In International Workshop on Reproducible Research in Pattern Recognition, 60–74. Springer, 2016.

Ubu

Ubuntu. Installation/netboot. URL: https://help.ubuntu.com/community/Installation/Netboot.