Release notes
2.1.4
2023/08/03
배포시 모델정보를 숨기기 위해, 파일이름을 변경하고, 사용하지 않는 모델은 build하지 않도록 수정.
2.1.3
2023/07/31
SaigeToolkit 버전 업데이트: 7989cc7
timer관련 버그 해결: 사용하지 않는 gpu에 메모리 올리는 버그, batch_size가 1보다 큰 경우 음수 나오는 버그
2.1.2
2023/07/18
SaigeToolkit 버전 업데이트: 93f3a5
[bug fix]
Trainer.build()시에 data["validation_images"]에 데이터가 존재한다면, 반드시 OK와 NG를 적어도 1개 이상씩 가지고 있어야 합니다.
Training시 corruption이 너무 크게 적용되고 있던 문제를 수정했습니다.
Corruption을 Gaussian noise로 주고 있던 것에서 psuedo simplex noise로 변경했습니다.
Projection layer에 대한 loss를 잘 못 계산하고 있던 문제를 수정했습니다.
SaigeToolkit에서 이미지 resize시 기본값으로 cv2를 사용해서 생기던 문제를 수정했습니다.
scoremap에 smoothing=0으로 적용되고 있던 것을 smoothing=5로 변경하였습니다.
2.1.1
2023/07/12
SaigeToolkit 버전 업데이트: ac99d5
[기능 변경]
Trainer.build()시에 synthetic_validation 파라미터가 제거되었습니다: validation_images를 넣지 않는 경우 자동으로 synthetic validation을 사용합니다.
Synthetic validation 알고리즘이 변경되어 1장의 학습 이미지로도 사용이 가능합니다.
[기능 추가]
Trainer.get_validation_schedule()시에 density_level 파라미터 추가
2.1.0
2023/07/10
[기능 삭제]
Trainer.get_total_num_iterations() api 삭제
[기능 추가]
Trainer.build()시에 synthetic_validation과 total_iterations 파라미터 추가
Trainer.get_validation_intervals() 추가: validation을 수행할 iteration 스케줄을 반환합니다.
[기능 변경]
network_type이름 변경(v2a_fast / v2a_standard / v2a_accurate)
모델이 변경되어 성능이 향상되고 API사용 방식이 변경되었습니다.
이전 버전 모델에 대한 학습은 지원하지 않습니다.
현 버전에서는 Trainer.build()시에 synthetic_validation을 사용하는 경우 학습 이미지가 2장 이상 필요합니다. 다음 버전에서 해당 제한이 사라질 예정입니다.
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