v4.8.1¶
v4.8.1 se basa en Qt Creator 14.0.2 y se centra en un nuevo protocolo de cámara OpenMV V2 de alta fiabilidad, un Code Profiler integrado y un flujo de guardado que mantiene la cámara montada en lugar de expulsarla. El firmware incluido y el conjunto completo de ejemplos se actualizan a 4.8.1. No hay rupturas en la API de scripting, pero el comportamiento de guardar-sin-expulsar y la eliminación de algunos parámetros serie en el arranque son cambios de flujo de trabajo visibles para el usuario.
Aspectos destacados¶
OpenMV Protocol V2 es una nueva pila de cámara de alta fiabilidad (
OMVCamera/OMVTransport/OMVDebug) con CRC32, secuenciación, ACK/NAK, retransmisión, eventos y fragmentación. Se negocia automáticamente al conectar y controla el reinicio, el arranque, la transmisión, la ejecución de scripts y las estadísticas.Code Profiler es una nueva ventana (
Window>Show Code Profiler) que sondea los registros de perfilado por función de la cámara y muestra las llamadas, los microsegundos (μs) mín./máx./totales/medios, los ciclos medios, el porcentaje y los contadores de eventos en una tabla ordenable.Guardar en el sitio ya no expulsa la unidad de la cámara; el IDE ahora escribe
main.pyy vacía el volumen al disco para que el dispositivo permanezca montado.Detección multisensor informa de cada cámara de una placa, mostrándose en la barra de estado como
Sensors: X, Ycon el sensor principal en primer lugar.Lectura dinámica de fotogramas recalcula la resolución de transmisión en bruto más adecuada por formato de píxel y reconfigura la transmisión automáticamente.
El firmware y los ejemplos incluidos se actualizan a 4.8.1 en todas las placas, añadiendo nuevos ejemplos de cámara de eventos GenX320, ML de TensorFlow, OLED de Alif y shields LCD/Touch-LCD.
Nuevas características¶
Se añadió el protocolo de comunicación OpenMV V2: una capa completa de transporte y transacciones con CRC32, secuenciación, ACK/NAK, retransmisión, eventos y fragmentación, más una clase
OMVCameranegociada automáticamente al conectar e integrada en el controlador serie (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Se añadió la ventana Code Profiler (
Window>Show Code Profiler), que sondea los registros de perfilado por función y muestra las llamadas, los microsegundos (μs) mín./máx./totales/medios, los ciclos medios, el porcentaje y los contadores de eventos, resolviendo las direcciones a símbolos mediante un analizador ELF ELFIO incluido (019d3cd2c, 57cd9e1cc).Se añadió un cuadro de diálogo Debug Protocol Settings que muestra en vivo System Info, Host Stats y Device Stats actualizados cada segundo, exponiendo las tasas de sondeo por canal más los controles de sondeo combinado frente a separado (5220a6125, 0da2f79d0).
Se añadió la detección multisensor: una placa con más de una cámara las informa todas en la barra de estado como
Sensors: X, Y, con el sensor principal primero (cebc79ce7).Se añadió la lectura dinámica de fotogramas (activada por defecto), que recalcula la resolución de transmisión en bruto más adecuada por formato de píxel (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) y reconfigura la transmisión (75c073bdb, 0da2f79d0).Se añadió la decodificación del framebuffer para los formatos de píxel en bruto
BINARY(monocromo de 1 bpp) yARGB8(alfa de 32 bits), de modo que esos tipos de imagen ahora se representan en el visor (dabb82062).En Windows, Connect ahora busca dispositivos USB marcados con un problema por el sistema operativo y advierte con una lista de los dispositivos defectuosos que podrían bloquear la conexión (1a5beb081, 1b59cd78e).
Se añadió un indicador de registro en la barra de estado: un botón verde
Registeredo coralUnregisteredpara la cámara conectada, que se puede pulsar para registrar la placa (a8c98a4b9).El visor del framebuffer ahora puede mostrar un mensaje de texto centrado enviado desde el script en ejecución mediante un nuevo código de escape
FB_MESSAGEen lugar de una imagen (530048201).Se añadieron nuevas entradas al model-zoo: modelos de estimación de profundidad ST FastDepth (224/256/320), un modelo de pose de puntos de referencia faciales de ST, modelos de mano de detección de palma y puntos de referencia de la mano, y un modelo de detección facial frontal BlazeFace (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Se añadió un script de autodiagnóstico exclusivo de las compilaciones de fábrica (cámara, IMU, ToF, WiFi, LAN) que se incluye y se abre automáticamente al iniciar la variante de fábrica del IDE (0db7fbbb0); la parte LAN del RT1060 de la prueba está actualmente deshabilitada (48370d022).
Otros cambios y mejoras¶
Guardar en el sitio: al guardar un script ya no se expulsa la unidad de la cámara; el IDE escribe
main.pyy vacía el volumen al disco (FlushFileBuffersen Windows,syncfsen Linux,sync_volume_np/F_FULLFSYNCen macOS) para que el dispositivo permanezca montado (1614c572f, 6928b51ea, 35ed53967).Las acciones de la barra de herramientas que se pulsan mientras la cámara está ocupada (deshabilitar el framebuffer, comprimir JPEG, guardar el script, configurar ajustes) ahora se ponen en cola y se ejecutan automáticamente cuando el dispositivo está libre, en lugar de mostrar un cuadro de diálogo de error Busy (f4315f0a4).
El visor del framebuffer ahora se ajusta por defecto a la vista, de modo que la imagen se escala automáticamente a la ventana al inicio, y el panel de salida del terminal serie ahora se muestra por defecto al inicio (f3ce4dc75).
Los archivos de modelo compilados con la extensión
.liteahora se reconocen en todas partes: filtrado y visualización del navegador del model-zoo, alineación del ROMFS del firmware, y los compiladores Vela/STEdge AI ahora emiten salida.lite(f3ce4dc75).El cuadro de diálogo de compilación de modelos de STEdge AI (N6) ahora analiza e informa de los porcentajes de uso de RAM de la NPU y de hyperRAM, y copia la salida de red reubicada a un archivo que coincide con la extensión del modelo (f3ce4dc75).
El navegador del model-zoo ahora muestra la columna Size del archivo y estira la columna del nombre para que encaje, en lugar de ocultar el tamaño (f3ce4dc75).
La plantilla de nuevo script se actualizó a la nueva API del módulo
csiy usa por defecto el tamaño de fotograma VGA, y el ejemplo Hello World incluido se cambió de tamaño de fotograma QVGA a VGA (f3ce4dc75).El cuadro de diálogo Convert Video se reescribió para usar el cuadro de diálogo del cargador compartido con salida coloreada, mensajes de éxito/fallo, un botón OK para cerrar y un error claro cuando FFMPEG no está disponible en la plataforma (f56efc7be).
El visor del framebuffer ahora muestra una advertencia parpadeante cuando una imagen
JPEG/PNGes demasiado grande para almacenar en búfer y enviar, mediante un nuevo código de escapeFB_BUFFER_ERROR(fda826126).La entrada al gestor de arranque (bootloader) DFU ahora obliga al bootloader a permanecer residente en el firmware con protocolo V2, con una detección de versión que recurre a un reinicio simple en bootloaders más antiguos (<1.0.2) que podían quedarse bloqueados al forzarlos (975857221).
Se renombraron y reorganizaron las carpetas de modelos de detección de objetos de ST (
st_yolo_lc_v1ayolo_lc,tiny_yolo_v2ayolo_v2, los modelos de personayolov8na archivos con nombre simple según el tamaño) y se eliminaron las grandes variantes int8 detiny_yolo_v2(34240cc3c).Los tiempos del puerto serie ahora se ajustan mediante las claves de anulación
protocoldel archivosettings.jsondel firmware (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaity las claves V2overrideCRC/overrideSEQ/overrideACK) en lugar de parámetros de línea de comandos en el arranque (019d8bf1d).Se estableció el límite de longitud de línea del servidor de lenguaje de Python en 120 columnas para flake8 y pycodestyle, de modo que las líneas largas ya no se marcan en el valor por defecto de 79 (dabb82062).
Se redujo el conjunto de modelos de aprendizaje automático incluidos moviendo la colección de modelos de Qualcomm y
google/mobilenet_v1amodels_unusedpara reducir el instalador (c44ddba20).
Correcciones de errores¶
Los cuadros de diálogo de progreso de descarga de firmware y de actualización de recursos se hicieron a prueba de fallos mediante guardas
QPointer, de modo que ya no usan un cuadro de diálogo eliminado si se cierra a mitad de la descarga (f3ce4dc75).El escaneo de unidades ahora sigue reescaneando hasta encontrar la unidad USB de la cámara y borra las entradas de unidad obsoletas al desconectar, eliminando el anterior truco del temporizador de un solo disparo (a31d41b4e).
Varias correcciones de conexión y serie: los sensores ocultos (p. ej.
SoftCSI) ya no recargan el tipo de sensor mostrado, un temporizador de keep-alive serie en Windows evita los bloqueos USB, Start ya no reinicia un script que ya se está ejecutando, y el canal de la cámara se desconecta limpiamente al cerrar el puerto (a8e467be6).La vista del profiler restauró su selección de contador de eventos PMU por columna (menús de eventos marcables) y el estado guardado de contador/encabezado que se había deshabilitado temporalmente (40c679e90).
Soporte de plataforma y herramientas¶
Base de Qt Creator: 14.0.2.
Firmware incluido: actualizado de 4.7.0 a 4.8.1, recompilando el firmware para OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 y las placas Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).
Se corrigió el protocolo de enlace de versión del protocolo en macOS para las placas RT1062 y AE3 dividiendo la transferencia USB multicomando en fragmentos de tamaño
USBDBG_LENque esas placas pueden manejar (6b9d5f842).Se reelaboró el paquete de controladores de Windows incluido: se añadieron archivos de controlador firmados
.cat/.infpor placa (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) y se trasladaron los controladores serie CDC a una nueva carpetaopenmvcdccon un instalador automático basado en dpinst (439557829, ba3b01bfb).Se añadió soporte para revisiones más antiguas del sensor de cámara MT9V032 registrando los IDs de sensor
0x1311y0x1312(junto al ya existente0x1313) comoMT9V0X2(eaaa624e3).
Cambios incompatibles¶
Esta versión no tiene rupturas en la API de scripting, pero hay algunos cambios de flujo de trabajo visibles para el usuario:
Al guardar un script ya no se expulsa ni se desmonta la unidad USB de la cámara. El IDE ahora vacía los búferes del volumen en el sitio, de modo que el dispositivo permanece montado tras guardar.
Se eliminaron los parámetros serie de arranque
-override_read_timeout(predeterminado 5000 ms),-override_read_stall_timeout(predeterminado 1000 ms) y-override_per_command_wait(predeterminado 1 ms, 2 ms en macOS); los tiempos del puerto serie ahora se configuran mediante las claves de anulaciónprotocoldel archivosettings.jsondel firmware (019d8bf1d).Los gestores de arranque (bootloaders) incluidos ahora se distribuyen solo como
.bin; se eliminaron los archivos de firmware y de bootloader.dfupor placa.