상세 컨텐츠

본문 제목

Torch 모델부터 OpenVINO모델까지: OTX로 간단하게 컴퓨터 비전 모델 완성하기

IT/Deep Learning

by HarimKang 2024. 11. 23. 22:20

본문

OTX (OpenVINO™ Training Extensions)란 무엇인가요?

AI 기술이 발전하면서, 이제 누구나 자신만의 딥러닝 모델을 만들 수 있는 시대가 되었습니다. 하지만 여전히 많은 사람들에게 AI 모델 학습은 높은 기술 장벽으로 다가옵니다.

  • 코드를 작성해야 하는 복잡함
  • 데이터 준비 과정에서의 번거로움
  • 모델 배포를 위한 추가 작업 등

이러한 어려움을 해결하기 위해 오픈소스 딥러닝 프레임워크 OTX (OpenVINO™ Training Extensions)가 등장했습니다.

image

OTX는 AI 모델을 학습, 커스터마이징, 배포까지 손쉽게 진행할 수 있도록 도와주는 low-code AI 툴킷입니다. 특히 분류(Classification), 객체 탐지(Object Detection), 세그멘테이션(Segmentation) 등 컴퓨터 비전 작업에 최적화되어 있으며, 모델 학습부터 최적화된 OpenVINO 모델 추출까지 단 몇 줄의 CLI 명령어만으로 가능하게 설계되었습니다.

OTX의 핵심 기능

  1. Low-code 접근법
    AI 모델 학습은 복잡한 코드나 다양한 라이브러리 설정 없이, 명령어 한 줄로 쉽게 실행할 수 있습니다. otx train --task {task} --data_root {데이터path} --work_dir {출력경로} 명령어 하나로 학습이 시작되며, 복잡한 설정 없이 바로 결과를 얻을 수 있습니다.
  2. 모델 최적화 및 변환
    OTX는 학습이 완료된 모델을 OpenVINO 형식으로 변환하여, 실제 추론 환경에서 성능을 크게 향상시킵니다. OpenVINO하드웨어 가속을 지원하며, 다양한 플랫폼에서 모델 추론을 최적화해줍니다. 여러분은 모델을 한 번 학습시킨 후, 최적화된 모델을 바로 배포할 수 있습니다.
  3. 사용자 친화적인 CLI 도구
    OTX는 명령어 한 줄로 모델 학습부터 OpenVINO 모델 변환까지 할 수 있게 도와줍니다. 복잡한 설정을 최소화하고, 데이터만 준비되면 바로 실행할 수 있도록 설계되었습니다. 그 결과, 딥러닝 전문가가 아니더라도 누구나 쉽게 사용할 수 있습니다.
  4. 확장성
    TorchvisionHugging Face 모델을 포함한 다양한 프레임워크와 호환되며, 사용자는 자신이 선호하는 프레임워크에서 작업한 모델을 OTX로 쉽게 통합할 수 있습니다. 또한, OTX는 다양한 컴퓨터 비전 작업을 지원하여, 이미지 분류, 객체 탐지, 세그멘테이션 등 여러 분야에 걸쳐 활용할 수 있습니다.
  5. 데이터가 부족할 때도 유용
    OTX는 준지도 학습(Semi-supervised Learning) 기능을 지원하여, 데이터가 부족한 환경에서도 성능을 최적화할 수 있도록 도와줍니다. 또한, 클래스 증강(Class Incremental) 기능으로, 점진적으로 데이터를 추가하며 모델을 계속 학습시킬 수 있어, 작은 데이터셋에서도 뛰어난 성능을 발휘합니다.

왜 OTX를 사용해야 할까요?

OTX는 복잡한 개발 과정을 단순화하고, 시간과 자원 절약을 가능하게 합니다. 또한, 전문적인 딥러닝 지식이 없는 사람들에게도 효율적이고 직관적인 도구를 제공하여, 누구나 쉽게 AI 모델을 개발하고 OpenVINO로 최적화된 모델을 만들 수 있습니다. 이제 더 이상 복잡한 코드 작성 없이, 모델 학습과 최적화 작업을 손쉽게 할 수 있습니다.

1-1. 간단한 CLI 기반 학습

복잡한 딥러닝 모델 코드 없이, 명령어 한 줄로 모델을 학습시킬 수 있습니다.

otx train --data_root {data path}

이 명령어만 입력하면 ResNet50, Vision Transformer (ViT) 등 고성능 모델을 활용해 데이터를 학습시킬 수 있습니다.
또한 CLI도 간단하지만, API도 매우 간단합니다.

1-2. CLI와 매핑되는 간단한 API

from otx.engine import Engine

engine = Engine(data_root="{data path}")
engine.train()

2. 손쉬운 OpenVINO 모델 변환

학습이 끝난 모델은 otx export 명령어 하나로 OpenVINO 형식으로 변환되어, 최적화된 추론 속도를 제공합니다.

otx export --work_dir {output_dir}

3. 데이터 친화적인 설계

적은 양의 데이터로도 고성능 모델을 학습할 수 있는 준지도 학습(Semi-supervised Learning)과 클래스 증강(Class Incremental) 기능을 지원합니다.
→ "데이터가 부족하더라도 걱정 마세요. OTX는 적은 데이터 환경에서도 강력한 성능을 제공합니다."

4. 확장성과 호환성

torchvision, Hugging Face와 같은 다양한 딥러닝 프레임워크 모델을 통합적으로 활용할 수 있습니다.


OTX로 시작하기: 간단한 사용 사례

예제: 이미지 분류 모델 만들기

  1. 데이터 준비
    데이터를 로컬 디렉토리로 정리합니다. (e.g., train, val, test 폴더로 나누기)
  2. 학습 실행
otx train --data_root {data path} --task multi_class_cls --work_dir {output_dir}

3. OpenVINO 모델 변환

otx export --work_dir {output_dir}

4. 추론 실행 (OpenVINO Inference Engine 사용)

변환된 모델은 OpenVINO 툴킷과 함께 손쉽게 배포 및 추론에 활용할 수 있습니다.

OTX와 함께 AI 모델 개발의 새로운 가능성을 경험하세요

OTX는 단순히 AI 모델 학습을 돕는 도구가 아니라, 데이터 준비 → 모델 학습 → 최적화 모델 변환까지 한 번에 처리할 수 있는 올인원 솔루션입니다.
특히, 딥러닝 모델 개발 경험이 없는 초보자나 데이터 과학자도 몇 줄의 CLI 명령어로 전문가 수준의 결과를 얻을 수 있습니다.

OTX를 활용해 보고 싶으시다면

GitHub: [github 주소](https://github.com/openvinotoolkit/training_extensions)
공식 문서: OTX 문서

관련글 더보기