KR20220098895A - 인체 포즈 추정 장치 및 방법 - Google Patents

인체 포즈 추정 장치 및 방법 Download PDF

Info

Publication number
KR20220098895A
KR20220098895A KR1020210000757A KR20210000757A KR20220098895A KR 20220098895 A KR20220098895 A KR 20220098895A KR 1020210000757 A KR1020210000757 A KR 1020210000757A KR 20210000757 A KR20210000757 A KR 20210000757A KR 20220098895 A KR20220098895 A KR 20220098895A
Authority
KR
South Korea
Prior art keywords
feature maps
unit
joint
human body
extracted
Prior art date
Application number
KR1020210000757A
Other languages
English (en)
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 주식회사 케이티
Priority to KR1020210000757A priority Critical patent/KR20220098895A/ko
Publication of KR20220098895A publication Critical patent/KR20220098895A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

경량화된 피라미드 구조의 딥러닝 네트워크를 이용하여 입력 영상에서 인체 포즈를 빠르고 정확하게 추정하기 위한 인체 포즈 추정 장치 및 방법이 개시된다. 일 실시예에 따른 영상에서 인체 포즈를 추정하는 인체 포즈 추정 장치는, 적어도 하나의 카메라에서 촬영된 복수의 프레임으로 구성된 입력 영상을 저장하는 저장부; 및 피라미드 구조의 딥러닝 네트워크를 이용하여 상기 입력 영상의 각 프레임에서 관절 좌표를 추출하는 포즈 추출부를 포함하고, 상기 포즈 추출부는, 입력 데이터로부터 서로 다른 해상도의 복수의 특징 맵을 생성하는 복수의 스테이지; 및 상기 복수의 스테이지의 마지막 스테이지에서 출력되는 복수의 특징 맵을 혼합하여 각 프레임별로 각 관절 부위별 히트 맵을 생성하는 혼합층을 포함하고, 상기 복수의 스테이지 및 상기 혼합층 중 적어도 하나의 스테이지 또는 혼합층은, 입력되는 복수의 특징 맵 간의 관계 및 각 특징 맵 내의 픽셀 간의 관계를 반영한 복수의 특징 맵을 생성하는 어텐션 모듈을 포함한다.

Description

