Skip to content

Release notes

2.3.2

  • 2025/03/24
  • SaigeToolkit 버전 업데이트: 2.5.1
  • [기능 개선]
    • AnalysisHandler를 통한 analyze()에 동시성 프로그래밍 적용.

2.3.1

  • 2025/02/05
  • SaigeToolkit 버전 업데이트: 2.4.0

2.3.0

  • 2025/01/16
  • SaigeToolkit 버전 업데이트: 2.3.1
  • [문서 수정]
    • SaigeToolkit 설치 방법 변경
  • [기능 개선]
    • MemorySafeDataLoader 적용
  • [기타]
    • SaigeToolkit 버전 관리 개선 사항 적용

2.2.1

  • 2024/10/10
  • SaigeToolkit 버전 업데이트: 2.2.5

2.2.0

  • 2024/09/26
  • SaigeToolkit 버전 업데이트: 2.2.3

rc3

  • 2024/08/20
  • SaigeToolkit 버전 업데이트: 2.2.2
  • [기타]

rc2

  • 2024/08/20
  • [기타]
    • 유지보수를 위해 내부 코드 리팩터링 (API 변경 없음)

rc1

  • 2024/08/12
  • SaigeToolkit 버전 업데이트: 2.1.0
  • [기능 변경]
    • [VISIONPRD-1085] error message를 api output에서 직접 출력하도록 수정
      • error_code, error_message, result = api()

rc0

  • 2024/07/31
  • SaigeToolkit 버전 업데이트: 2.0.1
  • [기능 개선]
    • Lazy import를 적용하여 실제 모듈들이 사용되기 전까지 세부 파일들을 import 하지 않도록 수정

2.1.21

  • 2024/07/11
  • SaigeToolkit 버전 업데이트: 2a00aeb5
  • [기능 개선]
    • [VISIONPRD-798] Truncated 이미지가 데이터셋에 포함되어 있을 때 적절한 에러 메시지를 출력하도록 수정

2.1.20

  • 2024/07/02
  • [Bug fix]
    • 학습시 batch_size를 절반으로 잘못 사용하고 있던 문제 해결

2.1.19

  • 2024/06/13
  • [Bug fix]
    • NG 판별시 threshold 값을 포함하여 계산하도록 수정

2.1.18

  • 2024/06/04
  • [Bug fix]
    • Validation 과정에서 GPU 메모리를 많이 사용하는 문제 해결

2.1.17

  • 2024/05/28
  • SaigeToolkit 버전 업데이트: 09cefc50
  • [기능 개선]
    • 학습 중 loss 값에 NaN이 포함되어 있는 경우 NanLossError를 발생시키도록 변경

2.1.16

  • 2024/04/29
  • SaigeToolkit 버전 업데이트: e11ace81
  • [기능 추가]
    • Trainer.build가 augmentation 옵션을 받아서 학습시 augmentation 적용 가능
  • [기능 개선]
    • CUDA device init 과정에서 발생하는 에러를 Trainer.build()에서 확인하도록 변경
  • [Bug Fix]
  • [기타]
    • 유지보수를 위해 다수의 내부 코드 리팩터링 (Augmentation 추가 이외의 API 변경 없음)
    • 사용되지 않는 기능, 코드, 의존성 제거

2.1.15

  • 2024/02/26
  • [기능 삭제]
    • Trainer.build()의 config에 num_micro_batches 옵션 삭제
      • micro batch 기능이 연구팀 내부에서 자동으로 적용되도록 변경

2.1.14

  • 2024/02/20
  • [기능 추가]
    • 권장 스펙에서 모델을 학습할 수 있도록 micro batching 기능 추가
      • Trainer.build()의 config에 num_micro_batches 옵션 추가
      • batch를 batch_size // num_micro_batches 크기의 num_micro_batches개의 micro batch로 나누어 학습하여 메모리를 절약

2.1.13

  • 2024/01/29
  • SaigeToolkit 버전 업데이트: 58954162 (ROI 처리 로직 변경)
  • [기능 개선]
    • ROI 설정시 큰 이미지에서 processing 시간이 과도하게 걸리는 문제 해결
  • [기능 추가]
    • setup시 pretrained weight를 다운로드 하지 않고, build 폴더로 저장하지 않는 --without-pretrained-model 옵션 추가

2.1.12

  • 2024/01/09
  • SaigeToolkit 버전 업데이트: 70262443 (Checkpoint 메타데이터 크기 변경)
  • [기능 변경]

2.1.11

  • 2023/12/28
  • SaigeToolkit 버전 업데이트: 2061e71d

2.1.10

2.1.9

  • 2023/12/14
  • [Bug Fix]
    • InferenceHandler에서 inference_time이 잘못 측정되던 문제 해결
    • SaigeInferenceOptimizer를 적용할 수 있도록 모델 구조 수정

