brunch

You can make anything
by writing

C.S.Lewis

by 금빛나무 Mar 16. 2020

아마존고 매장의 AI는 어떻게 동작하는가?

라이언 그로스 글 번역 및 편집수정


라이언 그로스 

https://towardsdatascience.com/how-the-amazon-go-store-works-a-deep-dive-3fde9d9939e9


시스템은 어떤 사람이 어떤 물건을 집었는지 알기 위해 사용자와 물건을 매칭해야 한다. 여기서 카메라가 사용된다. 카메라는 구매자가 가게에 들어왔을 때, 진열대에서 물건을 꺼낼 때, 물건을 손에 쥘 때 등 이용자의 움직임을 모두 찍는다. 얼굴 인식을 인식하고 구매자의 키, 몸무게, 생체 정보, 이름, 구매 내역 등을 파악한다.


저는 시카고에 살고 있습니다. 4 개의 아마존 고 (Amazon Go) 매장, 간단하게 걸어 가서 원하는 것을 가지고 걸어 나오는 미래형 편의점이 있습니다. 몇 분 안에 귀하가 가져간 모든 것에 대한 정확한 영수증을 받으실 수 있다.


그것은 실제로 마술처럼 느껴지지만 실제로는 많은 머신 러닝 혁신으로 개념증명시험(POC)를 수행하는 데 3 년이 걸렸고 아마존고 매장을 만드는 데 3 년이 걸렸다.


이 놀라운 업적에 대한 놀라움을 공유 할 수 있도록 그들이 공유 한 "그냥 나가세요(Just Walk Out)" 내용을 중심으로 사용자 경험을 제공하는 데 필요한 방대한 기술 혁신에 관하여 심층 분석 했다.


플랫폼 아키텍처



컴퓨터 비전 코어 기술  "그냥 나가십시오"

Go Store의 핵심은 매장에있는 모든 사람의 의도를 완벽하게 추적하고 추정하는 데 사용되는 컴퓨터 비전 기반 기계 학습이다. 아마존은 이 기술의 구현에 대해 놀라운 수준의 세부 정보를 얻는다. 모델에 대한 정확한 신경망 모델 구조를 보여주지 않았지만 개별 모델이 해결하는 특정 문제와 전체 솔루션을 구축하기 위해 결합하는 방법을 보여준다.            




이 섹션은 수석 과학자이자 전 USC Computer Vision 교수 인 Gerard Medioni 박사 가 발표했습니다 .

그는 훌륭한 연구자 일뿐만 아니라 훌륭한 연사이기도 하다. 그는 몇 초 만에 강렬한 주제를 다루어 Go Store의 근본적인 질문에 대답했다. 누가 무엇을 가져 갔습니까?



Medioni 박사에 따르면, Go 스토어는 컴퓨터과학에서 알고리즘 문제는 컴퓨터비전의 완성에 대한 문제다.

이 최상위 수준의 문제 내에 경험을 제공하기 위해 해결해야 할 6 가지 핵심주제가 있다.


1.퓨전 센서 : 여러 센서 또는 카메라를 통한 비전기술을 사용하여 신호를 집계합니다.

2.교정 : 각 카메라의 매장 내 위치를 매우 정확하게 파악하도록 교정한다.

3.개인 감지 : 상점에서 각 개인을 지속적으로 식별하고 추적한다.

4.객체 인식 : 각각의 객체를 항목으로 구별한다.

5.포즈 추정 : 선반 근처의 각 사람이 팔로 정확히 무엇을하고 있는지 감지한다.

6.활동 분석 : 사람이 물건을 수령했는지 반품했는지 여부를 결정한다.


Just Walk Out 기술의 세부 아키텍처에는 다음 구성 요소가 포함됩니다.



개인 식별

위치식별기 :“누가 무엇을 가져갔는가?”라는 질문은 물건 잡고 선택하는 문제를 해결할 수 없었다.

아마존은 상점에 사람들이 들어가는 순간부터 나오는 모든시간을 추적해야 했다.

위치식별기 구성 요소로 해결해야하는 몇 가지 어려운 문제점은 다음과 같다.  

상점의 어떤 물건으로 사람을 보지 못하게 되어 그림자 등으로 보이지 않게 되는 현상
사람들이 서로 매우 가까이있어 얽힌 상태

이러한 문제를 해결하기 위해 Amazon은 RGB 비디오 및 거리 계산을 모두 수행하는 맞춤형 카메라 하드웨어를 사용한다.


여기에서 이미지를 픽셀로 분할하고 픽셀을 형상으로 그룹화하고 각 형상을 각각 다른 사람으로 레이블을 지정한다.  마지막으로 여러 카메라에서 각 사람들의 삼각 측량을 사용하여 프레임에서 위치 맵을 작성한다.


