diff --git a/blog/pt-BR/how-open-food-facts-uses-logos-to-get-information-on-food-products.html b/blog/pt-BR/how-open-food-facts-uses-logos-to-get-information-on-food-products.html index b63d2ad4fdc..7f953b6ac2a 100644 --- a/blog/pt-BR/how-open-food-facts-uses-logos-to-get-information-on-food-products.html +++ b/blog/pt-BR/how-open-food-facts-uses-logos-to-get-information-on-food-products.html @@ -41,7 +41,7 @@

🧂Uma pitada de contexto: “logos” ?

-
* What is Robotoff ?
Robotoff is a service developed by contributors to help Open Food Facts data processing. Com base nas informações já disponíveis no banco de dados, o objetivo é recuperar o máximo de informações possível sobre cada produto e adicioná-los ao banco de dados. Atualmente, as atualizações feitas pelo Robotoff vêm da análise de imagens, através de Reconhecimento Óptico de Caracteres ou modelos mais gerais de Visão Computacional. Algumas atualizações são aplicadas automaticamente ao banco de dados, mas outras precisam de validação manual através de perguntas ou pelo programa Hunger Games.

Para saber mais sobre Robotoff, dê uma olhada aqui!👀
+
* O que é Robotoff?
Robotoff é um serviço desenvolvido por colaboradores para ajudar no processamento de dados do Open Food Facts. Com base nas informações já disponíveis no banco de dados, o objetivo é recuperar o máximo de informações possível sobre cada produto e adicioná-los ao banco de dados. Atualmente, as atualizações feitas pelo Robotoff vêm da análise de imagens, através de Reconhecimento Óptico de Caracteres ou modelos mais gerais de Visão Computacional. Algumas atualizações são aplicadas automaticamente ao banco de dados, mas outras precisam de validação manual através de perguntas ou pelo programa Hunger Games.

Para saber mais sobre Robotoff, dê uma olhada aqui!👀
@@ -93,23 +93,23 @@

2️⃣ Converter imagens de logotipos em vetores:

-

Agora que podemos acessar os logotipos, precisamos vetorizá-los. Para isso, usamos um modelo pré-treinado do OpenAI chamado CLIP. Even though the model was initially trained to match images with text, we use only the “computer vision” part of the model to get the embeddings (=logos embedded in a vector space) computed by CLIP for each logo.

+

Agora que podemos acessar os logotipos, precisamos vetorizá-los. Para isso, usamos um modelo pré-treinado do OpenAI chamado CLIP. Embora o modelo tenha sido inicialmente treinado para combinar imagens com texto, usamos apenas a parte de “visão computacional” do modelo para obter as inserções (=logotipos incorporados em um espaço vetorial) computados pelo CLIP para cada logotipo.

-

We thus have a logo image as input and a vector of dimension 512 as output. The smaller the distance between two vectors is, the more similar the two corresponding logos are.

+

Temos, portanto, uma imagem de logotipo como entrada e um vetor de dimensão 512 como saída. Quanto menor for a distância entre dois vetores, mais semelhantes serão os dois logotipos correspondentes.

-

The save_logo_embeddings function in Robotoff is in charge of applying the model to logos and save embeddings to the Robotoff postgresql database.

+

A função save_logo_embeddings no Robotoff é responsável por aplicar o modelo aos logotipos e salvar as inserções no banco de dados postgresql do Robotoff.

-

You can find a more explicit code here to understand how we use CLIP to generate logos embeddings.

+

Você pode encontrar um código mais explícito aqui para entender como usamos o CLIP para gerar inserções de logotipos.

-

3️⃣ Find nearest neighbours:

+

3️⃣ Encontre os vizinhos mais próximos:

@@ -117,47 +117,48 @@

3️⃣ Find nearest neighbours:

-

To find the nearest neighbors of a logo, we use an “index” to store the embeddings. Once this index is built, we could use the “brute force” 💪 method which consists in computing the distance between the query logo and all the other logos of the db and return the closest ones. That’s the most precise method as it gives us the “true” nearest neighbors. However, this method is too slow to be applied. The time needed to extract the nearest neighbors for each logo when the total amount of logos is 2.5M is around 3s 😴

