v4.8.1

v4.8.1 pohjautuu Qt Creator 14.0.2:een ja keskittyy uuteen erittäin luotettavaan OpenMV V2 -kameraprotokollaan, sisäänrakennettuun Code Profileriin sekä tallennustyönkulkuun, joka pitää kameran liitettynä sen poistamisen sijaan. Mukana toimitettava laiteohjelmisto ja koko esimerkkikokoelma on päivitetty versioon 4.8.1. Skriptaus-API:in ei tehty muutoksia, jotka rikkovat yhteensopivuuden, mutta tallennuksen muutos (ei enää poista laitetta) ja muutamien käynnistysaikaisten sarjaliikennelippujen poisto ovat käyttäjälle näkyviä työnkulun muutoksia.

Kohokohdat

  • OpenMV Protocol V2 on uusi erittäin luotettava kamerapino (OMVCamera/OMVTransport/OMVDebug), jossa on CRC32, sekvensointi, ACK/NAK, uudelleenlähetys, tapahtumat ja fragmentointi. Se neuvotellaan automaattisesti yhteyden muodostuksen yhteydessä ja ohjaa nollausta, käynnistystä, suoratoistoa, skriptin suorittamista ja tilastoja.

  • Code Profiler on uusi ikkuna (Window > Show Code Profiler), joka kyselee kameralta funktiokohtaisia profilointitietueita ja näyttää kutsut, min/max/yhteensä/keskiarvo mikrosekunteina (μs), keskimääräiset syklit, prosenttiosuuden ja tapahtumalaskurit lajiteltavassa taulukossa.

  • Tallennus paikalleen ei enää poista kameran asemaa; IDE kirjoittaa nyt main.py-tiedoston ja huuhtelee taltion levylle, joten laite pysyy liitettynä.

  • Usean sensorin tunnistus raportoi jokaisen kortin kameran, ja ne näytetään tilarivillä muodossa Sensors: X, Y pääsensori ensimmäisenä.

  • Dynaaminen kehyksen luku laskee parhaiten sopivan raakasuoratoiston resoluution uudelleen kullekin pikseliformaatille ja konfiguroi suoratoiston automaattisesti uudelleen.

  • Mukana toimitettava laiteohjelmisto ja esimerkit on päivitetty versioon 4.8.1 kaikilla korteilla, ja mukaan on lisätty uusia GenX320-tapahtumakamera-, TensorFlow ML-, Alif OLED- sekä LCD/Touch-LCD-shield-esimerkkejä.

Uudet ominaisuudet

  • Lisättiin OpenMV V2 -tietoliikenneprotokolla: täysi siirto- ja transaktiokerros, jossa on CRC32, sekvensointi, ACK/NAK, uudelleenlähetys, tapahtumat ja fragmentointi, sekä OMVCamera-luokka, joka neuvotellaan automaattisesti yhteyden muodostuksen yhteydessä ja on integroitu sarjaliikenneajuriin (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).

  • Lisättiin Code Profiler -ikkuna (Window > Show Code Profiler), joka kyselee funktiokohtaisia profilointitietueita ja näyttää kutsut, min/max/yhteensä/keskiarvo mikrosekunteina (μs), keskimääräiset syklit, prosenttiosuuden ja tapahtumalaskurit sekä ratkaisee osoitteet symboleiksi mukana toimitettavan ELFIO ELF -jäsentimen avulla (019d3cd2c, 57cd9e1cc).

  • Lisättiin Debug Protocol Settings -valintaikkuna, joka näyttää reaaliaikaiset järjestelmätiedot, isäntätilastot ja laitetilastot sekunnin välein päivitettyinä ja tarjoaa kanavakohtaiset kyselynopeudet sekä yhdistetyn ja erotetun kyselyn säätimet (5220a6125, 0da2f79d0).

  • Lisättiin usean sensorin tunnistus: kortti, jossa on useampi kuin yksi kamera, raportoi ne kaikki tilarivillä muodossa Sensors: X, Y pääsensori ensin (cebc79ce7).

  • Lisättiin dynaaminen kehyksen luku (oletuksena päällä), joka laskee parhaiten sopivan raakasuoratoiston resoluution uudelleen kullekin pikseliformaatille (BINARY, GRAY, RGB565, ARGB8, JPEG, PNG) ja konfiguroi suoratoiston uudelleen (75c073bdb, 0da2f79d0).

  • Lisättiin kehyspuskurin dekoodaus BINARY- (1-bpp mono) ja ARGB8- (32-bittinen alfa) raakapikseliformaateille, joten nämä kuvatyypit renderöidään nyt katselimessa (dabb82062).

  • Windowsissa Connect skannaa nyt USB-laitteet, jotka käyttöjärjestelmä on merkinnyt ongelmallisiksi, ja varoittaa luettelemalla viallisia laitteita, jotka voivat estää yhteyden muodostamisen (1a5beb081, 1b59cd78e).

  • Lisättiin tilariville rekisteröinnin osoitin: vihreä Registered- tai korallinpunainen Unregistered-painike liitetylle kameralle, jota napsauttamalla kortin voi rekisteröidä (a8c98a4b9).

  • Kehyspuskurin katselin voi nyt näyttää suoritettavan skriptin lähettämän keskitetyn tekstiviestin uuden FB_MESSAGE-escape-koodin avulla kuvan sijaan (530048201).

  • Lisättiin uusia model-zoo-merkintöjä: ST FastDepth -syvyysarviointimallit (224/256/320), ST-pään maamerkkien asentomalli, kämmenentunnistus- ja käden maamerkkimallit sekä BlazeFace-etukasvojen tunnistusmalli (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).

  • Lisättiin vain tehdaskäännökseen tarkoitettu itsetestiskripti (kamera, IMU, ToF, WiFi, LAN), joka toimitetaan mukana ja avataan automaattisesti käynnistyksen yhteydessä tehdas-IDE-variantissa (0db7fbbb0); testin RT1060 LAN -osuus on tällä hetkellä poistettu käytöstä (48370d022).

