인텔 OpenVINO에서 추론을 위한 Ultralytics YOLOv8 내보내기 및 최적화

누볼라 라디

2분 읽기

2024년 5월 24일

OpenVINO를 사용하여 추론을 위해 Ultralytics YOLOv8 모델을 최적화하세요. PyTorch 모델을 ONNX로 변환하고 실시간 애플리케이션에 맞게 최적화하는 가이드를 따르세요.

이 블로그 게시물에서는 사전 학습되거나 사용자 정의 학습된 Ultralytics YOLOv8 모델을 내보내고 최적화하여 OpenVINO를 사용하여 추론하는 방법을 살펴봅니다. CPU든 GPU든 인텔 기반 시스템을 사용하는 경우, 이 가이드에서는 최소한의 노력으로 모델 속도를 크게 높이는 방법을 보여드립니다.

OpenVINO로 YOLOv8을 최적화하는 이유는 무엇인가요?

특히 인텔 CPU를 사용하는 경우, OpenVINO로 YOLOv8 모델을 최적화하면 추론 작업의 속도가 최대 3배까지 향상될 수 있습니다. 이러한 성능 향상은 객체 감지부터 세분화 및 보안 시스템에 이르기까지 실시간 애플리케이션에서 큰 차이를 만들 수 있습니다.

YOLOv8 모델을 내보내고 최적화하는 단계

프로세스 이해

먼저 프로세스를 세분화해 보겠습니다. PyTorch 모델을 ONNX로 변환한 다음 OpenVINO를 사용하여 최적화하겠습니다. 이 프로세스는 몇 가지 간단한 단계로 이루어지며 TensorFlow, PyTorch, Caffe, ONNX 등 다양한 모델과 형식에 적용할 수 있습니다.

모델 내보내기

Ultralytics 설명서를 살펴보면, YOLOv8 모델을 내보내려면 Ultralytics 프레임워크의 내보내기 방법을 사용해야 한다는 것을 알 수 있습니다. 이 방법을 사용하면 파이토치에서 ONNX로 모델을 변환하고 마지막으로 OpenVINO에 맞게 최적화할 수 있습니다. 그 결과 인텔의 강력한 하드웨어를 활용하여 훨씬 더 빠르게 실행되는 모델이 탄생했습니다.

종속성 설치

내보내기 스크립트를 실행하기 전에 필요한 모든 종속성이 설치되어 있는지 확인해야 합니다. 여기에는 Ultralytics 라이브러리, ONNX 및 OpenVINO가 포함됩니다. 이러한 패키지를 설치하는 과정은 Python 패키지 설치 프로그램인 pip를 통해 간단하게 수행할 수 있습니다.

내보내기 스크립트 실행

환경이 설정되면 내보내기 스크립트를 실행할 수 있습니다. 이 스크립트는 PyTorch 모델을 ONNX로 변환한 다음 OpenVINO로 변환합니다. 이 과정은 간단하며 내보내기를 처리하는 단일 함수를 호출하기만 하면 됩니다. Ultralytics 프레임워크를 사용하면 모델을 쉽게 변환하고 최적화할 수 있으므로 번거로움을 최소화하면서 최고의 성능을 얻을 수 있습니다.

__wf_reserved_inherit
그림 1. 니콜라이 닐슨이 내보내기 스크립트를 실행하는 방법을 설명합니다.

성능 비교

내보내기 후에는 원본 모델과 최적화된 모델의 성능을 비교하는 것이 필수적입니다. 두 모델의 추론 시간을 벤치마킹하면 성능 향상을 명확하게 확인할 수 있습니다. 일반적으로 OpenVINO 모델은 원래 PyTorch 모델에 비해 추론 시간이 크게 단축되는 것을 볼 수 있습니다. 이는 특히 성능 향상이 가장 눈에 띄는 대규모 모델에서 더욱 두드러집니다.

실제 적용 및 이점

특히 실시간 처리가 필요한 애플리케이션의 경우 OpenVINO로 YOLOv8 모델을 최적화하는 것이 유용합니다. 다음은 몇 가지 예시입니다:

  • 보안 시스템: 실시간 물체 감지를 통해 보안 담당자에게 즉시 경고하여 안전과 대응력을 향상시킬 수 있습니다.
    ↪f_200D↩
  • 자율주행 차량: 추론 속도가 빨라지면 자율 주행 시스템의 응답성이 향상되어 더 안전하고 신뢰할 수 있습니다.
    ↪f_200D↩
  • 헬스케어: 진단 도구의 빠른 이미지 처리는 빠른 결과를 제공하여 적시에 개입할 수 있도록 함으로써 생명을 구할 수 있습니다.

이러한 최적화를 구현하면 성능을 개선할 뿐만 아니라 애플리케이션의 안정성과 효율성을 향상시킬 수 있습니다. 이는 더 나은 사용자 경험, 생산성 향상, 더 혁신적인 솔루션으로 이어질 수 있습니다.

마무리

OpenVINO용 YOLOv8 모델을 내보내고 최적화하는 것은 인텔 하드웨어를 활용하여 보다 빠르고 효율적인 AI 애플리케이션을 개발할 수 있는 강력한 방법입니다. 몇 가지 간단한 단계만 거치면 모델의 성능을 혁신하고 실제 시나리오에 효과적으로 적용할 수 있습니다.

AI 프로젝트를 계속 향상시키기 위해 Ultralytics에서 제공하는 더 많은 튜토리얼과 가이드를 확인하세요. 더 많은 인사이트와 업데이트를 보려면 GitHub 리포지토리를 방문하고 Ultralytics 커뮤니티에 가입하세요. 함께 혁신하세요!

모델을 최적화하는 것은 단순히 속도를 높이는 것이 아니라 새로운 가능성을 열어주고 AI 솔루션이 견고하고 효율적이며 미래에 대비할 수 있도록 하는 것임을 기억하세요. 

인공지능의 미래
를 함께 만들어 갑시다!

머신 러닝의 미래와 함께하는 여정 시작하기

무료로 시작하기
링크가 클립보드에 복사됨