KR102540744B1 - 사람의 3d좌표를 생성하고 3d좌표의 타당성을 검토하는 장치 및 방법 - Google Patents

사람의 3d좌표를 생성하고 3d좌표의 타당성을 검토하는 장치 및 방법 Download PDF

Info

Publication number
KR102540744B1
KR102540744B1 KR1020210138385A KR20210138385A KR102540744B1 KR 102540744 B1 KR102540744 B1 KR 102540744B1 KR 1020210138385 A KR1020210138385 A KR 1020210138385A KR 20210138385 A KR20210138385 A KR 20210138385A KR 102540744 B1 KR102540744 B1 KR 102540744B1
Authority
KR
South Korea
Prior art keywords
coordinates
image data
joint points
server
person
Prior art date
Application number
KR1020210138385A
Other languages
English (en)
Other versions
KR20220136050A (ko
Inventor
김승연
최재원
Original Assignee
와이폴라리스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 와이폴라리스 주식회사 filed Critical 와이폴라리스 주식회사
Publication of KR20220136050A publication Critical patent/KR20220136050A/ko
Application granted granted Critical
Publication of KR102540744B1 publication Critical patent/KR102540744B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Abstract

본 발명의 일 실시예에 따라, 서버에 의해 수행되는, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법에 있어서, (a) 서로 다른 위치 또는 각도로 설치된 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 영상데이터 속 사람의 관절에 대한 관절포인트를 인식하는 단계; (b) 서로 다른 카메라에서 촬영된 각각의 영상데이터에 포함된 각 사람 중 동일한 사람으로 추정되는 사람의 관절포인트를 매칭하고, 매칭된 관절포인트에 대한 3D 좌표를 생성하는 단계; (c) 3D좌표를 2D평면으로 재투영하여 산출된 투영된 2D좌표와 영상데이터 속 관절포인트의 실제 2D좌표를 비교함으로써, 매칭된 관절포인트가 동일한 사람을 지칭하는 것이 맞는지 검증하는 단계; 및 (d) 비교 결과에 따라, 관절포인트에 대한 3D좌표를결정하는 단계;를 포함한다.

Description

사람의 3D좌표를 생성하고 3D좌표의 타당성을 검토하는 장치 및 방법 {APPARATUS AND METHOD FOR GENERATING 3D COORDINATES OF A PERSON AND EXAMINING THE VALIDITY OF 3D COORDINATES}
본 발명은 복수의 카메라로부터 생성된 영상데이터를 통해 3차원 공간을 생성하고, 해당 공간에 속해있는 사람의 관절 위치를 파악함으로써 진열대, 창고 등의 상품의 진열 공간 내에서 이루어지는 픽업 및 반환 등을 파악하기 위한 시스템 및 그 방법에 관한 것이다.
객체에 대한 좌표를 생성하는 종래의 유사 기술로 대한민국 특허청 제10-2019-0031526호 "동적인 재고 관리 시스템 및 방법"으로, 선반에 각각의 위치마다 좌표를 설정해두고, 물품이 잘못된 위치에 놓여지는 경우, 이를 인식하는 기술에 대한 것이 공개되어 있다.
이러한 기술은 선반 위의 자표 공간 구현 시 진열대에 한정된 좌표설정이라는 한계를 가지고 있으며, 진열 공간 내의 물체를 픽업하거나 반환하는 사람에 대한 정보를 포함하고 있지 않다.
또한, 다른 종래의 기술로 대한민국 특허청 제10-22017-00143439호 "3차원 공간 정보 구축을 위한 빅데이터 시스템의 연계 장치 및 방법"으로 복수의 CCTV영상과 DB내에 저장된 영상을 바탕으로 3차원 공간 정보를 구축하는 기술이 공개되어 있다.
하지만, 해당 기술은 DB내에 기 저장된 정보만을 활용하여 영상의 이미지 유사도를 분석하고, 해당 분석을 기초로 3차원 좌표를 생성하고 있다. 이러한 방법은 영상의 유사도를 판별하기 어려운 상황에서 적용하기엔 정확도의 문제를 초래하게 된다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 무인 매장에 입장한 고객의 위치를 3차원으로 복원하여 추적하고, 고객이 수행할 수 있는 픽업 및 반환행위를 분석하는 것을 목적으로 한다.
이를 통해, 무인 매장을 입장하는 고객의 동선, 구매 패턴 등을 분석할 수 있게 된다.
또한, 기존의 카메라를 포함하여 진열대에 진열된 재고를 파악할 수 있게 되어, 진열대를 관리하는 최소한의 인원만을 무인 매장에 두게 하는 것을 목적으로 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 서버에 의해 수행되는, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법에 있어서, (a) 서로 다른 위치 또는 각도로 설치된 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 영상데이터 속 사람의 관절에 대한 관절포인트를 인식하는 단계; (b) 서로 다른 카메라에서 촬영된 각각의 영상데이터에 포함된 각 사람 중 동일한 사람으로 추정되는 사람의 관절포인트를 매칭하고, 매칭된 관절포인트에 대한 3D 좌표를 생성하는 단계; (c) 3D좌표를 2D평면으로 재투영하여 산출된 투영된 2D좌표와 영상데이터 속 관절포인트의 실제 2D좌표를 비교함으로써, 매칭된 관절포인트가 동일한 사람을 지칭하는 것이 맞는지 검증하는 단계; 및 (d) 비교 결과에 따라, 관절포인트에 대한 3D좌표를결정하는 단계;를 포함할 수 있다.
또한, (a) 단계는 사람의 손가락, 손목, 팔꿈치, 허리, 무릎을 관절포인트로 인식할 수 있다.
또한, (b) 단계는 (b1) 서로 다른 위치 또는 각도에서 촬영된 복수의 영상데이터에서 매칭된 관절포인트에 대한 각각의 깊이값을 산출하는 단계; 및 (b2) 깊이값과 각각의 카메라의 초점거리, 관절포인트에 대한 각각의 영상데이터에서의 실제 2D좌표 및 카메라의 주점(principal point)에 대한 수치를 기 설정된 행렬에 대입하여 관절포인트에 대한 3D좌표를 산출하는 단계;를 포함할 수 있다.
또한, (b) 단계는 서로 다른 위치 또는 각도로 설치된 복수의 카메라에서 각각 촬영된 관절포인트끼리 매칭될 수 있는 최대 경우의 수를 산출하고, (b) 내지 (d) 단계를 반복하되, 각각의 관절포인트마다 최대 경우의 수 이내로 횟수를 반복할 수 있다.
또한, (c) 단계는 (c1) 투영된 2D좌표 및 실제 2D좌표에 대한 평균제곱근편차(RMSE : Root Mean Square Error )의 차이값을 산출하는 단계; 및 (c2) 차이값이 기 설정된 임계값보다 낮으면, 매칭된 관절포인트들이 동일한 사람의 관절인 것으로 결정하는 단계;를 포함할 수 있다.
또한, (c2) 단계는 평균제곱근편차가 임계값보다 높으면 서로 다른 영상데이터 속 특정 사람의 관절포인트가 잘못 매칭된 것으로 판단하고, (b) 단계에서 서로 다른 관절포인트와 재매칭하여 다시 진행할 수 있다.
또한, (c2) 단계 이후 (c3) 매칭된 관절포인트들이 동일한 사람으로 결정된 이후, 기설정된 허리에 대응되는 관절포인트의 3D좌표와 결정된 3D좌표 간의 거리차이가 일정거리 이하이면, 매칭된 관절포인트가 동일한 사람으로 판단하고, 중복으로 판단된 3D좌표에 대한 중복체크를 수행하는 단계;를 더 포함할 수 있다.
또한, (c3) 단계 이후 (c4) 3D좌표에 대한 중복체크를 수행한 후, 특정 사람의 것으로 판단된 복수의 관절포인트의 3D좌표 간의 위치나 거리값을 산출하고, 관절포인트의 3D좌표가 사람의 형태가 맞는지 여부를 통해 3D좌표의 타당성을 판단하는 단계;가 더 포함될 수 있다.
또한, (d) 단계는 3D좌표가 타당한 것으로 판단되면, 복수의 영상데이터 속의 사람에 대한 매칭된 관절포인트의 3D좌표를 결정하고, (b) 내지 (d) 단계를 다른 관절포인트에 대해서 수행함으로써, 복수의 영상데이터 내에 등장하는 동일한 사람에 대한 모든 관절포인트의 3D좌표를 결정될 수 있다.
또한, (d) 단계 이후 (d1) 영상데이터의 연속된 프레임으로부터 기설정된 허리의 3D좌표를 2D평면에 투영하여 생성된 2D좌표값으로 허리의 3D좌표값에 대한 비용함수 값을 산출하는 단계; (d2) 연속된 프레임에서 각각의 허리의 3D좌표에 대한 상기 비용함수 값이 기설정된 값 이하인지 판단하는 단계; (d3) 허리의 3D좌표 간의 거리가 기설정된 값 이상이면, 기생성된 트랙값의 개수와 현재 프레임에서 허리의 3D좌표 개수를 비교하여 트랙값의 타당성을 판별하는 단계; 및 (d4) 기생성된 트랙값의 개수가 허리의 3D좌표 개수 이상이면, 기생성된 트랙값 중에서 허리의 3D좌표 간의 거리가 기설정된 값 이하인 트랙값을 탐색하고, 탐색의 결과로 산출된 트랙값에 현재의 허리의 3D좌표를 업데이트하는 단계;를 포함하고, 트랙값은 사람의 이동 경로를 뜻할 수 있다.
또한, 상기 (d1) 단계는 상기 2D좌표에 대한 단위 벡터를 산출하여, 이전에 추적된 3D좌표와 상기 2D좌표에 대한 단위 벡터를 기반으로 방향 벡터의 유사도를 산출하고, 상기 (d2) 단계 이전에 기 설정된 공식에 상기 허리의 3D좌표 간의 거리, 벡터 유사도 보정 계수 및 방향 벡터의 유사도를 이용하여 상기 허리의 3D좌표에 대한 비용함수를 산출할 수 있다.
또한, (d2) 단계 이후 허리의 3D좌표 간의 거리가 기설정된 값 이하이면, 기생성된 트랙값 중에서 허리의 3D좌표 간의 거리가 기설정된 값 이하인 트랙값을 탐색하고, 탐색의 결과로 산출된 트랙값에 현재의 허리의 3D좌표를 업데이트할 수 있다.
또한, (d3) 단계 이후 기생성된 트랙값의 개수가 허리의 3D좌표 개수 이하이면, 허리의 3D좌표를 통해 신규 트랙값을 생성할 수 있다.
또한, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 장치에 있어서, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 프로그램이 저장된 메모리 및 메모리에 저장된 프로그램을 실행하여 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 프로세서를 포함하되, 프로세서는 서버에 의해 수행되는, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법에 있어서, 서로 다른 위치 또는 각도로 설치된 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 영상데이터 속 사람의 관절에 대한 관절포인트를 인식하고, 서로 다른 카메라에서 촬영된 각각의 영상데이터에 포함된 각 사람 중 동일한 사람으로 추정되는 사람의 관절포인트를 매칭하고, 매칭된 관절포인트에 대한 3D 좌표를 생성하고, 3D좌표를 2D평면으로 재투영하여 산출된 투영된 2D좌표와 영상데이터 속 관절포인트의 실제 2D좌표를 비교함으로써, 매칭된 관절포인트가 동일한 사람을 지칭하는 것이 맞는지 검증하고, 비교 결과에 따라, 관절포인트에 대한 3D좌표를 결정하는 장치일 수 있다.
또한, 제 1 항에 의한 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독가능 저장매체일 수 있다.
본 발명을 통해 무인 매장에 입장한 고객의 위치를 3차원으로 복원하여 추적하고, 고객이 수행할 수 있는 픽업 및 반환행위를 분석할 수 있게 된다.
이를 통해, 무인 매장을 입장하는 고객의 동선, 구매 패턴 등을 분석할 수 있게 되고, 기존의 카메라를 포함하여 진열대에 진열된 재고를 파악할 수 있게 되어, 진열대를 관리하는 최소한의 인원만을 무인 매장에 둘 수 있게 된다.
또한, 기존 2D에서 매칭쌍을 찾는 과정은 SIFT+ template matching, Re-ID 기법 등 특징점 매칭 기반 알고리즘이 주로 사용된다. 이러한 경우는 (옷차림이 동일) 특징이 유사한 경우, 매칭쌍이 제대로 구해지지 않을 수 있지만, 본 발명에서 기술하는 매칭 기법은 옷차림 등의 이미지의 특징과 무관하게 3D 좌표 복원을 위한 매칭쌍을 구할 수 있다. 따라서 옷차림이 유사한 고객 추적, 옷 교체 등의 환경에서도 고객을 추적할 수 있을 것으로 기대한다.
도 1은 본 발명의 일 실시예에 따른, 비전 인식을 기반으로 운영되는 매장의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른, 서버의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른, 비전 인식을 기반으로 운영되는 매장의 운영과정을 나타낸 동작흐름도이다.
도 4는 본 발명의 일 실시예에 따른, IP카메라로 획득된 영상데이터를 보정하는 전체 과정을 나타낸 동작흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 영상데이터를 보정하는 세부 과정을 나타낸 동작흐름도이다.
도 6a는 롤링 셔터 기반의 카메라로부터 촬영된 영상의 왜곡의 예시를 나타낸 도면이다.
도 6b는 본 발명의 일 실시예에 따른, 왜곡을 보정하는 과정을 나타낸 도면이다.
도 6c는 본 발명의 일 실시예에 따른, 왜곡을 보정 후 픽셀의 상태를 각각 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른, 사람 인식 및 사람의 3D좌표를 생성하는 과정을 나타낸 동작흐름도이다.
도 8a는 본 발명의 일 실시예에 따른, 관절포인트의 3D좌표를 생성하는 과정을 나타낸 동작흐름도이다.
도 8b는 본 발명의 일 실시예에 따른, 생성된 3D좌표의 타당성을 검토하는 과정을 나타낸 동작흐름도이다.
도 8c는 본 발명의 일 실시예에 따른, 사람의 이동 경로를 추적하기 위한 방법을 나타낸 동작흐름도이다.
도 9a 내지 도 9b는 본 발명의 일 실시예에 따른, 복수의 카메라로부터 촬영된 영상데이터에서 관절포인트 매칭기술을 설명하기 위한 예시 도면이다.
도 10은 본 발명의 일 실시예에 따른, 상품의 픽업 혹은 반환 이벤트를 인식하는 과정을 나타낸 동작흐름도이다.
도 11a는 본 발명의 일 실시예에 따라, 2D영상데이터를 통해 상품을 인식하고 위치 변화를 감지하는 방법을 나타낸 동작흐름도이다.
도 11b는 본 발명의 일 실시예에 따라, 사람의 손에 대한 이동 경로를 추적하는 과정을 나타낸 동작흐름도이다.
도 11c는 본 발명의 일 실시예에 따라, 상품에 대해 발생한 이벤트를 구분하고, 그 타당성을 산출하는 과정을 나타낸 동작흐름도이다.
도 12a 내지 도 12e는 본 발명의 일 실시예에 딸, 픽업 이벤트 및 반환 이벤트를 설명하기 위한 예시 도면이다.
도 13은 본 발명의 일 실시예에 따른, 상품에 대한 재고를 관리하는 과정을 나타낸 동작흐름도이다.
도 14a는 본 발명의 일 실시예에 따른, 진열 재고를 산출하는 과정을 나타낸 동작흐름도이다.
도 14b는 본 발명의 일 실시예에 따른, 상품의 판매가능재고를 수정하는 과정을 나타낸 동작흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하의 실시예는 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리 범위를 제한하는 것이 아니다. 따라서 본 발명과 동일한 기능을 수행하는 동일 범위의 발명 역시 본 발명의 권리 범위에 속할 것이다.
본원 명세서에서 서버(1000)란 비전인식을 기반을 매장 시스템을 구현하기 위한 로컬 서버 또는 클라우드 서버를 의미하게 된다. 이때, 서버(1000)는 매장을 관리하기 위한 부과 기술들을 함께 제공하게 된다. 예를 들어, IP카메라를 통해 촬영된 영상데이터의 보정, 영상데이터 속에서 객체 인식 기술 및 재고 관리 등이 포함될 수 있다.
또한, 본원 명세서에서 매장이란 오프라인 매장 내부에 상품을 판매하거나 결제하기 위한 별도의 계산원을 필요로 하지 않으며, 고객이 점포 내에 구비된 상품을 자동으로 결제하여 물건을 구매하도록 구현된 매장을 뜻하게 된다.
도 1은 본 발명의 일 실시예에 따른, 비전 인식을 기반으로 운영되는 매장의 구성을 나타낸 도면이다.
도 1을 참고하면 매장을 운영하기 위한 시스템은 서버(1000) 및 고객 단말(5000)로 구성될 수 있다. 또한, 매장은 매장 게이트(4000), 카메라(2000) 및 선반(3000)으로 구성된다. 또한, 각 장치들은 통신망을 통해 상호 연결되어 있다.
본 발명의 일 실시예에 따라, 매장은 별도의 계산원이 상시 대기하지 않아도 고객이 본인 인증 후 매장에 입장하여 상품을 선택하고, 선택한 상품을 자신의 고객 단말(5000)을 통해 결제하는 것으로 쇼핑의 편의성을 제공하는 것을 특징으로 한다. 한편, 서버(1000)는 고객이 상품을 구매함에 따라 변동되는 재고를 자동으로 관리함으로써, 매장의 관리자에게 재고관리의 수고를 덜어줄 수 있게 된다.
구체적으로, 본 발명의 일 실시예에 따라, 서버(1000)는 고객 단말(5000)이나 매장 게이트(4000)로부터 고객 인증 정보를 수신하면, 매장 게이트(4000)를 개방하여 고객을 매장으로 입장시키게 된다.
이때, 고객 인증 정보는 매장에 출입하는 고객을 확인하기 위한 정보를 뜻하게 된다.
또한, 서버(1000)는 매장 내에 설치된 적어도 하나 이상의 카메라(2000)를 통해 영상데이터를 수신하게 된다. 이때, 서버(1000)는 영상데이터 속에서 매장에 입장한 고객을 인식하고, 이를 추적하게 된다.
이후, 서버(1000)는 고객이 매장에 배치된 진열대(3000)에서 상품을 집어 드는 픽업 이벤트가 발생했는지 인식하게 되면, 고객이 선택한 상품을 고객 단말(5000)의 상품 리스트에 포함시키게 된다.
이때, 상품 리스트란 고객이 구매하려는 상품 정보가 포함된 정보를 뜻하는데, 종래의 온라인 거래 시 이용되는 "장바구니"시스템과 유사하게 구현될 수 있다.
마지막으로 서버(1000)는 고객이 매장을 퇴장하는 것을 인식하고, 고객 단말(5000)의 상품 리스트에 포함된 상품의 정산을 기 설정된 금융사 서버로 요청하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른, 고객 단말(5000)은 매장과 연동되어 있는 애플리케이션을 통해 매장에 입장하거나, 상품을 구매하게 된다.
이때, 고객은 매장에 입장하기 위한 고객 인증 과정만을 거친 이후 별도의 조작을 수행하지 않더라도 매장에 입장하여 쇼핑을 즐길 수 있게 된다. 예를 들어, 매장에 입장한 이후 상품을 픽업하면, 서버(1000)가 이를 인지하고 고객 단말(5000)에 설치된 애플리케이션의 상품 리스트에 픽업한 상품을 업로드하게 된다.
이때, 선택적 실시예로 고객 단말(5000)의 코드 스캔 기능을 통해 고객이 픽업한 상품을 스캔하는 행동을 통해 서버(1000) 및 고객 단말(5000) 간에 선택된 상품을 크로스체크할 수도 있다.
이후, 고객은 픽업한 상품을 들고 매장 게이트(4000)를 빠져나가는 행동을 통해 쇼핑을 마치게 되고, 서버(1000)는 자동으로 상품에 대한 결제를 수행하게 된다.
이때, 비전인식을 기반으로 매장을 이용하기 위한 애플리케이션은 고객 단말(5000)에 내장된 애플리케이션으로 구동되거나, 애플리케이션 배포 서버로부터 다운로드되어 고객 단말(5000)에 설치되어 구동되는 애플리케이션일 수 있다.
또한 고객 단말(5000)은 유무선 통신 환경에서 단말 애플리케이션을 이용할 수 있는 통신 단말기를 의미한다. 여기서, 고객 단말(5000)은 고객의 휴대용 단말기일 수 있다. 도 1에서는 고객 단말(5000)이 휴대용 단말기의 일종인 스마트폰(smart phone)으로 도시되었지만, 본 발명의 사상은 이에 제한되지 아니하며, 상술한 바와 같이 단말 어플리케이션을 탑재할 수 있는 단말에 대해서 제한 없이 차용될 수 있다.
이를 더욱 상세히 설명하면, 고객 단말(5000)은 핸드헬드 컴퓨팅 디바이스(예를 들면, PDA, 이메일 클라이언트 등), 핸드폰의 임의의 형태, 또는 다른 종류의 컴퓨팅 또는 커뮤니케이션 플랫폼의 임의의 형태를 포함할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
한편, 매장은 앞서 서술한 바와 같이 매장 게이트(4000), 카메라(2000) 및 선반(3000)으로 구성될 수 있으나, 매장이 구현되는 외부 환경이나 목적 등의 다양한 이유로 상기의 요소가 변경되거나 삭제될 수 있다.
매장 게이트(4000)는 매장에 대한 상기 고객의 출입을 통제하기 위한 용도로 사용된다. 예를 들어, 고객 단말(5000)로부터 수신된 코드에 기초하여 서버(1000)로 고객 인증 정보를 전달하거나 그에 대한 피드백으로 매장 게이트(4000)를 개방하게 된다.
하지만, 다른 실시예로, 매장 게이트(4000)는 매장을 구성하기 위한 필수 사항이 아니기에 생략될 수 있다.
카메라(2000)는 매장에 적어도 하나 이상 설치되어, 매장 내의 고객과 진열대(3000)을 촬영하여 실시간 영상데이터를 생성하여, 서버(1000)로 전달하게 된다.
이때, 복수의 카메라(2000)는 보안을 위해 매장 내의 사각지대가 거의 없도록 설치되어야 한다. 따라서, 카메라(2000) 중 일부는 매장 내부에 구비되는 진열대(3000)를 촬영하기 위한 별도로 구비되거나, 진열대(3000)에 카메라(2000)가 결합되어 구비될 수 있다.
진열대(3000)은 매장 내의 구비되어 상품을 디스플레이하는 거치대를 의미하는데, 진열대(3000)의 크기나 형태에는 제한이 없기에 형상이 본 발명의 범위를 제한하지 않는다.
이때, 복수의 카메라(2000)는 진열대(3000) 및 진열대(3000) 내부에 구비되는 상품을 촬영하여 영상데이터를 생성해야만 한다. 따라서, 카메라(2000)는 진열대(3000)과 상품 그리고 매장에 방문한 방문자를 구분할 수 있는 최소한의 화질을 가져야만 한다.
한편, 통신망은 서버(1000)와 고객 단말(5000)을 연결하는 역할을 수행한다. 즉, 통신망은 고객 단말(5000)이 서버(1000)에 접속한 후 데이터를 송수신할 수 있도록 접속 경로를 제공하는 통신망을 의미한다. 통신망은 예컨대 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
한편, 본 발명은 비전인식 기술을 기반으로 매장에 대한 서비스가 제공되기에, 그에 대한 부차적인 기술이 더 제공될 수 있다.
예를 들어, IP카메라(2000)를 이용하여 영상데이터를 생성하는 경우, 발생할 수 있는 잔상이나 왜곡현상을 보정하기 위한 기술, 영상데이터 속 사람을 인식하고 3D좌표값을 생성하는 기술, 사람이 상품을 픽업하거나 반환하는 동작을 구분하기 위한 기술 및 매장에 보관중인 상품에 대한 재고관리 기술들이 제공될 수 있다.
상기의 기술은 비전인식을 기반으로 매장을 제공하는 방법을 설명하면서 함께 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른, 서버(1000)의 구성을 나타낸 도면이다.
도 2를 참고하면 본 발명의 일 실시예에 따른 서버(1000)는 통신 모듈(1100), 메모리(1200), 프로세서(1300) 및 데이터베이스(1400)를 포함한다.
상세히, 통신 모듈(1100)은 통신망과 연동하여 서버(1000)와 고객 단말(5000) 간의 송수신 신호를 패킷 데이터 형태로 제공하는 데 필요한 통신 인터페이스를 제공한다. 나아가, 통신 모듈(1100)은 고객 단말(5000)로부터 데이터 요청을 수신하고, 이에 대한 응답으로서 데이터를 송신하는 역할을 수행할 수 있다.
여기서, 통신 모듈(1100)은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
메모리(1200)는 비전인식을 기반으로 매장 제공하기 위한 프로그램이 기록된다. 또한, 프로세서(1300)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 여기서, 메모리(1200)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
또한, 앞서 서술한 IP카메라(2000)를 이용하여 영상데이터를 생성하는 경우, 발생할 수 있는 잔상이나 왜곡현상을 보정하기 위한 기술, 영상데이터 속 사람을 인식하고 3D좌표값을 생성하는 기술, 사람이 상품을 픽업하거나 반환하는 동작을 구분하기 위한 기술 및 매장에 보관중인 상품에 대한 재고관리 기술을 제공하기 위한 프로그램이 함께 기록될 수 있다.
프로세서(1300)는 일종의 중앙처리장치로서 비전인식을 기반으로 매장 제공하기 위한 전체 과정을 제어한다. 프로세서(1300)가 수행하는 각 단계에 대해서는 도 3 내지 도 14를 참조하여 후술하기로 한다.
여기서, 프로세서(1300)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
데이터베이스(1400)는 매장을 이용하는 고객에 대한 정보(이는 고객 단말(5000)의 정보와 고객 인증 정보 등이 함께 포함될 수 있다.), 매장에서 판매중인 상품에 대한 각종 정보(이는 상품의 판매에 필요한 정보 및 상품에 대한 비전인식을 위한 외형 정보 등이 함께 포함될 수 있다.) 및 매장에서 보관중인 상품에 대한 재고정보 등이 저장될 수 있다.
선택적 실시예로, 서버(1000)가 카메라(2000)로부터 수신한 영상데이터 및 영상데이터에서 인식된 사람이나 사물이 임시로 저장될 수 있다.
비록 도 2에는 도시하지 아니하였으나, 고객에 대한 정보, 상품에 대한 각종 정보 및 재고정보 등은 물리적 또는 개념적으로 분리된 데이터베이스(미도시)에 저장될 수 있다.
도 3은 본 발명의 일 실시예에 따른, 비전 인식을 기반으로 운영되는 매장의 운영과정을 나타낸 동작흐름도이다.
도 3을 참고하면 서버(1000)는 고객에 대한 인증 결과에 따라 매장 게이트(4000)를 개방한다(S1000).
구체적으로 단계(S1000)을 설명하면, 서버(1000)는 고객 단말(5000) 혹은 매장 게이트(4000) 중 어느 하나로부터 고객 인증 정보를 수신하게 된다. 이후, 인증 결과에 따라 매장 게이트(4000)를 개방하여 고객을 매장으로 입장시키게 된다.
고객의 인증 과정은 하기의 2가지 방법을 통해 수행될 수 있다.
제 1 실시예로, 단계(S1000) 이전에 서버(1000)가 고객 단말(5000)로부터 인증 요청 정보를 수신하면, 고객 단말(5000)로 인증용 코드를 제공하게 된다. 이후, 서버(1000)가 매장 게이트(4000)로부터 인증용 코드에 대응되는 고객 인증 정보를 수신하면, 매장 게이트(4000)를 개방하게 된다. 이때, 고객은 고객 단말(5000)로 수신된 인증용 코드를 매장 게이트(4000)에 입력함으로써 매장 게이트(4000)가 고객 인증 정보를 생성할 수 있게 된다.
제 2 실시예로, 서버(1000)는 고객 단말(5000)로부터 고객 인증 정보를 수신하면 인증 결과에 기초하여 인증용 코드를 제공하게 된다. 이후, 고객 단말(5000)이 매장 게이트(4000)에 인증용 코드를 전달하면 매장 게이트(4000)를 개방하게 된다. 즉, 고객의 인증 과정이 서버(1000)와 고객 단말(5000)에서 수행되고, 서버(1000)는 그 결과에 따라 매장 게이트(4000)를 개방하기 위한 코드를 제공하게 된다.
이때, 선택적 실시예로 매장 게이트(4000)는 개방된 이후 사람이 지나가는 것을 인식하고, 곧장 매장 게이트(4000)를 폐쇄하여 비인증된 사람의 출입을 방지해야만 한다.
다음으로, 서버(1000)는 카메라(2000)로부터 영상데이터를 수신하고, 사람을 인식 후 식별자 부여 및 3D좌표를 생성한다(S2000).
구체적으로 단계(S2000)을 설명하면, 서버(1000)는 매장에 설치된 카메라(2000)로부터 실시간으로 촬영된 영상데이터를 수신 후 영상데이터로부터 고객을 인식하고, 고객에게 식별자를 부여한 뒤, 고객에 대한 3D 좌표를 생성하게 된다.
이때, 서버(1000)는 고객 단말(5000)과 고객에게 부여된 식별자를 매칭하고, 추적을 수행하게 된다.
또한, 고객에게 복수의 추가 일행이 있는 경우 단계(S1000)에서 서버(1000)는 고객 단말(5000)로부터 추가 일행의 인원수를 더 수신한다. 이후, 서버(1000)는 인원수만큼 매장 게이트(4000)를 통과한 사람에게 각각 서로 다른 식별자를 부여하되, 고객 단말(5000)의 고객과 추가 일행의 식별자를 그루핑하게 된다. 이를 통해, 다음 단계(S3000)에서 서버(1000)는 영상데이터에 포함된 추가 일행으로부터 픽업 이벤트가 인식되면, 추가 일행이 선택한 상품을 고객 단말(5000)의 상품 리스트에 포함시키게 된다.
만약, 상기의 경우 단계(S4000)에서 서버(1000)는 고객 단말(5000)의 소유주인 고객이 매장 게이트(4000)를 통해 퇴장하거나 결제 정보가 수신되면, 상품 리스트에 포함된 상품이 정산하게 된다. 만약, 서버(1000)는 고객 퇴장 이후 추가 일행으로부터 픽업 이벤트가 추가로 인식되어도 상품을 상품 리스트에 포함시키지 않게 된다.
한편, 선택적 실시예로 서버(1000)는 영상데이터가 롤링 셔터기반의 카메라(2000)에 의해 생성되면, 영상데이터의 화질을 보정한 후 고객의 인식 및 추적을 수행하게 된다. 이때, 영상데이터의 잔상이나 왜곡을 보정하는 방법은 후술할 도 4 내지 도 6c를 통해 설명하도록 한다.
또한, 단계(S2000)에서 서버(1000)는 영상데이터에서 고객의 기설정된 관절 부위를 관절 포인트로 인식하게 된다. 또한, 특정 고객으로부터 인식된 복수의 관절 포인트와 대응되는 3D좌표를 생성 후 위치 변화에 기초하여 특정 고객을 행동을 추적하게 된다.
상기에 설명된, 영상데이터 속에서 사람을 인식하고 이를 추적하는 구체적인 방법에 대해서는 후술할 도 7 내지 도 12e를 통해 설명하도록 한다.
다음으로, 서버(1000)는 3D좌표의 변화를 통해 픽업 이벤트를 인식하고, 고객 단말(5000)의 상품 리스트에 상품을 추가한다(S3000).
구체적으로 단계(S3000)을 설명하면, 서버(1000)는 3D좌표의 변화를 통해 영상데이터에서 고객이 상품을 픽업하는 픽업 이벤트 가 인식되면, 픽업 이벤트에 대응되는 상품을 고객의 상품 리스트에 포함 시킨다. 이때, 픽업 이벤트란 고객이 상기 매장 내의 진열대로부터 상기 상품을 픽업하는 행동을 인식한 정보를 뜻하게 된다.
이때, 픽업 이벤트는 서버(1000)가 특정 관절 포인트의 위치 변화를 판독하는 것으로, 고객의 손이 진열대(3000)의 상품을 픽업하는 행동을 인식함으로써 판독하게 된다.
또한, 서버(1000)는 픽업 이벤트가 진행되는 과정에서, 영상데이터로부터 고객이 픽업한 상품을 비전 인식 기술을 기반으로 인식하고, 상품 리스트에 인식된 상품을 추가 하게 된다.
이를 위해서는, 서버(1000)가 상품에 대응되는 상품이미지를 기저장하고, 영상데이터로부터 인식된 상품과 기 저장된 상품이미지를 비교하여, 픽업 이벤트에 대응되는 상품을 식별하게 된다. 다른 실시예로, 서버(1000)가 상품의 3D좌표와 손의 관절 포인트에 대응되는 3D좌표가 기 설정된 횟수 혹은 겹친 시간에 기초하여, 픽업의 대상이 되는 상품을 식별할 수도 있다.
한편, 서버(1000)는 영상데이터로부터 고객이 기 픽업한 상품을 진열대(3000)로 반환하는 것을 인식하면, 상품을 반환하는 반환 이벤트로 인식하게 된다.
만약, 서버(1000)가 고객의 반환 이벤트가 인식되면, 고객의 상품 리스트에서 반환된 상품을 제거하게 된다.
또한, 선택적 실시예로, 반환 이벤트의 주체가 매장의 관리자인 경우 재고를 조정하게 된다.
상기에 설명한 픽업 이벤트 및 반환 이벤트를 구분하는 알고리즘에 대한 구체적인 설명은 후술할 도10 내지 도 11c를 통해 상세하게 서술하도록 한다.
마지막으로, 서버(1000)는 고객이 매장을 퇴장하면 상품 정산 및 재고를 조정한다(S4000).
구체적으로 단계(S4000)를 설명하면, 서버(1000)는 고객이 상품 픽업 후 매장을 퇴장하거나, 고객의 단말(5000)로부터 상품에 대한 결제 정보를 수신하는 경우, 상품 리스트에 포함된 상품의 결제를 기 설정된 금융사 서버로 요청하게 된다. 이를 통해, 별도의 계산원이 매장에 존재하지 않아도 되며, 고객도 계산을 위한 추가적인 행동을 수행하지 않아도 된다.
만약, 선택적 실시예로 서버(1000)는 고객이 매장을 퇴장하고, 기 설정된 시간 이내에 상품에 대한 결제가 수행되지 않으면, 고객 단말(5000)로 상품에 대한 결제를 요청하는 메시지를 제공할 수 있다.
다른 선택적 실시예로, 서버(1000)는 고객이 매장을 퇴장하고, 기 설정된 시간 이내에 상품에 대한 결제가 수행되지 않으면, 고객 단말에 대한 매장의 이용에 패널티를 부과할 수 있다.
상기의 2가지 선택적 실시예를 통해 서버(1000)는 누락될 수 있는 정산에 대한 대비를 수행하게 된다.
또한, 단계(S4000) 이후 서버(1000)는 상품 리스트에 포함된 상품이 결제되면, 결제된 상품에 대한 기 저장된 재고를 수정하게 된다.
이때, 서버(1000)는 특정 상품에 대한 재고가 기 설정된 값 이하이면, 관리자 단말로 특정 상품에 대한 재고를 요청하는 메시지를 전달할 수 있다.
상기에 설명한 상품에 대한 재고를 관리하는 구체적인 설명은 후술할 도 13 내지 도 14b를 통해 상세하게 서술하도록 한다.
이하는 서버(1000)가 롤링 셔터촬영 기술을 통해 촬영된 영상데이터를 보정하는 방법에 대한 설명이다.
도 4는 본 발명의 일 실시예에 따른, IP카메라로 획득된 영상데이터를 보정하는 전체 과정을 나타낸 동작흐름도이다.
보정과정을 설명하기에 앞서, IP카메라는 롤링셔터 방식으로 동작하는 카메라(2000)를 뜻한다. 이때, 롤링 셔터촬영 기술이 적용된 카메라(2000)를 통해 피사체를 촬영하여 생성된 영상데이터는 도 6a에 도시된 바와 같이 열(line) 단위로 픽셀의 이미지의 왜곡이 발생하게 된다. 이는 촬영된 이미지 전체를 한번에 생성하는 글로벌 셔터 기술에 반해, 롤링셔터 방식은 이미지의 상부부터 하부까지 순차적으로 생성하기에 열 단위의 왜곡이 발생하게 된다.
따라서, 본 발명에서는 열 단위로 밀리게 된 이미지를 보정하는 한편, 롤링 셔터촬영 기술이 갖는 문제를 최소화 하기 위해 카메라(2000)의 셔터나 조리개를 컨트롤하고, 이미 왜곡이 발생한 영상데이터를 보정하는 것을 목적으로 한다.
도 4를 참고하면 서버(1000)는 IP카메라로부터 수신된 영상데이터를 연속된 복수의 영상 프레임으로 나눈다(S2100).
예를 들어, 영상데이터가 1초에 24프레임으로 형성되는 경우, 24장의 영상 이미지를 생성하게 된다. 이때, 영상의 프레임에 따라 영상 이미지를 나누는 량이 달라지게 된다.
다음으로, 서버(1000)는 각각의 상기 영상 프레임을 구성하는 각 픽셀마다 픽셀값의 변화량을 산출한다(S2200).
구체적으로, 서버(1000)는 연속적으로 이어진 제 1 영상 프레임과 제 2 영상 프레임에서 동일한 위치의 픽셀에 대해 픽셀값의 변화를 수치화하여 상기 변화량을 산출한다.
이때, 특정 시점 t에서 이미지 변화량은 수학식1과 같이 정의하고, 특정 프레임(k) 간의 평균 이미지 변화량은 수학식2와 같이 정의한다.
Figure 112021118951811-pat00001
Figure 112021118951811-pat00002
Figure 112021118951811-pat00003
Figure 112021118951811-pat00004
Figure 112021118951811-pat00005
다음으로 서버(1000)는 픽셀값의 변화량에 기초하여 카메라의 조리개 및 셔터속도를 조절하게 된다(S2300).
단계(S2200) 이후 서버(1000)는 특정 픽셀에서 연속적으로 이어진 소정의 영상 프레임 간의 변화량에 대한 평균값이 기설정된 임계값 이상인 경우, 선명도 또는 밝기 부정확문제가 발생된 것으로 판단하게 된다.
따라서, 상기의 문제를 해결하기 위한 제 1 실시예로, 서버(1000)는 변화량의 평균값에 기초하여 카메라(2000)의 셔터속도를 조절하는 셔터속도 조정값을 생성하여 카메라(2000)로 전달한다. 또한, 셔터속도 조절값을 수신한 카메라는 셔터속도 조정값에 기초하여 셔터의 속도를 조절하게 된다.
이때, 셔터속도 조정값은 아래의 수학식3을 통해 산출하게 된다
Figure 112021118951811-pat00006
Figure 112021118951811-pat00007
Figure 112021118951811-pat00008
이를 통해, 카메라(2000)의 셔터 속도를 빠르게 할 수 있어, 물체에 대한 선명한 이미지를 획득할 수 있게 된다. 하지만, 셔터의 속도가 빨라지는 경우 카메라(2000)의 촬상 소자에 노출되는 빛의 양이 감소하여, 이미지가 어두워지는 단점이 있다.
따라서, 아래의 제 2 실시예를 통해 조리개를 조절하게 된다.
구체적으로 서버(1000)는 픽셀값의 변화량에 기초하여 카메라(2000)의 조리개를 조절하는 조리개 조정값을 생성하여 카메라(2000)로 전달하고, 상기의 조리개 조정값을 수신한 카메라(2000)는 조리개 조정값에 기초하여 조리개를 조절하게 된다.
이때, 조리개 조정값은 아래의 수학식4를 통해 산출하게 된다.
Figure 112021118951811-pat00009
조리개변화 계수: 카메라(2000)의 사양에 대응되는 조리개 관련 고유한 계수
Figure 112021118951811-pat00010
따라서, 서버(1000)는 카메라(2000)로 셔터속도 조정값과 조리개 조정값을 전달하여, 카메라(2000)의 셔터속도 및 조리개를 조절하게 된다.
이를 통해, 카메라(2000) 조사되는 빛을 조절할 수 있게 되어, 롤링 셔터 카메라(2000)에서 발생할 수 있는 잔상이나 왜곡을 최소화 하게 된다.
마지막으로, 서버(1000)는 픽셀값의 변화량에 기초하여 이상 픽셀을 판단하고, 상기 이상 픽셀을 보정하여 보정된 영상데이터를 생성한다(S2400).
구체적으로, 서버(1000)는 특정 픽셀에 대한 소정의 상기 영상 이미지의 상기 변화량의 평균값이 기 설정된 임계값 이상이면, 특정 픽셀을 이상 픽셀로 판단하게 된다.
이때, 이상 픽셀이 판단되어 이를 보정하기 위한 구체적인 과정은 후술할 도 5의 동작흐름도를 통해 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른, 영상데이터를 보정하는 세부 과정을 나타낸 동작흐름도이다.
도 5를 참고하면 서버(1000)는 영상 이미지의 소정의 높이를 갖는 열(line) 단위로 나누어 보정하기 위한 왜곡보정계수를 산출한다(S2410).
구체적으로, 영상 프레임을 구성하는 픽셀들이 소정의 높이를 갖는 복수의 열(line)로 구성될 때, 서버(1000)는 영상 프레임을 픽셀들의 열 단위로 나누어 보정하기 위한 왜곡보정계수를 산출하게 된다.
이때, 왜곡보정계수는 기 설정된 상수와 상기 카메라의 셔터속도, 및 상기 영상 프레임을 구성하는 열 단위마다 부여된 번호를 기초로 산출되되, 아래의 수학식5를 통해 산출될 수 있다.
Figure 112021118951811-pat00011
Figure 112021118951811-pat00012
셔터속도 조정값: 셔터속도 계수 및 시간대비 변화량에 의해 산출된 값
이때, Ih는 각각의 열(line)로 나뉘어진 이미지의 높이를 뜻하고, 셔터속도는 앞서 설명한 바와 같이 카메라의 사양에 기인하여 결정된 셔터속도 계수와 시간대비 변화량의 곱으로 산출한다.
다음으로 서버(1000)는 왜곡보정계수를 바탕으로 열 단위로 픽셀의 이미지를 수평으로 이동시켜 보정을 수행한다(S2320).
즉, 서버(1000)는 왜곡보정계수를 바탕으로 산출된 거리값만큼 상기 열 단위의 픽셀을 열로 나뉘어진 방향으로 이동시켜 영상 프레임의 보정을 수행하게 된다.
이를 위해, 서버(1000)는 열(line) 단위로 나뉘어진 영상 프레임에는 순차적으로 번호가 부여하고, 이상 픽셀에 대한 변화량, 왜곡보정계수 및 상기 열 단위마다 부여된 번호를 기초로, 이상 픽셀의 픽셀값을 수정하게 된다.
이때, 픽셀값이 얼마나 수평으로 이동하게 되는지에 대한 보정값은 아래의 수학식6을 통해 산출된다.
Figure 112021118951811-pat00013
예를 들어, 도 6b의 그림(a)에 도시된 바와 같이 열 단위로 나뉘어진 각각의 이미지에 순차적으로 번호를 부여하게 된다. 이후 왜곡보정계수 및 변화량 등을 이용하여 픽셀의 이미지를 보정값만큼 수정하여, 도 6b의 그림(b)과 같은 형태로 이미지를 보정하게 된다.
이때, 서버(1000)는 특정 영상 이미지를 보정하는 과정에서 픽셀의 이동으로 인해 빈 픽셀이 발생하면, 특정 영상 이미지의 직전 프레임의 픽셀값으로 대체하게 된다.
또한, 서버(1000)는 소정의 열 단위로 나뉘어진 필셀이 수평이동으로 인해 영상 프레임 상에 빈 픽셀이 발생하면, 수정된 영상 프레임의 직전 영상 프레임으로부터 빈 픽셀의 위치에 대응되는 픽셀값으로 대체하게 된다.
이때, 서버(1000)는 직전 영상 프레임의 픽셀값이 소정의 상품이나 사람에 대응되는 경우, 빈 픽셀과 인접한 픽셀의 픽셀값의 평균값으로 빈 픽셀을 채우게 된다.
반대로, 보정된 영상 프레임에서 사람 혹은 기설정된 상품으로 인식된 픽셀을 제외한 픽셀의 픽셀값은 삭제하게 된다.
예를 들어, 도 6c의 그림(a)는 글로벌 셔터기술의 카메라로 촬영된 정상 이미지이고, 도 6c의 그림(b)는 IP카메라(2000)의해 왜곡이 발생한 이미지이다. 이때, 서버(1000)가 왜곡된 픽셀(2432)를 정상 픽셀(2431)과 유사하도록 보정하기 위해, 이미지에서 픽셀을 열 단위로 나누어 좌측으로 수평이동 시키게 된다. 이때, 왜곡된 픽셀(2432) 중 보정의 대상이 되는 흑색 픽셀값(2433a)이 좌측으로 이동되게 되면, 본래 흑색 픽셀값(2433a)이 위치한 자리를 기준으로 우측의 픽셀이 흑색 픽셀값(2433a)이 원래 위치한 자리로 오게 되는데, 해당 픽셀이 픽셀값이 없는 경우 단순히 이동으로는 추가적인 왜곡이 발생할 수 밖에 없다. 따라서, 도 6c의 그림(c)와 같이 흑색 픽셀값(2433a)을 좌측으로 이동시킴으로써, 발생하게 되는 빈 픽셀값(2433b)은 상기 빈 픽셀값(2433b)의 인근에 위치한 각 픽셀이 보유한 픽셀값을 통해 보정(예컨대, 픽셀값의 평균값을 이용)을 수행하게 된다. 따라서, 복원된 이미지인 도 6c의 그림(c)는 정상 이미지인 도 6c의 그림(a)와 완벽하게 동일하지 않으나, 보정된 영상 이미지로부터 사람이나 물체를 인식하는 것에는 큰 문제를 가지지 않는다.
따라서, 본 발명에서는 영상데이터의 모든 픽셀을 보정하는 것이 아닌, 영상 이미지에서 사람 혹은 기설정된 상품을 인식하고, 사람 혹은 상품 중 어느 하나에 대응되는 픽셀만을 보정하게 된다.
마지막으로 서버(1000)는 보정된 복수의 상기 영상 프레임을 결합하여, 보정된 영상데이터를 생성한다(S2330).
이는 서버(1000)가 각각의 픽셀값이 보정된 영상 프레임을 순차적으로 연결함으로써, 보정된 영상데이터를 생성하게 된다.
이하는 서버(1000)가 영상데이터에서 사람을 인식하고, 상기 사람에 대한 3D좌표값 생성 및 타당성을 판단하는 기술이다.
도 7은 본 발명의 일 실시예에 따른, 사람 인식 및 사람의 3D좌표를 생성하는 과정을 나타낸 동작흐름도이다.
도 7을 참고하면 서버(1000)는 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 상기 영상데이터 속 사람의 관절포인트를 인식한다(S2500).
구체적으로, 서버(1000)는 서로 다른 위치 또는 각도로 설치된 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 상기 영상데이터 속 사람의 관절에 대한 관절포인트를 인식하게 된다.
이때, 사람의 손가락, 손목, 팔꿈치, 허리, 무릎을 상기 관절포인트로 인식하게 된다.
또한, 서버(1000)는 고객 인식 모델을 이용하여 상기 영상데이터의 2D이미지로부터 상기 사람의 관절포인트를 인식하게 된다. 예를 들어, 고객 인식 모델은 휴먼 키포인트 에스티메이션(human keypoint estimation)을 적용될 수 있고, 이를 바탕으로 영상데이터에서 사람을 인식하여 각각의 관절포인트를 상기 영상데이터의 사람과 매칭하게 된다.
다음으로 서버(1000)는 서로 다른 영상데이터 속 동일한 사람의 관절 포인트 매칭 후 3D좌표 생성한다(S2600).
구체적으로, 서버(1000)는 서로 다른 카메라에서 촬영된 각각의 영상데이터에 포함된 각 사람 중 동일한 사람으로 추정되는 사람의 상기 관절포인트를 매칭하고, 매칭된 관절포인트에 대한 3D 좌표를 생성하게 된다.
이를 수행하기 위해, 서버(1000)는 서로 다른 위치 또는 각도로 설치된 복수의 카메라에서 각각 촬영된 관절포인트끼리 매칭될 수 있는 최대 경우의 수를 산출하게 된다. 이후, 서버(1000)는 단계(S2600) 내지 단계(2800)를 반복하되, 각각의 관절포인트마다 최대 경우의 수 이내로 횟수를 반복하며, 타당성 판별을 통해 경우의 수를 줄여나가 동일한 인물의 관절포인트에 대한 3D좌표를 결정하게 된다.
이때, 단계(S2600)에서 관절포인트 매칭 및 3D좌표 생성방법은 후술할 도 8a를 통해 구체적으로 설명하도록 한다.
다음으로 서버(1000)는 생성된 3D좌표를 2D좌표로 투영하여 관절 포인트의 타당성 검증한다(S2700).
구체적으로, 서버(1000)는 3D좌표를 2D평면으로 재투영하여 산출된 투영된 2D좌표와 영상데이터 속 관절포인트의 실제 2D좌표를 비교함으로써, 매칭된 관절포인트가 동일한 사람을 지칭하는 것이 맞는지 검증하게 된다.
이때, 단계(S2700)에서 매칭된 경우의 수에 대한 타당성 판별은 후술할 도 8b을 통해 구체적으로 설명하도록 한다.
마지막으로, 서버(1000)는 비교 결과에 따라, 관절포인트에 대한 3D좌표를결정하게 된다(S2800).
이때, 서버(1000)는 3D좌표가 타당한 것으로 판단되면, 복수의 상기 영상데이터 속의 사람에 대한 상기 매칭된 관절포인트의 3D좌표를 결정한다.
또한, 서버(1000)는 단계(S2600) 내지 단계(S2800)를 다른 관절포인트에 대해서 수행함으로써, 복수의 영상데이터 내에 등장하는 동일한 사람에 대한 모든 관절포인트의 3D좌표를 결정하게 된다.
한편, 관절포인트에 대한 3D좌표에 기초하여 사람의 이동경로를 추적하는 기술이 구현될 수 있으며, 상기의 방법은 후술할 도 8c를 통해 상세하게 설명하도록 한다.
도8a는 본 발명의 일 실시예에 따른, 관절포인트의 3D좌표를 생성하는 과정을 나타낸 동작흐름도이다.
도 8a를 참고하면 서버(1000)는 다른 위치 또는 각도에서 촬영된 복수의 상기 영상데이터에서 상기 매칭된 관절포인트에 대한 각각의 깊이값을 산출한다(S2610).
앞서서 설명한 바와 같이, 서버(1000)는 서로 다른 복수의 영상데이터 속에서 인식된 복수의 사람들 중 동일인물이 매칭될 수 있는 경우의 수를 산출하게 된다.
예를 들어, 도 9a를 참조하면 3개의 카메라(2000)가 각각 서로의 다른 시점을 가지며, 각각의 영상데이터에서 촬영된 사람은 동일 인물 혹은 다른 인물일 수 있으며, 그 숫자도 영상데이터마다 상이할 수 있다. 이때, 서버(1000)는 카메라(2000) 시점1에서 P1은 카메라(2000) 시점2의 P'1 과 매칭되고, P2는 P'2, P3는 카메라(2000) 시점3의 P''1과 매칭상황을 가정하게 된다. 즉, 서버(1000)는 각각의 영상데이터 속에 촬영된 사람들 중 동일한 인물로 추정되는 사람을 매칭하게 된다
이때, 산출되는 경우의 수는 단계(S2700)에서 서버(1000)가 관절포인트의 타당성을 판별함으로써 경우의 수를 줄이고, 최종적으로 매칭된 동일인물에 대한 3D좌표값을 결정하게 된다.
이때, 각각의 경우의 수는 탐색 알고리즘에 기초하여 상기 동일인물을 매칭하되, 탐색 알고리즘은 브루트포스, DFS, BFS 중 어느 하나가 적용될 수 있다.
다음으로, 서버(1000)는 깊이값, 초점거리, 실제 2D좌표 및 주점을 통해 관절포인트의 3D좌표 생성한다(S2620).
구체적으로, 서버(1000)는 깊이값과 각각의 카메라(2000)의 초점거리, 관절포인트에 대한 각각의 영상데이터에서의 실제 2D좌표 및 카메라(2000)의 주점(principal point)에 대한 수치를 기 설정된 행렬에 대입하여 관절포인트에 대한 3D좌표를 산출하게 된다.
이때, 깊이값은 복수의 영상데이터를 통해 산출된 각 관절포인트에 대한 실제 2D좌표, 카메라의 초점거리 및 카메라의 주점에 대한 수치를 투영행렬(projection matrix)과 회전행렬(Rotation matrix)에 대입하여 복수의 영상데이터에 대응되는 깊이값(homogenous) 산출한다.
또한, 서버(1000)는 복수의 깊이값을 연립하여 관절포인트의 3D좌표를 산출하게 된다.
이하는 관절포인트를 통해 3D좌표값을 생성하는 공식이다.
Figure 112021118951811-pat00014
Figure 112021118951811-pat00015
이하의 파라미터값은 Camera calibration intrinsic과 Extrinsic calibration에 의해 산출되는 값임.
Figure 112021118951811-pat00016
상기의 관계식을 통해 깊이값을 산출하고, 산출된 깊이값을 통해 픽셀의 실제 2D좌표를 3D좌표값으로 복원할 수 있게 된다. 이때, 깊이값 s는 3차원 공간 상에 한 점이 2D포인트로 투영될 시, 무수하게 많은 점으로 투영될 수 있으며, 이러한 균질(homogeneous)함을 나타내는 변수이다. 이는, 단일 2D영상 이미지로는 정확한 3D좌표를 복원할 수 없음을 의미하게 된다. 따라서, 동일한 3D점에 대해, 두 개 이상의 카메라(2000)로 생성된 영상 데이터에서 획득된 픽셀값의 페어를 알면, 상기의 수식을 통해 깊이값을 결정할 수 있게 되고, 3D좌표를 결정할 수 있게 된다.
이때, 3D좌표값을 구성하는 X, Y, Z에 대응되는 각 카메라(2000)의 픽셀 좌표(실제 2D좌표)를
Figure 112021118951811-pat00017
라고 가정하면, 아래의 X, Y, Z를 표현할 수 있다.
Figure 112021118951811-pat00018
Figure 112021118951811-pat00019
따라서,
Figure 112021118951811-pat00020
에 대한 연립방정식을 풀어냄으로써 관절포인트의 3D좌표값을 산출할 수 있게 된다.
도 8b는 본 발명의 일 실시예에 따른, 생성된 3D좌표의 타당성을 검토하는 과정을 나타낸 동작흐름도이다.
도 8b를 참고하면 서버(1000)는 3D좌표값을 2D평면에 투영 후 투영된 2D좌표값 생성한다(S2710).
구체적으로, 서버(1000)는 앞서 수행된 과정을 역산하여, 투영된 2D좌표를 생성하게 되는데, 이를 구체적으로 설명하면 아래와 같다.
Figure 112021118951811-pat00021
상기의 공식에서 관절포인트에 대한 3D좌표와 투영 행렬(projection matrix)을 알면, 해당 점에 대응되는 투영된 2D좌표를 구할 수 있게 된다.
예를 들어, 3차원 공간에서의 한 위치를
Figure 112021118951811-pat00022
라 가정하자. 이에 해당하는 제 1 카메라(2000)로부터 생성된 제 1 영상데이터에서의 픽셀 좌표를
Figure 112021118951811-pat00023
이라 하고, 제 2 카메라(2000)로부터 생성된 제 2 영상데이터에서 대응하는 픽셀좌표를
Figure 112021118951811-pat00024
으로 정의해본다. 이때,
Figure 112021118951811-pat00025
로부터 3차원 점으로 대응될 수 있는 점은
Figure 112021118951811-pat00026
부터
Figure 112021118951811-pat00027
등 직선상의 무수히 많은 좌표와 대응될 수 있다. 이때, 제 2 영상데이터에서
Figure 112021118951811-pat00028
와 무관한 어느 한 점을
Figure 112021118951811-pat00029
로 가정하고,
Figure 112021118951811-pat00030
Figure 112021118951811-pat00031
이 동일한 3D좌표에 대한 매칭쌍으로 얻어진다면
Figure 112021118951811-pat00032
를 상기의 투영 행렬을 통해 구할 수 있게 된다.
이때, 산출된 3D좌표는 다시 2D평면으로 투영할 수 있는데, 정상적인 매칭쌍이라면 원래의 매칭쌍과 같은 위치(이는 오차를 포함하며, 근접한 위치)에 투영되어야 한다. 제 1 영상데이터로부터 2D투영된 한 좌표를
Figure 112021118951811-pat00033
, 제 2 영상데이터로부터 2D투영된 한 좌표를
Figure 112021118951811-pat00034
라고 정의하는 경우, 원래의 매칭쌍과의 평균제곱근편차를 산추하면, 일정 이하의 값이 산출되어야 한다. 이때, 좌표쌍에 대한 평균제곱근편차는 아래의 수학식7과 수학식8과 같이 정의한다.
Figure 112021118951811-pat00035
Figure 112021118951811-pat00036
이때,
Figure 112021118951811-pat00037
에 대해 임계값 이하이면 정확한 매칭쌍이라 판단하되, 매칭이 잘못된 경우, 임계값보다 커지게 된다.
다음으로, 서버(1000)는 투영된 2D좌표 및 실제 2D좌표에 대한 평균제곱근편차(RMSE : Root Mean Square Error )의 차이값을 산출한다(S2720).
마지막으로, 서버(1000)는 차이값을 기설정된 임계값과 비교한다(S2730).
이때, 서버(1000)는 차이값이 기 설정된 임계값보다 낮으면, 매칭된 관절포인트들이 동일한 사람의 관절인 것으로 결정하게 된다.
반대로, 서버(1000)는 평균제곱근편차가 상기 임계값보다 높으면 서로 다른 상기 영상데이터 속 특정 사람의 관절포인트가 잘못 매칭된 것으로 판단하게 된다.
그에 따라, 서버(1000)는 단계(S2600)로 돌아가, 서로 다른 관절포인트와 매칭하여 다시 진행하게 된다.
상기의 과정(타당성 검증)을 수행하는 근본적인 이유를 도 9b를 통해 설명하면, 각각의 영상데이터 속 사람이 여러 명이며 머리 좌표에 대응점(3D좌표)을 찾는다고 가정하면, m1의 경우와 같이 올바르게 매칭되는 경우의 수, m2와 같이 잘못된 매칭이 된 경우의 수가 산출될 수 있다.
이때, 매칭의 타당성을 판단하기 위하여 2D좌표 쌍으로 구하게 된 3D좌표를 다시 2D로 투영한 후 원래의 2D좌표와 평균제곱근편차를 계산하여 임계값 이하이면 올바른 매칭으로 판단하게 된다. 따라서, m2의 경우 p1, p'2픽셀 좌표로 산출한 3D좌표를 다시 2D좌표로 재투영해도, 점 p1, p'2와 평균제곱근편차를 산출할 시 임계값보다 크게 산출될 수 밖에 없다.
삭제
또한, 서버(1000)는 상기의 과정을 수행한 이후, 3D좌표에 대한 중복체크를 수행한 후, 특정 사람의 것으로 판단된 복수의 관절포인트의 3D좌표 간의 위치나 거리값을 산출하고, 관절포인트의 3D좌표가 사람의 형태가 맞는지 여부를 통해 3D좌표의 타당성을 추가로 판단하게 된다.
도 8c는 본 발명의 일 실시예에 따른, 사람의 이동 경로를 추적하기 위한 방법을 나타낸 동작흐름도이다.
도 8c를 참고하면 서버(1000)는 연속된 프레임으로부터 허리의 3D좌표를 2D평면에 투영하고, 사람의 좌표의 단위 벡터를 산출한다(S2810).
다음으로, 서버(1000)는 이전에 추적된 3D좌표와 2D로 투영되면서 신규로 생성된 2D좌표의 벡터간 유사도를 산출한다(S2811).
구체적으로, 추적된 3D좌표는 특정 인물에 대해 이전 프레임에서 이미 추적이 진행되어 트랙값이 부여된 3D좌표를 뜻한다.
또한, 새롭게 산출된 2D좌표는 2D평면에서의 중심점 간의 거리를 통해 벡터값을 산출하여, 이전에 추적된 3D좌표의 벡터값과 비교를 수행하게 된다.
다음으로 서버(1000)는 허리의 3D좌표 간의 비용함수를 산출한다(S2812).
구체적으로, 비용함수는 이하의 수학식9를 통해 산출하게 된다.
Figure 112021118951811-pat00038
Figure 112021118951811-pat00039
수학식9를 통해 산출된 비용함수는 단계(S2820)에서 기설정된값 이하인지 여부를 판단하고, 추적 중인 3D좌표의 타당성을 1차적으로 판단하게 된다.
다음으로, 서버(1000)는 3D좌표에 대한 비용함수의 값이 기설정된 값 이하인지 판단한다(S2820).
만약, 허리의 3D좌표 간의 거리가 기설정된 값 이하이면, 서버(1000)는 기생성된 트랙값 중에서 허리의 3D좌표 간의 거리가 기설정된 값 이하인 트랙값을 탐색하고(S2821), 탐색의 결과로 산출된 트랙값에 현재의 허리의 3D좌표를 업데이트하게 된다(S2822).
이는, 일반적으로 매장 내에서 사람이 움직일 수 있는 거리와 속도는 제한적이기에, 각각의 프레임별 동일인물로 추정되는 사람의 특정 신체부위가 갑작스럽게 이동될 수 없다. 예를 들어, 앞서 서술한 허리 좌표가 (1, 1, 1)에서 (5, 10, 9)와 같이 1프레임만에 갑작스럽게 변화된다면, 이는 다른 인물로 판단하는 것이 타당하다.
다음으로, 서버(1000)는 허리의 3D좌표 간의 거리가 기설정된 값 이상이면, 기생성된 트랙값의 개수와 현재 프레임에서 허리의 3D좌표 개수를 비교하여 상기 트랙값의 타당성을 판별한다(S2830).
만약, 기생성된 트랙값의 개수가 허리의 3D좌표 개수 이상이면, 서버(1000)는 기생성된 트랙값 중에서 허리의 3D좌표 간의 거리가 기설정된 값 이하인 상기 트랙값을 탐색하고(S2831), 탐색의 결과로 산출된 트랙값에 현재의 허리의 3D좌표를 업데이트하게 된다(S2832).
이는, 서버(1000)가 영상데이터에서 인식한 사람과 트랙값의 숫자가 일치하는지 여부를 판단하는 것으로, 트랙값의 숫자가 허리의 3D좌표보다 많다면 새로운 사람이 인식되지 않은 것으로 판단하게 된다.
마지막으로 서버(1000)는 단계(S2830)에서의 결과에 따라 새 트랙값을 생성하거나, 기존 트랙값을 업데이트하게 된다(S2840).
이때, 서버(1000)는 단계(S2830)에서 기생성된 상기 트랙값의 개수가 허리의 3D좌표 개수 이하이면, 허리의 3D좌표를 통해 신규 트랙값을 생성하게 된다.
즉, 영상데이터 상에서 인식된 허리의 3D좌표의 개수가 트랙값의 개수 많다면, 새로운 사람이 영상데이터에서 출현했기 때문이며, 서버(1000)는 새로운 사람에 대한 트랙값을 생성하게 된다.
이하는 서버(1000)가 영상데이터에서 구매 또는 반환 이벤트를 인식하기 위한 알고리즘에 관한 기술이다.
도 10은 본 발명의 일 실시예에 따른, 상품의 픽업 혹은 반환 이벤트를 인식하는 과정을 나타낸 동작흐름도이다.
도 10을 참고하면 서버(1000)는 서로 다른 각도 또는 위치에 설치된 복수의 카메라(2000)로부터 복수의 영상데이터를 수신한다(S3100).
다음으로, 서버(1000)는 사람과 상품의 3D좌표 생성 및 상품과 사람의 위치 변화를 추적한다(S3200).
구체적으로, 서버(1000)는 2D영상데이터와 상기 복수의 영상데이터 속에서 인식된 상품과 사람에 대한 3D좌표 변화를 기반으로 상기 상품과 사람의 위치 변화를 추적하게 된다.
이때, 단계(S3200)을 통해 수행되는 사람과 상품을 인식하고, 위치의 변화를 산출하는 과정은 아래의 이후에 설명할 2가지 방식에 의해 수행된다. 예를 들어, 2D영상데이터를 바탕으로 진열대(3000) 상에서 상품을 인식하고 위치 변화를 감지하거나, 손의 3D좌표를 산출하여 진열대(3000) 상에서 손이 어디 있는지 판단하는 등이 각각 별도로 수행되어, 결과를 상호 보완하게 된다.
따라서, 후술할 도 11a를 통해 2D영상데이터에서 상품 위치 변화를 인식하는 과정을 설명하고, 도 11b를 통해 3D좌표를 산출하는 과정을 설명하도록 한다.
다음으로, 서버(1000)는 진열대(3000)에서 사람의 손과 상품의 위치 변화를 인식한다(S3300).
구체적으로, 서버(1000)는 진열대(3000)에서 상품이 진열되는 진열 공간 내에서 상품을 집거나 놓아 두기 위해, 진열 공간 상에 진입된 사람의 손과 각각의 상품의 위치 변화에 기반하여 상품 위치 변화를 인식하게 된다.
마지막으로 서버(1000)는 상품의 위치 변화에 따라 픽업 혹은 반환 이벤트를 결정한다(S3400).
구체적으로 서버(1000)는 단계(S3300)에서 인식한 사람의 손과 상품의 위치 변화에 따르는 이벤트가 픽업 이벤트인지 반환 이벤트인지 여부를 결정하게 된다.
앞서 다른 기술과 함께 설명한 바와 같이, 픽업 이벤트는 사람이 진열대에서 상기 상품을 픽업하는 행동을 뜻하고, 상기 반환 이벤트는 상기 사람이 들고 있는 상기 상품을 상기 진열대에 반환하는 행동을 뜻한다.
이때, 상품에 대한 픽업 이벤트 혹은 반환 이벤트의 구분은 도 11c를 통해 후술하도록 한다.
또한, 단계(S3400) 이후, 서버(1000)는 반환 이벤트가 진행된 후 진열대(3000)로부터 진열대(3000)에 배치되어야 하는 상품과 다른 상품이 기 설정된 횟수 이상 인식되면, 잘못된 반환 이벤트가 발생한 것으로 인식하게 된다.
예를 들어, 특정 상품만을 진열하는 진열대(3000)로부터 특정 상품과 다른 상품이 인식되는 경우는 이미 상품을 들고 있는 고객이 자신이 들고 있는 상품을 빠르게 반환하기 위해 현재 위치에서 가까운 진열대(3000)로 반환하는 경우 발생할 수 있다. 한편, 서버(1000)는 잘못된 반환 이벤트가 발생한 이후 다른 상품이 인식된 소정의 영역으로부터 다른 상품의 인식횟수가 기 설정된 횟수 이하이면, 다른 상품에 대한 구매 이벤트가 진행된 것으로 결정한다. 즉, 서버(1000)는 잘못된 반환 이벤트에 대응되는 상품이 더 이상 인식되지 않는 경우 해당 상품이 판매되었음을 손쉽게 인지하게 된다.
도 11a는 본 발명의 일 실시예에 따라, 2D영상데이터를 통해 상품을 인식하고 위치 변화를 감지하는 방법을 나타낸 동작흐름도이다.
도 11a를 참고하면 서버(1000) 2D영상데이터 속 진열대(3000) 내에 배치된 상품의 이미지를 인식하고, 인식된 상품의 위치를 저장한다(S3210).
이때, 서버(1000)는 진열대(3000)에 배치된 상품을 하기의 2가지 실시예를 통해 인식 및 위를 저장하게 된다.
먼저, 제 1 실시예로 서버(1000)는 단계(S3210) 이전에 상품에 대한 이미지 및 크기 정보를 기저장하게 된다. 이후, 서버(1000)는 2D영상데이터속 상품은 기 저장된 상품에 대한 이미지 및 크기 정보와 비교를 통해 진열대(3000)에 배치된 상품을 인식하게 된다.
다음으로 제 2 실시예로 서버(1000)는 진열대(3000)의 진열 공간(3100)을 소정의 넓이를 갖는 영역으로 나누고, 상품이 진열 공간 상에 배치되는 영역에 기초하여 위치를 저장하게 된다. 구체적으로, 도 12a를 참조하면 서버(1000)는 영상데이터를 통해 인식된 진열대(3000)의 진열 공간(3100)는 각 영역을 나누거나, 가상의 좌표계를 생성하게 된다. 이후, 도 12b와 같이 가상으로 나눠진 영역에 배치된 상품(3200)이 진열 공간(3100)의 어느 영역에 위치하는지 인식하게 된다. 이때, 앞서 설명한 바와 같이 가상의 좌표계를 통해 상품(3200)의 위치를 저장하거나, 상품(3200)이 진열 공간(3100)의 가상으로 나눠진 영역 중 가리는 영역을 인식하는 등의 방법을 통해 상품(3200)의 위치를 식별하게 된다.
다음으로, 서버(1000)는 진열대(3000) 내에 배치된 상품 중 서로 겹치게 배치된 상품이 있는지 유무를 판단한다(S3220).
이때, 서버(1000)는 2D영상데이터로부터 인식된 특정 상품(3200b)의 이미지가 특정 상품(3200b)의 전체 이미지에 비해 기 설정된 비율보다 낮은 경우, 특정 상품(3200b)이 다른 상품(3200)과 겹쳐 배치된 것으로 판단하게 된다.
예를 들어, 도 12e를 참고하면, 2D영상데이터 상에서 특정 상품(3200b)과 같이 2개 이상의 상품(3200)이 겹쳐서 인식될 수 있다. 이러한 경우 서버(1000)는 특정 상품(3200b)이 올바르게 인식될 경우 상품(3200)의 넓이(혹은 크기)와 2D영상데이터 속의 특정 상품(3200b)이 인식된 넓이(혹은 크기)를 비교하게 되고, 기 설정된 비율보다 작은 경우 겹친 상태로 인식하게 된다.
마지막으로, 서버(1000)는 단계(S3210) 및 단계(S3220)에서 저장된 특정 상품의 위치에 대한 변화를 인식한다(S3230).
만약, 단계(S3210)에서 진열 공간(3100)에 대해 가상의 영역 혹은 좌표계를 통해 상품(3200)의 위치를 저장했다면, 단계(S3230)에서 서버(1000)는 복수의 상품(3100)이 진열 공간(3200)에 위치하면 각각의 상기 상품의 위치를 구분하여 인식하되, 특정 영역에 위치한 특정 상품(3200a)이 다른 영역으로 위치가 변화되면 특정 상품(3200b)의 위치 변화를 추적하여 저장하게 된다.
예를 들어, 도 12e를 다시 참고하면, 특정 상품(3200a)이 도면 상에 도시된 바와 같이 특정 영역에서 다른 영역으로 이동하게 되는 경우 이동된 특정 영역을 인식하거나, 특정 상품(3200a)에 의해 가려진 특정 영역을 서버(1000)가 인식하는 방법 등을 통해 특정 상품(3200a)의 이동을 인식하게 된다.
도 11b는 본 발명의 일 실시예에 따라, 사람의 손에 대한 이동 경로를 추적하는 과정을 나타낸 동작흐름도이다.
도 11b를 참고하면, 서버(1000)는 2D 영상데이터로부터 사람의 기설정된 관절을 인식하고, 각각의 관절에 대한 3D좌표를 생성하게 된다(S3240).
이때, 서버(1000)는 동일한 사람이 촬영된 복수의 2D영상데이터의 각각으로부터 인식된 관절의 2D좌표를 평균 제곱근 편차(RMSE; Root mean square deviation)에 기초하여 산출하게 된다.
다음으로, 서버(1000)는 영상데이터의 프레임별 특정 관절에 대한 3D좌표의 변화에 기반하여, 사람의 위치 또는 특정 관절에 대응되는 특정 신체의 위치를 추적하게 된다(S3250).
이는, 단계(S3240)에서 생성된 각 프레임 별 특정 관절에 대한 3D좌표를 이어감으로써, 위치의 변화를 인식하게 된다.
마지막으로 서버(1000)는 영상데이터의 프레임별 진열대 상에서 사람의 손에 대응되는 3D좌표를 산출한다(S3260).
이때, 손의 3D좌표를 2D이미지로 투영하여 투영된 2D좌표를 생성하고, 상기 투영된 2D좌표를 기반으로 상기 진열대 상에서 상기 손의 위치를 산출하게 된다.
예를 들어 도 12c를 참고하면, 진열 공간(3100) 상에 가상의 좌표계가 형성되면, 사람의 손(3300)의 위치를 2D이미지로 투영하고, 영상데이터의 각 프레임별 손(3300)의 2D좌표를 산출하게 된다. 이후 서버(1000)는 각 프레임별 손(3300)의 2D좌표를 연결하여 손(3300)의 이동 경로를 산출하게 된다.
도 11c는 본 발명의 일 실시예에 따라, 상품에 대해 발생한 이벤트를 구분하고, 그 타당성을 산출하는 과정을 나타낸 동작흐름도이다.
도 11c를 참고하면, 서버(1000)는 사람의 손(3300)과 상품(3200)의 위치에 기반하여 이벤트를 구분한다(S3310).
구체적으로, 서버(1000)는 영상데이터의 소정의 프레임 구간에 따라 진열대(3000) 상에서 인식된 손(3300)의 위치 변화, 각 프레임별 손(3300)에서 인식된 상품(3200)의 빈도수, 상품(3200)에 대한 재고 변화에 기초하여 이벤트를 구분하게 된다.
이때, 이벤트는 픽업 이벤트와 반환 이벤트로 각각 나뉘게 된다.
먼저, 진열대(3000) 안에 위치한 손(3300)의 위치가 진열대(3000) 밖으로 벗어나고, 손(3300)에서 상품(3200)이 인식되는 빈도수가 기 설정된 값 이상이면, 서버(1000)는 상기의 이벤트를 픽업 이벤트로 인식하게 된다.
예를 들어, 도 12d를 참고하면, 사람이 상품(3200)을 구매하기 위해서는 손(3300)을 진열대(3000) 내부로 뻗어야만 한다. 이때, 손(3300)이 진열대(3000) 내부로 진입할 시에는 빈손이지만, 상품(3200)을 집어 들고 진열대(3000)에서 빼는 과정에서는 상품(3200)과 손(3300)이 겹칠 수 밖에 없다. 따라서, 서버(1000)는 진열대(3000) 상에서 인식된 손(3300)이 상품(3200)과 함께 진열대(3000) 밖으로 사라지는 것만을 인식하게 된다면, 이를 픽업 이벤트로 인식할 수 있게 된다.
또한, 진열대(3000) 밖에 위치한 손(3300)의 위치가 진열대(3000) 안으로 들어오고, 손(3300)에서 상품(3200)이 인식되는 빈도수가 기 설정된 값 이상이면, 서버(1000)는 상기의 이벤트를 반환 이벤트로 인식하게 된다.
예를 들어, 도 12d를 참고하면, 사람이 상품(3200)을 반환하기 위해서는, 상품(3200)을 손(3300)에 쥐고, 진열대(3000)에 놓아야만 한다. 따라서, 손(3300)이 진열대(3000) 상에 진입하는 과정에서 이미 손(3300)에는 상품(3200)이 인식될 수 밖에 없다. 따라서, 서버(1000)는 진열대(3000) 상에 상품(3200)을 집고 있는 손(3300)의 진입을 인식한다면, 이를 반환 이벤트로 인식하게 된다.
다음으로 서버(1000)는 이벤트 종료 이후 진열대(3000)를 인식하고, 상품(3200)의 재고 변화를 산출하여 이벤트의 타당성을 판단하게 된다(S3320).
즉, 단계(S3310)을 통해 특정 이벤트가 발생하는 경우 진열대(3000) 상에 배치된 상품(3200)의 개수에는 변화가 발생할 수 밖에 없으며, 이를 통해 서버(1000)는 이벤트의 타당성을 판단하게 된다.
이때, 서버(1000)는 진열대(3000) 상의 상품(3200)을 인식하고, 상품(3200)에 대한 재고 및 각 상품(3200)의 위치 변화에 기반하여 이벤트의 오차를 보정하게 된다.
이때, 진열대(3000) 상에 진열된 상품(3200)과 다른 특정 상품(3200)이 인식되면, 이벤트를 반환 이벤트로 인식하게 된다. 이는, 일반적인 상황에서는 특정 진열대(3000)에는 해당 진열대(3000)에 대응되는 상품(3200)만이 배치되지만, 고객이 상품(3200)을 반환하는 과정에서 상품(3200)에 대응되는 특정 진열대(3000)에 상품(3200)을 반환하지 않고, 단순히 자신의 위치와 가까운 진열대(3000)에 상품(3200)을 반환하는 경우도 많기 때문이다.
이하는 서버(1000)가 매장에 구비된 상품의 재고를 판단하는 기술이다
도 13은 본 발명의 일 실시예에 따른, 상품에 대한 재고를 관리하는 과정을 나타낸 동작흐름도이다.
도 13을 참고하면, 서버(1000)는 진열 재고, 창고 재고 및 판매가능재고를 저장한다(S4100).
구체적으로, 서버(1000)는 진열대에 배치된 상품에 대응되는 진열 재고와 창고에 배치된 상품에 대응되는 창고 재고, 매장의 진열대와 창고에 보유되어 있는 전체 상품에 대응되는 판매가능재고를 저장하게 된다.
이때, 서버(1000)는 단게(S4100)이전에 매장에 설치된 카메라(2000)로부터 수집된 진열대(3000)의 영상데이터를 분석하여, 진열대(3000)에 진열중인 상품의 종류, 개수 및 위치를 파악하는 것으로 진열재고를 생성한다.
또한, 관리자 단말에 의해 입고된 상품의 종류 및 개수를 파악하여 상기 창고 재고를 생성하게 된다.
이때, 도 14a를 통해 진열 재고를 산출하는 방법을 설명하면, 서버(1000)는 매장에 설치된 카메라로부터 수집된 영상데이터를 통해 상기 상품을 인식하고, 상기 상품의 면적과 상기 진열대의 면적을 추정하게 된다(S4110).
다음으로, 서버(1000)는 진열대(3000)의 면적과 진열대(3000)에 배치된 상품의 면적, 영상데이터에 포함된 상품의 이미지 및 서버(1000)의 데이터베이스에 기 저장된 각 상품의 외관에 대한 이미지 및 크기 정보를 참고하여, 진열대(3000)에 진열된 상품의 종류 및 개수를 판단하게 된다(S4120).
다음으로, 서버(1000)는 상품의 픽업 혹은 판매행위에 따라 재고를 수정한다(S4200).
구체적으로, 서버(1000)는 매장의 관리자 단말에 의해 창고의 상품 중 진열된 상품에 대한 정보를 수신하는 경우 창고 재고를 차감하게 된다.
또한, 매장에 방문한 고객에 의해 상품 픽업행위가 일어난 것으로 판단된 경우 서버(1000)는 진열 재고를 차감하고, 상품의 구매행위가 일어난 것으로 판단된 경우 판매가능재고를 차감하게 된다.
이때, 서버(1000)는 매장에 설치된 카메라(2000)로부터 수집된 영상데이터를 통해 서버(1000)가 고객의 상품에 대한 픽업 행위가 일어난 것으로 판단하거나, 고객 단말(5000)로부터 스캐닝된 상품 정보를 수신하면, 상품의 픽업행위가 일어난 것으로 판단하게 된다.
반대로, 단계(S4120) 이후 서버(1000)는 관리자 단말로부터 구매행위가 일어난 상품에 대한 반환 정보가 수신되면, 반환 정보에 대응되는 상품에 대한 상기 판매가능재고를 증가시키게 된다.
즉, 도 14b를 통해 상기의 과정을 다시 설명하면, 서버(1000)는 진열된 특정 상품의 진열 재고의 변화를 감지하고(S4210), 특정 상품의 픽업 혹은 결재를 확인하면, 상품에 대한 판매가능재고를 수정하게 된다(S4220).
또한, 서버(1000)는 특정 상품의 진열 재고가 소진된 것으로 판단된 경우 관리자 단말로 알림을 제공하여, 진열대(3000)에 특정 상품을 진열하도록 유도하게 된다.
다른 한편으로, 특정 상품에 대한 판매가능재고가 기 설정된 값 이하이면, 서버(1000)는 관리자 단말로 특정 상품에 대한 발주를 요청 메시지를 전달하여 상품을 보충하도록 유도하게 된다.
상기의 과정은 고객 단말(5000)과 관리자 단말에 의해 수행되고, 각각 고객 단말(5000)에는 고객용 애플리케이션이 설치되며, 관리자 단말에는 관리자용 애플리케이션이 설치되어, 각각의 애플리케이션은 상품의 스캔기능이 포함하게 된다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1000: 서버
5000: 고객 단말

Claims (15)

  1. 서버에 의해 수행되는, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법에 있어서,
    (a) 서로 다른 위치 또는 각도로 설치된 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 상기 영상데이터 속 사람의 관절에 대한 관절포인트를 인식하는 단계;
    (b) 서로 다른 카메라에서 촬영된 각각의 영상데이터에 포함된 각 사람 중 동일한 사람으로 추정되는 사람의 상기 관절포인트를 매칭하고, 매칭된 관절포인트에 대한 3D 좌표를 생성하는 단계;
    (c) 상기 3D좌표를 2D평면으로 재투영하여 산출된 투영된 2D좌표와 상기 영상데이터 속 상기 관절포인트의 실제 2D좌표를 비교함으로써, 상기 매칭된 관절포인트가 동일한 사람을 지칭하는 것이 맞는지 검증하는 단계; 및
    (d) 상기 비교 결과에 따라, 상기 관절포인트에 대한 3D좌표를 결정하는 단계;
    를 포함하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계는
    사람의 손가락, 손목, 팔꿈치, 허리, 무릎을 상기 관절포인트로 인식하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  3. 제 1 항에 있어서,
    상기 (b) 단계는
    (b1) 서로 다른 위치 또는 각도에서 촬영된 복수의 상기 영상데이터에서 상기 매칭된 관절포인트에 대한 각각의 깊이값을 산출하는 단계; 및
    (b2) 상기 깊이값과 각각의 카메라의 초점거리, 상기 관절포인트에 대한 각각의 상기 영상데이터에서의 실제 2D좌표 및 카메라의 주점(principal point)에 대한 수치를 기 설정된 행렬에 대입하여 상기 관절포인트에 대한 상기 3D좌표를 산출하는 단계;를 포함하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계는
    상기 서로 다른 위치 또는 각도로 설치된 복수의 카메라에서 각각 촬영된 관절포인트끼리 매칭될 수 있는 최대 경우의 수를 산출하고,
    상기 (b) 내지 (d) 단계를 반복하되, 각각의 상기 관절포인트마다 상기 최대 경우의 수 이내로 횟수를 반복하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  5. 제 1 항에 있어서,
    상기 (c) 단계는
    (c1) 상기 투영된 2D좌표 및 실제 2D좌표에 대한 평균제곱근편차(RMSE : Root Mean Square Error )의 차이값을 산출하는 단계; 및
    (c2) 상기 차이값이 기 설정된 임계값보다 낮으면, 상기 매칭된 관절포인트들이 동일한 사람의 관절인 것으로 결정하는 단계;
    를 포함하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  6. 제 5 항에 있어서,
    상기 (c2) 단계는
    상기 평균제곱근편차가 상기 임계값보다 높으면 서로 다른 상기 영상데이터 속 특정 사람의 관절포인트가 잘못 매칭된 것으로 판단하고, 상기 (b) 단계에서 서로 다른 상기 관절포인트와 재매칭하여 다시 진행하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  7. 삭제
  8. 제 6 항에 있어서,
    상기 (c2) 단계 이후
    (c3) 상기 3D좌표에 대한 중복체크를 수행한 후, 특정 사람의 것으로 판단된 복수의 상기 관절포인트의 3D좌표 간의 위치나 거리값을 산출하고, 상기 관절포인트의 3D좌표가 사람의 형태가 맞는지 여부를 통해 상기 3D좌표의 타당성을 판단하는 단계;가 더 포함되는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  9. 제 8 항에 있어서,
    상기 (d) 단계는
    상기 3D좌표가 타당한 것으로 판단되면, 복수의 상기 영상데이터 속의 사람에 대한 상기 매칭된 관절포인트의 3D좌표를 결정하고, 상기 (b) 내지 (d) 단계를 다른 관절포인트에 대해서 수행함으로써, 복수의 영상데이터 내에 등장하는 동일한 사람에 대한 모든 관절포인트의 3D좌표를 결정하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  10. 제 1 항에 있어서,
    상기 (d) 단계 이후
    (d1) 상기 영상데이터의 연속된 프레임으로부터 기설정된 허리의 3D좌표를 2D평면에 투영하여 생성된 2D좌표값으로 상기 허리의 3D좌표값에 대한 비용함수 값을 산출하는 단계;
    (d2) 상기 연속된 프레임에서 각각의 상기 허리의 3D좌표에 대한 상기 비용함수 값이 기설정된 값 이하인지 판단하는 단계;
    (d3) 상기 허리의 3D좌표 간의 거리가 기설정된 값 이상이면, 기생성된 트랙값의 개수와 현재 프레임에서 상기 허리의 3D좌표 개수를 비교하여 상기 트랙값의 타당성을 판별하는 단계; 및
    (d4) 기생성된 상기 트랙값의 개수가 상기 허리의 3D좌표 개수 이상이면, 기생성된 상기 트랙값 중에서 상기 허리의 3D좌표 간의 거리가 기설정된 값 이하인 상기 트랙값을 탐색하고, 탐색의 결과로 산출된 상기 트랙값에 현재의 상기 허리의 3D좌표를 업데이트하는 단계;를 포함하고,
    상기 트랙값은 상기 사람의 이동 경로를 뜻하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  11. 제 10 항에 있어서,
    상기 (d1) 단계는
    상기 기설정된 허리의 3D좌표를 2D평면에 투영하여 생성된 상기 2D좌표에 대한 단위 벡터를 산출하여, 이전에 추적된 3D좌표와 상기 기설정된 허리의 3D좌표를 2D평면에 투영하여 생성된 상기 2D좌표에 대한 단위 벡터를 기반으로 방향 벡터의 유사도를 산출하고,
    상기 (d2) 단계 이전에
    상기 허리의 3D좌표 간의 거리, 벡터 유사도 보정 계수 및 방향 벡터의 유사도를 이용하여 상기 허리의 3D좌표에 대한 비용함수를 산출하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  12. 제 10 항에 있어서,
    상기 (d2) 단계 이후
    상기 허리의 3D좌표 간의 거리가 기설정된 값 이하이면, 기생성된 상기 트랙값 중에서 상기 허리의 3D좌표 간의 거리가 기설정된 값 이하인 상기 트랙값을 탐색하고, 탐색의 결과로 산출된 상기 트랙값에 현재의 상기 허리의 3D좌표를 업데이트하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  13. 제 10 항에 있어서,
    상기 (d3) 단계 이후
    기생성된 상기 트랙값의 개수가 상기 허리의 3D좌표 개수 이하이면, 상기 허리의 3D좌표를 통해 신규 트랙값을 생성하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법.
  14. 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 장치에 있어서,
    상기 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 프로그램이 저장된 메모리 및
    상기 메모리에 저장된 프로그램을 실행하여 상기 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 프로세서를 포함하되,
    상기 프로세서는 서버에 의해 수행되는, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법에 있어서, 서로 다른 위치 또는 각도로 설치된 복수의 카메라로부터 영상데이터를 각각 수신하고, 각 상기 영상데이터 속 사람의 관절에 대한 관절포인트를 인식하고, 서로 다른 카메라에서 촬영된 각각의 영상데이터에 포함된 각 사람 중 동일한 사람으로 추정되는 사람의 상기 관절포인트를 매칭하고, 매칭된 관절포인트에 대한 3D 좌표를 생성하고, 상기 3D좌표를 2D평면으로 재투영하여 산출된 투영된 2D좌표와 상기 영상데이터 속 상기 관절포인트의 실제 2D좌표를 비교함으로써, 상기 매칭된 관절포인트가 동일한 사람을 지칭하는 것이 맞는지 검증하고, 상기 비교 결과에 따라, 상기 관절포인트에 대한 3D좌표를 결정하는 것인, 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 장치.
  15. 제 1 항에 의한 복수의 카메라 영상으로부터 객체의 3D좌표를 생성하는 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독가능 저장매체.
KR1020210138385A 2021-03-30 2021-10-18 사람의 3d좌표를 생성하고 3d좌표의 타당성을 검토하는 장치 및 방법 KR102540744B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210041084 2021-03-30
KR20210041084 2021-03-30

Publications (2)

Publication Number Publication Date
KR20220136050A KR20220136050A (ko) 2022-10-07
KR102540744B1 true KR102540744B1 (ko) 2023-06-12

Family

ID=83595972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210138385A KR102540744B1 (ko) 2021-03-30 2021-10-18 사람의 3d좌표를 생성하고 3d좌표의 타당성을 검토하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102540744B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102594983B1 (ko) * 2023-03-07 2023-10-27 주식회사 아임토리 스마트팩토리 기반 협동로봇 궤적 분석을 이용한 안전거리 확보 서비스 제공 시스템
KR102581701B1 (ko) * 2023-04-17 2023-09-26 주식회사 파인더스에이아이 매장의 결제 서비스를 제공하는 전자 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101446422B1 (ko) 2013-04-05 2014-10-30 고려대학교 산학협력단 영상 감시 시스템 및 방법
JP2019079487A (ja) 2017-10-25 2019-05-23 日本電信電話株式会社 パラメータ最適化装置、パラメータ最適化方法、プログラム
WO2020061432A1 (en) 2018-09-21 2020-03-26 Cubic Corporation Markerless human movement tracking in virtual simulation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4148281B2 (ja) * 2006-06-19 2008-09-10 ソニー株式会社 モーションキャプチャ装置及びモーションキャプチャ方法、並びにモーションキャプチャプログラム
CN101681438A (zh) * 2007-03-02 2010-03-24 有机运动公司 跟踪三维对象的系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101446422B1 (ko) 2013-04-05 2014-10-30 고려대학교 산학협력단 영상 감시 시스템 및 방법
JP2019079487A (ja) 2017-10-25 2019-05-23 日本電信電話株式会社 パラメータ最適化装置、パラメータ最適化方法、プログラム
WO2020061432A1 (en) 2018-09-21 2020-03-26 Cubic Corporation Markerless human movement tracking in virtual simulation

Also Published As

Publication number Publication date
KR20220136050A (ko) 2022-10-07

Similar Documents

Publication Publication Date Title
KR102540744B1 (ko) 사람의 3d좌표를 생성하고 3d좌표의 타당성을 검토하는 장치 및 방법
US20200202163A1 (en) Target positioning system and target positioning method
US20210241490A1 (en) Image processing for tracking actions of individuals
KR20190113880A (ko) 가상현실 장면-기반 비즈니스 검증 방법 및 디바이스
CN110692081B (zh) 用于查看确认的系统、便携式终端装置、服务器、程序和方法
US20230410514A1 (en) Information processing apparatus, information processing method, and program
CN111178860A (zh) 无人便利店的结算方法、装置、设备及存储介质
US20200311392A1 (en) Determination of audience attention
CN114943773A (zh) 相机标定方法、装置、设备和存储介质
CN109727097A (zh) 一种配镜方法、装置与系统
CN111429194B (zh) 用户轨迹确定系统、方法、装置及服务器
CN110675426A (zh) 人体跟踪方法、装置、设备及存储介质
KR102100339B1 (ko) 중고거래 사기방지를 위한 중고물품 거래 시스템 및 방법
CN111612637B (zh) 电子设备的保险实现方法和装置
CN110298268B (zh) 单镜头识别双向客流的方法、装置、存储介质及摄像头
KR101935470B1 (ko) 매장 관리 장치 및 방법
KR102540745B1 (ko) 비전 인식을 기반으로 매장을 운영하는 장치 및 방법
KR102530159B1 (ko) 무인점포환경에 따라 제공되는 맞춤형 무인점포 제공 장치 및 방법
KR20230055099A (ko) 상품의 픽업 또는 반환 인식 알고리즘을 구현하는 장치 및 방법
US10824868B2 (en) Image processing for determining relationships between tracked objects
KR20220136048A (ko) Ip카메라에 의해 생성된 영상데이터를 보정하는 장치 및 방법
CN101657841A (zh) 信息提取方法、登记设备、验证设备和程序
JP2012208878A (ja) 画像監視装置
CN111242714A (zh) 产品推荐方法及装置
KR101618308B1 (ko) 미러월드 기반 인터랙티브 온라인 쇼핑몰 구축을 위한 파노라마 영상 획득 및 객체 검출이 가능한 시스템

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right