인체 포즈 추정 장치 및 방법{Apparatus and method for estimating the pose of the human body}
본 발명은 영상에서 인체 포즈를 추정하기 위한 인체 포즈 추정 장치 및 방법에 관한 것으로, 보다 구체적으로 딥러닝 기반으로 영상에서 인체 포즈를 추정하기 위한 인체 포즈 추정 장치 및 방법에 관한 것이다.
인체 포즈 추정 기술은 종래 컴퓨터 비전 기술 분야에서 꾸준히 다뤄진 분야다. 인체 포즈 추정은 인체의 관절 부위를 찾아 인체가 취하고 있는 자세를 추정하는 것으로, 영상에서 관절 부위를 찾아내는 것이 핵심이다. 인체 포즈 추정을 위한 기술로서 컴퓨터 비젼 기술과 머신 러닝 기술이 있다.
컴퓨터 비젼 기술은 픽셀 기반으로 특징을 찾아서 인체의 관절 부위를 찾아내고 머신 러닝 기술은 인체 파트별로 특징들을 클러스터링(Clustering)한 후 각 파트에서 관절을 찾아낸다. 이러한 지역적 특징 지도(local descriptor)를 쓰는 검출 방법은 관절의 관계들 중에 일부만 모델링함으로써, 모든 관절을 확인할 수 없고, 안 보이는 부분을 추측하기에 한계가 있다. 최근 딥러닝 기술이 발전함에 따라 이러한 문제는 다소 해결되었다.
그러나 현재의 딥러닝 기반의 인체 포즈 추정 기술은 대량의 영상을 처리하는데 많은 시스템 자원을 소모하고 아직까지는 추정 정확도가 낮은 실정이다. 특히 단일 카메라에서 촬영되는 단일 시점의 영상으로부터 인체 포즈를 추정하는 경우 촬영 조건에 따라 결과가 매우 달라지고 가려진 관절 부위는 찾지 못하는 한계가 있어, 최근에는 복수의 카메라에서 촬영된 다시점 영상을 이용하여 인체 포즈를 추정하는 시도가 있다. 다시점 영상을 이용하는 경우 딥러닝 네트워크의 깊이(depth)가 깊어져 시스템 자원을 과도하게 사용하고 시간이 오래 걸리는 문제점이 있다.
도 1은 종래의 인체 포즈 추정을 위한 HR(High-Resolution) 네트워크 구조를 나타낸 도면으로, 수평 방향은 네트워크의 깊이(depth)에 대응하고 수직 방향은 특징 맵(feature map)의 스케일(scale)에 대응하는 피라미드 구조이다. 다양한 해상도의 특징 맵을 사용하여 최종적으로 입력 영상에서 각 관절의 위치가 히트 맵(heat map) 형태로 결정된다. 각 스테이지(stage)(또는 층(layer))에서 병렬적으로 다양한 해상도의 특징 맵이 생성된다. 도 1에 도시된 바와 같이, 종래의 인체 포즈 추정을 위한 HR 네트워크는 네트워크의 깊이가 깊다. 예를 들어, 제2 스테이지의 경우 8 단계로 특징 맵이 처리된다. 따라서, 시스템 자원을 과도하게 사용하고 인체 포즈를 추정하는데 오랜 시간이 걸리는 문제점이 있다.
본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 경량화된 피라미드 구조의 딥러닝 네트워크를 이용하여 입력 영상에서 인체 포즈를 빠르고 정확하게 추정하기 위한 인체 포즈 추정 장치 및 방법을 제공하는데 목적이 있다.
또한, 본 발명은, 경량화된 피라미드 구조의 딥러닝 네트워크를 이용하여 다시점 영상에서 인체 포즈를 빠르고 정확하게 추정하기 위한 인체 포즈 추정 장치 및 방법을 제공하는데 다른 목적이 있다.
일 실시예에 따른 영상에서 인체 포즈를 추정하는 인체 포즈 추정 장치는, 적어도 하나의 카메라에서 촬영된 복수의 프레임으로 구성된 입력 영상을 저장하는 저장부; 및 피라미드 구조의 딥러닝 네트워크를 이용하여 상기 입력 영상의 각 프레임에서 관절 좌표를 추출하는 포즈 추출부를 포함하고, 상기 포즈 추출부는, 입력 데이터로부터 서로 다른 해상도의 복수의 특징 맵을 생성하는 복수의 스테이지; 및 상기 복수의 스테이지의 마지막 스테이지에서 출력되는 복수의 특징 맵을 혼합하여 각 프레임별로 각 관절 부위별 히트 맵을 생성하는 혼합층을 포함하고, 상기 복수의 스테이지 및 상기 혼합층 중 적어도 하나의 스테이지 또는 혼합층은, 입력되는 복수의 특징 맵 간의 관계 및 각 특징 맵 내의 픽셀 간의 관계를 반영한 복수의 특징 맵을 생성하는 어텐션 모듈을 포함한다.
상기 복수의 스테이지 각각은, 입력 데이터에 대해 배치 정규화를 수행하는 배치 정규화부; 상기 배치 정규화된 입력 데이터에 비선형 활성화 함수를 적용하는 정류화 선형유닛; 및 상기 정류화 선형유닛의 출력 데이터에 대해 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 컨볼루션부를 포함하는 기본 모듈을 포함할 수 있다.
상기 어텐션 모듈은, 입력되는 복수의 특징 맵 각각에서 최대 픽셀값을 추출하는 최대 풀링과 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 채널 어텐션부; 및 상기 채널 어텐션부에서 출력되는 복수의 특징 맵에서 각 동일 좌표마다 최대 픽셀값을 추출하는 최대 풀링과 각 동일 좌표의 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 공간 어텐션부를 포함할 수 있다.
상기 채널 어텐션부는, 최대 풀링 결과와 평균 풀링 결과 각각에 대해 제1 컨볼루션 연산, 정류화 선형 연산 및 제2 컨볼루션 연산을 순차적으로 수행하여 결합하고, 결합 결과에 활성화 함수를 적용한 후 해당 채널 어텐션부에 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성할 수 있다.
상기 공간 어텐션부는, 최대 풀링 결과와 평균 풀링 결과를 결합하고 그 결과에 대해 컨볼루션 연산 및 활성화 함수 적용을 순차적으로 수행한 후, 해당 공간 어텐션부에 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성할 수 있다.
상기 어텐션 모듈은, 입력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제1 배치 정규화부; 상기 제1 배치 정규화부에서 출력되는 데이터에 비선형 활성화 함수를 적용하는 제1 정류화 선형유닛; 상기 제1 정류화 선형유닛에서 출력되는 데이터에 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 컨볼루션부; 상기 컨볼루션부에서 출력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제2 배치 정규화부; 및 상기 제2 배치 정규화부에서 출력되는 복수의 특징 맵에 비선형 활성화 함수를 적용하여 상기 채널 어텐션부로 출력하는 제2 정류화 선형유닛을 더 포함할 수 있다.
상기 인체 포즈 추정 장치는, 현재 프레임으로부터 추출된 관절 좌표들의 픽셀값이 제1임계값 이상인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 보정부를 더 포함할 수 있다.
상기 인체 포즈 추정 장치는, 현재 프레임으로부터 추출된 관절 좌표들과 이전 프레임으로부터 추출된 관절 좌표들 간의 유클리드 거리가 제2임계값 미만인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 보정부를 더 포함할 수 있다.
상기 인체 포즈 추정 장치는, 특정 시점(view)의 현재 프레임으로부터 추출된 관절 좌표들과 인접 시점(view)의 동일 시간 시퀀스의 현재 프레임에서 추출된 관절 좌표들 간의 유클리드 거리가 제3임계값 미만인 경우, 특정 시점의 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 보정부를 더 포함할 수 있다.
상기 인체 포즈 추정 장치는, 특정 시간 시퀀스에서 획득된 서로 다른 시점의 복수의 카메라 각각의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하고, 해당 3차원 영상을 각 카메라의 2차원 평면에 재투영(reprojection)했을 때 얻어지는 2차원 평면에서의 특정 관절의 좌표들과, 상기 포즈 추출부에서 추출한 각 시점의 특정 관절의 좌표들 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제4임계값 이상인 경우, 해당 관절의 좌표를 오검출로 판단하고, 상기 재투영된 2차원 평면에서의 관절 좌표를 해당 특정 관절의 좌표로 사용하는 보정부를 더 포함할 수 있다.
일 실시예에 따른 인체 포즈 추정 장치가 영상에서 인체 포즈를 추정하는 방법은, 적어도 하나의 카메라에서 촬영된 복수의 프레임으로 구성된 입력 영상을 저장하는 단계; 복수의 스테이지 및 혼합층을 포함하는 피라미드 구조의 딥러닝 네트워크의 각 스테이지에서 입력 데이터로부터 서로 다른 해상도의 복수의 특징 맵을 생성하는 단계; 및 상기 혼합층에서 상기 복수의 스테이지의 마지막 스테이지에서 출력되는 복수의 특징 맵을 혼합하여 각 프레임별로 각 관절 부위별 히트 맵을 생성하여 관절 좌표를 추출하는 단계를 포함하고, 상기 복수의 특징 맵을 생성하는 단계 또는 관절 좌표를 추출하는 단계 중 적어도 하나는, 입력되는 복수의 특징 맵 간의 관계 및 각 특징 맵 내의 픽셀 간의 관계를 반영한 복수의 특징 맵을 생성하는 어텐션 처리를 수행하는 단계를 포함한다.
각 스테이지에서 상기 복수의 특징 맵을 생성하는 단계는, 입력 데이터에 대해 배치 정규화를 수행하는 단계; 배치 정규화된 데이터에 비선형 활성화 함수를 적용하는 단계; 비선형 활성화 함수가 적용된 데이터에 대해 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 단계를 포함할 수 있다.
상기 어텐션 처리를 수행하는 단계는, 입력되는 복수의 특징 맵 각각에서 최대 픽셀값을 추출하는 최대 풀링과 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 채널 어텐션 처리 단계; 및 상기 채널 어텐션 처리 단계에서 출력되는 복수의 특징 맵에서 각 동일 좌표마다 최대 픽셀값을 추출하는 최대 풀링과 각 동일 좌표의 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 공간 어텐션 처리 단계를 포함할 수 있다.
상기 채널 어텐션 처리 단계는, 최대 풀링 결과와 평균 풀링 결과 각각에 대해 제1 컨볼루션 연산, 정류화 선형 연산 및 제2 컨볼루션 연산을 순차적으로 수행하여 결합하고, 결합 결과에 활성화 함수를 적용한 후 해당 채널 어텐션 처리를 위해 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성할 수 있다.
상기 공간 어텐션 처리 단계는, 최대 풀링 결과와 평균 풀링 결과를 결합하고 그 결과에 대해 컨볼루션 연산 및 활성화 함수 적용을 순차적으로 수행한 후, 해당 공간 어텐션 처리를 위해 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성할 수 있다.
상기 어텐션 처리를 수행하는 단계는, 입력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제1 배치 정규화 단계; 상기 제1 배치 정규화 단계에서 출력되는 데이터에 비선형 활성화 함수를 적용하는 제1 정류화 선형 단계; 상기 제1 정류화 선형 단계에서 출력되는 데이터에 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 컨볼루션 단계; 상기 컨볼루션 단계에서 출력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제2 배치 정규화 단계; 및 상기 제2 배치 정규화 단계에서 출력되는 복수의 특징 맵에 비선형 활성화 함수를 적용하여 상기 채널 어텐션 처리를 위해 출력하는 제2 정류화 선형 단계를 더 포함할 수 있다.
상기 방법은, 현재 프레임으로부터 추출된 관절 좌표들의 픽셀값이 제1임계값 이상인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 단계를 더 포함할 수 있다.
상기 방법은, 현재 프레임으로부터 추출된 관절 좌표들과 이전 프레임으로부터 추출된 관절 좌표들 간의 유클리드 거리가 제2임계값 미만인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 단계를 더 포함할 수 있다.
상기 방법은, 특정 시점(view)의 현재 프레임으로부터 추출된 관절 좌표들과 인접 시점(view)의 동일 시간 시퀀스의 현재 프레임에서 추출된 관절 좌표들 간의 유클리드 거리가 제3임계값 미만인 경우, 특정 시점의 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 단계를 더 포함할 수 있다.
상기 방법은, 특정 시간 시퀀스에서 획득된 서로 다른 시점의 복수의 카메라 각각의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하고, 해당 3차원 영상을 각 카메라의 2차원 평면에 재투영(reprojection)했을 때 얻어지는 2차원 평면에서의 특정 관절의 좌표들과, 상기 포즈 추출부에서 추출한 각 시점의 특정 관절의 좌표들 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제4임계값 이상인 경우, 해당 관절의 좌표를 오검출로 판단하고, 상기 재투영된 2차원 평면에서의 관절 좌표를 해당 특정 관절의 좌표로 사용하는 단계를 더 포함할 수 있다.
본 발명은, 피라미드 구조의 딥러닝 네트워크를 경량화하여, 입력 영상에서 인체 포즈를 빠르고 정확하게 추정할 수 잇다. .
또한, 본 발명은, 경량화된 피라미드 구조의 딥러닝 네트워크를 이용하여 다시점 영상에서 인체 포즈를 빠르고 정확하게 추정할 수 있다.
도 1은 종래의 인체 포즈 추정을 위한 HR(High-Resolution) 네트워크 구조를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 인체 포즈의 촬영 환경을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 인체 포즈 추정 장치의 구성을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 네트워크의 구조를 나타낸 도면이다.
도 5는 도 4의 기본 모듈의 구체적인 구성을 나타낸 도면이다.
도 6은 도 4의 어텐션 모듈의 구성을 나타낸 도면이다.
도 7은 상기 채널 어텐션부의 동작 순서를 나타낸 도면이다.
도 8은 상기 공간 어텐션부의 동작 순서를 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 하나의 영상 프레임에 대한 17장의 히트 냅을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 다시점 영상의 각 시점별 영상 프레임의 히트 맵을 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 인체 포즈 추정 방법을 설명하는 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 피라미드 구조의 딥러닝 네트워크에서 관심 영역 영상에서 관절 좌표를 추출하는 방법을 설명하는 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 관절 좌표의 보정 방법을 설명하는 흐름도이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 인체 포즈의 촬영 환경을 나타낸 도면이다. 도 2에 도시된 바와 같이, 적어도 하나의 카메라(210)가 피사체인 인체(220)를 향하도록 설치되어 인체(220)를 촬영한다. 복수의 카메라(210)가 인체(220)를 촬영할 경우 각 카메라(210)는 서로 다른 시점(view)으로 동시에 인체(220)를 촬영한다. 적어도 하나의 카메라(210)는 일정 시간 동안 인체(220)를 촬영하고, 따라서 각 시점별로 복수의 프레임을 포함하는 영상이 생성된다.
도 3은 본 발명의 일 실시예에 따른 인체 포즈 추정 장치의 구성을 나타낸 도면이다. 도 3을 참조하면, 본 실시예에 따른 인체 포즈 추정 장치는, 저장부(310), 관심 영역 추출부(320), 포즈 추출부(330) 및 보정부(340)를 포함한다. 바람직하게, 인체 포즈 추정 장치는, 적어도 하나의 프로세서(예, CPU(Central Processing Unit), GPU(Graphic Processing Unit)), 메모리, 디스플레이 장치 및 입력 장치 등을 포함하고, 상기 인체 포즈 추정 장치의 컴포넌트들은 프로그램으로 구현되어 상기 메모리에 저장되고, 상기 적어도 하나의 프로세서에 의해 실행될 수 있다. 또는 상기 인체 포즈 추정 장치의 컴포넌트들은 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있다.
저장부(310)는, 고속 랜덤 액세스 메모리, 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있고, 또는 데이터베이스를 포함할 수 있다. 저장부(310)는, 상기 적어도 하나의 카메라(210)에서 촬영된 영상을 저장한다. 복수의 카메라(210)의 경우, 각 시점별, 즉 각 카메라별로 영상이 분류되어 저장될 수 있다. 영상은 일정 기간 동안 촬영된 데이터로서 복수의 프레임으로 구성될 수 있다.
관심 영역 추출부(320)는, 상기 저장부(310)로부터 적어도 하나의 카메라(210)에서 촬영된 영상을 수신하고, 영상의 각 프레임에서 인체 포즈 추출을 수행할 관심 영역을 검출한다. 복수의 카메라(210)에서 촬영된 영상의 경우, 관심 영역 추출부(320)는, 각 시점별 영상에 대해 관심 영역을 검출한다. 여기서 관심 영역은 사람이 존재하는 영역이다. 전체 영상에서 인체의 관절을 찾을 경우 추정해야 할 영역이 너무 커 연산량이 많아지고 오류가 발생할 수 있다. 따라서 전체 영상에서 사람이 존재하는 영역만을 인체 포즈를 추정할 영역으로 제한하기 위한 것이다.
관심 영역 추출부(320)는, 영상에서 관심 영역을 검출하는데 있어서 관심 영역을 박스 형태로 검출할 수 있다. 즉, 관심 영역 추출부(320)는, 영상에서 사람이 존재하는 영역을 박스 형태로 검출하고, 해당 박스의 좌상단의 좌표 값(x, y)과 박스의 너비(width), 높이(height)를 저장할 수 있다. 관심 영역 추출부(320)는, 딥러닝 알고리즘을 이용하여 영상에서 관심 영역을 검출할 수 있다. 예를 들어, 보편적으로 많이 사용되는 YOLO 객체 검출 알고리즘을 사용할 수 있다. 관심 영역 검출부(320)는 영상에서 사람이 움직이지 않고 같은 자리에 정지해 있다면 해당 영상의 첫 번째 프레임에서만 관심 영역을 검출하여 연산량을 줄일 수 있다.
관심 영역 추출부(320)는, 영상에서 관심 영역을 검출한 후, 관심 영역의 좌상단의 좌표 값, 너비 및 높이에 기초하여, 영상에서 관심 영역을 잘라낸다(크롭, crop). 바람직하게, 관심 영역 추출부(320)는 영상의 각 프레임마다 관심 영역을 잘라낸다. 또한 관심 영역 추출부(320)는, 잘라내어 추출한 관심 영역의 영상을 임의의 고정된 크기로 변환한다.
바람직하게, 관심 영역 추출부(320)는, 관심 영역의 박스와 임의의 고정된 크기 간의 어파인 변환(affine transform) 매트릭스를 이용하여 관심 영역의 영상을 임의의 고정된 크기의 영상으로 변환한다. 예를 들어, 임의의 크기는 너비 192 픽셀, 높이 256 픽셀일 수 있다. 다시점 영상의 경우 각 시점별로 어파인 변환 매트릭스는 서로 다를 수 있다. 또한, 관심 영역 추출부(320)는, 포즈 추출부(330)의 딥러닝 네트워크를 학습할 때 사용한 학습 데이터들과 동일하도록, 상기 관심 영역의 영상의 RGB 색상 분포를 정규화할 수 있다.
포즈 추출부(330)는, 딥러닝 네트워크로서 피라미드 구조의 고해상도 네트워크를 이용하여, 상기 관심 영역 추출부(320)에서 추출된 각 관심 영역의 영상에서 인체 포즈, 즉 관절 부위를 추출한다. 바람직하게, 포즈 추출부(330)는, 관심 영역의 영상들을 소정 개수의 번들로 묶고, 각 번들에 대해 병렬 처리한다. 예를 들어, 24대의 카메라(210)가 있고, 각 카메라(210)에서 촬영된 각 영상 시퀀스가 100 프레임으로 구성된 경우, 4대의 카메라(210)에서 촬영된 총 400 프레임의 영상을 1개의 번들로 묶고, 총 6개의 번들에 대해 복수의 GPU로 병렬 처리한다. 또는 하나의 카메라(210)가 있는 경우, 해당 하나의 카메라(210)에서 촬영된 영상의 프레임들을 소정 개수씩 하나의 번들로 묶고, 각 번들에 대해 병렬 처리할 수 있다. 이하에서 딥러닝 네트워크인 피라미드 구조의 고해상도 네트워크의 실시예를 도면을 참조하여 구체적으로 설명한다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 네트워크의 구조를 나타낸 도면이다. 도 4에 도시된 바와 같이, 본 실시예에 따른 딥러닝 네트워크는, 종래의 고해상도 네트워크(HR Net, High Resolution Network)의 피라미드 구조를 변형한 것으로, 적어도 하나의 스테이지(또는 층(layer)) 및 혼합 층(fusion layer)에 어텐션 모듈(420)이 포함된다. 스테이지의 수는 설계에 따라 더 포함될 수도 있고 일부 복수의 스테이지는 동일한 형태일 수 있다.
도 4를 참조하면, 각 스테이지(stage 1 내지 stage 3) 및 혼합 층(fusion layer)은, 기본 모듈(410) 및 어텐션 모듈(420)을 포함한다. 모든 스테이지에 어텐션 모듈(420)이 포함될 수 있고, 또는 적어도 하나의 스테이지에만 어텐션 모듈(420)이 포함될 수도 있다. 가장 좋은 성능을 위해서는, 모든 스테이지에 어텐션 모듈(420)이 포함되는 것이 바람직하다. 각 스테이지의 기본 모듈(410)은 특징 맵(feature maps)을 생성한다. 제1 스테이지의 기본 모듈(410)은 입력 영상, 즉 관심 영역의 영상으로부터 특징 맵을 생성하고, 제2, 3 스테이지의 기본 모듈(410)은 이전 스테이지에서 생성된 특징 맵으로부터 또 다른 특징 맵을 생성한다.
도 4에서 수평 방향은 네트워크의 깊이(depth)에 대응하고 수직 방향은 특징 맵(feature map)의 스케일(scale)에 대응한다. 동일한 수평 방향의 각 스테이지의 기본 모듈(410)은 동일한 스케일의 특징 맵을 생성하고, 수직 방향의 각 스테이지의 기본 모듈(410)은 서로 다른 스케일의 특징 맵을 생성한다. 예를 들어, 중간 수평 방향의 특징 맵은, 가장 상위의 수평 방향의 특징 맵보다 해상도가 1/2로 줄어들고, 가장 하위의 수평 방향의 특징 맵은 그 상위의 중간 수평 방향의 특징 맵보다 해상도가 1/2로 줄어든다. 따라서 가장 하위의 수평 방향의 특징 맵은 가장 상위의 수평 방향의 특징 맵보다 해상도가 1/4로 줄어든다.
해상도를 줄이는 것을 다운 샘플링(down sampling), 해상도를 높이는 것을 업 샘플링(up sampling)이라 표현한다. 인접한 스테이지 사이에서 컨볼루션 연산을 수행하는 스트라이드를 조절하여 해상도를 설정할 수 있다. 스트라이드는 컨볼루션(convolution) 연산을 수행할 때 적용하는 필터(또는 커널, 윈도우라 함)의 이동 간격으로서, 예를 들어 2 스트라이드는 필터를 2 칸(또는 픽셀)씩 이동하는 것으로, 2 스트라이드로 컨볼루션 연산을 하면 해상도가 1/2로 줄어든다. 도 4에 도시된 바와 같이, 각 스테이지 사이의 교차(transfer) 구간에서 병렬로 구성되는 서로 다른 해상도의 특징들은 교차 합성된다.
수직 방향으로 갈수록 해상도를 줄이는 대신에 채널의 수는 증가시킨다. 즉, 해상도가 1/2로 줄어들면 채널의 수는 2배로 증가시킨다. 여기서 채널은, 컨볼루션 연산을 할 때 적용되는 필터의 개수에 대응한다. 본 실시예에서 가장 상위의 수평 방향은 32 채널이고, 중간 수평 방향은 64 채널이며, 가장 하위의 수평 방향은 128 채널이다. 즉, 가상 상위의 수평 방향은 32개의 필터를 이용하여 32개의 특징 맵을 출력하고, 중간 수평 방향은 64개의 필터를 이용하여 64개의 특징 맵을 출력하며, 가상 하위의 수평 방향은 128개의 필터를 이용하여 128개의 특징 맵을 출력한다.
도 5는 도 4의 기본 모듈의 구체적인 구성을 나타낸 도면이다. 도 5를 참조하면, 기본 모듈(410)은, 배치 정규화부(510), 정류화 선형유닛(Relu, Rectified linear unit)(520) 및 컨볼루션부(530)를 포함한다. 실시예에 따라서는, 배치 정규화부(510), 정류화 선형유닛(520) 및 컨볼루션부(530)의 세트가 소정 횟수만큼 반복될 수 있다.
본 실시예에 따른 기본 모듈(410)은 일반적인 ResNet(Residual Net) 형태를 그대로 사용하지 않고 변형하였다. ResNet은 딥러닝 네트워크의 층이 깊어질수록 발생하는 그래디언트 소실(gradient vanishing)과 폭주(exploding) 현상을 방지하기 위한 것인데, 일반적으로 컨볼루션 연산을 먼저 한 다음에 배치 정규화(Batch Normalizatio)를 한다. 반면, 본 실시예의 기본 모듈(410)은 그 순서를 변경하여 배치 정규화를 먼저 한 다음에 컨볼루션을 한다. 실험 결과, 기존의 ResNet 형태보다 에러율도 더 낮아지고 성능이 높아진다.
배치 정규화부(510)는, 입력되는 배치 데이터들 간의 상호 작용을 고려하여 평균 0, 표준편차 1인 입력값으로 정규화한다. 실시예에 따라 평균과 표준편차는 0, 1에 제한되지는 않는다. 여기서 배치(batch)는 전체 데이터 중 동시에 처리되는 일부분의 데이터를 의미한다. 본 실시예에서 관심 영역의 영상들을 복수의 GPU로 병렬 처리하므로 병렬 처리하는 데이터들을 안정화할 수 있고, 또한 각 스테이지의 출력값들을 안정할 수 있다.
정류화 선형유닛(520)은, 입력 데이터에서 0보다 작은 값은 0을 출력하고 0보다 큰 값은 그 값을 그대로 출력하는 비선형 활성화 함수(activation function)의 기능을 수행한다. 즉, 정류화 선형유닛(520)은, 입력 데이터에서 음수인 값이 다음 스테이지부터는 영향을 주지 않도록 처리하는 것이다.
컨볼루션부(530)는, 입력 데이터에서 특징을 추출한다. 보다 구체적으로 컨볼루션부(530)는 입력 데이터에 대해 n×m 크기의 행렬로 이루어진 필터를 소정의 스트라이드로 이동시키며 특징을 추출하여 특징 맵을 생성한다. 본 실시예에서 컨볼루션부(530)는 하나의 관심 영역의 영상 프레임에 대해 서로 다른 복수의 필터를 각각 적용하여 필터의 개수만큼의 특징 맵을 생성한다. 도 4의 실시예에서 가장 상위 수평 방향은 32개의 특징 맵을 생성하고, 중간 수평 방향은 64개의 특징 맵을 생성하며, 가장 하위 수평 방향은 128개의 특징 맵을 생성한다.
다시 도 4를 참조하면, 어텐션 모듈(420)은 기본 모듈(410)에서 출력되는 특징 맵들에 대해 중요한 특징은 살리고 불필요한 특징은 죽이는 기능을 수행한다. 영상에서 인체의 관절을 찾기 위해 관절 부분의 특징을 더욱 두드러지게 하고 관절이 아닌 부분의 특징은 죽이는 것이 바람직하다. 어텐션 모듈(420)은 기본 모듈(410)에서 출력되는 특징 맵들에 대해 관절과 관련된 중요한 특징은 살리고 불필요한 특징은 죽여 관절과 관련된 특징이 더욱 두드러지게 한다. 본 실시예에서는 다수의 영상을 동시에 처리하여 관절 위치를 찾기 때문에 속도를 높이고 연산량을 최대한 낮출 필요가 있는데 어텐션 모듈(420)을 도입함으로써 간단한 연산을 통해 종래에 비해 효과적으로 관절 부분의 특징을 추출할 수 있다.
도 6은 도 4의 어텐션 모듈의 구성을 나타낸 도면이다. 도 6을 참조하면, 어텐션 모듈(420)은, 제1 배치 정규화부(610), 제1 정류화 선형유닛(Relu)(620), 컨볼루션부(630), 제2 배치 정규화부(640), 제2 정류화 선형유닛(Relu)(650), 채널 어텐션부(660) 및 공간 어텐션부(670)를 포함한다. 본 실시예에서의 제1, 2 배치 정규화부(610, 640), 제1, 2 정류화 선형유닛(620, 650) 및 컨볼루션부(630)는 각각 도 4를 참조하여 설명한 배치 정규화부(510), 정류화 선형유닛(520) 및 컨볼루션부(530)의 기능과 동일한 기능을 수행하므로 여기서는 상세한 설명을 생략한다.
채널 어텐션부(660)는, 제2 정류화 선형유닛(650)에서 출력되는 복수의 특징 맵을 수신한 후, 각 특징 맵에서 픽셀 간의 관계 정보를 응축하여 새로운 복수의 특징 맵을 생성한다. 보다 구체적으로, 도 7을 참조하여 설명한다. 도 7은 상기 채널 어텐션부(660)의 동작 순서를 나타낸 도면이다.
도 7에 도시된 바와 같이, 채널 어텐션부(660)는, 먼저, 입력되는 복수의 특징 맵의 각각에서 최대 풀링(max pooling)(701)과 평균 풀링(average pooling)(702)을 수행한다. 여기서 최대 풀링(701)은 소정 크기의 필터를 스트라이드 1로 하여 특징 맵을 스캔하여 얻어지는 픽셀값 중 가장 최대값을 추출하는 것이고, 평균 풀링(702)은 상기 소정 크기의 필터를 스트라이드 1로 하여 특징 맵을 스캔하여 얻어지는 픽셀값의 평균값을 추출하는 것이다. 최대 풀링에 의해 생성되는 결과는 1×k(k는 입력되는 특징 맵의 수) 행렬이고, 평균 풀링에 의해 생성되는 결과도 1×k(k는 입력되는 특징 맵의 수) 행렬이다.
다음으로, 최대 풀링 결과와 평균 풀링 결과 각각에 대해 제1 컨볼루션 연산(703, 704), 정류화 선형 연산(705, 706) 및 제2 컨볼루션 연산(707, 708)을 하고, 이어서 각 연산 결과를 합친 후 활성화 함수(예, 시그모이드(sigmoid))(709)를 적용한다. 그리고 활성화 함수(709)를 적용한 결과에 상기 입력된 복수의 특징 맵을 곱하여(710), 새로운 복수의 특징 맵을 생성한다. 따라서, 채널 어텐션부(660)를 통해 채널별 특성이 강조된 특징 정보를 획득할 수 있다.
공간 어텐션부(670)는, 상기 채널 어텐션부(670)에서 출력되는 복수의 특징 맵을 수신한 후, 그 복수의 특징 맵 간의 관계 정보를 응축하여 새로운 복수의 특징 맵을 생성한다. 즉, 채널 어텐션부(670)에서는 각 특징 맵 내에서의 픽셀 간의 관계 정보를 응축하였다면, 공간 어텐션부(670)는 특징 맵 간의 관계 정보를 응축한다. 보다 구체적으로, 도 8을 참조하여 설명한다. 도 8은 상기 공간 어텐션부(670)의 동작 순서를 나타낸 도면이다.
도 8에 도시된 바와 같이, 공간 어텐션부(670)는, 먼저, 상기 채널 어텐션부(670)에서 출력되는 복수의 특징 맵에서 각 동일한 좌표마다 최대 풀링(max pooling)(801)과 평균 풀링(average pooling)(802)을 수행한다. 여기서의 최대 풀링(801)은 복수의 특징 맵에서 각 동일한 좌표마다 가장 최대값을 추출하는 것이고, 평균 풀링(802)은 복수의 특징 맵에서 각 동일한 좌표마다 평균값을 추출하는 것이다. 예를 들어, 각 특징 맵이 n×n 행렬일 때, 각 특징 맵의 좌표 (1, 1)의 값들의 최대값을 추출하고, 또한 좌표 (1, 2)의 값들의 최대값을 추출하는 방식으로, 각 좌표마다 최대값을 추출하여 최대 풀링 결과를 생성한다. 따라서, 최대 풀링 결과와 평균 풀링 결과는 각각 공간 어텐션부(670)에 입력되는 특징 맵과 동일한 크기인 n×n의 행렬이다.
다음으로, 최대 풀링 결과와 평균 풀링 결과를 결합하고(cancatenate)(803), 그 결과에 대해 컨볼루션 연산(804)을 한 후, 활성화 함수(예, 시그모이드(sigmoid))(805)를 적용한다. 그리고 활성화 함수(805)를 적용한 결과에 상기 채널 어텐션부(660)로부터 입력된 복수의 특징 맵을 곱하여(806), 새로운 복수의 특징 맵을 생성한다. 따라서, 공간 어텐션부(670)에서 출력되는 새로운 복수의 특징 맵은, 채널을 고려하지 않고 각 공간 위치의 정보를 추출하여, 공간 상의 주요 정보를 반영할 수 있다.
다시 도 4를 참조하면, 입력 영상은 각 스테이지를 거치면서 서로 다른 해상도의 복수의 특징 맵이 생성되고, 서로 다른 해상도의 복수의 특징 맵은 최종적으로 혼합 층(fusion layer)을 거쳐 동일한 해상도로 혼합되고, 최종적으로 각 영상 프레임마다 각 관절 부위의 특징 지도인 17장의 히트 맵(heat map)이 생성된다. 각 히트 맵에서 가장 큰 값을 갖는 픽셀의 좌표가 관절 부위의 좌표이고, 해당 픽셀의 값이 해당 관절의 신뢰도값이다.
도 9는 본 발명의 일 실시예에 따른 하나의 영상 프레임에 대한 17장의 히트 냅을 나타낸 도면이고, 도 10은 본 발명의 일 실시예에 따른 다시점 영상의 각 시점별 영상 프레임의 히트 맵을 나타낸 도면이다. 도 9에 도시된 바와 같이, 본 발명에 따른 딥러닝 네트워크는, 하나의 관심 영역의 영상 프레임에 대해 17장의 히트 맵을 출력한다. 즉, 17장의 히트 맵은 각각 코, 왼쪽 눈, 오른쪽 눈, 왼쪽 귀, 오른쪽 귀, 왼쪽 어깨, 오른쪽 어깨, 왼쪽 팔꿈치, 오른쪽 팔꿈치, 왼쪽 팔목, 오른쪽 팔목, 왼쪽 엉덩이, 오른쪽 엉덩이, 왼쪽 무릎, 오른쪽 무릎, 왼쪽 발목, 오른쪽 발목 부분의 픽셀값이 가장 크다. 복수의 카메라(210)에서 동시에 촬영된 영상의 경우, 도 10에 도시된 바와 같이, 각 카메라에서 촬영된 영상의 각 프레임마다 17장의 히트 맵이 생성된다. 도 10에서 CMFN는 M 번째 카메라의 N 번째 프레임을 나타내고, (x, y, conf)는 각 히트 맵에서 가장 큰 값의 픽셀 좌표(x, y) 및 해당 값(conf)을 나타낸다.
다시 도 3을 참조하면, 보정부(340)는, 포즈 추출부(330)에서 추출한 각 영상 프레임별 인체 포즈 추출 결과를 보정할 수 있다. 인체 포즈 추출 결과, 즉 각 영상 프레임별 17개의 히트 맵을 살펴보면, 배경의 복잡도, 빛 그림자 등의 영향으로 실제 관절의 위치와 히트 맵의 결과가 일치하지 않는 경우가 발생하는 경우가 있다. 따라서, 보정부(340)는, 포즈 추출부(330)에서 추출한 각 영상 프레임별 인체 포즈 추출 결과, 즉 각 영상 프레임별로 추출된 복수의 히트 맵 각각의 관절 위치의 좌표를 보정한다.
일 실시예에서, 보정부(340)는, 현재 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표의 픽셀값 중 어느 하나라고 제1임계값 미만일 경우, 현재 영상 프레임에서 추출된 각 관절 좌표들은 오검출이라 판단하여 버리고, 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지하고, 제1임계값 이상일 경우에는 이전 영상 프레임에서 추출된 각 관절 좌표를 현재 영상 프레임에서 추출된 각 관절 좌표로 갱신한다.
일 실시예에서, 보정부(340)는, 현재 영상 프레임에서 추출된 복수의 관절 좌표와 이전 영상 프레임에서 추출된 복수의 관절 좌표 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제2임계값 이상인지 판단한다. 이때의 유클리드 거리의 계산은 다음 (수학식1)과 같다.
(수학식1)
Figure pat00001
여기서, distF는 유클리드 거리이고,
Figure pat00002
는 M번째 카메라의 N번째 프레임의 j번째 히트 맵에서 가장 큰 값의 셀 좌표이고,
Figure pat00003
는 M번째 카메라의 N+1번째 프레임의 j번째 히트 맵에서 가장 큰 값의 셀 좌표이다.
보정부(340)는, 상기 (수학식1)에 의해 계산된 유클리드 거리가 제2임계값 이상인 경우, 현재 영상 프레임에서 추출된 관절 좌표들은 오검출이라 판단하여 버리고, 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지하며, 제2임계값 미만인 경우, 이전 영상 프레임에서 추출된 각 관절 좌표를 현재 영상 프레임에서 추출된 각 관절 좌표로 갱신한다.
일 실시예에서, 보정부(340)는, 특정 카메라, 즉 특정 시점(view)의 현재 영상 프레임에서 추출된 복수의 관절 좌표와, 인접한 카메라, 즉 인접 시점의 동일한 시간 시퀀스의 현재 영상 프레임에서 추출된 복수의 관절 좌표 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제3임계값 이상인지 판단한다. 이때의 유클리드 거리의 계산은 다음 (수학식2)와 같다.
(수학식2)
Figure pat00004
여기서, distC는 유클리드 거리이고,
Figure pat00005
는 M번째 카메라의 N번째 프레임의 j번째 히트 맵에서 가장 큰 값의 셀 좌표이고,
Figure pat00006
는 M+1번째 카메라의 N번째 프레임의 j번째 히트 맵에서 가장 큰 값의 셀 좌표이다.
보정부(340)는, 상기 (수학식2)에 의해 계산된 유클리드 거리가 제3임계값 이상인 경우, 해당 특정 카메라의 현재 영상 프레임에서 추출된 관절 좌표들은 오검출이라 판단하여 버리고, 해당 특정 카메라의 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지하며, 제3임계값 미만인 경우, 해당 특정 카메라에 대해 이전 영상 프레임에서 추출된 각 관절 좌표를 현재 영상 프레임에서 추출된 각 관절 좌표로 갱신한다.
일 실시예에서, 보정부(340)는, 특정 카메라의 현재 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표의 픽셀값이 제1임계값 이상이고, 또한, 현재 영상 프레임에서 추출된 복수의 관절 좌표와 이전 영상 프레임에서 추출된 복수의 관절 좌표 간의 유클리드 거리가 제2임계값 미만이며, 또한 현재 영상 프레임에서 추출된 복수의 관절 좌표와, 인접한 카메라, 즉 인접 시점의 동일한 시간 시퀀스의 현재 영상 프레임에서 추출된 복수의 관절 좌표 간의 유클리드 거리가, 제3임계값 미만인 경우에만, 해당 특정 카메라에 대해 이전 영상 프레임에서 추출된 각 관절 좌표를 현재 영상 프레임에서 추출된 각 관절 좌표로 갱신하고, 3가지 조건 중 어느 하나라도 만족하지 않는 경우, 해당 특정 카메라의 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지할 수 있다.
일 실시예에서, 보정부(340)는, 특정 시간 시퀀스에서 획득된 다시점의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하고, 해당 3차원 영상을 각 카메라의 2차원 평면에 재투영(reprojection)했을 때 얻어지는 2차원 평면에서의 특정 관절의 좌표들과, 상기 포즈 추출부(330)에서 추출한 각 시점의 특정 관절의 좌표들 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제4임계값 이상인 경우, 해당 시간 시퀀스에서 추출된 해당 관절의 좌표는 오검출이라 판단하고, 상기 재투영된 2차원 평면에서의 해당 관절의 좌표를 사용한다. 반면, 계산된 유클리드 거리가 제4임계값 미만인 관절의 좌표들은 그대로 사용한다. 다시점의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하는 방법은 이미 공지된 기술이므로 여기서는 상세한 설명을 생략한다.
예를 들어, 1번 관절인 코에 대해 1번에서 24번까지의 총 24개의 카메라의 특정 시간 시퀀스의 각 시점 영상에서 추출된 실제 관절 좌표 (x, y)가 24쌍이 존재한다. 이를 3차원으로 재구성하면 1번 관절인 코에 대해 수렴된 하나의 3차원 좌표 (x, y, z)를 구할 수 있다. 이 좌표를 24개의 2차원 평면으로 재투영하였을 때 획득되는 투영 좌표 (x, y)' 24쌍과 상기 실제 관절 좌표 (x, y) 24쌍 사이의 유클리드 거리를 각각 계산한다. 이 계산된 유클리드 거리가 제4임계값 이상인 경우, 1번 코에 대해 추출한 관절 좌표는 오검출 좌표라 판단하고 상기 투영 좌표 (x, y)'를 해당 코의 보정된 관절 좌표로 사용한다.
도 11은 본 발명의 일 실시예에 따른 인체 포즈 추정 방법을 설명하는 흐름도이다.
도 11을 참조하면, 단계 S1101에서, 인체 포즈 추정 장치는, 적어도 하나의 카메라(210)에서 촬영된 영상을 저장부(310)에 저장한다. 복수의 카메라(210)의 경우, 인체 포즈 추정 장치는, 각 시점별, 즉 각 카메라별로 영상이 분류되어 저장될 수 있다. 영상은 일정 기간 동안 촬영된 데이터로서 복수의 프레임으로 구성될 수 있다.
단계 S1102에서, 인체 포즈 추정 장치는, 상기 저장부(310)에 저장된 각 시점별 영상의 각 프레임에서 인체 포즈 추출을 수행할 관심 영역을 추출한다. 관심 영역은 사람이 존재하는 영역이다. 전체 영상에서 인체의 관절을 찾을 경우 추정해야 할 영역이 너무 커 연산량이 많아지고 오류가 발생할 수 있다. 따라서 전체 영상에서 사람이 존재하는 영역만을 인체 포즈를 추정할 영역으로 제한하기 위한 것이다.
일 실시예에서, 인체 포즈 추정 장치는, 영상에서 관심 영역을 검출하는데 있어서 관심 영역을 박스 형태로 검출할 수 있다. 인체 포즈 추정 장치는, 영상에서 사람이 존재하는 영역을 박스 형태로 검출하고, 해당 박스의 좌상단의 좌표 값(x, y)과 박스의 너비(width), 높이(height)를 저장할 수 있다. 인체 포즈 추정 장치는, 딥러닝 알고리즘을 이용하여 영상에서 관심 영역을 검출할 수 있다. 예를 들어, 보편적으로 많이 사용되는 YOLO 객체 검출 알고리즘을 사용할 수 있다.
일 실시예에서, 인체 포즈 추정 장치는, 영상에서 사람이 움직이지 않고 같은 자리에 정지해 있다면 해당 영상의 첫 번째 프레임에서만 관심 영역을 검출하여 연산량을 줄일 수 있다. 또한 인체 포즈 추정 장치는, 잘라내어 추출한 관심 영역의 영상을 임의의 고정된 크기로 변환한다.
일 실시예에서, 인체 포즈 추정 장치는, 관심 영역의 박스와 임의의 고정된 크기 간의 어파인 변환(affine transform) 매트릭스를 이용하여 관심 영역의 영상을 임의의 고정된 크기의 영상으로 변환할 수 있다. 또한, 인체 포즈 추정 장치는, 상기 관심 영역의 영상의 RGB 색상 분포를 정규화할 수 있다.
단계 S1103에서, 인체 포즈 추정 장치는, 피라미드 구조의 딥러닝 네트워크를 이용하여 상기 각 프레임의 관심 영역 영상에서 관절 좌표를 추출한다. 바람직하게, 인체 포즈 추정 장치는, 관심 영역의 영상들을 소정 개수의 번들로 묶고, 각 번들에 대해 병렬 처리한다. 복수의 GPU로 병렬 처리할 수 있다. 또는 하나의 카메라(210)가 있는 경우, 인체 포트 추정 장치는, 해당 하나의 카메라(210)에서 촬영된 영상의 프레임들을 소정 개수씩 하나의 번들로 묶고, 각 번들에 대해 병렬 처리할 수 있다. 관절 좌표를 추출하는 구체적인 방법은, 도 11을 참좀하여 이하에서 자세히 설명한다.
도 12는 본 발명의 일 실시예에 따른 피라미드 구조의 딥러닝 네트워크에서 관심 영역 영상에서 관절 좌표를 추출하는 방법을 설명하는 흐름도이다. 본 실시예에 따른 피라미드 구조의 딥러닝 네트워크는, 종래의 고해상도 네트워크(HR Net, High Resolution Network)의 피라미드 구조를 변형한 것으로, 적어도 하나의 스테이지(또는 층(layer)) 및 혼합 층(fusion layer)으로 구성된다. 스테이지의 수는 설계에 따라 결정될 수 있고, 일부 복수의 스테이지는 동일한 형태일 수 있다.
각 스테이지는, 기본 모듈(410) 및 어텐션 모듈(420)을 포함할 수 있다. 도 12를 참조하면, 단계 S1201에서, 제1 스테이지의 기본 모듈(410)은, 입력되는 배치 데이터들 간의 상호 작용을 고려하여 배치 데이터를 평균 0, 표준편차 1인 입력값으로 정규화한다. 실시예에 따라 평균과 표준편차는 0, 1에 제한되지는 않는다. 여기서 배치(batch)는 전체 데이터 중 동시에 처리되는 일부분의 데이터를 의미한다. 그리고 정류화 선형유닛(520)은, 입력 데이터에서 0보다 작은 값은 0을 출력하고 0보다 큰 값은 그 값을 그대로 출력하는 비선형 활성화 함수(activation function)의 기능을 수행한다. 즉, 정류화 선형유닛(520)은, 입력 데이터에서 음수인 값이 다음 스테이지부터는 영향을 주지 않도록 처리하는 것이다. 그리고 컨볼루션부(530)는, 입력 데이터에서 특징을 추출한다. 보다 구체적으로 컨볼루션부(530)는 입력 데이터에 대해 n×m 크기의 행렬로 이루어진 필터를 소정의 스트라이드로 이동시키며 특징을 추출하여 특징 맵을 생성한다.
다음으로, 단계 S1202에서, 제1 스테이지의 어텐션 모듈(420)은, 기본 모듈(410)에서 출력되는 복수의 특징 맵에 대해 어텐션 처리를 수행하여 새로운 복수의 특징 맵을 생성한다. 어텐션 처리는, 특징 맵들에 대해 중요한 특징은 살리고 불필요한 특징은 죽이는 처리를 의미한다. 보다 구체적으로, 어텐션 모듈(420)은, 기본 모듈(410)에서 출력되는 복수의 특징 맵에 대해 제1 배치 정규화/제1 비선형 활성화 함수 적용/복수의 필터를 이용한 제1 컨볼루션 연산/제2 배치 정규화/제2 비선형 활성화 함수 적용을 수행한 후, 채널 어텐션 처리 및 공간 어텐션 처리를 순차적으로 수행한다.
채널 어텐션 처리는, 제2 비선형 활성화 함수가 적용된 복수의 특징 맵을 수신한 후, 각 특징 맵에서 픽셀 간의 관계 정보를 응축하여 새로운 복수의 특징 맵을 생성한다. 구체적으로, 입력되는 복수의 특징 맵의 각각에서 최대 풀링(max pooling)과 평균 풀링(average pooling)을 수행한다. 여기서 최대 풀링은 소정 크기의 필터를 스트라이드 1로 하여 특징 맵을 스캔하여 얻어지는 픽셀값 중 가장 최대값을 추출하는 것이고, 평균 풀링은 상기 소정 크기의 필터를 스트라이드 1로 하여 특징 맵을 스캔하여 얻어지는 픽셀값의 평균값을 추출하는 것이다. 최대 풀링에 의해 생성되는 결과는 1×k(k는 입력되는 특징 맵의 수) 행렬이고, 평균 풀링에 의해 생성되는 결과도 1×k(k는 입력되는 특징 맵의 수) 행렬이다. 최대 풀링 결과와 평균 풀링 결과 각각에 대해 제1 컨볼루션 연산, 정류화 선형 연산 및 제2 컨볼루션 연산을 하고, 이어서 각 연산 결과를 합친 후 활성화 함수(예, 시그모이드(sigmoid))를 적용한다. 그리고 활성화 함수를 적용한 결과에 상기 입력된 복수의 특징 맵을 곱하여, 새로운 복수의 특징 맵을 생성한다. 따라서, 채널 어텐션 처리를 통해 채널별 특성이 강조된 특징 정보를 획득할 수 있다.
공간 어텐션 처리는, 상기 채널 어텐션 처리되어 출력되는 복수의 특징 맵 간의 관계 정보를 응축하여 새로운 복수의 특징 맵을 생성한다. 구체적으로, 먼저, 복수의 특징 맵에서 각 동일한 좌표마다 최대 풀링(max pooling)과 평균 풀링(average pooling)을 수행한다. 여기서의 최대 풀링은 복수의 특징 맵에서 각 동일한 좌표마다 가장 최대값을 추출하는 것이고, 평균 풀링은 복수의 특징 맵에서 각 동일한 좌표마다 평균값을 추출하는 것이다. 다음으로, 최대 풀링 결과와 평균 풀링 결과를 결합하고(cancatenate), 그 결과에 대해 컨볼루션 연산을 한 후, 활성화 함수(예, 시그모이드(sigmoid))를 적용한다. 그리고 활성화 함수를 적용한 결과에 상기 채널 어텐션 처리를 위해 입력된 복수의 특징 맵을 곱하여, 새로운 복수의 특징 맵을 생성한다. 따라서, 공간 어텐션 처리되어 출력되는 새로운 복수의 특징 맵은, 채널을 고려하지 않고 각 공간 위치의 정보를 추출하여, 공간 상의 주요 정보를 반영할 수 있다.
이와 같이 제1 스테이지에서의 처리가 완료되면, 다양한 해상도의 복수의 특징 맵이 생성되고, 다음 스테이지인 제2 스테이지에서 단계 S1203 및 단계 S1204가 수행된다. 단계 S1203은, 상기 단계 S1201와 동일한 처리이고, 단계 S1204는 상기 단계 S1202와 동일한 처리이다. 다만 본 실시예의 딥러닝 네트워크는 피라미드 구조로서 제2 스테이지에서는 2개의 스케일 경로에서 단계 S1203 및 단계 S1204가 수행된다. 상위 스케일은 제1 스테이지와 동일한 해상도 처리이고, 하위 스케일은 다운 샘플링된 1/2 해상도에서의 처리이다. 이러한 다음 스테이지의 처리는 마지막 스테이지까지 반복 수행된다. 다만, 각 스테이지 사이의 교차 구간에서는 병렬적으로 구성된 서로 다른 해상도의 특징 맵들을 업 샘플링 및/또는 다운 샘플링하여 교차 합성한다.
모든 스테이지에서의 처리가 완료되면, 단계 S1206에서, 혼합 층은 서로 다른 해상도의 복수의 특징 맵을 동일한 해상도로 혼합하고, 최종적으로 각 영상 프레임마다 각 관절 부위의 특징 지도인 17장의 히트 맵(heat map)을 생성한다. 혼합 층의 단계에서도 어텐션 처리가 수행될 수 있다. 각 히트 맵에서 가장 큰 값을 갖는 픽셀의 좌표가 관절 부위의 좌표이고, 해당 픽셀의 값이 해당 관절의 신뢰도값이다.
도 13은 본 발명의 일 실시예에 따른 관절 좌표의 보정 방법을 설명하는 흐름도이다. 도 11 및 도 12를 참조하여 설명한 방법에 따라, 영상의 각 프레임마다 17장의 히트 맵이 생성된다. 각 히트 맵에서 픽셀값이 가장 큰 좌표가 관절 좌표인데, 본 실시예에서는 특정 프레임에서 추출된 복수의 관절 좌표를 보정하는 방법을 설명한다.
도 13을 참조하면, 단계 S1301에서, 인체 포즈 추정 장치는, 현재 영상 프레임에서 추출된 각 관절 좌표 및 각 관전 좌표의 픽셀값을 저장한다. 여기서 CMFN는 M 번째 카메라의 N 번째 프레임을 나타내고, (x, y, conf)는 각 히트 맵에서 가장 큰 값의 픽셀 좌표(x, y) 및 해당 값(conf)을 나타낸다. 값(conf)은 해당 픽셀 좌표의 신뢰도를 의미한다.
단계 S1302에서, 인체 포즈 추정 장치는, 현재 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표의 픽셀값이 제1임계값 이상인지 확인한다. 만약, 각 관절 좌표 중 어느 하나라도 픽셀값이 제1임계값 미만인 경우, 단계 1308에서 현재 영상 프레임에서 추출된 각 관절 좌표들은 오검출이라 판단하여 버리고, 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지한다.
만약 각 관절 좌표의 픽셀값이 모두 제1임계값 이상인 경우, 단계 S1303에서, 인체 포즈 추정 장치는, 현재 영상 프레임에서 추출된 복수의 관절 좌표와 이전 영상 프레임에서 추출된 복수의 관절 좌표 간의 유클리드 거리(distF)를 계산한다. 이때의 유클리드 거리의 계산은 상기 (수학식1)과 같다.
그리고, 단계 S1304에서, 인체 포즈 추정 장치는, 상기 유클리드 거리(distF)가 제2임계값 미만인지 확인한다. 제2임계값 이상인 경우, 단계 S1308에서 현재 영상 프레임에서 추출된 각 관절 좌표들은 오검출이라 판단하여 버리고, 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지한다.
만약 상기 유클리드 거리(distF)가 제2임계값 미만인 경우, 단계 S1305에서, 인체 포즈 추정 장치는, 현재 영상 프레임에서 추출된 복수의 관절 좌표와, 인접한 카메라, 즉 인접 시점의 동일한 시간 시퀀스의 현재 영상 프레임에서 추출된 복수의 관절 좌표 간의 유클리드 거리(distC)를 계산한다. 이때의 유클리드 거리의 계산은 상기 (수학식2)와 같다.
그리고, 단계 S1306에서, 인체 포즈 추정 장치는, 상기 유클리드 거리(distC)가 제3임계값 미만인지 확인한다. 제3임계값 이상인 경우, 단계 S1308에서 현재 영상 프레임에서 추출된 각 관절 좌표들은 오검출이라 판단하여 버리고, 이전 영상 프레임에서 추출된 복수의 히트 맵에서 추출된 각 관절 좌표를 유지한다.
만약, 상기 유클리드 거리(distC)가 제3임계값 미만인 경우, 단계 S1307에서, 인체 포즈 추정 장치는, 해당 특정 카메라에 대해 이전 영상 프레임에서 추출된 각 관절 좌표를 현재 영상 프레임에서 추출된 각 관절 좌표로 갱신한다.
도 13을 참조하여 설명한 실시예에서는, 제1, 2, 3 임계값 조건을 모두 만족하는 경우에 이전 프레임의 관절 좌표를 현재 프레임의 관절 좌표로 갱신하는 것을 설명한다. 그러나 여기에 제한되는 것은 아니며, 제1, 2, 3 임계값 조건은 각각 독립적인 조건으로서 어느 하나의 조건을 만족하면, 이전 프레임의 관절 좌표를 현재 프레임의 관절 좌표로 갱신할 수 있다.
다른 실시예에서, 인체 포즈 추정 장치는, 특정 시간 시퀀스에서 획득된 다시점의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하고, 해당 3차원 영상을 각 카메라의 2차원 평면에 재투영(reprojection)했을 때 얻어지는 2차원 평면에서의 특정 관절의 좌표들과, 딥러닝 네트워크를 통해 추출한 각 시점의 특정 관절의 좌표들 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제4임계값 이상인 경우, 해당 시간 시퀀스에서 추출된 해당 관절의 좌표를 오검출이라 판단하고, 상기 재투영된 2차원 평면에서의 관절 좌표를 해당 특정 관절의 좌표로 사용할 수 있다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
210 : 카메라
220 : 인체
310 : 저장부
320 : 관심 영역 추출부
330 : 포즈 추출부
340 : 보정부
410 : 기본 모듈
420 : 어텐션 모듈
510, 610, 640 : 배치 정규화부
520, 620, 650 : Relu
530, 630 : 컨볼루션부
660 : 채널 어텐션부
670 : 공간 어텐션부

