hoin은 7591yj와 협업해 개발한 로컬 이미지 캐릭터 분류 도구입니다. 모델과 애플리케이션을 분리한 구조로 설계해 하나의 분류기에 종속되지 않으며, CLI와 Web UI에서 이미지 이동 계획을 먼저 확인한 뒤 적용하거나 되돌릴 수 있습니다. 파일과 추론 과정은 사용자의 로컬 환경에 유지됩니다.
Problem
캐릭터 이미지 데이터셋은 비슷한 외형을 가진 클래스가 많고, 수집한 파일이 하나의 폴더에 섞이기 쉽습니다. 이를 사람이 직접 분류하면 반복 작업에 많은 시간이 들고 파일을 잘못 이동할 위험도 커집니다. hoin은 이 과정을 로컬에서 자동화하면서 결과를 적용 전에 검토할 수 있도록 설계했습니다.
Application
Rust CLI가 모델 패키지 탐색, 이미지 전처리, ONNX 추론과 파일 분류를 담당합니다. Dry-run과 신뢰도 임계값을 지원하며 이동 예정 파일, 건너뛴 파일, 실패 항목을 JSON으로 확인할 수 있습니다. TypeScript 기반 Web UI에서는 로컬 폴더 탐색, 썸네일 선택, 목적지 미리보기, 분류 진행률 표시, 적용 및 되돌리기 작업을 제공합니다.
Model Package System
애플리케이션에 특정 분류 모델을 하드코딩하지 않고, ONNX 파일과 클래스·목적지 정보가 담긴 manifest를 독립된 모델 패키지로 불러옵니다. 애플리케이션과 모델의 배포 주기를 분리해 캐릭터 분류 모델을 개별적으로 학습하고 교체할 수 있으며, 모델 메타데이터가 제공하는 다국어 폴더명도 지원합니다.
Model Pipeline
any-hoin은 Swin Transformer-Tiny 기반 캐릭터 분류 모델을 위한 통합 ML Studio입니다. 데이터 수집과 라벨링부터 학습, 실시간 지표 확인, 모델 내보내기, 추론까지 하나의 React UI에서 관리합니다. 학습 결과는 PyTorch, FP16, INT8·INT4 및 ONNX 형식으로 패키징해 hoin에서 사용할 수 있습니다.
Workflow
Crawl → Label → Train → Export → Preview → Apply. 실제 파일을 이동하기 전에 결과를 검토하고, 잘못된 분류는 되돌릴 수 있도록 안전한 로컬 워크플로를 구성했습니다.