시각-언어 모델을 활용하는 제로샷 이상 감지 방법론 (Zero-Shot Anomaly Detection: Leveraging Text Prompt in Vision-Language Models)
- 23.08.30(Wed) - 23.11.21(Tue) (2023 산학 프로젝트 챌린지)
- 제조 자동화 산업
- 이상 감지 검출 연구 및 개발의 한계
- 제조 및 검증 과정에서 고장 부품을 학습하고 선별하는 것이 어려움.
- 모든 고장 부품에 대한 충분한 양의 훈련 데이터셋 얻기 어려움.
- Unseen 영상 및 고장 카테고리 변경 시 재학습이 필요함.
- 고장 카테고리를 학습하여 정확도를 1-2% 향상시키는 것보다 Zero-Shot 방법론을 통해 학습 비용 감축에 관심을 보임.
-
시각-언어 모델을 이용하여 데이터셋을 훈련없이 Abnormal Detection이라는 일반적인 프레임워크 만드는 것이 목표.
-
기존 연구인 Fall Detection을 사례연구로 먼저 시도했고, 다양한 상황에서의 이상 감지로 일반화 가능성을 확인함.
- 빠른 신고와 조치가 필요한 다양한 상황에서 정교화된 Prompt 기술로 학습 없이 즉각적인 대응이 가능한 시스템 구축
- 노인 및 기타 취약한 인구에게 생활의 편의성을 제공. 스스로 살아가는 데 도움을 주고, 가족이나 감독자에게 심적 안정감을 제공
- 낙상 예방과 안전 강화: 낙상을 빠르게 감지하고 경고하는 시스템을 통해 부상 예방 및 심각성을 감소시키는 데 도움
- 의료 모니터링 향상: 의료 모니터링 시스템과 통합하여, 환자의 건강 추적 및 치료 계획에 도움을 제공
- 스마트 홈과 IoT 통합: 스마트 홈 및 IoT 기기와 통합하여 스마트 홈 시스템의 지능 고도화를 통해, 홈 자동화 및 편의성 증가
- 스마트 팩토리와 센서 기반 안전 시스템과 통합: 제로샷 낙상 감지 기술은 작업자가 기계나 로봇과 함께 작업시 낙상 사고를 감지하고 경고. 센서 기기와 통합하여 더 효과적인 안전 시스템을 구축하는 데 활용
- 데이터 수집 및 학습 비용 감소: 수집하고 학습하지 못한 문제 상황에도 Zero-shot 기반의 일반적인 방법론을 통해 데이터 수집 및 학습 비용 절감이 가능
- 스마트 팩토리 자동화 및 최적화: Zero-shot 감지를 통해 학습되지 않은 불량을 검출하여 제조 자동화 및 최적화에 기여
Rule-based | Zero-Shot |
---|---|
OpenPose 가속도 |
BLIP GroundingDINO Human-Object Interaction(HOI) |
운영체제 : Linux 20.04
GPU : GeForce RTX 3090
개발언어 : Python 3.8
사용 툴 : Linux
AI 라이브러리 : Pytorch 1.8.1
Directory Structure
Abnormal Detection dir
.
|--Abnormal
| |--annotation
| | '--image_caption.json
| |--BLIP
| | |--config
| | | '--med_config.json
| | |--models
| | | |--__init__.py
| | | |--blip.py
| | | |--med.py
| | | '--vit.py
| | |--weights
| | | '--model_base_capfilt_large.pth
| |--GroundingDINO
| | |--groundingdino
| | | |--config
| | | | |--__init__.py
| | | | '--GroundingDINO_SwinT_OGC.py
| | | |--datasets
| | | | |--__init__.py
| | | | '--transforms.py
| | | |--models
| | | | |--GroundingDINO
| | | | | |--backbone
| | | | | | |--__init__.py
| | | | | | |--backbone.py
| | | | | | |--position_encoding.py
| | | | | | '--swin_transformer.py
| | | | | |--scrc
| | | | | | |--cuda_version.cu
| | | | | | '--vision.cpp
| | | | | |--__init__.py
| | | | | |--bertwarper.py
| | | | | |--fuse_modules.py
| | | | | |--groundingdino.py
| | | | | |--ms_deform_attn.py
| | | | | |--transformer.py
| | | | | |--transformer_vanilla.py
| | | | | '--utils.py
| | | | |--__init__.py
| | | | '--registry.py
| | | |--util
| | | | |--__init__.py
| | | | |--box_ops.py
| | | | |--get_tokenlizer.py
| | | | |--inference.py
| | | | |--logger.py
| | | | |--misc.py
| | | | |--slconfig.py
| | | | |--slio.py
| | | | |--time_counter.py
| | | | |--utils.py
| | | | |--visualizer.py
| | | | '--vl_utils.py
| | | '--__init__.py
| | |--weights
| | | '--groundingdino_swint_ogc.pth
| |--abnormal_detection.py
| |--Image_caption.py
| |--json_sort.py
| |--makeVideo.py
| '--video2img.py
'
# 1. 환경 설정(Package 설치)
pip install -r requirements.txt
# 2. BLIP 모델과 GroundingDINO 모델 Download
pretrained model Download
# 3. 이미지 캡셔닝 실행
python Image_caption.py
# 4. json file 정렬
python json_sort.py
# 5. 이상 감지 실행
python abnormal_detection.py