콘텐츠로 이동

Visual Anomaly Inference

cycle_counter.VisualAnomalyInferenceHandler

Visual anomaly 모델(det/iad/cell_checker) 추론을 수행하는 API 래퍼입니다.

참고

공개 메서드는 @error_handler로 감싸져 호출 시 (error_code: int, message: str, payload: Any) 형태로 반환됩니다. 각 메서드의 Returns 설명은 기본적으로 payload를 기준으로 작성되어 있습니다.

build(config) classmethod

InferenceHandler 인스턴스를 생성합니다.

Parameters:

Name Type Description Default
config dict

InferenceHandler를 build 하기 위한 config가 담긴 dictionary 입니다.

{
    "models": [                         # 모델 정보 리스트
        {
            "checkpoint_path": Optional[str],  # 체크포인트 경로 (cell_checker는 불필요)
            "password": Optional[str],         # 체크포인트 패스워드
            "device": str,                     # 디바이스
            "model_options": dict,             # 모델 옵션
            "model_type": str,                 # "det" | "iad" | "cell_checker"
            "model_id": int,                   # 모델 아이디 (Unique)
            "inference_target": {
                "preceding_model": str,        # "window_side_arm" 등
                "targets": [
                    {"class_id": int, "offset": int},
                ],
            },
        },
    ],
}

required

Returns:

Name Type Description
VisualAnomalyInferenceHandler VisualAnomalyInferenceHandler

build가 완료된 API 래퍼 인스턴스를 반환합니다.

infer(data)

등록된 visual anomaly 모델을 사용해 단일 CycleInfo(또는 동일 구조의 dict)를 후처리합니다.

Parameters:

Name Type Description Default
data Union[CycleInfo, dict]

추론할 사이클 정보. CycleInfo TypedDict 또는 동일 키를 가진 plain dict.

required

Returns:

Type Description
Union[CycleInfo, dict]

tuple[int, str, Union[CycleInfo, dict]]: @error_handler 래핑 후의 실제 반환 형식입니다.

Side Effects
  • selected_frames[*]["anomaly_output"]가 설정될 수 있습니다. (det/iad 모델) 결과 dict에는 handler의 원래 출력에 더해 어떤 모델이 생성했는지 식별하는 model_id 키가 포함됩니다.
  • is_anomaly_by_vision, is_anomaly_by_omitted_cell 플래그가 업데이트됩니다.
  • cell_check_result가 설정될 수 있습니다. (cell_checker 모델) 결과 dict에는 판정한 cell_checker의 model_id 키가 포함됩니다.
Usage
error, message, cycle_info = inference_handler.infer(data)

set_inference_option(model_id, key, value)

특정 model_id의 추론 옵션을 설정합니다.

Parameters:

Name Type Description Default
model_id int

int, 모델 아이디

required
key str

str, 옵션 key

required
value Any

Any, 옵션 value

required

Returns:

Type Description
None

tuple[int, str, None]

Usage
inference_handler.set_inference_option(model_id, key, value)

get_inference_option(model_id, key)

특정 model_id의 현재 추론 옵션 값을 가져옵니다.

Parameters:

Name Type Description Default
model_id int

int, 모델 아이디

required
key str

str, 옵션 key

required

Returns:

Type Description
Any

tuple[int, str, Any]

Keys

각 모델의 get_default_inference_option과 동일합니다.

get_default_inference_option(model_id, key)

특정 model_id의 기본 추론 옵션 값을 가져옵니다.

Parameters:

Name Type Description Default
model_id int

int, 모델 아이디

required
key str

str, 옵션 key

required

Returns:

Type Description
Any

tuple[int, str, Any]

Keys

각 모델의 get_default_inference_option과 동일합니다.

warmup()

등록된 모든 모델에 대해 가능한 경우 warmup을 수행합니다.

Returns:

Type Description
None

tuple[int, str, None]