70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# 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)를 참고하세요.
|