# Normal Object Detection YOLO 기반 일반 객체 탐지 스크립트입니다. 원격 이미지 URL을 받아 추론하고, 결과를 JSON으로 출력합니다. ## 요구 사항 - Python 3.11+ - [uv](https://docs.astral.sh/uv/) (권장) ## 설치 ```bash uv sync ``` ## 사용법 ```bash uv run start.py --image_url "https://example.com/image.jpg" ``` - `--image_url`: 추론할 이미지 URL (필수) - 모델: `weights/yolo26m.pt` (Ultralytics YOLO, COCO 80종 탐지) - 이미지는 `image.jpg`로 저장되고, 탐지 결과 이미지는 `*_marked.jpg`로 저장됩니다. ## 출력 표준 출력으로 JSON이 출력됩니다. | 필드 | 설명 | |------|------| | `path` | 입력 이미지 경로 | | `marked_path` | 바운딩 박스가 그려진 이미지 경로 | | `shape` | 이미지 크기 (width, height) | | `speed_ms` | 추론 속도 (ms) | | `detections` | 탐지 객체 목록 (클래스, 신뢰도, `xywh` 박스) | | `image_url` | 이미지 경로 | --- ## ClearML 자동 연동 (시스템 생성) > 아래 내용은 커스텀 UI·ClearML Agent 연동 시 **시스템이 자동으로 처리**하는 부분입니다. > 개발자는 `start.py`만 유지하면 되며, `main.py`는 UI 입력에 따라 자동 생성됩니다. ### 파일 역할 | 파일 | 역할 | 관리 | |------|------|------| | `start.py` | 추론·결과 처리 (`main(image_url)`) | 개발자가 Git에 커밋 | | `main.py` | ClearML Task 초기화, input/output 연동 | 시스템이 자동 생성 | ### Agent 실행 ```bash uv run main.py --image_url "https://example.com/image.jpg" ``` 실행 시 ClearML Task가 초기화되고, `start.main()` 결과가 아티팩트로 업로드됩니다. - **Project**: `Normal_Object_Detection` - **Task**: `model-yolo26-human` - **Artifact**: `final_result` (`output`, `status: PASS`) Agent 머신에는 ClearML 서버 연결 설정이 필요합니다 (`clearml-init`). ### 워크플로우 Git 업로드, UI 입력, `main.py` 생성, ClearML Task/Agent 연동까지의 순차 절차는 [WORKFLOW.md](./WORKFLOW.md)를 참고하세요.