Claims (20)

  1. 영상에서 인체 포즈를 추정하는 인체 포즈 추정 장치에 있어서,
    적어도 하나의 카메라에서 촬영된 복수의 프레임으로 구성된 입력 영상을 저장하는 저장부; 및
    피라미드 구조의 딥러닝 네트워크를 이용하여 상기 입력 영상의 각 프레임에서 관절 좌표를 추출하는 포즈 추출부를 포함하고,
    상기 포즈 추출부는,
    입력 데이터로부터 서로 다른 해상도의 복수의 특징 맵을 생성하는 복수의 스테이지; 및
    상기 복수의 스테이지의 마지막 스테이지에서 출력되는 복수의 특징 맵을 혼합하여 각 프레임별로 각 관절 부위별 히트 맵을 생성하는 혼합층을 포함하고,
    상기 복수의 스테이지 및 상기 혼합층 중 적어도 하나의 스테이지 또는 혼합층은, 입력되는 복수의 특징 맵 간의 관계 및 각 특징 맵 내의 픽셀 간의 관계를 반영한 복수의 특징 맵을 생성하는 어텐션 모듈을 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  2. 제1항에 있어서,
    상기 복수의 스테이지 각각은,
    입력 데이터에 대해 배치 정규화를 수행하는 배치 정규화부;
    상기 배치 정규화된 입력 데이터에 비선형 활성화 함수를 적용하는 정류화 선형유닛; 및
    상기 정류화 선형유닛의 출력 데이터에 대해 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 컨볼루션부를 포함하는 기본 모듈을 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  3. 제1항에 있어서,
    상기 어텐션 모듈은,
    입력되는 복수의 특징 맵 각각에서 최대 픽셀값을 추출하는 최대 풀링과 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 채널 어텐션부; 및
    상기 채널 어텐션부에서 출력되는 복수의 특징 맵에서 각 동일 좌표마다 최대 픽셀값을 추출하는 최대 풀링과 각 동일 좌표의 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 공간 어텐션부를 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  4. 제3항에 있어서,
    상기 채널 어텐션부는,
    최대 풀링 결과와 평균 풀링 결과 각각에 대해 제1 컨볼루션 연산, 정류화 선형 연산 및 제2 컨볼루션 연산을 순차적으로 수행하여 결합하고, 결합 결과에 활성화 함수를 적용한 후 해당 채널 어텐션부에 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성하는 것을 특징으로 하는 인체 포즈 추정 장치.
  5. 제3항에 있어서,
    상기 공간 어텐션부는,
    최대 풀링 결과와 평균 풀링 결과를 결합하고 그 결과에 대해 컨볼루션 연산 및 활성화 함수 적용을 순차적으로 수행한 후, 해당 공간 어텐션부에 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성하는 것을 특징으로 하는 인체 포즈 추정 장치.
  6. 제3항에 있어서,
    상기 어텐션 모듈은,
    입력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제1 배치 정규화부;
    상기 제1 배치 정규화부에서 출력되는 데이터에 비선형 활성화 함수를 적용하는 제1 정류화 선형유닛;
    상기 제1 정류화 선형유닛에서 출력되는 데이터에 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 컨볼루션부;
    상기 컨볼루션부에서 출력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제2 배치 정규화부; 및
    상기 제2 배치 정규화부에서 출력되는 복수의 특징 맵에 비선형 활성화 함수를 적용하여 상기 채널 어텐션부로 출력하는 제2 정류화 선형유닛을 더 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  7. 제1항에 있어서,
    현재 프레임으로부터 추출된 관절 좌표들의 픽셀값이 제1임계값 이상인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 보정부를 더 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  8. 제1항에 있어서,
    현재 프레임으로부터 추출된 관절 좌표들과 이전 프레임으로부터 추출된 관절 좌표들 간의 유클리드 거리가 제2임계값 미만인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 보정부를 더 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  9. 제1항에 있어서,
    특정 시점(view)의 현재 프레임으로부터 추출된 관절 좌표들과 인접 시점(view)의 동일 시간 시퀀스의 현재 프레임에서 추출된 관절 좌표들 간의 유클리드 거리가 제3임계값 미만인 경우, 특정 시점의 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 보정부를 더 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  10. 제1항에 있어서,
    특정 시간 시퀀스에서 획득된 서로 다른 시점의 복수의 카메라 각각의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하고, 해당 3차원 영상을 각 카메라의 2차원 평면에 재투영(reprojection)했을 때 얻어지는 2차원 평면에서의 특정 관절의 좌표들과, 상기 포즈 추출부에서 추출한 각 시점의 특정 관절의 좌표들 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제4임계값 이상인 경우, 해당 관절의 좌표를 오검출로 판단하고, 상기 재투영된 2차원 평면에서의 관절 좌표를 해당 특정 관절의 좌표로 사용하는 보정부를 더 포함하는 것을 특징으로 하는 인체 포즈 추정 장치.
  11. 인체 포즈 추정 장치가 영상에서 인체 포즈를 추정하는 방법으로서,
    적어도 하나의 카메라에서 촬영된 복수의 프레임으로 구성된 입력 영상을 저장하는 단계;
    복수의 스테이지 및 혼합층을 포함하는 피라미드 구조의 딥러닝 네트워크의 각 스테이지에서 입력 데이터로부터 서로 다른 해상도의 복수의 특징 맵을 생성하는 단계; 및
    상기 혼합층에서 상기 복수의 스테이지의 마지막 스테이지에서 출력되는 복수의 특징 맵을 혼합하여 각 프레임별로 각 관절 부위별 히트 맵을 생성하여 관절 좌표를 추출하는 단계를 포함하고,
    상기 복수의 특징 맵을 생성하는 단계 또는 관절 좌표를 추출하는 단계 중 적어도 하나는,
    입력되는 복수의 특징 맵 간의 관계 및 각 특징 맵 내의 픽셀 간의 관계를 반영한 복수의 특징 맵을 생성하는 어텐션 처리를 수행하는 단계를 포함하는 방법.
  12. 제11항에 있어서,
    각 스테이지에서 상기 복수의 특징 맵을 생성하는 단계는,
    입력 데이터에 대해 배치 정규화를 수행하는 단계;
    배치 정규화된 데이터에 비선형 활성화 함수를 적용하는 단계;
    비선형 활성화 함수가 적용된 데이터에 대해 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    상기 어텐션 처리를 수행하는 단계는,
    입력되는 복수의 특징 맵 각각에서 최대 픽셀값을 추출하는 최대 풀링과 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 채널 어텐션 처리 단계; 및
    상기 채널 어텐션 처리 단계에서 출력되는 복수의 특징 맵에서 각 동일 좌표마다 최대 픽셀값을 추출하는 최대 풀링과 각 동일 좌표의 픽셀값의 평균을 추출하는 평균 풀링을 수행하고, 이를 기초로 새로운 복수의 특징 맵을 생성하는 공간 어텐션 처리 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제13항에 있어서,
    상기 채널 어텐션 처리 단계는,
    최대 풀링 결과와 평균 풀링 결과 각각에 대해 제1 컨볼루션 연산, 정류화 선형 연산 및 제2 컨볼루션 연산을 순차적으로 수행하여 결합하고, 결합 결과에 활성화 함수를 적용한 후 해당 채널 어텐션 처리를 위해 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성하는 것을 특징으로 하는 방법.
  15. 제13항에 있어서,
    상기 공간 어텐션 처리 단계는,
    최대 풀링 결과와 평균 풀링 결과를 결합하고 그 결과에 대해 컨볼루션 연산 및 활성화 함수 적용을 순차적으로 수행한 후, 해당 공간 어텐션 처리를 위해 입력된 복수의 특징 맵을 곱하여 새로운 복수의 특징 맵을 생성하는 것을 특징으로 하는 방법.
  16. 제13항에 있어서,
    상기 어텐션 처리를 수행하는 단계는,
    입력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제1 배치 정규화 단계;
    상기 제1 배치 정규화 단계에서 출력되는 데이터에 비선형 활성화 함수를 적용하는 제1 정류화 선형 단계;
    상기 제1 정류화 선형 단계에서 출력되는 데이터에 복수의 필터를 컨볼루션 연산하여 복수의 특징 맵을 생성하는 컨볼루션 단계;
    상기 컨볼루션 단계에서 출력되는 복수의 특징 맵에 대해 배치 정규화를 수행하는 제2 배치 정규화 단계; 및
    상기 제2 배치 정규화 단계에서 출력되는 복수의 특징 맵에 비선형 활성화 함수를 적용하여 상기 채널 어텐션 처리를 위해 출력하는 제2 정류화 선형 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제11항에 있어서,
    현재 프레임으로부터 추출된 관절 좌표들의 픽셀값이 제1임계값 이상인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제11항에 있어서,
    현재 프레임으로부터 추출된 관절 좌표들과 이전 프레임으로부터 추출된 관절 좌표들 간의 유클리드 거리가 제2임계값 미만인 경우, 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제11항에 있어서,
    특정 시점(view)의 현재 프레임으로부터 추출된 관절 좌표들과 인접 시점(view)의 동일 시간 시퀀스의 현재 프레임에서 추출된 관절 좌표들 간의 유클리드 거리가 제3임계값 미만인 경우, 특정 시점의 이전 프레임에서 추출된 관절 좌표들을 현재 프레임에서 추출된 관절 좌표들로 갱신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  20. 제11항에 있어서,
    특정 시간 시퀀스에서 획득된 서로 다른 시점의 복수의 카메라 각각의 영상 프레임들을 이용하여 피사체인 인체의 3차원 영상을 구성하고, 해당 3차원 영상을 각 카메라의 2차원 평면에 재투영(reprojection)했을 때 얻어지는 2차원 평면에서의 특정 관절의 좌표들과, 상기 포즈 추출부에서 추출한 각 시점의 특정 관절의 좌표들 간의 유클리드 거리를 계산하고, 계산된 유클리드 거리가 제4임계값 이상인 경우, 해당 관절의 좌표를 오검출로 판단하고, 상기 재투영된 2차원 평면에서의 관절 좌표를 해당 특정 관절의 좌표로 사용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020210000757A 2021-01-05 2021-01-05 인체 포즈 추정 장치 및 방법 KR20220098895A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210000757A KR20220098895A (ko) 2021-01-05 2021-01-05 인체 포즈 추정 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210000757A KR20220098895A (ko) 2021-01-05 2021-01-05 인체 포즈 추정 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220098895A true KR20220098895A (ko) 2022-07-12

