
출처: 페이스북 리서치 블로그
오늘 페이스북이 리서치 블로그를 통해 이미지에서 오브젝트를 구별하는 프레임워크인 딥마스크(DeepMask)와 샵마스크(SharpMask), 그리고 멀티패스넷(MultiPathNet)을 공개하였습니다. 페이스북에 얀 리쿤(Yann LeCun) 박사가 있는 것으로도 짐작할 수 있지만 콘볼루션을 사용하는 이미지 인식 부분에서는 많은 성과를 가지고 있습니다. 그동안 공개되었던 자료 중에 얀 리쿤 박사가 직접 시연한 이미지 인식에 대한 데모도 있었고 얼마전에는 시각장애자를 위해 이미지를 읽어주는 데모를 공개하기도 하였습니다. 오늘 발표는 그간 발표한 페이퍼와 데모들의 뒤에 있는 기술을 설명하고 토치(Torch)로 된 소스를 공개한 것입니다.
관련된 페이퍼를 읽어보진 못했지만 블로그의 내용을 바탕으로 정리했습니다. 한줄 요약하면 딥마스크와 샵마스크로 이미지 안의 오브젝트를 구분해 내고 멀티패스넷으로 오브젝트의 타입을 가려낸다고 합니다.
딥마스크는 피드 포워드(feed forward) 네트워크로 이미지를 스캔하면서(아마도 콘볼루션으로) 오브젝트가 담겨있는지 또 오브젝트가 스캔 영역의 중앙에 위치하는 지를 찾습니다. 콘볼루션의 특성상 딥마스크의 하위 레이어에서 상위 레이어로 갈 수록 오브젝트들의 세부적인 차이에는 둔감해 지지만 정확한 경계를 잡아내는 데는 어려움이 있습니다. 샵마스크는 딥마스크의 이런 단점을 보완하기 위해 딥마스크에서 만들어낸 하위 레이어의 특성맵을 다시 들여다 보는 과정을 가집니다. 하나의 네트워크에서 생성된 결과물을 재사용하므로 이런 방식은 효율적입니다.
물론 딥마스크나 샵마스크는 구분해 낸 이미지가 무엇인지 모릅니다. 이런 역할을 하는 것은 멀티패스넷으로 RCNN(Region-CNN)의 두번째 스텝에 해당하며 오브젝트의 스케일이나 차이를 구분해 내도록 개선하였습니다. RCNN의 첫번째 스텝, 즉 이미지를 찾아내는 것은 앞서 말한 딥마스크와 샵마스크가 담당하게 됩니다. 전체 세단계를 요약하면 딥마스크로 오브젝트를 찾아내고 샵마스크로 경계를 특정한 후 멀티패스넷으로 어떤 오브젝트인지 알아내게 됩니다.

출처: 페이스북 리서치 블로그
아직 이 기술은 완벽하지는 않습니다. 하지만 꽤 뛰어난 성능을 발휘하고 있으며 페이스북에서 시각장애자에게 친구들의 사진의 내용을 읽어주는 것을 구현시킬 수 있을 것입니다. 또한 가상현실을 포함한 다양한 어플리케이션에서 응용될 수 있습니다. 실제로 동영상에서 이미지를 구분해 내는 데모를 만들었습니다. 페이스북은 앞으로도 계속 기술을 발전시키고 커뮤니티에 공개하겠습니다!
딥마스크와 샵마스크의 토치 구현은 여기에서 확인하실 수 있으며 멀티패스넷의 토치 구현은 여기에서 보실 수 있습니다. 딥마스크의 페이퍼와 샵마스크의 페이퍼, 멀티패스넷의 페이퍼도 보실 수 있습니다.
fastText도 그렇지만 페이스북이 ML 커뮤니티를 위해 크게 손을 흔드는 것 같네요. 다양성이 존재하는 것은 언제든지 바람직합니다. 토치 버전이 공개되었으니 텐서플로우로 된 구현도 나오길 기대합니다.
(업데이트) 샵마스크의 데모가 공개되어 있습니다. 이 페이지에서 동그란 원들에 마우스를 호버하면 샵마스크가 이미지에서 찾은 오브젝트를 구분하여 확인할 수 있습니다.