+

Para encontrar os vizinhos mais próximos de um logotipo, usamos um “índice” para armazenar as inserções. Uma vez construído esse índice, poderíamos usar o método “força bruta” 💪 que consiste em calcular a distância entre o logo da consulta e todos os outros logos do banco de dados e retornar os mais próximos. Esse é o método mais preciso, pois nos dá os “verdadeiros” vizinhos mais próximos. Entretanto, esse método é muito lento para ser aplicado. O tempo necessário para extrair os vizinhos mais próximos de cada logotipo quando a quantidade total de logotipos é 2,5 milhões é de cerca de 3s 😴

-

As we needed a better search time and were ok with having less precision, we decided to use an approximate method. The one that Robotoff uses is called HNSW (hierarchical navigable small world). You can take a look at this article to understand better nearest neighbours search.

+

Como precisávamos de um tempo de busca melhor e não nos importávamos com menos precisão, decidimos usar um método aproximado. O método utilizado por Robotoff usa é chamado HNSW (pequeno mundo hierárquico navegável). Você pode dar uma olhada neste artigo para entender melhor a busca por vizinhos mais próximos.

-

Using a HNSW ElasticSearch index, Robotoff is now able to look for the nearest neighbours of each embedding among more than 2.5M vectors with a huge precision (more than 90% of the 100 nearest neighbours returned are among the exact 100 true nearest neighbours) and a short search time of less than 100ms 👏👏👏👏.

+

Usando um índice PMNH ElasticSearch, o Robotoff agora é capaz de procurar os vizinhos mais próximos de cada inserção entre mais de 2,5 milhões de vetores com uma precisão enorme (mais de 90% dos 100 vizinhos mais próximos retornados estão entre os exatos 100 vizinhos mais próximos verdadeiros) e um tempo de busca curto de menos de 100 ms 👏👏👏👏.

-

You can use the following API to get the nearest neighbours of a logo: https://robotoff.openfoodfacts.org/api/v1/ann/search/[logo_id]?count=[count]

+

Você pode usar a seguinte API para obter os vizinhos mais próximos de um logotipo: https://robotoff.openfoodfacts.org/api/v1/ann/search/[logo_id]?count=[count]

-

🍯 A spoon of contributions: Where is it used?

+

🍯 Uma colher de contribuições: Onde é usado?

-

No automatic logo categorization is yet implemented in Robotoff. Everything I explained before is made only for Hunger Games.

+

Nenhuma categorização automática de logotipo ainda + foi implementada no Robotoff. Tudo o que expliquei antes é feito apenas para o programa Jogos Vorazes.

-

O que é isso? It is an annotation platform developed by a contributor named Alexandre Fauquette which allows everyone to answer check predictions made by Robotoff and to categorise logos

+

O que é isso? É uma plataforma de anotação desenvolvida por um colaborador chamado Alexandre Fauquette que permite que todos respondam às previsões de verificação feitas pelo Robotoff e categorizem logotipos

-


You can try it. A quick introduction/tutorial will welcome you and you will be able to annotate logos ! 😉
A video tutorial of “How to use Hunger Games ?” should be out soon… ⏳ ⏳ ⏳ ⏳ ⏳ ⏳

+


Você pode tentar. Uma rápida introdução/tutorial lhe dará as boas-vindas e você poderá fazer anotações em logotipos! 😉
A video tutorial of “How to use Hunger Games ?” should be out soon… ⏳ ⏳ ⏳ ⏳ ⏳ ⏳

-
To play the Hunger Games: hunger.openfoodfacts.org
+
Para jogar o programa Hunger Games: hunger.openfoodfacts.org
-

Annotating logos enhance Open Food Facts as it grows the amount of data we have on products and its quality. And thanks to the models and algorithms used in the background, you can be way more powerful and have a greater impact on people daily alimentation 🥰.

+

Anotar logotipos aprimora o Open Food Facts à medida que aumenta a quantidade de dados que temos sobre produtos e sua qualidade. E graças aos modelos e algoritmos usados em segundo plano, você pode ser muito mais poderoso e ter um impacto maior na alimentação diária das pessoas 🥰.

-

Article by Gabriel

+

Artigo de Gabriel