2.1.8

  • 2023/12/13
  • SaigeToolkit 버전 업데이트: 1b013624
  • [기타]
    • 유지보수를 위해 다수의 내부 코드 리팩터링 (코드 60.1% 변경; API 변경 없음)
    • CLS, SEG, DET와 비슷한 형식으로 코드 구조 변경
    • 사용되지 않는 기능, 코드, 의존성 제거
  • [성능 개선]
    • DataLoader 속도 향상을 위한 InfiniteRandomSampler 추가 (SaigeToolkit d6e54f)
    • DataLoader config 변경 (num_worker=8, pin_memory 추가 등)
    • Training 속도 향상을 위해 Trainer에 AMP 적용, sub batch 학습 제거 (모델에 따라 GPU 메모리 사용량 4.5 ~ 5.4배 증가)
    • Validation 속도 향상을 위해 InferenceHandler에 AMP 적용, batch_size 변경, 불필요한 Postprocess 제거
  • [기능 개선]
    • 모델 구조를 변경하여 AnalysisHandler에서 저장되는 중간 검사 결과 용량 최적화 (2.1.6 대비 4.2% 수준으로 감소)
  • [기능 변경]
    • Trainer.build()의 config에 train_batch_sizebatch_size로 이름 변경
    • 2.1.7 변경사항 되돌림

2.1.7

  • 2023/11/08
  • SaigeToolkit 버전 업데이트: ef3ac155
  • [기능 변경]
    • Analysis의 중간 결과를 zstandard library를 사용하여 압축한 뒤, 저장 및 불러오기를 하도록 수정

2.1.6

  • 2023/08/14
  • SaigeToolkit 버전 업데이트: e7f1e085
  • [Bug Fix]
    • checkpoint save시 경로에 한글 이름이 들어가면 뜨는 에러 해결

2.1.5

  • 2023/08/07
  • SaigeToolkit 버전 업데이트: a4a5b076
  • [Bug Fix]
    • Windows에서 0번 이외의 GPU 사용 시 속도 저하 및 메모리 이슈 해결

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_validationtotal_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합니다.
    • InferenceHandlerwarmup API가 추가되었습니다.
  • [기능 변경]
    • params.max_batch_sizeparams.batch_size으로 이름이 변경되었습니다. 인퍼런스 시 항상 params.batch_size를 사용합니다.
    • 인퍼런스 시 고정 GPU 메모리를 사용합니다.
    • params.batch_sizeInferenceHandler.build 시에만 적용 가능하며, set_inference_option 에서는 변경이 불가합니다.
  • [bug fix]
    • InferenceHandler에서 시간 측정 기능을 사용할 때, inferece_time이 제대로 측정되지 않던 버그가 해결되었습니다.
    • 내부 알고리즘 변경하였습니다. (.contiguous())

2.0.0

rc8

  • SaigeToolkit 버전 업데이트: 77f73d88
  • [기능 추가]
    • 이미지 사이즈와 무관하게 GPU 메모리 사용량을 제한하는 기능을 추가하였습니다. 인퍼런스 시 큰 이미지를 입력하면 더 많은 GPU 메모리를 사용하는 이슈를 해결하였습니다.
  • [기능 변경]
    • trainer.get_total_num_iterations에서 Trainer.get_total_num_iterations로 build없이 iteration수를 가져올수 있도록 변경하였습니다. Trainer.get_total_num_iterations
    • InferenceHandler.infer_and_postprocessInferenceHandler.finalize_analysis시 return값에서 postprocess_time에서 post_processing_time로 이름이 변경되었습니다. InferenceHandler.infer_and_postprocess

rc7

  • SaigeToolkit 버전 업데이트: b7ac6c
  • [bug fix]
    • windows에서 이미지 경로가 C: 드라이브가 아닌 경우 발생하던 에러 해결
  • [기능 추가]
    • inference_optionparams.max_batch_size 옵션 추가 (기본값 1)
  • [기능 변경]
    • InferenceHandler.finalize_analysis의 return 값 중 distribution_of_prediction 의 타입이 ndarray(float32)ndarray(uint8) 로 변경되었습니다.

rc6

  • SaigeToolkit 버전 업데이트: 2b71326b
  • [기능 변경]
    • Trainer.build에서 model_size의 이름이 network_type로 변경되었습니다.

rc5

  • [기능 추가]
    • InferenceHandler.finalize_analysisdistribution_of_prediction를 추가하였습니다.
  • [bug fix]
    • validation_imagestrain_images와 겹칠 때 발생하던 warning을 제거하였습니다.
    • finalize_analysis, analyze_with_existing_data에서 0으로 나눌 때 발생하던 warning을 제거하였습니다.

rc4

  • [기능 변경]
    • inference_option 변경사항:
      • object_compute_areacalc_object_area_and_apply_threshold 로 변경되어, object의 area를 계산하고 threshold를 적용할지 여부를 나타냅니다.
      • object_compute_scorecalc_object_score_and_apply_threshold 로 변경되어, object의 score를 계산하고 threshold를 적용할지 여부를 나타냅니다.
      • object_scoring_method의 기본 값이 averagemean으로 변경되었습니다.
      • object_area_method 의 기본 값이 fastfast_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_minparams.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_minoutputs.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.buildvalidation_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_thresholdanomaly_score_threshold
      • color_rangeheatmap_color_range
      • area_thresholdobject_area_threshold
      • score_thresholdobject_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

  • initial release