;(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

Serviço misterioso pode te identificar a partir de fotos postadas na web

Estúdio Rebimboca/UOL
Imagem: Estúdio Rebimboca/UOL

Rodrigo Trindade

De Tilt, em São Paulo

18/01/2020 13h58

Sem tempo, irmão

  • Empresa Clearview AI diz ter construído base de dados a partir de 3 bilhões de fotos
  • Imagens foram obtidas de redes sociais e páginas da web
  • Empresa vende serviço de reconhecimento facial que também entrega fonte da imagem
  • Serviço não ou por controle de qualidade; empresa diz que acerta 75% dos casos

Uma empresa pequena, pouco conhecida e obscura dos Estados Unidos tem tudo para causar um enorme impacto nas discussões sobre privacidade na era digital. A Clearview AI, fundada pelo australiano Hoan Ton-That, vende uma ferramenta de identificação a partir de reconhecimento facial poderosa e criada sobre uma base de dados escusa: fotos e vídeos disponíveis na web.

A história por trás da companhia foi revelada neste sábado (18) pelo jornal The New York Times. A publicação descobriu quem bancou a criação da empresa, com quem ela faz negócios e, mais importante, de onde ela tirou os dados.

A Clearview AI diz ter construído um banco de dados de três bilhões de fotos de pessoas disponíveis pela web, um trabalho que começou em 2016. As fontes usadas foram sites de buscas de emprego, noticiosos e educacionais, além de redes sociais como Facebook, Twitter e Instagram e serviços como YouTube e Venmo — uma ferramenta de transferência de dinheiro disponível nos Estados Unidos.

A partir de bilhões de imagens, a empresa desenvolveu uma rede neural que converteu tudo em fórmulas matemáticas baseadas na geometria do rosto das pessoas. Estas informações são agrupadas no sistema quando semelhantes e acompanhadas de links dos sites de onde as fotos foram obtidas.

Empresas como Google e Facebook teriam condições de criar uma ferramenta desse tipo, mas não o fazem pelas implicações de privacidade e potencial negativo.

Imagina só um cenário: um estranho pega o celular, aponta a câmera para seu rosto e, depois de rodar um programa, te chama pelo nome e começa a conversar contigo. Assustador, não é? Pois isso é o que o serviço da Clearview AI faz. Em análise do código da aplicação, feita pelo New York Times, descobriu-se que a tecnologia está preparada para equipar óculos de realidade aumentada, o que permitiria alguém olhar para um estranho e identificá-lo em segundos — sem que o observado soubesse.

Segundo documentos fornecidos pela empresa ao jornal, 600 agências policiais aram a usar a tecnologia no ano ado. Ela se mostrou rápida e capaz de identificar criminosos que cuja identidade não foi descoberta a partir de outras bases de dados que polícias tinham à disposição.

É um lado positivo da história, mas o negativo é mais preocupante. Tecnologias de reconhecimento facial já apresentaram tendências racistas; a da Clearview AI nem chegou a ser testada pela agência federal americana que avalia o desempenho de algoritmos de reconhecimento facial.

A empresa afirma que sua ferramenta identifica rostos em 75% das ocasiões nas quais é acionada, mas não informa qual é a taxa de acerto. Desta maneira, não se sabe qual é a confiabilidade do serviço, usado para incriminar indivíduos.

Antes de qualquer preocupação desse tipo, entram as questões protegidas por leis como o GDPR (Regulamento Geral de Proteção de Dados, da sigla em inglês) europeu e a LGPD (Lei Geral de Proteção de Dados) brasileira: que consentimento Clearview AI obteve para obter, armazenar e catalogar informações de pessoas que postaram fotos na internet?

Os serviços que serviram de fonte para a montagem do banco de dados da empresa, como as redes sociais, já ajustaram suas políticas de privacidade para as legislações de dados mais modernas e afirmaram que a prática adotada pela Clearview AI é proibida.

"Fazer raspagem ou adicionar informações do Facebook a um repositório de dados são proibidos por nossas políticas. Estamos revisando as alegações sobre esta empresa e vamos tomar as medidas apropriadas se eles estiverem violando nossas regras", disse o Facebook em um comunicado a Tilt.

Entramos em contato com as demais empresas mencionados pela reportagem do New York Times para saber como elas procederão ao saberem que seus usuários foram explorados por um terceiro. A matéria será atualizada assim que houver resposta.

Quem bancou a Clearview AI?

O empresário Richard Schwartz, de 61 anos, é o cofundador da empresa ao lado de Ton-That, 31. Os dois receberam uma primeira rodada de investimentos da empresa Kirenaga Partners e de Peter Thiel, investidor, membro do conselho istrativo do Facebook, fundador e presidente da Palantir Technologies, empresa que fornece serviços ao governo americano e grandes empresas.

Até hoje, a empresa levantou US$ 7 milhões (R$ 29 milhões) de investidores.

Errata: este conteúdo foi atualizado
A versão inicial do texto dizia que a Clearview AI tinha uma taxa de acerto de 75% na identificação de pessoas. O correto é que ela identifica pessoas em 75% das vezes em que é acionada. O erro foi corrigido.