Family

ID=82419901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210000757A KR20220098895A (ko) 2021-01-05 2021-01-05 인체 포즈 추정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20220098895A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116959120A (zh) * 2023-09-15 2023-10-27 中南民族大学 一种基于手部关节的人手姿态估计方法及***
CN117974740A (zh) * 2024-04-01 2024-05-03 南京师范大学 基于聚合式窗口自注意力机制的穴位定位方法及机器人

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116959120A (zh) * 2023-09-15 2023-10-27 中南民族大学 一种基于手部关节的人手姿态估计方法及***
CN116959120B (zh) * 2023-09-15 2023-12-01 中南民族大学 一种基于手部关节的人手姿态估计方法及***
CN117974740A (zh) * 2024-04-01 2024-05-03 南京师范大学 基于聚合式窗口自注意力机制的穴位定位方法及机器人

Similar Documents

Publication Publication Date Title
US11644898B2 (en) Eye tracking method and system
JP7482181B2 (ja) 画像処理装置、画像処理方法
KR102319177B1 (ko) 이미지 내의 객체 자세를 결정하는 방법 및 장치, 장비, 및 저장 매체
CN109697688B (zh) 一种用于图像处理的方法和装置
US8086027B2 (en) Image processing apparatus and method
US7876931B2 (en) Face recognition system and method
US20210264144A1 (en) Human pose analysis system and method
US20130051626A1 (en) Method And Apparatus For Object Pose Estimation
CN111428575B (zh) 一种基于孪生网络的针对模糊目标的跟踪方法
TW202117611A (zh) 電腦視覺訓練系統及訓練電腦視覺系統的方法
CN111160291B (zh) 基于深度信息与cnn的人眼检测方法
US11354817B2 (en) Method and system for monocular depth estimation of persons
CN111612024A (zh) 特征提取方法、装置、电子设备及计算机可读存储介质
WO2021098576A1 (zh) 手部姿态估计方法、装置及计算机存储介质
CN112581540A (zh) 一种大场景下基于人体姿态估计的相机标定方法
CN110443228B (zh) 一种行人匹配方法、装置、电子设备及存储介质
CN111325828B (zh) 一种基于三目相机的三维人脸采集方法及装置
KR20220098895A (ko) 인체 포즈 추정 장치 및 방법
CN113435367A (zh) 社交距离评估方法、装置及存储介质
JP7312026B2 (ja) 画像処理装置、画像処理方法およびプログラム
WO2023098737A1 (zh) 三维重建方法、电子设备和计算机可读存储介质
US11373382B2 (en) Augmented reality implementation method
Ciou et al. Indoor positioning using convolution neural network to regress camera pose
AU2003248010B2 (en) Method for Tracking Facial Features in a Video Sequence
Zhang et al. Research on binocular real-time ranging method in window area

Legal Events

Date Code Title Description
A201 Request for examination