Pular para o conteúdo

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.

14 min de leitura · Conteúdo revisado em 23 de outubro de 2026

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.

  1. No desenho de referência, as imagens de cada câmera individual chegam ao armazenamento de objetos como imagens brutas.

    Diagrama da arquitetura: Pipeline em lote de desfoque (desenho de referência)
    CLRig de câmeras no carro
    DBImagens brutas
    QFila de trabalho
    CPWorkers de detecção
    CPWorkers de borrão
    DBImagens redigidas
    CPMontagem do panorama
    EDGCDN de publicação
  2. Cada imagem bruta vira uma tarefa na fila.

    Diagrama da arquitetura: Pipeline em lote de desfoque (desenho de referência)
    CLRig de câmeras no carro
    DBImagens brutas
    QFila de trabalho
    CPWorkers de detecção
    CPWorkers de borrão
    DBImagens redigidas
    CPMontagem do panorama
    EDGCDN de publicação
  3. A fila distribui as tarefas entre muitos workers de detecção, que é como o desenho acompanha o volume de imagens.

    Diagrama da arquitetura: Pipeline em lote de desfoque (desenho de referência)
    CLRig de câmeras no carro
    DBImagens brutas
    QFila de trabalho
    CPWorkers de detecção
    CPWorkers de borrão
    DBImagens redigidas
    CPMontagem do panorama
    EDGCDN de publicação
  4. Os workers de detecção decidem quais caixas serão borradas e as entregam ao estágio de borrão.

    Diagrama da arquitetura: Pipeline em lote de desfoque (desenho de referência)
    CLRig de câmeras no carro
    DBImagens brutas
    QFila de trabalho
    CPWorkers de detecção
    CPWorkers de borrão
    DBImagens redigidas
    CPMontagem do panorama
    EDGCDN de publicação
  5. O estágio de borrão grava as imagens redigidas no armazenamento de objetos.

    Diagrama da arquitetura: Pipeline em lote de desfoque (desenho de referência)
    CLRig de câmeras no carro
    DBImagens brutas
    QFila de trabalho
    CPWorkers de detecção
    CPWorkers de borrão
    DBImagens redigidas
    CPMontagem do panorama
    EDGCDN de publicação
  6. Com as imagens redigidas, o serviço de montagem as costura em panorama e a CDN entrega o resultado ao público.

    Diagrama da arquitetura: Pipeline em lote de desfoque (desenho de referência)
    CLRig de câmeras no carro
    DBImagens brutas
    QFila de trabalho
    CPWorkers de detecção
    CPWorkers de borrão
    DBImagens redigidas
    CPMontagem do panorama
    EDGCDN de publicação

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.

  1. Uma imagem de câmera individual entra no estágio de detecção.

    Diagrama da arquitetura: Detecção em dois estágios
    CLImagem de uma câmera
    CPDetector primário
    CPDetector secundário
    CPPós-processador
    CPBorrão
  2. Os detectores primário e secundário rodam em paralelo sobre a mesma imagem e suas saídas são guardadas.

    Diagrama da arquitetura: Detecção em dois estágios
    CLImagem de uma câmera
    CPDetector primário
    CPDetector secundário
    CPPós-processador
    CPBorrão
  3. Cada caixa do detector primário é passada ao pós-processador.

    Diagrama da arquitetura: Detecção em dois estágios
    CLImagem de uma câmera
    CPDetector primário
    CPDetector secundário
    CPPós-processador
    CPBorrão
  4. Quando o secundário devolve uma caixa, a rede neural do pós-processador é pulada e a caixa primária correspondente recebe nota perfeita.

    Diagrama da arquitetura: Detecção em dois estágios
    CLImagem de uma câmera
    CPDetector primário
    CPDetector secundário
    CPPós-processador
    CPBorrão
  5. Se a saída da rede atinge o limiar, a caixa é borrada na imagem final.

    Diagrama da arquitetura: Detecção em dois estágios
    CLImagem de uma câmera
    CPDetector primário
    CPDetector secundário
    CPPós-processador
    CPBorrão
AspectoDetector primárioDetector secundário
Ponto de operaçãorecall alto e precisão baixaalta precisão e baixa sensibilidade
Largura mínima da caixa12 pixels20 pixels
Efeito sobre o pós-processadorcada caixa é passada ao pós-processadorquando 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.

AspectoRostosPlacas
Detector secundáriopresenteausente
Sinal extra para o pós-processadorprobabilidade média de cor de rostocaracterísticas de um detector de carros
Critério de identificável ou borradorosto suficientemente borrado quando os traços faciais ficam obscurecidosplaca 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.