SOTA에 방문해서 최신모델들이 어떤것들이 있나 찾아보다가 2024년 1월 31일에 발표된 Yolo-World 모델을 보게 되었다.
텐센트 AI 랩에서 발표한 논문으로, 실시간으로 사용할 수 있는 비전-언어 모델이라고 한다. 이에 대해 살펴보자
(yolo-world 논문)
https://arxiv.org/abs/2401.17270
요약을 보자면
YOLO모델은 실용적인 도구로 자리매김을 했지만, 탐지하고자 하는 개체의 범주를 사전에 한정적으로 정의하여 사용할 수밖에 없기 때문에 제약이 있을 수 밖에 없는점을 보완하기 위해
개방형 시나리오(제한을 두지 않고 탐지하겠다)에서 사용할 수 있는 YOLO-Wolrd를 만들었다고 한다.
YOLO-World는 시각 정보와 언어 정보 간의 상호 작용을 촉진하기 위해 새로운 RepVL-PAN(Pr-parmeteriable Vision-Langeuate Path Aggregation Network)이라는 네트워크를 사용하였고 제로샷 방식으로 효율적으로 탐지가 가능하도록 동작한다고 한다.
성능은 V100 GPU 기준으로 LVIS 데이터세트에서 35.4AP와 52.0FPS(와..,,., fps뭐냐)를 달성했다고 한다.
기존에 발표된 비전-언어 모델등과 비교하여 약 20배 가량 빠르다고 한다. 해당 지표는 NVIDIA GPU V100 그래픽카드에서 Tensorrt 변환한 기준이라고 한다.
모델구조
YOLO-WORLD의 백본은 기존 yolo의 구조를 채택하고 언어모델은 CLIP모델을 채용했다고한다.
RepVL-PAN에 연결하기 위해 텍스트의 피쳐와 이미지 피쳐를 사용하여 영역-텍스트 대비 학습을 통해
YOLO 탐지에서 이미지-텍스트 데이터를 영역-텍스트 쌍으로 통합한다고 한다.
이를 통해서 대규모 어휘 탐에 대해 강력한 기능을 보여준다고 한다.
전통적인 YOLO 탐지기와 비교하여, 오픈 어휘 탐지기인 YOLO-World는 텍스트를 입력으로 사용하고, 텍스트 인코더는 먼저 입력 텍스트를 임베딩으로 인코딩을 한다. 그런 다음 이미지 인코더는 입력 이미지를 다층 이미지 특징으로 인코딩하고, RepVL-PAN은 이미지와 텍스트 특징 모두에 대해 다층 교차 모달 융합을 활용한다. 마지막으로, YOLO-World는 입력 텍스트에 나타난 카테고리 또는 명사와 일치하는 보정된 바운딩 박스와 객체 임베딩을 예측을 실시한다.
기존의 비전-언어 모델과 비교하여 정확성을 유지하면서 FPS측면에서 굉장한 속도를 보여준다.
파인튜닝실험
YOLO-World를 통해 여러 파인튜닝 실험자료들도 있는데 COCO dataset과 LIVS dataset을 가지고 실험한 자료이다.
텍스트 인코더 부분은 BERT모델과 CLIP모델을 비교해서 사용했을 때, 정확성은 CLIP모델이 좀더 높은 성능을 보인다고 한다
Yolo-World를 파인튜닝하였을 때, 기존의 전통적인 YOLO 모델들과 비교한 자료이다.
Real-Time보단 정확성을 추구한다면 YOLO-WORLD를 도입하는게 좋아보인다.
허깅페이스 페이지에서 이미지 업로드를 통해 inference를 사용해 볼 수 있다.
https://huggingface.co/spaces/stevengrove/YOLO-World
https://github.com/AILAB-CVC/YOLO-World
해당 깃허브이며, 설치사항이다/
mm라이브러리와 파이토치를 사용하여 구현한듯하다.
학습과 평가에 대한 코드를 쉘파일로 제공해준다.
'파이썬 이것저것 > 파이썬 딥러닝 관련' 카테고리의 다른 글
[Python] UFO: A UI-Focused Agent for Windows OS Interaction (0) | 2024.02.25 |
---|---|
[Python] Gpt4Free 여러 LLM모델을 무료로 써보기 (1) | 2024.02.25 |
[python] docker stack + nginx를 이용한 grpc inference 서버 구축 (0) | 2023.10.28 |
yolo-nas 학습하기[Python] (3) | 2023.06.07 |
[TensorRT] ValueError: cannot reshape array of size 57603 into shape (360,360) - ValueError 해결 (0) | 2022.10.30 |