콘텐츠로 이동

Release notes

2.5.4

  • 2023.12.08 [기능 수정]

    • roi coordinates np.array에서 tuple로 data type 수정
    • confidence 낮은 matching score 무시

2.5.3

  • 2023.12.07

    [기능 수정]

    • developer train config에 fixed_roi coordinates 넣도록 수정

2.5.2

  • 2023.12.06

    [기능 수정]

    • domain shift detection과 독립적으로 camera shift detection이 될 수 있도록 수정

2.5.1

  • 2023.12.05

    [기능 수정]

    • domain shift detection을 on/off 할 수 있는 inference engine의 is_domain_shift_detection setter 추가.
      • inference_engine.is_domain_shift_detection = False로 끌 수 있습니다. 켜는 방법은 True를 assign하면 됩니다.
      • domain_shift_detection이 off인 경우, roi_calibration은 동작하지 않습니다.
      • 자세한 사용방법은 API Docs를 참고해주세요.

2.5.0

  • 2023.11.28

    [기능 추가]

    • Fixed ROI matching을 통한 카메라 틀어짐 감지 기능이 추가되었습니다.

2.4.6

  • 2023.11.27

    [버그 수정]

    • 특수한 환경에서 dataloader가 에러나는 부분을 수정하였습니다.

    [기능 추가]

    • .avi 확장자를 지원합니다.

    [기타]

    • Developer에서 과도한 CPU 메모리 사용 및 학습 시간으로 인해 최대 4시간 분량의 데이터만 학습이 가능하도록 수정하였습니다.

2.4.5

  • 2023.08.10

    [버그 수정]

    • 더 이상 no_motion state에서 no_roi_match 체크를 진행하지 않습니다.

2.4.4

  • 2023.08.02

    [버그 수정]

    • warmup 단계에서 발생하는 Module error. No roi calibrator error 에러 해결

2.4.3

  • 2023.07.26

    [기능 추가]

    • inference_engine.is_roi_calibration = False (Auto-ROI off)일 경우에도 no_roi_match 체크할 수 있도록 기능 추가.
      • domain shift detection 이후에 실행. roi_calibration(4) state로 나타납니다.
      • Auto-ROI on/off 상관 없이 no_motion state가 300 프레임 이상 지속되는 경우에, 300 프레임 마다 no_roi_match를 체크합니다.

2.4.2

  • 2023.06.12

    [버그 수정]

    • Clustering 내부 로직에서 Cluster distance 정렬 로직 추가.

  • Previous versions

2.4.1

  • 2023.06.12

    [버그 수정]

    • Developer Mode (force_cluster_result=True)에서, Clustering으로 넘어가기 전 Indistribution Dummy Output 생성 누락으로 인한 버그 수정.

2.4.0

  • 2023.05.19

    [기능 개선]

    [기능 추가]

    [기타]

    • torch 2.0.0 적용

2.3.2

  • 2023.05.17

    [기능 개선]

    [기능 추가]

    [기타]

    • Anomaly Clustering 내부 Feature Extracing 과정 stdout 처리.
  • 2023.05.15

    [기능 개선]

    • 검사 중간에 Adaptive score가 0이 되는 문제 개선
    • No ROI match 인 경우에 생기는 roi shift 문제에 대한 개선
    • Base threshold가 base score 변화에 adaptive 하게 변경.

    [기능 추가]

    • Base threshold의 parameter setting에 따른 detect mode 추가
      • "Strict" (Default) : 미검(underkill) 방지용
      • "Moderate" : 과검(overkill) 방지용.

    [기타]

    • (임시) torch 1.13.1 사용하도록 유지

2.3.1

  • 2023.04.03

    [기능 개선]

    • ROI match threshold 변경
    • no_motion state 이후 domain shift detector는 is_slow state가 아닐 때만 작동하도록 변경.