정보 연동 : 다음 작업은 매장 위치에서 고객 추적으로 이동하면서 비디오의 여러 프레임에서도 구별된 레이블을 유지하는 것으로 이 단계는 다음과 같습니다.


모호한 상태 식별 : 두 사람이 서로 아주 가까이 있으면 누구에 대한 신뢰가 떨어진다. Go Store 기술은 시간이 지남에 따라 신뢰도가 낮은 고객을 다시 식별 할 수 있도록 이러한 고객을 표시하여 처리한다.



https://youtu.be/KnTGFWthufc


고객과 다른 행동을 수행하는 구별 직원


품목 식별

제품 ID 감지 : 여기에 답변해야 할 주요 질문은 특정 품목이 진열대 및 다른 사람의 손에 있습니다.

이 단계에서 직면 한 문제와 해결책 중 일부는 다음과 같습니다.  

합성곱신경망 계층(CNN Layer)이 항목 클래스를 식별 한 후 동일한 브랜드의 음료의 2 가지 맛과 같이 매우 유사한 항목은 정제 된 제품 인식 (여러 프레임에 걸쳐 추측)을 수행하는 잔류 신경망을 사용하여 구별되었습니다.

조명과 변형은 아이템을 변경하며, 이러한 특정 과제에 대한 많은 훈련  데이터세트 생성을 사용하여 해결되었습니다.


고객정보 결합

아마도 가장 어려운 문제는 위의 단계에서 얻은 모든 정보를 결합하여 "누가 무엇을 했는가?"라는 질문에 최종적으로 대답하는 것입니다.

아마도 가장 어려운 문제는 위의 단계에서 얻은 모든 정보를 결합하여 "누가 무엇을 했는가?"라는 질문에 최종적으로 대답하는 것입니다.  “누가 무엇을 가져갔는가?”는 고객분석모델에서 결정됩니다.

                    

https://www.youtube.com/watch?v=9LTHGgYBs8U&feature=youtu.be


포즈 추정 : 위치 추적 카메라는 위에서 아래로 보이므로 입체적 형태가 아닌 평면적으로 보인다.

따라서 물건과 고객 사이의 팔을 나타내는 이미지 픽셀을 통해 경로를 추적해야 한다.

이처럼 위에서 내려다 보는 모델은 이 문제를 해결하기에 충분하지 않았으므로 개발팀은 비디오에서 고객에 대하여 형체를 추출해서 막대사람모형(stick-figure like model)을 만들어 해결하고자 했다.         




비디오에서 각 고객의 관절 모델을 만들려면 새로운 딥 러닝 모델이 필요했다.

교차 엔트로피 손실 함수 가있는 (CNN: Convolution Neural Network) 을 사용하여 관절 감지 포인트 클라우드, 벡터 생성을 위한 자체 회귀 및 벡터를 그룹화하며, 쌍으로 회귀하여 벡터들을 그룹화 한다.

( It uses a CNN with a cross entropy  loss function to build the joint detection point cloud, self regression for vector generation, and pairwise regression to group the vectors together. )


이 모델은 그 자체로 매우 흥미 롭습니다.  이것은 비디오 클립들의 이미지속 포즈 추정을 통해  많은 문제를 해결하는 데 도움이 되도록  사용할 수 있음을 보여주었습니다


행위 결정 :  고객이 가져 가지 않은 물품에 대해 요금을 청구하지 않으려면 시스템은 고객이 물품을 선반에 다시 넣을 수있는 상황을 정확하게 고려해야 한다.


여기서 문제 중 하나는 위의 그림에서 볼 수 있다. 이 질문에 대한 명백한 대답은 항목을 가져 왔지만 이것은 잘못된 것이다. 대신 고객이 품목을 반납하고 남은 품목을 다시 선반으로 밀었다. 이를 해결하기 위해 시스템은 공간에 기초한 간단한 가정을 사용하는것이 아닌 선반에 있는 모든 항목을 계산해야만 한다.


긴 꼬리 : 선반에서 물건을 고를 때, 특히 여러 고객을 가까이에서 물건을 집으려고할 때 사람들이 할 수있는 수많은 포즈가 있다. 각각에 대한 모델을 학습시키기에는 레이블이 지정된 데이터가 충분하지 않을수 있다.

휴먼 라벨링을 사용하더라도 학습 데이터로 활용하기에는 어렵다 (돈과 시간 모두).   


따라서 이를 해결하기 위해 시뮬레이션 된 데이터를 통해 이 상황을 해결하는 데 사용한다.

이를 해결하기 위해 개발팀은 시뮬레이터를 사용하여 합성 활동 데이터를 생성하는 야심 찬 프로젝트를 진행한다. 이러한 시뮬레이터 내에서 가상의 고객 (의류, 머리카락, 체격, 신장 등) 카메라, 조명 및 그림자를 생성하고 동일한 카메라 하드웨어 한계를 기반으로 시뮬레이션 해야 했다.

