visionvision.detect

vision.detect

vision.detect 노드에 정의된 입력, 출력 및 실행 지원을 확인합니다.

동영상 튜토리얼

04

실제 LaiCai Flow 워크플로에서 vision.detect 노드를 설정하고 실행하는 방법을 확인하세요.

노드 튜토리얼: Object Detect
YouTube에서 보기

입력

5
입력 항목값 유형필수 여부사용 가능한 소스
modelIdstring필수literal
allClassesbool선택literal
classNamesarray선택literal
minScorenumber필수literal
roirect필수literal

출력

9
출력 경로값 유형좌표 공간
data.bestobject
data.best.scorenumber
data.best.modelIdstring
data.best.classNamestring
data.best.centerpointscreenRatio
data.best.center.xnumberscreenRatio
data.best.center.ynumberscreenRatio
data.best.rectrectscreenRatio
data.itemsarray

실행 지원

데스크톱지원
Android Agent지원

모델 호환성과 기술 요구 사항

파일 확장자가 ONNX라는 이유만으로 호환되는 것은 아닙니다. LaiCai가 입력, 출력 텐서, 박스 좌표, 신뢰도와 클래스 순서를 해석할 수 있어야 합니다.

사용자 정의 감지 모델을 훈련하다

모델 파일

ONNX로 내보낸 표준 YOLO 객체 감지 모델을 사용하세요. PyTorch .pt 파일, 클라우드 API 모델 ID, 분류·세그멘테이션·포즈·회전 박스 모델은 직접 가져올 수 없습니다.

.onnxtype: yolo

입력 텐서

3채널 NCHW RGB 입력 하나와 0–1로 정규화된 float32 또는 float16 값이 필요합니다. LaiCai는 RGB 114 letterbox로 종횡비를 유지하며, 동적 크기를 알 수 없으면 640 × 640을 사용합니다.

[1, 3, H, W]float32 / float16

클래스 매핑

클래스 ID는 0부터 연속되어야 하고 학습 순서를 따라야 합니다. id2label과 label2id가 일치해야 하며 className은 설정된 라벨과 정확히 같아야 합니다.

id2labellabel2idclassName

크기와 속도

연속 감지는 Nano 또는 Small부터 시작하세요. 큰 모델은 정확도가 높을 수 있지만 메모리를 더 사용하고 느립니다. 실제 데스크톱과 Android 기기에서 측정하세요.

n / s / m / l / x

지원되는 출력 텐서

모델은 아래 형식 중 하나인 출력 텐서 하나만 반환해야 합니다. raw YOLO 출력에는 LaiCai가 신뢰도 필터와 NMS를 적용합니다.

출력 형식지원 shape의미
raw_yolo_no_objectness[1, 4 + nc, N] / [1, N, 4 + nc]별도 objectness가 없는 박스와 클래스 점수.
raw_yolo_with_objectness[1, 5 + nc, N] / [1, N, 5 + nc]박스, objectness와 클래스 점수.
postprocessed_xyxy[1, N, 6] / [N, 6]NMS 이후의 x1, y1, x2, y2, 점수와 클래스 ID.

가져오기 전 확인

  • .pt 또는 클라우드 API ID가 아닌 ONNX 객체 감지 모델입니다.
  • NCHW RGB 입력 하나와 지원되는 출력 텐서 하나가 있습니다.
  • INT8/UINT8이 아닌 float32 또는 float16을 사용합니다.
  • 클래스 순서와 출력 형식을 알고 있으며 단일 클래스는 outputFormat을 명시합니다.
  • 모델 폴더에 .onnx 하나만 두거나 config.json의 modelFile로 지정합니다.
  • 데스크톱 현재 화면에서 먼저 테스트한 뒤 Android Agent에서 별도로 검증합니다.

config.json 예시

아래 라벨과 outputFormat은 예시입니다. 내보낸 모델의 실제 클래스 순서와 텐서 형식으로 바꾸세요.

{
  "id": "game-objects",
  "name": "Game Objects",
  "type": "yolo",
  "modelFile": "model.onnx",
  "outputFormat": "raw_yolo_no_objectness",
  "id2label": {
    "0": "ore",
    "1": "tree"
  },
  "label2id": {
    "ore": 0,
    "tree": 1
  }
}