Coral Edge TPU
e Ultralytics
em um só lugar: edge-tpu-silva
. Nosso edge-tpu-silva é um pacote Python que simplifica a instalação da dependência USB Coral TPU e garante compatibilidade com PyCoral e Ultralytics. Este pacote capacita recursos detection
, segmentation
e classification
de objetos em vários dispositivos de borda para atingir FPS
(velocidade do processador em tempo real) mais alto.
Coral USB Accelerator Exclusivity
:
A biblioteca edge-tpu-silva foi desenvolvida especificamente para integração perfeita com o Coral USB Accelerator. Este poderoso acelerador de hardware não é apenas um requisito, mas uma escolha estratégica, liberando todo o potencial da biblioteca para detection
, segmentation
e classification
superiores de objetos.
Descubra o Coral USB Accelerator e experimente uma abordagem personalizada para edge computing com a biblioteca edge-tpu-silva.
O pacote edge-tpu-silva
só é compactável com python versions <3.10
. Instale uma versão específica do python se a sua versão do python não for compatível.
Exemplo: para
Raspberry Pi
você pode clicar em Para obter instruções sobre como instalar uma versão específica do python usando pyenv
Nota: Python 3.6 a 3.9 é recomendado. Clique no link acima para saber como instalar uma versão específica do python
Observação: certifique-se de que seu Raspberry Pi esteja atualizado. Para fazer isso, execute o comando abaixo no terminal.
sudo apt-get updatesudo apt-get upgrade
Execute o código bash abaixo em seu terminal para criar e ativar um novo ambiente virtual chamado .venv
. Certifique-se de estar no diretório específico em que deseja que este ambiente seja instalado.
python3 -m venv .venv
source .venv/bin/activate
Para instalar edge-tpu-silva , use o seguinte comando pip em um ambiente python especificado:
pip install edge-tpu-silva
Esta tabela fornece uma visão geral da compatibilidade do sistema com diferentes dispositivos e sistemas operacionais.
Compatibilidade | Comando de configuração | |
---|---|---|
Framboesa Pi 5 | ✔ | silvatpu-linux-setup |
Framboesa Pi 4 | ✔ | silvatpu-linux-setup |
Framboesa Pi 3 | ✔ | silvatpu-linux-setup |
Jetson Nano | ✔ | silvatpu-linux-setup |
Windows | ||
macOS |
Para configurar as ferramentas de configuração do seu sistema, execute o comando setup no terminal após a conclusão da etapa 1.
Exemplo: Se você estiver em um Raspberry Pi 5, execute o comando abaixo no terminal após a etapa 1.
silvatpu-linux-setup
O comando instala o tempo de execução padrão do Edge TPU para Linux, executando o dispositivo em uma frequência de clock reduzida. Como alternativa, você pode instalar uma versão para velocidade máxima, mas tome cuidado com o aumento do consumo de energia e do aquecimento do dispositivo. Se não tiver certeza, siga a frequência reduzida por segurança. Para instalar o tempo de execução de frequência máxima, especifique a velocidade do comando de configuração como max
.
silvatpu-linux-setup --speed max
Você não pode ter as duas versões do tempo de execução instaladas ao mesmo tempo, mas pode alternar simplesmente instalando o tempo de execução alternativo conforme mostrado acima.
Cuidado: Usar o acelerador USB na frequência de clock máxima pode torná-lo perigosamente quente. Para evitar queimaduras, mantenha-o fora do alcance ou opere-o com uma frequência de clock reduzida.
Nota: Certifique-se de ter o
Coral USB Accelerator
conectado através dausb 3.0 port (for faster speed)
. Se o Coral USB Accelerator foi conectado durante a instalação e configuração, desconecte-o e reconecte-o para garantirproper configuration.
Para liberar o poder da detection
, segmentation
e classification
de objetos com esta biblioteca, você precisará de um modelo .tflite compatível com Edge TPU. Esses modelos devem ser exportados usando Ultralytics
, garantindo uma integração perfeita com a biblioteca edge-tpu-silva.
NOTA: Esteja ciente de que o valor
imgsz
especificado durante a exportação YOLO deve estar alinhado com o mesmo valor usado ao definirimgsz
para qualquer um dos processos. A consistência nessas configurações é crucial para um desempenho ideal.
Modelos menores serão executados mais rapidamente, mas poderão ter menor precisão, enquanto modelos maiores serão executados mais lentamente, mas normalmente terão maior precisão. Explore os recursos da computação de ponta com os modelos abaixo usando a biblioteca edge-tpu-silva.
Link para baixar | Processo | Modelo Básico | imgsz | Classes de objetos |
---|---|---|---|---|
Baixar modelo | Detecção | yolov8n.pt | 240 | COCO128 |
Baixar modelo | Segmentação | yolov8n-seg.pt | 240 | COCO128 |
Baixar modelo | Detecção | yolov8n.pt | 192 | COCO128 |
Baixar modelo | Segmentação | yolov8n-seg.pt | 192 | COCO128 |
Baixar modelo | Classificação | yolov8n-cls.pt | 640 | ImageNet |
Baixar modelo | Detecção | yolov9c.pt | 240 | COCO128 |
NOTA: O modelo YOLOv9, particularmente a versão YOLOv9c.pt, tem um tamanho substancial, o que faz com que a sua versão TensorFlow Lite também seja bastante grande. Como resultado, sua velocidade de processamento em um Edge TPU é comparativamente mais lenta.
Para realizar a detecção de objetos usando a função process_detection
, você pode seguir este exemplo:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_detection
no Terminal: Usando o ponto de entrada "silvatpu" Para realizar a detecção de objetos com a função process_detection
na linha de comando, você pode usar o ponto de entrada amigável silvatpu
. Aqui está um exemplo de comando:
silvatpu -p det -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
Para realizar a segmentação de objetos usando a função process_segmentation
, você pode seguir este exemplo:
from edge_tpu_silva import process_segmentation
# Run the object segmentation process
outs = process_segmentation ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_segmentation
no Terminal: Usando o ponto de entrada "silvatpu" Para realizar a segmentação de objetos com a função process_segmentation
na linha de comando, você pode usar o ponto de entrada amigável silvatpu
. Aqui está um exemplo de comando:
silvatpu -p seg -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
detection
, segmentation
e classification
de processos Parâmetros de entrada da funçãoParâmetro | Descrição | Valor padrão |
---|---|---|
model_path | Caminho para o modelo de segmentação de objetos. | - |
input_path | Caminho do arquivo de imagem/vídeo a ser processado (Câmera(0|1|2)). | - |
imgsz | Define o tamanho da imagem para inferência. | - |
threshold | Limite para objetos detectados. | 0.4 |
verbose | Exibir impressões no terminal. | True |
show | Quadro de exibição com segmentação. | False |
classes | Filtra previsões para um conjunto de IDs de classe. | None |
detection
, segmentation
e classification
de processos Função SaídaCada função de processo produz a seguinte saída:
Parâmetro de saída | Descrição |
---|---|
objs_lst | Lista de objetos detectados no quadro. |
fps | Quadros por segundo (fps) do quadro processado. |
Exemplo de uso:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for objs_lst , fps in outs :
# Access the output parameters as needed
print ( f"Processed frame with { len ( objs_lst ) } objects. FPS: { fps } " )
print ( "List of object predictions in frame:" )
print ( objs_lst )
Contribuições são bem-vindas! Se você encontrar algum problema ou tiver sugestões de melhorias, abra um problema ou envie uma solicitação pull.
Mantenedor(es) do índice de pacotes Python (c) [2024] David Nyarko