v3.6.3

v3.6.3 вмикає TensorFlow на OpenMV 3 / F7, додає підтримку моделей uint8/int8/float32, переключає теплові датчики MLX90640/AMG8833 на апаратний I2C, додає гістограми різниці зображень та зміщення корекції лінзи, і переробляє керування зчитуванням. Константи підказок image перейменовано та масштабування draw_image() змінено — ознайомтеся зі змінами, що порушують зворотну сумісність.

Основні можливості

  • TensorFlow на OpenMV 3 / F7tf увімкнено на камерах на основі F7, з підтримкою моделей uint8/int8/float32.

  • Теплові датчики — MLX90640 та AMG8833 переключено на апаратний I2C з новим драйвером MLX90640.

  • Обробка зображень — підтримка різниці зображень у get_histogram() та корекція зміщення для lens_corr().

  • draw_image — альфа-палітри у режимі відтінків сірого та переробка керування зчитуванням.

  • Несумісні зміни: константи підказок image перейменовано та від’ємне масштабування draw_image() вилучено — дивіться зміни, що порушують сумісність.

Нові можливості

  • TensorFlow — увімкнено tf на OpenMV 3 / F7 та оновлено TensorFlow для підтримки моделей uint8 / int8 / float32.

  • get_histogram() — додано можливість різниці зображень.

  • lens_corr() — додано корекцію зміщення.

  • draw_image() — альфа-палітри тепер працюють у режимі відтінків сірого (без білінійної інтерполяції), з білінійно-інтерпольованими альфа-палітрами та центруванням зображення; новий код керування зчитуванням.

Інші зміни та вдосконалення

  • Переключено MLX90640 та AMG8833 на апаратний I2C (новий драйвер MLX90640, конфігурація HW I2C плати для зовнішніх датчиків, збільшена кількість повторних спроб зчитування MLX), увімкнено I2C fast-mode-plus на камерах, що його підтримують, додано читання/запис байтів cambus з часовими параметрами I2C, та пропущено застосування альфа-каналу, коли він дорівнює 0, для продуктивності.

Виправлення помилок

Камера та обробка зображень:

  • Виправлено та прискорено корекцію обертання, помилку перетворення Bayer-to-YCbCr на лівому краї, та додано виправлення краю до bayer_to_y() / bayer_to_binary().

Інструменти:

  • Виправлено помилки Python 2/3 та порядок виклику get_statistics().

Несумісні зміни API

Зміни API, помітні для користувача, між v3.6.2 та v3.6.3. Область застосування: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.

Кожна зміна позначена ступенем впливу:

  • незначний — вузький API; впливає лише на скрипти, що його використовували.

  • поведінковий — той самий API, різні результати; перевірте налаштовані скрипти.

Зміни згруповано за ступенем впливу в такому порядку. Якщо ви просто хочете перенести свій код, перейдіть до контрольного списку міграції в кінці. Кожен хеш коміту веде до його diff на GitHub.

Константи підказок image перейменовано (незначний)

Константи підказок малювання image перейменовано: image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEAR та image.IMAGE_CENTERimage.IMAGE_HINT_CENTER. Скрипти, що передавали старі імена констант до draw_image(), повинні використовувати нові імена. (Вони знову перейменовані на image.BILINEAR / image.CENTER у v3.7.0.)

Коміти: 8f8872537

Від’ємне масштабування draw_image() вилучено (поведінковий)

image.draw_image() більше не підтримує від’ємне масштабування, а точка вибірки текстури переміщена до центру пікселя. Скрипти, що покладалися на від’ємне масштабування для перевертання зображення під час малювання, повинні використовувати інший спосіб, а вихідні дані можуть зміститися до половини пікселя порівняно з попереднім.

Коміти: 7e83dbb92

Контрольний список міграції

Перейменуйте image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER на image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (перейменування констант підказок), та замініть будь-яке від’ємне масштабування draw_image() явним перевертанням (зміна масштабування draw_image). Усі інші скрипти працюють без змін.