Usando a IA do Google SafeSearch em um cenário real
Tags: googlecloud, safesearch, computervision, api
Published: 2024-05-27 01:45:40

> Neste tutorial, pretendo apresentar e ensinar como usar o SafeSearch do Google, que é uma tecnologia pouca falada a meu ver. Se puder, já deixa um like ou comentário aí pra me ajudar! o/

O Google SafeSearch é um serviço do Google Cloud que consiste em receber uma imagem de entrada e prover uma análise em busca de conteúdo sensível nesta imagem. 

Diferente de alguns serviços, o SafeSearch analisa a imagem em alguns pontos fundamentais:

- Nudez, imagens de atos sexuais ou material com conteúdo sexual explícito;
- Violência e imagens sangrentas.

Além de analisar a sua imagem, o serviço provê um retorno contendo 5 categorias de análise e quais os níveis encontradas na imagem analisada:

**Exemplo de response:**
`{
  "responses": [
    {
      "safeSearchAnnotation": {
        "adult": "UNLIKELY",
        "spoof": "VERY_UNLIKELY",
        "medical": "VERY_UNLIKELY",
        "violence": "LIKELY",
        "racy": "POSSIBLE"
      }
    }
  ]
}`

O retorno acima demonstra em qual categoria e nível de sensibilidade foi encontrado em uma imagem na análise. Os níveis são: **VERY_UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY.** 

No exemplo acima, o algoritmo do SafeSearch detectou "**LIKELY**" para conteúdo violento. Em testes com imagens reais, o nível LIKELY já continha realmente coisas sensíveis, já o POSSIBLE seriam coisas leves, mas nada muito explícito. Geralmente depende do critério do cenário em que você irá utilizar, por exemplo se você estiver analisando imagens de um convento, talvez o POSSIBLE seria um problema. Mas se você estiver usando em um cenário de um app de relacionamento, nem tanto.

## UTILIZANDO NA PRÁTICA

Como algumas pessoas sabem, sou CEO e Fundador de um aplicativo de relacionamento em constante crescimento que se chama Denga Love. Como sou um CEO com background técnico (raridade por aí), alguns produtos eu mesmo assumo a frente pra teste técnico de validação se a ferramente é útil pro nosso cenário.

**Problema:** usuários colocando em seus perfis fotos ultra sensíveis: partes genitais, armas de fogo, fraturas expostas e coisas do tipo.

Quem usa aplicativos de relacionamento, sabe o quanto é importante o uso de fotos de boa qualidade. Logo, fotos com conteúdos sensíveis não somente afetam negativamente a pessoa que utilizou a foto, mas toda a rede. Neste caso, se faz necessário o uso de tecnologias de apoio na detecção destas imagens.

**Configurando o projeto:**


Inicialmente, é necessário ter ativado a Cloud Vision API:

![Ativando a Cloud Vision API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94c4u87sodyuylt0hlpu.png)

Logo após, você já terá autorização de uso da API do SafeSearch e de outras mais, como a de OCR, detecção facial e outras...

**Configurando e utilizando a API:**

Configure o SDK do Google Cloud no seu computador ou crie uma conta de serviço para poder usar a API. [Neste link](https://cloud.google.com/docs/authentication/provide-credentials-adc?hl=pt-br#local-dev) tem um tutorial rápido.

Finalmente, [neste link](https://cloud.google.com/vision/docs/detecting-safe-search#vision_safe_search_detection_gcs-gcloud) você encontra exemplos de uso que irão desde no via curl e até com Node, Python, etc...

**Teste 1:** uma imagem minha no Google IO Connect, em Miami.
![Imagem de exemplo a ser testada no SafeSearch](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0gp3gkii37z9n1o71bz1.png)

**Retorno 1:** retorno real do SafeSearch para essa imagem
![Exemplo de retorno real do SafeSearch ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zq2tlhpp87706i5locrd.png)

Perceba que nada de sensível foi detectado em nenhuma das categorias.

**Teste2:** imagem de coleta sanguínea 

![Uma pessoa tendo seu sangue coletado](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd7htuk5towz6rrm2dj4.png)

**Retorno2:** O SafeSearch detectou "POSSIBLE" para a maioria dos casos

![Imagem do retorno da imagem de coleta sanguínea](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jch2gtft6imnd5dfa68i.png)

**Custos:** A API do SafeSearch é gratuita até 1000 requisições para a API. Convém olhar os custos antes caso seu uso previsto seja maior.

**Aviso importante:** decidi não colocar aqui fotos mais sensíveis que essas pois fico imaginando que isso poderiam causar algum mal estar em quem estiver lendo. Estamos falando de imagem de pessoas mostrando a genitália para coisas piores. É melhor não mostrar, não é mesmo?

**Considerações Finais:**

Gostaria muito que mais pessoas conhecessem o SafeSearch, pois fico vendo muitas pessoas treinarem seus próprios algoritmos para resolver problemas semelhantes. Particularmente, sou do time que procura algo pronto sempre e só gastaria tempo e dinheiro criando uma IA para esse fim se realmente nenhuma me atendesse em nada ou se fosse muito mais caro utilizar a API do que criar a própria. Neste caso, os custos são baixos e a qualidade é muito boa.

Outro ponto importante é que a depender do seu uso, essa API irá retornar POSSIBLE ou LIKELY para coisas que não são nem de perto um problema. Encontrei esse problema com imagens de pessoas negras em cenário de baixo qualidade da imagem ou ambiente muito escurecido, mas foram raros casos. Por isso, sugiro considerar os resultados apenas a partir do LIKELY (quando é sensível mas em geral não explícito) ou VERY_LIKELY (onde é realmente algo muito sensível e explícito).

**Sobre o Autor:**
Fillipe Dornelas é CEO da Denga Love e Google Developer Expert em Machine Learning. Formado em Sistemas de Informação pela UFRuralRJ e acredita que a tecnologia tem que estar a serviço de ajudar e reparar os problemas da sociedade incondicionalmente.

Muito obrigado por ler!