v2.5.0

v2.5.0은 기능이 풍부한 이미징 릴리스입니다: find_rects(), find_circles(), get_regression()(선/회귀 피팅), find_number()(LeNet 숫자), ImageWriter / ImageReader 스트림 클래스, sensor.flush() / width() / height(), 그리고 pyb.RTC 지원을 추가합니다. 이제 이미지 로딩이 프레임 버퍼 기반입니다 — 아래의 호환성을 깨뜨리는 변경 사항을 읽어 보세요.

주요 사항

  • image.find_rects() — 코너 출력을 제공하는 사각형 / 쿼드 검출기.

  • image.find_circles() — Hough 원 검출.

  • image.get_regression() — 최소제곱법 및 견고한(Theil-Sen) 선 피팅.

  • image.find_number() — LeNet 숫자 인식.

  • ImageWriter / ImageReader — 이미지 스트림을 기록하고 재생합니다.

  • pyb.RTC 지원, 그리고 sensor.flush() / sensor.width() / sensor.height().

  • 호환성 변경: 이제 이미지 로딩이 프레임 버퍼 기반이며 이미지가 너무 크면 예외를 발생시킵니다 — 호환성을 깨뜨리는 변경 사항을 참고하세요.

새로운 기능

  • 특징 검출image.find_rects() (AprilTag 쿼드 검출기; x / y / w / h / corners / magnitude 속성을 가진 rect 객체), image.find_circles() (Hough 변환), image.get_regression() (최소 제곱법 + Theil-Sen 강건 직선 피팅), image.find_number() (LeNet 숫자 인식)를 각각 예제 스크립트와 함께 추가했습니다.

  • 결과 코너 — QR 코드 / AprilTag / 데이터 매트릭스 / 바코드 결과 객체에 corners 속성을 추가했습니다.

  • 이미지 스트림image_writer.py / image_reader.py 예제와 함께 image.ImageWriter / image.ImageReader 클래스(16바이트 정렬 청크 형식)를 추가했습니다.

  • Sensorsensor.flush() (스냅샷 없이 프레임 버퍼를 IDE로 전송)와 sensor.width() / sensor.height()를 추가했습니다.

  • pyb.RTCrtc.py 예제와 함께 RTC 지원을 활성화했습니다.

  • 고양이 얼굴 Haar 캐스케이드와 Servo-Shield(PCA9685) 예제를 추가했습니다. openmv-cascade.py 호스트 도구는 새로운 OpenCV XML 캐스케이드 형식에 대한 지원을 추가했습니다.

기타 변경 사항 및 개선

  • 프레임 버퍼가 리팩터링되어 copy_to_fb 이미지 메서드가 IDE 미리보기를 업데이트합니다. HaarCascade() 경로는 더 이상 앞에 /가 필요하지 않습니다(내장 vs. 파일이 자동으로 감지됨). GIF/MJPEG 녹화가 이제 VGA(및 BAYER GIF)를 지원합니다. 내장 README.txt가 업데이트되었고, 새 파일시스템에서는 openmv.inf 드라이버 파일이 더 이상 생성되지 않습니다.

버그 수정

이미징:

  • find_circles() 투표 누적, ROI가 있을 때의 get_regression() rho 오프셋 및 메모리 누수, find_lines() 선분 병합, find_blobs() 각도 평균화 및 기본(가장 제한이 적은) 색상 경계, ORB 키포인트 정렬 안정성 / 디스크립터 순서 및 매치 플래그, 그리고 Haar 캐스케이드 버퍼링 로딩(정렬되지 않은 읽기)을 수정했습니다.

시스템:

  • pyb Servo 3(P9)을 활성화하고(#256), RTC 초기화를 수정했으며, UART 문자 타임아웃을 늘리고(#240), 초기화되지 않은 센서 프레임 버퍼 “enabled” 플래그를 수정했습니다.

하드웨어 및 보드 지원

  • pyb.RTC 지원 및 pyb Servo 3(P9). Servo-Shield(PCA9685) 예제.

API를 깨뜨리는 변경 사항

v2.4.1과 v2.5.0 사이의 사용자에게 보이는 API 변경 사항입니다. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.

이 호환성 변경은 behavior 변경(동일한 API, 다른 결과)입니다 — 영향을 받는 스크립트를 다시 확인하세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.

이미지 로딩이 프레임 버퍼 기반임 (behavior)

이제 image.Image / 이미지 로딩은 로드된 이미지를 메인 프레임 버퍼로 복사하며 이미지가 너무 커서 들어가지 않으면 예외를 발생시킵니다. 이전에 힙 버퍼로 성공하던 로드가 이제 실패할 수 있습니다 — 로드된 이미지가 프레임 버퍼에 맞는지 확인하세요(또는 새로운 오류를 처리하세요).

커밋: 87d53385a

마이그레이션 체크리스트

이전에 힙 기반 이미지 로드에 의존했던 곳에서는 로드된 이미지가 프레임 버퍼에 맞는지 확인하세요(또는 새로운 “image too large” 오류를 잡으세요)(이미지 로드 변경). 그 외 모든 스크립트는 수정 없이 그대로 실행됩니다.