Summary
classification.SummaryHandler
딥러닝 모델 빌드 없이, 저장된 analysis 결과를 이용해서 analysis summary를 수행하는 클래스입니다.
Usage
# AnalysisHandler 및 SummaryHandler 빌드
n_classes = CONFIG["n_classes"]
analysis_build_config = {
"n_classes": n_classes,
}
error, analysis_handler = AnalysisHandler.build(analysis_build_config)
assert error >= 0
summary_build_config = {
"n_classes": n_classes,
}
error, summary_handler = SummaryHandler.build(summary_build_config)
assert error >= 0
# 모듈 정보 확인
error, metadata = read_metadata(CHECKPOINT_PATH)
assert error >= 0
print("Inference metadata:", metadata)
# 인퍼런스 옵션 초기값 확인
inference_options = {
"params.additional_scores": [10] * n_classes,
}
print("Default inference options:")
for key in list(inference_options):
error, value = analysis_handler.get_default_inference_option(key)
assert error >= 0
print(f" {key}: {value}")
# 디벨로퍼: Analyze 수행
for image_id, image_info in DATA["validation_images"].items():
image_info["save_dir"] = os.path.join("./demo/inference_results", str(image_id))
image = {image_id: image_info}
error, results = analysis_handler.analyze(images=image, labeled=True)
assert error >= 0
error, results = summary_handler.summarize_analysis(images=DATA["validation_images"], labeled=True)
assert error >= 0
print("Analysis summary:", results)
# 디벨로퍼: 인퍼런스 옵션 변경
for key, value in inference_options.items():
error, _ = analysis_handler.set_inference_option(key, value)
assert error >= 0
# 디벨로퍼: metadata에 inference_option 저장 (예시)
metadata["inference_options"] = inference_options
error, _ = write_metadata(CHECKPOINT_PATH, metadata)
assert error >= 0
# 인퍼런스 옵션이 잘 변경되었는지 확인
print("Inference options:")
for key in inference_options:
error, value = analysis_handler.get_inference_option(key)
assert error >= 0
print(f" {key}: {value}")
# 디벨로퍼: 새로운 세팅으로 Analyze 재수행
for image_id, image_info in DATA["validation_images"].items():
image = {image_id: image_info}
error, results = analysis_handler.analyze(images=image, labeled=True)
assert error >= 0
error, results = summary_handler.summarize_analysis(images=DATA["validation_images"], labeled=True)
assert error >= 0
print("Analysis summary:", results)
Note
위 예시처럼 AnalysisHandler가 아니라, InferenceHandler여도 상관 없습니다.
build(config)
classmethod
SummaryHandler class의 instance를 생성합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
Dict
|
required |
Returns:
| Name | Type | Description |
|---|---|---|
SummaryHandler |
SummaryHandler
|
build가 완료된 classification.SummaryHandler class의 instance를 반환합니다. |
summarize_analysis(images, labeled)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
images |
Dict[str, Dict]
|
required | |
labeled |
bool
|
label 존재 여부. label 존재 여부에 따라 analysis 결과 Dict 구성 요소가 달라집니다. |
required |
Returns: