구글의 자동영상사물인식 특허와 클라우드 비디오 인텔리전스 API를 통해 영상 및 사물인식의 발전 방향에 대해 살펴보기로 한다.
자동영상사물인식 특허
구글은 2014년 7월 29일에 ‘자동영상사물인식(Automatic Large Scale Video Object Recognition, 8,792,732, 29 Jul 2014)’이라는 특허를 미국 특허청에 등록했는데, 이는 2012년 8월 28일에 등록한 특허를 개량한 것이며, 청구 항을 43개에서 20개로 줄인 것이다.
영화나 드라마를 보다가 마음에 드는 옷을 발견한 적이 있는 사람이라면 알 것이다. 영상에 등장한 소품이 뭔지 알려주는 기술을 개발하는 일이 얼마나 필요한 일인지를 말이다. 영상을 친구에게 보여주며 이 옷에 대해 아느냐고 묻기도 하고, 더러는 영상에 등장한 소품을 글로 설명해 인터넷 지식창고에 묻기도 한다. 앞으로 얼마나 더 기다리면 영상에서 사물에 대한 정보를 받아볼 수 있는 기술을 이용할 수 있을까? 어쩌면 그리 머지않은 미래에 가능할지도 모르겠다.
구글이 등록한 특허는 영상에 등장한 사물을 분석해 어떤 사물인지 알려주는 특허다. 특허 이름은 ‘자동영상사물인식’이다. 구글은 특허의 핵심 개념이 ‘특징 벡터(The Feature Vectors)’라는 설명도 빼놓지 않았다. 벡터 기술은 사물이 가진 다양한 특징을 종합해 영상속 사물이 뭔지 파악하는 기술이다. 색깔이나 움직임, 모양 등이 모두 포함된다. 포괄적인 특징을 한데 엮어 사물을 정의하는 기술이라고 생각하면 이해하기 쉽다.
고양이가 나온 동영상에서 구글의 특징 벡터 기술은 고양이의 귀의 특징을 잡아낼 수 있다. 고양이의 움직임이나 체구, 무늬 등을 파악해 영상에 등장한 사물이 ‘고양이’라고 정의할 수도 있다. 자동차나 사람도 마찬가지다. 네 바퀴가 달린 매끈한 검은색 사물을 자동차로 인식하거나, 두 발로 서 있는 형태를 보고 사람이라고 판단을 내리는 식이다. 사물이 가진 특징을 뽑아내는 것은 특징 벡터 기술이지만, 이 정보를 기초로 최종 판단을 내려주는 것은 서버의 몫이다.
특징 벡터 기술은 스스로 고양이를 고양이라고 판단해주지 못한다. 고양이의 특징을 서버에 저장된 정보와 매칭시켜야 비로소 고양이라고 분석할 수 있다는 얘기다. 클라우드 서버에 있는 막대한 양의 정보가 사람의 뇌 역할을 하고, 동영상이나 사진이 눈 역할을 하는 셈이다. 영상에 등장한 사물 정보를 알려주면, 사물을 검색하거나 구매를 유도하는 방향으로 사용자를 이끌 수 있다. 구글의 ‘자동 사물 영상인식’ 기술은 사용자가 영상과 관계 있는 다른 행위를 하도록 돕는 역할을 한다.
〈그림 1〉은 사물인식시스템의 블록 다이어그램으로, 딥 러닝에서의 비지도학습(자율학습)과 비디오들이나 사진들 - 이것을 특허에서는 ‘비주얼 콘텐츠 아이템들(Visual Content Items)’이라 표현하고 있음 - 속에 있는 사물들을 인식하도록 해준다. 100은 사물인식시스템으로 비디오나 이미지의 컬렉션(수집)으로 구성되고, 더 나아가 몇 개의 모듈들로 구성되어 서로 다른 사물들의 특성들(Characteristics)을 학습해 분석하고, 학습한 특성들을 바탕으로 사물들을 인식하게 된다.
170은 사용자 디바이스로 180의 네트워크를 통해 100의 사물인식시스템과 커뮤니케이션 하는데, 예를 들어 비주얼 콘텐츠를 제출하고 특정 사물의 비주얼 콘텐츠 디스플레이를 요청하게 된다. 전통적인 웹 브라우저를 사용할 수도 있다. 105는 사물 이름 저장인데, 예를 들면 ‘고양이’, ‘자전거’, ‘빌 클린턴’, ‘자동차’, 남아프리카 펭귄(Penguin)’, ‘수영장’ 등 리얼 세계의 사물 이름들이다. 이름은 다양한 다국적 언어로 저장된다.
110은 비주얼 콘텐츠 저장인데, 사물 이름에 해당되는 비디오나 사진들이다. 예들 들어 Google Video나 You Tube에 등장하는 비디오 혹은 사진을 사용자가 제출하거나 요청한 경우를 비롯하여, 사용자가 직접 찍은 사진이나 영상도 포함된다. 115는 사물 특징 저장인데, 비주얼 특징들이다. 비주얼 특징들은 특징 벡터를 나타내는데, 각각의 특징 벡터들은 사물의 속성이나 포션 등의 일련의 가치들을 나타낸다. 예들 들어 칼러 분포와 집중도, 광도(Luminosity), 에지(Edge), 광학 흐름(Optical Flow), 모션 등이다.
120은 인식 저장으로, 분석되고 매칭된 확률 스코어를 저장한다. 130은 분석모듈, 140은 비주얼 콘텐츠 서버, 145는 사물 요청 모듈이고, 150은 사용자 인터페이스 서버다.
〈그림 2〉는 비지도학습(자율학습)으로 사물을 알아내는 130의 분석모듈을 수행하는 이미지 프로세싱의 그림이다. 우선, 사물의 이름을 알아낸다. 사물의 이름은 다양한 언어로 표시된다. 그 다음 210에서 사물 이름과 관련된 비주얼 콘텐츠를 연상시킨다. 이는 Query 방식이다.
215에서는 사물들을 세그먼트로 나누고, 220에서는 사물의 특징들을 추출한다. 크기를 줄이고 특징 벡터 데이터의 품질을 높이기 위해 130의 분석 모듈은 225를 수행하는데, 선택된 차원축소(Dimensionality Reduction: DR) 알고리즘에 따라 차원축소를 수차례(A Number of Rounds) 수행한다. 물론 다양한 다른 알고리즘을 사용할 수도 있다. 이런 방식으로 230에서 지속적인 학습(Consistency Learning: CL)을 수행하게 된다.
〈그림 3A〉는 4개의 사물 이름들을 위한 특징 벡터를 묘사하고 있는데, ‘박쥐’, ‘고양이’, ‘개’, ‘펭귄’들이 첫째 스테이지 DR0에서 차원축소가 수행되지 않은 오리지널로 추출한 특징 벡터들이다. 예를 들어 ‘고양이’는 DR0에서 O1, O4, O5, O6 특징 벡터를 갖고 있는데, 이는 4개의 비주얼 특징 혹은 특징 영역을 나타낸다. 그리고 차원축소 1라운드(DR1)에서 O6가 차원축소로 제거되었고 O4는 O4′로 수정된 특징 벡터로 대체됐다.
〈그림 3B〉의 DR1은 〈그림 3A〉에서 차원축소를 1라운드 돌린(DR1) 결과이고 지속적인 학습(CL1)을 한 결과다. 따라서 ‘고양이’에서 DR0의 4개의 특징 벡터들이 CL1에서 2개로 줄었는데, O1, O6가 제거됐고 O4는 O4′의 수정된 특징 벡터로 대체됐다.
〈그림 4〉는 분류 모델 특징들에 도달한 최종 특징 벡터들과 차원축소를 돌린 횟수를 보여주고 있는데, O2는 O2′ → O2˝의 수정 벡터로 대체됐다. 그리고 최종 특징 벡터들은 115의 사물특징에 저장된다.
〈그림 5〉는 120의 인식 저장의 개념적 구조를 설명하는 것이다. 설명된 두 개의 비디오들인 V1과 V2에서 각 사물의 이름은 확률과 연관되어 있다. V1에서 ‘박쥐’의 이미지를 포함하는 확률은 60%이고, V2에서 ‘펭귄’은 81%다. 확률 값은 관련 특징 벡터들 사이에서의 매칭으로부터 도출한 것이다. 이것은 설명하기 위한 기술로, 4개의 이름만을 들은 예다. 그러나 실제 비디오에서 박쥐-고양이-개-펭귄이 동시에 등장할 확률은 적다. 따라서 95%의 이상으로 사물을 인지할 수 있다. 또한 다른 알고리즘을 융합하면 확률 값 즉, 한계 값(Threshold Value)을 높이면 확률 값을 95% 이상으로 높일 수도 있다.
따라서 본 구글의 특허와 구글의 행보를 바탕으로 검색의 진화 방향을 예측해보면 (1) 1세대는 텍스트, (2) 2세대는 이미지, (3) 3세대는 음성 검색, (4) 4세대는 동영상 속의 사물과 인물(2017), (5) 5세대는 촉감(질감), 향기와 냄새와 맛(2020), (6) 6세대는 사람의 감정(2025), (7) 7세대는 사람의 생각/마음(2030)으로 진화할 것으로 보인다.
구글, 영상 속 사물까지 찾아준다
클라우드 비디오 인텔리전스 API 공개
영상에 등장하는 사물까지 인식한 뒤 검색 결과로 보여주는 API가 개발됐다. 구글은 2017년 3월 8일~10일 샌프란시스코에서 열린 ‘클라우드 넥스트 17(Google Cloud Next 17)’에서 새로운 클라우드 비디오 인텔리전스 API(Google Cloud Video Intelligence API)(now in Private Beta)를 공개하고 데모버전을 시연했다.
따라서 이를 유튜브에 적용하면 영상내용 10억 개의 검색이 가능하다. 앞서 소개한 ‘자동영상사물인식’이라는 특허를 2012년에 등록한지 꼭 5년 만에 이를 비디오에 실제로 적용한 것이다. 따라서 구글의 텐서플로와 클라우드 머신 러닝 엔진을 이용해 고객들은 이미 발표된 ▲클라우드 비전 API, ▲클라우드 스피치 API, ▲클라우드 잡스 API, ▲클라우드 번역 API, ▲클라우드 자연언어 API에 이어 ▲클라우드 인텔리전스 API를 이용하게 됐다.
고객들은 데모 사이트에서 자신의 동영상이나 구글이 제공하는 콘텐츠를 시험해볼 수 있다. 개발자들은 해당 API의 클로즈베타(CBT) 버전에 접근할 수 있다. 구글은 머신러닝이나 컴퓨터 비전에 대한 배경지식이 없어도 API가 제공하는 비디오 검색 기능의 이점을 누릴 수 있다고 설명했다.
구글의 클라우드 인공지능과 기계학습을 담당하는 수석 과학자인 페이-페이 리(Fei-Fei Li, Chief Scientist, Google Cloud AI and Machine Learning)는 블로그 포스트를 통해 “해당 API는 자사 미디어 콘텐츠를 업로드하거나 혹은 고객들이 만든 콘텐츠를 쉽게 찾길 원하는 거대 미디어 조직, 소비자들을 상대로 한 기술 회사를 위한 것”이라고 밝혔다.
이제까지는 사진이나 그림 등 정지된 자료의 물체만을 구분하던 인공지능이 이제는 동영상까지 이해하기 시작했다. 영상을 보면서 개인지 고양이인지, 심지어는 이것이 스포츠경기인지 광고인지까지 구분해낸다.
데모사이트에서 구글포토가 제공하는 동물원의 동물이라는 영상을 검색해보았다. 검색은 라벨(Labels)과 샷(Shots), 그리고 API로 검색할 수 있는데, 라벨이란 1분 38초의 전체 영상의 맥락을 분석하는 것이고, 샷은 등장하는 이미지를 분석하는 것이다. 우선 라벨로 검색(분석)해보니 29초가 지나자, Animal=99%, Wildlife(야생동물)=94%, Zoo=91%, Terrestrial animal(육상동물)=54%, Nature=51%, Tourism=47%, Tourist destination=43%로 인식해 사람들이 여행가는 동물원에 있는 동물이라는 맥락을 잡아냈다.
이번에는 전체 영상에 등장하는 48개의 샷 중 15번째의 호랑이 샷을 누르자, Animal=98%, Wildlife=92%, Tiger=90%, Terrestrial animal=68%, Bengal=65%, Whiskers(수염)=63%로 거의 정확히 분석했다. 이번엔 API를 누르자 관련 API 요청과 요청에 반응하고 처리한 API가 나타났다.
이날 페이-페이 리(Fei-Fei Li)는 컨퍼런스 무대에 올라 구글에서 현재 진행 중인 차세대 인공지능에 대해 자세히 소개하며 자율주행 자동차와 의료분야 등에서의 커다란 혁신을 예고했다. 스냅챗의 필터링(얼굴을 인식하는 사진 효과 서비스)과 구글의 포토검색기능에도 상당한 발전을 가져올 것으로 보인다.
구글이 시연한 또 다른 영상에서는 검색어 ‘해변’을 입력했더니, 인공지능이 해변의 풍경이 고스란히 담긴 영상을 찾아다 주었다. 구글 포토에서 ‘일몰’이라고 검색했을 때, 이와 유사한 사진을 보여주는 것과 비슷하다. 지금까지는 사람이 직접 태그를 달지 않고서는 인공지능이 동영상 콘텐츠를 이해할 수 없었다.
페이-페이 리는 “우리는 디지털이라는 우주에서의 암흑 물질(아직 인간이 밝혀내지 못한 우주를 구성하는 23%의 물질)에 빛을 비추기 시작했다”고 말했다. 이번 테스트 성공에 커다란 자부심을 드러낸 것이다. 실제로 구글이 선보인 영상은 놀라운 수준이었다. 현장의 반응도 매우 뜨거웠다. 구글은 다른 기계학습 API와 마찬가지로 이번 비디오 인텔리전스 API도 개발자들에게 오픈소스로 제공한다.
이날 구글의 클라우드 사업부 선임 부사장을 맡고 있는 다이앤 그린(Diane Greene)은 물론, CEO인 순다 피차이(Sundar Pichai)와 구글의 지주회사 알파벳 회장인 에릭 슈밋(Eric Schmidt)도 참석해 오프닝 키노트 연설을 했다.
<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>