Muut muutokset ja parannukset

  • Tallennus paikalleen: skriptin tallentaminen ei enää poista kameran asemaa; IDE kirjoittaa main.py-tiedoston ja huuhtelee taltion levylle (FlushFileBuffers Windowsissa, syncfs Linuxissa, sync_volume_np/F_FULLFSYNC macOS:ssä), joten laite pysyy liitettynä (1614c572f, 6928b51ea, 35ed53967).

  • Työkalupalkin toiminnot, joita napsautetaan kameran ollessa varattu (kehyspuskurin poistaminen käytöstä, JPEG-pakkaus, skriptin tallentaminen, asetusten määrittäminen), asetetaan nyt jonoon ja suoritetaan automaattisesti, kun laite on vapaa, sen sijaan että näytettäisiin Busy-virheikkuna (f4315f0a4).

  • Kehyspuskurin katselin käyttää nyt oletuksena sovitusta näkymään, joten kuva skaalautuu automaattisesti ikkunaan käynnistyksen yhteydessä, ja sarjapäätteen tulosteruutu näytetään nyt oletuksena käynnistyksen yhteydessä (f3ce4dc75).

  • Käännetyt mallitiedostot, joilla on .lite-pääte, tunnistetaan nyt kaikkialla: model-zoo-selaimen suodatuksessa ja näytössä, laiteohjelmiston ROMFS-kohdistuksessa, ja Vela/STEdge AI -kääntäjät tuottavat nyt .lite-tulosteen (f3ce4dc75).

  • STEdge AI (N6) -mallin käännösvalintaikkuna jäsentää ja raportoi nyt NPU-RAM:n ja hyperRAM:n käyttöprosentit ja kopioi uudelleensijoitetun verkon tulosteen tiedostoon, joka vastaa mallin päätettä (f3ce4dc75).

  • Model-zoo-selain näyttää nyt tiedoston Size-sarakkeen ja venyttää nimisarakkeen sopivaksi sen sijaan, että koko piilotettaisiin (f3ce4dc75).

  • Uuden skriptin mallipohja päivitettiin uuteen csi-moduulin API:in ja käyttää oletuksena VGA-kehyskokoa, ja mukana toimitettava Hello World -esimerkki vaihdettiin QVGA-kehyskoosta VGA-kehyskokoon (f3ce4dc75).

  • Convert Video -valintaikkuna kirjoitettiin uudelleen käyttämään jaettua lataajavalintaikkunaa värillisellä tulosteella, onnistumis-/epäonnistumisviesteillä, OK-sulkemispainikkeella ja selkeällä virheellä, kun FFMPEG ei ole käytettävissä alustalla (f56efc7be).

  • Kehyspuskurin katselin näyttää nyt vilkkuvan varoituksen, kun JPEG/PNG-kuva on liian suuri puskuroitavaksi ja lähetettäväksi, uuden FB_BUFFER_ERROR-escape-koodin avulla (fda826126).

  • DFU-käynnistyslataimeen siirtyminen pakottaa nyt käynnistyslataimen pysymään aktiivisena V2-protokollan laiteohjelmistossa, ja versiontunnistus palaa tavalliseen nollaukseen vanhemmilla käynnistyslataimilla (<1.0.2), jotka voisivat juuttua pakotettaessa (975857221).

  • Nimettiin uudelleen ja järjesteltiin ST-objektintunnistusmallien kansiot (st_yolo_lc_v1 -> yolo_lc, tiny_yolo_v2 -> yolo_v2, yolov8n-henkilömallit yksinkertaisiksi kokonimisiksi tiedostoiksi) ja poistettiin suuret tiny_yolo_v2 int8 -variantit (34240cc3c).

  • Sarjaliikenteen ajoitus säädetään nyt laiteohjelmiston settings.json-tiedoston protocol-ohitusavainten kautta (overrideReadTimeout, overrideReadStallTimeout, overridePerCommandWait sekä V2:n overrideCRC/overrideSEQ/overrideACK-avaimet) käynnistysaikaisten komentoriviparametrien sijaan (019d8bf1d).

  • Pythonin kielipalvelimen rivinpituuden raja asetettiin 120 sarakkeeseen flake8:lle ja pycodestylelle, joten pitkiä rivejä ei enää merkitä oletusarvolla 79 (dabb82062).

  • Pienennettiin mukana toimitettavaa koneoppimismallien joukkoa siirtämällä Qualcomm-mallikokoelma ja google/mobilenet_v1 kansioon models_unused asennusohjelman pienentämiseksi (c44ddba20).

