Saltar al contenido principal

SDK y aplicación mínima

Esta página explica cómo preparar un entorno host para compilar aplicaciones nativas de reCamera Pro y cómo funciona un ciclo completo de compilación y despliegue. Los pasos se demuestran con el proyecto Visual Wake and Offline Speech Recognition, una aplicación real de RKNN + GStreamer que se ejecuta completamente en el dispositivo.

Para el contrato general de desarrollo (versiones de toolchain, formatos de modelo, lenguajes), consulta Choose a Development Path. Si prefieres que un agente de programación con IA dirija este flujo de trabajo, consulta Develop with AI Coding Agents.

Requisitos previos​

  • Una reCamera Pro (RV1126B, aarch64) accesible a través de Ethernet virtual por USB (192.168.42.1 por defecto) o LAN
  • Un ordenador con Linux, o un ordenador con Windows y WSL, para la conversión de modelos y la compilación cruzada
  • Un SDK de reCamera Pro funcional en el host
  • RKNN-Toolkit2 2.3.2 y RKNN Runtime 2.3.2 — no mezcles versiones arbitrarias de RKNN Runtime

Configurar la ruta del SDK​

Los scripts de compilación en los proyectos de reCamera Pro normalmente localizan el SDK mediante una variable de entorno. Para el proyecto Visual Wake, scripts/build_recamera.sh busca el SDK en una ruta local predeterminada; en su lugar, apúntalo a tu propio checkout del SDK:

export RECAMERA_PRO_SDK=/absolute/path/to/recamera-pro-sdk

El script de compilación también valida librknnrt.so. Si tu SDK o runtime lo almacena en otro lugar, actualiza la ruta qualified_rknnrt en el script a un runtime RKNN 2.3.2 verificado, manteniendo el paso de validación de checksum.

Obtener un proyecto y compilar de forma cruzada​

Clona el repositorio del proyecto y ejecuta su script de compilación cruzada desde la raíz del proyecto:

git clone https://github.com/yyling0101-a11y/recamera_pro_face_stt.git
cd recamera_pro_face_stt
bash scripts/build_recamera.sh

El script valida el SDK, carga su entorno de compilación y genera un paquete de despliegue:

build-recamera/deploy/
├── visual_wake_app
├── models/
│ ├── scrfd_500m_640_fp16.rknn
│ ├── pfld_98_112_fp16.rknn
│ └── stt/ # encoder, decoder, joiner, and vocabulary
└── web/dashboard.html

Una aplicación mínima propia sigue la misma estructura: un ejecutable aarch64, sus archivos de modelo RKNN y cualquier recurso web o de configuración, todo dispuesto en un solo directorio.

Desplegar en el dispositivo​

Copia el contenido del directorio de despliegue en un único directorio del dispositivo, luego conéctate por SSH y haz que el binario sea ejecutable:

scp -r build-recamera/deploy/* [email protected]:/userdata/visual-wake/
ssh [email protected]
cd /userdata/visual-wake
chmod +x visual_wake_app
tip

Mantén los directorios models/ y web/ en sus rutas relativas. La aplicación carga sus recursos usando esas rutas relativas predeterminadas.

Ejecutar y verificar​

Ejecuta la aplicación desde su directorio de despliegue:

./visual_wake_app

Durante el funcionamiento normal, los eventos accionables aparecen en la terminal:

VISUAL_WAKE track=1
STT_RESULT 打开灯

Usa --help para listar todas las opciones de ejecución. Por ejemplo, este comando solo verifica la canalización visual y desactiva los servicios de red:

./visual_wake_app --no-stt --no-rtsp --no-web --debug

Un despliegue satisfactorio significa: el binario se inicia en el dispositivo, carga sus modelos RKNN, abre la cámara e imprime eventos reconocibles o resultados de inferencia.

Problemas comunes de entorno​

ProblemaPosible causaSolución
La compilación no puede encontrar OpenCV o RKNNFalta el entorno del SDK o el runtime es incompatibleVerifica RECAMERA_PRO_SDK, carga el env.sh del SDK y usa RKNN 2.3.2
No se pueden encontrar los archivos de modelo en tiempo de ejecuciónNo se preservó la estructura de despliegueConfirma que models/ y web/ existen en el directorio de ejecución
El ejecutable es x86-64Se usó el compilador del host en lugar del compilador cruzado aarch64Vuelve a compilar con un compilador compatible con el destino y el sysroot de reCamera Pro
El binario no puede cargar una bibliotecaEl sysroot, el ABI o la ruta de búsqueda de runtime no coincide con la placaInspecciona las dependencias ELF y compara cada biblioteca de destino con la del dispositivo

Próximos pasos​

Soporte técnico y debate sobre el producto​

Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diversos tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos múltiples canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...