Release notes
2.0.20
2023/12/21
SaigeToolkit 버전 업데이트: 6a4979f0
[기능 추가]
Summary.summarize_analysis 에 리턴 추가.
object/class_{idx}_num_predictions: 클래스를 idx로 예측한 object의 개수
object/class_{idx}_num_labels: 클래스가 idx인 라벨 object의 개수
[기능 개선]
학습 속도 및 성능 개선.
AMP 추가
DataLoader 개선
V1 preprocessing logic 사용
checkpoint 저장 용량 감소.
2.0.19
2023/11/08
SaigeToolkit 버전 업데이트: ef3ac155
[기능 변경]
Inference.analyze 의 중간결과를 zstandard library로 압축하여 저장/로드하도록 변경 (기존에 pickle로 저장되었던 파일은 호환됨)
2.0.18
2023/09/08
[Bug Fix]
v2 fast, v2 standard 모델 사용시 prediction이 왼쪽 위로 쏠리는 이슈 해결
2.0.17
2023/08/24
[기능 추가]
Trainer.build() 에 cache_directory 파라미터 추가: 전처리된 학습 데이터를 해당 디렉토리에 저장해 학습 속도 향상.
None으로 입력 시 해당 데이터를 메모리에 올려두고 사용.
2.0.16
2023/08/17
[기능 변경]
모든 데이터에 라벨 및 예측이 전혀 존재하지 않는 경우 Overall Mean IOU도 -1.0 으로 리턴
2.0.15
2023/08/17
[기능 변경]
클래스들의 평균 IOU 계산 시 모든 클래스가 아닌 라벨 혹은 예측이 존재하는 클래스들에 대해서만 평균 계산
라벨 혹은 예측이 존재하지 않는 클래스에 대해서는 -1.0 (음수) 리턴
2.0.14
2023/08/14
SaigeToolkit 버전 업데이트: e7f1e0
[Bug Fix]
Windows에서 torch save 시 한글 경로가 있으면 에러가 발생하는 이슈 해결
2.0.13
2023/08/07
SaigeToolkit 버전 업데이트: a6a939
[Bug Fix]
Windows에서 0번 이외의 GPU 사용 시 속도 저하 및 메모리 이슈 해결
2.0.12
2023/08/03
[기타]
배포되는 소스 파일 이름에서 딥러닝 모델 이름 제거
2.0.11
2023/07/31
SaigeToolkit 버전 업데이트: 7989cc
timer관련 버그 해결: 사용하지 않는 gpu에 메모리 올리는 버그, batch_size가 1보다 큰 경우 음수 나오는 버그
2.0.10
2023/07/12
SaigeToolkit 버전 업데이트: ac99d5
[기능 개선]
Trainer에서 validation을 사용하지 않는 경우 validation용 GPU 메모리를 점유하지 않도록 변경
2.0.9
2023/06/26
SaigeToolkit 버전 업데이트: d11caf
[기능 변경]
Augmentation Preview API 리턴 형식 변경: (error_code, augmented_image) → (error_code, (augmented_image, augmentation_parameters))
[기능 추가]
체크포인트 로드 관련 에러 핸들링 추가
checkpoint_path에 파일이 존재하지 않으면 ModelFileNotFoundError 에러 레이즈
checkpoint_path의 파일이 모델 파일이 아니면 InvalidModelFileError 에러 레이즈
[기능 개선]
Augmentation에서 saturation 내부 연산 변경: SaigeVision V1의 알고리즘을 적용해 흑백 이미지에서 발생하는 색상 이슈 해결
Checkpoint, metadata 경로 및 파일 유효성 관련 에러 핸들링 추가
Postprocess 퍼포먼스 최적화를 통해 속도 개선: notion 참고
2.0.8
2023/05/09
[기능 추가]
Anaylsis API: 모델 빌드 없이 analysis postprocess & summary 수행
[기능 변경]
[기능 개선]
Trainer.to_device() 호출 시 CPU로 보내는 경우 torch.cuda.empty_cache() 호출해 GPU 메모리 일부 해제
2.0.7
2023/04/26
[기능 변경]
inference_options 중 background class의 threshold는 변경 불가하게 수정
inference_options 중 params.object_boundary_threshold 적용 로직 변경: 최고 스코어 클래스가 threshold를 넘지 못하면 background로 처리
2.0.6
2023/04/18
[기능 변경]
Analysis API가 InferenceHandler.analyze() & InferenceHandler.summarize_analysis() 로 변경되었습니다.
기존 Analysis API들은 제거되었습니다.
2.0.5
2023/04/14
SaigeToolkit 버전 업데이트: 88a43c
torch 버전 업데이트: 2.0.0+cu118
[기능 추가]
InferenceHandler.infer_and_postprocess 결과에 이미지가 oversized 인지 여부를 나타내는 is_oversized 추가 (bool)
CudaOutOfMemoryError 핸들링 추가.
[기능 개선]
학습/인퍼런스시 데이터 전처리 최적화를 통해 속도가 향상 되었습니다.
2.0.4
2023/04/05
SaigeToolkit 버전 업데이트: c71e88
[기능 추가]
Trainer.build() 및 Analysis.set_analysis_data()의 데이터 스키마 중 "bounding_box" + "bitmap" 으로 입력하던 라벨을 "contours" 로 입력할 수 있도록 추가
[Bug Fix]
인퍼런스 시 특정 이미지 사이즈에서 GPU 메모리 증가하는 이슈 일부 해결 (최대 2MB 까지는 증가할 수 있음)
2.0.3
2023/03/29
SaigeToolkit 버전 업데이트: 1b55c9
Toolkit 업데이트에 따라 import segmentation 시간이 40% 정도 감소하였습니다.
[기능 추가]
InferenceHandler에 params.oversized_image_handling 옵션 추가: do_not_inspect, resize_to_fit, crop_into_tiles
[기능 변경]
Trainer.build() 중 network_type 키 변경
v1_fast → v1_shallow
v1_accurate → v1_deep
[Bug Fix]
Windows에서 num_workers > 0 사용하는 경우 발생하는 에러 해결 (validation worker=0 으로 변경)
2.0.2
2023/03/22
[기능 추가]
Trainer.build()에 V2 network_type 추가: v2_fast, v2_standard, v2_accurate
[기능 변경]
Trainer.build() 중 network_type 키 변경
shallow → v1_fast
standard → v1_standard
deep → v1_accurate
Validation 시에도 inspection_size_wh 적용
InferenceHandler.to_device() 호출 시 warmup 수행
Trainer.train_one_step() 첫 호출 시 validation 일부 수행해 gpu memory 체크
[Bug Fix]
Windows에서 Trainer.build시 num_workers=0 사용하는 경우 발생하는 에러 해결
inspection_size_wh 적용 시에도 gpu memory 사용량이 변하는 이슈 일부 해결
2.0.1
2023/03/14
SaigeToolkit 버전 업데이트: f91000
[기능 추가]
Trainer.build 함수 config dict에 inspection_size_wh가 추가되었습니다.
InferenceHandler inference_option 추가
params.inspection_size_wh 옵션이 추가 되었습니다.
InferenceHandler에 warmup API가 추가되었습니다.
[기능 변경]
Trainer.build 함수 config dict에 들어가는 key 값이 변경되었습니다.
crop → crop_wh
resize_scale → resize_factor
Trainer 학습 시 데이터 로딩 속도를 올리기 위해 prefetch_factor=8 이 적용되고, 윈도우의 경우 persistent_workers=True로 동작이 변경되었습니다.
InferenceHandler의 inference_option 변경 사항
params.max_batch_size → params.batch_size으로 이름이 변경되었습니다. 인퍼런스 시 항상 params.batch_size를 사용합니다.
인퍼런스 시 고정 GPU 메모리를 사용합니다.
params.batch_size와 params.inspection_size_wh은 InferenceHandler.build 시에만 적용 가능하며, set_inference_option 에서는 변경이 불가합니다.
[Bug Fix]
InferenceHandler에서 시간 측정 기능을 사용할 때, inferece_time이 제대로 측정되지 않던 버그가 해결되었습니다.
Trainer에서 전체 데이터가 batch_size보다 작은 경우 학습이 진행되지 않는 이슈가 해결되었습니다.
내부 알고리즘 변경 (.contiguous())으로 인퍼런스 속도가 향상되었습니다.
2.0.0
rc4
2023/02/27
SaigeToolkit 버전 업데이트: d7ebf2
[기능 변경]
InferenceHandler의 리턴 결과에서 logit 제거
[Bug Fix]
ImageProcessor cythonize시 발생하던 staticmethod 에러 해결
rc3
2023/02/20
SaigeToolkit 버전 업데이트: ef67f8
[기능 추가]
학습/검사 시 16비트 이미지 지원
Trainer.post_train_process 메소드 추가
inference_option 추가
outputs.time 추가: 인퍼런스 시간 측정 옵션
params.max_batch_size 옵션 추가: InferenceHandler.infer_and_postprocess 에 한 번에 입력할 수 있는 이미지 수 제한 (기본값 1)
params.object_score_threshold 추가
params.calc_object_area_and_apply_threshold 추가: object의 area를 계산하고 threshold를 적용할지 여부
params.calc_object_score_and_apply_threshold 추가: object의 score를 계산하고 threshold를 적용할지 여부
InferenceHandler.infer_and_postprocess 호출 시 objects 결과 값에 area, score, bounding_box, bounding_rot_box, fitted_ellipse 추가
InferenceHandler.finalize_analysis 결과 추가
images에 이미지 별 object/underkill, object/overkill 추가
summary에 object/underkill, object/class_{idx}_underkill 추가
summary에 object/overkill, object/class_{idx}_overkill 추가
summary에 distribution_of_prediction, class_{idx}_distribution_of_prediction 추가
[기능 변경]
Trainer.build config 중 model → network_type로 이름 변경
Augmentation 종류 및 파라미터 변경
color_jitter, adjust_brightness_contrast, iso_noise, light_reflect 제거
adjust_brightness, adjust_contrast, adjust_hue, adjust_saturation 추가
adjust_gamma 파라미터 변경
inference_option 변경
params.score_threshold → params.object_boundary_threshold 로 변경 (default 0 → 100 변경)
params.area_threshold → params.object_score_threshold 로 변경
InferenceHandler.set_analysis_data, Trainer.build 데이터 입력 구조를 list → dict 변경
InferenceHandler.finalize_analysis 결과 출력 구조를 list → dict 변경
[기능 제거]
inference_option 중 params.wo_background 제거
[Bug Fix]
n_classes 가 16 이상인 경우 iou가 잘못 계산되는 오류 해결
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
SaigeToolkit 버전 업데이트: 731dbe
설치형 모듈 SaigeError가 추가됨에 따라 환경 설치(pip install -r requirements.txt)를 다시 수행하셔야 합니다.
standard, deep 모델 변경: 학습 속도, 메모리 및 체크포인트 크기가 감소하였습니다. rc0 버전 모델은 지원되지 않습니다.
rc0