콘텐츠로 이동

Visual Anomaly Inference

cycle_counter.VisualAnomalyInferenceHandler

build(config) classmethod

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

Parameters:

Name Type Description Default
config dict

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

{
    "models": list[dict],  # 모델 정보
        ```python
        {
            "checkpoint_path": str,  # 체크포인트 경로
            "password": str,  # 체크포인트 패스워드
            "device": str,  # 디바이스
            "model_options": dict,  # 모델 옵션
            "model_type": str,  # 모델 타입 (det, iad)
            "model_id": int,  # 모델 아이디 (Unique, 중복 불가)
            "inference_target": dict,  # 인퍼런스 타겟
                ```python
                {
                    "preceding_model": str,  # 이전 모델, (window_side_arm, window_side_index, aisle_side_arm, aisle_side_index)
                    "targets": list[dict],  # 인퍼런스 타겟
                        ```python
                        [
                            {"class_id": int, "offset": int},
                        ]
                        ```
                }
                ```
        }
        ```
}

required

Returns:

Name Type Description
InferenceHandler VisualAnomalyInferenceHandler

build가 완료된 InferenceHandler 인스턴스를 반환합니다.

VisualAnomalyInferenceHandler

```

infer(data)

InferenceHandler를 사용하여 데이터를 추론합니다.

Parameters:

Name Type Description Default
data CycleInfo

CycleInfo, 추론할 데이터

required

Returns:

Name Type Description
CycleInfo CycleInfo

추론 결과

{
    "cycle_length": int,

    "start_frame_ts": int,
    "end_frame_ts": int,
    "class_index": int,

    "original_class_index": int,

    "is_anomaly_by_cycle_length": bool,
    "is_anomaly_by_vision": bool,
    "is_anomaly_by_omitted_cell": bool,
    "is_anomaly_by_tracked_coordinates": bool,

    "z_value": float,
    "sigma": float,
    "mean": float,
    "sigma_level": float,

    "current_model": str,
    "selected_frames": list[dict],
        ```python
        [
            {"offset": int, "frame": np.ndarray, "anomaly_output": dict},
        ]
        ```
    "cell_check_result": dict,  # Cell omission detection results
        ```python
        {
            "is_omitted": bool,  # True if any required cell is missing
            "missing_boxes": list[list[int]],  # Missing reference boxes in [l,t,w,h] format
            "total_boxes": int,  # Total number of reference boxes for this class  
            "missing_count": int,  # Number of missing boxes
        }
        ```
}

Usage
cycle_info = inference_handler.infer(data)

set_inference_option(model_id, key, value)

InferenceHandler를 사용하여 추론 옵션을 설정합니다.

Parameters:

Name Type Description Default
model_id int

int, 모델 아이디

required
key str

str, 옵션 key

required
value Any

Any, 옵션 value

required

Returns:

Type Description
None

None

Usage
inference_handler.set_inference_option(model_id, key, value)

get_inference_option(model_id, key)

InferenceHandler를 사용하여 추론 옵션을 가져옵니다.

Parameters:

Name Type Description Default
model_id int

int, 모델 아이디

required
key str

str, 옵션 key

required

Returns:

Type Description
Any

get_default_inference_option과 동일합니다.

Keys

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

get_default_inference_option(model_id, key)

InferenceHandler를 사용하여 기본 추론 옵션을 가져옵니다.

Parameters:

Name Type Description Default
model_id int

int, 모델 아이디

required
key str

str, 옵션 key

required

Returns:

Type Description
Any

get_default_inference_option과 동일합니다.

Keys

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

warmup()

InferenceHandler를 사용하여 추론 옵션을 웜업합니다.

Returns:

Type Description
None

None