v4.7.0¶
v4.7.0은 Qt Creator 14.0.2 기반으로 구축된 대규모 NPU 및 ROMFS 중심 릴리스입니다. 통합된 ARM Ethos-U(Vela) 및 ST Edge AI 모델 컴파일러와 함께 온디바이스 ROM 파일 시스템 워크플로를 도입하고, OpenMV N6용 STM32CubeProgrammer 기반 공장 프로그래밍을 추가하며, 모든 보드에 OpenMV 펌웨어 4.7.0을 번들로 제공합니다. 4.7.0 이전 펌웨어에서 카메라를 업그레이드하면 이제 FAT 파일 시스템 삭제와 ROMFS 재설정이 강제로 수행되어 장치 내부 플래시에 저장된 파일이 지워진다는 점에 유의하십시오. 아래의 호환성에 영향을 주는 변경 사항을 참조하십시오.
주요 사항¶
ROM 파일 시스템 워크플로를 통해 온디바이스 읽기 전용 파일 시스템을 생성, 편집, 플래시, 재설정할 수 있어 ML 모델을 카메라에 저장할 수 있으며, DFU, IMX, Bossac, Picotool, Arduino-DFU 부트로더 전반에 통합되어 있습니다. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
ARM Ethos-U Vela 및 ST Edge AI 모델 컴파일러가 이제 통합되어
.tflite/.onnx모델이 Ethos-U55(OpenMV AE3) 또는 Neural-ART(OpenMV N6) 보드에 로드될 때 자동으로 NPU용으로 컴파일됩니다. (411f708ea, 3064411ad)STM32CubeProgrammer가 이제 번들로 제공되어
FlashLayout.tsv를 통해 OpenMV N6(STM32N657) 부트로더의 공장 프로그래밍을 수행할 수 있습니다. (334b04dbd, 54fea4d57, 28cc94a6e)Model Zoo 브라우저에 새로운
models/index.csv테이블로 구동되는 “Filter models by board type” 체크박스가 추가되어 연결된 보드와 호환되지 않는 모델을 숨깁니다. (80adb2079)확장자별 ROMFS 정렬: ROMFS 이미지 편집기가 이제 파일을 알파벳순으로 정렬하고
settings.json의 바이트 정렬 규칙을 사용하여 패킹합니다(예:.tflite모델은 16바이트로 정렬). (e87b2bf06)번들 펌웨어가 4.7.0으로 업데이트됨 — 모든 OpenMV 및 Arduino 보드 전반에 적용됩니다. (6d04b1b50, d0bbb1fe7, d7d3120b3)
새로운 기능¶
ROM File System 하위 메뉴 (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam)가 기존의 단일Edit ROM File System동작을 대체합니다. (0bc275a0a, 958f732b5)Model Zoo 브라우저 열기 — 선택한 모델 상태가 유지되고 선택 변경 시 미리 보기가 제공되며, 번들로 제공되는 STMicroelectronics, Qualcomm, DeGirum, Edge Impulse, Google 모델 라이브러리가 포함됩니다. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
Machine Vision Tools아래의 Convert Model for NPU 메뉴 항목은 TensorFlow Lite(.tflite) 또는 ONNX(.onnx) 모델을 보드의 NPU 가속기용으로 컴파일하고(Ethos-U.tflite의 경우 Vela, N6 Neural-ART.tflite/.onnx의 경우 ST Edge AI) 변환된 모델을 디스크나 카메라에 저장합니다. (3913f5b8b)Copy/Convert Python File 도구는 Python 스크립트를 카메라나 디스크로 복사하고 선택적으로
mpy-cross를 통해 MicroPython.mpy바이트코드로 크로스 컴파일합니다. 이 도구는Tools아래의 새로운MicroPython Tools하위 메뉴에 있습니다. (e9d7fa143, 47188c0e3)Wrap Text 토글 버튼이 OpenMV 시리얼 터미널과
General Messages출력 창에 추가되었습니다. 두 곳 모두 출력을 단어 단위로 줄 바꿈하며 세션 간에 설정을 유지합니다. (8c052845a, 51d3e1ad6)보드별 아키텍처 플래그(
armv7emsp/armv7emdp)를 사용하는 mpy-cross ROMFS 크로스 컴파일을 통해 MicroPython 스크립트를 ROMFS 이미지로 동결할 수 있습니다. (8c71548df)펌웨어 부트로더 대화 상자가 이제
*.bin및*.dfu와 함께*.imgROMFS 파일을 허용하고, 부트로더별 확장자를 검증하며,*.img파일을 로드할 때 기존Reset ROMFS file system체크박스를 비활성화합니다. (79f348b36)4.7.0 이전 버전에서 업그레이드할 때 이제 FAT 삭제 및 ROMFS 재설정/업데이트 체크박스가 강제로 켜지며 업그레이드 시 FAT 파일 시스템을 삭제해야 한다는 경고가 표시됩니다. (f6f3355b0)
기타 변경 사항 및 개선 사항¶
번들로 제공되는 Qualcomm 모델 zoo를 작업 기반 폴더(
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation)로 재구성하고, 지원되지 않는 대형 모델(YOLOv7, YOLOv8, deeplabv3, mobilenet_v2)을 제거했으며,resnet18과densenet_121(더 넓은 보드 호환성 제공)을 추가하고,facemap_3dmm과FFNet_40S(AE3/N6 전용)도 추가했습니다. (300ce2fc2)새로운 Edge Impulse 모델 공급업체(FOMO 얼굴 검출 모델)와 새로운 Google 모델(
micro_speech,mnist_lstm,person_detection)을 번들 모델 동물원에 추가했고, ROMFS 편집기 컨텍스트 메뉴에View/Edit동작을 추가했습니다. (80adb2079)모델 동물원 링크를 정리했습니다: Qualcomm
face_attrib_net모델(AE3/N6)을 추가하고, 깨진 YOLO-NAS 항목을 제거했으며, 여러 STMicroelectronics 객체 검출 모델의 보드 호환성 필터를 수정했습니다. (fd639bda0)더 많은 모델 레이블을 추가하고, 한 모델의 NPU 가속기 설정을
stai에서stedgeai로 전환했으며,st_yolo_x보드 호환성 필터를 확대했습니다(이제 AE3/N6 외에도 OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7, NICLA_VISION 포함). (1515631ce).tflite모델을 ROMFS에 추가할 때 이제 모델이 이미 Ethos-U로 컴파일된 경우 Vela/Ethos-U 컴파일을 건너뛰며(단순히 복사됨), 대화 상자 동작 이름이Add Model에서Model Zoo로 변경되었습니다. (9c0b178fa)ST Edge AI 컴파일은 이미
NBIN형식인 모델에 대해 변환을 건너뜁니다. (3064411ad)Vela 컴파일러 대화 상자는 모델이 보고한 SRAM 사용량을 각 보드의 구성된 힙 크기와 비교하여 파싱하고, 모델이 사용 가능한 힙의 90% 또는 100%를 초과하면 경고/오류와 함께 백분율을 표시합니다. (7140fc2aa)
Vela 컴파일러가 이제 자동으로 실패하는 대신 명확한 “not supported on this platform” 오류를 보고하며, 모델 동물원에 모델을 드롭하는 데 더 이상 Vela가 있을 필요가 없습니다. (c736dd54d, 0ad7fd705)
Vela Ethos-U 컴파일러가 이제 독립 실행형 바이너리 대신 번들 임베디드 Python 런타임(
python -m ethosu.vela)을 통해 실행됩니다. (52f9b8820)오래 실행되는 ST Edge AI 및 Vela 모델 컴파일 대화 상자가 이제 “This command takes a while to execute. Please be patient.” 알림을 표시합니다. (fc9ac2ab5)
PAG7936(N6/AE3) 및 PS5520 센서에서 예제나 새 스크립트를 열 때 이제 더 높은 해상도의 센서를 위해
sensor.set_framesize(QVGA)를 자동으로VGA로 올립니다. (dfc27dd25)FLIR Boson 320/640 열화상 카메라, PixArt PAG7920/PAJ6100, FROGEYE2020, Prophesee GENX320 이벤트 카메라용 예제 스크립트의 자동 수정 기능을 추가했습니다. (1f54ad01b)
다운로드 가능한 IDE 리소스(펌웨어/모델/문서)가 이제 새로운
ICore::allUsersResourcePath()API를 통해 공유 전체 사용자 애플리케이션 데이터 디렉터리에 설치되며, 리소스 버전 매니페스트는 전체 사용자 리소스 폴더 한 단계 위의OpenMVIDE.json파일에 저장됩니다. (be308ace2, 7c7dddb87)Alif 시스템 패키지 펌웨어 업데이트 중에 이제 IDE가 계속하기 전에 카메라의 전원을 껐다 켜도록(분리 후 재연결) 사용자에게 안내합니다. (162d128f9, 756611696)
Alif(Ensemble) 부트로더/펌웨어 다운로드 흐름을 ROMFS와 호환되도록 재작업했습니다: 부트로더를 쓴 후 App TOC를 생성하고, bin/sign 이미지를
images/하위 폴더로 복사하며,firmware_pad.toc를 플래시합니다. (f623c9231)펌웨어 선택기에서 중복되는 괄호 안 칩 접미사와 “Legacy” 태그를 제거하여 보드 표시 이름을 간소화했습니다(예: “OpenMV Cam H7 (STM32H743)”가 “OpenMV Cam H7”이 됨). (334b04dbd)
명확성을 위해 두 개의 Tools 메뉴 동작 이름을 변경했습니다:
Run Bootloader (Load Firmware)는 이제Load Custom Firmware이고,Erase Onboard Data Flash는 이제Erase Internal FAT File System입니다(확인 대화 상자는 이제 카메라의 내부 FAT 파일 시스템을 가리킵니다). (0bc275a0a)Ctrl+Shift+L(Load Custom Firmware) 및Ctrl+Shift+E(Erase Internal FAT File System) 키보드 단축키를 복원하고,Preferences항목을Edit메뉴로 다시 이동했습니다. (dabb6f7d9, b5daf59a6)IDE가 MicroPython을 대상으로 하므로 시작 시 자동 C/C++ 컴파일러 및 툴체인 자동 감지를 비활성화했습니다. (f42fcc8f2)
About대화 상자의 파트너 섹션에 Alif Semiconductor 파트너 로고(밝게/어둡게)를 추가했습니다. (4878781bb)연결된 보드의 펌웨어를 읽을 때 이제 명령을 실행하기 전에 오래된 시리얼 포트 데이터를 비울 수 있어 펌웨어/버전 쿼리의 신뢰성이 향상되었습니다. (c15a46f5b)
ROMFS 읽기, 쓰기, 재설정 작업 시 재연결/새로 고침을 강제하여 ROMFS 연결 신뢰성을 개선했습니다. (f9bc83007)
버그 수정¶
모델/스크립트 저장 대화 상자와 ROMFS 파일 추가/모델 추가가 전체 접미사 대신 단순 파일 접미사를 사용하도록 수정하여, 이름에 점이 있는 파일의 이름을 변경할 때 확장자가 손상되는 것을 방지했습니다. (52c6820d2)
백분율을 64비트 산술로 계산하여 대용량 전송 시 DFU 업로드 진행률 표시줄 오버플로를 수정했습니다. (4b91ff2ba)
유효하지 않은(양수가 아닌) 플래시 섹터 범위에 대해 플래시 삭제 및 프로그램 단계를 보호하고 충돌 대신 명시적 오류를 표시하여 이전 OpenMV 펌웨어/부트로더의 플래싱을 수정했으며, 이전 펌웨어 업그레이드 중 ROMFS 액세스 보호를 수정했습니다. (ae2cc15b4, 235dbdb10)
시리얼 번호 역방향 필터가 (연결 중이 아닌) 포트 검증 중에만 적용되도록 시리얼 포트 보드 감지를 수정하고, 부트로더 모드 시리얼 번호가 제외되도록 i.MX 보드용 역방향 필터를 추가했습니다. (ae2cc15b4)
수동 보드 유형 선택이 이루어질 때 이전에 저장된 보드 매핑이 더 이상 덮어쓰이지 않도록 보드 유형 유지를 수정했습니다. (c42d36001)
부트로더 복구가 이제 숨겨진 보드의 표시 이름을 해당 아키텍처 문자열로 해석하여 재연결/펌웨어 복구가 올바른 보드를 매핑하도록 합니다. (a1de7a09c)
보드 감지가 이제 보드 아키텍처 문자열을 대소문자 구분 없이 매칭합니다. (7a2e0e93f)
드라이브 스캔 스레드를 유지하고 드라이브 스캔을 최대 3회 재시도하여 빠른 분리/재연결 시 장치 디스크가 마운트되지 않던 문제를 수정했으며, 드라이브 스캔이 스캔 스레드에서 안정적으로 실행되도록 했습니다. (455dbe967, 58c0e5456)
Rosetta에서 실행할 때 ARM64 도구 경로를 허용하여 Intel Mac에서 모델 컴파일러(ST Edge AI 및 Vela)가 실행되지 않던 문제를 수정했습니다. (32e309e86)
모든 번들 Python
__pycache__를 공유 리소스 디렉터리로 라우팅하고, 시간 제한이 있는 부트로더 연결 전에 i.MXblhostpycache를 미리 워밍업하여 플래싱이 더 이상 타임아웃되지 않도록 함으로써 Python 도구 및 언어 서버 캐시 문제를 수정했습니다. (f64f3330f)Python 언어 서버가 (자동 완성을 위해) 사용하는 MicroPython 헤더 경로를 전체 사용자 리소스 경로에서 해석하도록 수정하고, 사용자 이름 필터링이 아무것도 찾지 못할 때 전체 사용자 리소스 경로 조회를 더 견고하게 만들었습니다. (5f2648565, fc1938818)
로컬 파일 경로를 적절한
file://URL로 변환하여 컴파일러 옵션 대화 상자의 깨진 ST Edge AI 문서 링크를 수정했습니다. (3ac136444)콜론으로 끝나는(전기적) 줄 뒤에서, 예를 들어
if/for/def헤더 뒤에서 줄이 더 이상 잘못 내어쓰기되지 않도록 Python 편집기 자동 들여쓰기를 수정했습니다. (6555f44ba)폴더 오프셋이 디렉터리 이름 레코드 크기를 고려하도록 ROMFS 디렉터리 레코드 정렬을 수정했으며, ROMFS 및 모델 동물원 파일을 압축 해제/생성할 때 파일 간 지연을 늘려 생성 타임스탬프가 구별되도록 했습니다. (9bf7e1d9e, d968a6e46)
출력 곱셈기를 64비트로 계산하여 Vela 그래프 최적화기의 mean-to-depthwise-conv 변환에서 정수 오버플로를 수정했으며, Vela 컴파일러 대화 상자 제목/출력에 사용되는 기본 이름을 수정했습니다. (d217a46e9, 8376490eb)
다시 열 때 모델 동물원 브라우저의 확장된 폴더와 선택된 모델을 복원하는 기능을 수정하고, GUI 수명 문제를 피하기 위해 대화 상자를 힙 할당으로 전환했습니다. (84a63ef4c)
기억된 디렉터리가 전체 파일 이름이 아닌 폴더로 저장되도록 Model Zoo 다른 이름으로 저장 경로를 수정했습니다. (be877f7af)
시작 시 레거시 사용자 리소스 경로를 삭제하는 대신 유지하여, 이전 폴더가 잠겨 있을 때 “close any programs viewing OpenMV IDE data” 오류를 방지했습니다. (775656775)
OpenMV DFU, dfuse, FTDI, Arduino, pybcdc, VCR 드라이버가 안정적으로 설치되고 성공 코드를 올바르게 보고하도록 Windows 드라이버 설치 스크립트와 catalog/inf 파일을 수정하고, dfuse/vcr DFU 드라이버 설치 스크립트를 강화했으며, 번들 OpenMV DFU 드라이버 카탈로그에 다시 서명했습니다. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
pip install pyusb를 실행하는 대신 배포판python3-usb패키지를 통해pyusb를 설치하고build-essential을 추가하도록, 그리고/etc/os-release를 통해 OS를 감지하도록 Linux 설치 프로그램을 수정했습니다. (c471ddc42, 4014a0ba5)Windows 설치 프로그램이 이제 긴 경로 지원을 활성화하여 깊게 중첩된 ST Edge AI 파일이 올바르게 설치되도록 합니다. (0b3ca6945)
플랫폼 및 도구 지원¶
Qt Creator 기반: 14.0.2.
번들 OpenMV 펌웨어: 모든 OpenMV 및 Arduino 보드(OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6) 전반에서 4.7.0으로 업데이트되었습니다. 펌웨어는 ROMFS 지원(
romfs0.img)으로 다시 빌드되었습니다. (6d04b1b50, c44e33d70, a1de7a09c)OpenMV N6 ROMFS: 16MB에서 24MB로 증가했으며, romfs 이미지가 DFU alt-setting 3으로 이동했습니다. (d0bbb1fe7, d7d3120b3)
OpenMV AE3 ROMFS: 16MB에서 24MB로 증가했으며, 모든 보드의 번들
.bin모델 파일에 대해 16/32바이트 정렬 규칙이 추가되었습니다. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI)가 macOS, Linux, Windows용으로 번들되었으며, N6 공장 프로그래밍을 위한 전체 STM32 디바이스 데이터베이스와 외부 로더를 포함합니다. 설치 크기를 줄이기 위해 사용하지 않는 외부 로더 및 MCU별 데이터베이스 파일은 제거되었습니다. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
ST Edge AI(stedgeai) 컴파일러 2.1.0이 N6 Neural-ART NPU용으로 번들되었습니다(Windows). (3064411ad)
ARM Ethos-U Vela 컴파일러 4.2.0 (numpy 2.2.4 포함)이 Linux x86-64, macOS(Apple silicon), Windows용으로 번들되었습니다. Windows 번들은 처음에 Vela 4.1.0 / numpy 2.2.3으로 추가되었고 이후 최종 4.2.0 / numpy 2.2.4로 업그레이드되었습니다. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2가 번들되었습니다(macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit: Alif Ensemble 기반 보드용으로 v1.104.0으로 업데이트되었습니다(서명된 setools 바이너리 및 v1.104.0 사용자 가이드 PDF). (43260719c, 75a58e61b)
RTSS HP/HE SRAM/MRAM/OSPI 시스템 구성과 함께 ethos-u55-256 및 ethos-u55-128 가속기를 대상으로 하는 OPENMV_AE3 (Alif Ensemble) NPU 구성을 추가했습니다. (1f5fc546d, 411f708ea)
핀아웃 선택기에 OpenMV N6 및 AE3 카메라(PAG7936 센서)용 핀아웃 다이어그램을 추가하고, 안티 플리커 필터 구성을 보여주는 새로운 Genx320 그레이스케일 이벤트 카메라 예제를 추가했습니다. (60184bbc5, 6d04b1b50)
원래의 PID(0x045F)와 함께 새로운 애플리케이션 PID(0x055F)를 인식하도록 Arduino Nicla Vision USB PID 매칭을 업데이트했습니다. (91ce4007c)
최신 spsdk 툴킷에 맞춰 명시적 FCB 주소/길이와 MBR 디스크 크기를 사용하도록 NXP/blhost 보안 부트로더 플래싱 매개변수를 업데이트했습니다. (16b66c3e2)
Windows 설치 프로그램이 이제 전용 STM32 DFU 부트로더 드라이버와 Microsoft Visual C++ 2015+ 재배포 가능 패키지를 번들합니다. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
번들 DeGirum YOLOv5/YOLOv8 모델 동물원을 IDE에서 제거했습니다. (26710be1c)
호환성에 영향을 주는 변경 사항¶
v4.7.0에서 사용자에게 보이는 워크플로 및 동작 변경 사항입니다. 스크립팅 API 변경은 없지만 다음 사항에 유의하십시오:
4.7.0 이전 업그레이드 시 FAT 파일 시스템 삭제됨. 4.7.0 이전 펌웨어에서 OpenMV Cam을 업그레이드하면 이제 펌웨어 업데이트 중에 FAT 파일 시스템 삭제와 ROMFS 재설정/업데이트가 강제로 수행되므로(대화 상자 체크박스가 강제로 켜지며 비활성화할 수 없음), 장치 내부 플래시에 저장된 사용자 파일이 업그레이드 시 지워집니다. (f6f3355b0)
UVC 펌웨어 및 Portenta H7 부트로더 바이너리 제거됨. 미리 빌드된 UVC 웹캠 펌웨어 이미지(
uvc.bin/dfu/elf)가 모든 보드에서 제거되었고, Arduino Portenta H7 부트로더 바이너리가 번들에서 제거되었습니다. 이러한 미리 빌드된 이미지는 더 이상 IDE에서 플래시할 수 없습니다. (c44e33d70)리소스 디렉터리 재배치. 다운로드 가능한 IDE 리소스(펌웨어, 모델 동물원, 문서)가 이제 사용자별 리소스 경로 대신 공유 전체 사용자 애플리케이션 데이터 디렉터리에 설치되며, 버전 매니페스트가 QSettings에서 전체 사용자 리소스 폴더 한 단계 위에 저장되는
OpenMVIDE.json파일로 이동했습니다(이전 버전과 호환되는 QSettings 미러링 포함). 업그레이드 후 첫 실행 시 리소스 재다운로드가 트리거됩니다. (be308ace2, 7c7dddb87)