본문으로 건너뛰기
버전: docs v25.02

Vision Anoamly Detection (VAD)

Updated 2025.05.12

What is Visual Anomaly Detection?

Visual Anomaly Detection(VAD)은 정상 이미지를 학습하여 비정상 이미지를 감지하는 AI 컨텐츠입니다. 정상 이미지, 혹은 동일한 유형을 가진 이미지로 학습 데이터를 구성하여 학습한 이미지와 다른 이미지가 있을 때 이상 이미지로 사용자에게 알림을 줄 수 있습니다. VAD는 사용자가 이미지를 하나 씩 살펴보면서 정답지를 만들지 않아도 되기 때문에 정답지를 만들기 위한 비용이 절감됩니다.



When to use Visual Anomaly Detection?

VAD는 다수의 정상 혹은 특정 유형으로 구성된 이미지와 소수의 비정상 혹은 기타 유형으로 구성된 이미지를 분류할 수 있습니다. 정답 라벨 없이 정상 혹은 특정 유형 이미지만 있으면 어떤 분야에서도 VAD를 적용할 수 있습니다. 주된 활용 분야는 다음과 같습니다.

  • 제조업: 제품의 외관 검사 혹은 비전 검사 공정에서 대부분이 정상 제품에 해당이 되며 이상 제품이 많지 않은 경우 정답지 없이 이상 제품을 자동으로 분류하여 확인할 수 있습니다.
  • 재고 관리: 정답 라벨이 없는 이미지 데이터를 이용하여 다른 제품이 섞여있지 않은지 확인할 수 있습니다.
  • 농업: 스마트폰 이미지를 통해 작물의 상태를 모니터링하고 병충해, 생육 이상 등을 조기에 발견합니다. 이를 통해 농작물 관리의 효율성을 높일 수 있습니다.

아래는 실제 VAD을 적용한 다양한 실제 사례 중 세 가지입니다.

Bolt inspection(TBD)

각종 전기차 부품 중에서 bolt나 부품 정상 채결 여부에 대한 이미지 기반 이상탐지 솔루션입니다.

Critical Defect Detection(TBD)

전기차 부품 양산 과정에서 작업자가 부품 조립을 지시서 대로 수행하지 않거나 자동화 설비에서 만들어지는 부품의 불량에 대해 이미지 기반으로 이상 탐지를 수행하는 솔루션입니다.

Box 외관검사(TBD)

물류 창고 내 제품이 출고 되기 전 포장 박스 외관의 결함을 탐지하는 솔루션 입니다.  



Key Features

우수한 성능

VAD는 이미지 기반 이상 탐지 AI모델 중 우수한 성능을 보유한 최신 모델인 PatchCore와 FastFlow를 사용할 수 있습니다. PatchCore는 기 학습된 모델을 활용하기 때문에 학습할 필요가 없어 학습 cost가 절감되며 안정적인 성능을 보유하고 있습니다. FastFlow는 최근 다양한 분야에서 두각을 나타내는 이미지 생성형 모델을 활용한 이미지 이상탐지 모델입니다. 두 모델 모두 경량화 모델로 신속한 추론이 가능합니다.

초기 라벨 생성 코스트 절감

이미지 기반 분류 모델을 사용하기 위해서는, 이미지마다 사람이 확인하여 라벨을 붙이는 정답지를 생성하는 과정이 필요합니다. 하지만 VAD는 정상 혹은 특정 유형 이미지만 있으면 정상 여부 혹은 특정 유형 여부를 확인할 수 있기 때문에 되기 때문에 정답지 라벨을 생성하기 위한 코스트를 절감할 수 있습니다. 추후 이상 판정으로 분류된 이미지에 대해서만 사람이 확인하여 이상 유형 라벨을 새로 부여하면, 빠르게 이미지 기반 분류 AI로 전환하여 좀 더 다양한 유형의 이미지 분류 AI모델을 사용할 수 있습니다.

편리한 사용성과 이해하기 쉬운 추론 근거 제공

VAD는 대부분 자동화되어 있기 때문에 정상 이미지 데이터만 수집하면 바로 손쉽게 사용할 수 있습니다. 또한 이상으로 분류한 이미지에 대해 어떤 영역 때문에 이상으로 탐지했는지 근거 영역을 표시한 이미지를 제공합니다. 따라서 AI가 정상적으로 학습이 되었는지 빠르게 근거 영역이 표시된 이미지를 통해 확인할 수 있습니다.



Quick Start

설치하기

필수 parameter 설정

  1. solution/experimental_plan.yaml 내 아래 데이터 경로를 사용자 경로로 수정해주세요.

    train:
    dataset_uri: [train_dataset/] # 사용자 데이터 경로로 변경

    inference:
    dataset_uri: inference_dataset/ # 사용자 데이터 경로로 변경
  2. function: Readiness의 'args'에 train data에 맞는 train_validate_column, validation_split_rate, threshold_method을 입력해주세요

        - step: Readiness
    args:
    train_validate_column: # train과 validation을 구분하는 컬럼을 입력합니다. 해당 컬럼에는 train과 valid 두 인자로 구성되야합니다. 없으면 입력하지 않아도 됩니다.
    validation_split_rate: 0.1 # train_validate_column이 존재하지 않는 경우, 입력된 train 데이터에서 해당 rate만큼 validation을 생성합니다.
    threshold_method: F1 # Validation시 OK와 NG를 판정하는 방법을 선택합니다. 선택 가능한 값: F1, Percentile (검증 데이터 수에 따라 자동 선택되기도 함.)

  3. function: Train의 'args'에 train data에 맞는 model_name, img_size, percentile을 입력해주세요

        - step: Train
    args:
    - model_name: fastflow # VAD로 사용할 모델을 선택합니다. 선택 가능한 값: fastflow, patchcore
    img_size: 256 # 이미지 학습시 변환될 이미지 사이즈를 설정합니다.
    percentile: 0.8 # threshold_method가 Percentile인 경우 NG로 판정할 기준으로 Validation 데이터셋의 anomaly score의 percentile을 선택합니다.
  4. function: Inference의 'args'에 train data에 맞는 inference_threshold을 입력해주세요

        - step: Inference
    args:
    - inference_threshold: 0.5 # abnormal로 판정되기 위한 anomaly score의 threshold입니다.

  5. 위 과정만 설정하고 ALO를 실행하면 모델을 생성할 수 있습니다! 좀 더 데이터에 맞는 모델을 생성하기 위해 고급 파라미터 설정을 원하는 경우 우측 페이지를 참고해주세요. 자세히보기: VAD Parameters

실행하기


Topics

VAD 기능 설명 VAD 입력 데이터 및 산출물 VAD Parameters


VAD Version: 3.0.0, ALO Version: 3.0.0