# 본 프로젝트는 '2023-2 산업 AI : 캡스톤디자인 수업' 과제로 제출한 프로젝트임을 명시합니다.
( 2023.09.07 ~ 2023.12.21 )
주제
시각장애인을 위한 한국어 시각 정보 질의응답 연구
: 시각 정보와 한국어 언어모델을 활용하여
팀원
이예진
방법
1. 국내 시각장애인의 일상생활 향상에 도움이 될 수 있는 VQA(Visual Questionn Answering) 모델을 만들고자 함
2. 기존 공개된 모델과 데이터들을 리서치, 활용할 수 있는 모델과 데이터를 선정(방법론 및 데이터 적합성 검토)
3. 멀티모달 모델링을 통해 주어진 조건 하에서 기존 모델의 성능을 뛰어넘는지 확인
코드 정리(GitHub)
https://github.com/Rahites/VQA-KoreanBlind
0. 초록
- 최근 멀티모달 기반의 딥러닝 기술들이 발전하면서 사회적 약자들의 생활을 개선할 수 있는 새로운 기술들이 많이 등장하고 있다.
- 특히 VQA(Visual Question Answering) 기술을 활용하여 시각 장애인의 일상생활을 향상시킬 수 있다.
- 하지만 국내에서는 아직 시각 장애인들을 위한 연구가 많이 이루어지지 않았기 때문에 시각 장애인의 시각정보와 한국어 데이터를 활용하여 우리나라 시각장애인들의 삶에 도움을 줄 수 있는 모델을 만들고자 한다.
1. 서론
VQA(Visual Question Answering)란?
: 이미지와 질문을 같이 입력받아 알맞은 정답을 반환하는 멀티모달 태스크
2021년 기준 국내 시각 장애인의 수는 251,620명으로 지체 장애인과 청각 장애인의 뒤를 이어 3번째로 많지만, 국내에서는 아직 시각장애인을 위한 VQA 연구가 많이 이루어지지 않음
따라서 본 연구에서는 시각 장애인의 시각 정보를 더 잘 이해하고 한국어 질의응답이 가능한 VQA 모델을 제안
- 시각 장애인의 시각 정보를 반영하기 위해 흔들림 기법과 Deblurring 기법을 사용
- 한국어 질의응답의 성능을 높이기 위해 KoBERT와 KLUE-RoBERTa 모델을 활용
전체 모델 구조는 METER 모델의 구조를 따름
예시 모델 참고(드라마 <스타트업> 눈길 서비스)
https://youtu.be/Z5dIG3P7gT4?si=s7bS9bI7l6ZSLRAx
2. 제안 방법론
본 연구에서 제안하는 모델의 아키텍처는 <그림 1>과 같다.
- 우선 시각 장애인의 시각 정보를 반영하기 위해 이미지에 흔들림 기법을 적용한 후 모델 학습을 진행한다.
- 둘째로 흔들림 기법이 적용된 이미지를 모델이 잘 학습하기 위해(시각 장애인의 시각정보를 더 잘 학습하기 위해) Image Deblurring을 적용한다.
- 셋째로 한국어 질의응답의 성능을 향상시키기 위해 Text Encoder로 한국어 사전학습 모델인 KoBERT와 KLUE-RoBERTa를 사용한다.
- 이외의 기법은 기존 METER 모델의 방법론을 그대로 활용하였다.
2.1. 흔들림 기법
시각 장애인이 찍은 사진을 분석한 논문들을 살펴보면 시각 장애인이 찍은 사진은 다음과 같은 특징을 지닌다고 한다.
- 물체를 매우 근접하여 촬영
- 물체의 움직임을 따라다니는 도중 촬영되어 흔들림이 존재
- 청각에 의지하여 촬영하여 정확히 물체를 포착하지 못함
대부분의 특징은 일반적인 Data Augmentation을 통해 구현할 수 있지만 흔들림이 존재하는 이미지는 단순 Blur와 다르게 구현이 어렵다.
따라서 본 연구에서는 이미지에 직접 흔들림 기법을 적용하였다.
여러 번의 작은 이동 변환을 랜덤하게 적용한 후 이를 평균내는 방식으로 이미지 가로 크기의 1.5%, 세로 크기의 0.5% 구간 내에서 랜덤하게 이동한 이미지를 100번 뽑아 평균 내어 이미지를 만들고 원본 이미지와 7:3의 비율로 MixUp을 진행하였다. (아래 수식 참고)
2.2. Image Deblurring
흔들림이 적용된 이미지에 대해 모델이 더 잘 학습할 수 있도록 Image Deblurring 기법을 활용하였으며 여기에는 위너 필터(Wiener Filter)를 사용하였다.
Image Deblurring은 이미지에서 발생한 흐림 현상을 제거하는 기법으로 전통적인 컴퓨터 비전과 딥러닝 기법으로 나뉜다. 본 연구에서 활용한 위너 필터는 전통적인 컴퓨터 비전 기법으로, 본래 주파수의 노이즈를 줄이기 위해 등장하였으며 이를 컴퓨터 비전에서 이미지의 노이즈를 감소시키는데에도 사용한다.
좌측부터 각각 (1) 원본 이미지에 흔들림 기법을 적용한 이미지, (2) 흔들림 기법을 적용한 이미지에 DeblurGAN 모델을 적용한 이미지, (3) 흔들림 기법을 적용한 이미지에 위너 필터를 적용한 이미지이다.
위너 필터를 적용한 이미지가 Deblurring을 통해 이미지의 굵은 선을 더 선명하게 복원한 것을 확인할 수 있다. 성능 개선과 더불어 딥러닝 기법보다 계산량이 훨씬 적기 때문에 본 연구에서는 위너 필터를 채택하였다.
2.3. 한국어 Text Encoder
한국어에 특화된 모델을 만들기 위해 사전 학습된 한국어 NLP 모델을 사용하였다.
모델 | 개발 | 학습 데이터 | Tokenizer | Vocab | Params |
KoBERT | SKT | 위키피디아 50M | Sentence-Piece | 8,002 | 92M |
KLUE-RoBERTa | KLUE | 모두의 말뭉치 등 | Morpheme-based | 32,000 | 111M |
두 가지 모델을 Text Encoder로 활용하여 실험을 진행하였다.
3. 실험 및 결과
3.1. Dataset
Pretrain Dataset으로는 COCO Captioning 한국어 번역 데이터, FineTuning Dataset으로는 AI Hub의 시각정보 기반 질의응답과 생활 및 거주환경 기반 VQA 데이터를 사용하였다.
모델링을 하는데 있어 컴퓨팅 파워의 한계가 있어 원본 데이터에서 이미지 수를 줄여 실험을 진행하였다. COCO 데이터는 Train, Test 이미지를 약 30,000, 10,000 장으로 줄였고, AI Hub 데이터는 Train, Validation, Test 이미지를 약 20,000, 4,000, 4,000장으로 줄여 실험에 사용하였다.
3.2. Pretrain
본 연구에서는 기존 모델인 ViLT, METER과의 성능 비교를 진행하였다. 학습 초반 Epoch에서는 기존 모델들의 성능이 높았지만 10 Epoch 이후로는 본 연구에서 제안한 KoBERT와 KLUE-RoBERTa Text Encoder를 활용한 모델의 성능이 더 높은 모습을 보인다.
ViLT | METER | Our Model (KoBERT) |
Our Model (KLUE-RoBERTa) |
|
Metric Score (IR + TR) |
1.0235 | 1.3305 | 1.4917 | 1.4256 |
Image Retrieval Recall : 모델이 생성한 문장이 이미지의 중요한 특징을 잘 파악하고 있는지
Text Retrieval Recall : 모델이 생성한 문장이 정답의 특정 단어나 구절과 일치하는지
3.3. FineTuning
Pretrain을 진행한 모델을 가지고 FineTuning을 진행하였다. 첫번째 데이터(AI Hub 1)는 10 Epoch로 진행하였으나 컴퓨팅 파워의 한계로 두번째 데이터(AI Hub 2)는 5 Epoch로 실험을 진행하였다. 필터 유무 실험은 3 Epoch 정도에서 성능을 비교하였다.
<표 1> FineTuning 성능 비교
ViLT | METER | Our Model (KoBERT) |
Our Model (KLUE-RoBERTa) |
|
AI Hub 1 | 0.3922 | 0.4540 | 0.5059 | 0.5131 |
AI Hub 2 | 0.4934 | 0.5393 | 0.5766 | 0.5664 |
두 가지 데이터를 가지고 FineTuning을 진행한 결과 기존의 모델보다 본 연구에서 실험을 진행한 모델의 성능이 좋은 것을 확인할 수 있다. 처음의 예측으로는 일반적으로 KoBERT보다 성능이 좋다고 알려진 KLUE-RoBERTa를 사용한 모델의 결과가 모두 좋을 것이라고 예상하였으나, 두번째 데이터에서는 KoBERT 모델의 성능이 더 높은 것 또한 알 수 있었다.
본 연구에서 제안한 방법론을 통해 시각 장애인의 시각 정보를 더 잘 학습하고 한국어 VQA 성능을 높일 수 있음을 알 수 있다.
<표 2> AI Hub 1 위너 필터 성능 비교
248 Steps | 406 Steps | 542 Steps | |
w/ Wiener Filter | 0.3271 | 0.4356 | 0.4833 |
w/o Wiener Filter | 0.3221 | 0.4333 | 0.4808 |
위너 필터 사용 유무 실험은 그래프를 확인해 보았을 때 왔다갔다 하는 모습을 보였으나 대체적으로 위너필터를 사용했을 때의 성능이 사용하지 않았을 때의 성능을 능가하는 모습을 보였다. 위의 <표 2>에서 특정 Step 기준으로 비교한 것은 학습 도중에 서버가 다운되어 많은 Epoch를 학습하지 못했기 때문이다. (멀티 모달 모델의 학습에 매우 많은 컴퓨팅 자원이 필요하여 학부 수준에서 이를 잘 학습시키기가 어려웠다..)
물론 더 많은 Epoch를 학습한 후 결과를 봐야겠지만, 적은 Epoch 상에서는 위너 필터를 사용했을 때의 성능이 좋았기 때문에 Image Deblurring의 효과가 존재함을 확인하였다.
4. 결론
본 연구에서는 METER 모델의 구조를 기반으로 시각 장애인의 시각 정보와 한국어 NLP 모델을 활용하여 우리나라 시각 장애인에게 도움이 될 수 있는 VQA 모델을 제안한다. 시각 장애인의 시각 정보를 파악하기 위해 흔들림 기법 적용과 위너 필터를 활용하였고 한국어 NLP 모델로는 KoBERT 와 KLUE-Roberta를 사용하였다. 기존 VQA 모델 보다 좋은 성능을 보였으며 기반이 된 METER 모델보다 평균 9.97%가량 높은 성능을 보였다.
후기
4년의 학부 생활의 마지막을 장식한 캡스톤디자인 수업이 마무리 되었습니다. 수업이 열리기까지, 모델을 돌리기까지 우여곡절이 있었지만 이렇게 잘 마무리된 것이 한편으로는 다행이고 한편으로는 뿌듯한 마음이 듭니다. 우선 한 학기 동안 같이 캡스톤을 진행한 이예진 학우에게 정말 감사함을 표합니다. 처음 접하는 멀티모달 태스크였다보니 어려움도 많았을테고 데이터 전처리를 맡아 귀찮은 일도 많았을텐데 항상 웃으면서 프로젝트를 진행해주어 저 또한 즐겁게 이번 프로젝트 마무리 했던 것 같습니다.
처음 주제 잡는 일부터 쉽지 않았습니다. 멀티모달을 연구해보고 싶었지만 해당 분야를 제대로 공부해본적이 없었고 겨우 연구 방향을 잡은 후에는 기존 논문 그대로 실험 환경을 구축하는 것이 불가능하여 모델링에 있어 많은 어려움을 겪었습니다. 기존 연구들이 A100 8대정도는 기본으로 사용하였기 때문에 학교 서버(A5000)를 사용하는 저희로서는 데이터를 크게 줄여 실험할 수 밖에 없었습니다. 다행히 실험 결과는 제안하는 방법론에 맞게 나와 캡스톤 발표를 잘 마쳤지만 추후 논문화는 현재의 환경에서는 어려울 것 같습니다.
그럼에도 앞으로 발전할 수 있는 방향에 대해 몇 자 적어보자면
1. 다양한 Image Deblurring 기법 활용 및 평가(현재 이에 대한 평가가 진행 x)
2. 흔들림 기법에 대한 레퍼런스를 추가 및 개선(사실 이 부분만 가지고 논문이 나올만한 연구가 가능하다고 생각)
3. 더욱 다양한 한국어 Text Encoder(실험 환경이 갖춰진다면 가능할 부분)
4. 베이스인 METER 모델 기법을 수정(현재는 Encoder만을 개선하였지만 다른 기법들 또한 최신 연구를 반영할 시 성능 개선이 가능)
등 사실 발전시킬 수 있는 방법은 너무나 많지만, 지금 당장 진행하기는 어려울 것 같습니다. 그래도 사회에 공헌할 수 있는 인공지능 기술을 개발하고자 하는 마음은 변함없기 때문에 멀티모달 모델을 다뤄본 이번 경험이 추후에 진행 할 프로젝트에 있어 많은 도움이 될 것입니다.
벌써 2023년이 마무리 되었습니다. 내년에는 더 발전하는 감자가 되도록 하겠습니다. 한 학기 같이 고생해준 예진 학우에게 다시 한번 고마움을 표하며 이번 캡스톤 디자인을 마무리 하고자 합니다. 감사합니다😊
'프로젝트' 카테고리의 다른 글
[프로젝트] CivitAI Safetensors를 활용하여 생성 이미지를 만들어보자 (8) | 2024.09.28 |
---|---|
[프로젝트] 한국 농인을 위한 수어 통역 시스템 구축 (0) | 2023.12.04 |
[프로젝트] 내가 이모티콘이 된다면 (0) | 2023.02.04 |
댓글