Skip to content

Release notes

0.0.14

  • 2024-06-21 (PR 7341)
  • API로 제공되는 코드를 별도의 api.py 파일로 분리해 명확성을 높였습니다.
  • checkpoint/metadata.py의 중복 구현을 제거하고 SaigeToolkit 기능으로 동작을 통합했습니다.
  • CheckpointHandler 및 metadata api에 대한 테스트를 추가했습니다.
  • (관련 레포에서 코드 작업 필요)
  • SaigeToolkit.checkpoint.checkpoint 모듈을 SaigeToolkit.checkpoint.checkpoint_handler 로 이름 변경했습니다 .
  • 기존 SaigeToolkit.checkpoint.metadata 에서 불러오던 api 기능은 SaigeToolkit.checkpoint.metadata.api 경로로 임포트 구문을 수정해야 합니다.

0.0.13

  • 2024-06-21 (PR 7339)
  • Version 파일을 추가했습니다.
  • 문서화를 위해 setuptools, logging 폴더를 모듈로 변경했습니다 (init 추가).
  • 기존 logging 모듈이 빌트인 logging과 중복되는 문제가 있어 log로 모듈 이름을 변경했습니다.
  • mkdocs용 리소스 및 requirements, mkdocs yml 파일을 추가했습니다.
    • 소스를 훑으면서 자동으로 문서화 해 주도록 보조 파이썬 스크립트 및 yml 내용을 구성했습니다. 세부 파일 내용 참고.
  • 버전 태그가 푸쉬되면 작동하는 문서화 CD 파이프라인을 구성했습니다.

0.0.12

  • 2024-06-19 (PR 7323)
  • 베이스클래스를 선언하는 파일들에 base_~~~ 파일명 컨벤션을 적용했습니다
  • base.py -> base_sampler.py, base.py -> base_transform.py
  • 빌더 파일들에 일괄적으로 builder.py 파일명 컨벤션을 적용했습니다.
  • tranform/util.py -> transform/function_util.py 네이밍 변경
  • 해당 파일은 ~~_function.py 파일들에서 사용되는 기능 모음으로, 더 명확한 이름으로 변경했습니다.
  • transform/roi 모듈로 roi 관련 기능을 transform 으로부터 분리했습니다.
  • transform/augmentaion/compose 모듈로 compose 관련 기능을 augmentation 으로부터 분리했습니다.
  • data/type 모듈은 이제 데이터클래스 선언 및 관련 기능 관리만을 수행하므로 data/dataclass 모듈로 이름을 변경했습니다.
  • metric/segment에 정의된 compute_segment_intersection_area 메서드를 data/dataclass/segment로 이동했습니다.
  • 기타 임포트 경로를 수정했습니다.

0.0.11

  • 2024-06-19 (PR 7318)
  • SaigeDataset 리팩터링했습니다.
    • img_size attribute를 제거했습니다.
    • docstring 수정했습니다.

0.0.10

  • 2024-06-19 (PR 7309)
  • 더 이상 사용되지 않는 모델 구현을 추가로 제거했습니다.
    • SaigeToolkit.model.backbone 하위의 regnet, resnet, squeezenet, vgg를 제거했습니다.
    • (ForwardHookFeatureExtractor에서 backbone으로 resnet*을 사용하는 모델은 resnet*_torchvision으로 변경 필요)
    • SaigeToolkit.model.neck 하위의 fpn_mask_text_spotter_v3를 제거했습니다.
  • torchvision에서 가져올 수 있는 weight 관련 코드를 제거하고 import해서 사용하도록 변경했습니다.

0.0.9

  • 2024-06-18 (PR 7299)
  • DefectGeneration 레포로부터 EdgeCropper 구현을 이관했습니다.
  • Cropper builder를 리팩터링했습니다.
  • Cropper 테스트 코드 및 테스트 컨피그를 추가했습니다.
  • Augmentation 및 Compose 샘플 컨피그를 테스트 파일로 위치를 옮겼습니다.
  • 2024-06-18 (PR 7303)
  • Pipeline 실행 시 Cythonize setup 이 에러로 종료되면 파이프라인에서도 Fail로 판별하도록 스크립트를 수정했습니다 (기존에는 어떤 식으로 종료되어도 Success로 판별하고 API 테스트를 이어 수행했습니다).

