sexta-feira, 11 de outubro de 2024

MILK-V DUO 256 - TDL

Introdução

A Cvitek fornece algoritmos de integração TDL para reduzir o tempo necessário para o desenvolvimento de aplicativos.

Essa arquitetura realiza o algoritmo exigido pelo TDL, incluindo seu pré e pós-processamento, e fornece uma interface de programação unificada e conveniente.

Atualmente, o TDL SDK inclui detecção de movimento, detecção de rosto, reconhecimento de rosto, rastreamento de rosto, detecção de pedestres, segmentação semântica, reconhecimento de placas, detecção de placas, reconhecimento ao vivo, reconhecimento ao vivo IR, detecção de bebês, detecção de choro, detecção de atitude, detecção de gestos, reconhecimento de gestos e outros algoritmos.

TDL SDK Software Development Guide
YOLO Development Guide

O programa TDL-SDK precisa ser compilado de forma cruzada no ambiente Linux do host do PC, como o sistema Ubuntu 22.04.

Baixar conjunto de ferramentas

wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz


Extraindo Toolchain:
tar xvf host-tools.tar.gz


Entre no diretório do toolchain e exporte o caminho do toolchain para a variável de ambiente:

cd host-tools
export PATH=$PATH:$(pwd)/gcc/riscv64-linux-musl-x86_64/bin



Verifique se a cadeia de ferramentas está disponível:

riscv64-unknown-linux-musl-gcc -v


As informações de versão da cadeia de ferramentas de compilação cruzada podem ser exibidas normalmente, ou seja, a cadeia de ferramentas está disponível:

$ riscv64-unknown-linux-musl-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-linux-musl-gcc
...
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906)

Compilar cvitek-tdl-sdk


Baixe o código fonte do TDL-SDK, os repositórios Duo e Duo256M/DuoS são diferentes:

  • Duo:

    git clone https://github.com/milkv-duo/cvitek-tdl-sdk-cv180x.git
    cd cvitek-tdl-sdk-cv180x

  • Duo256M e DuoS:

    git clone https://github.com/milkv-duo/cvitek-tdl-sdk-sg200x.git
    
    

    cd cvitek-tdl-sdk-sg200x

    Se o código dos repositórios for atualizado, você pode executar git pull no diretório de código para obter o código mais recente, como Duo256M e DuoS:

    cd cvitek-tdl-sdk-sg200x
    git pull


    Depois de obter o código mais recente, continue compilando.

Compilar amostras:

cd sample
./compile_sample.sh



O programa gerado está no subdiretório correspondente no diretório
sample. Por exemplo, o exemplo de detecção de rosto 
sample_vi_fd  está localizado em

cvi_tdl/sample_vi_fd


Limpar:
./compile_sample.sh clean

Detecção de Face

O programa de teste extrairá os dados da câmera, adicionará o algoritmo de detecção de rosto e usará ferramentas como o VLC para extrair o fluxo em tempo real para visualizar o efeito. O programa de teste extrairá os dados da câmera, adicionará o algoritmo de detecção de rosto e usará ferramentas como o VLC para extrair o fluxo em tempo real para visualizar o efeito.

Compilação

Localização do código-fonte do programa de detecção de rosto:

Consulte o método no capítulo anterior Introdução para compilar o programa de amostra.


Envie arquivos de programa e modelo de teste para o Duo

  • Consulte o método no capítulo Inicializar o Duo para instalar o sistema

  • Consulte o método no capítulo Câmera para ligar o Duo depois de conectar a câmera

Envie o sample_vi_fd compilado para a placa Duo através do comando scp no seu PC:

scp sample_vi_fd root@192.168.42.1:/root/



Use também o scp para enviar o arquivo de modelo usado para detecção de rosto no diretório cvimodel para a placa Duo:

Duo:

scrfd_480_270_int8.cvimodel

Duo256M and DuoS:

scrfd_768_432_int8_1x.cvimodel



Execute o exemplo

Faça login no terminal Duo através da porta serial ou ssh.


Adicione permissões executáveis ao programa de teste no terminal do Duo


chmod +x sample_vi_fd



Execute o programa teste no terminal do Duo's:

Duo:

./sample_vi_fd scrfd_480_270_int8.cvimodel

Duo256M and DuoS:

./sample_vi_fd scrfd_768_432_int8_1x.cvimodel

As seguintes informações serão exibidas no terminal Duo:

Initialize RTSP
rtsp://127.0.1.1/h264
prio:0
version: 1.4.0
scrfd768432 Build at 2023-12-25 01:21:44 For platform cv181x
Max SharedMem size:1658880

Neste momento, aponte a câmera para o rosto e o terminal Duo imprimirá o número de rostos detectados pela câmera em tempo real:

face count: 5
face count: 6
face count: 5
face count: 4
face count: 0
face count: 1
face count: 0


Use o VLC para extrair fluxos no PC para visualizar o efeito

Abra o VLC media player, clique em Mídia no canto superior esquerdo, selecione Abrir fluxo de rede e insira o URL.

Se você estiver usando a rede USB (USB-NCM), o endereço é:

rtsp://192.168.42.1/h264

Se você estiver usando a porta de rede na IO-Board ou a porta de rede integrada no DuoS, o endereço IP no URL precisa ser substituído pelo IP da porta de rede (você pode usar o comando ifconfig no terminal Duo para visualizar).

Clique na opção Mostrar mais opções no canto inferior esquerdo e você pode definir a opção Cache para ajustar o atraso. O padrão é 1000 milissegundos, que é 1 segundo. Quando o ambiente de rede é bom, como em uma LAN, você pode desativá-lo para reduzir a latência. Você pode configurá-lo para 100 a 300. Se o ambiente de rede estiver ruim ou a tela congelar, você pode tentar aumentá-lo.

Após a configuração, clique em Reproduzir para visualizar o efeito de detecção de rosto da câmera. 


Ref:

Introduction | Milk-V (milkv.io)

A SMARTCORE FORNECE CHIPS E MÓDULOS PARA IOT, COMUNICAÇÃO WIRELESS, BIOMETRIA, CONECTIVIDADE, RASTREAMENTO E AUTOMAÇÃO. NOSSO PORTFÓLIO INCLUI MODEM 2G/3G/4G/NB-IOT, SATELITAL, MÓDULOS WIFI, BLUETOOTH, GPS, SIGFOX, LORA, LEITOR DE CARTÃO, LEITOR QR CCODE, MECANISMO DE IMPRESSÃO, MINI-BOARD PC, ANTENA, PIGTAIL, BATERIA, REPETIDOR GPS E SENSORES. 

Nenhum comentário:

Postar um comentário