v5.1.0#
v5.1.0 es una versión de nuevas funciones. El panel bajo el búfer de fotogramas crece de un histograma a un conjunto de vistas en vivo – Información de la placa, Memoria, Estadísticas y la nueva vista Canales, que convierte los valores que publica un script en widgets, gráficas, espectros y mapas de profundidad y los graba en archivos –, el búfer de fotogramas obtiene un selector de fuente para las cámaras con varios sensores, el IDE aprende a cargar repositorios de terceros de placas, firmware, ejemplos, modelos y stubs, y las grabaciones de vídeo pasan a H.264. Se admiten nuevas placas y sensores, las herramientas de firmware se reforzaron con una auditoría completa de cada cambio desde la v5.0.0, y se trajeron unos cuantos comportamientos de OpenMV Studio. Está construido sobre Qt Creator 14.0.2 e incluye el firmware v5.0.1.
Aspectos destacados#
Vistas del panel – la barra de título del panel del histograma gana un selector que alterna el panel entre las vistas Histograma, Información de la placa (el hardware, las versiones y las capacidades de la cámara conectada), Memoria (gráficas en vivo del heap de MicroPython y de cada pool UMA, con seguimiento de picos), Estadísticas (los contadores de paquetes, de errores y de eventos por canal del protocolo de depuración) y Canales.
Vista Canales – un script puede publicar canales con nombre de datos y controles a través del protocolo de depuración, y el IDE los representa en vivo: etiquetas, interruptores, deslizadores, cuadros numéricos, botones de opción, campos de texto, selectores, botones y bloques de texto que escriben de vuelta en la cámara; gráficas de forma de onda con desplazamiento, zoom, marcadores, disparos, historial y un analizador de espectro; y mapas de profundidad con las propias paletas de la cámara, tres filtros de escalado y mapeo tonal. Cualquier gráfica o mapa se graba en archivos CSV, WAV, NumPy o JSON y CBOR de Edge Impulse – incluido un Grabar todo para un canal completo – para recopilar datos de entrenamiento. Los últimos valores permanecen en pantalla cuando un script se detiene.
Selector de fuente del búfer de fotogramas – las cámaras con más de un sensor de imagen muestran un selector en la barra de título del búfer de fotogramas para elegir qué sensor transmite al IDE (o para desactivar la transmisión), el conmutador JPG pasó a ser un selector de modo de transmisión JPG / RAW, y el título del panel indica el formato en el que llegó cada fotograma.
Repositorios de terceros – un fabricante puede publicar un repositorio de placas, firmware (canales de lanzamiento y de desarrollo), ejemplos, modelos de aprendizaje automático y stubs
.pyi; el IDE lo instala desde una URL o desde una carpeta dejada por un instalador, lo fusiona con su propio contenido, lo mantiene actualizado y te permite ordenar los fabricantes por prioridad. Se gestiona desde Preferences → OpenMV → Third Party Repositories.Nuevo hardware – la placa OpenMV N6 Classic (incluidos su controlador de bootloader, su regla udev y su entrada de recuperación ROM-DFU) y los sensores FLIR Lepton 3.1R y UW.
Grabaciones H.264 – el grabador del búfer de fotogramas y el conversor de vídeo ahora codifican en H.264 en lugar de MPEG-4 Parte 2, con un intervalo de fotogramas clave fijo para que las grabaciones se puedan recorrer limpiamente y con la velocidad de fotogramas redondeada a un número entero.
Correcciones de la auditoría – cada commit desde la v5.0.0 se revisó dos veces en busca de regresiones, con especial atención a las rutas del firmware, del bootloader y de ROMFS; los defectos encontrados están corregidos en esta versión (consulta las correcciones de errores).
Nuevas funciones#
Vistas Información de la placa, Memoria y Estadísticas en el panel del histograma, con estilo a sangre completa en los temas oscuro y claro y texto seleccionable (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd).
Vista Canales – el vocabulario completo de controles (etiqueta, interruptor, deslizador, cuadro numérico, botón de opción, campo de texto, selector, botón y texto), gráficas de forma de onda con un analizador de espectro (ventanas de Hann, Hamming, Blackman y rectangular, promediado, retención de picos, frecuencia logarítmica), disparos por flanco ascendente y descendente, marcadores, historial y exportación de la gráfica; mapas de profundidad con las paletas Profundidad, Arcoíris, Ironbow y Evento, escalado más cercano / bilineal / bicúbico, mapeo tonal Rango del script / Rango auto / Ecualizar, un botón de pausa, lectura al pasar el cursor, una cabecera con el rango declarado y el mín. / máx. / media del fotograma, y Guardar imagen; grabación en CSV, WAV, NumPy y JSON / CBOR de Edge Impulse con una etiqueta opcional de Edge Impulse, división en partes para capturas largas y Grabar todo; un intervalo de Sondeo de canales en las preferencias del protocolo (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee).
Selector de fuente del búfer de fotogramas y lectura del formato – elige el sensor que transmite en las cámaras con varios sensores, o Desactivado; el formato de fotograma recibido se muestra en el título del panel; el conmutador JPG es ahora un selector Modo JPG / Modo RAW (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd).
Repositorios de terceros – repositorios de firmware basados en archivos fusionados con la lista de placas integrada, actualizaciones por red con una página de Preferences, un canal de firmware de desarrollo por fabricante, prioridad de fabricantes controlada por el usuario, ejemplos del fabricante fusionados en File → Examples, modelos del fabricante fusionados en el Model Zoo, stubs
.pyipersonalizados suministrados al autocompletado, avisos de anulación cuando un fabricante oculta contenido integrado y una comprobación de licencia para las placas del fabricante (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888).Eliminación de comentarios antes de ejecutar – los comentarios se eliminan del script antes de enviarlo a la cámara, lo que ahorra RAM de la cámara en los scripts con muchos comentarios; las líneas se conservan, de modo que los números de línea del rastreo siguen coincidiendo con el editor (677546ee033).
Marca de error en línea – cuando un script muere con una excepción, el editor marca en rojo la línea culpable con el texto del error al lado; la marca desaparece cuando editas el archivo, vuelves a ejecutar o desconectas (677546ee033).
Arrastrar y soltar en el editor de ROMFS – los archivos soltados desde el escritorio pasan por la misma compilación de scripts y conversión de modelos que Add File, en la carpeta sobre la que se soltaron (677546ee033).
Mejoras del editor, la terminal y la interfaz#
Los histogramas se calculan a partir de RGB completo de 8 bits en lugar de las tablas RGB565 de la cámara, con una paleta de gráficas compartida, rellenos con mezcla alfa y líneas de cuadrícula más tenues (238e099373e, f126e8f34c0, cebbf0c9e2c).
Las vistas ocultas del panel no hacen trabajo – el histograma omite su cálculo y sus redibujados mientras se muestra otra vista o el panel está contraído, y se pone al día al mostrarse de nuevo; los redibujados de tamaño cero se silencian (c8730df8399).
Los scripts de ejemplo se abren con una línea en blanco tras las importaciones, y los ejemplos incluidos se reformatearon del mismo modo (1f88f617ec5, 87c8f7d41c7).
El autocompletado muestra los nombres privados – el servidor de lenguaje integrado ya no filtra los miembros con prefijo
_, que usan los módulos de la cámara (23ab5b38bb3).macOS – los cuadros de grupo de los controles del protocolo en las preferencias ya no están apretados, las vistas de elementos están protegidas contra fallos de accesibilidad de Cocoa, se avisa a los usuarios de Apple Silicon del ajuste de seguridad «Allow accessories to connect», y a los usuarios de RT1062 cuando no se ha concedido Input Monitoring (las actualizaciones de firmware lo necesitan); ambos avisos se muestran tras conectar (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d).
Atajos en modo visor – se desactivaron atajos sueltos que rompían el modo visor (y el IDE normal), y el modo visor ya no persiste sus atajos borrados en los ajustes del IDE completo (251b422f642, 0d153671c1d).
Los sensores desconocidos se nombran por su id de chip en la barra de estado para poder identificarlos y añadirlos a la tabla de sensores (df561775b54).
Firmware, placas y herramientas#
Compatibilidad con OpenMV N6 Classic: entrada de placa, controlador DFU de Windows y códigos del instalador, regla udev de Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60).
Compatibilidad con los sensores FLIR Lepton 3.1R y UW (12c03024f3c).
Traspaso al bootloader IMX – un capturador armado de antemano reclama el bootloader del RT1062 en el instante en que se enumera, reemplazando el bucle que lanzaba un proceso por sondeo y podía perder la ventana de un segundo en un equipo cargado (3d8b63c6859).
Zips de firmware – Load Custom Firmware acepta paquetes que solo contienen romfs y paquetes sin ROMFS, y el firmware personalizado o de desarrollo se prepara para las placas IMX que ya están en modo bootloader (b6f16f54c1a, 94d5fd5c30e).
Directorios de preparación privados para el firmware de desarrollo / personalizado, las imágenes del editor de ROMFS y los archivos temporales de las herramientas de vídeo, de modo que los archivos obsoletos de otros procesos nunca puedan flashearse ni convertirse por error (939154501af, a288fe712e7, 5c8c717adec).
Vídeo H.264 – las grabaciones y las conversiones codifican en H.264 con un intervalo de fotogramas clave fijo; una velocidad de fotogramas grabada cercana a un número entero se ajusta a él para que los reproductores indiquen 30 FPS en lugar de 29,97 (6ad1968341d, d62c110e155, bab488a54fe).
Suma de comprobación del zip de recursos – la actualización de recursos del IDE se verifica contra un SHA-256 publicado junto a la versión (677546ee033).
User-Agent honesto en las solicitudes a los servidores de OpenMV (c4279c0213e).
Corrección de errores#
Dos pasadas de revisión sobre cada cambio desde la v5.0.0 encontraron y corrigieron lo siguiente (ccea3b17d01, 71826200611):
Rutas del firmware y del bootloader – un zip de Load Custom Firmware sobre una placa ya en modo bootloader flasheaba en su lugar la compilación de lanzamiento; la ruta de recuperación de Alif ahora rechaza una compilación personalizada en vez de flashear la de lanzamiento; una N6 Classic inutilizable se reparaba con el bootloader y el firmware de la N6 normal; una raíz de recursos de terceros obsoleta podía desviar una placa integrada inutilizable hacia los archivos del fabricante; el capturador IMX podía seguir adelante y flashear tras fallar, ignoraba Cancelar mientras esperaba al flashloader y dejaba el puerto serie abierto tras una cancelación durante el armado; el bootloader de la N6 Classic no tenía regla udev; los códigos de salida aceptados por el instalador de controladores de Windows tenían una errata.
Editor de ROMFS – Cancelar durante una lectura de ROMFS informaba «Failed to unpack ROMFS!» y esperaba diez segundos a una cámara todavía en el bootloader; Cancelar durante una escritura terminaba en silencio con un ROMFS posiblemente parcial; un error de dfu-util durante una escritura se informaba como éxito; Cancelar en el diálogo posterior descartaba todas las ediciones; Auto Reconnect podía conectar por debajo del editor abierto; Edit ROMFS estando conectado desconectaba y reconectaba primero sin necesidad; los directorios temporales del conversor se filtraban. Tras una operación cancelada ahora se pide al bootloader que salga de DFU para que la cámara vuelva por sí sola.
Repositorios de terceros – las entradas del zip se validan antes de extraerlas (sin recorrido de rutas ni enlaces simbólicos), las instalaciones parciales y las reinstalaciones conservan la copia antigua hasta que la nueva está en su sitio, una placa de fabricante rechazada ya no arrastra consigo a la placa integrada con la que se solapaba, una máscara de PID ausente no coincidía con nada en tiempo de ejecución, y las filas base del índice de ejemplos / modelos ya no capturan los archivos del fabricante con el mismo nombre.
Búfer de fotogramas y sensores – el sensor de eventos GENX320 (id de chip por encima de
0x80000000) desactivaba el búfer de fotogramas; una selección de sensor guardada no sobrevivía a un reinicio; la antigua preferencia «disable frame buffer» no se migraba; el comando de fuente de transmisión está condicionado a la versión del protocolo; la métrica de enfoque se congelaba mientras la página del histograma estaba oculta; el formato de fotograma permanecía en el título tras desconectar.Flujo de conexión – los avisos de macOS podían tragarse el «Sí» del aviso de actualización de firmware; el Model Zoo siempre se abría contraído y sin restaurar la selección; la alternativa de unidad única para la unidad de la cámara era inalcanzable cuando la cámara llevaba conectada más de diez segundos.
Vista Canales y grabador – tamaños de fotograma hostiles podían desbordar las comprobaciones de tamaño; los grabadores de Edge Impulse reasignaban memoria en cada fragmento y ahora están limitados a 64 MB por parte; un esquema con separadores en los nombres podía indexar más allá de la lista de registros; los registros duplicados dejaban huérfano a un grabador en marcha; las escrituras se descartan mientras la vista está congelada; la lista de canales ahora se actualiza en los eventos de anulación de registro y de reinicio suave.
Vídeo – un ancho impar introducido por el usuario rompía la codificación H.264 en las compilaciones con libx264; las conversiones
.bincanceladas o fallidas dejaban fotogramas que la siguiente ejecución incorporaba.Protocolo – el vaciado de lectura que se ejecuta antes de la detección del protocolo está acotado (incidencia #336) (77cd13af76f); la asociación entre la cámara y su unidad ya no pierde la carrera frente a otros volúmenes (9877480c304).
Un aviso
-Wdeprecated-copyen el envoltorio de información del puerto serie (abcfaa8af5e).
Localización#
Los 37 catálogos se actualizaron para las vistas del panel, la vista Canales y su mapa de profundidad, y cada nueva cadena de esta versión (1b71f243733, dc13c23ed81, a7debafdafa, 173a57422f7).
Compatibilidad de plataformas y herramientas#
Base de Qt Creator: 14.0.2.
La versión de OpenMV IDE sube a 5.1.0.
Firmware incluido: v5.0.1 (consulta el registro de cambios del firmware).
Nuevas placas y sensores: OpenMV N6 Classic; FLIR Lepton 3.1R y UW.
Cambios incompatibles#
Ninguno para los proyectos existentes. El conmutador JPG de la barra de título del búfer de fotogramas es ahora un selector Modo JPG / Modo RAW, y su antiguo ajuste «disable frame buffer» se migra a la entrada Desactivado del nuevo selector de fuente. Los comentarios se eliminan de los scripts antes de ejecutarlos; un script que dependa de leer su propio texto fuente en tiempo de ejecución no debería hacerlo.