Link to this sectionUltralytics YOLO 모델을 위한 DEEPX 내보내기#
특수 NPU 하드웨어에서 컴퓨터 비전 모델을 배포하려면 호환되고 최적화된 모델 형식이 필요합니다. Ultralytics YOLO 모델을 DEEPX 형식으로 내보내면 DEEPX NPU 가속기에서 효율적인 INT8 양자화 추론이 가능합니다. 이 가이드는 YOLO 모델을 DEEPX 형식으로 변환하고 DEEPX 기반 하드웨어에 배포하는 과정을 안내합니다.
Link to this sectionDEEPX란 무엇입니까?#
DEEPX는 에지(edge)에서 전력 효율적인 딥러닝 추론을 위해 설계된 NPU(Neural Processing Units)를 전문으로 하는 AI 반도체 기업입니다. DEEPX NPU는 까다로운 임베디드 및 산업용 AI 애플리케이션을 위해 엔지니어링되었으며, 최소한의 전력 소비로 높은 처리량을 제공합니다. 이들의 하드웨어는 로봇 공학, 스마트 카메라, 산업 자동화 시스템과 같이 클라우드 연결이 불안정하거나 바람직하지 않은 배포 시나리오에 적합합니다.
Link to this sectionDEEPX 내보내기 형식#
DEEPX 내보내기는 DEEPX NPU 하드웨어 실행에 최적화된 컴파일된 .dxnn 모델 바이너리를 생성합니다. 컴파일 파이프라인은 dx_com 툴킷을 사용하여 INT8 양자화 및 하드웨어별 최적화를 수행하며, 배포 준비가 완료된 독립형 모델 디렉토리를 생성합니다.
Link to this sectionDEEPX 모델의 주요 특징#
DEEPX 모델은 에지 배포를 위해 다음과 같은 몇 가지 이점을 제공합니다:
- INT8 양자화: 모델은 내보내기 중에 INT8 정밀도로 양자화되어 모델 크기를 크게 줄이고 NPU 처리량을 극대화합니다. 모델 양자화에 대해 자세히 알아보십시오.
- NPU 최적화:
.dxnn형식은 DEEPX NPU 하드웨어용으로 특별히 컴파일되었으며, 빠르고 효율적인 추론을 위해 전용 가속 유닛을 활용합니다. - 낮은 전력 소비: 추론을 NPU로 오프로딩함으로써 DEEPX 모델은 동급 CPU 또는 GPU 추론보다 훨씬 적은 전력을 소비합니다.
- 보정 기반 정확도: 이 내보내기는 실제 데이터셋 이미지를 사용한 EMA 기반 보정을 사용하여 양자화 중 정확도 손실을 최소화합니다.
- 독립형 출력: 내보낸 모델 디렉토리에는 컴파일된 바이너리, 보정 구성 및 메타데이터가 포함되어 있어 간편하게 배포할 수 있습니다.
Link to this section지원되는 작업#
모든 표준 Ultralytics 작업은 YOLO26, YOLO11 및 YOLOv8 모델 제품군 전반에서 DEEPX 내보내기를 지원합니다.
| 작업 | 지원됨 |
|---|---|
| 객체 탐지 | ✅ |
| 인스턴스 세그멘테이션 | ✅ |
| 시맨틱 세그멘테이션 | ✅ |
| 포즈 추정 | ✅ |
| OBB 탐지 | ✅ |
| 분류 | ✅ |
Link to this sectionDEEPX로 내보내기: YOLO 모델 변환#
Ultralytics YOLO 모델을 DEEPX 형식으로 내보내고 내보낸 모델로 추론을 실행합니다.
DEEPX 내보내기는 x86-64 Linux 머신에서만 지원됩니다. ARM64(aarch64)는 내보내기 단계에서 지원되지 않습니다. 그러나 내보낸 dxnn 모델은 ARM64 플랫폼에서 완벽하게 호환되며 실행 가능합니다.
Link to this section설치#
필수 패키지를 설치하려면 다음을 실행하십시오:
# Install the required package for YOLO
pip install ultralyticsdx_com 컴파일러 패키지는 첫 번째 내보내기 시 DEEPX SDK 저장소에서 자동으로 설치됩니다. 설치 프로세스와 관련된 자세한 지침 및 모범 사례는 Ultralytics 설치 가이드를 확인하십시오. YOLO용 필수 패키지를 설치하는 동안 어려움이 발생하면 일반적인 문제 가이드에서 해결책과 팁을 확인하십시오.
Link to this section사용법#
DEEPX 형식은 내보내기, 예측 및 검증 모드를 지원합니다. 추론 및 검증은 DEEPX NPU 하드웨어에서 실행됩니다. 모델을 내보낸 후 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하십시오.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to DEEPX format (int8=True is enforced automatically)
model.export(format="deepx") # creates 'yolo26n_deepx_model/'from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this section내보내기 인수#
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
format | str | 'deepx' | 내보낸 모델의 대상 형식으로, DEEPX NPU 하드웨어와의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 필요한 이미지 크기입니다. DEEPX 내보내기는 정사각형 입력을 요구합니다. 정수(예: 640) 또는 높이와 너비가 같은 튜플을 전달하십시오. |
int8 | bool | True | INT8 양자화를 활성화합니다. DEEPX 내보내기에 필요하며, 지정하지 않으면 자동으로 True로 설정됩니다. |
data | str | 'coco128.yaml' | INT8 보정에 사용되는 데이터셋 구성 파일입니다. 보정 이미지 소스를 지정합니다. |
device | str | None | 내보내기용 디바이스를 지정합니다: GPU(device=0) 또는 CPU(device=cpu). |
optimize | bool | False | 추론 지연 시간을 줄이고 컴파일 시간을 늘리는 더 높은 컴파일러 최적화를 활성화합니다. |
DEEPX 내보내기는 항상 x86-64 Linux 호스트에서 실행하십시오. dx_com 컴파일러는 ARM64를 지원하지 않습니다.
내보내기 프로세스에 대한 자세한 내용은 Ultralytics 내보내기 문서 페이지를 방문하십시오.
Link to this section출력 구조#
내보내기가 성공하면 다음 레이아웃으로 모델 디렉토리가 생성됩니다:
yolo26n_deepx_model/
├── yolo26n.dxnn # Compiled DEEPX model binary (NPU executable)
├── config.json # Calibration and preprocessing configuration
└── metadata.yaml # Model metadata (classes, image size, task, etc.).dxnn 파일은 dx_engine 런타임이 NPU에서 직접 로드하는 컴파일된 모델 바이너리입니다. metadata.yaml에는 Ultralytics 추론 파이프라인에서 사용하는 클래스 이름, 이미지 크기 및 기타 정보가 포함되어 있습니다.
Link to this section내보낸 YOLO DEEPX 모델 배포#
Ultralytics YOLO 모델을 DEEPX 형식으로 성공적으로 내보냈다면, 다음 단계는 DEEPX NPU 하드웨어에 이러한 모델을 배포하는 것입니다.
Link to this section런타임 설치#
추론을 위해서는 DEEPX NPU 드라이버, libdxrt 런타임 및 dx_engine Python 패키지가 필요합니다.
DEEPX 런타임은 x86-64 Linux와 ARM64(예: Raspberry Pi 5)를 모두 지원합니다.
# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb
# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh
# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whldxrt-cli --version으로 런타임이 올바르게 설치되었는지 확인하십시오. 다음과 비슷한 출력이 표시되어야 합니다:
DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6런타임이 설치되면 위의 사용법 섹션에 표시된 대로 DEEPX 디바이스에서 추론 및 검증을 실행하십시오. 내보낸 _deepx_model은 YOLO(...)를 통해 직접 로드됩니다.
Link to this sectiondxtron으로 시각화#
dxtron은 컴파일된 .dxnn 모델을 검사하기 위한 DEEPX의 그래프 시각화 도구입니다.
Install dxtron on x86-64 Linux by downloading the .deb package from the DEEPX SDK and installing it via dpkg:
wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.deb그런 다음 내보낸 모델을 엽니다:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron은 x86-64 및 aarch64 플랫폼 모두에서 사용할 수 있습니다.
Link to this section벤치마크#
Ultralytics 팀은 YOLO26 모델을 벤치마킹하여 PyTorch와 DEEPX 간의 속도와 정확도를 비교했습니다.
| 모델 | 형식 | 상태 | 크기 (MB) | metrics/mAP50-95(B) | 추론 시간 (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| 모델 | 형식 | 상태 | 크기 (MB) | acc (top1) | acc (top5) | 추론 시간 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.7 |
위 벤치마크에 대한 검증은 객체 탐지는 coco128, 세그멘테이션은 coco128-seg, 자세 추정은 coco8-pose, 분류는 imagenet100, OBB 모델은 dota128 데이터셋을 사용하여 수행되었습니다. 추론 시간은 전처리 및 후처리 시간을 포함하지 않습니다.
Raspberry Pi 5에 연결된 DX-M1 NPU에서 최상의 추론 처리량을 얻으려면, 부팅 구성 파일을 열고 PCIe Gen 3 지원을 활성화하십시오.
sudo nano /boot/firmware/config.txt파일 끝에 다음 줄을 추가하십시오:
dtparam=pciex1
dtparam=pciex1_gen=3저장 후 종료(Ctrl+X, 이후 Y, 그리고 Enter)한 다음 재부팅하십시오:
sudo rebootPCIe 세대를 확인하십시오. 예상 속도는 PCIe Gen3의 경우 8GT/s입니다.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Link to this section권장 워크플로#
- 학습(Train): Ultralytics Train Mode를 사용하여 모델을 학습합니다.
- 내보내기(Export):
model.export(format="deepx")를 사용하여 DEEPX 형식으로 내보냅니다. - 검증(Validate):
yolo val을 사용하여 정확도를 검증하고 양자화 손실이 최소인지 확인합니다. - 예측(Predict):
yolo predict를 사용하여 정성적 검증을 수행합니다. - 배포(Deploy): 내보낸
_deepx_model/디렉토리를dx_engine런타임을 사용하여 DEEPX NPU 하드웨어에 배포합니다.
Link to this section실제 응용 사례#
DEEPX NPU 하드웨어에 배포된 YOLO 모델은 다양한 edge AI 응용 분야에 적합합니다:
- 스마트 감시: 낮은 전력 소비와 클라우드 의존성 없이 보안 및 모니터링 시스템을 위한 실시간 object detection.
- 산업 자동화: 공장 환경에서의 온디바이스 품질 관리, 결함 탐지 및 공정 모니터링.
- 로봇 공학: 자율 로봇 및 드론에서의 시각 기반 내비게이션, 장애물 회피 및 객체 인식.
- 스마트 농업: computer vision in agriculture를 활용한 작물 건강 모니터링, 해충 탐지 및 수확량 추정.
- 리테일 분석: 실시간 엣지 추론을 통한 고객 흐름 분석, 매대 모니터링 및 재고 추적.
Link to this section요약#
이 가이드에서는 Ultralytics YOLO 모델을 DEEPX 형식으로 내보내고 DEEPX NPU 하드웨어에 배포하는 방법을 배웠습니다. 내보내기 파이프라인은 INT8 보정과 dx_com 컴파일러를 사용하여 하드웨어 최적화된 .dxnn 바이너리를 생성하며, dx_engine 런타임이 기기에서의 추론을 처리합니다.
Ultralytics YOLO와 DEEPX의 NPU 기술 결합은 임베디드 및 엣지 장치에서 고급 computer vision 워크로드를 실행하기 위한 효과적인 솔루션을 제공하며, 실시간 애플리케이션을 위해 낮은 전력 소비로 높은 처리량을 제공합니다.
사용 방법에 대한 자세한 내용은 DEEPX 공식 웹사이트를 방문하십시오.
또한 다른 Ultralytics YOLO 통합에 대해 알고 싶으시면 통합 가이드 페이지를 방문하십시오. 그곳에서 유용한 리소스와 통찰력을 많이 찾으실 수 있습니다.
Link to this sectionFAQ#
Link to this sectionUltralytics YOLO 모델을 DEEPX 형식으로 어떻게 내보내나요?#
Python의 export() 메서드 또는 CLI를 통해 모델을 내보낼 수 있습니다. 내보내기 시 자동으로 INT8 양자화가 활성화되며, 정확도 손실을 최소화하기 위해 보정 데이터셋이 사용됩니다. dx_com 컴파일러 패키지는 설치되어 있지 않은 경우 자동으로 설치됩니다.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this section왜 DEEPX 내보내기에 INT8 양자화가 필요한가요?#
DEEPX NPU는 INT8 연산을 최대 효율로 실행하도록 설계되었습니다. dx_com 컴파일러는 내보내기 과정에서 실제 데이터셋 이미지를 사용하여 EMA 기반 보정으로 모델을 양자화하며, 이를 통해 NPU가 최대 성능을 발휘할 수 있게 합니다. DEEPX 내보내기에서는 항상 INT8이 강제되며, int8=False를 전달하면 경고와 함께 재정의됩니다.
Link to this sectionDEEPX 내보내기는 어떤 플랫폼을 지원하나요?#
DEEPX 모델 내보내기(컴파일)는 x86-64 Linux 호스트가 필요합니다. ARM64(aarch64) 및 Windows 머신에서의 내보내기 단계는 지원되지 않습니다. 내보낸 .dxnn 모델을 사용한 추론은 dx_engine 런타임이 지원하는 모든 Linux 플랫폼(x86-64 및 ARM64)에서 실행할 수 있습니다.
Link to this sectionDEEPX 내보내기의 출력물은 무엇인가요?#
내보내기를 수행하면 다음을 포함하는 디렉토리(예: yolo26n_deepx_model/)가 생성됩니다:
yolo26n.dxnn— 컴파일된 NPU 바이너리config.json— 보정 및 전처리 설정metadata.yaml— 클래스 이름 및 이미지 크기를 포함한 모델 메타데이터
Link to this sectionDEEPX 하드웨어에 직접 학습한 모델을 배포할 수 있나요?#
네. Ultralytics Train Mode를 사용하여 학습하고 format="deepx"로 내보낸 모든 모델은 지원되는 레이어 연산을 사용하는 경우 DEEPX NPU 하드웨어에 배포할 수 있습니다. 내보내기는 탐지, 세그멘테이션, 자세 추정, OBB 및 분류 작업을 지원합니다.
Link to this sectionDEEPX 내보내기에 얼마나 많은 보정 이미지를 사용해야 하나요?#
DEEPX 내보내기 파이프라인은 EMA 보정 방법을 사용하여 ( fraction 필터링 후) 보정 데이터셋의 모든 이미지를 사용합니다. 일반적으로 수백 장의 이미지가 양자화 정확도를 확보하기에 충분합니다. 대규모 데이터셋에서 컴파일 시간이 문제가 된다면 data를 더 작은 데이터셋으로 지정하거나 fraction을 1.0 미만으로 설정하십시오.
Link to this section추론을 위한 DEEPX 런타임은 어떻게 설치하나요?#
DEEPX 런타임은 ultralytics와 함께 제공되지 않으며 추론 실행 전에 별도로 설치해야 합니다. x86-64 Linux 머신 및 ARM64 Linux 머신(예: Raspberry Pi 5)에서는 DEEPX-AI GitHub 릴리스에서 NPU 드라이버(dxrt-driver-dkms) 및 런타임(libdxrt)을 설치한 후, 번들로 제공되는 dx_engine Python 휠을 설치하십시오. 단계별 명령은 위 런타임 설치 섹션을 참조하십시오.