v4.8.1¶
v4.8.1 bygger på Qt Creator 14.0.2 och fokuserar på ett nytt högtillförlitligt OpenMV V2-kameraprotokoll, en inbyggd kodprofilerare och ett sparflöde som håller kameran monterad i stället för att mata ut den. Medföljande fast programvara och hela exempeluppsättningen uppdateras till 4.8.1. Det finns inga brott i skript-API:et, men beteendet att sparning inte längre matar ut och borttagningen av några startflaggor för seriell anslutning är användarsynliga ändringar i arbetsflödet.
Höjdpunkter¶
OpenMV Protocol V2 är en ny högtillförlitlig kamerastack (
OMVCamera/OMVTransport/OMVDebug) med CRC32, sekvensering, ACK/NAK, omsändning, händelser och fragmentering. Det förhandlas fram automatiskt vid anslutning och styr återställning, uppstart, strömning, skriptkörning och statistik.Code Profiler är ett nytt fönster (
Window>Show Code Profiler) som hämtar profileringsposter per funktion från kameran och visar anrop, min/max/total/genomsnittliga mikrosekunder (μs), genomsnittliga cykler, procent och händelseräknare i en sorterbar tabell.Spara på plats matar inte längre ut kamerans enhet; IDE:n skriver nu
main.pyoch tömmer volymen till disk så att enheten förblir monterad.Detektering av flera sensorer rapporterar varje kamera på ett kort, som visas i statusfältet som
Sensors: X, Ymed huvudsensorn listad först.Dynamisk bildrutsläsning beräknar om den bäst anpassade råa strömningsupplösningen per pixelformat och konfigurerar om strömmen automatiskt.
Medföljande fast programvara och exempel uppdateras till 4.8.1 på alla kort, med nya exempel för GenX320-händelsekamera, TensorFlow ML, Alif OLED och LCD/Touch-LCD-shield.
Nya funktioner¶
Lade till OpenMV V2-kommunikationsprotokollet: ett komplett transport- och transaktionslager med CRC32, sekvensering, ACK/NAK, omsändning, händelser och fragmentering, plus en
OMVCamera-klass som förhandlas fram automatiskt vid anslutning och är integrerad i den seriella drivrutinen (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Lade till fönstret Code Profiler (
Window>Show Code Profiler), som hämtar profileringsposter per funktion och visar anrop, min/max/total/genomsnittliga mikrosekunder (μs), genomsnittliga cykler, procent och händelseräknare och löser upp adresser till symboler via en medföljande ELFIO ELF-tolk (019d3cd2c, 57cd9e1cc).Lade till en dialogruta för Debug Protocol Settings som visar live System Info, Host Stats och Device Stats som uppdateras varje sekund och exponerar avsökningsfrekvenser per kanal plus kombinerade kontra delade avsökningskontroller (5220a6125, 0da2f79d0).
Lade till detektering av flera sensorer: ett kort med fler än en kamera rapporterar dem alla i statusfältet som
Sensors: X, Y, med huvudsensorn först (cebc79ce7).Lade till dynamisk bildrutsläsning (på som standard), som beräknar om den bäst anpassade råa strömningsupplösningen per pixelformat (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) och konfigurerar om strömmen (75c073bdb, 0da2f79d0).Lade till avkodning av bildbuffert för de råa pixelformaten
BINARY(1-bpp mono) ochARGB8(32-bitars alfa) så att dessa bildtyper nu renderas i visaren (dabb82062).På Windows söker Connect nu efter USB-enheter som flaggats med ett problem av operativsystemet och varnar med en lista över de felaktiga enheter som kan blockera anslutningen (1a5beb081, 1b59cd78e).
Lade till en registreringsindikator i statusfältet: en grön
Registered- eller korallfärgadUnregistered-knapp för den anslutna kameran, klickbar för att registrera kortet (a8c98a4b9).Bildbuffertvisaren kan nu visa ett centrerat textmeddelande som skickas från det körande skriptet via en ny
FB_MESSAGE-escapekod i stället för en bild (530048201).Lade till nya poster i modellbiblioteket: ST FastDepth-modeller för djupuppskattning (224/256/320), en ST-poseringsmodell för huvudlandmärken, modeller för handflatedetektering och handlandmärken samt en BlazeFace-modell för frontal ansiktsdetektering (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Lade till ett självtestskript som endast finns i fabriksbygget (kamera, IMU, ToF, WiFi, LAN) som medföljer och öppnas automatiskt vid start i fabriksvarianten av IDE:n (0db7fbbb0); LAN-delen för RT1060 i testet är för närvarande inaktiverad (48370d022).
Övriga ändringar och förbättringar¶
Spara på plats: att spara ett skript matar inte längre ut kamerans enhet; IDE:n skriver
main.pyoch tömmer volymen till disk (FlushFileBufferspå Windows,syncfspå Linux,sync_volume_np/F_FULLFSYNCpå macOS) så att enheten förblir monterad (1614c572f, 6928b51ea, 35ed53967).Verktygsfältsåtgärder som klickas medan kameran är upptagen (inaktivera bildbuffert, JPEG-komprimera, spara skript, konfigurera inställningar) köas nu och körs automatiskt när enheten är ledig i stället för att visa en dialogruta med Busy-fel (f4315f0a4).
Bildbuffertvisaren använder nu anpassa-i-vy som standard så att bilden skalas automatiskt till fönstret vid start, och utskriftsfönstret för den seriella terminalen visas nu som standard vid start (f3ce4dc75).
Kompilerade modellfiler med filändelsen
.litekänns nu igen överallt: filtrering och visning i modellbiblioteksbläddraren, ROMFS-justering i fast programvara, och Vela/STEdge AI-kompilatorerna genererar nu.lite-utdata (f3ce4dc75).Dialogrutan för modellkompilering i STEdge AI (N6) tolkar och rapporterar nu procentandelar för NPU-RAM och hyperRAM-användning och kopierar det omplacerade nätverksutdatat till en fil som matchar modellens filändelse (f3ce4dc75).
Modellbiblioteksbläddraren visar nu kolumnen Size och sträcker ut namnkolumnen så att den passar, i stället för att dölja storleken (f3ce4dc75).
Mallen för nytt skript uppdaterades till det nya
csi-modul-API:et och använder VGA-bildstorlek som standard, och det medföljande Hello World-exemplet byttes från QVGA- till VGA-bildstorlek (f3ce4dc75).Dialogrutan Convert Video skrevs om för att använda den delade laddningsdialogrutan med färgad utdata, meddelanden om lyckat/misslyckat, en OK-knapp för att stänga och ett tydligt fel när FFMPEG inte är tillgängligt på plattformen (f56efc7be).
Bildbuffertvisaren visar nu en blinkande varning när en
JPEG/PNG-bild är för stor för att buffra och skicka, via en nyFB_BUFFER_ERROR-escapekod (fda826126).Inträde i DFU-startladdaren tvingar nu startladdaren att förbli resident på fast programvara med V2-protokoll, med versionsdetektering som faller tillbaka på en vanlig återställning på äldre startladdare (<1.0.2) som kunde fastna när de tvingades (975857221).
Bytte namn på och omorganiserade ST:s modellmappar för objektdetektering (
st_yolo_lc_v1tillyolo_lc,tiny_yolo_v2tillyolo_v2,yolov8n-personmodeller till enkla storleksnamngivna filer) och tog bort de storatiny_yolo_v2int8-varianterna (34240cc3c).Seriell tidsstyrning ställs nu in via
protocol-åsidosättningsnycklarna isettings.jsonför fast programvara (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaitoch V2-nycklarnaoverrideCRC/overrideSEQ/overrideACK) i stället för kommandoradsflaggor vid start (019d8bf1d).Ställde in radlängdsgränsen för Pythons språkserver till 120 kolumner för flake8 och pycodestyle så att långa rader inte längre flaggas vid standardvärdet 79 (dabb82062).
Minskade den medföljande uppsättningen maskininlärningsmodeller genom att flytta Qualcomm-modellsamlingen och
google/mobilenet_v1tillmodels_unusedför att krympa installationsprogrammet (c44ddba20).
Buggfixar¶
Förloppsdialogrutorna för nedladdning av fast programvara och resursuppdatering gjordes kraschsäkra med
QPointer-skydd så att de inte längre använder en raderad dialogruta om den stängs mitt under nedladdningen (f3ce4dc75).Enhetssökning fortsätter nu att söka om tills kamerans USB-enhet hittas och rensar inaktuella enhetsposter vid frånkoppling, vilket tar bort den tidigare engångstimer-hacken (a31d41b4e).
Flera anslutnings- och seriella fixar: dolda sensorer (t.ex.
SoftCSI) belamrar inte längre den visade sensortypen, en seriell keep-alive-timer på Windows förhindrar USB-stopp, Start startar inte längre om ett redan körande skript, och kamerakanalen kopplas från rent när porten stängs (a8e467be6).Profilerarvyn återställde sitt val av PMU-händelseräknare per kolumn (avbockningsbara händelsemenyer) och sparat räknar-/rubriktillstånd som tillfälligt hade inaktiverats (40c679e90).
Plattforms- och verktygsstöd¶
Qt Creator-bas: 14.0.2.
Medföljande fast programvara: uppdaterad från 4.7.0 till 4.8.1, med ombyggd fast programvara för OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 och Arduino GIGA/Nicla Vision/Portenta H7-korten (2657818ca).
Fixade handskakningen för protokollversion på macOS för RT1062- och AE3-kort genom att dela upp den seriella USB-överföringen med flera kommandon i
USBDBG_LEN-stora delar som dessa kort kan hantera (6b9d5f842).Omarbetade det medföljande Windows-drivrutinspaketet: lade till signerade
.cat/.inf-drivrutinsfiler per kort (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) och flyttade CDC-seriedrivrutinerna till en nyopenmvcdc-mapp med en dpinst-baserad automatisk installerare (439557829, ba3b01bfb).Lade till stöd för äldre revisioner av MT9V032-kamerasensorn genom att registrera sensor-ID:n
0x1311och0x1312(vid sidan av befintliga0x1313) somMT9V0X2(eaaa624e3).
Brytande ändringar¶
Den här utgåvan har inga brott i skript-API:et, men det finns några användarsynliga ändringar i arbetsflödet:
Att spara ett skript matar inte längre ut eller avmonterar kamerans USB-enhet. IDE:n tömmer nu volymbuffertarna på plats, så att enheten förblir monterad efter en sparning.
Startflaggorna för seriell anslutning
-override_read_timeout(standard 5000 ms),-override_read_stall_timeout(standard 1000 ms) och-override_per_command_wait(standard 1 ms, 2 ms på macOS) togs bort; seriell tidsstyrning konfigureras nu viaprotocol-åsidosättningsnycklarna isettings.jsonför fast programvara (019d8bf1d).Medföljande startladdare levereras nu endast som
.bin;.dfu-filerna för fast programvara och startladdare per kort togs bort.