인공지능기술의 활용: 자동 캡션 생성

인공지능기술의 활용: 자동 캡션 생성

김영우 0 66
문서 작업을 하실 때 사진과 같은 이미지에 캡션(설명)을 넣어 보신 적이 있으시지요? 아마 있으실 겁니다. 작성하는 문서를 시각 장애가 있는 분들이 읽어야 하는 경우에 이미지 캡션 넣는 것은 중요합니다. 그렇지만 매번 이미지마다 캡션을 넣는 것은 꽤 번거로운 일이지요. 요즘 이처럼 사람이 번거로워하는 일에 인공지능기술을 활용하는 경우가 많습니다. ‘이미지에 캡션 넣기’도 그런 일이지 않을까 싶습니다.

이미지에 캡션을 넣기 위해서는 이미지를 분석해서 이미지에 맞는 텍스트를 만들어야 합니다. 인공지능기술 분야에서 이미지 캡션을 만들 때, 놀랍게도, 기계번역 알고리즘을 응용하고 있습니다. 그래서 이미지 캡션 넣는 것을 이미지를 번역한다고 말하기도 합니다. 한국어를 영어로 번역하듯이 이미지를 사람의 언어로 번역한다고 생각하는 것이지요.

첫 그림의 윗 부분은 기계번역 알고리즘을 도식화한 것입니다. (이미지는 다음 동영상에서 가져왔습니다: https://youtu.be/yfsFW-mfOEY) Encoder 부분에 번역해야 할 문장이 들어가서 기계번역 알고리즘의 엄청난 계산을 통해 context vector라는 숫자값이 만들어집니다. 이후 이 값을 입력으로 하여 Decoder 부분에서 번역 문장이 만들어집니다. 그림의 아래 부분은 이미지에 캡션을 넣는 알고리즘입니다. Encoder 부분만 빼고 기계번역 알고리즘과 같다는 것을 알 수 있습니다. 이미지 캡션 알고리즘에서는 Encoder 부분에 번역할 문장 대신 이미지가 입력으로 들어가고 있습니다. 그리고 CNN이라는 알고리즘에 의해 엄청난 계산 과정을 거친 후 context vector가 만들어지고 있습니다. 이 context vector는 기계번역 알고리즘과 마찬가지로 숫자값입니다. 그러니 Decoder 부분에서 문장을 만드는 것은 컴퓨터 입장에서는 같은 과정이 되는 것입니다.

그렇다면 이미지 캡션 알고리즘에 어떤 비밀이 있기에 이미지에 맞는 캡션 생성이 가능할까 궁금해지지 않을 수 없습니다. 간단하게 말씀드리면 이미지 분석에 많이 쓰는 CNN이라는 알고리즘의 이미지 특성 분석 값(context vector)이 기계번역의 번역할 문장 특성 분석 값(context vector)과 숫자 값으로 유사하기 때문입니다. 즉, A 언어의 어떤 단어나 어구가 B 언어의 어떤 단어나 어구에 매칭될 수 있듯이, A 그림의 어떤 특징이 B 언어의 어떤 단어나 어구에 매칭될 수 있도록 알고리즘이 작동된다고 할 수 있습니다. 결국, 컴퓨터 입장에서 입력된 데이터가 언어이던 이미지이던 상관없이 숫자값이라면 ‘오케이’라는 것이지요.
참고로 CNN 알고리즘은 입력된 이미지를 분석해서 어떤 이미지인지 분류하는 용도로 많이 쓰입니다. 이미지 캡션 알고리즘은 CNN 알고리즘 중에서 마지막 분류 단계를 제외하고 그 앞 부분(이미지의 특성을 분석한 부분)을 사용하는 것입니다.

마이크로소프트 워드에서 ‘대체 텍스트’ 메뉴를 이용할 경우 이미지의 설명이 자동으로 생성되는 것을 보실 수 있습니다. ‘대체 텍스트’ 메뉴는 이미지를 선택한 후 마우스 오른쪽 버튼을 눌러 ‘대체 텍스트 편집’ 메뉴가 나타나면 클릭해서 사용할 수 있습니다. 아니면 그림을 선택한 후 화면 상단 메뉴 영역에 ‘그림형식’ 탭 메뉴가 나타났을 때 리본메뉴에서 ‘대체 텍스트’를 선택하셔도 됩니다.  제 짐작에 이것도 인공지능기술을 적용된 것은 아닐까 싶습니다. 그런데 이미지에 대해 자동 생성된 설명이 그렇게 맘에 들지는 않네요.^^ 한번 해보시지요. 그런데 최근(2020년)에 마이크로소프트는 새로운 서비스로 이미지 캡션 기술을  소개(https://youtu.be/ubpEUksa3v0)하고 있습니다. 마이크로소프트 입장에서 범용 무료 서비스로 제공하기에는 아직 부담스럽지만, 특정 목적에 맞는 이미지 캡션 기술의 제공은 필요하다고 생각하는 것은 아닐까 짐작해봅니다. AI 기술을 잘못 소개했다가 민감한 이슈에 휘말리면 곤란해질 수 있다고 생각하는지도 모르지요. 예전에 마이크로소프트가 대화 자동 생성형 AI 챗봇을 내놨다가 혼이 난 적이 있었거든요. 구글은 자동 캡션 생성 기술이 없을까요? 당연히 있지요. 아마존도 있고요. 다만, 어떻게 상용화할 것인지는 비즈니스 영역이니 경우에 따라 달라질 것 같습니다.

이미지 자동 캡션 기술의 실제가 궁금하시다면 아래 사이트를 참고해보셔도 좋겠습니다. 기술적인 내용이 많아 쉽지 않습니다만.
* 딥러닝으로 이미지 캡션 만들기: https://youtu.be/yfsFW-mfOEY
* IMAGE CAPTION GENERATOR: https://blog.clairvoyantsoft.com/image-caption-generator-535b8e9a66ac

이미지 캡션 기술을 응용해보면 재미있을 것 같다는 생각이 듭니다. 예를 들어, 두 번째 이미지의 경우 자동 생성된 캡션 중 진하게 밑줄 친 단어와 우측 그림의 밝은 부분이 연결되어 있습니다. 즉, 문장의 특정 어구와 그림을 연결시켜 주어 영어 학습에 활용해볼 수 있을 듯 합니다. 영화 자막을 활용한 언어 학습 연구에서 눈동자의 움직임을 따라가는 아이 트랙킹(eye tracking) 툴을 사용하는 것처럼 캡션 텍스트와 이미지를 연결하면 뭔가 재미있는 연구 또는 활동이 될 것도 같습니다.

, ,

0 Comments
Facebook Twitter KakaoStory KakaoTalk NaverBand