0.0.8

  • 2024-06-18 (PR 7295)
  • 연구소 코딩 스타일 가이드에 맞게 전반적으로 코드를 수정했습니다.
    • 가변 객체 기본값 사용하지 않게 변경
    • import 정리
    • etc.

0.0.7

  • 2024-06-18 (PR 7294)
  • transform.py 주요 구성요소의 네이밍을 변경했습니다.
    • MultiResizer -> StackedResizerHandler (Resizer의 리스트를 관리하는 클래스)
    • InspectionSizeHandler -> InspectionSizeResizer (Inspection size 반영을 위한 Resizer 서브클래스)
  • MultiResizerInspectionSizeHandler 의 초기화가 inspection_size_wh setter에 암묵적으로 숨겨져 있는 문제를 완화했습니다.
    • Transform init 과정에서 명시적으로 타입을 지정하고 None 값을 대입하는 처리를 추가했습니다.
  • ImageProcessor API 임포트 시 불필요한 모듈이 임포트 되지 않도록 임포트 경로를 변경했습니다 (관련 레포에서 코드 작업 필요).
    • SaigeToolkit.data.transform.augmentation.ImageProcessor -> SaigeToolkit.data.transform.augmentation.api.ImageProcessor
  • 가독성을 위해 Transform 모듈 구조 및 파일 네이밍을 변경했습니다.
    • Transform 에서만 쓰이는 사용자 지정 타입 variable을 transform/typevar.py 로 모았습니다.
    • [파일명 변경]
      • transform.augmentation.functional -> transform.augmentation.augment_function
      • transform.augmentation.transform -> transform.augmentation.augment_transform
      • transform.functional -> transform.image_function
      • transform.box -> transform.box_function****
      • transform.polygon -> transform.polygon_function
  • transform.augmentation.base 파일에는 베이스클래스의 선언만 남기고, 같은 파일의 기타 유틸리티성 메서드들은 transform.augmentation.util 파일로 나누어 관리합니다.
  • 기타 low-level import들을 제거하고, 기능적으로 관련된 하이레벨 모듈 임포트 시 함께 임포트 되도록 수정했습니다.

0.0.6

  • 2024-06-18 (PR 7290)
  • SaigeError를 통합했습니다.
  • PyTorch나 NumPy 등 다른 라이브러리의 알려진 에러들을 SaigeError로 바꾸도록 error handler를 수정했습니다.
  • 기존에는 torch.cuda.OutOfMemoryError만 따로 처리하고 있었으나, 이제 다른 에러들도 처리할 수 있도록 구조를 변경했습니다.
  • 에러 처리 관련 코드들의 타입 오류를 수정했습니다.

0.0.5

  • 2024-06-17 (PR 7273)
  • 여러 레포에서 동일하게 사용되는 LogHandler를 추가했습니다.
    • SaigeToolkit.logging
    • Tensorboard 외의 다른 dashboard를 사용하고 싶은 경우, DashBoard를 상속받아서 해당 레포에서 추가 구현하는 작업이 필요합니다.
  • API 테스트에 공통적으로 사용되는 함수를 추가했습니다.
    • SaigeToolkit.util.test.py 파일 내 함수들.
    • 기존의 sweep 함수의 이름을 sweep_options로 변경하였습니다.
  • 다수의 레포에서 사용되는 images_to_4d_tensor 함수를 추가했습니다.
    • DET, SEG2, IEN, CLS2, IAD 에서 data collate에 사용됨.
    • SaigeToolkit.data.collate.py

