# FastLine

## Introdução

O **GBS FastLine** é uma aplicação de software para autenticação em filas de espera. Ele usa identificação facial de forma rápida e precisa para fazer com que as pessoas sejam identificadas de forma mais ágil do que pelo processo de checagem de documentos realizado por um operador humano. Usando o FastLine, é possível reconhecer, identificar e registrar indivíduos em uma fila de forma automática.

Esse manual está atualizado para a versão 1.5.1 do FastLine.

### Versões da Aplicação

O GBS FastLine está disponível em duas versões:

#### Desktop Standalone

Essa versão é para uso completo em um ambiente desktop, sem a necessidade de ferramentas ou requisitos externos.

{% hint style="warning" %}
O GBS FastLine foi projetado como um serviço, e sua versão desktop é recomendada para procedimentos de teste, validação e prova de conceito, ou para casos triviais de uso.
{% endhint %}

{% hint style="info" %}
Nesse documento essa versão será referida somente como **Desktop**.
{% endhint %}

#### Services

Nessa versão, o GBS FastLine é fornecido como um serviço e deve ser controlado por uma aplicação externa através de sua API. Esta versão também fornece meios para supervisão externa.

### Licença de Software

O GBS FastLine requer uma licença de software para funcionar. A licença não está ligada a nenhum endereço de hardware (como MAC Address) e não expira. A licença deve ser instalada em: `C:\ProgramData\Griaule`, de acordo com as instruções presentes no manual de licença.

{% hint style="info" %}
Se for necessária mais assistência, entre em contato com o suporte da Griaule.
{% endhint %}

### Instalação e Configuração Inicial do FastLine

O instalador do FastLine tem uma aba de configuração, *GBDS Settings*:

![GBS Fast Line Installer](/files/eZr8InAA9KdkGfnTg4Mo)

#### Configurações do GBDS

**GBDS URL Address**

URL de endereço do servidor GBDS. Exemplo: `http://192.168.0.1:8085`.

**Username and Password**

Credenciais usadas pelo FastLine para autenticação no GBDS.

## Interface do Usuário

### Iniciando a Aplicação

Ao iniciar o FastLine, a *Tela Inicial* será exibida:

![GBS Fast Line Main Page](/files/zaPu19B4Voo9OLfnje8v)

### Adicionando Perfis ao Banco de Dados

Essa seção mostra como popular o banco de dados local.

#### Recuperando do GBDS

O formulário *Load base from GBDS*, mostrado abaixo, pode ser usado para recuperar perfis do GBDS. Os perfis podem ser filtrados pelas chaves biográficas. Se o filtro for deixado vazio, todos os perfis disponíveis serão importados.

![GBDS filter](/files/M7U1ujH38T9IYWRZcVy3)

#### Cadastro Local

O botão **Capturar Foto** permite ao usuário cadastrar uma nova pessoa no banco de dados local. Ao selecionar essa opção, a janela de captura de imagem irá abrir:

![GBS FastLine Capture Image Screen](/files/gPwP5MeofRr0j22xpRwY)

A versão *Desktop* permite o cadastro por captura de imagens ao vivo, ou por importação de arquivos de imagem já salvos.

A versão *Services* permite cadastrar por importação de arquivos de imagem, mas não por captura ao vivo. Essa versão é focada em usos externos, para os quais é esperado um banco de dados já populado com perfis.

### Visualizando Perfis

A lista de perfis é exibida na barra lateral, e mostra todos os perfis disponíveis para detecção. O número de perfis é mostrado no topo da lista.

![Local database](/files/jOiRIC6qqWfZTH5oV6Zv)

O tamanho da lista exibida pode ser modificado nas configurações da aplicação. Passar o cursor do mouse sobre um perfil mostra sua foto. Perfis podem ser selecionados ou desselecionados ao clicar neles.

### Deletando Perfis

Para deletar um ou mais perfis, selecione-os clicando na lista de perfis e pressione o botão **Delete**.

{% hint style="warning" %}
Uma vez que um perfil for deletado, ele não poderá ser recuperado.
{% endhint %}

### Configurações da Aplicação

Para configurar a aplicação, clique em **Configurações** na página inicial:

![GBS FastLine Settings Screen](/files/XzN1m1wjpfLwLudKdsT5)

Nessa tela, o usuário pode configurar o funcionamento da detecção, bem como a câmera que será usada.

## Fluxo de Trabalho Padrão

O fluxo de trabalho padrão para uso do FastLine é o seguinte:

1. Realizar o login
2. Preencher o banco de dados
3. Começar a detecção
4. Finalizar a detecção
5. Verificar os resultados
6. Exportar o PDF com os resultados.

## Detecção

### Tela de Detecção

A *Tela de Detecção* é o núcleo do GBS FastLine. Nessa tela, o usuário poderá visualizar as imagens capturadas pela câmera, bem como as pessoas já identificadas e não identificadas.

![GBS FastLine Detection Screen](/files/aXYpqXo3wSGXYnKPDVxR)

#### Realizando Detecções

Detecções podem ser iniciadas através da interface da versão *Desktop*, ou através da API, na versão de *Services*. Uma vez iniciada, a aplicação começará o reconhecimento através da câmera configurada. Cada vez que um quadro da imagem ao vivo coincidir com um perfil do banco de dados, o evento será registrado e uma notificação podrá ser enviada (dependendo das configurações da aplicação).