Korjaukset

  • Laiteohjelmiston latauksen ja resurssipäivityksen edistymisikkunat tehtiin kaatumisvarmoiksi QPointer-suojuksilla, joten ne eivät enää käytä poistettua valintaikkunaa, jos se suljetaan kesken latauksen (f3ce4dc75).

  • Asemien skannaus jatkaa nyt uudelleenskannausta, kunnes kameran USB-asema löytyy, ja tyhjentää vanhentuneet asemamerkinnät yhteyden katketessa, mikä poistaa aiemman kertaluonteisen ajastinkikan (a31d41b4e).

  • Useita yhteys- ja sarjaliikennekorjauksia: piilotetut sensorit (esim. SoftCSI) eivät enää sotke näytettyä sensorityyppiä, Windowsin sarjaliikenteen keep-alive-ajastin estää USB-pysähdykset, Start ei enää käynnistä uudelleen jo käynnissä olevaa skriptiä, ja kamerakanava katkaistaan siististi portin sulkeutuessa (a8e467be6).

  • Profilointinäkymä palautti sarakekohtaisen PMU-tapahtumalaskurin valinnan (valittavat tapahtumavalikot) ja tallennetun laskuri-/otsikkotilan, joka oli väliaikaisesti poistettu käytöstä (40c679e90).

Alusta- ja työkalutuki

  • Qt Creator -perusta: 14.0.2.

  • Mukana toimitettava laiteohjelmisto: päivitetty versiosta 4.7.0 versioon 4.8.1, ja laiteohjelmisto käännettiin uudelleen korteille OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 sekä Arduino GIGA/Nicla Vision/Portenta H7 -korteille (2657818ca).

  • Korjattiin protokollaversion kättely macOS:ssä RT1062- ja AE3-korteilla jakamalla monikomentoinen USB-siirto USBDBG_LEN-kokoisiin osiin, joita kyseiset kortit pystyvät käsittelemään (6b9d5f842).

  • Uudistettiin mukana toimitettava Windows-ajuripaketti: lisättiin korttikohtaiset allekirjoitetut .cat/.inf-ajuritiedostot (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) ja siirrettiin CDC-sarjaliikenneajurit uuteen openmvcdc-kansioon dpinst-pohjaisella automaattiasentajalla (439557829, ba3b01bfb).

  • Lisättiin tuki vanhemmille MT9V032-kamerasensorin revisioille rekisteröimällä sensori-ID:t 0x1311 ja 0x1312 (olemassa olevan 0x1313:n rinnalle) tyyppinä MT9V0X2 (eaaa624e3).

Yhteensopivuuden rikkovat muutokset

Tämä julkaisu ei sisällä skriptaus-API:in tehtyjä yhteensopivuuden rikkovia muutoksia, mutta siinä on muutamia käyttäjälle näkyviä työnkulun muutoksia:

  • Skriptin tallentaminen ei enää poista tai irrota kameran USB-asemaa. IDE huuhtelee nyt taltion puskurit paikalleen, joten laite pysyy liitettynä tallennuksen jälkeen.

  • Käynnistysaikaiset sarjaliikenneliput -override_read_timeout (oletus 5000 ms), -override_read_stall_timeout (oletus 1000 ms) ja -override_per_command_wait (oletus 1 ms, 2 ms macOS:ssä) poistettiin; sarjaliikenteen ajoitus määritetään nyt laiteohjelmiston settings.json-tiedoston protocol-ohitusavainten kautta (019d8bf1d).

  • Mukana toimitettavat käynnistyslataimet toimitetaan nyt vain .bin-muodossa; korttikohtaiset .dfu-laiteohjelmisto- ja käynnistyslataintiedostot poistettiin.