본문으로 건너뛰기

Rust 기반 컴퓨터 비전 스택 Montgomery

Montgomery는 Burn 기반 Rust 환경에서 YOLO 객체 탐지·세그멘테이션·분류를 CPU와 GPU로 학습하고 추론하는 컴퓨터 비전 스택이다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Montgomery는 Burn을 기반으로 CPU 또는 GPU에서 컴퓨터 비전 추론과 학습을 수행하는 실험적 Rust 스택이다. YOLOX, YOLOv3, YOLOv8, YOLOv10, YOLO11, YOLO12, YOLO26 계열의 객체 탐지와 일부 인스턴스 세그멘테이션·분류를 지원하며, 일반 추론에는 Python, PyTorch, ONNX Runtime이 필요하지 않다. 학습은 처음부터 시작하거나 사전 학습 Burnpack을 초기화 모델로 사용하거나 전체 네이티브 체크포인트에서 재개할 수 있고, 결과·검증 정보·best/last 모델을 파일로 내보낸다. Rust API와 CLI를 함께 제공하며 ONNX 내보내기 과정에서는 ONNX Runtime으로 그래프를 검증한다.

실용적 조언

  • 학습을 중단 후 이어갈 계획이면 --model로 Burnpack만 지정하지 말고 --resume에 전체 네이티브 체크포인트 경로를 지정해야 합니다.
  • Rust 애플리케이션에 추론을 통합할 때는 Model::new으로 .bpk를 불러온 뒤 prediction.detections()에서 클래스명과 confidence를 읽는 방식을 사용할 수 있습니다.
  • 추론 성능을 비교할 때는 이미지 로딩 비용이 포함되는 일반 실행과 montgomery bench의 cold-start·steady-state 측정을 구분해야 합니다.

섹션별 상세

01
Montgomery는 Python, PyTorch, ONNX Runtime 없이 일반 추론을 실행하려는 Rust 기반 컴퓨터 비전 스택으로, CPU 추론과 WGPU 기반 GPU 학습을 하나의 프로젝트 안에 묶었다. 지원 모델 표에는 YOLOX와 YOLOv3부터 YOLOv26까지의 계열과 변형이 나열되어 있으며, 모델에 따라 객체 탐지, 인스턴스 세그멘테이션, 이미지 분류를 수행한다. 따라서 Python 중심 도구 체인 대신 Rust 애플리케이션에 모델 추론을 직접 포함하려는 경우에 의미가 있다.
02
학습 실행은 --architecture, --model, --resume 중 정확히 하나의 초기화 방식을 선택하는 구조다. --architecture는 scratch 학습을 시작하고, --model은 사전 학습된 .bpk를 사용하며, --resume은 모델과 데이터셋이 포함된 전체 네이티브 학습 체크포인트에서 중단된 실행을 이어간다. Burnpack은 새 실행을 초기화할 수 있지만 optimizer 체크포인트가 아니므로, 정확한 학습 재개에는 runs/train/checkpoints/last 같은 재개용 체크포인트가 필요하다.
03
각 학습 실행은 results.csv, results.svg, validation.jsonl과 exports/best.bpk·exports/last.bpk를 생성하고, checkpoints/best와 checkpoints/last를 유지한다. 복구 지점 저장 주기는 --save-period로 조절할 수 있으며, CPU worker 수는 --workers로 자동 선택값을 덮어쓸 수 있다. 이 출력 구조는 학습 결과 확인, 검증 기록 보관, 배포용 최적 모델 선택, 중단된 학습 복구를 서로 다른 파일로 분리한다.
04
Montgomery는 Rust API에서 Model::new으로 yolo26n.bpk를 불러온 뒤 inference로 이미지를 처리하고, prediction.detections()를 순회해 class_name과 confidence를 출력한다. CLI에서는 montgomery predict로 이미지와 JSON 결과를 지정할 수 있고, montgomery bench --device gpu --model best.bpk로 이미지 로딩을 제외한 cold-start 및 steady-state 추론을 측정한다. ONNX 변환은 명시한 Burnpack을 읽어 yolo26n.onnx를 만들며, 변환된 그래프는 ONNX Runtime으로 검증된다.

이미지 분석

