v4.5.3¶
v4.5.3은 대규모 릴리스입니다: OV5640 자동 초점, 안티에일리어싱 선 그리기, 메인라인에 통합된 하드웨어 JPEG 디코더, i.MX RT(RT1060)의 대폭적인 기능 향상, 그리고 다양한 카메라/ISP 수정이 포함되어 있습니다. 거의 사용되지 않던 여러 이미지 메서드가 제거되었고 일부 ISP/디스플레이 API가 변경되었습니다 — 아래의 호환성 깨짐 변경 사항을 읽어보세요.
주요 내용¶
OV5640 자동 초점 — OpenMV 4 / 4 Plus / RT1060에서 활성화되었습니다(
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)). 예제가 함께 제공됩니다.안티에일리어싱이 적용된
draw_line()과 메인라인에 통합된 STM32 하드웨어 JPEG 디코더(더 빠른 JPEG 압축 해제).OpenMV RT1060에 ulab, ISP 연산,
set_framerate()/set_frame_callback(), 훨씬 더 큰 프레임 버퍼, 그리고 CAN 드라이버가 추가되었습니다.호환성 깨짐:
Image.div()/cartoon()/mul()이 제거되었고 일부 ISP/디스플레이 API가 변경되었습니다 — 호환성 깨짐 변경 사항을 참고하세요.
새로운 기능¶
OV5640 자동 초점 — 자동 초점 펌웨어가 OPENMV4, OPENMV4P, OPENMV RT1060에서 활성화되었습니다.
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)로 트리거하세요. 새로운07-Sensor-Control/autofocus.py예제가 추가되었습니다.안티에일리어싱 선 그리기 —
draw_line()에 안티에일리어싱이 추가되었습니다.사용자 정의 SPI 디스플레이 컨트롤러 —
SPIDisplay가 이제controller=키워드를 받으며, 사용자 정의 초기화/명령 시퀀스를 위한bus_write후크를 노출합니다.Image.ccm()업그레이드 — 이제 중첩된 3x3 / 4x3 / 3x4 / 4x4 행렬과 ulab 배열을 받습니다(선택적인 채널별 오프셋 행 포함). 색상 보정 예제가 추가되었습니다.i.MX RT JPEG 캡처 — Arduino Portenta/Nicla Vision/Giga에서의
sensor.JPEG캡처와 더불어 mimxrt 포트에서set_framerate()및set_frame_callback()지원이 추가되었습니다.TFLite 모델 검증 — 이제 모델이 연산자 순서 해시와 연산자 집합 크기를 포함합니다.
WiFi — CYW43 보안 모드 상수가 추가되었습니다. 새로운 i.MX RT 보드 제어 예제 스크립트(Pin/ADC/CAN/I2C/PWM/SPI/UART/…)가 추가되었습니다.
기타 변경 사항 및 개선¶
MicroPython이 1.22로 업데이트되었습니다. CMSIS는 5.9.0으로 업데이트되었습니다.
메인라인에 통합된 STM32 하드웨어 JPEG 디코더 — 온칩 코덱에서 더 빠른 JPEG 압축 해제.
Image.invert()/negate()및 이진/수학 이미지 연산을 최적화했습니다(CMSIS 인트린식).rpc및vl53l1x라이브러리가 이식 가능하도록 변경되어(pyb대신machine/time사용) STM32가 아닌 포트에서도 실행됩니다.OpenMV H7 / H7 Plus / Pro / Pure Thermal 및 Arduino Giga / Nicla Vision / Portenta H7에서 DMA로 가속된 프레임 버퍼 memcpy를 지원합니다. STM32는 이제 더 빠른 부팅을 위해 스캔당 한 번만 I2C 장치를 스캔합니다.
버그 수정¶
카메라 및 센서:
STM32 카메라 XCLK를 정확한 50% 듀티 사이클로 수정하고 카메라 클럭 주파수가 0으로 설정될 때 발생하던 버그를 수정했습니다. Bayer 자르기+전치, YUV422 색상 시프트, mimxrt 포트의
set_windowing()을 수정했습니다.GC2145 칩 ID 프로브와 회전 장착 시의 hmirror/vflip을 수정했습니다. RT1062의 PAJ6100과 PixArt PAJ7620/PAW3902 SPI 버퍼 오버플로를 수정했습니다.
이미지 처리:
find_rects()ROI 클리핑,morph()소수 오프셋 절단,image.gamma()대비/밝기 기본값, RGB565에서의get_threshold()A/B 오프셋, 그리고 8의 배수가 아닌 크기의 JPEG 디코딩을 수정했습니다.
시스템 및 라이브러리:
인자 없이 호출한
machine.LED.value()는 이제 LED 상태를 지우지 않고 반환합니다. 공유 버스에서의 SPI SSEL 해제, RT1062의machine.deepsleep(), 누락된 연산자에서의 TF 충돌, 그리고connect()시의 WINC1500/ninaw10 NIC 자동 활성화를 수정했습니다.
하드웨어 및 보드 지원¶
OpenMV RT1060 — ulab 및 ISP 연산 활성화, 더 큰 프레임 버퍼(10M→20M) / fb_alloc(2M→11M), CAN 드라이버 복원, 더 많은 힙.
Arduino GIGA — GC2145/OV5640 자동 감지(둘은 I2C 주소를 공유함)와 함께 GC2145 카메라를 지원합니다.
i.MX RT —
sensor.JPEG캡처 지원.
호환성 깨짐 API 변경¶
v4.5.2와 v4.5.3 사이의 사용자에게 보이는 API 변경 사항입니다. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.
각 변경 사항에는 영향도가 태그되어 있습니다:
minor — 좁은 범위의 API. 이를 사용한 스크립트에만 영향을 줍니다.
behavior — 동일한 API이지만 결과가 다름. 튜닝된 스크립트를 다시 확인하세요.
변경 사항은 해당 순서로 영향도별로 그룹화되어 있습니다. 코드만 이식하고 싶다면 끝에 있는 마이그레이션 체크리스트로 바로 이동하세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
제거된 이미지 메서드 (minor)¶
Image.div(), Image.cartoon()(및 그 예제), 그리고 Image.mul()이 제거되었습니다.
디스플레이 모듈 API (minor)¶
레거시 udisplay 모듈명 폴백이 제거되었습니다 — 이 모듈은 display로만 등록됩니다. DSI 전용 dsi_write() / dsi_read() 메서드가 bus_write() / bus_read()로 대체되었으며, 이제 모든 디스플레이 컨트롤러에서 사용할 수 있습니다.
MQTT 및 tf.regression API 변경 (minor)¶
mqtt 라이브러리의 MQTTClient가 재작업되었습니다: 이제 port가 필수이며, 새로운 ssl_params / callback 생성자 키워드와 connect()의 timeout 인자가 추가되었고, 기존의 ssl= / port=0 기본값이 제거되었으며, check_msg()는 이제 비차단(non-blocking)입니다. tf.regression()이 재작성되었습니다 — 시그니처가 이제 regression(model, array)이며 1D/2D/3D 및 양자화된(int8) 모델을 처리합니다.
ISP / 센서 동작 변경 (behavior)¶
Image.awb()가 재작업되었습니다 — 그레이 월드(기본값)와 화이트 패치(max=True)가 이제 명시적이며, max 인자와 Image.gamma()의 gamma / contrast / brightness 인자가 이제 키워드 전용입니다(위치 인자 호출은 업데이트해야 함). 이미지 전치는 이제 YUV422에서 비활성화되었으며(이전에는 잘못된 출력을 생성함), YUV422 색상 시프트가 Bayer와 일치하도록 수정되었습니다. STM32 JPEG 경로는 이제 JPEG 지오메트리 불일치 시 손상된 이미지를 생성하는 대신 오류를 발생시키며, WiFi AP 모드는 이제 STM32 및 i.MX RT 포트에서 기본 보안 모드를 적용합니다.
커밋: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af
마이그레이션 체크리스트¶
v4.5.3으로 깔끔하게 이식하기 위한 일반적인 작업은 다음과 같습니다:
Image.div()/cartoon()/mul()사용을 중단하세요(제거된 메서드).디스플레이 모듈을
display로 임포트하고dsi_write/dsi_read를bus_write/bus_read로 전환하세요(디스플레이 API 변경).MQTTClient생성(port필수,ssl_params/callback)과 모든tf.regression()호출을 업데이트하세요(라이브러리 API 변경).awb()의max와gamma()의gamma/contrast/brightness를 키워드 인자로 전달하고, YUV422/전치 및 AP 모드 보안 가정을 다시 확인하세요(ISP/센서 변경).