LiteRT를 사용하여 MediaTek Dimensity에 Ultralytics YOLO 배포
Ultralytics YOLO는 기존 LiteRT 내보내기를 통해 MediaTek Dimensity Android 휴대폰에서 실행됩니다. MediaTek 전용 내보내기 형식은 없습니다. 표준 .tflite 모델을 내보낸 다음, LiteRT를 사용하여 CPU 및 GPU 추론을 수행하는 공식 Ultralytics YOLO Flutter 플러그인으로 Android에서 실행하면 됩니다.
내보내기#
LiteRT 내보내기는 Linux x86_64 및 macOS에서 지원되며, NVIDIA Jetson과 같은 Linux aarch64 호스트에서는 지원되지 않습니다. 분류 모델은 imgsz=224에서, 그 외 모든 작업은 imgsz=640에서 내보내세요.
pip install ultralyticsfrom ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="litert", imgsz=640) # 생성합니다 'yolo26n.tflite' (FP32)
model.export(format="litert", quantize="w8a32", imgsz=640) # 'yolo26n_w8a32.tflite' 생성호스트에서 YOLO("yolo26n.tflite")("https://ultralytics.com/images/bus.jpg")을 사용하여 내보낸 모델을 확인할 수 있습니다. 이 작업은 LiteRT를 로컬에서 실행하며 MediaTek NPU를 선택하거나 테스트하지 않습니다. 예측, 검증 및 모든 내보내기 인수는 LiteRT 가이드를 참조하세요.
Android에 배포#
Ultralytics YOLO Flutter 플러그인은 모든 7가지 YOLO26 작업에 대해 카메라 및 단일 이미지 추론을 지원하며, LiteRT .tflite 내보내기 모델을 Android에서 실행합니다. 공식 w8a32 에셋은 yolo-flutter-app v0.7.0 릴리스에 게시되어 있습니다.
Google Play에서 Ultralytics YOLO Android 앱을 사용해 보세요. 아래 미리보기는 iOS에서 실행되는 앱을 보여줍니다.
내보낸 모델을 실행하려면 Flutter 앱에서 yolo26n_w8a32.tflite을 assets/models/에 복사하고 플러그인과 에셋을 pubspec.yaml에 추가하세요:
dependencies:
flutter:
sdk: flutter
ultralytics_yolo: ^0.7.1
flutter:
assets:
- assets/models/yolo26n_w8a32.tfliteflutter pub get을 실행한 다음, lib/main.dart에서 카메라 추론에 모델을 사용하세요:
import 'package:flutter/material.dart';
import 'package:ultralytics_yolo/ultralytics_yolo.dart';
void main() => runApp(
MaterialApp(
home: Scaffold(
body: YOLOView(modelPath: 'assets/models/yolo26n_w8a32.tflite'),
),
),
);Android의 최소 SDK를 24로 설정하고 카메라 권한을 추가한 다음, 휴대폰에서 flutter run을 실행하세요. Android 설정은 플러그인 설치 가이드를, 단일 이미지 추론은 빠른 시작을 참조하세요. 플러그인은 GPU 추론을 시도하며 기기 또는 모델에서 GPU를 사용할 수 없는 경우 CPU로 전환합니다.
MediaTek 기기에서 배포된 Flutter 플러그인은 LiteRT CPU 및 GPU 추론을 지원하지만 MediaTek NPU는 지원하지 않습니다. 아래 NPU 결과는 공개되지 않은 플러그인 프로토타입 NPU 빌드와 LiteRT mediatek 2.3.0 NPU 런타임을 사용해 FP32 내보내기 모델(quantize 없음)로 측정했습니다. w8a32 에셋은 NPU에서 완전히 컴파일되지 않습니다.
측정 성능#
LiteRT 가이드의 Xiaomi 17T Pro 결과는 MediaTek NPU 990과 Android 16 / API 36을 탑재한 MediaTek Dimensity 9500(MT6993)에서 7가지 YOLO26n 작업 모두를 측정한 결과입니다. 각 값은 워밍업 3회 후 15회 호출의 평균입니다. CPU 및 GPU 측정에는 ultralytics_yolo 0.7.1와 공식 v0.7.0 w8a32 에셋을 사용했으며, 프로토타입 NPU 측정에는 FP32 내보내기 모델을 사용했습니다. YOLO26n 감지 작업은 CPU에서 31.4ms, GPU에서 25.6ms, 프로토타입 NPU 경로에서 11.0ms가 걸립니다. Depth와 OBB는 NPU 결과가 없으며 대신 GPU에서 실행됩니다.
Ultralytics 모바일 벤치마크 페이지에서 더 많은 기기와 모델을 비교하세요.
MediaTek Genio#
이 결과는 LiteRT를 사용하는 Dimensity Android 휴대폰에 해당합니다. MediaTek Genio IoT 플랫폼은 별도의 Yocto 및 NeuroPilot 소프트웨어 스택을 사용합니다. Ultralytics는 Genio 배포를 검증하거나 문서화하지 않으며, 위의 Dimensity 결과는 Genio 보드에 적용되지 않습니다.
자주 묻는 질문#
model.export(format="litert", imgsz=640)또는yolo export model=yolo26n.pt format=litert imgsz=640을 사용하세요. 분류에는imgsz=224를 사용하세요. 생성된.tflite파일은 Flutter 플러그인으로 실행할 수 있으며, 별도의 MediaTek 내보내기 형식은 없습니다.배포된 플러그인은 LiteRT CPU 및 GPU 추론을 지원합니다. 위의 NPU 결과는 FP32 모델을 사용하는 미공개 프로토타입으로 측정했으며, 공식
w8a32에셋은 NPU에서 완전히 컴파일되지 않습니다.아니요. 측정은 Android 휴대폰에서 수행했으며, Genio는 다른 소프트웨어 스택을 사용합니다. Ultralytics는 Genio 배포를 검증하지 않았습니다.
댓글
질문을 하거나 결과를 공유하거나 다른 사람을 도와주세요.