Inference
core.InferenceHandler
학습한 AnomalyDetction 모델을 사용하여 검사를 하기 위한 InferenceHandler class 입니다.
Usage
demo/analysis.py 참고
build(config)
classmethod
InferenceHandler class의 instance를 생성합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
Dict
|
required |
Returns:
| Name | Type | Description |
|---|---|---|
InferenceHandler |
InferenceHandler
|
build가 완료된 core.InferenceHandler class의 instance를 반환합니다. |
get_default_inference_option(key)
Inference & postprocess 옵션의 기본 설정 값을 반환합니다. build로 load시 checkpoint안에 있던, 저장된 옵션이 설정됩니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key |
str
|
옵션 key |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
옵션 value |
Keys
사용 가능한 key와 value 목록:
{
"outputs.score_min": bool, # (default True) scoremap에서 최소값.
"outputs.score_max": bool, # (default True) scoremap에서 최대값.
"outputs.mask": bool, # (default True)
"outputs.is_ng": bool, # (default True)
"outputs.heatmap": bool, # (default True)
"outputs.objects": bool, # (default True)
"outputs.time": bool, # (default False)
"params.anomaly_score_threshold": float, # is_ng를 판단할 때 사용됩니다.
# True이면 NG, False이면 OK 이미지를 나타냅니다.
# (-inf, inf) 범위의 소수. (default 0.0)
# 다음 두 heatmap_color_range_x 파라미터를 사용해 min-max normalization을 수행합니다.
"params.heatmap_color_range_max": float, # scoremap을 이용해, heatmap을 만들 때 사용됩니다.
# (default 0.0)
"params.heatmap_color_range_min": float, # scoremap을 이용해, heatmap을 만들 때 사용됩니다.
# (default 0.0)
"params.calc_object_area_and_apply_threshold": bool, # True인 경우 object마다 area(=픽셀수)를 계산하고 object_area_threshold를 적용합니다.
# outputs.objects가 True일때만 적용.
# (default True)
"params.calc_object_score_and_apply_threshold": bool, # True인 경우 object마다 anomaly score를 계산하고 object_score_threshold를 적용합니다.
# outputs.objects가 True일때만 적용.
# (default True)
"params.object_boundary_threshold": float, # mask를 만들 때 사용됩니다.
# 픽셀의 예측된 score가 threshold보다 작은 경우 0으로, 큰 경우 1로 치환 됩니다.
# 픽셀값이 1이면 Anomaly part이고, 0이면 Normal part입니다.
# (-inf, inf) 범위의 소수. (default 0.0)
"params.object_scoring_method": str, # object별로 score를 나타내기 위해 사용되는 method를 조절합니다.
# "outputs.objects"가 True이고, "params.calc_object_score_and_apply_threshold"가 True일때 동작합니다.
# option중에는 ["mean", "max"]이 있습니다.
# (default "mean")
"params.object_score_threshold": float, # object의 score가 threshold보다 작은 경우 필터링 됩니다.
# "outputs.objects"가 True이고, "params.calc_object_score_and_apply_threshold"가 True일때 동작합니다.
# (-inf, inf) 범위의 소수. (default 0.0)
"params.object_area_method": str, # object area를 계산할 때 사용되는 method.
# option중에는 ["fast_plus"]만 존재합니다.
# (default "fast_plus")
"params.object_area_threshold": int, # object의 area(=픽셀수)가 threshold보다 작은 경우 필터링 됩니다.
# "outputs.objects"가 True이고, "params.calc_object_area_and_apply_threshold"가 True일때 동작합니다.
# 0 이상의 정수. (default 0)
"params.batch_size": int, # `infer_and_postprocess`에 한 번에 입력할 수 있는 최대 이미지 개수 입니다.
# 파라미터가 변경되는 경우 해당 값으로 warmup을 수행합니다.
# (default 1)
}
사용 예시:
get_inference_option(key)
현재 설정된 inference & postprocess 옵션 값을 읽습니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key |
str
|
옵션 key |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
옵션 value |
Keys
get_default_inference_option과 동일합니다.
set_inference_option(key, value)
Inference & postprocess 옵션을 설정합니다.
Note:
heatmap_color_range_max과 heatmap_color_range_min을 설정할 때는, 현재 어떤 값으로 설정되어있는지 확인하고, heatmap_color_range_max >= heatmap_color_range_min의 조건을 만족하도록 설정해야 합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key |
str
|
설정하고자 하는 옵션 key 입니다. |
required |
value |
Any
|
설정하고자 하는 옵션 value 입니다. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
None |
None
|
None |
Keys
get_default_inference_option에서 warmup이 필요한 [params.batch_size]를 제외하면 동일합니다.
infer_and_postprocess(images)
image의 List를 입력으로 받아 모델 인퍼런스와 후처리를 수행합니다. (for Runtime) 실시간 검사를 위해 연산 과정이 최적화되어 있으며, 중간 결과를 제거하고 postprocess 최종 결과만을 반환합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
images |
Union[List[ndarray], List[str]]
|
required |
Returns:
analyze(images, labeled)
Analysis를 위한 data를 세팅합니다. (for Developer)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
images |
Dict[str, Dict]
|
required | |
labeled |
bool
|
label 존재 여부. label 존재 여부에 따라 analysis 결과 Dict의 구성 요소가 달라집니다. |
required |
Returns:
warmup()
현재 설정된 inference 옵션을 바탕으로 warmup을 수행합니다.