Backend Python do protótipo Strawberry AI. O módulo integra captura de imagens, inferência local com TensorFlow Lite, comunicação com a interface gráfica e funções de controle do sistema.
- Capturar imagens por câmera CSI em Raspberry Pi ou por câmera compatível com OpenCV.
- Executar pré-processamento e inferência com o modelo TFLite incluído no módulo.
- Disponibilizar comandos e resultados por TCP e transmitir quadros de vídeo por TCP ou UDP.
- Registrar eventos e expor funções de configuração de rede e controle do sistema.
| Caminho | Responsabilidade |
|---|---|
core/ |
Inicialização da aplicação e carregamento da configuração. |
services/ |
Câmera, inferência, rede e controle do sistema. |
protocols/ |
Servidores TCP, streaming UDP e tratamento de comandos. |
camera/ |
Implementações de captura para Raspberry Pi e OpenCV. |
utils/ |
Logs, armazenamento de imagens e funções auxiliares. |
test/ |
Scripts de diagnóstico de câmera, streaming, serialização e conectividade. |
main.py |
Ponto de entrada do processo. |
Este repositório é usado como submódulo do Strawberry AI:
git clone https://github.com/imtavin/strawberry-ai.git
cd strawberry-ai
git submodule update --init backend
cd backendTambém é possível clonar este repositório diretamente. Nesse caso, a configuração e os demais módulos do sistema precisam ser fornecidos separadamente.
O arquivo requirements-backend.txt lista as dependências Python do módulo. O suporte à câmera CSI depende também das bibliotecas e permissões disponíveis no Raspberry Pi OS; essas dependências de sistema não estão integralmente descritas no arquivo de requisitos Python.
python -m pip install -r requirements-backend.txtcore/config.py procura config.json no diretório do módulo ou em diretórios relacionados à execução. Se o arquivo não for encontrado, o código utiliza valores padrão. A configuração do repositório principal pode ser consultada em config.json.
O ponto de entrada é python main.py. O código atual não implementa as opções de linha de comando --config ou --log-level; elas não devem ser usadas como instrução de execução.
Os arquivos em test/ são scripts de diagnóstico e não constituem, por si só, uma suíte automatizada completa. Por exemplo, test/test_healthcheck.py tenta conectar à porta TCP 5000 de um backend já iniciado:
python test/test_healthcheck.pyOs diagnósticos de câmera, streaming e inferência dependem da configuração e, em alguns casos, de hardware disponível. Este README não apresenta resultados de execução desses diagnósticos.
- O funcionamento da captura CSI depende da câmera e do ambiente Raspberry Pi OS.
- O resultado da inferência depende do modelo e da configuração utilizados.
- Este módulo não representa, isoladamente, a interface gráfica nem o processo de deploy do sistema completo.