Release notes
2.0.8
2023/06/14
[bug fix]
Trainer.train_one_step()이 끝나고 Trainer.post_train_process()시에 GPU 메모리 에러 해결
2.0.7
2023/06/01
SaigeToolkit: 622627b1
[bug fix]
scoremap에서 score가 0보다 작은 값이 나오는 문제를 해결
2.0.6
2023/05/15
[기능 개선]
Trainer.to_device() 호출 시 CPU로 보내는 경우 torch.cuda.empty_cache() 호출해 GPU 메모리 일부 해제
[기능 추가]
Anaylsis API: 모델 빌드 없이 analysis postprocess & summary 수행
[기능 변경]
2.0.5
2023/04/18
[기능 변경]
기존 Analysis API들은 제거되었습니다.
Analysis API가 InferenceHandler.analyze() & InferenceHandler.summarize_analysis() 로 변경되었습니다.
2.0.4
2023/04/14
SaigeToolkit: 88a43cee
[기능 변경]
torch version to 2.0.0+cu118
이름이 변경되었습니다. data_resize -> image_resize_wh Trainer.build
2.0.3
2023/03/24
[기능 변경]
network_type이름 변경(v2_fast / v2_standard / v2_accurate)
모델 알고리즘 최적화하였습니다.(메모리 사용량 관련)
2.0.2
2023/03/15
SaigeToolkit: 1651a98c5
[bug fix]
SaigeSegmentation==2.0.1 과 함께 사용하는 경우 발생하는 에러 해결
2.0.1
2023/03/15
SaigeToolkit: 42207d4c3
[기능 추가]
analysis data의 갯수가 0일때 error raise합니다.
InferenceHandler에 warmup API가 추가되었습니다.
[기능 변경]
params.max_batch_size → params.batch_size으로 이름이 변경되었습니다. 인퍼런스 시 항상 params.batch_size를 사용합니다.
인퍼런스 시 고정 GPU 메모리를 사용합니다.
params.batch_size은 InferenceHandler.build 시에만 적용 가능하며, set_inference_option 에서는 변경이 불가합니다.
[bug fix]
InferenceHandler에서 시간 측정 기능을 사용할 때, inferece_time이 제대로 측정되지 않던 버그가 해결되었습니다.
내부 알고리즘 변경하였습니다. (.contiguous())
2.0.0
rc8
SaigeToolkit 버전 업데이트: 77f73d88
[기능 추가]
이미지 사이즈와 무관하게 GPU 메모리 사용량을 제한하는 기능을 추가하였습니다. 인퍼런스 시 큰 이미지를 입력하면 더 많은 GPU 메모리를 사용하는 이슈를 해결하였습니다.
[기능 변경]
rc7
SaigeToolkit 버전 업데이트: b7ac6c
[bug fix]
windows에서 이미지 경로가 C: 드라이브가 아닌 경우 발생하던 에러 해결
[기능 추가]
inference_option에 params.max_batch_size 옵션 추가 (기본값 1)
[기능 변경]
InferenceHandler.finalize_analysis의 return 값 중 distribution_of_prediction 의 타입이 ndarray(float32) → ndarray(uint8) 로 변경되었습니다.
rc6
SaigeToolkit 버전 업데이트: 2b71326b
[기능 변경]
rc5
[기능 추가]
InferenceHandler.finalize_analysis후 distribution_of_prediction를 추가하였습니다.
[bug fix]
validation_images가 train_images와 겹칠 때 발생하던 warning을 제거하였습니다.
finalize_analysis, analyze_with_existing_data에서 0으로 나눌 때 발생하던 warning을 제거하였습니다.
rc4
[기능 변경]
inference_option 변경사항:
object_compute_area → calc_object_area_and_apply_threshold 로 변경되어, object의 area를 계산하고 threshold를 적용할지 여부를 나타냅니다.
object_compute_score → calc_object_score_and_apply_threshold 로 변경되어, object의 score를 계산하고 threshold를 적용할지 여부를 나타냅니다.
object_scoring_method의 기본 값이 average → mean으로 변경되었습니다.
object_area_method 의 기본 값이 fast → fast_plus로 변경되었습니다.
analysis시 input의 형태를 check하는 코드를 추가하였습니다.
Analysis시 label이 모두 ng이거나, 모두 ok인 경우 발생하는 에러를 해결하였습니다. 이 경우 analysis 결과 summary에서 일부 key를 출력하지 않습니다. InferenceHandler.finalize_analysis
입력 데이터(train_images, validation_images)의 labels의 키를 ng에서 is_ng로 받도록 수정하였습니다.
params.heatmap_color_range가 둘로 나뉘어, params.heatmap_color_range_min와 params.heatmap_color_range_max로 변경되었습니다.
post_train_process의 output 형태가 바뀌었습니다.Trainer.post_train_process
validate함수의 return값에서 FP와 FN을 제거하였습니다.
[기능 추가]
InferenceHandler.infer_and_postprocess 호출 시 objects 결과 값에 bounding_box, bounding_rot_box, fitted_ellipse가 기본으로 추가되었습니다.
inference_options에서 outputs.score_min과 outputs.score_max를 추가하였습니다.
train_one_step의 return값을 추가하였습니다. Trainer.train_one_step
InferenceHandler.finalize_analysis시에 distribution_of_prediction을 계산합니다. InferenceHandler.finalize_analysis
inference_option에서 Inference의 시간을 측정할 수 있는 outputs.time을 추가하였습니다. 관련 api로는 InferenceHandler.get_default_inference_option, InferenceHandler.get_inference_option, InferenceHandler.set_inference_option, InferenceHandler.infer_and_postprocess, InferenceHandler.finalize_analysis가 있습니다.
[bug fix]
analyze 2회 이상 수행시 postprocess 적용 안되는 버그 해결하였습니다.
Trainer.build시 validation_images가 빈 값일 경우 발생했던 에러를 해결하였습니다.
rc3
SaigeToolkit 버전 업데이트: 1aaa29e4
[기능 추가]
postprocess시 parameter와 기능이 추가되었습니다.
object_compute_area 파라미터가 추가되었고, area를 계산할지 여부를 나타냅니다.
object_compute_score 파라미터가 추가되었고, score를 계산할지 여부를 나타냅니다.
object_scoring_method 파라미터가 추가되었고, object의 scoring 방법을 나타냅니다.
object_score_threshold 파라미터가 추가되었고, object의 score가 threshold보다 큰 object만 return합니다.
[기능 변경]
set_analysis_data, Trainer.build시 데이터를 list에서 dictionary형태로 받습니다.
def set_analysis_data(self, images: Dict[str, Dict], labeled: bool) -> None: ...
finalize_analysis의 출력도 dictionary형태로 변경하였고, key는 입력의 key와 같습니다.
postprocess시 파라미터 이름이 변경되었습니다.
anomaly_threshold → anomaly_score_threshold
color_range → heatmap_color_range
area_threshold → object_area_threshold
score_threshold → object_boundary_threshold
rc2
SaigeToolkit 버전 업데이트: 482af7
SaigeToolkit의 체크포인트의 구조가 변경되어 빠른 metadata 읽기/쓰기를 지원합니다.
[기능 추가]
체크포인트의 metadata 읽기/쓰기를 위한 read_metadata(), write_metadata() API 추가.
rc1 이후 버전 체크포인트를 최신 버전 구조로 변환하는 convert_checkpoint() API 추가.
[기능 변경]
InferenceHandler의 inference_options 저장 기능이 사라졌습니다. 이에 따라 InferenceHandler.build() 로 인스턴스 생성 시 이전에 저장했던 inference_options를 자동으로 불러와 사용하는 동작이 제거되었고, 대신 config를 통해 inference_options를 세팅할 수 있도록 변경되었습니다. 따라서 inference_options를 metadata에 저장하고, 이 값을 build시에 읽어서 config에 입력해야합니다.
inference_options의 옵션들을 각 아이템 별로 세팅할 수 있도록 API가 변경되었습니다.
InferenceHandler.get_inference_options() → InferenceHandler.get_inference_option()
InferenceHandler.set_inference_options() → InferenceHandler.set_inference_option()
InferenceHandler.get_default_inference_options() → InferenceHandler.get_default_inference_option()
[기능 제거]
InferenceHandler.get_metadata() API 제거.
InferenceHandler.save_checkpoint() API 제거.
rc1
Postprocess에 heatmap추가.
[기능 추가]
postprocess의 outputs 옵션에 heatmap이 추가되었습니다.
postprocess의 params 옵션에 color_range이 추가되었습니다.
rc0