그리고 그 결과는 주목할만하다.


1. 데이터가 생성되어 미리 주석 처리되어 시뮬레이션 데이터에 주석을 달 때  3 배 저렴하다.

2. 개발팀은 컴퓨팅 리소스를 확장하여 데이터를 생성 할 수있다 (AWS 클라우드 처리방식).

3.  시뮬레이션을 통한 주석은 기존 사람들에 라벨링 하는 방식에 비해  여러 프레임에서 매우 일관된 정보를 확인할수 있다.


개발팀은 시뮬레이션을 사용하여 대규모 훈련 세트를 구축함으로써 클라우드의 기능을 활용하여 하루에 몇 달 분량의 데이터를 훈련함으로써 빠른 진행을 가능하게했다.

이는 DeepMind가 AlphaStar, OpenAI 5, Open AI 5 훈련 및 자율 주행 회사에서 운전자 모델 훈련에 사용하는 기술과 매우 유사하다.




스트리밍 서비스

컴퓨터비전(Computer Vision)마법은 영상이 전달되지 않으면 작동하지 않는다.

첫번째 과제로 매장영상을 클라우드로 가져 오는 것이다. 이 시스템의 구성 요소는 다음과 같다.  

1. 비디오 캡처 기능하는 컴퓨팅 온보드는 기본 전처리를 통해 대역폭 요구사항에 맞게 조정한다.

2. 영상전송기구는 현장 비디오 코덱, 네트워크 문제를 처리하고 클라우드로의 전달을 관리한다.

3. 비디오를 캡처하고 저장하기 위한 클라우드의 비디오 서버 (Amazone S3 및 Dynamo)


이단계의 주요 측면은 시스템 (카메라, 네트워크, 클라우드 인프라 등)에서 실제 장애 시나리오를 처리하고 복원력을 제공하는고 이상 탐지를 목적으로 한다.


출입 감지

다음 도전은 사람들이 쇼핑 세션을 만들기 위해 상점에 들어오고 나갈 때를 감지하는 것으로 이 시스템에는 다음과 같은 구성 요소가 있다.  


1. 상점에 나타날 때 QR을 스캔하는 모바일 앱. 그들은 이것에 대해 UX 테스트를하는 데 많은 시간을 보냈다 (전화로 위 또는 아래로 스캔, 그룹 처리 방법 등).

2. QR 코드를 스캔 할 때 상점 입구 위치를 기반으로 연계 시스템은 영상을 출입자 계정에 연결.

3. 세션 생성은 연결을 기반으로 이루어진다


시스템을 구현할 때 팀은 몇 가지 추가 시나리오를 해결해야했다. 첫째, 사람들은 여러 번 스캔 할 수 있으므로  항목이 없는 두 번째 스캔에서눈 세션을 삭제해야했다. 더 어려운 문제는 고객 (특히 가족)이 그룹으로 쇼핑하기를 원하지만 한 사람 만 지불하는 것이다. 이를 가능하게하기 위해 주결제자는 상점에 입장 할 때마다 각 사람에 대해 동일한 코드를 스캔한다. 그룹의 모든 사람을 동일한 계정에 연결하는 세션이 생성된다. 거기에서 그룹의 사람들은 언제든지 상점을 떠날 수 있다. 세션을 그룹 수준으로 옮기고 개별 쇼핑객을 '1 인 그룹'으로 취급함으로써 개발팀은 이러한 도전을 극복하고 개인이 그룹에 언제든지 출입 할 수있게 되었다.





이글은 라이언그로스씨의 글을 번역하였으며, 아마존고의 기술을 잘 설명해주고 있다.

특히, 관련 인공지능기반 학습을 통해 사람들의 다양한 동작에 대한 판단을 할수 있도록 한다는 측면에서 인공지능 기반 영상분석과 학습용 영상생성에 이르기까지 다양한 응용을 위한 기술적 소개가 되어 있다.

무인점포를 위해서는 카메라 외에도 압력 센서, 적외선 센서, 로드셀(무게측정 소자), 라이트 커튼 등을 사용할 수 있다. 적외선 센서는 구매자의 손과 재고 품목을 구별하고 압력 센서는 물건이 원위치에서 이탈했는지를 파악한다. 물론 아마존고 매장에 해당 특허 기술이 적용됐는지는 불분명하다. 하지만 이글을 통해 아마존고 매장 구축을 위해 다양한 기술에 대한 고민이 있었다는 것을 확인하게 한다.


[출처] https://towardsdatascience.com/how-the-amazon-go-store-works-a-deep-dive-3fde9d9939e9



매거진의 이전글 아마존고를 통해 이해하는 무인점포
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari