Open GroundDev opened 2 years ago
에 대해 다룬다고 합니다.
목표 : Create an app helping shoppers identify items 이를 위해서 필요한 단계
첫번째 단계인 train을 하는 과정은 Create ML을 이용합니다. 그를 위해서는 너무나도 당연하게도 첫번째로는 우선 사진을 찍어야겠죠? 그런 다음 사진들을 폴더에 넣는데 이때 폴더명은 classification label로 활용됩니다. 그럼 이제 이런 질문이 나올거예요. "얼마나 필요한데?" 이거에 대해서는 최소한 각 카테고리별로 10장은 있어야 한다고 할 수 있긴 하겠지만, 최소한인거죠. 더 많을수록 더 좋고요 실제로 classifier의 퍼포먼스 또한 더 훌륭해집니다. 근데 유의할점이 있어요. 데이터셋의 imbalance가 심하면 안됩니다. 예를 들어서 한 카테고리에는 수천장의 사진이 있는데 다른 쪽에는 막 10장있고 이러면 이 모델은 실제로는 잘 학습되지 않을거예요. 그래서 대부분의 카테고리에서 비슷한 분포를 가지는게 좋습니다.
여기에 이제 augmentation
이 들어갑니다. 이 녀석은 모델을 더 견고하게 만드는데 도움을 주죠. 그러나 이게 다양성을 담보하진 않습니다. 그래서 여전히 분류하고자 하는 객체가 담긴 이미지들이 많이 필요한건 맞는데, 그럼에도 augmentation
을 통해 이미지들을 못살게굴죠! 막 노이즈 넣고 블러하고 회전시키고 뒤집고합니다. 그렇다보니 우리가 훈련시킬 때 classifier는 이것들을 다 다르게 봅니다.
보통 우리는 위와 같이 바다오리들을 바라볼 때, 우선 얼굴을 먼저 본다고 합니다(애플의 모델에 따르면. 애플의 연구에 따르면으로 해석 가능). 이러한 Saliency에는 두 가지 종류가 있습니다. attention based
, 그리고 objectness based
. 위의 이미지를 보게 되면 overlay(히트맵)가 있는 걸 볼 수가 있는데 이러한 녀석은 attention based saliency
로 생성된겁니다.
각각의 saliency가 무엇을 뜻하는지 사진자료를 더 보기 전에, 우선은 알고리즘부터 살펴보죠.
attention based saliency model
은 사람들이 연속의 사진을 보고선 어딜 처음으로 보는지로 생성된다는 걸 뜻한다고 하네요.foreground objects
또는 이미지의 subjects
를 강조할려는 목적을 가지고 하나의 이미지에서의 subject segmentation
에서 훈련됩니다. 위 두 개념의 차이는 이미지를 보면 더 쉽게 이해할 수 있겠네요.
attention based heatmap이 overlay된 이미지
이고, 세 번째 이미지는 objectness based heatmap
입니다.
attention based heatmap
상에서는 상당히 돌출되어(salient) 보이는걸 확인할 수 있겠습니다. attention based saliency
일 경우, 사람의 얼굴 근처의 영역이 돌출(salient)되는 경향이 있습니다.
objectness based saliency
일 경우, 사람이 이미지의 subject일 경우, 그 사람의 전체가 강조되어야 할 것입니다.근데 이제 여기까지 봤으면 대충 왜 그런지는 아실텐데, 둘 중 attention based saliency
가 좀 더 복잡한 saliency입니다.
그러한 attention based saliency
를 결정하는 주요 요소는 다음과 같습니다.
위의 요소들로부터 무엇이 돌출된(salient)건지 그렇지 않은지를 결정하죠.
Vision이라. Vision이라 함은 시야를 의미할텐데. 이게 뭘까요? 아이작으로 부터 우리 ios 개발자들은 WWDC 영상을 많이 참고하는게 좋다는 얘기를 들은 적이 있습니다. 애플에서 긴 시간동안 고심해서 만드는 영상들인 만큼, 정보에 대한 신뢰성도 물론이거니와 이해하기도 좋고 정보집약도가 높은 것으로 보입니다. 그래서 이번에도 Vision이 무엇일까? 라는 질문에 대한 답을 우선 WWDC 영상을 보는 것으로 찾아보기로 하였습니다.