;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Com uma simples selfie, app diz que não devo infartar e que pareço jovem

Aplicativo Anura promete calcular a probabilidade de a pessoa desenvolver doenças - Marcella Duarte/Tilt
Aplicativo Anura promete calcular a probabilidade de a pessoa desenvolver doenças Imagem: Marcella Duarte/Tilt

Marcella Duarte

De Tilt*, em Barcelona (Espanha)

02/03/2023 10h07Atualizada em 06/03/2023 10h22

Um aplicativo com inteligência artificial chamou a atenção de participantes que circulavam pelo MWC 2023 (Mobile World Congress), maior evento de tecnologia móvel, realizado nesta semana em Barcelona. A promessa da empresa canadense NuraLogix é usar uma simples selfie para informar se você tem risco de sofrer um infarto ou derrame em breve, se tem colesterol alto ou diabetes, e até como está seu estado mental.

Intrigada sobre o quão precisa seria uma tecnologia dessas, decidi testar. Para minha surpresa, o app destacou que estou muito saudável fisicamente e mentalmente, e não tenho riscos de infartar.

O teste

É bem rápido e simples. Apenas fiquei olhando para um tablet enquanto a inteligência artificial fazia as análises. É preciso posicionar o rosto em um círculo na tela e não se mexer.

MWC 2023: Aplicativo Anura, que reconhece o fluxo sanguíneo do rosto, informa dados de saúde e nível de estresse - Marcella Duarte - Marcella Duarte
Alguns dados de saúde analisados pelo Anura
Imagem: Marcella Duarte

Em 30 segundos, recebi um diagnóstico detalhado com cerca de 30 parâmetros. Círculos, que variam de verde a vermelho, mostram de uma maneira bem didática como está sua saúde em cada um deles.

Inclusive, disse que aparento 30 anos de idade — como tenho 36, a minha pele deve estar bem ok para os parâmetros usados — e que meu estado geral de saúde é 82% — ótimo, segundo o app.

Dá para confiar?

Bom, a própria empresa reforça que sua plataforma não faz diagnósticos e nem previne "qualquer doença, sintoma, distúrbio ou estado físico anormal". A ideia é oferecer dados para dar mais consciência sobre o seu bem-estar — e nem as medições de um smartwatch podem ser consideradas como diagnóstico médico, quem dirá de algo que nem encosta um sensor em você.

Dito isso, não tem como saber o quão precisas são ou não todas as informações que o app Anura me deu — a tecnologia também ainda é recente. Apenas os batimentos cardíacos eu pude confirmar na hora, com a medição de um modelo de relógio inteligente que estava usando no momento.

Os resultados foram bem parecidos. Já minha respiração apareceu um pouco mais baixa que o normal, o que também faz sentido, pois eu dei uma prendida na respiração para ficar imóvel durante os 30 segundos da selfie.

Pelo menos dez estudos científicos dão embasamento para a assertividade da tecnologia, que começou a partir de um projeto da Universidade de Toronto para detectar mentiras em crianças, de acordo com a empresa. A IA foi treinada com dados de mais de 40.000 pacientes com condições variadas.

As representantes da companhia me disseram que o objetivo da tecnologia é dar alguns alertas para que a pessoa procure um médico caso algo pareça errado. Elas também reforçaram que é uma avaliação daquele momento, e pode mudar ao longo do tempo ou até, por exemplo, se você acabou de comer ou de fazer um esforço físico.

MWC 2023: Aplicativo Anura, da startup canadense Nuralogix, faz o reconhecimento do fluxo sanguíneo do rosto para indicar dados de saúde e riscos de doenças - Divulgação - Divulgação
Anura, da startup canadense Nuralogix, está em exibição no MWC 2023
Imagem: Divulgação

Como a tecnologia funciona

Para fazer o monitoramento sem qualquer contato físico, a empresa desenvolveu uma tecnologia chamada TOI (Transdermal Optical Imaging ou "imagem óptica transdermal"), uma forma de fotopletismografia remota (rPPG). Isso quer dizer que o que é analisado é a circulação de sangue sob nossa pele. O sistema extrai informações da luz refletida em algumas áreas de foco do rosto.

Segundo a empresa, a margem de erro de menos de 8 mmHg. O sistema também consegue prever se sua hemoglobina glicada (HbA1c) é maior que 5,7% ou se sua glicemia em jejum é mais que 5,5mmol/L.

Os dados são enviados para um servidor na nuvem, onde a inteligência artificial analisa a imagem. As informações não ficam guardadas nos servidores da NuraLogix — são deletadas assim que o relatório é gerado, diz a companhia. Mas, se você baixar o app, ficará registrado um histórico de suas análises, para que você possa comparar seu estado ao longo do tempo.

O Anura roda em qualquer dispositivo com câmera frontal, como um tablet ou smartphone, basta ter conexão à internet e uma boa iluminação no ambiente (nem muito escuro e nem claro demais). No MWC, meu teste foi feito em um iPad mini 6 que estava sendo usado no estande.

Disponibilidade do app

Achei o sistema muito interessante, mas a NuraLogix não o oferece diretamente para o público, até para que não seja usado como forma de diagnóstico.

Há apenas uma versão de demonstração, chamada Anura Lite app, disponível gratuitamente na App Store e no Google Play, onde é possível ter um gostinho de como funciona a selfie da saúde.

O sistema completo, porém, está sendo comercializado para empresas de soluções de saúde e oferecida para clientes no mundo todo, inclusive no Brasil — a Starbem, por exemplo, oferece uma versão do sistema em seu aplicativo; para usar, não precisa ser , basta preencher um cadastro.

A NuraLogix também tem feito parcerias com indústrias, para que usem em programas de bem-estar dos funcionários, e acredita que um dia o Anura pode ser inserido em um contexto de cidade inteligente.

*A jornalista viajou a convite da Huawei