Design clássico · Pleno
Desfoque no Google Street View
Projeto de entrevista clássico. Pontos centrais: detecção de objetos, NMS, mAP/IoU e inferência offline em lote.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: detecção de objetos, NMS, mAP/IoU e inferência offline em lote. Produtos de imagens de rua reúnem coleções enormes e sistemáticas de fotos e, nesse processo, captam também placas de veículos, rostos e outras informações consideradas sensíveis do ponto de vista da privacidade.
01 · CONTEXTO
Privacidade em escala
Produtos de imagens de rua reúnem coleções enormes e sistemáticas de fotos e, nesse processo, captam também placas de veículos, rostos e outras informações consideradas sensíveis do ponto de vista da privacidade. O sistema deste caso detecta e borra rostos e placas de forma automática, para proteger a privacidade no Google Street View.
O artigo aponta o que torna o problema difícil. A escala é grande, o que exige algoritmos totalmente automáticos e otimizados e muito poder de computação. Há pouco controle sobre as condições de captura, e o aspecto dos objetos varia muito. E o recall de rostos e placas idealmente seria 100%.
Só que isso está além do alcance dos métodos automáticos de ponta: um dos melhores detectores do mundo obteve menos de 78% no conjunto de rostos em ambiente real dos autores, e detectores de rosto de ponta sozinhos não bastam para o recall desejado. Há ainda uma restrição de qualidade: é preciso preservar a qualidade das imagens mantendo o recall alto, o que obriga a controlar a taxa de falsos positivos.
02 · CAPTURA
De onde vêm as imagens e por onde elas passam
As imagens são coletadas por um veículo em movimento com um sistema de câmeras próprio. O conjunto tem nove câmeras de 5 megapixels em roseta: oito apontadas aproximadamente paralelas ao chão, em disposição radial, e uma lente olho de peixe apontada para cima. A câmera voltada para cima é ignorada, porque os rostos que ela capturasse teriam resolução baixa demais para serem identificáveis.
O trabalho usa as imagens das câmeras individuais, antes da costura em panorama. Assume-se a mesma configuração de carro e câmeras em regiões e épocas diferentes, e o pós-processador recebe, no seu vetor de características, o índice da câmera na roseta.
O artigo descreve os algoritmos, não a infraestrutura em volta deles. O diagrama a seguir é uma proposta de desenho para este exercício, uma escolha de projeto que não descreve a infraestrutura do Google. Seus componentes são armazenamento de objetos para imagens brutas e redigidas, uma fila, workers de detecção e de borrão, um serviço de montagem do panorama e uma CDN.
No desenho de referência, as imagens de cada câmera individual chegam ao armazenamento de objetos como imagens brutas.
Cada imagem bruta vira uma tarefa na fila.
A fila distribui as tarefas entre muitos workers de detecção, que é como o desenho acompanha o volume de imagens.
Os workers de detecção decidem quais caixas serão borradas e as entregam ao estágio de borrão.
O estágio de borrão grava as imagens redigidas no armazenamento de objetos.
Com as imagens redigidas, o serviço de montagem as costura em panorama e a CDN entrega o resultado ao público.
03 · DETECÇÃO
Dois detectores e um pós-processador
A ideia central combina um detector de janela deslizante ajustado para um ponto de operação de recall alto e precisão baixa com um estágio rápido de pós-processamento. Esse estágio remove falsos positivos usando informação específica do domínio, que o detector não tem.
O detector varre a imagem com janelas de vários tamanhos. Ao final, as janelas restantes são filtradas e fundidas segundo sua pontuação e a sobreposição entre escalas.
O sistema reúne um detector primário de recall alto, um detector secundário de alta precisão e baixa sensibilidade e um estágio rápido de pós-processamento, que gera um vetor de características a partir das saídas dos detectores e pontua a caixa.
Uma imagem de câmera individual entra no estágio de detecção.
Os detectores primário e secundário rodam em paralelo sobre a mesma imagem e suas saídas são guardadas.
Cada caixa do detector primário é passada ao pós-processador.
Quando o secundário devolve uma caixa, a rede neural do pós-processador é pulada e a caixa primária correspondente recebe nota perfeita.
Se a saída da rede atinge o limiar, a caixa é borrada na imagem final.
| Aspecto | Detector primário | Detector secundário |
|---|---|---|
| Ponto de operação | recall alto e precisão baixa | alta precisão e baixa sensibilidade |
| Largura mínima da caixa | 12 pixels | 20 pixels |
| Efeito sobre o pós-processador | cada caixa é passada ao pós-processador | quando devolve uma caixa, a rede neural é pulada para a caixa primária correspondente |
04 · PÓS-PROCESSADOR
Recuperar precisão sem perder recall
O pós-processamento usa uma rede neural com características derivadas dos pixels da caixa e das saídas dos detectores. As características foram desenhadas para capturar informação que os detectores não tinham. Uma delas é a razão entre altura e base da caixa, que busca capturar se o tamanho real do objeto indicado pela caixa é razoável.
Outros sinais entram no vetor: a saída de uma rede convolucional sobre o conteúdo da caixa candidata e, para rostos, a probabilidade média de cor de rosto da caixa. O artigo diz que o pós-processador é rápido em grande parte porque aproveita as consistências do conjunto de imagens.
No treino, o exemplo é positivo se, e somente se, houver uma caixa marcada à mão sobrepondo a caixa detectada em pelo menos 10%. A função de custo é ponderada pela área, de modo que uma caixa maior contribui mais; segundo os autores, isso melhora o FPR de pixel, ao custo de uma precisão por caixa ligeiramente pior.
05 · PLACAS
Mesma estrutura, outro contexto
O sistema de placas tem a mesma estrutura geral do de rostos. No sistema de placas o conjunto de características é reduzido, não há detector secundário e um detector de carros simplificado dá contexto no lugar do modelo de cor.
As caixas de carro usadas no treino são geradas automaticamente, ampliando a região ao redor da caixa de placa. As duas características que o detector de carros fornece ao pós-processador são a sobreposição (interseção sobre união, ou IoU) entre a caixa de carro ideal e a melhor detectada, e a pontuação da melhor caixa.
| Aspecto | Rostos | Placas |
|---|---|---|
| Detector secundário | presente | ausente |
| Sinal extra para o pós-processador | probabilidade média de cor de rosto | características de um detector de carros |
| Critério de identificável ou borrado | rosto suficientemente borrado quando os traços faciais ficam obscurecidos | placa identificável se três ou mais caracteres estiverem legíveis |
06 · MÉTRICAS
Medir o que importa e o que saiu
Os resultados de rostos são apresentados em dois conjuntos de avaliação rotulados à mão. São usadas três métricas, entre elas o recall por caixa contado à mão, que para privacidade é o número mais importante. A contagem manual é necessária porque as caixas de verdade costumam ser maiores que as do sistema automático, e um rosto conta como suficientemente borrado quando os traços faciais ficam obscurecidos.
O recall automático considera uma caixa de verdade recuperada se as caixas detectadas que a sobrepõem cobrirem pelo menos 50% dela. O FPR de pixel é a porcentagem de pixels borrados que ficam fora de qualquer caixa de verdade.
Nos conjuntos de avaliação, mais de 89% dos rostos ficam suficientemente borrados. Para placas, o recall contado à mão no ponto de operação escolhido é de 96,5% nos EUA e 93,6% na UE. Os autores dizem ter adotado uma noção conservadora de identificável, o que baixa o recall, e que o recall automático ainda subestima bastante o desempenho em placas, porque menos pixels precisam ser detectados para borrar o suficiente.
Em velocidade, para uma imagem de 5 megapixels o detector primário leva em média de 6 a 8 s, o secundário de 1 a 2 s e o pós-processador cerca de 100 ms, num total de 7 a 10 segundos conforme a imagem. O detector da Tsinghua leva cerca de 30 s com o mesmo tamanho mínimo de rosto.
07 · PUBLICAÇÃO
Redigir de forma irreversível e aceitar o que escapa
Com as caixas finais, as imagens das câmeras são redigidas e costuradas no panorama. O método de redação precisa ser irreversível, esconder parte dos muitos falsos positivos e deixar óbvio ao público que houve redação.
Os autores escolheram uma combinação de ruído e desfoque gaussiano agressivo, mesclado suavemente com o fundo a partir da borda da caixa.
A proteção não termina no sistema automático: usuários reportam rostos e placas não borrados, que então são borrados no produto ao vivo, o que estreita a distância entre o desempenho automático e 100% de recall.
Perguntas frequentes
O que é Desfoque no Google Street View?
Projeto de entrevista clássico. Pontos centrais: detecção de objetos, NMS, mAP/IoU e inferência offline em lote.
O que o design de Desfoque no Google Street View cobre?
Ele está organizado nestas seções: Privacidade em escala, De onde vêm as imagens e por onde elas passam, Dois detectores e um pós-processador, Recuperar precisão sem perder recall, Mesma estrutura, outro contexto e Medir o que importa e o que saiu.
Quanto tempo leva Desfoque no Google Street View e qual é o nível?
Leva cerca de 14 minutos para ler e tem nível Pleno.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.