Raspberry Pi에서 Coral Edge TPU를 사용하여 Ultralytics YOLO26을 실행하는 방법#
Raspberry Pi는 엣지에서 컴퓨터 비전을 실행하기 위한 전력 효율적이고 합리적인 가격의 플랫폼이지만, ONNX나 OpenVINO 같은 최적화된 포맷을 사용하더라도 온디바이스 추론 속도는 느립니다. Pi를 Coral Edge TPU 보조 프로세서와 결합하면 전용 하드웨어로 추론을 오프로드하여 속도를 극적으로 향상시킬 수 있습니다. 본 가이드에서는 런타임을 설치하고, Ultralytics YOLO26 모델을 Edge TPU 포맷으로 내보내며, 가속화된 추론을 실행하는 방법을 설명합니다.
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
Coral Edge TPU를 사용하는 이유는 무엇인가요?#
Coral Edge TPU는 시스템에 Edge TPU 보조 프로세서를 추가하여 TensorFlow Lite 모델을 위한 저전력, 고성능 ML 추론을 가능하게 하는 소형 장치입니다. CPU만으로는 처리 속도를 따라갈 수 없는 임베디드 및 모바일 배포 환경에 매우 적합합니다:
- 더 빠른 추론 — Edge TPU는 Raspberry Pi CPU가 단독으로 달성할 수 있는 성능을 훨씬 뛰어넘어 양자화된 모델을 가속화합니다.
- 낮은 전력 소비 — 와트당 높은 처리량을 제공하여 배터리 또는 태양광 기반 배포에 이상적입니다.
- 플러그앤플레이 — USB Accelerator는 USB 3.0을 통해 연결되므로 별도의 하드웨어 통합이 필요하지 않습니다.
공식 Coral 가이드는 구식입니다. 원래의 Coral 런타임 빌드는 현재의 TensorFlow Lite 런타임 버전과 더 이상 호환되지 않으며, 해당 프로젝트는 2021년부터 2025년 사이 업데이트가 전혀 없었습니다. 본 가이드에서는 활발히 유지 관리되는 Edge TPU 런타임과 최신 tflite-runtime을 사용하여 현재의 Raspberry Pi OS 설치 환경에서도 가속기가 정상 작동하도록 합니다.
사전 요구 사항#
- Raspberry Pi 4B(2GB 이상 권장) 또는 Raspberry Pi 5(권장)
- 데스크톱 환경이 포함된 Raspberry Pi OS Bullseye/Bookworm(64비트)(권장)
- Coral USB Accelerator
- Edge TPU 컴파일러가 ARM을 지원하지 않으므로, 모델 내보내기를 위한 비 ARM 플랫폼(Google Colab, x86_64 Linux 머신 또는 Ultralytics Docker container)
본 가이드는 ultralytics 및 관련 종속성이 이미 설치된 정상 작동하는 Raspberry Pi OS 환경을 가정합니다. 그렇지 않은 경우 먼저 퀵스타트 가이드를 따르십시오.
사전 준비가 완료되면 워크숍은 세 단계로 진행됩니다. Pi에 Edge TPU 런타임 설치, 비 ARM 머신에서 모델 내보내기, 그리고 Pi로 돌아와 추론 실행을 수행합니다.
Edge TPU 런타임 설치#
런타임은 여러 빌드로 제공되므로 운영 체제에 맞는 버전을 선택하십시오. 고주파 빌드는 성능 향상을 위해 Edge TPU를 더 높은 클럭 속도로 실행하지만, 열 스로틀링이 발생할 수 있으므로 선택 시 냉각 장치를 사용하는 것이 좋습니다.
| Raspberry Pi OS | 고주파 모드 | 다운로드할 버전 |
|---|---|---|
| Bullseye 32비트 | 아니요 | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64비트 | 아니요 | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32비트 | 예 | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64비트 | 예 | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32비트 | 아니요 | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64비트 | 아니요 | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32비트 | 예 | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64비트 | 예 | libedgetpu1-max_ ... .bookworm_arm64.deb |
여기서 최신 버전을 다운로드한 다음, .deb 패키지를 설치합니다:
sudo dpkg -i path/to/package.deb런타임을 설치한 후, 새로운 udev 규칙이 적용되도록 Coral Edge TPU를 Raspberry Pi의 USB 3.0 포트에 연결합니다.
기존 런타임을 먼저 제거
Coral Edge TPU 런타임이 이미 설치되어 있다면 새 빌드를 설치하기 전에 제거하십시오.
# If you installed the standard version
sudo apt remove libedgetpu1-std
# If you installed the high-frequency version
sudo apt remove libedgetpu1-max모델을 Edge TPU 형식으로 내보내기#
Edge TPU를 사용하려면 모델을 호환되는 포맷으로 변환해야 합니다. Edge TPU 컴파일러는 ARM에서 지원되지 않으므로 비 ARM 플랫폼(Google Colab, x86_64 Linux 머신, 공식 Ultralytics Docker container 또는 Ultralytics Platform)에서 내보내기를 실행하세요. 사용 가능한 인수는 Export 모드를 참조하세요.
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/model.pt") # Load an official model or custom model
# Export the model
model.export(format="edgetpu")내보낸 모델은 <model_name>_saved_model/ 폴더에 <model_name>_full_integer_quant_edgetpu.tflite(으)로 저장됩니다.
파일명은 반드시 _edgetpu.tflite(으)로 끝나야 합니다. 다른 이름으로 변경하면 Ultralytics는 Edge TPU를 감지하지 못하고 일반 TensorFlow Lite 모델로 로드하므로 가속기가 사용되지 않습니다.
Edge TPU에서 추론 실행#
모델을 실행하기 전에 Raspberry Pi에 올바른 라이브러리를 설치하십시오. TensorFlow가 이미 설치되어 있다면 먼저 제거하십시오:
pip uninstall tensorflow tensorflow-aarch64그 후 tflite-runtime(을)를 설치하거나 업데이트합니다:
pip install -U tflite-runtime이제 추론을 실행할 수 있습니다:
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png")예측 모드에 대한 자세한 내용은 Predict 페이지를 참조하세요.
여러 개의 Edge TPU가 있는 경우 device 인수를 사용하여 특정 장치를 선택할 수 있습니다.
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png") # Inference defaults to the first TPU
model.predict("path/to/source.png", device="tpu:0") # Select the first TPU
model.predict("path/to/source.png", device="tpu:1") # Select the second TPU벤치마크#
아래 수치는 Raspberry Pi OS Bookworm 64비트와 USB Coral Edge TPU로 측정한 결과입니다. 이는 추론 시간만(전처리/후처리 제외) 나타내며, Pi 모델 및 모드 전반에서 Edge TPU가 제공하는 가속에 대한 상대적인 기준점을 제공합니다.
이 벤치마크는 YOLOv8 모델로 기록되었습니다. 절대적인 추론 시간은 모델 버전과 이미지 크기에 따라 다르지만, Pi 모델과 클럭 모드 간의 상대적인 속도 향상은 유효합니다.
| 이미지 크기 | 모델 | 표준 추론 시간 (ms) | 고주파 추론 시간 (ms) |
|---|---|---|---|
| 320 | YOLOv8n | 32.2 | 26.7 |
| 320 | YOLOv8s | 47.1 | 39.8 |
| 512 | YOLOv8n | 73.5 | 60.7 |
| 512 | YOLOv8s | 149.6 | 125.3 |
평균적으로:
- Raspberry Pi 5는 표준 모드에서 Raspberry Pi 4B보다 22% 빠릅니다.
- Raspberry Pi 5는 고주파 모드에서 Raspberry Pi 4B보다 30.2% 빠릅니다.
- 고주파 모드는 표준 모드보다 28.4% 빠릅니다.
결론#
Coral Edge TPU를 사용하면 Raspberry Pi를 Ultralytics YOLO26을 위한 성능이 뛰어나고 저전력인 추론 장치로 전환할 수 있습니다. 비 ARM 머신에서 모델을 내보내고 _edgetpu.tflite 접미사를 유지한 채 Pi에서 tflite-runtime(으)로 실행하여 가속화된 엣지 추론을 얻으세요. 더 많은 배포 옵션은 Raspberry Pi 가이드를 참조하세요.
FAQ#
Coral Edge TPU는 시스템에 Edge TPU 보조 프로세서를 추가하는 소형 장치입니다. 이 보조 프로세서는 저전력, 고성능 ML 추론을 가능하게 하며, 특히 TensorFlow Lite 모델에 최적화되어 있습니다. Raspberry Pi에서 이 장치는 CPU 단독으로 달성하는 성능보다 훨씬 빠르게 추론을 가속화하여 Ultralytics YOLO26 모델의 성능을 크게 향상시킵니다.
이 링크에서 사용 중인 Raspberry Pi OS 버전에 맞는 적절한
.deb패키지를 다운로드한 후 설치하세요:sudo dpkg -i path/to/package.debInstall the Edge TPU Runtime 섹션의 단계를 따라 이전 Coral Edge TPU 런타임 버전을 반드시 제거하세요.
네. Google Colab, x86_64 Linux 머신 또는 Ultralytics Docker container에서 내보내기를 실행하세요. Ultralytics Platform을 사용할 수도 있습니다. Python과 CLI를 사용하여 내보내는 방법은 다음과 같습니다:
모델 내보내기from ultralytics import YOLO # Load a model model = YOLO("path/to/model.pt") # Load an official model or custom model # Export the model model.export(format="edgetpu")자세한 내용은 Export 모드 문서를 참조하세요.
TensorFlow가 설치되어 있고
tflite-runtime(으)로 전환해야 하는 경우, 먼저 TensorFlow를 제거하세요:pip uninstall tensorflow tensorflow-aarch64그 후
tflite-runtime(을)를 설치하거나 업데이트합니다:pip install -U tflite-runtime자세한 지침은 Run Inference on the Edge TPU 섹션을 참조하세요.
YOLO26 모델을 Edge TPU 호환 포맷으로 내보낸 후 다음 스니펫으로 추론을 실행합니다. Ultralytics가 Edge TPU에서 로드할 수 있도록 모델 파일은
_edgetpu.tflite접미사를 유지해야 합니다:모델 실행from ultralytics import YOLO # Load a model model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model # Run Prediction model.predict("path/to/source.png")예측 모드에 대한 포괄적인 세부 정보는 Predict 페이지에 있습니다.