2.3.0

  • 2023.03.31

    [기능 추가]

    • SSIM Clustering 추가 및 기존 Indistribution Detectior 대체
    • [연구팀용] 검사 결과에서 cluster 정보도 notion database에 업데이트
    • [연구팀용] 검사 영상 총 시간, 시간당 과검 수도 notion database에 업데이트

    [버그 수정]

    • Cycle Counter 버그 수정: 특정한 경우 에 한하여 cycle count가 증가하지 않던 버그 수정
    • [연구팀용] 감지된 frame이 하나밖에 없을 때 metric results 폴더에 동영상 저장이 안되는 문제 (이로 인해 notion update error까지 발생) 수정
    • [연구팀용] "anomalies" 와 "anomalies_mp4" 폴더 안의 영상 name이 match가 안되는 문제 수정.

    [기타]

    • [연구팀용] inference 소요시간 측정 추가

2.2.2

  • 2023.03.06

    [기능 추가]

    • Developer용 클러스터링 결과 추가.
    • InferenceEngine save_checkpoint API추가, 모델 weight를 업데이트 후 common, metadata와 함께 저장합니다.
    • timer 추가 : `VAD 학습, Clustering 학습, 전체 학습 시간 기록하여 csv에 저장하도록 수정 (연구팀용)

    [버그 수정]

    • slow motion에서 domain shift를 trigger 하지 안도록 변경.
    • Developer 프로그램에서 reference video name을 클립 리스트 전체로 가져오던 부분 수정
    • research mode에서 motion detection 학습시 잘못된 인풋 사용 수정
    • demo_inference.py에 csv export 하는 부분 추가 (연구팀 실험용)
    • No motion 직후의 slow motion은 무시하도록 수정.

    [기타]

    • torch 1.13.1 및 cuda 11.7을 사용하도록 환경 변경.
    • csv 라벨파일에서 class number가 2 이상 부터는 prediction에서 제외합니다.
    • 기존 train config files (vad, vcls)가 삭제되고 V2를 위한 새로운 train config files 추가 (shallow & deep)
    • 학습 및 검사 클립 정보를 입력하여 코드 실행 한 번으로 학습과 검사가 이루어집니다.
    • Config을 이용하여 학습, 검사가 가능하도록 수정
    • 검사 결과 노션 데이터베이스에 업로드하는 기능 추가
    • SaigeToolkit update
    • main_train_vad.py : --use_developer_format을 이용하여 yaml config도 developer와 동일한 파라미터 사용하여 학습 가능

2.2.1

  • 2023.01.17

    [버그 수정]

    • resize_dim type 달라서 발생하는 버그 수정
    • save_checkpoint metadata 관련 부분 제거
    • TrainConfigMaker
      • 프레임 폴더 명에 하이픈 여러개 있을 때 발생하던 버그 수정
      • 프레임 폴더 1개만 학습에 사용하도록 했던 버그 수정. 이제는 frame_dir 모두 사용합니다.
      • VideoMotionDetection 등 기본 파라미터 수정
    • Developer에서 학습할 때 sequence_length 기존 4에서 64로 변경.
    • Developer에서 대문자 확장자 ".MP4"도 사용할 수 있도록 수정.

    [기능 제거]

    • VCls trainer 제거. Clustering으로 기능 대체

    [기능 추가]

    • VadInferenceEngine.save_checkpoint API 추가. 모델 weight를 업데이트하여 저장합니다.

    [기타]

    • color complexity roi 사용하도록 수정
    • 불필요한 print 제거
    • 버전에 pre-release postfix 표시

2.1.0

  • 2022.12.23

    [버그 수정]

    [기능 추가]

    • Developer 개발을 위한 python API 추가
    • VAD 학습 결과 이용 Clustering 학습 기능 추가
      • AnomalyClusteringTrainer.convert_vad_train_result_to_train_message
        • VadTrainer.process_weight_sampling 의 output을 이용하여 AnomalyCluseteringTrainer.train() 의 input인 train_message_dict를 만들어 주는 기능.백엔드에서 VAD 모델에 metadata 저장할 때 사용.
    • InferenceEngineHandler에 is_roi_calibration setter 메소드 추가
    • VAD pretrained 모델 사용으로 인한 setup.py 수정 (weight download)
    • saigevad model 파일에 “cluster_train_images” 추가. (최초 clustering 학습한 이미지들)
    • 메타데이터 관련 수정사항 반영 및 'common' 키 사용.
      • 'anomaly_cluster_meta' 에 "cluster_info", "initial_cluster_output", "cluster_train_images" 추가
        • “cluster_info” 내부에 “severity_level” 키 추가 및 “ignore” 기본값.
      • 'color_complexity_mask' 추가
    • inference state “slow_motion” 추가 (state_index == 7)

      Index State 설명
      1 no_motion 공정이 정지한 상태입니다.
      2 inspect 기본 상태이며, VAD 모델을 통해 score를 계산합니다.
      3 domain_shift_detection domain shift (장면 변경)이 발생한 상태입니다.
      4 roi_calibration roi calibration이 발생한 상태입니다.
      5 no_roi_match roi template과 비교하였을 때, 허용 범위 내에 해당 template과 동일한 장면이 없는 상태입니다.
      6 error 오류가 발생한 상태입니다.
      7 slow_motion 공정이 정지한 것은 아니나, 느리게 움직이는 상태입니다.
      - [SPRINT] Cluster갯수 줄이기 with Agglomerative Clustering
      - ResultContainer에'cluster_distance', 'cluster_confidence' 필드 추가

    [기능 개선]

    [기능 제거]

    • VCls 학습 관련 내용 제거
      • metadata, config 등에서 vcls 키워드 제거.
      • 검사에서는 기존 VCls 학습 모델 사용 가능.
    • metadata field 제거

    [기타]

    • SaigeToolkit의 SaigeError install 반영

2.0.3

  • 2022.11.22

    [기능 개선]

    • Anomaly Clustering Trainer에서 cuda 사용 불가시에, CudaNotAvailableError를 띄움.

2.0.2

  • 2022.11.09

    [버그 수정]

    • Anomaly Clustering Inference 의 Indistribution Detector v1 호환성 관련 Hotfix
      1. v1 indistribution detector 살려냄.
      2. inference 시에, clustering_method 가 'mice'면 v1, 'moco'면 v2 를 호출함.
      3. v1 indistribution detector를 살려냄에 따라, lightning-bolts==0.5.0 이 requirements로 추가됨.

2.0.1

  • 2022.11.04

    [버그 수정]

    • Anomaly Clustering Inference의 Indistribution Detector가 pretrained 모델로 학습된 indistribution detector의 state_dict를 로드할 때에 해당 클래스가 pretrained_weight으로 init 되지 않을 경우, conv 사이즈 맞지 않는 현상 수정.

2.0.0

  • 2022.10.28

    [기능 추가] - Anomaly Clustering Moco 알고리즘 추가 - Anomaly Clustering Trainer 테스트 코드 추가. - Indistribution Detector의 pretrained 모델 사용으로 인한 setup.py 수정 및 config.py 수정. (weight download)

    [기능 개선] - Indistribution Detector 성능 개선. - Anomaly Clustering 알고리즘 pl-bolts 의존성 제거

1.5.4

  • 2022.10.25
    • [FIX] fix moco dataloader issue
    • [FIX] save roi template image when inference (for debugging)
    • [FIX] cycle counter GPU memory 최소화
    • [FIX] seperate out vad model loader and vcls model loader
    • [FEATURE] slow motion detection → is_slow result 필드 추가

1.5.3

  • 2022.10.17
    • [FIX] type error in model converter

1.5.2

  • 2022.10.17
    • [FIX] Color_complexity_mask converter에 추가
    • Update latest metadata for leagacy model file

1.5.1

  • 2022.10.14
    • metadata 변경 및 호환성 관련
      • v1 -> v2 모델 컨버팅 시, metadata에 cluster_info 추가
      • Inference에서 critical로 체크된 cluster가 아닐 때 is_anomaly=False로 덮어쓰는 로직 제거
      • AnomalyClusterTrainer 학습 후 metadata에 cluster_info 추가
      • metadata validation 체크시 'cluster_info' 추가
      • v1 모델 metadata -> common_settings 에서 roi_xyxy 혹은 roi 모두 -> v2 roi_xyxy로 변경.
    • Cycle Counter 관련
      • is_anomaly와 관계없이 cycle count 작동하도록 변경
      • 모델 config에서 inspect_length 불러올 수 있도록 수정

1.5.0

  • 2022.10.14
    • Cycle counter 추가 [TASK] Cycle counter 구현
      • 128 frame 마다 업데이트되는 누적 cycle 횟수를 result field “cycle_count”로 저장
    • result field에 “cycle_count” 추가

1.4.7

  • 2022.10.13
      1. add "color_complexity_mask" to metadata["common_settings"]

1.4.6

  • 2022.10.13
    • VAD 연구팀에서 쓸 metadata 확정 ⇒ 앞으로 API Docs 맨 위에 metadata 테이블 두고 변경 시 백엔드 팀과 논의해서 바꾸기.
    • metadata 체크 test 코드 추가 (필드 이름 정확히 일치하는 지)
    • moco clustering 추가.

1.4.5

  • 2022.10.11
    • [Fix] v1 변환 모델 infer 시 color complexity 초기화 에러 해결 (config 없는 문제)
    • [Fix] cluster 학습 시 load_checkpoint 를 한번 더해서 에러나는 부분 수정
    • [Fix] legacy meta_data를 encrypt 안하도록 수정

1.4.4

  • 2022.09.28
    • [Fix] torch.cuda.empty_cache()를 기존 6개에서 1개만 실행되도록 수정. 기타 버그 수정.

1.4.3

  • 2022.09.26
    • [New] cythonize 할 때 pretrained model weight을 다운 받고, deploy 폴더에 같이 포함 시킴.

1.4.2

  • 2022.09.26
    • [Fix] selector import 제거
    • [Modify] saigevad 'meta_data' 'metadata' 모두 사용 가능.
    • [Modify] 더이상 사용하지 않을 load_model, set_model api 제거

1.4.1

  • 2022.09.26
    • [Modify] torch lightning 시드 추가 및 early stopping 제거. 기타 버그 수정.

1.4.0

  • 2022.09.26
    • [Add]Result Container에 final_score, final_threshold 추가
    • [Modify]모델 파일 내부 "meta_data" -> "metadata"
    • [Modify]inference engine에 n_sigma (=final_threshold) 넣을 수 있도록 수정
    • [Bug fix]Color complexity mask 관련 버그 수정
    • [Bug fix]ROI callibration 쪽 cropper 버그 수정

1.3.1

  • 2022.09.20
    • 모델 파일 내 version 타입 string으로 변경
    • anomalyclustering 관련 아웃풋들 중 “cluster_name”, “anomaly_cluster”를 모두 “cluster_index”로 변경
    • 기타 버그 수정.

1.3.0

1.2.0

  • 2022.09.06
    • New
      • Anomaly Clustering Inference API VAD Inference에 병합됨.
    • Changed
      • Anomaly Clustering Trainer API 학습 input에 기존 saigevad 모델 경로 입력 필요 및 내부 키 변경 사항 반영. (output_model_path → saigevad_weight_path)
      • torch 및 cv2 쓰레드 수 제한.
      • SaigeToolkit submodule 최신버젼으로 업데이트

1.1.0

1.0.0

  • 2022.08.19
    • initial release