v4.4.3

v4.4.3은 OpenMV RT1060(NXP i.MX RT1060) 보드, 대폭 확장된 MJPEG 녹화 API, 새로운 ISP 이미지 메서드(자동 화이트 밸런스, 색상 보정 행렬, 감마), 그리고 MicroPython 1.20을 도입합니다. Arduino 보드 이름이 변경되었고 MJPEG 기본값이 바뀌었습니다 — 아래의 호환성 변경 사항을 읽어보세요.

주요 사항

  • OpenMV RT1060 — 새로운 NXP i.MX RT1060 보드(및 REV2 리비전).

  • 확장된 MJPEG APIwrite(), count, is_closed, sync(), ROI/팔레트/알파 키워드, 그리고 종료자(finalizer).

  • 새로운 ISP 메서드image.awb(), image.ccm(), image.gamma().

  • MicroPython이 1.20.0으로 업데이트되었습니다.

  • 호환성 변경: Arduino 보드 타깃의 이름이 변경되고 MJPEG 기본 품질이 변경되었습니다 — 호환성 변경 사항을 참조하세요.

새로운 기능

  • OpenMV RT1060 — 전체 NXP i.MX RT1060 포트(센서, GPIO, I2C, SPI 드라이버)와 보드 구성, 그리고 RT1060 REV2 보드 리비전 지원, i.MX RT 포트에서의 machine.RTC 알람/웨이크업.

  • MJPEG — 새로운 Mjpeg.write() 메서드(roi, rgb_channel, alpha, color_palette, alpha_palette, hint 키워드 포함)와 count, is_closed, sync()__del__ 종료자, 그리고 MJPEG / Mjpeg / mjpeg 생성자 별칭.

  • ISP 이미지 메서드image.awb([max])(자동 화이트 밸런스), image.ccm(matrix)(3x3 / 4x3 색상 보정 행렬), image.gamma(gamma, contrast, brightness).

  • AprilTag — 새로운 부동소수점 무게중심 속성 cxf / cyf(cx / cy는 여전히 반올림된 정수를 반환).

  • MLtf.regression()이 이제 ulab ndarray를 받아들이고 2D 입력 텐서를 지원합니다(1D도 계속 지원). 번들된 libtf 라이브러리에서 추가 TensorFlow Lite 연산이 활성화되었습니다.

기타 변경 및 개선 사항

  • MicroPython이 1.20.0으로 업데이트되었으며, ulab은 6.0.12로 업데이트되었습니다.

  • image.gamma / gamma_corr가 ISP 메서드로 재작업되었고, (변경 가능한 이미지뿐 아니라) Bayer 및 YUV 이미지를 지원하도록 확장되었습니다.

  • STM32 보드(Portenta H7, Nicla Vision)가 오픈 소스 cyw43 WiFi 드라이버로 전환되었습니다.

  • rtsp 라이브러리가 (pyb 대신 random/time을 사용하여) 이식 가능하게 만들어졌습니다. urequests는 이제 항상 소켓을 닫습니다.

버그 수정

카메라 및 센서:

  • Arduino Nano 33 BLE Sense의 OV767x 클록 속도(CLKRC), OV7670 CLKRC 바이패스/프리스케일러 처리를 수정했고, Arduino Nicla Vision / ML kit(nrf 포트)에서 뒤바뀐 D0/D1 데이터 라인을 수정했습니다.

시스템 및 USB:

  • TinyUSB 디버그 모드에서 짧은 USB 패킷 처리를 수정했습니다(더 안정적인 IDE/호스트 전송).

  • OpenMV RT1060의 LED 점멸 극성과 전원 켜짐 시 SD 카드 감지를 수정했습니다.

하드웨어 및 보드 지원

  • OpenMV RT1060 — 새로운 NXP i.MX RT1060 보드, 그리고 REV2 리비전.

  • STM32 — Portenta H7 / Nicla Vision이 오픈 소스 cyw43 WiFi 드라이버로 이동했습니다.

호환성에 영향을 주는 API 변경

v4.4.2와 v4.4.3 사이의 사용자에게 영향을 주는 API 변경입니다. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.

각 변경 사항은 영향 정도가 태그로 표시됩니다:

  • behavior — 동일한 API이지만 결과가 다릅니다. 튜닝된 스크립트를 다시 확인하세요.

  • tooling — Python API가 아니라 보드 이름 지정 / 플래싱에 영향을 줍니다.

변경 사항은 해당 순서대로 영향별로 그룹화되어 있습니다. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.

MJPEG 기본값 및 오류 처리 (behavior)

MJPEG 녹화 코드가 전면 개편되었습니다. 기본 add_frame() / write() JPEG quality가 50에서 90으로 상향되었고(녹화물이 기본적으로 더 크고 높은 품질이 됨), 잘못된 품질은 이제 ValueError를 발생시키며, 닫힌 파일에 대한 작업은 이제 OSError를 발생시키고, 녹화 메서드는 이제 Mjpeg 객체를 반환합니다. 이전 기본 품질이나 이전 오류 동작에 의존하던 스크립트는 다시 확인해야 합니다.

커밋: 3fc55ad31

Arduino 보드 타깃 이름 변경 (tooling)

Arduino 보드 타깃이 업데이트된 이름 지정 규칙으로 변경되었고 모든 보드 매니페스트(고정 모듈 세트)가 갱신되었습니다. 이는 Python API를 변경하지 않지만, Arduino 보드를 빌드하거나 플래시하는 데 사용되는 펌웨어 파일/보드 이름이 변경되었습니다 — 그에 맞게 도구를 업데이트하세요.

커밋: 77a7d16c0, 59d9f2603

마이그레이션 체크리스트

v4.4.3으로 깔끔하게 포팅하려면: 새로운 기본 품질과 오류 동작에 대해 MJPEG 녹화를 다시 확인하고(MJPEG 변경), 이름이 변경된 Arduino 보드 타깃에 대해 빌드/플래시 도구를 업데이트하세요(보드 이름 변경). 다른 모든 스크립트는 변경 없이 동작합니다.