콘텐츠로 이동

Release Notes

2.12.0

Feature

2.11.1

개선

  • 사용자 문서에 프로젝트 유형별 예제 메뉴가 추가되어, 예제 코드에 대한 설명과 주의사항 등을 기능별로 담았습니다.
  • 사용자 문서의 다국어 지원 (영문, 중문)이 추가되었습니다.

Bug Fix

  • SaigeSetInferenceOption 함수의 메모리 누수 현상을 해결하였습니다.
  • SaigeSegmentedObject 의 BoundingBox 좌표 순서에 대한 설명에 오류가 있어 수정하였으며, 5번째 좌표값 누락되어 항상 0으로 보고되던 오류를 수정하였습니다.
  • SAIGE VISION Enterprise 의 MLOps 기능을 사용하는 환경에서 네트워크상 문제가 발생한 경우 간헐적으로 프로그램이 종료되던 오류를 수정하였습니다.

2.11.0

중요 사용방법 변경

  • Runtime SDK 2.11 버전 부터는 기존의 SAIGE VISION 2.3 이하의 인스톨러로 설치한 환경에서 동작하지 않습니다. 성능 개선을 위한 내부 프레임워크 버전의 업그레이드를 진행하였으니 인스톨러 2.4 이상의 버전을 사용하여 환경을 설치하시기 바랍니다.

개선

  • Object Detection 기능에서 0 번째 클래스는 시스템 예약된 OK 클래스 입니다. 따라서 SaigeInferenceOption.objectAreaThresholdPerClass 및 SaigeInferenceOption.objectScoreThresholdPerClass 옵션의 경우 0 번째 클래스 값을 변경할 수 없습니다.
    • Object Detection 기능에서 해당 옵션 값을 변경하여 SaigeSetInferenceOption 함수를 호출하는 경우 에러를 명확히 표시하도록 개선하였습니다.
    • SaigeInferneceOption 구조체의 기본 값이나 사용 방법을 주의하실 수 있도록 SaigeSetInferenceOption에 option 구조체를 전달하기 전에 SaigeGetInferenceOption 함수를 통해서 핸들로부터 값을 받아오는 패턴을 예제코드에 반영하였습니다.

2.10.1

API 추가

  • 데이터 수집시 검사 후 메타데이터를 설정하는 SaigeSetResultMetadata API가 추가되었습니다. 자세한 사용 방법은 Examples/ExampleClsRuntimeWithMetadata.cpp:277 예제 코드를 확인하시기 바랍니다.

Bug Fix

  • CLS + DET 예제에서 경로 오류로 프로그램이 종료되던 문제를 수정하였습니다.
  • Linux에서 파이썬 라이브러리 링크가 안되던 문제를 수정하였습니다.
  • Linux에서 C 및 다른 언어 사용시 API 바인딩이 안되던 문제를 수정하였습니다.

2.10.0

API 변경

  • OCR의 네트워크 타입 정보를 표시하는 방식이 변경되었습니다.
    • OCR은 Detection, Recognition 두 개의 네트워크로 구성되어있으며 두 네트워크의 타입 정보가 , 로 구분되어 표시되었습니다. 이 정보가 각각 DET, REC라는 문자열을 통해 명확하게 구분됩니다.
    • 기존: Industry, Accurate Short
    • 변경: DET(Industry), REC(Accurate Short)

