KR102542683B1 - 손 추적 기반 행위 분류 방법 및 장치 - Google Patents

손 추적 기반 행위 분류 방법 및 장치 Download PDF

Info

Publication number
KR102542683B1
KR102542683B1 KR1020220042990A KR20220042990A KR102542683B1 KR 102542683 B1 KR102542683 B1 KR 102542683B1 KR 1020220042990 A KR1020220042990 A KR 1020220042990A KR 20220042990 A KR20220042990 A KR 20220042990A KR 102542683 B1 KR102542683 B1 KR 102542683B1
Authority
KR
South Korea
Prior art keywords
face
hand
image
user
region
Prior art date
Application number
KR1020220042990A
Other languages
English (en)
Other versions
KR20230040849A (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 KR20230040849A publication Critical patent/KR20230040849A/ko
Application granted granted Critical
Publication of KR102542683B1 publication Critical patent/KR102542683B1/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
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • 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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • 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/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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/803Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
    • 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
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

손 추적 기반 행위 분류 방법 및 장치가 개시된다. 본 개시의 일 실시 예에 따른 손 추적 기반 행위 분류 방법은, 비대면 사용자의 이미지를 획득하는 단계와, 기 학습된 행위 분류 알고리즘을 기반으로, 비대면 사용자 이미지의 손 영역을 검출하여, 비대면 사용자의 행위를 분류하는 단계와, 행위 분류 결과에 기초하여, 비대면 사용자의 비 허용 객체 사용 여부를 판단하는 단계를 포함할 수 있다.

Description

손 추적 기반 행위 분류 방법 및 장치{METHOD AND APPARATUS FOR CLASSIFYING ACTION BASED ON HAND TRACKING}
본 개시는 손의 자세 파악을 위한 키 포인트(key point)와 손 영역 이미지를 통해 영상 내 인물의 행위를 분류하는 딥러닝 기반 학습 모델을 이용하여 해당 인물의 비 허용 행위 수행 여부를 판단하는 손 추적 기반 행위 분류 방법 및 장치에 관한 것이다.
최근에는 사회 모든 분야에 있어서 비대면 방식이 적용되고 있다. 비대면은 다른 말로 디지털 소통이라고 할 수 있다. 비대면 방식에 따른 디지털 소통을 하려면 먼저 디지털 전환이 이루어져야 한다. 온라인 교육, 화상회의, 재택근무 등이 디지털 전환의 예다.
특히 온라인 시험은 갑자기 시행된 경우가 많아 커닝 등의 부정행위가 발생할 우려가 있지만, 4차 산업혁명 시대에 걸맞게 대규모 현장 시험의 사회적 비용 및 시간을 줄여주는 장점을 가진다.
일반적으로 기업들은 채용 시험부터 면허 자격을 취득하기 위한 자격 시험 또한 온라인으로 진행하고 있다. 기업뿐만 아니라 유치원, 중고등학교부터 대학교에 이르기까지 온라인으로 수업을 진행하면서 중간기말고사 등의 시험을 온라인으로 진행하는 추세다.
하지만 온라인 시험의 경우 다양한 부정행위가 발생할 수 있다. 이에 일반적으로는 학생의 접속시각, IP 등을 체크하여 부정행위 여부를 확인하게 된다. 나아가 부정행위 여부를 확인하기 위해, 학생의 컴퓨터에 설치된 웹캠 등을 통해 실시간 촬영되는 학생의 영상을 확인할 수 있다.
이 경우 시험 감독관들을 두어 모든 시험 응시자들의 영상을 감독해야 하기 때문에, 실시간으로 처리하기 어려울 뿐만 아니라 부정행위 확인에 소요되는 시간 및 비용이 많이 들고 정확도도 떨어지는 등 비효율적인 문제가 있다.
이에, 영상을 통해 부정행위를 자동으로 판별할 수 있는 알고리즘 및 그 알고리즘의 정확도 향상 및 비용 감소 등의 방안에 대한 필요성이 대두되고 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
선행기술 1: 한국 등록특허공보 제10-2195401호(2020.12.19)
본 개시의 실시 예의 일 과제는, 손의 자세 파악을 위한 키 포인트와 손 영역 이미지를 기반으로 영상 내 인물의 행위를 분류하는 딥러닝 기반 학습 모델을 통해 해당 인물의 비 허용 행위 수행 여부를 판단하여, 부정행위를 자동으로 검출할 수 있도록 하는데 있다.
본 개시의 실시예의 목적은 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 개시의 일 실시 예에 따른 손 추적 기반 행위 분류 방법은, 비대면 사용자의 이미지를 획득하는 단계와, 기 학습된 행위 분류 알고리즘을 기반으로, 비대면 사용자 이미지의 손 영역을 검출하여, 비대면 사용자의 행위를 분류하는 단계와, 행위 분류 결과에 기초하여, 비대면 사용자의 비 허용 객체 사용 여부를 판단하는 단계를 포함할 수 있다.
이 외에도, 본 발명의 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체가 더 제공될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 개시의 실시 예에 의하면, 손의 자세 파악을 위한 키 포인트와 손 영역 이미지를 기반으로 영상 내 인물의 행위를 분류하는 딥러닝 기반 학습 모델을 통해 해당 인물의 비 허용 행위 수행 여부를 실시간으로 정확하게 판단함으로써, 부정행위 검출 및 즉각적 대응이 가능하도록 할 수 있다.
또한, 실시간으로 전송되는 비대면 사용자의 영상을 처리함에 있어 큰 딜레임 타임이 발생하지 않기 때문에 실제 서비스 환경에서 무리 없이 리얼 타임 동작이 가능하도록 할 수 있다.
또한, 단순히 이미지만을 사용하는 것이 아니라 손에 대한 ROI 영상과 관절 키포인트를 함께 활용함으로써 영상으로부터는 손과 그 주변 사물들의 모습에 대한 정보를 얻고, 키포인트로부터는 더욱 정확한 손의 모양을 학습할 수 있어, 손이 장애물에 가려져 있는 영상이 획득되는 경우에도 높은 정확도를 가질 수 있다.
본 개시의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시 예에 따른 손 추적 기반 행위 분류 시스템을 개략적으로 도시한 도면이다.
도 2는 일 실시 예에 따른 행위 분류 장치를 개략적으로 나타낸 블록도이다.
도 3은 일 실시 예에 따른 행위 분류 알고리즘의 네트워크 구조를 개략적으로 나타낸 도면이다.
도 4는 일 실시 예에 따른 행위 분류 알고리즘의 손 영역 검출 네트워크에서 추론하는 키포인트의 예시도이다.
도 5는 일 실시 예에 행위 분류 알고리즘의 행위 검출 네트워크의 입력 데이터를 시각화한 도면이다.
도 6은 일 실시 예에 따른 사용자 이미지 중 일정 프레임 구간을 입력으로 하는 행위 분류 알고리즘 구조의 예시도이다.
도 7은 일 실시 예에 따른 시선 추적 네트워크가 포함된 행위 분류 알고리즘의 네트워크 구조를 개략적으로 나타낸 도면이다.
도 8은 일 실시 예에 따른 시선 추적 포함 행위 분류 결과를 나타낸 예시도이다.
도 9는 일 실시 예에 따른 행위 분류 알고리즘 실험 결과(제 1 데이터 세트의 손실 및 정확도 그래프)를 나타낸 도면이다.
도 10은 일 실시 예에 따른 행위 분류 알고리즘의 실험 결과(두 가지 클래스만 학습했을 때의 오차 행렬)를 나타낸 도면이다.
도 11은 일 실시 예에 따른 행위 분류 알고리즘 실험 결과(제 2 데이터 세트의 손실 및 정확도 그래프)를 나타낸 도면이다.
도 12는 일 실시 예에 따른 행위 분류 알고리즘 실험 결과(5 가지 클래스를 사용하여 학습했을 때의 오차 행렬)를 나타낸 도면이다.
도 13은 일 실시 예에 따른 행위 분류 방법을 설명하기 위한 흐름도이다.
도 14는 일 실시 예에 따른 시선 추적 포함 행위 분류 방법을 설명하기 위한 흐름도이다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시 예들을 참조하면 명확해질 것이다.
그러나 본 개시는 아래에서 제시되는 실시 예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 개시의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시 예들은 본 개시가 완전하도록 하며, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 개시를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, 본 개시에 따른 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시 예에 따른 손 추적 기반 행위 분류 시스템을 개략적으로 도시한 도면이다.
도 1을 참조하면, 손 추적 기반 행위 분류 시스템(1)은 행위 분류 장치(100), 사용자 단말(200), 서버(300) 및 네트워크(400)를 포함할 수 있다.
손 추적 기반 행위 분류 시스템(1)은 비대면 사용자가 위치한 곳에 구비된 촬영장치를 통해 비대면 사용자를 촬영하고, 딥러닝 기반 학습 모델을 이용하여 비대면 사용자 이미지에서 비 허용 행위 수행 여부를 추론하는 것이다.
예를 들어, 손 추적 기반 행위 분류 시스템(1)은 온라인 시험에 응시 중인 사용자의 이미지에서 비 허용 객체를 사용하는 등의 부정행위를 판단할 수 있다.
일 실시 예에서는, 비대면 사용자의 이미지 내에서, 정상 및 비 허용 객체 사용으로 행동 클래스를 정의할 수 있다. 예를 들어, 정상 클래스의 데이터는 필기를 하는 이미지와, 머리를 넘기거나 얼굴을 매만지는 등 시험 응시 도중의 자연스러운 행동으로 구성될 수 있다.
즉, 상기에서 정의한 클래스를 판단하기 위해서는 비대면 사용자의 주변 환경이 모두 찍힌 이미지에서 비대면 사용자의 손이 위치한 영역을 검출해야 한다. 또한, 일 실시 예에서는, 손의 이미지 정보뿐만 아니라 손가락 관절 마다의 키포인트(keypoint)를 검출해 두 가지 정보를 함께 활용하여, 손의 자세를 정확히 파악할 수 있어야 한다. 키포인트는 손 식별을 위한 대표적인 랜드마크 점들을 의미할 수 있다. 이하에서는 키포인트로 통일하여 기재하도록 한다.
따라서, 손 추적 기반 행위 분류 시스템(1)은 비대면 사용자 이미지에서 비대면 사용자의 손 영역과 손의 키포인트를 검출하고, 검출한 손 영역 이미지와 손 키포인트에 기초하여 이미지에서 포착된 객체와 손의 모양을 통해 부정행위를 인식할 수 있다.
일 실시 예에서, 손 추적 기반 행위 분류 시스템(1)은 비대면 사용자 이미지를 획득하여 비대면 사용자의 손 영역이 크롭된 이미지와 손 모양에 대한 키포인트 정보를 추출하는 손 영역 검출 네트워크와, 손 이미지와 키포인트 정보를 합친 데이터를 입력 받아 비대면 사용자가 현재 비 허용 객체를 사용 중인지 추론하는 행위 분류 네트워크로 구성될 수 있다.
즉, 손 추적 기반 행위 분류 시스템(1)은 손 영역 검출 네트워크와 행위 분류 네트워크로 구성된 행위 분류 알고리즘을 기반으로, 현재 비대면 사용자가 비 허용 객체를 사용 중인지 추론할 수 있다.
이에, 손 추적 기반 행위 분류 시스템(1)은 예를 들어, 시험 감독관이 모든 시험 응시자의 영상을 직접 살피며 감독해야 했던 기존 업무를 AI가 실시간으로 판단하게 함으로써 자동화가 가능하도록 할 수 있다.
또한 손 추적 기반 행위 분류 시스템(1)은 단순히 손의 이미지만을 사용하는 것이 아니라, 구체적인 관절의 위치 정보까지 함께 활용하여 보다 높은 정확도를 보이는 모델을 학습시킬 수 있다.
한편 일 실시 예에서는, 사용자들이 사용자 단말(200)에서 구현되는 어플리케이션 또는 웹사이트에 접속하여, 행위 분류 장치(100)의 네트워크를 생성 및 학습하는 등의 과정을 수행할 수 있다.
이러한 사용자 단말(200)은 사용자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다.
또한, 사용자 단말(200)은 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 단말기 일 수 있다. 사용자 단말(200)은 상술한 내용에 제한되지 아니하며, 웹 브라우징이 가능한 단말기는 제한 없이 차용될 수 있다.
일 실시 예에서, 손 추적 기반 행위 분류 시스템(1)은 행위 분류 장치(100) 및/또는 서버(300)에 의해 구현될 수 있다.
일 실시 예에서, 행위 분류 장치(100)는 서버(300)에서 구현될 수 있는데, 이때 서버(300)는 행위 분류 장치(100)가 포함되는 손 추적 기반 행위 분류 시스템(1)을 운용하기 위한 서버이거나 행위 분류 장치(100)의 일부분 또는 전 부분을 구현하는 서버일 수 있다.
일 실시 예에서, 서버(300)는 비대면 사용자의 이미지를 획득하여 비대면 사용자의 손 영역이 크롭된 이미지와 손 모양에 대한 키포인트 정보를 추출하고, 손 이미지와 키포인트 정보를 합친 데이터를 기반으로 현재 비대면 사용자가 비 허용 객체를 사용 중인지 추론하는 전반의 프로세스에 대한 행위 분류 장치(100)의 동작을 제어하는 서버일 수 있다.
또한, 서버(300)는 행위 분류 장치(100)를 동작시키는 데이터를 제공하는 데이터베이스 서버일 수 있다. 그 밖에 서버(300)는 웹 서버 또는 어플리케이션 서버 또는 딥러닝 네트워크 제공 서버를 포함할 수 있다.
그리고 서버(300)는 각종 인공 지능 알고리즘을 적용하는데 필요한 빅데이터 서버 및 AI 서버, 각종 알고리즘의 연산을 수행하는 연산 서버 등을 포함할 수 있다.
또한 본 실시 예에서, 서버(300)는 상술하는 서버들을 포함하거나 이러한 서버들과 네트워킹 할 수 있다. 즉, 본 실시 예에서, 서버(300)는 상기의 웹 서버 및 AI 서버를 포함하거나 이러한 서버들과 네트워킹 할 수 있다.
손 추적 기반 행위 분류 시스템(1)에서 행위 분류 장치(100) 및 서버(300)는 네트워크(400)에 의해 연결될 수 있다. 이러한 네트워크(400)는 예컨대 LANs(local area networks), WANs(Wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다. 또한 네트워크(400)는 근거리 통신 및/또는 원거리 통신을 이용하여 정보를 송수신할 수 있다.
또한, 네트워크(400)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(400)는 사물 등 분산된 구성 요소들 간에 정보를 주고받아 처리하는 IoT(Internet of Things, 사물인터넷) 망 및/또는 5G 통신을 지원할 수 있다.
도 2는 일 실시 예에 따른 행위 분류 장치를 개략적으로 나타낸 블록도이다.
도 2를 참조하면, 행위 분류 장치(100)는 통신부(110), 사용자 인터페이스(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다.
통신부(110)는 네트워크(400)와 연동하여 외부 장치간의 송수신 신호를 패킷 데이터 형태로 제공하는 데 필요한 통신 인터페이스를 제공할 수 있다. 또한 통신부(110)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
즉, 프로세서(140)는 통신부(110)를 통해 연결된 외부 장치로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치로 각종 데이터 또는 정보를 전송할 수도 있다.
일 실시 예에서, 사용자 인터페이스(120)는 행위 분류 장치(100)의 동작(예컨대, 네트워크의 파라미터 변경, 네트워크의 학습 조건 변경 등)을 제어하기 위한 사용자 요청 및 명령들이 입력되는 입력 인터페이스를 포함할 수 있다.
그리고 일 실시 예에서, 사용자 인터페이스(120)는 행위 분류 결과를 출력하거나 부정행위로 판단된 사용자에게 경고하는 출력 인터페이스를 포함할 수 있다. 즉, 사용자 인터페이스(120)는 사용자 요청 및 명령에 따른 결과를 출력할 수 있다. 이러한 사용자 인터페이스(120)의 입력 인터페이스와 출력 인터페이스는 동일한 인터페이스에서 구현될 수 있다.
메모리(130)는 행위 분류 장치(100)의 동작의 제어(연산)에 필요한 각종 정보들을 저장하고, 제어 소프트웨어를 저장할 수 있는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다.
메모리(130)는 하나 이상의 프로세서(140)와 전기적 또는 내부 통신 인터페이스로 연결되고, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금 행위 분류 장치(100)를 제어하도록 야기하는(cause) 코드들을 저장할 수 있다.
여기서, 메모리(130)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media) 등의 비 일시적 저장매체이거나 램(RAM) 등의 일시적 저장매체를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 이러한 메모리(130)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD. CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다.
그리고, 메모리(130)에는 본 개시에 따른 학습을 수행하기 위한 알고리즘에 관련된 정보가 저장될 수 있다. 그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(130)에 저장될 수 있으며, 메모리(130)에 저장된 정보는 서버 또는 외부 장치로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.
프로세서(140)는 행위 분류 장치(100)의 전반적인 동작을 제어할 수 있다. 구체적으로, 프로세서(140)는 메모리(130)를 포함하는 행위 분류 장치(100)의 구성과 연결되며, 메모리(130)에 저장된 적어도 하나의 명령을 실행하여 행위 분류 장치(100)의 동작을 전반적으로 제어할 수 있다.
프로세서(140)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(140)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(Hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다.
프로세서(140)는 일종의 중앙처리장치로서 메모리(130)에 탑재된 제어 소프트웨어를 구동하여 행위 분류 장치(100)의 동작을 제어할 수 있다. 프로세서(140)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령어로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다.
도 3은 일 실시 예에 따른 행위 분류 알고리즘의 네트워크 구조를 개략적으로 나타낸 도면이고, 도 4는 일 실시 예에 따른 행위 분류 알고리즘의 손 영역 검출 네트워크에서 추론하는 키포인트의 예시도이며, 도 5는 일 실시 예에 행위 분류 알고리즘의 행위 검출 네트워크의 입력 데이터를 시각화한 도면이다.
일 실시 예에서, 프로세서(140)는 비대면 사용자(예를 들어, 온라인 시험에 응시 중인 사용자)를 촬영한 사용자 이미지에서 부정행위를 판단하는 알고리즘을 수행할 수 있다. 프로세서(140)는 비대면 사용자 이미지에서 비대면 사용자의 손 영역과 손의 키포인트를 검출하여, 이미지에 포착된 객체와 손의 모양을 통해 부정행위를 인식할 수 있다.
즉, 프로세서(140)는 비대면 사용자 이미지에서 비대면 사용자의 손 영역과 손의 키포인트를 검출하여 부정행위를 인식할 수 있는 행위 분류 알고리즘을 학습할 수 있으며, 기 학습된 행위 분류 알고리즘을 기반으로 손 추적 기반 행위 분류에 따른 비 허용 객체 사용 여부 판단을 수행할 수 있다.
도 3을 참조하면, 일 실시 예에서는, 행위 분류 알고리즘을 손 영역과 손 키포인트를 검출하는 손 영역 검출 네트워크와 이미지에 포착된 객체와 손의 모양을 통해 행위 분류 결과에 따른 비 허용 객체 사용 여부를 추론하는 행위 분류 네트워크로 크게 구분하여 설명할 수 있다.
일 실시 예에서는, 오픈 소스 크로스 플랫폼(예를 들어, Mediapipe)을 사용하여 비대면 사용자의 손 영역과 손의 키포인트를 검출할 수 있다.
이러한 오픈 소스 크로스 플랫폼은 그래프 기반의 프레임워크를 가지 고 있으며, 라이브 미디어 및 스트리밍 미디어를 위한 머신러닝(Machine Learning) 솔루션을 제공한다.
크로스 플랫폼(cross-platform)은 멀티 플랫폼(multi-platform)이라고도 하며, 컴퓨터 프로그램, 운영 체제, 컴퓨터 언어, 프로그래밍 언어, 컴퓨터 소프트웨어 등이 여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것을 뜻하는 용어이다. 크로스 플랫폼 응용 프로그램은 둘 이상의 플랫폼에서 실행할 수 있다. 이러한 종류의 소프트웨어는 멀티플랫폼 소프트웨어라고도 한다.
일 실시 예에서의 오픈 소스 크로스 플랫폼은, 예를 들어, Face Detection, Face Mesh, Pose, Hands, Object Detection 등의 솔루션을 제공할 수 있는데, 특히, 부정행위 판단을 위해 손과 손가락의 모양을 추적하는 Hands 솔루션을 사용할 수 있다. 예를 들어, Hands는 머신러닝을 이용하여 하나의 프레임에서 손 마디에 대한 21개의 3차원 키포인트를 추론할 수 있다.
프로세서(140)는 행위 분류 알고리즘의 손 영역 검출 네트워크를 기반으로, 예를 들어 도 4에 도시된 것과 같은 21개의 손 키포인트 검출을 수행할 수 있다. 이러한 행위 분류 알고리즘의 손 영역 검출 네트워크는, 또한 두 가지의 모델(손 검출 모델, 손 키포인트 검출 모델)로 세부적으로 구성될 수 있다.
그 중 첫 번째로 돌아가는 손 검출 모델(예를 들어, Palm Detection Model)은 이미지에서 사람의 손바닥 또는 손등을 찾아낼 수 있다. 예를 들어, 손바닥 또는 손등을 찾아내기 위한 네트워크 모델은 입력으로 [-1.0, 1.0]의 RGB 값을 갖는 128 X 128 X 3 텐서(tensor)를 받아 1 X 896 X 18 텐서를 출력할 수 있다.
손의 키포인트를 추론하기 위해서는 먼저 이미지 전체에서 손이 등장하는 위치를 감지해야 한다. 하지만 사람마다 다른 손 크기와 복잡한 손의 모양, 가려진 정도 등에 의한 영향을 받지 않고서 정확히 손의 영역을 찾아내는 것은 어려운 작업이다. 얼굴의 경우에는 눈과 입처럼 구별해내기 쉬운 패턴을 가지고 있지만 손에서는 이런 시각적인 특징을 찾기가 힘들다.
이에, 프로세서(140)는 손바닥이나 주먹처럼 모양 변화가 적게 일어나는 부위를 먼저 감지할 수 있다. 손 전체보다 손바닥이 더 작은 객체이기 때문에 비최대억제(Non-Maximum Suppression) 알고리즘이 상대적으로 잘 동작할 수 있다. 또한 손바닥은 가로와 세로 비율이 대략 1:1이기 때문에 비최대억제 알고리즘에서 사용하는 앵커 박스(anchor boxe)를 간단히 정사각형으로 정의할 수 있게 된다.
Object detection(객체 감지) 알고리즘은 일반적으로 많은 수의 영역 샘플링하고, 이 영역에 관심 개체가 포함되어 있는지 여부를 확인하고, 대상의 실측 Bounding Boxes(경계 상자)를 정확하게 예측하기 위해 영역의 가장자리를 조정한다. 이러한 바운딩 박스를 찾기 위해, 앵커 박스 방법을 사용할 수 있다.
앵커 박스 방법은, 각 픽셀을 중앙에 두고 크기와 종횡비가 서로 다른 바운딩 박스를 생성할 수 있는데, 이러한 바운딩 박스를 앵커 박스라고 하며, 이를 통해 객체를 감지하게 된다.
이때, 프로세서(140)는 비대면 사용자 이미지에서 감지한 손바닥 ROI(Region of Interest)를 손가락을 모두 폈을 때의 모양을 충분히 감쌀 수 있을 만한 크기로 확장할 수 있다. 다시 말해 손바닥 영역의 ROI가 손 전체 영역의 ROI로 확장되는 것이다.
그리고 두 번째로 돌아가는 손 키포인트 검출 모델(예를 들어, Hand Landmark Model)은 상기 확장된 손 전체 영역의 ROI 이미지를 입력으로 받아 손의 키포인트에 대한 3차원 좌표값을 예측할 수 있다. 여기서 ROI 이미지는 컬러 이미지(RGB 이미지)로 입력될 수 있다.
이때 프로세서(140)는 행위 분류 알고리즘의 손 영역 검출 네트워크의 커패시티(capacity)를 낮추기 위해, ROI 이미지에 대해 손목 중앙과 가운데 손가락을 이은 선분이 이미지의 y축과 평행하게 회전되는 과정을 수행할 수 있다.
일 실시 예의, 연속적인 이미지의 입력을 처리하는 전체 파이프라인에서는 이전 프레임에서 식별된 손의 위치 정보를 다음 프레임에서도 이용하는 식으로 손을 추적(tracking)하는 작업이 이루어질 수 있다. 이때 프로세서(140)는 주어진 ROI 이미지에서 손을 찾을 수 없게 된 경우, 사용자 이미지에서 손바닥 또는 손등을 검출하는 과정부터 다시 수행할 수 있다.
일 실시 예에서는, 상기와 같은 과정을 통해 행위 분류 알고리즘의 네트워크의 용량을 줄였기 때문에 모바일 환경에서도 실시간으로 동작시킬 수 있다.
이하에서는, 행위 분류 알고리즘의 행위 분류 네트워크에 대해 설명하도록 한다. 행위 분류 네트워크는 비대면 사용자 이미지에서 검출된 손의 ROI 이미지와 키포인트 정보를 가지고 현재 프레임에 나타난 손이 비 허용 객체를 사용하고 있는지를 판단하는 것으로 일종의 분류기라고 할 수 있다.
일 실시 예에서는, 행위 분류 알고리즘의 행위 분류 네트워크의 실시간 성능을 위해 백본(Backbone) 네트워크로 pretrained MobileNetV2를 사용할 수 있다. MobileNet은 Depthwise Separable Convolution 개념을 도입하여 연산량을 크게 줄인 모델로, 모바일 기기처럼 컴퓨팅 리소스가 다소 부족한 환경에서도 충분히 잘 동작할 수 있도록 하는 것을 목표로 한다. 이의 다음 버전인 MobileNetV2는 Inverted Residual 구조를 차용하여 기존 MobileNet 보다 연산량을 더 줄인 모델이다.
따라서 일 실시 예에서는, 학습 시간과 데이터 셋의 유사성을 고려하여 ImageNet으로 학습된 MobilenetV2를 사용할 수 있다.
일 실시 예에서, 행위 분류 알고리즘의 행위 분류 네트워크는 160 X 160 X 24 텐서를 입력으로 받을 수 있다. 이때, 처음 세 개의 채널은 손 ROI 이미지의 RGB 채널이며, 뒤따르는 나머지 21개의 채널은 21개의 키포인트가 각각 하나씩 찍혀 있는 히트맵(heatmap)일 수 있다.
도 5를 참조하면, 도 5(b)는 도 5(a)에 도시된 손 ROI 이미지에서의 손에 대한 0번 키포인트를 나타낸 것이고, 도 5(c)는 도 5(a)에 도시된 손 ROI 이미지에서의 손에 대한 21개의 키포인트들을 나타낸 것이다. 그리고 도 5(d) 및 도 5(e)는 각 채널의 키포인트를 한 채널로 합쳐 손 ROI 이미지 위에 시각화한 것이다.
일 실시 예에서, 여러 개의 노드가 그래프처럼 연결되어 동작하는 파이프라인은 실시간으로 전송되는 이미지 프레임을 연속적으로 처리할 수 있다. 행위 분류 네트워크의 입력은 이 파이프라인 내에서 실시간으로 만들어질 수 있다.
보다 구체적으로는, 행위 분류 네트워크를 실행하는 노드에서는 먼저 손을 모두 포함하는 크기의 ROI 이미지를 만들어 내는 노드로부터 160 X 160 X 3 크기의 손 ROI 이미지(RGB 이미지)를 입력으로 받아올 수 있다. 그리고 네트워크(140)는 동일한 ROI 이미지를 손 키포인트 검출 네트워크의 입력으로 주어 21개 키포인트를 추론하는 노드로부터 키포인트들의 좌표 값을 패킷으로 받아올 수 있다.
그리고 프로세서(140)는 21개의 키포인트들 각각에 대해 ROI 이미지와 크기가 동일한 빈 그리드를 생성한 뒤 해당 키포인트의 좌표 지점을 마킹하고 가우시안 블러를 적용할 수 있다. 프로세서(140)는 상기와 같이 하나의 키포인트가 찍혀 있는 히트맵 21개가 만들어지면, 패킷으로 함께 받았던 손 ROI 이미지의 RGB 채널 뒤에 추가하여 총 24채널의 입력 텐서를 구성할 수 있다.
일 실시 예에서, 상기 160 X 160 X 24 입력 텐서는 행위 분류 네트워크의 입력으로 주어질 수 있다. 예를 들어, ImageNet으로 사전 학습된 입력층을 수정하지 않고 그대로 사용하는 행위 분류 네트워크는 160 X 160 X 3 텐서를 입력으로 받을 수 있다.
따라서, 일 실시 예에서, 행위 분류 네트워크는 제일 앞 단에 1 X 1 2D convolution layer를 두어 입력으로 들어온 텐서를 160 X 160 X 3 사이즈로 맞춰줄 수 있다. 또한 일 실시 예에서, 24채널을 3채널로 바꿔주는 1 X 1 convolution 연산에 의해 출력 텐서는 ROI 이미지의 각 픽셀과 해당 픽셀에서의 21개의 키포인트 정보가 함께 인코딩된 값을 갖게 된다.
즉, 일 실시 예에서는, 상기와 같이 생성된 160 X 160 X 3 텐서가 다음 레이어들을 마저 통과한다. 그리고 일 실시 예에서, 행위 분류 네트워크의 가장 마지막 fully-connected layer는 행위 분류를 위한 클래스에 맞는 출력 수를 가진 FC layer로 구성될 수 있다.
도 6은 일 실시 예에 따른 사용자 이미지 중 일정 프레임 구간을 입력으로 하는 행위 분류 알고리즘 구조의 예시도이다.
도 6을 참조하면, 일 실시 예에서는, 연속적인 이미지의 입력을 처리할 때, 하나의 이미지 프레임만 이용하여 손이 어떤 행동을 취하고 있는지를 예측하고, 이전 프레임에서 식별된 손의 위치 정보를 다음 프레임에서도 이용하는 식으로 손을 추적한다.
하지만 모델의 백본이 되는 네트워크(예를 들어, MobileNetV2)를 다른 네트워크로 바꾼다면, 새로운 백본 네트워크에 알맞는 시나리오를 다양하게 적용할 수 있다.
먼저, 행위 분류 알고리즘의 행위 분류 네트워크를 비디오 입력, 즉 일정한 프레임 구간을 입력으로 받는 모델로 교체할 수 있다. Video Classification 분야에서 사용되는 네트워크, 예를 들어 SlowFast나 I3D, X3D와 같은 네트워크로 바꾸어 사용한다면 실시간으로 받아오는 비대면 사용자의 이미지 중 일정 구간을 입력으로 정의하여 해당 구간 내에서의 사용자의 행동을 정의할 수 있다. 이 경우 행위 검출 네트워크의 전체 입출력 파이프라인은 도 6과 같이 구성될 수 있는 것이다.
도 7은 일 실시 예에 따른 시선 추적 네트워크가 포함된 행위 분류 알고리즘의 네트워크 구조를 개략적으로 나타낸 도면이고, 도 8은 일 실시 예에 따른 시선 추적 포함 행위 분류 결과를 나타낸 예시도이다.
도 7 및 도 8을 참조하면, 일 실시 예에서는, 시선 추적을 추가적으로 수행하여 부정행위를 감지할 수 있다.
프로세서(140)는 정면 혹은 측면의 얼굴이 포함된 이미지에서 사용자의 시선을 추적할 수 있다. 즉, 프로세서(140)는 이미지 공간 상의 홍채의 위치를 이용하여 삼차원 공간상의 시선의 방향을 도출할 수 있다. 그리고 프로세서(140)는 화면 주시, 측면 주시 등의 지정된 특정 시선 주시 패턴을 인지하는 프로세스를 구현할 수 있다.
다시 말하면, 프로세서(140)는 이미지 공간에서의 홍채의 이차원 위치와 카메라 공간에서의 삼차원 공간 상의 얼굴의 자세가 주어지면, 삼차원 공간 상의 시선을 알아내어 안정적인 시선 주시 패턴을 인지할 수 있다.
즉, 일 실시 예에서는, 비대면 사용자의 손을 추적하는 것에 추가적으로 시선 추적 정보를 결합하여 부정행위 여부를 판단할 수 있다. 다시 말하면, 프로세서(140)는 비대면 사용자의 손에 대한 정보뿐만 아니라 시선이 어딜 향하고 있는지도 계산할 수 있다.
프로세서(140)는 시선 검출 네트워크(예를 들어, Mediapipe에서 제공하는 기능 중 하나인 Iris 그래프)를 통해, 영상에 찍힌 사람의 얼굴 키포인트를 추론하고, 그 중에서 눈의 윤곽에 해당하는 키포인트를 통해 눈 영역 이미지를 잘라낼 수 있다.
그리고 프로세서(140)는 잘라낸 눈 영역 이미지에서 다시 눈동자(홍채)와 동공에 대한 키포인트를 예측할 수 있다. 홍채 키포인트는 3차원 공간 좌표를 가지고 있기 때문에, 홍채와 동공에 대한 키포인트 값들의 외적을 통해서 이미지 속 공간 내에서 비대면 사용자의 눈동자가 어느 방향을 향하고 있는지를 나타내는 벡터를 계산할 수 있다.
프로세서(140)는 비대면 사용자의 시선 벡터를 통해, 사전에 대략적으로 정해진 모니터의 범위 밖을 벗어난 외부를 바라보고 있는지를 판단할 수 있다.
또한 프로세서(140)는 비대면 사용자의 손에 대한 키포인트를 가지고 3차원 공간 상에서의 손이 차지하는 바운딩 박스를 추가적으로 정의할 수 있다. 다시 말하면, 프로세서(140)는 3차원 공간 내에서 비대면 사용자의 시선 벡터가 상기 바운딩 박스를 향하고 있는지를 계산할 수 있다. 이때의 손이 취하고 있는 행동으로는 상술한 행위 분류 알고리즘을 통해 예측한 비 허용 객체 사용 여부 결과를 사용할 수 있다.
예를 들어, 비 허용 객체 사용 여부 판단 결과, 비대면 사용자가 핸드폰을 사용 중이라는 결과가 나온 경우, 비대면 사용자의 시선 역시 손을 향하고 있다는 값을 얻게 된다면 더 효과적으로 비 허용 객체 사용 판단 여부를 결정할 수 있다.
보다 구체적으로, 프로세서(140)는 사용자 이미지에 포함된 얼굴에 대하여 이미지 공간에서의 양쪽 눈의 홍채의 이차원 위치와 카메라 공간에서의 삼차원 얼굴 자세를 검출할 수 있다. 프로세서(140)는 이를 이용하여 삼차원 공간에서의 시선 방향을 알아내고 시선 추적을 진행하여 화면 주시, 측면 주시 등의 시선 패턴을 인지할 수 있다.
프로세서(140)는 주어진 이미지를 기반으로 얼굴을 추적할 수 있다. 프로세서(140)는 얼굴 상에서 미리 지정된 유한한 키포인트의 이차원 위치를 검출할 수 있다. 예를 들어, 프로세서(140)는 CNN(convolutional neural network)와 같은 학습 기반 모델을 통해 각 키포인트에 대하여 레이블을 주어 일정 이상의 정확도를 도달하게 학습한 학습 모델을 사용하여 얼굴을 추적할 수 있다.
프로세서(140)는 홍채의 키포인트로 정함으로써 홍채의 이차원 위치를 추론할 수 있고, 삼차원 공간에서 얼굴의 표준 키포인트 메쉬(canonical landmark mesh)가 존재할 때, 프로크루테스 문제(Procrustes problem)로 정의하여 얼굴의 삼차원 자세를 추론할 수 있다. 여기서, 프로크루테스 문제는 다른 주어진 점 세트에 가장 가까운 주어진 점 세트를 매핑하는 직교 행렬을 찾는 것이다. 두 집합 사이의 점의 일대일 대응은 선험적으로 알려져 있어야 한다.
프로세서(140)는 이미지를 촬영하기 위하여 사용된 카메라의 초점거리를 알고 있을 때, 카메라 공간을 이미지 공간으로 변환하는 원근 투영 행렬을 정의할 수 있다. 그리고 프로세서(140)는 투영 행렬의 역을 계산하고 앞서 얻은 이미지 공간에서의 홍채의 위치를 이용하여 카메라 공간에서의 홍채의 위치가 놓이게 되는 직선을 계산할 수 있다.
이를 수학식을 참조하여 설명하면, 초점 거리
Figure 112022036942541-pat00001
, 형상비(aspect ration)
Figure 112022036942541-pat00002
, 주요 포인트(principal point) (
Figure 112022036942541-pat00003
,
Figure 112022036942541-pat00004
)가 주어졌을 때, 원근 투영 행렬
Figure 112022036942541-pat00005
는 다음 수학식 1과 같이 정의될 수 있다.
Figure 112022036942541-pat00006
프로세서(140)는 원근 투영 행렬의 역
Figure 112022036942541-pat00007
를 계산하여, 변수
Figure 112022036942541-pat00008
를 기반으로 다음 수학식 2와 같이, 이미지 공간 상의 홍채의 위치
Figure 112022036942541-pat00009
를 통해 카메라 공간에서 원점과 홍채의 위치
Figure 112022036942541-pat00010
를 통과하는 직선을 도출할 수 있다.
Figure 112022036942541-pat00011
일 실시 예에서는,
Figure 112022036942541-pat00012
의 적절한 값을 찾아서 카메라 공간 상의 홍채의 위치
Figure 112022036942541-pat00013
를 구할 수 있다.
그리고 프로세서(140)는 카메라의 중심과 홍채의 중심을 통과하는 직선과 주어진 얼굴의 자세를 기반으로 얼굴 공간에서 정의된 눈의 표면을 모델링하는 기하와 직선의 교점을 구하여 카메라 공간에서의 홍채의 위치를 계산할 수 있다.
프로세서(140)는 카메라 공간에서 눈의 표면 기하와의 교점을 나타내는
Figure 112022036942541-pat00014
를 구하기 위해서는 얼굴 공간에서 정의된 눈의 표면 기하를 카메라 공간으로 변환하고, 변환된 기하와 직선의 교점을 찾을 수 있다.
프로세서(140)는 얼굴 공간에서 한쪽 눈 평면 상의 점
Figure 112022036942541-pat00015
, 눈 평면의 법선
Figure 112022036942541-pat00016
이 주어졌을 때, 이 값들(
Figure 112022036942541-pat00017
Figure 112022036942541-pat00018
)을 얼굴의 자세를 나타내는 회전 행렬
Figure 112022036942541-pat00019
, 이동 벡터
Figure 112022036942541-pat00020
를 통해 카메라 공간으로 변환하여 다음 수학식 3을 만족하는
Figure 112022036942541-pat00021
를 찾을 수 있다.
Figure 112022036942541-pat00022
이 수식을 만족하는
Figure 112022036942541-pat00023
는 다음 수학식 4와 같이 계산될 수 있다.
Figure 112022036942541-pat00024
프로세서(140)는 안구의 중심과 홍채의 위치의 차이를 이용하여 카메라 공간에서의 시선의 방향을 계산할 수 있다. 즉 일 실시 예에서는, 얼굴 공간에서의 한쪽 안구의 중심 위치
Figure 112022036942541-pat00025
가 주어진다고 가정하였을 때, 카메라 공간에서의 시선의 방향
Figure 112022036942541-pat00026
는 다음 수학식 5와 같이 정의할 수 있다.
Figure 112022036942541-pat00027
그리고 프로세서(140)는 정해진 화면 영역 상에 놓이는 시선의 위치를 계산할 수 있다. 이때, 얼굴의 회전(rotation) Y축이 화면의 평면과 평행하다고 가정하여, 화면의 평면을 계산하여 시선을 이루는 직선과의 교점을 구할 수 있다.
일 실시 예에서는, 카메라 공간에서의 얼굴 자세
Figure 112022036942541-pat00028
이 다음 수학식 6에서와 같이 정의된다고 했을 때, 카메라 공간에서 화면 좌표계로 변환하는 행렬
Figure 112022036942541-pat00029
을 정의할 수 있다. 화면 좌표계는 카메라 좌표계의 X축의 회전으로 정의되며, 원점의 위치를 서로 공유할 수 있다.
Figure 112022036942541-pat00030
일 실시 예에서, 변환 행렬
Figure 112022036942541-pat00031
을 이용하여 화면 상의 시선의 위치를 구하는 수식은 다음 수학식 7과 같다. 그리고
Figure 112022036942541-pat00032
는 시선을 이루는 직선 상의 점 중 Z 성분이 0이 되는 것으로 정의될 수 있다.
Figure 112022036942541-pat00033
프로세서(140)는 상기에서 검출한 화면과 평행한 평면 위의 점
Figure 112022036942541-pat00034
가 미리 정한 화면의 축 정렬 경계상자(axis-aligned bounding box) 내에 들어오는지 검사하여 화면을 주시하는지 판단할 수 있다. 그리고 프로세서(140)는 시선의 방향을 나타내는 벡터
Figure 112022036942541-pat00035
를 정해진 기준 벡터(reference vector)
Figure 112022036942541-pat00036
와의 사잇각
Figure 112022036942541-pat00037
을 알아내어, 일정 임계치가 넘었을 때 측면을 주시한다고 판단할 수 있다. 사잇각을 구하는 수식은 다음 수학식 8과 같이 나타낼 수 있다.
Figure 112022036942541-pat00038
이하에서는, 도 9 내지 도 12를 참조하여, 행위 분류 알고리즘의 구현 성능에 대한 실험 결과를 설명한다.
도 9는 일 실시 예에 따른 행위 분류 알고리즘 실험 결과(제 1 데이터 세트의 손실 및 정확도 그래프)를 나타낸 도면이고, 도 10은 일 실시 예에 따른 행위 분류 알고리즘의 실험 결과(두 가지 클래스만 학습했을 때의 오차 행렬)를 나타낸 도면이며, 도 11은 일 실시 예에 따른 행위 분류 알고리즘 실험 결과(제 2 데이터 세트의 손실 및 정확도 그래프)를 나타낸 도면이고, 도 12는 일 실시 예에 따른 행위 분류 알고리즘 실험 결과(5 가지 클래스를 사용하여 학습했을 때의 오차 행렬)를 나타낸 도면이다.
일 실시 예에서는, 행위 분류 장치(100)의 성능을 검증하기 위한 실험을 진행하였다. 예를 들어, 행위 분류 알고리즘의 네트워크 훈련을 위해 제 1 데이터 세트 및 제 2 데이터 세트를 사용할 수 있다.
제 1 데이터 세트는 3명의 대학원생이 촬영한 동영상으로부터 추출한 이미지 프레임이다. 클래스는 정상과 비 허용 객체 사용 두 가지만 존재하며 두 클래스를 모두 합하여 훈련 데이터 세트는 10,766개의 프레임, 테스트 데이터 세트는 5,054개의 프레임으로 구성되어 있다. 정상 또는 비 허용 객체에 해당하는 휴대폰을 사용하는 행동 중 하나만을 취하는 영상에서 일정 간격으로 프레임을 추출한 것이기 때문에 데이터 세트의 양은 많지만 동작의 변화가 크지 않다.
제 2 데이터 세트는, 제 1 데이터 세트보다 클래스 종류와 참여 인원 수를 늘린 더 광범위한 버전의 데이터 세트이다. 5 가지 클래스(정상, 키보드 타이핑, 휴대폰 사용, 필기, 참고 서적 사용)에 대해 18명의 참여자 1명당 198장의 이미지로 이루어져 있다.
정상 클래스는 온라인 시험 응시 도중에 자연스럽게 취할 수 있는 행동들로 손 깍지를 끼는 행 동과 귀, 머리, 이마, 옷깃을 매만지는 행동, 턱을 괴는 행동, 아무런 행동을 취하지 않고 책상 위에 손을 올려둔 행동이 포함된다.
키보드 타이핑 클래스는 일반적인 데스크탑에서 사용하는 기계식, 멤브레인 등의 키보드와 노트북 키보드를 포함한다. 휴대폰 사용 클래스는 왼손 또는 오른손 한쪽으로만 사용하는 것과 양손으로 사용하여 촬영하도록 했으며, 필기 클래스는 연필이나 볼펜, 샤프만 사용하여 이면지나 노트에 글을 적는 장면을 촬영한 데이터이다. 마지막 참고 서적 사용 클래스는 책장을 넘기는 행동과, 두 손으로 책을 잡고 있는 것으로 이루어져 있다.
일 실시 예에서는, 데이터 세트로 수집된 영상들이 실제 시나리오인 온라인 시험 상황과 최대한 비슷한 장면을 연출 할 수 있도록 촬영에 몇 가지 제한을 두었다. 18명의 참여자는 다른 사람의 개입 없이 혼자서 시험을 치룰 수 있다고 판단한 장소에서 임의의 위치에 스스로 설치한 카메라를 이용하여 본인의 모습을 촬영하였다.
이때 설치된 카메라의 위치와 카메라가 참여자를 향하는 각도의 다양성을 위하여 위도와 경도의 개념을 적용하여 카메라를 설치했다. 즉 위도는 카메라가 놓인 곳의 높이를 뜻하고, 경도는 카메라가 참여자를 중심으로 왼편, 정면, 오른편에 놓여 있는지를 의미한다. 참여자는 하나의 클래스에 대해서 카메라의 세 가지 위도와 세 가지 경도 세팅을 조합하여 촬영해야 한다.
한편, 일 실시 예의 실험 조건은 다음과 같이 설정될 수 있다. tensorflow 2.3을 사용하고, 제 1 데이터 세트에 대해 20 에포크 학습하고, 제 2 데이터 세트에 대해 100 에포크 학습할 수 있다. 그리고 배치 사이즈는 8, 최적화는 Adam optimizer로 설정될 수 있으며, 초기 러닝 레이트는 0.3으로 설정되어 검증 정확도가 2번의 에포크 동안 향상되지 않았다면 0.5 배 감소하는 것으로 설정할 수 있다.
먼저, 제 1 데이터 세트를 사용하여 학습한 경우를 살펴보면, 일 실시 예에서는, NVIDIA TITAN Xp를 사용했으며, 학습에는 약 19시간 정도가 소요되었다. 학습 동안의 손실은 도 9(a)에 나타난 그래프처럼 변했으며, 정확도 변화는 도 9(b)처럼 나타났다.
그리고 도 9(c)를 참조하여 매 에포크마다 테스트 데이터 세트를 가지고 측정한 검증 손실을 확인할 수 있으며, 도 9(d)를 참조하여 검증 정확도를 확인할 수 있다. 일 실시 예에서는, 학습이 끝난 후, 테스트 데이터 세트에서 정확도 88.8%를 달성했음을 확인할 수 있다.
도 10은 True positive, True negative, False positive, False negative를 확인할 수 있는 오차 행렬을 도시한 것으로, 도 10(a)를 통해 제 1 데이터 세트의 학습 결과를 확인할 수 있다.
다음으로, 제 2 데이터 세트를 사용하여 학습한 경우를 살펴보면, 크게 두 가지로 나눌 수 있다.
첫 번째로는 제 1 데이터 세트에 포함된 데이터와 동일하게 정상 클래스와 휴대폰 사용 클래스만 사용하여 이진 분류를 학습시킨 것이고, 두 번째는 제 2 데이터 세트의 5 가지 클래스를 전부 사용하여 멀티 클래스 분류를 학습시킨 것이다.
일 실시 예에서는, 학습 데이터의 형평성을 위해 제 2 데이터 세트의 각 클래스 별 데이터 개수를 가장 적은 클래스와 동일하게 맞추었다. 그래서 정상 클래스와 휴대폰 사용 클래스만 학습한 첫 번째 케이스에서는 학습 데이터의 수가 각각 790개로 총 1,580개가 쓰이며, 5 가지 클래스 전부를 학습한 두 번째 케이스에서는 각 클래스 별 학습 데이터가 320개로 맞추어져 총 1,600개의 데이터가 사용된다.
정상과 휴대폰 사용 두 가지 클래스로만 학습을 시킨 모델의 경우, 테스트 데이터 세트에서의 정확도는 86.6%를 달성하였으며, 이때의 오차 행렬은 도 10(b)를 통해 확인할 수 있다.
일 실시 예에서는, 제 1 데이터 세트를 사용하여 학습을 시켰을 때는 테스트 데이터 세트에 훈련 데이터 세트에 있던 인물의 다른 영상이 포함될 수 있다. 제 2 데이터 세트를 사용하여 학습을 시킨 경우에는 훈련 데이터 세트에 포함되지 않은 인물들로만 테스트 데이터 세트가 구성될 수 있다.
그렇기 때문에 제 2 데이터 세트로 학습한 모델은 처음 보는 인물에 대해서 테스트를 진행한 것이지만, 3명의 인원으로만 이루어져 오버피팅이 일어난 제 1 데이터 세트를 사용하여 학습했을 때 보다 정확도가 크게 떨어지지 않은 것을 보아 일반화 성능은 더욱 뛰어나다고 볼 수 있다.
일 실시 예에서, 손실과 정확도의 변화는 도 11을 통해 확인할 수 있으며, 학습에는 약 7시간이 소요되었으며 NVIDIA GeForce RTX 2080 SUPER를 사용했다.
한편, 5 가지 클래스 모두 학습을 시킨 모델의 경우, 테스트 데이터 세트에서의 정확도는 47.1%를 기록했다. 상술한 바와 같이 학습 데이터의 형평성을 위해 데이터가 가장 적은 클래스에 데이터 수를 동일하게 맞추었기 때문에 이때 사용된 데이터 수는 총 1,600개이다.
데이터 수가 정상과 휴대폰 사용 두 가지로만 학습한 모델과 거의 동일하지만 클래스는 5 개나 되기 때문에 충분한 학습이 이루어지지 않을 수 있다. 모든 클래스 별로 데이터를 더 많이 수집하여 학습을 진행한다면 모델의 성능은 충분히 더 향상 가능할 것이다.
도 12는 5 개 클래스로 학습한 모델의 오차 행렬을 도시한 것이며, 일 실시 예에서의 학습에는 약 10시간 가량이 걸렸으며 NVIDIA TITAN Xp를 사용했다.
도 13은 일 실시 예에 따른 행위 분류 방법을 설명하기 위한 흐름도이다.
도 13을 참조하면, S100단계에서, 행위 분류 장치(100)는 비대면 사용자의 이미지를 획득한다.
S200단계에서, 행위 분류 장치(100)는 기 학습된 행위 분류 알고리즘을 기반으로, 비대면 사용자 이미지의 손 영역을 검출하여, 비대면 사용자의 행위를 분류한다.
이때, 행위 분류 장치(100)는 획득한 비대면 사용자 이미지를 기반으로 손 영역 이미지와 손 키포인트 정보를 검출할 수 있다.
즉, 행위 분류 장치(100)는 비대면 사용자 이미지에서 손 전체 영역의 ROI(Region Of Interest) 이미지를 검출하고, 검출한 손 전체 영역의 ROI 이미지에서 손 키포인트 각각에 대한 3차원 좌표 값을 예측할 수 있다.
그리고 행위 분류 장치(100)는 비대면 사용자 이미지에서 손바닥 또는 손등 영역의 ROI 이미지를 감지하고, 손바닥 또는 손등 영역의 ROI를 손 전체 영역의 ROI로 확장할 수 있다.
또한, 행위 분류 장치(100)는 검출한 손 전체 영역의 ROI 이미지에서 손목 중앙과 가운데 손가락 위치를 파악하고, 파악한 손목 중앙과 가운데 손가락을 이은 선분을 이미지의 y축과 평행하게 회전시켜 검출한 손 전체 영역의 ROI 이미지를 획득할 수 있다.
그리고 행위 분류 장치(100)는 손 영역 이미지와 손 키포인트 정보를 기반으로, 손 영역의 객체와 손의 자세를 검출하여, 비대면 사용자의 행위를 분류할 수 있다.
이때 행위 분류 장치(100)는 ROI 이미지 및 손 키포인트 각각에 대한 3차원 좌표 값을 기반으로 비대면 사용자의 손의 자세를 판단할 수 있다.
S300단계에서, 행위 분류 장치(100)는 행위 분류 결과에 기초하여, 비대면 사용자의 비 허용 객체 사용 여부를 판단한다.
즉, 일 실시 예에서, 기 학습된 행위 분류 알고리즘은, 비대면 사용자 이미지가 입력되면, 비대면 사용자 이미지를 기반으로 검출된 손 전체 영역의 ROI 이미지 및 손 키포인트 정보를 입력으로 쿼리(query)하여, 손 영역의 객체와 손의 자세에 매핑된 행위 클래스에 따른 비 허용 객체 사용 여부가 출력되도록 학습된 학습 모델일 수 있다.
이러한 기 학습된 행위 분류 알고리즘은, 훈련 페이즈(training phase)를 거쳐 훈련되고, 훈련 페이즈는, 비대면 사용자 이미지가 입력되면, 비대면 사용자 이미지에서 손 전체 영역의 ROI 이미지를 검출하는 단계와, 검출한 손 전체 영역의 ROI 이미지에서 손 키포인트 각각에 대한 3차원 좌표 값을 예측하는 단계와, ROI 이미지 및 손 키포인트 각각에 대한 3차원 좌표 값을 기반으로, 손 영역의 객체와 손의 자세를 검출하여, 비대면 사용자의 행위를 분류하는 단계와, 행위 분류 결과에 따른 비대면 사용자의 비 허용 객체 사용 여부를 추론하는 단계를 포함할 수 있다.
이때, 훈련 페이즈의 비대면 사용자의 행위를 분류하는 단계는, 손 전체 영역의 ROI 이미지와 크기가 동일한 빈 그리드를 생성하는 단계와, 손 키포인트 각각에 대한 3차원 좌표 값을 기반으로, 빈 그리드에 각각의 키포인트 좌표 지점을 마킹하는 단계와, 각각의 키포인트 좌표 지점이 마킹된 그리드에 가우시안 블러를 적용하는 단계를 포함할 수 있다.
또한, 훈련 페이즈의 비대면 사용자의 행위를 분류하는 단계는, 손 전체 영역의 ROI 이미지의 색상 값에 기반한 채널 및 각각의 키포인트별 채널로 구성된 입력 텐서를 기반으로, 비대면 사용자의 행위를 분류하는 단계를 포함할 수 있다.
도 14는 일 실시 예에 따른 시선 추적 포함 행위 분류 방법을 설명하기 위한 흐름도이다.
일 실시 예에서는, 상기 도 13에 따른 S100단계 내지 S300단계를 수행한 이후, 시선 정보에 따른 추가 프로세스를 수행할 수 있다.
즉, S100단계 내지 S300단계에서, 손 영역 이미지와 손 키포인트 정보를 기반으로 한 비대면 사용자의 행위 분류 결과에 기초하여 비대면 사용자가 비 허용 객체를 사용하는 것으로 판단한 경우, S400단계에서, 행위 분류 장치(100)는 비대면 사용자의 시선 방향이 손의 위치를 향하고 있는지 판단한다.
이때, 행위 분류 장치(100)는 획득한 비대면 사용자 이미지를 기반으로 얼굴 영역 이미지와 얼굴 키포인트 정보를 검출하고, 얼굴 영역 이미지와 얼굴 키포인트 정보를 기반으로 비대면 사용자의 시선의 방향을 판단할 수 있다.
그리고 행위 분류 장치(100)는 얼굴 영역 이미지와 얼굴 키포인트 정보를 기반으로, 이미지 공간에서의 홍채의 이차원 위치와 카메라 공간에서의 삼차원 공간상의 얼굴 자세를 도출하고, 삼차원 공간상에서의 홍채의 방향을 통해 비대면 사용자의 시선의 방향을 검출할 수 있다.
이후 S500단계에서, 행위 분류 장치(100)는 비대면 사용자의 시선 방향이 손의 위치를 향하고 있는 경우, 비대면 사용자가 비 허용 객체를 사용하고 있는 것으로 추가 판단할 수 있다.
즉, 일 실시 예에서는, 비대면 사용자의 손을 추적하는 것에 추가적으로 시선 추적 정보를 결합하여 부정행위 여부를 판단할 수 있다. 다시 말하면, 프로세서(140)는 비대면 사용자의 손에 대한 정보뿐만 아니라 시선이 어딜 향하고 있는지도 계산할 수 있다.
예를 들어, 비 허용 객체 사용 여부 판단 결과, 비대면 사용자가 핸드폰을 사용 중이라는 결과가 나온 경우, 비대면 사용자의 시선 역시 손을 향하고 있다는 값을 얻게 된다면 더 효과적으로 비 허용 객체 사용 판단 여부를 결정할 수 있다.
다만, 일 실시 예에서는, 이에 한정되지 않고, 손 영역 이미지와 손 키포인트 정보를 기반으로 한 비대면 사용자의 행위 분류 결과와, 얼굴 영역 이미지와 얼굴 키포인트 정보를 기반으로 한 비대면 사용자의 시선 방향에 기초하여 비대면 사용자의 비 허용 객체 사용 여부를 판단할 수 있다.
즉, 실시 예에 따라서, 손 추적 기반 행위 분류 결과에 따라 사용자가 비 허용 객체를 사용한 것으로 판단되면 시선 방향을 추가적으로 검출하는 것이 아니라, 손에 대한 정보와 시선에 대한 정보를 기반으로 행위 분류 결과를 추론하여 비 허용 객체 사용 여부를 판단할 수도 있다.
한편, S600단계에서, 행위 분류 장치(100)는 비 허용 객체 사용 판단에 따라 비대면 사용자에 경고를 출력할 수 있다.
일 실시 예에서는, 비대면 사용자가 사용하고 있는 단말에 경고를 출력하거나, 비대면 사용자가 위치한 곳에 경고를 출력할 수 있으며, 동시에 관리자 단말로도 비 허용 행위를 수행한 사용자에 대한 알림을 출력할 수 있다.
경고 방법에 대해서는 구체적으로 한정하지 않으며, 실시 예에 따라서 손 추적 기반 부정행위를 판단한 후 출력하는 경고와, 추가적으로 시선 추적 기반 부정행위를 판단한 후 출력하는 경고를 다르게 할 수 있다.
이상 설명된 본 개시에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 개시를 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 개시의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 개시에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 개시에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다. 본 개시에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 개시를 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 개시의 범위가 한정되는 것은 아니다. 또한, 통상의 기술자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 개시의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 개시의 사상의 범주에 속한다고 할 것이다.
1 : 이미지 복원 시스템
100 : 이미지 복원 장치
110 : 통신부
120 : 사용자 인터페이스
130 : 메모리
140 : 프로세서
200 : 사용자 단말
300 : 서버
400 : 네트워크

Claims (20)

  1. 각 단계의 적어도 일부가 프로세서에 의해 수행되는, 비대면으로 콘텐츠를 이용하는 사용자의 손 이미지를 기반으로 비대면 사용자의 행위를 판단하는 손 추적 기반 행위 분류 방법으로서,
    상기 비대면 사용자의 이미지를 획득하는 단계;
    기 학습된 행위 분류 알고리즘을 기반으로, 상기 비대면 사용자 이미지의 손 영역을 검출하는 단계;
    상기 비대면 사용자의 시선 추적을 수행하는 단계;
    상기 손 영역과 추적된 시선에 기반하여, 상기 비대면 사용자의 행위를 분류하는 단계; 및
    상기 행위 분류 결과에 기초하여, 상기 비대면 사용자의 비 허용 객체 사용 여부를 판단하는 단계를 포함하고,
    상기 시선 추적을 수행하는 단계는,
    카메라 공간을 이미지 공간으로 변환하는 원근 투영 행렬 및 변수를 기반으로 상기카메라의 중심과 상기 사용자의 홍채의 중심을 통과하는 직선을 도출하는 단계;
    상기 직선과 상기 사용자의 얼굴의 자세를 기반으로 얼굴 공간에서 정의된 눈의 표면을 모델링하는 기하와 상기 직선의 교점을 구하여 상기 카메라 공간에서의 홍채의 위치를 계산하는 단계; 및
    상기 얼굴 공간에서의 안구의 중심과 상기 홍채의 위치 간의 차이를 이용하여 상기 카메라 공간에서의 시선의 방향을 계산하는 단계를 포함하고,

    상기 시선 추적을 수행하는 단계는,
    상기 얼굴 공간에서 한쪽 눈 평면 상의 점
    Figure 112023010887700-pat00053
    , 눈 평면의 법선
    Figure 112023010887700-pat00054
    이 주어졌을 때, 상기 값들
    Figure 112023010887700-pat00055
    을 얼굴의 자세를 나타내는 회전행렬 R, 이동벡터 t를 통해 상기 카메라 공간으로 변환하여 하기의 수학식을 만족하는 상기 변수(
    Figure 112023010887700-pat00056
    )를 찾는 단계를 더 포함하고,
    Figure 112023010887700-pat00057
    ,
    상기 변수는,
    하기의 수학식으로 계산되는,
    Figure 112023010887700-pat00058
    ,
    손 추적 기반 행위 분류 방법.
  2. 제 1 항에 있어서,
    상기 비대면 사용자의 행위를 분류하는 단계는,
    상기 획득한 상기 비대면 사용자 이미지를 기반으로 손 영역 이미지와 손 키포인트 정보를 검출하는 단계; 및
    상기 손 영역 이미지와 상기 손 키포인트 정보를 기반으로, 상기 손 영역의 객체와 상기 손의 자세를 검출하여, 상기 비대면 사용자의 행위를 분류하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  3. 제 2 항에 있어서,
    상기 손 영역 이미지와 손 키포인트 정보를 검출하는 단계는,
    상기 비대면 사용자 이미지에서 손 전체 영역의 ROI(Region Of Interest) 이미지를 검출하는 단계; 및
    상기 검출한 손 전체 영역의 ROI 이미지에서 손 키포인트 각각에 대한 3차원 좌표 값을 예측하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  4. 제 3 항에 있어서,
    상기 손 전체 영역의 ROI 이미지를 검출하는 단계는,
    상기 비대면 사용자 이미지에서 손바닥 또는 손등 영역의 ROI 이미지를 감지하는 단계; 및
    상기 손바닥 또는 손등 영역의 ROI를 손 전체 영역의 ROI로 확장하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  5. 제 4 항에 있어서,
    상기 손 전체 영역의 ROI 이미지를 검출하는 단계는,
    상기 검출한 손 전체 영역의 ROI 이미지에서 손목 중앙과 가운데 손가락 위치를 파악하는 단계; 및
    상기 파악한 손목 중앙과 가운데 손가락을 이은 선분을 이미지의 y축과 평행하게 회전시켜 상기 검출한 손 전체 영역의 ROI 이미지를 획득하는 단계를 더 포함하는,
    손 추적 기반 행위 분류 방법.
  6. 제 4 항에 있어서,
    상기 비대면 사용자의 행위를 분류하는 단계는,
    상기 ROI 이미지 및 상기 손 키포인트 각각에 대한 3차원 좌표 값을 기반으로 상기 비대면 사용자의 손의 자세를 판단하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  7. 제 1 항에 있어서,
    상기 기 학습된 행위 분류 알고리즘은,
    상기 비대면 사용자 이미지가 입력되면, 상기 비대면 사용자 이미지를 기반으로 검출된 손 전체 영역의 ROI 이미지 및 손 키포인트 정보를 입력으로 쿼리(query)하여, 손 영역의 객체와 손의 자세에 매핑된 행위 클래스에 따른 비 허용 객체 사용 여부가 출력되도록 학습된 학습 모델인,
    손 추적 기반 행위 분류 방법.
  8. 제 7 항에 있어서,
    상기 기 학습된 행위 분류 알고리즘은, 훈련 페이즈(training phase)를 거쳐 훈련되고,
    상기 훈련 페이즈는,
    상기 비대면 사용자 이미지가 입력되면, 상기 비대면 사용자 이미지에서 손 전체 영역의 ROI 이미지를 검출하는 단계;
    상기 검출한 손 전체 영역의 ROI 이미지에서 손 키포인트 각각에 대한 3차원 좌표 값을 예측하는 단계;
    상기 ROI 이미지 및 상기 손 키포인트 각각에 대한 3차원 좌표 값을 기반으로, 상기 손 영역의 객체와 상기 손의 자세를 검출하여, 상기 비대면 사용자의 행위를 분류하는 단계; 및
    상기 행위 분류 결과에 따른 상기 비대면 사용자의 비 허용 객체 사용 여부를 추론하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  9. 제 8 항에 있어서,
    상기 훈련 페이즈의 상기 비대면 사용자의 행위를 분류하는 단계는,
    상기 손 전체 영역의 ROI 이미지와 크기가 동일한 빈 그리드를 생성하는 단계;
    상기 손 키포인트 각각에 대한 3차원 좌표 값을 기반으로, 상기 빈 그리드에 각각의 키포인트 좌표 지점을 마킹하는 단계; 및
    상기 각각의 키포인트 좌표 지점이 마킹된 그리드에 가우시안 블러를 적용하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  10. 제 9 항에 있어서,
    상기 훈련 페이즈의 상기 비대면 사용자의 행위를 분류하는 단계는,
    상기 손 전체 영역의 ROI 이미지의 색상 값에 기반한 채널 및 상기 각각의 키포인트별 채널로 구성된 입력 텐서를 기반으로, 상기 비대면 사용자의 행위를 분류하는 단계를 포함하는,
    손 추적 기반 행위 분류 방법.
  11. 제 8 항에 있어서,
    상기 손 영역 이미지와 상기 손 키포인트 정보를 기반으로 한 상기 비대면 사용자의 행위 분류 결과에 기초하여 상기 비대면 사용자가 비 허용 객체를 사용하는 것으로 판단한 경우, 상기 비대면 사용자의 시선 방향이 상기 손의 위치를 향하고 있는지 판단하는 단계; 및
    상기 비대면 사용자의 시선 방향이 상기 손의 위치를 향하고 있는 경우, 상기 비대면 사용자가 비 허용 객체를 사용하고 있는 것으로 추가 판단하는 단계를 더 포함하는,
    손 추적 기반 행위 분류 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 제 1 항에 있어서,
    상기 비 허용 객체 사용 판단에 따라 상기 비대면 사용자에 경고를 출력하는 단계를 더 포함하는,
    손 추적 기반 행위 분류 방법.
  16. 비대면으로 콘텐츠를 이용하는 사용자의 손 이미지를 기반으로 비대면 사용자의 행위를 판단하는 손 추적 기반 행위 분류 장치로서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 하나의 프로세서를 포함하고,
    상기 하나의 프로세서는,
    상기 비대면 사용자의 이미지를 획득하는 동작,
    기 학습된 행위 분류 알고리즘을 기반으로, 상기 비대면 사용자 이미지의 손 영역을 검출하는 동작,
    상기 비대면 사용자의 시선 추적을 수행하는 동작,
    상기 손 영역과 추적된 시선에 기반하여, 상기 비대면 사용자의 행위를 분류하는 동작, 및
    상기 행위 분류 결과에 기초하여, 상기 비대면 사용자의 비 허용 객체 사용 여부를 판단하는 동작을 수행하도록 설정되고,
    상기 시선 추적을 수행하는 동작은,
    카메라 공간을 이미지 공간으로 변환하는 원근 투영 행렬 및 변수를 기반으로 상기카메라의 중심과 상기 사용자의 홍채의 중심을 통과하는 직선을 도출하는 동작,
    상기 직선과 상기 사용자의 얼굴의 자세를 기반으로 얼굴 공간에서 정의된 눈의 표면을 모델링하는 기하와 상기 직선의 교점을 구하여 상기 카메라 공간에서의 홍채의 위치를 계산하는 동작, 및
    상기 얼굴 공간에서의 안구의 중심과 상기 홍채의 위치 간의 차이를 이용하여 상기 카메라 공간에서의 시선의 방향을 계산하는 동작을 포함하고,

    상기 시선 추적을 수행하는 동작은,
    상기 얼굴 공간에서 한쪽 눈 평면 상의 점
    Figure 112023501180329-pat00059
    , 눈 평면의 법선
    Figure 112023501180329-pat00060
    이 주어졌을 때, 상기 값들
    Figure 112023501180329-pat00061
    을 얼굴의 자세를 나타내는 회전행렬 R, 이동벡터 t를 통해 상기 카메라 공간으로 변환하여 하기의 수학식을 만족하는 상기 변수(
    Figure 112023501180329-pat00062
    )를 찾는 동작을 더 포함하고,
    Figure 112023501180329-pat00063
    ,
    상기 변수는,
    하기의 수학식으로 계산되는,
    Figure 112023501180329-pat00064

    손 추적 기반 행위 분류 장치.
  17. 제 16 항에 있어서,
    상기 비대면 사용자의 행위를 분류하는 동작은,
    상기 획득한 상기 비대면 사용자 이미지를 기반으로 손 영역 이미지와 손 키포인트 정보를 검출하는 동작, 및
    상기 손 영역 이미지와 상기 손 키포인트 정보를 기반으로, 상기 손 영역의 객체와 상기 손의 자세를 검출하여, 상기 비대면 사용자의 행위를 분류하는 동작을 포함하는,
    손 추적 기반 행위 분류 장치.
  18. 제 16 항에 있어서,
    상기 기 학습된 행위 분류 알고리즘은,
    상기 비대면 사용자 이미지가 입력되면, 상기 비대면 사용자 이미지를 기반으로 검출된 손 전체 영역의 ROI 이미지 및 손 키포인트 정보를 입력으로 쿼리(query)하여, 손 영역의 객체와 손의 자세에 매핑된 행위 클래스에 따른 비 허용 객체 사용 여부가 출력되도록 학습된 학습 모델인,
    손 추적 기반 행위 분류 장치.
  19. 삭제
  20. 삭제
KR1020220042990A 2021-09-16 2022-04-06 손 추적 기반 행위 분류 방법 및 장치 KR102542683B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210123950 2021-09-16
KR1020210123950 2021-09-16

Publications (2)

Publication Number Publication Date
KR20230040849A KR20230040849A (ko) 2023-03-23
KR102542683B1 true KR102542683B1 (ko) 2023-06-14

Family

ID=85799292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220042990A KR102542683B1 (ko) 2021-09-16 2022-04-06 손 추적 기반 행위 분류 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102542683B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117115861B (zh) * 2023-10-19 2024-01-26 四川弘和数智集团有限公司 手套检测方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200372246A1 (en) * 2019-05-21 2020-11-26 Magic Leap, Inc. Hand pose estimation
US20210174519A1 (en) * 2019-12-10 2021-06-10 Google Llc Scalable Real-Time Hand Tracking

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019028798A1 (zh) * 2017-08-10 2019-02-14 北京市商汤科技开发有限公司 驾驶状态监控方法、装置和电子设备
KR102195401B1 (ko) 2020-10-07 2020-12-24 (주)멀틱스 Rgb 키포인트 매트릭스 이미지를 이용한 딥러닝 기반 실시간 수어 영상 스트림 인식 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200372246A1 (en) * 2019-05-21 2020-11-26 Magic Leap, Inc. Hand pose estimation
US20210174519A1 (en) * 2019-12-10 2021-06-10 Google Llc Scalable Real-Time Hand Tracking

Also Published As

Publication number Publication date
KR20230040849A (ko) 2023-03-23

Similar Documents

Publication Publication Date Title
US11379996B2 (en) Deformable object tracking
CN110785767B (zh) 紧凑的无语言面部表情嵌入和新颖三元组的训练方案
JP7476428B2 (ja) 画像の視線補正方法、装置、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
CN108292362A (zh) 用于光标控制的手势识别
KR102252439B1 (ko) 이미지에서 오브젝트 검출 및 표현
CN111563502A (zh) 图像的文本识别方法、装置、电子设备及计算机存储介质
WO2020103700A1 (zh) 一种基于微表情的图像识别方法、装置以及相关设备
US11853895B2 (en) Mirror loss neural networks
CN115050064A (zh) 人脸活体检测方法、装置、设备及介质
KR102542683B1 (ko) 손 추적 기반 행위 분류 방법 및 장치
Neverova Deep learning for human motion analysis
CN115620398A (zh) 一种目标动作检测方法及装置
JP2023109570A (ja) 情報処理装置、学習装置、画像認識装置、情報処理方法、学習方法、画像認識方法
US10713847B2 (en) Method and device for interacting with virtual objects
Singh et al. A cheating detection system in online examinations based on the analysis of eye-gaze and head-pose
KR102542705B1 (ko) 얼굴 추적 기반 행위 분류 방법 및 장치
Hariharan et al. Computer vision based student behavioral tracking and analysis using deep learning
Basinillo et al. Development of a model that Detects Student's Disengagement during an online Lecture presentation through eye tracking and/or head movement
Ajay et al. Analyses of Machine Learning Techniques for Sign Language to Text conversion for Speech Impaired
Cortés et al. Asymmetry Level in Cleft Lip Children Using Dendrite Morphological Neural Network
Naik et al. The evolution of military operations: artificial intelligence to detect hand gestures in defence
Tomas et al. Determining Student's Engagement in Synchronous Online Classes Using Deep Learning (Compute Vision) and Machine Learning
Herbert et al. Static and Dynamic Hand Gestures: A Review of Techniques of Virtual Reality Manipulation
KR102563522B1 (ko) 사용자의 얼굴을 인식하는 장치, 방법 및 컴퓨터 프로그램
Zuo et al. Personalized Gestures Through Motion Transfer: Protecting Privacy in Pervasive Surveillance

Legal Events

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