PaliGemma는 이미지와 텍스트를 동시에 입력받아 텍스트를 생성하는 경량의 비전-언어 모델(VLM)입니다. 이 모델은 PaLI-3에서 영감을 받아 SigLIP 비전 모델과 Gemma 언어 모델과 같은 오픈 소스 구성 요소를 기반으로 구축되었습니다.

Synced | AI Technology & Industry Review+6Home- Google Developers Blog+6캐글+6

PaliGemma의 아키텍처는 이미지 인코더와 텍스트 디코더로 구성되어 있습니다. 이미지 인코더는 SigLIP 모델을 활용하며, 텍스트 디코더는 Gemma 2B 모델을 기반으로 합니다. 이러한 결합을 통해 이미지와 텍스트 입력을 처리하여 다양한 비전-언어 과제에서 우수한 성능을 발휘합니다.

Home- Google Developers BlogHome- Google Developers Blog+1Medium+1Synced | AI Technology & Industry Review+1Medium+1

PaliGemma는 이미지 캡션 생성, 시각적 질문 응답, 객체 탐지 및 세분화 등 다양한 작업에 적용될 수 있습니다. 또한, 다국어를 지원하여 글로벌한 활용이 가능합니다.

허깅페이스

최근에는 PaliGemma 2라는 업데이트 버전이 출시되어, Gemma 2 모델의 기능을 통합하고 다양한 비전-언어 작업에서 최첨단 성능을 달성하고 있습니다.

캐글+2허깅페이스+2허깅페이스+2

 

 

PJMA 모델 학습, 평가, 배포 과정 정리

PJMA 모델을 학습시키고 평가한 후 배포까지 진행하면서 얻은 결과들을 정리해본다.


📌 모델 학습 과정

모델은 총 64 스텝 동안 학습을 진행했다. 학습이 진행될수록 **학습률(Learning Rate)**과 **손실값(Loss)**이 변하는데, 이를 통해 모델이 점점 더 최적화되고 있는지를 확인할 수 있다.

특히, 8 스텝마다 검증 데이터셋에 대한 예측 결과를 출력하는데, 이 과정을 통해 학습이 제대로 이루어지고 있는지를 직관적으로 파악할 수 있었다.

초기에는 예측 결과가 엉망이었다.

  • 감지해야 할 객체 수가 너무 많거나 너무 적은 경우가 발생했고,
  • 클래스가 잘못 감지되거나,
  • 객체를 구분하는 기호(예: 세미콜론 ;)가 빠지는 등의 오류가 있었다.

그러나 스텝이 증가하면서 모델이 점점 더 안정적인 예측을 수행하기 시작했고, 64 스텝이 끝났을 때는 거의 정답(Annotation)과 일치하는 수준으로 결과가 나왔다.

학습 시간은 T4 GPU 기준으로 몇 분 정도 소요되었으며, 하드웨어 성능이나 데이터셋 크기에 따라 달라질 수 있다.


📊 모델 평가 결과

학습이 완료된 후 검증 데이터셋에서 16개의 샘플을 테스트했다.

✅ 예측 정확도는 꽤 높았고, 단 한 번만 오답(5를 8로 잘못 인식)이 발생했다.
✅ **평균 정밀도(mAP)**는 0.9로, 높은 수준의 성능을 보였다.
✅ **혼동 행렬(Confusion Matrix)**을 확인해 본 결과, 대부분의 예측 값이 대각선에 위치하여 정확한 분류가 이루어졌음을 확인할 수 있었다.


🚀 모델 배포 및 테스트

학습된 모델을 저장한 후, 배포를 진행했다.

  1. 모델을 로컬 하드 드라이브에 저장
  2. Roboflow Universe에 업로드
    • 업로드 시 Polyma 3EB PT 224 타입을 선택
    • 완료되면 모델이 API를 통해 배포 가능한 상태가 됨

이후 Gradio 앱을 활용한 테스트를 진행했다.

  • 직접 손으로 숫자를 적고 사진을 업로드하여 모델이 이를 인식하는지 확인
  • 결과: 모든 숫자를 정확하게 감지

추가로, "개(dog)"를 감지할 수 있는지도 확인해 보았는데, 기존 학습 데이터셋에 포함되어 있었기 때문에 여전히 인식이 가능했다.
이는 PJMA 모델이 기존 CNN 기반 감지 모델과 달리, 새로운 데이터셋으로 미세 조정(Fine-Tuning)하더라도 기존의 객체 감지 능력을 유지할 수 있다는 점을 보여준다.


❗ 한계점 & 해결해야 할 문제

테스트 중 몇 가지 문제점도 발견되었다.

예를 들어, 단순한 숫자 감지는 잘 수행했지만, "5 + 3 = ?" 같은 수식 이미지는 제대로 인식하지 못했다.
이유를 분석해 보면,

  • 원래 학습 데이터셋에는 여러 개의 기호나 숫자가 동시에 있는 경우가 없었음
  • **데이터 증강(Data Augmentation)**을 활용하지 않았음

이런 요소들 때문에 모델이 복잡한 수식을 감지하는 데 어려움을 겪은 것으로 보인다.


📢 추가 실험과 발견

처음에는 숫자 인식이 아닌 다른 데이터셋(예: 포커 카드 데이터셋)을 사용해 보았으나, mAP가 0.25 이상 올라가지 않는 문제가 발생했다.

이유를 분석해 보면,
1️⃣ 이미지에 포함된 객체 수가 너무 많아 모델이 한꺼번에 너무 많은 바운딩 박스를 예측해야 했음.
2️⃣ 모델이 바운딩 박스를 특정한 순서로 예측해야 하는데, 순서가 다르면 오답으로 처리되었을 가능성.
3️⃣ Attention Layer만 미세 조정(Fine-Tuning)하는 것으로는 부족했을 수도 있음.
4️⃣ 모델이 너무 작아서 더 큰 모델을 학습해야 할 필요가 있음.

이 문제를 해결하기 위해서는 데이터셋을 정리하거나, 학습 방식을 조정할 필요가 있다.


🎯 결론 & 앞으로의 방향

PJMA 모델을 자동 데이터 라벨링에도 사용할 수 있을까?

테스트해 본 결과, 제로샷(Zero-Shot) 성능이 뛰어나지는 않았다.
예를 들어, 차량 감지 데이터셋에서는 mAP가 0점으로 나왔는데, 이는 사전 학습 데이터에 차량 관련 정보가 없었기 때문으로 보인다.

하지만,
✅ 트위터 게시글 이미지
✅ 열화상 강아지 데이터
✅ 안전 헬멧 감지
✅ 동전 감지

같은 특정 데이터셋에서는 50% 이상의 mAP를 기록하며 어느 정도 성능을 보였다.
즉, PJMA는 반드시 **미세 조정(Fine-Tuning)**이 필요한 모델이라는 점을 다시 한 번 확인할 수 있었다.

'AI > Computer Vision' 카테고리의 다른 글

numpy clip  (0) 2025.04.06
torch.cat  (0) 2025.04.06
체류 시간 분석  (0) 2025.03.24
YOLO-World: Real-Time, Zero-Shot Objeddt Detecdtion Explained  (0) 2025.03.24

+ Recent posts