API 추가

  • OCR 기능을 위한 새로운 모델정보 (ModelInfo) 필드, targetTextShape가 추가되었습니다.
  • 헤더 파일의 버전 표시 방법이 개선되었습니다. 기존에 제공하던 문자열 타입의 매크로 SAIGEVISION_RUNTIME_VERSION 뿐 아니라, 숫자로 구분하여 표시된 SAIGEVISION_RUNTIME_VERSION_MAJOR, MINOR, PATCH로 나뉘어서 제공 됩니다.
    • 이를 이용하여 SAIGEVISION RUNTIME SDK의 버전에 따라 코드 전처리구문(#define, #if) 작성이 가능합니다.

새로운 기능

  • OCR의 새로운 유형으로 학습된 모델 파일의 이용이 가능합니다.
    • 새로운 Recognition 모델 유형인 Literal 이 추가됩니다. 기존의 Recognition 모델 유형은 Contextual이라는 이름으로 구분됩니다.
    • targetTextShape 정보를 읽어올 수 있습니다.
    • 자세한 내용은 SAIGE VISION Developer 문서에서 확인하실 수 있습니다.

개선

  • ErrorMsg.exe 프로그램에서 입력으로 양수 에러 코드 지원합니다.
  • SaigeVisionDoctor.exe
    • CUDA 종속성 없이 driver version 확인할 수 있도록 변경되었습니다.
    • Runtime installer로 설치된 환경에서도 작동합니다.
    • 설치항목 테스트의 Sucess/Fail의 식별성이 개선되었으며 요약을 제공합니다.
  • SaigeVision\engine\log\svsdk.log 파일을 통해 제공되는 로그의 내용이 개선되었습니다. Runtime SDK의 동작에 문제가 발생한 경우 로그를 확인하여 파악할 수 있는 정보가 늘어났습니다.
  • Examples 프로젝트에 multi-thread 활용 예제가 추가되었습니다.

Bug Fix

  • Enterprise Deploy 기능으로 배포한 모델 파일을 이용하여 핸들을 갱신된 상태에서, 모델 배포가 아닌 데이터 수집 옵션 변경 등을 통해서도 핸들이 다시 로드되는 문제를 해결하였습니다.
  • OCR Example 코드에서 verbosity=4일때 검출된 텍스트 박스가 표시되지 않는 문제를 해결하였습니다.

2.9.2

  • SAIGE VISION V2의 타 기능 라이센스를 통해 ROD 기능을 사용할 수 있습니다.

2.9.1

Bug Fix

  • Rotated Object Detection 기능에서 검사 옵션이 정상적으로 보이지 않고, 설정 함수에 오류가 발생하던 문제를 해결하였습니다.

2.9.0 (정규 제품 외 임시 버전)

  • Rotated Object Detection 기능이 추가되었습니다.
  • 회전된 물체를 검출하는 기능입니다. Object Detection 기능과는 다르게 현재는 Object의 클래스 구분은 하지 않습니다.
  • 회전된 물체의 정보는 struct SaigeDetectedObject의 boundingBox인 struct RotatedObject 포맷을 따릅니다.
  • 검사 옵션은 maxNumOfDetectedObject, objectScoreThreshold를 지원합니다.
  • Util 함수 SaigeCropWithRotatedBox는 원본 이미지와 SaigeRotatedBox 검사 결과로 회전되기 전 형태의 이미지로 잘라내어 반환합니다. 반드시 [SaigeFreeCroppedImage][../SaigeVision/_saige_vision_util_8h/index.html#saigefreecroppedimage] 함수와 짝을 맞추어 사용해야 합니다.
  • V1 호환 헤더파일 지원이 종료됩니다.
  • 임시 버전으로 기능과 관계없는 잠수함 패치가 몇 가지 존재합니다.

2.8.0

  • Linux(x86_64, aarch64) 지원이 추가되었습니다.
  • 같은 하드웨어에서 Windows와 Linux의 상세한 추론 결과값은 상이할 수 있습니다.
  • 모델 정보 출력 스크립트가 개선되었습니다.
  • UNSUPPORTED_OPERATION, EXTERNAL_LIBRARY_ERROR, FAILED_TO_LOAD_GPU_INFO 에러 코드가 추가되었습니다.

2.7.13

  • Image Enhancement 검사 기능에 구 ISR-Server 라이센스도 사용가능합니다.
  • 로그 포맷이 변경되었고, 설정 파일도 xml로 변경되었습니다. 자세한 내용은 SaigeVision/engine/conf 디렉토리를 확인하시기 바랍니다.

Bug Fix

  • SDK의 비정상 종료를 해결하였습니다.
  • SAIGE VISION Enterprise 시스템과 연동되어 검사 결과 모니터링 기능을 이용하는 경우, 검사 PC의 Saige Vision Agent 서비스가 중도 종료되는 경우 발생
  • SaigeInferFromByteArrayWithProductId

2.7.12

  • 유용한 함수가 개선되고 사용 방법이 문서에 추가되었습니다.
  • SAIGE VISION Enterprise의 Operation을 위한 기능이 추가되었습니다.
  • SaigeSetHandleMetadata
  • SaigeSetInferenceMetadata
  • Logger를 통해 Runtime SDK의 동작이 기록될 수 있으며, 설정 파일은 SAIGE_HOME/SaigeVision/engine/conf/log.properties 입니다.
  • Handle 생성시에도 라이센스 동글을 확인하여, 라이센스 문제가 있으면 바로 알려주도록 개선하였습니다.

2.7.11

Bug Fix

  • OCR에서 Text Formatting 옵션 number가 제대로 동작하지 않는 문제를 해결하였습니다.

2.7.10

  • 설치된 Runtime 버전을 확인할 수 있는 프로그램 SAIGE_HOME/SaigeVision/engine/bin/get_versions.exe을 배포합니다.

중요 사용방법 개선

  • SaigeVision.dll, SaigeVision_Impl.dll 두 DLL 파일이 실행 환경에 필요합니다.
    만약 SaigeVision.dll을 실행 환경 경로(DLL 검색 경로)에는 없지만 프로젝트에서 명시적으로 불러온 경우 (e.g. LoadLibrary() 및 GetProcAddress()) 마찬가지로 SaigeVision_Impl.dll도 DLL 검색 경로에는 없을 수 있습니다. 이러한 경우에도 SAIGE VISION 설치 경로인 SAIGE_HOME/SaigeVision/engine/bin 에서 SaigeVision_Impl.dll을 찾게 됩니다.

API 동작 변경

  • SaigeStrError 함수만 별도로 호출하여도 에러 코드에 대한 메세지를 확인할 수 있습니다.
    (기존에는 추론 핸들을 생성한 이후에만 호출이 가능했습니다.) Examples/ExampleSaigeStrError.cpp 예제 참고
  • 이 기능을 쉽게 이용할 수 있도록 SAIGE_HOME/SaigeVision/engine/bin/ErrorMsg.exe 를 배포하였습니다.

2.7.9

API 추가

2.7.8

Bug Fix

  • Anomaly Detection 기능에서 calcScoremap 옵션의 값이 다른 추론 결과에도 영향을 미치던 버그를 해결하였습니다.
  • 핸들파괴 시간이 오래걸리던 문제를 해결하였습니다.

2.7.7

Bug Fix

  • Object Detection 기능에서 Bounding Box의 Center좌표가 표출되지 않던 버그를 해결하였습니다.

2.7.6

중요 사용방법 변경

  • 런타임 환경에서의 기본 추론 옵션이, 모델 파일을 처음 로드할때 유저의 의도와 관계없이 모델 파일에 저장되지 않도록 변경되었습니다. 아래 항목들이 영향을 받습니다. (괄호 안은 기본 값)

    • (공통) calcTime(false), batchSize(1)
    • (CLS) calcClassActivationMap(false)
    • (DET) 해당없음
    • (SEG) calcScoremap(false), calcMask(false), calcObject(true), calcObjectAreaAndApplyThreshold(true), calcObjectScoreAndApplyThreshold(true)
    • (IAD) calcScoremap(false), calcMask(false), calcHeatmap(false), calcObject(true), calcObjectAreaAndApplyThreshold(true), calcObjectScoreAndApplyThreshold(true)
    • (OCR) oversizedImageHandling("do_not_inspect"), maxNumOfTextObjects(0)
    • (IEN) oversizedImageHandling("do_not_enhance")
  • SAIGE VISION Developer 버전 2.0.6 이상에서 학습한 모델 파일이 기존 버전에서는 사용이 불가능합니다. 따라서 런타임의 실행환경인 %SAIGE_HOME%\SaigeVision\module 또한 SAIGE VISION Developer 2.0.6 이상을 요구합니다. (C++ 런타임의 버전과는 관계 없습니다.)

API 변경

  • SaigeModelInfo 항목이 추가되었습니다.
    • targetTextSize
    • targetImageQuality

2.7.5

Bug Fix

  • 일부 모델 파일이 로드되지 않는 버그를 수정하였습니다.

2.7.4

Bug Fix

  • 사용하지 않는 기능에 대한 모듈이 없더라도 정상적으로 동작하도록 수정하였습니다.

2.7.3

  • 내부 모듈을 로드하는 로직을 수정하여 에러 발생을 줄였습니다.
  • 검사 결과 핸들에 지정 또는 생성된 Product Id를 조회하는 API SaigeGetInferenceResultProductId 가 추가되었습니다.
  • V1 호환 API에 MLOps 모니터링을 위한 Product Id를 지정하여 검사하는 API SR_ApplyADTestFrom8bitCharColorArrayWithProductId가 추가되었습니다.

2.7.2

  • 라이센스 체크 방식의 안정성을 개선하였습니다.

2.7.1

MLOps

  • 핸들의 샘플 이미지를 전송하는 로직을 변경하여 Operations > Settings 화면에서 핸들을 조회하면 샘플이미지가 안보이던 경우가 감소합니다.
  • MLOps의 로그에 이미지 데이터가 포함되지 않도록 변경되었습니다.

API 변경

  • SaigeModelInfo의 내용에 학습시 기록된 정보가 다음과 같이 추가되었습니다.
    • description
    • usedGpuName
    • numOfIterations
    • numOfTrainImages
    • numOfValidationImages
    • numOfValidationImages
    • trainingTimeStarted
    • trainingTimeCompleted
    • trainingTimeElapsed

2.7.0

  • 모든 기능 Cls, Det, Seg, IAD, OCR, IEN 을 사용할 수 있으며, MLOps기능이 통합되었습니다.

Bug Fix

  • Debug 모드로 MLOps 로그를 사용하는 경우 메모리 에러를 해결하였습니다.
  • Segmentation 수율 계산을 위한 MLOps 모니터링 정보가 정확하지 않은 문제를 해결하였습니다.

2.6.1

Bug Fix

  • 실행도중 등록한 Inspector의 ID 를 제대로 가져오지 못하던 문제를 해결하였습니다.
  • Inference Handle의 Sample Image가 MLOps 화면에서 제대로 표시되지 않던 문제를 해결하였습니다.

2.6.0

  • MLOps 기능을 사용 가능합니다. (OCR기능은 미지원)
    • SaigeInferFromByteArray, SaigeInferFromByteArrayWithProductId 두 검사 API에서만 사용 가능합니다.
    • 현재 8bit 이미지에서만 사용 가능합니다.

2.5.3

  • Image Enhancement 기능을 사용할 수 있습니다.

2.5.2

  • OCR 기능에서는 최적화 기능의 안정성 문제로 지원을 중단합니다.

2.5.1

  • OCR 기능 업그레이드에 따른 변경사항이 적용되었습니다. 기존에 학습된 모델은 사용이 불가능합니다.
  • OCR 기능의 score값, score threshold값들이 백분율 처리되지 않은 부분 해결하였습니다.

2.5.0

  • OCR 기능을 사용할 수 있습니다.

2.4.7

  • 몇몇 예제 코드에서 type casting 방법이 좀 더 명시적으로 추가되었습니다. (size_t -> int 등)

중요 API 변경사항

  • saige_error.h 헤더 파일이 추가되었습니다. C++ SDK에서 API의 리턴값으로 나올 수 있는 에러코드의 이름을 확인할 수 있습니다.
  • 검사시간을 받는 SaigeGetInferenceResultInspectionTime 의 파라미터가 long (int32)에서 long long (int64)으로 변경되었습니다.
  • SaigeImageType의 enum 변수 이름이 변경되었습니다. 일반적인 이름을 피하기 위함입니다.

2.4.6

  • V1호환 IAD 기능의 결과 구조체인 SR_SimpleSegmentedObject의 형식이 V1 SDK 최종 배포된 버전에 맞춰 업데이트 되었습니다.

2.4.5

V1 호환 API (시험적, SaigeVisionAPI_V1.h 파일 참조)

  • SaigeVision V2의 IAD 기능을 사용하기 위한 V1 호환 API가 제공됩니다.
  • V2의 IAD기능을 사용하기 위한 V1 스타일의 별도 API가 제공됩니다.

2.4.4

  • 일부 기능의 V1 호환 API가 제공됩니다.

2.4.3

  • SaigeModelInfo.classIsNg 항목이 새로 추가되었습니다. 각 클래스별로 학습시 설정한 NG클래스 여부를 나타냅니다.

2.4.2

  • Segmentation의 추론 옵션 변경
    • Mask 계산여부인 calcMask도 Segmentation 추론옵션에 포함됩니다.
    • SegmentedObject 연산 속도를 향상시키기 위해서 calcScoremap, calcMask를 false로 설정할 수 있습니다.
    • 의미있는 추론결과가 없는 현상을 방지하기 위해 calcScoremap, calcMask, calcObject를 모두 false로 설정할 수 없습니다.

2.4.1

  • Object Detection 기능의 내부 구조가 바뀌어 기존에 학습된 모델파일의 직접 사용이 어렵습니다. 새로운 버전에서 학습된 모델을 사용해주세요.

Bug Fix

  • Object Detection 최적화 모델이 일부 이미지 데이터에 대해 런타임 에러가 발생하는 문제를 해결하였습니다.
  • 16bit Channel Depth 이미지의 경우 일부 Util함수에서 시각화가 제대로 표현되지 않던 문제를 해결하였습니다.

2.4.0

  • SaigeInferFromByteArray에 사용되는 이미지 플래그가 다음과 같이 변경되어 더 명확한 의미를 가집니다.
  • SAIGE_IMAGE_ 로 접두어 간소화
  • SAIGE_IMAGE_COLOR 로 RGB 채널 여부를 나타냄
  • SAIGE_IMAGE_16BIT 로 채널당 픽셀 데이터의 depth를 나타냄. (8bit unsigned int 또는 16bit unsigned short)
  • SAIGE_IMAGE_ALPHA 로 Alpha 채널의 유무를 나타냄
  • SAIGE_IMAGE_BGR 로 컬러 이미지의 채널 순서를 나타냄 (기본: RGB)
  • 이하 매크로들을 통해서 위의 네 플래그의 조합을 제공합니다. 매크로 이름을 통해 이미지 배열 형식을 명확하게 표현합니다.
    • SAIGE_IMAGE_8BIT_GRAY
    • SAIGE_IMAGE_24BIT_RGB
    • SAIGE_IMAGE_24BIT_BGR
    • SAIGE_IMAGE_32BIT_RGBA
    • SAIGE_IMAGE_24BIT_BGRA
    • SAIGE_IMAGE_16BIT_GRAY
    • SAIGE_IMAGE_48BIT_RGB
    • SAIGE_IMAGE_48BIT_BGR
    • SAIGE_IMAGE_64BIT_RGBA
    • SAIGE_IMAGE_64BIG_BGRA
  • 위 이미지 플래그 변경사항과 관련하여 제공된 모든 SaigeVisionUtils.h의 함수들이 변경되었습니다. Infer API와 다르게 항상 RGB로 작동합니다.
  • 이미지 데이터를 받는 모든 함수에서 자료형이 const void*로 변경되었습니다. 8bit unsigned char (uint8) 또는 16bit unsigned short (uint16)을 따로 구분하지 않기 위함입니다.
    • uint8, uint16, float32, double64를 구분하기 위한 enum Type이 추가되었습니다. 일반적인 상황에서 Float 타입은 사용되지 않으며, 히트맵 배열과 같이 일부 예시나 보조 함수에서 사용될 수 있습니다.
  • SaigeGetImageData: 이미지 데이터의 채널 수와 자료형을 받아옵니다. 또한, 원본 채널과 데이터 타입을 보존합니다.
  • 원본 이미지에 검출된 결과를 시각화하는 함수들도 channels와 더불어 type 정보 (8bit, 16bit)를 받게 됩니다. 자세한 내용은 예제 코드의 변경된 부분을 참고합니다.

  • 빌드된 DLL 파일에 버전 정보를 추가하였습니다.

Bug Fix

  • 일부 이미지 데이터에 대해 Object Detection 기능의 최적화가 적용되지 않던 버그가 해결되었습니다.
  • calcScoremap 추론옵션이 제대로 저장되지 않는 문제 해결되었습니다.
  • 추론 최적화 임시 파일 이름에 기존 기능 확장자(.saigecls 등)를 포함시켜 이름중복 문제를 해결하였습니다.
  • 모델파일에 저장된 값을 불러올 때 예외처리를 통해 적절한 에러코드를 반환하도록 변경되었습니다.
  • Object Detection 기능의 모델정보 및 추론옵션과 관련하여 classIndex: 0이 "OK" 클래스로 예약되어있어야 하는 동작이 제대로 적용되지 않았습니다. 아래와 같이 각 항목별로 수정하였습니다.
    • SaigeModelInfo.classNames, classColors에 적절한 값을 보여줍니다. 만약 "OK" 클래스가 없다면 해당 모델은 옳바르지 않은 Developer 버전에서 학습된 모델입니다.
    • 따라서, 검출된 SaigeDetectedObject의 classIndex값은 항상 1 이상입니다.
    • SaigeInferenceOption.objectAreaThresholdPerClass, objectScoreThresholdPerClass, maxNumOfDetectedObjects에서 "OK" 클래스에 해당하는 0번째 값은 기본값 0으로 고정되어있으며 조작하여도 Set Option API에서 반영되지 않습니다.

2.3.6

Bug Fix

  • Class 이름에 한글이 들어간 모델을 읽을 수 없던 오류를 수정했습니다.

2.3.5

  • IAD 기능에 사용된 딥러닝 네트워크의 구조가 변경되었습니다.
    • 기존 버전 (IAD Module Version 2.0.x)에서 학습된 모델도 추론은 지원되며 추론 최적화는 지원되지 않습니다.

2.3.4

Bug Fix

  • No ROI 모드로 학습된 모델의 핸들 생성이 실패하는 버그를 수정했습니다.

2.3.3

  • Object Detection 기능의 추론 최적화가 지원됩니다.
    • accurate 타입은 GPU 최적화시 캐시파일(.saigeoptim)이 생성되지 않습니다.
    • accurate 타입은 CPU에서 추론이 불가능하기 때문에 최적화 역시 적용할 수 없습니다.

2.3.2

Bug Fix

  • Object Detection 추론 결과로 도출되는 SaigeDetectedObject의 boundingBox.points에 Top-Left좌표만 저장되던 버그를 수정했습니다.

2.3.1

  • 핸들 생성 시 에러 메세지 처리가 좀 더 구체화 되었습니다. (예: 경로에 없는 파일인 경우)

2.3.0

  • Object Detection 기능을 사용할 수 있습니다.
  • 핸들 추론 최적화 방식이 변경되었습니다. 모든 기능에 공통 적용됩니다.
    • SaigeOptimizeInferenceHandle API 가 삭제되었습니다.
    • SaigeCreateInferenceHandle 호출 시 flag를 통해 optimize 여부를 결정합니다.
    • 최적화 level 옵션이 삭제되었습니다.
  • oversizedImageHandling 옵션들의 매크로 이름이 변경되었습니다.
  • 기존 Object Detection 기능을 위해 존재하던 변수, 상수, 매크로들의 이름이 변경되었습니다.

2.2.0

  • Classification 기능을 사용할 수 있습니다.

2.1.2

  • SaigeCreateInferenceHandle API가 실패하는 경우 handle 변수를 nullptr로 초기화 되도록 변경하였습니다.

Bug Fix

  • Project Type를 잘못 사용하는 경우 (e.g. IAD 핸들 - SEG 모델) 발생하는 모델파일 손상 문제를 해결하였습니다.

2.1.1

  • API 헤더의 불필요한 정의가 삭제되었습니다.
  • modelInfo.modelVersion이 삭제되었습니다.
  • pytorch 2.0이 적용되었습니다.
  • 추론결과 isOversized를 받아오는 API가 추가되었습니다.

2.1.0

  • Segmentation 기능을 사용할 수 있습니다.

2.0.5

  • IAD Module 업데이트 (2.0.3)
    • 메모리를 더 효율적으로 사용합니다.
  • SaigeVisionAPI.h 등 헤더파일의 주석이 상세하게 변경되었습니다.
  • SDK에서 사용하는 내부 모듈 버전을 확인할 수 있는 API가 추가되었습니다.

Bug Fix

  • Batch Inference의 마지막 loop가 정상적으로 수행되지 않던 문제를 해결하였습니다.

2.0.4

  • IAD 기능을 사용할 수 있습니다.