[IN-ISP] Grounding DINO

junhjun·2023년 5월 19일
2

IN-ISP Project

목록 보기
11/16

Grounding DINO(Grounding Discriminator INterpolation)Zero-Shot Object Detection을 수행하기 위한 기술이다.

DINO는 대규모 데이터셋에서 pre-train 된 self-supervised learning 모델이다.

기존의 Object Detection은 학습된 모델을 사용하여 annotated data에 대한 탐지를 수행하지만,
Grounding DINO는 새로운 클래스에 대한 annotated data가 없어도 객체 탐지가 가능하다.

Grounding DINO의 핵심 개념은 객체의 시각적 특징과 클래스 이름 간의 상호 작용인 'grounding'이라고 한다.
이 방법은 pre-trained DINO를 사용하여 새로운 클래스의 객체를 탐지한 후, 탐지된 객체의 시각적 특징과 클래스 이름을 연결하여 상호 작용을 수행하는 것이다.


Zero-Shot은 학습 데이터에 해당 클래스에 대한 레이블이 없는 상태에서 새로운 클래스에 대해 모델이 작동하는 능력을 의미한다.

일반적으로 학습 과정에서 주어진 데이터셋에 대한 레이블을 기반으로 학습되지만,
Zero-Shot은 학습 단계에서 새로운 클래스에 대한 어떠한 예시나 레이블도 제공하지 않고, 이러한 클래스를 인식하거나 처리하는 능력을 개발하는 것을 목표로 한다.


다음 링크는 여러 컴퓨터 비전 모델들을 Colab으로 제공한다. Roboflow Notebooks

그 중, Zero-Shot Object Detection with Grounding DINO 코드를 살펴보았다.

Prompt는 "chair, dog, table, shoe, light bulb, coffee, hat, glasses, car, tail, umbrella" 이며, 다음과 같은 결과를 출력했다.

저러한 일상적인 클래스는 대용량 데이터셋으로 학습이 매우 잘 되었을 것이다.
과연 포트홀은 어떻게 탐지할까.


Zero-Shot Object Detection with Grounding DINO를 이용해 포트홀 탐지를 시도해보았다.

Prompt를 'pothole'로 설정했을 때 가장 좋은 결과가 나왔다.

Language SAM과 비교하자면, 예측 속도는 더 빠른 것 같지만 정밀한 탐지 능력은 떨어지는 것 같다.
그리고, 한 번에 여러 이미지의 예측을 시도하면 종종 런타임 연결이 끊어지기도 했다.


위 Roboflow Notebooks에는 Automated Dataset Annotation and Evaluation with Grounding DINO and SAM 코드 또한 제공하고 있다.

Grounding DINO와 SAM을 활용해 객체를 탐지하고, annotation을 자동으로 해주는 기능이다.
탐지 성능을 확인해보고 이를 활용해 annotated dataset을 구축할 것 같다.

우선, 직접 수집한 포트홀 데이터에 Automated Annotation을 적용해 봐야겠다.

0개의 댓글