Cada perfil pode ser reconhecido somente uma vez: Quando um perfil é reconhecido, ele é removido da *lista de observação*.

É possível detectar mais que uma face de uma vez, reduzir a área de detecção da câmera, especificar outras resoluções de câmera, alternar entre câmeras, mudar o limiar de identificação, e outros recursos, através das configurações da aplicação.

Detecções são realizadas em *sessões de detecção*, um conceito discutido abaixo.

#### Sessão de Detecção

Todo processo de detecção deve ocorrer dentro de uma Sessão de Detecção, essas sessões podem ser criadas pelo usuário através da interface ou da API. Uma vez criadas, as sessões podem ser iniciadas, pausadas, retomadas e finalizadas. Enquanto não finalizadas, as sessões podem ter as configurações e dados alterados. Uma vez finalizada, a sessão de gera um relatório de detecção que não pode mais ser alterado.

Uma *Sessão de Detecção* pode ser vista como um relatório que está sendo escrito. Quando completo, se torna um relatório de detecção imutável, garantindo a consistência dos dados.

Cada sessão de detecção tem seu próprio *UUID* (Identificador Único Universal, em inglês, *Universal Unique Identifier*), chamado **SGUID** (Identificador Único Global de Sessão, do inglês, *Session Global Unique Identifier*)

### Lista de Identificados

A *Lista de Identificados* mostra as pessoas que casaram com as pessoas cadastradas desde o início da sessão:

![GBS FastLine Detected People List](/files/HsQEQHLhzKR1JRGkXd70)

### Lista de Não Identificados

A *Lista de Não Identificados* mostra as pessoas que não casaram com as pessoas cadastradas desde o início da sessão:

![GBS FastLine Unidentified People List](/files/03RALbigpe6wLAlkNiU6)

### Relatório de Resultados

O usuário pode ver o status da sessão na *Tela de Relatório*:

![GBS FastLine Report Screen](/files/ZHibboasQI4rWIi2pbm1)

Uma vez que a sessão de detecção termina, a lista de detecção se torna um relatório imutável. O relatório é automaticamente salvo em um arquivo PDF ou JSON. O formato do relatório e a localização onde é salvo são determinados nas configurações da aplicação. Na versão *Desktop*, a aplicação pode ser configurada para automaticamente mostrar o relatório quando a sessão é finalizada.

![Export as PDF Button](/files/183XZmh36cTg0RbdQlN7)

#### Gerando Relatório em Execução

Você pode gerar um relatório enquanto o FastLine está em execução. Este relatório parcial só está disponível se o parâmetro de configuração `savePdfRunning` estiver definido como `true` no arquivo `config.properties`. Quando este parâmetro for `true`, um botão chamado Exportar como PDF aparecerá na tela de detecção. Você pode clicar no botão para gerar o relatório.

![Export as PDF Button](/files/qjybuxNPQlQy0GFVZboM)

## Notificação Externa

Quando o FastLine detecta uma face, ele exibirá a imagem da face adquirida e da face de referência. Outras informações, como o nome e a pontuação da pessoa também são exibidas. As informações de casamento também podem ser enviadas para um determinado URL por meio da configuração `desktopStandalone.notifyUrl`.

Para modificar a configuração, vá para a pasta FastLine, acesse o arquivo `conf/config.properties` e altere o parâmetro `desktopStandalone.notifyUrl` para a URL que será notificada.

Após o FastLine realizar um casamento, ele exibirá as informações na interface e notificará a URL configurada com o seguinte JSON:

```json
{
	"id": "FastLine001",
	"status": "MATCH",
	"matchSummary": {
		"referencePerson": {
			"template": "BYTEARRAY",
			"tguid": "29D99G74-BF97-4714-B78E-1A3A49DDF782",
			"name": "John Doe",
			"document": "88418861092",
			"key": "CPF",
			"profileImageByteArray": "BYTEARRAY"
		},
		"score": 95.29505,
		"timestamp": "2022-08-08_08.08.08_BRT",
		"queryImage": "BYTEARRAY"
	}
}
```

{% hint style="info" %}
Note que os valores de `profileImageByteArray`, `template` e `queryImage` serão bytearrays com formato de base64.
{% endhint %}

Os campos JSON são:

* id: ID do FastLine, definido pela configuração `desktopStandalone.notifyId`.
* status: Indique se houve casamento ou não. Ele pode retornar `MATCH` ou `NOT_MATCH`. Quando retornar o valor `NOT_MATCH`, o JSON não terá um `matchSummary`.
* template: ByteArray do template de imagem no GBDS.
* tguid: ID único da transação no GBDS.
* name: Nome da pessoa. Se nenhuma informação biográfica estiver disponível, este campo pode ficar em branco.
* document: valor da chave definida no campo `key`.
* key: Chave da pessoa no GBDS.
* profileImageByteArray: ByteArray da imagem no GBDS.
* score: Pontuação do casamento.
* timestamp: Timestamp do casamento.
* queryImage: ByteArray da imagem capturada pelo FastLine.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/aplicacoes/fastline.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