흑백 이미지에서 사람, 자전거, 개를 각각 다른 색상의 마스크와 경계 상자로 표시한 인스턴스 세그멘테이션 결과입니다.
Screenshot

이미지는 YOLO11n-seg가 한 장의 이미지 안에서 person, bicycle, dog를 개별 객체로 분리하고 각 객체에 서로 다른 윤곽 마스크와 신뢰도를 부여한 결과를 담고 있습니다. 화면에 person 0.72, bicycle 0.90, dog 0.87이 표시되어 Montgomery가 객체 종류별 탐지와 픽셀 단위 인스턴스 마스크를 함께 처리한다는 본문 내용을 시각적으로 뒷받침합니다.

흑백 이미지에서 사람, 자전거, 개를 각각 다른 색상의 마스크와 경계 상자로 표시한 인스턴스 세그멘테이션 결과입니다.

용어 해설

인스턴스 세그멘테이션(Instance Segmentation)
이미지 안의 객체를 종류별로 분류하는 데 그치지 않고, 같은 종류에 속한 개별 객체를 각각 구분해 픽셀 단위 마스크를 생성하는 컴퓨터 비전 작업입니다. Montgomery에서는 YOLO 계열 모델의 추론 결과로 객체별 윤곽과 신뢰도를 함께 얻는 데 사용됩니다.
Burnpack
Burn 기반 모델 가중치와 실행에 필요한 정보를 저장하는 Montgomery의 네이티브 모델 형식입니다. 새로운 학습 실행을 초기화하는 데 사용할 수 있지만, optimizer 상태를 포함한 학습 중단 지점 자체를 대체하지 않으므로 정확한 재개에는 별도의 체크포인트가 필요합니다.
ONNX 내보내기(ONNX Export)
학습 또는 추론 모델을 서로 다른 실행 환경에서 사용할 수 있는 ONNX 그래프로 변환하는 과정입니다. Montgomery는 명시적으로 지정한 Burnpack을 읽어 ONNX 파일을 만들고, ONNX Runtime으로 변환된 그래프를 검증하는 오프라인 절차를 제공합니다.
재개 가능한 체크포인트(Resumable Checkpoint)
학습된 가중치뿐 아니라 학습 상태를 저장해 중단된 실행을 이어갈 수 있는 체크포인트입니다. Montgomery의 --resume 옵션은 전체 네이티브 학습 체크포인트를 요구하며, best와 last 모델 외에 복구용 체크포인트를 --save-period로 저장할 수 있습니다.

코드 예제

rust
use montgomery::Model;

fn main() -> montgomery::Result {
    let model = Model::new("yolo26n.bpk")?;
    let prediction = model.inference("image.jpg")?;

    for detection in prediction.detections().expect("detection model") {
        println!("{}: {:.1}%", detection.class_name, detection.confidence * 100.0);
    }
    Ok(())
}

Burnpack 모델을 불러와 이미지 추론을 실행하고 감지된 클래스명과 신뢰도를 출력하는 Rust API 예제입니다.

bash
montgomery predict --model best.bpk --source image.jpg --json

학습된 Burnpack 모델로 이미지를 추론하고 결과를 JSON 형식으로 출력하는 명령입니다.

bash
# Fresh initialization
montgomery train --architecture yolo26n --data dataset.yaml --epochs 100

# Pretrained initialization
montgomery train --model yolo26n.bpk --data dataset.yaml --epochs 100

# Exact continuation (model and dataset come from the training checkpoint)
montgomery train --resume runs/train/checkpoints/last

처음부터 학습, 사전 학습 모델 초기화, 전체 체크포인트에서 학습 재개를 구분해 실행하는 명령 예제입니다.

bash
montgomery export-onnx --model yolo26n.bpk

지정한 Burnpack 모델을 ONNX 파일로 내보내는 명령입니다.

언급된 도구

Montgomery추천링크

Rust에서 YOLO 계열 객체 탐지·인스턴스 세그멘테이션·분류 모델을 학습하고 추론하는 컴퓨터 비전 스택

Burn중립

Montgomery의 WGPU 학습과 Burnpack 모델 형식을 뒷받침하는 Rust 딥러닝 프레임워크

ONNX Runtime중립

Montgomery의 ONNX 내보내기 결과 그래프를 검증하는 실행 환경

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 05.수집 2026. 09. 05.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.