0.0.4

  • 2024-06-17 (PR 7268)
  • (레거시 코드를 사용 중인 레포에서 코드 이전 작업 필요)
  • image_aug, text_aug를 포함한 이전 augmentation 구현을 제거했습니다.
  • Sampler 구현 중 레거시화 된 BalancedSampler, ClassBalancedSampler를 제거했습니다.
  • 레거시화 된 데이터셋 컨피그 및 샘플 데이터, 테스트, 빌더 메서드 등을 제거했습니다.
  • Cropper 구현 중 레거시화 된 FixedOcrCropper류, ClosePolygonRejectingCropper를 제거했습니다.
  • DirectoryDataset, MixDataset 구현을 제거했습니다.
  • CLS2에서 더 이상 사용하지 않는 ClsDataset 구현을 제거했습니다.
  • graph_sorter 모듈을 제거했습니다.

0.0.3

  • 2024-06-14 (PR 7265)
  • 실험에만 사용되는 것이 명확한 코드들을 ResearchToolkit 폴더로 이동했습니다.
    • SaigeToolkit.experiment -> ResearchToolkit.experiment
    • SaigeToolkit.notion -> ResearchToolkit.notion
  • 더 이상 사용되지 않는 모델 구현을 제거했습니다.
    • SaigeToolkit.model.backbone 하위의 block, hardnet, mobilenet, nasnet, resnet_을 제거했습니다.
    • SaigeToolkit.model.layer 전체를 제거했습니다.
  • CLS2에서 더 이상 사용하지 않는 SaigeToolkit.learning.loss 구현을 제거했습니다.
  • 사용되는 곳이 없는 Singleton 클래스를 제거했습니다.

0.0.2

  • 2024-06-14 (PR 7263)
  • Toolkit 상위 단 모듈들의 __init__에 작성된 임포트를 대부분 제거해 의도치 않은 모듈 임포트를 방지했습니다. 상위 모듈에서의 임포트를 사용하고 있었다면, 아래와 같은 임포트 경로 수정이 필요합니다 (관련 레포에서 코드 작업 필요).
    • SaigeToolkit.checkpoint.CheckpointHandler -> SaigeToolkit.checkpoint.checkpoint.CheckpointHandler
    • SaigeToolkit.learning.DeviceManager -> SaigeToolkit.learning.device.DeviceManager
    • SaigeToolkit.learning.build_loss -> SaigeToolkit.learning.loss.build_loss
    • SaigeToolkit.learning.build_optimizer -> SaigeToolkit.learning.optimizer.build_optimizer
    • SaigeToolkit.learning.build_scheduler -> SaigeToolkit.learning.scheduler.build_scheduler
    • SaigeToolkit.model.build_backbone -> SaigeToolkit.model.backbone.build_backbone
    • SaigeToolkit.model.build_feature_extractor -> SaigeToolkit.model.feature_extractor.build_feature_extractor
    • SaigeToolkit.model.build_neck -> SaigeToolkit.model.neck.build_neck
    • SaigeToolkit.util.read_yml -> SaigeToolkit.util.config.read_yml
    • SaigeToolkit.util.load_files -> SaigeToolkit.util.file_handler.load_files
    • SaigeToolkit.util.Timer -> SaigeToolkit.util.timer.Timer
    • SaigeToolkit.util.CudaMemoryTracker -> SaigeToolkit.util.memory.CudaMemoryTracker
    • visualize 모듈의 모든 함수들 SaigeToolkit.visualize.XXX -> SaigeToolkit.visualize.(util/draw/overlay).XXX

0.0.1

  • 2024-06-13 (PR 7245)
  • Toolkit 내 폰트 파일 2종을 제거하고, visualize/draw의 draw_text 메서드에서 이를 디폴트로 사용하는 동작을 제거했습니다 (관련 레포에서 코드 작업 필요).
  • Pytest 시 deprecation warning을 유발하는 부분을 최신 구현으로 대체했습니다.
    • torchvision model 로드 시 pretrained=True 인터페이스가 weights로 바뀌었으며, 기존 동작을 유지하면서 새 인터페이스로 변경하는 작업을 진행했습니다. https://pytorch.org/vision/stable/models.html 참고
    • PIL의 Image.BILINEAR 등의 값들이 deprecate 되어 Image.Resampling.BILINEAR 등의 값으로 변경했습니다.