v2.5.0

Verze v2.5.0 je vydání bohaté na obrazové funkce: přidává find_rects(), find_circles(), get_regression() (prokládání přímkou/regrese), find_number() (číslice LeNet), proudové třídy ImageWriter / ImageReader, sensor.flush() / width() / height() a podporu pyb.RTC. Načítání obrazu je nyní podporováno framebufferem — přečtěte si nekompatibilní změny níže.

Hlavní novinky

  • image.find_rects() — detektor obdélníků / čtyřúhelníků s výstupem rohů.

  • image.find_circles() — Houghova detekce kruhů.

  • image.get_regression() — prokládání přímkou metodou nejmenších čtverců a robustní (Theil-Sen).

  • image.find_number() — rozpoznávání číslic LeNet.

  • ImageWriter / ImageReader — záznam a přehrávání proudů obrazu.

  • Podpora pyb.RTC a dále sensor.flush() / sensor.width() / sensor.height().

  • Nekompatibilní: načítání obrazu je nyní podporováno framebufferem a vyvolá výjimku, pokud je obraz příliš velký — viz nekompatibilní změny.

Nové funkce

  • Detekce příznaků — přidány image.find_rects() (detektor čtyřúhelníků AprilTag; objekty obdélníků s x / y / w / h / corners / magnitude), image.find_circles() (Hough), image.get_regression() (prokládání přímkou metodou nejmenších čtverců + robustní Theil-Sen) a image.find_number() (rozpoznávání číslic LeNet), každá s ukázkovými skripty.

  • Rohy výsledků — přidán atribut corners k objektům výsledků QR kódů / AprilTag / data-matrix / čárových kódů.

  • Proudy obrazu — přidány třídy image.ImageWriter / image.ImageReader (formát bloků zarovnaný na 16 bajtů) s ukázkami image_writer.py / image_reader.py.

  • Senzor — přidáno sensor.flush() (odeslání framebufferu do IDE bez snímku) a sensor.width() / sensor.height().

  • pyb.RTC — aktivována podpora RTC s ukázkou rtc.py.

  • Přidána kaskáda Haar pro kočičí obličeje a ukázka Servo-Shield (PCA9685); hostitelský nástroj openmv-cascade.py získal podporu nového formátu XML kaskád OpenCV.

Další změny a vylepšení

  • Framebuffer byl refaktorován tak, aby obrazové metody copy_to_fb aktualizovaly náhled v IDE; cesty HaarCascade() již nevyžadují úvodní / (vestavěná vs. souborová kaskáda se rozpozná automaticky); záznam GIF/MJPEG nyní podporuje VGA (a BAYER GIFy); vestavěný soubor README.txt byl aktualizován a soubor ovladače openmv.inf se již na čistém souborovém systému nevytváří.

Opravy chyb

Obrazové zpracování:

  • Opravena akumulace hlasů find_circles(), posun rho get_regression() při použití ROI a únik paměti, slučování úseček find_lines(), průměrování úhlů find_blobs() a výchozí (nejméně omezující) barevné meze, stabilita řazení klíčových bodů ORB / pořadí deskriptorů a příznak shody a bufferované načítání kaskády Haar (nezarovnaná čtení).

Systém:

  • Aktivováno pyb Servo 3 (P9) (#256), opravena inicializace RTC, zvýšen časový limit znaku UART (#240) a opraven neinicializovaný příznak „enabled“ framebufferu senzoru.

Podpora hardwaru a desek

  • Podpora pyb.RTC a pyb Servo 3 (P9); ukázka Servo-Shield (PCA9685).

Nekompatibilní změny API

Pro uživatele viditelné nekompatibilní změny API mezi v2.4.1 a v2.5.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.

Nekompatibilní změna je změnou chování (stejné API, jiný výsledek) — znovu zkontrolujte dotčené skripty. Každý hash commitu odkazuje na svůj diff na GitHubu.

Načítání obrazu je podporováno framebufferem (behavior)

image.Image / načítání obrazu nyní kopíruje načtený obraz do hlavního framebufferu a vyvolá výjimku, pokud je obraz příliš velký, aby se vešel. Načítání, která dříve uspěla do heap bufferu, mohou nyní selhat — zajistěte, aby se načítané obrazy vešly do framebufferu (nebo ošetřete novou chybu).

Commity: 87d53385a

Kontrolní seznam migrace

Zajistěte, aby se načítané obrazy vešly do framebufferu (nebo zachyťte novou chybu „image too large“) tam, kde jste se dříve spoléhali na načítání obrazu z heapu (změna načítání obrazu). Všechny ostatní skripty poběží beze změny.