KR20170124686A - 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈 - Google Patents

트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈 Download PDF

Info

Publication number
KR20170124686A
KR20170124686A KR1020160054255A KR20160054255A KR20170124686A KR 20170124686 A KR20170124686 A KR 20170124686A KR 1020160054255 A KR1020160054255 A KR 1020160054255A KR 20160054255 A KR20160054255 A KR 20160054255A KR 20170124686 A KR20170124686 A KR 20170124686A
Authority
KR
South Korea
Prior art keywords
register
face detection
memory
state
result
Prior art date
Application number
KR1020160054255A
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 KR1020160054255A priority Critical patent/KR20170124686A/ko
Publication of KR20170124686A publication Critical patent/KR20170124686A/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/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06K9/00228
    • G06K9/00302
    • G06K9/36
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • 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/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/174Facial expression recognition
    • 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
    • G06T2207/30201Face

Abstract

본 발명의 얼굴 검출 및 인식 모듈은, 제1 포트를 통해 제1 커맨드 및 제1 어드레스를 획득하는 레지스터 인터페이스, 제1 어드레스들에 각각 대응하는 레지스터 값들을 저장하는 메모리 맵드 레지스터, 제1 어드레스에 대응하는 레지스터 값을 변환하고 이벤트를 생성하는 레지스터 어드레스 디코더 및 이벤트 생성기, 제2 포트를 통해 제2 커맨드, 제2 어드레스 및 이미지 데이터를 획득하는 메모리 인터페이스, 제2 어드레스들에 각각 대응하는 데이터를 저장하는 데이터 메모리, 제2 어드레스를 이용하여 데이터 메모리에 이미지 데이터를 저장하는 메모리 어드레스 디코더, 그리고 상태 및 이벤트에 따라 얼굴 검출 및 인식을 수행하고 결과를 메모리 맵드 레지스터에 저장하는 얼굴 검출 및 인식기를 포함한다.

Description

트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈{FACE DETECTION AND RECOGNITION MODEL BASED ON TRANSACTION LEVEL MODEL}
본 발명은 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈에 관한 것이다.
얼굴 검출 및 인식 모듈은 이미지 상에서 사람의 얼굴을 검출하고 인식하는 데에 사용된다. 얼굴 검출 및 인식 모듈을 테스트하기 위하여, 그리고 얼굴 검출 및 인식 모듈과 연동하는 소프트웨어의 개발을 위하여, 얼굴 검출 및 인식 모듈과 연동된 플랫폼이 요구된다. 얼굴 검출 및 인식 모듈과 연동하는 플랫폼은 클록 사이클 단위의 전송 정확도 및 빠른 동작 속도를 필요로 한다.
클록 사이클 단위의 전송 정확도를 갖는 모델들로 클록 사이클 단위 모델 및 신호 레벨 모델이 알려져 있다. 그러나, 클록 사이클 단위 모델 및 신호 레벨 모델은 개발 기간이 길다는 단점이 있다. 또한, 클록 사이클 단위 모델 및 신호 레벨 모델은 이벤트 수가 상대적으로 많아서 동작 속도가 상대적으로 낮은 단점이 있다.
본 발명의 목적은, 클록 사이클 단위의 전송 정확도 및 적은 수의 이벤트들을 발생하는 트랜잭션 레벨 모델(Transaction Level Model) 기반의 얼굴 검출 및 인식 모듈을 제공하는 데에 있다.
본 발명의 실시 예에 따른 얼굴 검출 및 인식 모듈은, 제1 포트를 통해 수신되는 레지스터 정보를 디코딩하여 제1 커맨드 및 제1 어드레스를 획득하고, 상기 제1 포트를 통해 응답을 출력하도록 구성되는 레지스터 인터페이스, 제1 어드레스들 및 상기 제1 어드레스들에 각각 대응하는 레지스터 값들을 저장하도록 구성되는 메모리 맵드 레지스터, 상기 레지스터 인터페이스의 호출에 따라 상기 메모리 맵드 레지스터의 상기 레지스터 값들 중 상기 제1 어드레스에 대응하는 레지스터 값을 상기 커맨드에 따라 변환하고, 상기 변환된 레지스터 값 및 상태가 조건을 충족할 때에 이벤트를 생성하도록 구성되는 레지스터 어드레스 디코더 및 이벤트 생성기, 제2 포트를 통해 수신되는 메모리 정보를 디코딩하여 제2 커맨드, 제2 어드레스 및 이미지 데이터를 획득하고, 상기 제2 포트를 통해 응답을 출력하도록 구성되는 메모리 인터페이스, 제2 어드레스들 및 상기 제2 어드레스들에 각각 대응하는 데이터를 저장하도록 구성되는 데이터 메모리, 상기 메모리 인터페이스의 호출에 따라 상기 데이터 메모리에 상기 이미지 데이터를 저장하도록 구성되는 메모리 어드레스 디코더, 그리고 상기 상태 및 상기 이벤트에 따라 상기 이미지 데이터에서 얼굴 검출 및 인식을 수행하고, 상기 얼굴 검출 및 인식의 결과를 상기 메모리 맵드 레지스터에 저장하도록 구성되는 얼굴 검출 및 인식기를 포함한다. 상기 레지스터 인터페이스 및 상기 메모리 인터페이스는 트랜잭션 레벨(transaction level)에서 상기 얼굴 검출 및 인식과 연관된 정보들 및 상기 이미지 데이터를 수신하고 그리고 상기 얼굴 검출 및 인식의 결과를 출력하도록 구성된다.
본 발명의 실시 예들에 따르면, 얼굴 검출 및 인식 모듈은 트랜잭션 레벨 모델(Transaction Level Model) 기반으로 외부 플랫폼과 연동된다. 따라서, 클록 사이클 단위의 전송 정확도를 제공하며 더 적은 수의 이벤트들을 발생하여 향상된 수행 속도를 갖는 얼굴 검출 및 인식 모듈이 제공된다.
도 1은 본 발명의 실시 예에 따른 얼굴 검출 및 인식 시스템을 보여주는 블록도이다.
도 2는 마스터 레지스터 포트, 슬레이브 레지스터 포트 및 슬레이브 레지스터 인터페이스에서 트랜잭션이 전달되는 예를 보여준다.
도 3은 마스터 메모리 포트, 슬레이브 메모리 포트 및 슬레이브 메모리 인터페이스에서 트랜잭션이 전달되는 예를 보여준다.
도 4는 슬레이브 레지스터 인터페이스, 레지스터 어드레스 디코더 및 이벤트 생성기, 그리고 메모리 맵드 레지스터 사이의 통신을 보여준다.
도 5는 슬레이브 메모리 인터페이스, 메모리 어드레스 디코더, 그리고 데이터 메모리 사이의 통신을 보여준다.
도 6은 레지스터 값들 및 상태들에 따라 레지스터 어드레스 디코더 및 이벤트 생성기에서 생성되는 이벤트들의 예를 보여주는 테이블이다.
도 7은 도 1의 상태 기계가 이벤트에 따라 상태를 변경하는 예를 보여주는 상태도이다.
도 8은 메모리 맵드 레지스터 및 얼굴 검출 및 인식기의 통신을 보여주는 순서도이다.
도 9는 마스터 모듈이 얼굴 검출 및 인식 모듈과 통신하는 과정을 보여주는 순서도이다.
도 10은 도 1의 얼굴 인식 시스템의 응용 예를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 얼굴 검출 및 인식 시스템(100)을 보여주는 블록도이다. 도 1을 참조하면, 얼굴 검출 및 인식 시스템(100)은 마스터 모듈(110) 및 얼굴 검출 및 인식 모듈(120)을 포함한다.
예를 들어, 마스터 모듈(110)은 얼굴 검출 및 인식 모듈(120)과 연동되며, 얼굴 검출 및 인식 모듈(120)을 테스트하거나 또는 얼굴 검출 및 인식 모듈(120)과 연동되는 소프트웨어를 개발하기 위한 환경을 제공하는 플랫폼일 수 있다. 예를 들어, 마스터 모듈(110)은 컴퓨터 또는 얼굴 검출 및 인식 모듈(120)을 테스트하도록 설계된 전용 장치를 포함할 수 있다. 마스터 모듈(110)은 마스터 레지스터 포트(MRP) 및 마스터 메모리 포트(MMP)를 통해 얼굴 검출 및 인식 모듈(120)과 통신할 수 있다.
얼굴 검출 및 인식 모듈(120)은 슬레이브 레지스터 포트(SRP), 슬레이브 레지스터 인터페이스(SRI), 레지스터 어드레스 디코더 및 이벤트 생성기(DEG), 메모리 맵드 레지스터(MMR), 얼굴 검출 및 식별기(FDR), 상태 기계(SM), 슬레이브 메모리 포트(SMP), 슬레이브 메모리 인터페이스(SMI), 메모리 어드레스 디코더(DEC), 그리고 데이터 메모리(DM)를 포함한다.
슬레이브 레지스터 포트(SRP)는 마스터 모듈(110)의 마스터 레지스터 포트(MRP)와 연결된다. 슬레이브 레지스터 인터페이스(SRI)는 슬레이브 레지스터 포트(SRP)를 통해 레지스터와 연관된 요청을 수신하고, 수신된 요청을 디코딩할 수 있다. 디코딩 결과에 따라, 슬레이브 레지스터 인터페이스(SRI)는 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)를 호출할 수 있다. 또한, 슬레이브 레지스터 인터페이스(SRI)는 디코딩 결과에 따라, 슬레이브 레지스터 포트(SRP)를 통해 응답을 출력할 수 있다.
레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 슬레이브 레지스터 인터페이스(SRI)의 디코딩 결과에 따라, 메모리 맵드 레지스터(MMR)에 레지스터 값들을 기입하거나 메모리 맵드 레지스터(MMR)로부터 레지스터 값들을 읽을 수 있다. 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 기입된 또는 읽혀진 레지스터 값과 상태 기계(SM)에 의해 제어되는 상태가 주어진 조건을 만족하면, 만족된 조건에 해당하는 이벤트를 생성할 수 있다.
메모리 맵드 레지스터(MMR)는 복수의 어드레스들 및 복수의 어드레스들에 각각 대응하는 복수의 레지스터 값들을 저장할 수 있다. 예를 들어, 메모리 맵드 레지스터(MMR)는 설정 레지스터 값들 및 결과 레지스터 값들을 포함할 수 있다.
얼굴 검출 및 식별기(FDR)는 상태 기계(SM)의 제어에 응답하여, 데이터 메모리(DM)에 저장된 이미지 데이터에 대해 얼굴 검출 및 인식을 수행할 수 있다. 얼굴 검출 및 식별기(FDR)는 얼굴 검출 및 인식을 메모리 맵드 레지스터(MMR)에, 더 상세하게는 결과 레지스터 값들로 저장할 수 있다.
상태 기계(SM)는 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)에 의해 발생되는 이벤트 및 현재 상태에 따라, 현재 상태를 다른 상태로 변경할 수 있다. 상태 기계(SM)는 현재 상태 또는 변경된 상태에 따라, 얼굴 검출 및 인식 모듈(120)의 다양한 구성 요소들을 제어할 수 있다.
슬레이브 메모리 포트(SMP)는 마스터 메모리 포트(MMP)와 연결된다. 슬레이브 메모리 인터페이스(SMI)는 슬레이브 메모리 포트(SMP)를 통해 이미지 데이터 및 이미지 데이터와 연관된 요청을 수신하고, 수신된 요청을 디코딩할 수 있다. 디코딩 결과에 따라, 슬레이브 메모리 인터페이스(SMI)는 메모리 어드레스 디코더(DEC)를 호출할 수 있다. 또한, 슬레이브 메모리 인터페이스(SMI)는 디코딩 결과에 따라, 슬레이브 메모리 포트(SMP)를 통해 응답을 출력할 수 있다.
메모리 어드레스 디코더(DEC)는 슬레이브 메모리 인터페이스(SMI)의 디코딩 결과에 따라, 디코딩된 메모리 어드레스를 이용하여 데이터 메모리(DM)에 이미지 데이터를 기입할 수 있다.
데이터 메모리(DM)는 메모리 어드레스 디코더(DEC) 및 얼굴 검출 및 인식기(FDR)에 의해 액세스되며 이미지 데이터가 저장되는 저장 공간을 제공할 수 있다.
예시적으로, 슬레이브 레지스터 포트(SRP), 슬레이브 레지스터 인터페이스(SRI), 레지스터 어드레스 디코더 및 이벤트 생성기(DEG), 메모리 맵드 레지스터(MMR), 얼굴 검출 및 식별기(FDR), 상태 기계(SM), 슬레이브 메모리 포트(SMP), 슬레이브 메모리 인터페이스(SMI), 메모리 어드레스 디코더(DEC), 그리고 데이터 메모리(DM) 각각은 하드웨어 회로, 하드웨어 회로에서 구동되는 소프트웨어, 하드웨어 회로와 소프트웨어가 결합된 하이브리드 형태, 하드웨어 개발 언어를 통해 구현된 레이아웃 등과 같이 다양하게 구현될 수 있다.
도 2는 마스터 레지스터 포트(MRP), 슬레이브 레지스터 포트(SRP) 및 슬레이브 레지스터 인터페이스(SRI)에서 트랜잭션이 전달되는 예를 보여준다. 도 2를 참조하면, 마스터 레지스터 포트(MRP)는 'b_transport'를 통해 트랜잭션을 전송할 수 있다. 예를 들어, 마스터 모듈(110, 도 1 참조)이 얼굴 검출 및 인식 모듈(120)의 클록 사이클에 맞추어 트랜잭션을 전송함으로써, 클록 사이클에 맞춘 전송 정확도가 보장될 수 있다. 트랜잭션이 전송되면, 슬레이브 레지스터 인터페이스(SRI)는 입력된 트랜잭션의 유효성을 검사하고, 읽기 또는 쓰기를 가리키는 트랜잭션 타입(예를 들어, 커맨드 타입), 어드레스, 데이터, 그리고 길이(예를 들어, 데이터 길이 또는 트랜잭션 길이)를 디코딩할 수 있다. 슬레이브 레지스터 인터페이스(SRI)는 디코딩의 결과에 따라 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)를 호출할 수 있다. 또한, 슬레이브 레지스터 인터페이스(SRI)는 트랜잭션의 수신 또는 디코딩의 결과에 따라 응답을 생성하고 슬레이브 레지스터 포트(SRP)를 통해 출력할 수 있다.
도 3은 마스터 메모리 포트(MMP), 슬레이브 메모리 포트(SMP) 및 슬레이브 메모리 인터페이스(SRI)에서 트랜잭션이 전달되는 예를 보여준다. 도 3을 참조하면, 마스터 메모리 포트(MMP)는 'b_transport'를 통해 트랜잭션을 전송할 수 있다. 예를 들어, 마스터 모듈(110, 도 1 참조)이 얼굴 검출 및 인식 모듈(120)의 클록 사이클에 맞추어 트랜잭션을 전송함으로써, 클록 사이클에 맞춘 전송 정확도가 보장될 수 있다. 트랜잭션이 전송되면, 슬레이브 메모리 인터페이스(SMI)는 입력된 트랜잭션의 유효성을 검사하고, 읽기 또는 쓰기를 가리키는 트랜잭션 타입(예를 들어, 커맨드 타입), 어드레스, 데이터(예를 들어, 이미지 데이터), 그리고 길이(예를 들어, 데이터 길이 또는 트랜잭션 길이)를 디코딩할 수 있다. 슬레이브 메모리 인터페이스(SMI)는 디코딩의 결과에 따라 메모리 어드레스 디코더(DEC)를 호출할 수 있다. 또한, 슬레이브 메모리 인터페이스(SMI)는 트랜잭션의 수신 또는 디코딩의 결과에 따라 응답을 생성하고 슬레이브 메모리 포트(SMP)를 통해 출력할 수 있다.
도 4는 슬레이브 레지스터 인터페이스(SRI), 레지스터 어드레스 디코더 및 이벤트 생성기(DEG), 그리고 메모리 맵드 레지스터(MMR) 사이의 통신을 보여준다. 도 4를 참조하면, 슬레이브 레지스터 인터페이스(SRI)는 디코딩 결과, 즉 타입, 어드레스, 데이터 및 길이를 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)로 전달할 수 있다.
레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 타입, 어드레스 및 데이터에 따라 메모리 맵드 레지스터(MMR)를 액세스할 수 있다. 예를 들어, 타입이 쓰기이면, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 어드레스를 이용하여 레지스터 이름(REGN)에 해당하는 레지스터 값을 입력된 데이터로 변경(switch)할 수 있다. 즉, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 입력된 데이터를 메모리 맵드 레지스터(MMR)에 레지스터 값으로 기입할 수 있다. 다른 예로서, 타입이 읽기이면, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 어드레스를 이용하여 레지스터 이름(RGEN)에 해당하는 레지스터 값을 데이터로 획득할 수 있다. 즉, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 메모리 맵드 레지스터(MMR)로부터 레지스터 값을 읽을 수 있다.
상태 기계(SM)에 의해 관리되는 상태 및 기입된 또는 읽혀진 데이터(즉 레지스터 값)이 주어진 조건을 만족하면, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 이벤트를 생성할 수 있다. 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)에 의해 생성되는 이벤트들의 예는 도 6에 도시된다.
메모리 맵드 어드레스(MMR)의 '#base'는 설정 요청(CONF_REQ)에 해당하는 레지스터 값을 저장할 수 있다. '#base+4'는 설정 응답(CONF_ACK)에 해당하는 레지스터 값을 저장할 수 있다. '#base+8'은 설정 완료 요청(CONF_DONE_REQ)에 해당하는 레지스터 값을 저장할 수 있다. '#base+12'는 설정 완료 응답(CONF_DONE_ACK)에 해당하는 레지스터 값을 저장할 수 있다. '#base+16'은 이미지 요청(IMG_REQ)에 해당하는 레지스터 값을 저장할 수 있다. '#base+20'은 이미지 응답(IMG_ACK)에 해당하는 레지스터 값을 저장할 수 있다. '#base+24'는 이미지 완료 요청(IMG_DONE_REQ)에 해당하는 레지스터 값을 저장할 수 있다. '#base+28'은 이미지 완료 응답(IMG_DONE_ACK)에 해당하는 레지스터 값을 저장할 수 있다. '#base+32'는 결과 요청(RESULT_REQ)에 해당하는 레지스터 값을 저장할 수 있다. '#base+36'은 결과 응답(RESULT_ACK)에 해당하는 레지스터 값을 저장할 수 있다. '#base+40'은 결과 완료 요청(RESULT_DONE_REQ)에 해당하는 레지스터 값을 저장할 수 있다. '#base+44'는 결과 완료 응답(RESULT_DONE_ACK)에 해당하는 레지스터 값을 저장할 수 있다. '#base+48'은 레지스터 설정에 사용될 수 있다. '#base' 내지 '#base+48'은 설정 레지스터 값들을 저장하는 데에 사용되며, 설정 레지스터 값들의 개수는 'NO_config_reg'로 참조될 수 있다.
메모리 맵드 어드레스(MMR)의 '#base+48_NO_config_reg'부터는 결과 레지스터 값들을 저장하는 데에 사용될 수 있다. 결과 레지스터 값들의 개수는 'NO_result_reg'로 참조된다.
도 5는 슬레이브 메모리 인터페이스(SMI), 메모리 어드레스 디코더(DEC), 그리고 데이터 메모리(DM) 사이의 통신을 보여준다. 도 5를 참조하면, 슬레이브 메모리 인터페이스(SMI)는 디코딩 결과, 즉 타입, 어드레스, 데이터 및 길이를 메모리 어드레스 디코더(DEC)로 전달할 수 있다.
메모리 어드레스 디코더(DEC)는 타입, 어드레스 및 데이터에 따라 데이터 메모리(DM)를 액세스할 수 있다. 예를 들어, 타입이 쓰기이면, 메모리 어드레스 디코더(DEC)는 어드레스를 이용하여 메모리 이름(MEMN)에 해당하는 레지스터 값을 입력된 데이터로 변경(switch)할 수 있다. 즉, 메모리 어드레스 디코더(DEC)는 입력된 데이터를 데이터 메모리(DM)에 레지스터 값으로 기입할 수 있다. 또한, 어드레스가 '#img_base' 이상이고 '#img_end' 이하이면, 메모리 어드레스 디코더(DEC)는 메모리 카운트를 '1'만큼 증가시킬 수 있다. 다른 예로서, 타입이 읽기이면, 메모리 어드레스 디코더(DEC)는 어드레스를 이용하여 메모리 이름(MEMN)에 해당하는 데이터를 획득할 수 있다.
데이터 메모리(DM)의 '#img_base'는 메모리 시작(Memory_base)이고, '#img_end'는 메모리 끝(Memory_end)일 수 있다. 메모리의 개수는 'memory_size'로 참조된다. 예시적으로, 'memory_size'는 하나의 HD 이미지에 해당하는 '1920X1080X3'일 수 있다.
도 6은 레지스터 값들 및 상태들에 따라 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)에서 생성되는 이벤트들의 예를 보여주는 테이블이다. 도 6을 참조하면, 레지스터 이름(REGN), 생성 이벤트 및 생성 이벤트 조건이 기재된다. 설정 요청(CONF_REQ)과 연관되어, 타입이 쓰기이고, 데이터(즉, 기입된 레지스터 값)이 '1'이고, 현재 상태가 준비 상태(st_READY)인 때에, 설정 요청(CONF_REQ) 이벤트가 생성될 수 있다. 설정 응답(CONF_ACK)과 연관되어, 타입이 읽기이고, 데이터(즉, 읽혀진 레지스터 값)이 '1'이고, 현재 상태가 설정 응답 상태(st_CONFIG_ACK)인 때에, 설정 응답 읽기(CONG_ACK_READ) 이벤트가 생성될 수 있다. 설정 완료 요청(CONF_DONE_REQ)과 연관되어, 타입이 쓰기이고, 데이터(즉, 기입된 레지스터 값)이 '1'이고, 그리고 현재 상태가 설정 상태(st_CONFIG)인 때에, 설정 완료 요청(CONF_DONE_REQ) 이벤트가 생성될 수 있다. 설정 완료 응답(CONF_DONE_ACK)과 연관되어, 타입이 읽기이고, 데이터(즉, 읽혀진 레지스터 값)이 '1'이고, 그리고 현재 상태가 설정 완료 응답 상태(st_CONFIG_DONE_ACK)인 때에, 설정 완료 응답 읽기(CONF_DONE_ACK_READ) 이벤트가 생성될 수 있다.
이미지 요청(IMG_REQ)과 연관되어, 타입이 쓰기이고, 데이터(즉 기입된 레지스터 값)이 '1'이고, 그리고 현재 상태가 데이터 준비 상태(st_DATA)인 때에, 이미지 요청(IMG_REQ) 이벤트가 생성될 수 있다. 이미지 응답(IMG_ACK)과 연관되어, 타입이 읽기이고, 데이터(즉 읽혀진 레지스터 값)이 '1'이고, 그리고 현재 상태가 이미지 응답 상태(st_IMG_ACK)인 때에, 이미지 응답 읽기(IMG_ACK_READ) 이벤트가 생성될 수 있다. 이미지 완료 요청(IMG_DONE_REQ)과 연관되어, 타입이 쓰기이고, 데이터(즉, 기입된 레지스터 값)이 '1'이고, 그리고 현재 상태가 데이터 완료 상태(st_DATA_DONE)인 때에, 이미지 완료 요청(IMG_DONE_REQ) 이벤트가 생성될 수 있다. 이미지 완료 응답(IMG_DONE_ACK)과 연관되어, 타입이 읽기이고, 데이터(즉, 읽혀진 레지스터 값)이 '1'이고, 그리고 현재 상태가 이미지 완료 응답 상태(st_IMG_DONE_ACK)인 때에, 이미지 완료 응답 읽기(IMG_DONE_ACK_READ) 이벤트가 생성될 수 있다.
결과 요청(RESULT_REQ)과 연관되어, 타입이 읽기이고, 데이터(즉, 읽혀진 레지스터 값)이 '1'이고, 그리고 현재 상태가 결과 요청 상태(st_RESULT_REQ)인 때에, 결과 요청 읽기(RESULT_REQ_READ) 이벤트가 생성될 수 있다. 결과 응답(RESULT_ACK)과 연관되어, 타입이 쓰기이고, 데이터(즉, 기입된 레지스터 값)이 '1'이고, 그리고 현재 상태가 결과 응답 상태(st_RESULT_ACK)인 때에, 결과 응답(RESULT_ACK) 이벤트가 생성될 수 있다. 결과 완료 요청(RESULT_DONE_REQ)과 연관되어, 타입이 읽기이고, 데이터(즉, 기입된 레지스터 값)이 '1'이고, 그리고 현재 상태가 결과 완료 요청 상태(st_RESULT_DONE_REQ)인 때에, 결과 완료 요청 읽기(RESULT_DONE_REQ_READ) 이벤트가 생성될 수 있다. 결과 완료 응답(RESULT_DONE_ACK)과 연관되어, 타입이 쓰기이고, 데이터(즉, 기입된 레지스터 값)이 '1'이고, 그리고 현재 상태가 결과 완료 응답 상태(st_RESULT_DONE_ACK)인 때에, 결과 완료 응답(RESULT_DONE_ACK) 이벤트가 생성될 수 있다.
도 7은 도 1의 상태 기계(SM)가 이벤트에 따라 상태를 변경하는 예를 보여주는 상태도이다. 도 1, 도 6 및 도 7을 참조하면, 제1 상태(S1)는 준비 상태(st_READY)일 수 있다. 예를 들어, 제1 상태(S1)에서, 얼굴 검출 및 인식 모듈(120)은 마스터 모듈(110)로부터 트랜잭션이 전송될 것을 대기할 수 있다. 제1 상태(S1)에서, 메모리 카운트는 '0'으로 리셋된다. 제1 상태(S1)에서, 설정 요청(CONF_REQ)의 레지스터 값으로 '1'이 기입되면, 설정 요청(CONF_REQ) 이벤트가 생성되고, 상태 기계(SM)는 제2 상태(S2)로 천이한다. 예를 들어, 마스터 모듈(110)이 설정 요청(CONF_REQ)의 레지스터 값으로 '1'의 기입을 요청한 때에, 설정 요청(CONF_REQ) 이벤트가 생성될 수 있다.
제2 상태(S2)는 설정 응답 상태(st_CONFIG_ACK)일 수 있다. 제2 상태(S2)에서, 설정 응답(CONF_ACK)의 레지스터 값이 '1'로 읽혀지면, 설정 응답 읽기(CONF_ACK_READ) 이벤트가 생성되고, 상태 기계(SM)는 제3 상태(S3)로 천이한다. 예를 들어, 슬레이브 레지스터 인터페이스(SRI)는 메모리 맵드 레지스터(MMR)의 '#base+48'의 설정을 수행할 준비가 완료되면, 설정 응답(CONF_ACK)의 레지스터 값을 '1'로 설정할 수 있다. 마스터 모듈(110)이 설정 응답(CONF_ACK)의 레지스터 값을 읽은 결과가 '1'인 때에, 즉 얼굴 검출 및 인식 모듈(120)에서 레지스터 설정의 준비가 완료되었음을 마스터 모듈(110)이 식별한 때에, 설정 응답 읽기(CONF_ACK_READ) 이벤트가 생성될 수 있다.
제3 상태(S3)는 설정 상태(st_CONFIG)일 수 있다. 제3 상태(S3)에서, 슬레이브 레지스터 인터페이스(SRI)는 마스터 모듈(110)로부터 전달되는 설정 정보를 메모리 맵드 레지스터(MMR)의 '#base+48'에 기입할 수 있다. 예를 들어, 설정 정보는 얼굴 검출 및 인식기(FDR)의 설정에 필요한 정보일 수 있다. 제3 상태(S3)에서, 설정 완료 요청(CONF_DONE_REQ)의 레지스터 값이 '1'로 설정되면 설정 완료 요청(CONF_DONE_REQ) 이벤트가 생성되고, 상태 기계(SM)는 제4 상태(S4)로 천이한다. 즉, 마스터 모듈(110)이 레지스터 설정을 완료하고, 설정 완료 요청(CONF_DONE_REQ)의 레지스터 값을 '1'로 기입한 때에, 설정 완료 요청(CONF_DONE_REQ) 이벤트가 생성될 수 있다.
제4 상태(S4)는 설정 완료 응답 상태(st_CONFIG_DONE_ACK)일 수 있다. 제4 상태(S4)에서, 설정 완료 응답(CONF_DONE_ACK)의 레지스터 값이 '1'로 읽혀지면, 설정 완료 응답 읽기(CONF_DONE_ACK_READ) 이벤트가 생성되고, 상태 기계(SM)는 제5 상태(S5)로 천이한다. 예를 들어, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 메모리 맵드 레지스터(MMR)의 '#base+48'의 설정 모드를 종료하고, 설정 완료 응답(CONF_DONE_ACK)의 레지스터 값을 '1'로 설정할 수 있다. 마스터 모듈(110)이 설정 완료 응답(CONF_DONE_ACK)의 레지스터 값을 읽은 결과가 '1'인 때에, 즉 얼굴 검출 및 인식 모듈(120)에서 레지스터 설정 모드가 종료되었음을 마스터 모듈(110)이 식별한 때에, 설정 완료 응답 읽기(CONF_DONE_ACK_READ) 이벤트가 생성될 수 있다.
제5 상태(S5)는 데이터 준비 상태(st_DATA)일 수 있다. 예를 들어, 제5 상태(S5)에서, 얼굴 검출 및 인식 모듈(120)은 마스터 모듈(110)로부터 데이터 전송을 위한 트랜잭션이 전송될 것을 대기할 수 있다. 제5 상태(S5)에서, 이미지 요청(IMG_REQ)의 레지스터 값으로 '1'이 기입되면, 이미지 요청(IMG_REQ) 이벤트가 생성되고, 상태 기계(SM)는 제6 상태(S6)로 천이한다. 예를 들어, 마스터 모듈(110)이 이미지 요청(IMG_REQ)의 레지스터 값으로 '1'의 기입을 요청한 때에, 이미지 요청(IMG_REQ) 이벤트가 생성될 수 있다.
제6 상태(S6)는 이미지 응답 상태(st_IMG_ACK)일 수 있다. 제6 상태(S6)에서, 이미지 응답(IMG_ACK)의 레지스터 값이 '1'로 읽혀지면, 이미지 응답 읽기(IMG_ACK_READ) 이벤트가 생성되고, 상태 기계(SM)는 제7 상태(S7)로 천이한다. 예를 들어, 슬레이브 메모리 인터페이스(SMI)를 통해 이미지 데이터를 수신할 준비가 완료되면, 슬레이브 레지스터 인터페이스(SRI)는 이미지 응답(IMG_ACK)의 레지스터 값을 '1'로 설정할 수 있다. 마스터 모듈(110)이 설정 응답(CONF_ACK)의 레지스터 값을 읽은 결과가 '1'인 때에, 즉 얼굴 검출 및 인식 모듈(120)에서 이미지 데이터의 수신의 준비가 완료되었음을 마스터 모듈(110)이 식별한 때에, 이미지 응답 읽기(IMG_ACK_READ) 이벤트가 생성될 수 있다.
제7 상태(S7)는 데이터 완료 상태(st_DATA_DONE)일 수 있다. 제7 상태(S7)에서, 슬레이브 메모리 인터페이스(SMI)는 마스터 모듈(110)로부터 전달되는 이미지 데이터를 데이터 메모리(DM)에 기입할 수 있다. 예를 들어, 도 5를 참조하여 설명된 바와 같이, 메모리 어드레스 디코더(DEC)는 데이터 메모리(DM)에 이미지 데이터가 기입됨에 따라, 메모리 카운트를 증가시킬 수 있다. 제7 상태(S7)에서, 이미지 완료 요청(IMG_DONE_REQ)의 레지스터 값이 '1'로 설정되면 이미지 완료 요청(IMG_DONE_REQ) 이벤트가 생성되고, 상태 기계(SM)는 제8 상태(S8)로 천이한다. 즉, 마스터 모듈(110)이 이미지 데이터의 전송을 완료하고, 이미지 완료 요청(IMG_DONE_REQ)의 레지스터 값을 '1'로 기입한 때에, 이미지 완료 요청(IMG_DONE_REQ) 이벤트가 생성될 수 있다.
제8 상태(S8)는 이미지 완료 응답 상태(st_IMG_DONE_ACK)일 수 있다. 제8 상태(S8)에서, 이미지 완료 응답(IMG_DONE_ACK)의 레지스터 값이 '1'로 읽혀지면, 이미지 완료 응답 읽기(IMG_DONE_ACK_READ) 이벤트가 생성되고, 상태 기계(SM)는 제9 상태(S9)로 천이한다. 예를 들어, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 이미지 데이터의 전송 모드가 종료되면, 이미지 완료 응답(IMG_DONE_ACK)의 레지스터 값을 '1'로 설정할 수 있다. 마스터 모듈(110)이 이미지 완료 응답(IMG_DONE_ACK)의 레지스터 값을 읽은 결과가 '1'인 때에, 즉 얼굴 검출 및 인식 모듈(120)에서 이미지 데이터의 전송 모드가 종료되었음을 마스터 모듈(110)이 식별한 때에, 이미지 완료 응답 읽기(CONF_DONE_ACK_READ) 이벤트가 생성될 수 있다.
제9 상태(S9)는 시작 상태(st_PROC_START)일 수 있다. 제9 상태에서, 메모리 카운트가 이미지 데이터의 하나의 프레임의 사이즈와 동일하면, 즉 하나의 프레임의 이미지 데이터가 데이터 메모리(DM)에 기입되었으면, 얼굴 처리 시작(FACE_START) 이벤트를 통해 얼굴 검출 및 인식이 시작될 수 있다. 얼굴 검출 및 인식이 완료되면, 내부적으로 얼굴 검출 완료(FACE_PROC_DONE) 이벤트가 생성되고, 상태 기계(SM)는 제10 상태로 천이한다. 메모리 카운트가 이미지 데이터의 하나의 프레임의 사이즈와 동일하지 않으면, 즉 하나의 프레임의 이미지 데이터가 데이터 메모리(DM)에 기입되지 않았으면, 상태 기계는 제1 상태(S1)로 복귀한다.
제10 상태(S10)는 결과 요청 상태(st_RESULT_REQ)일 수 있다. 제10 상태(S10)에서, 결과 요청(RESULT_REQ)의 레지스터 값이 '1'로 읽혀지면, 결과 요청 읽기(RESULT_REQ_READ) 이벤트가 생성되고, 상태 기계(SM)는 제11 상태(S11)로 천이한다. 예를 들어, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 얼굴 검출 및 인식기(FDR)에 의해 얼굴 검출 및 인식이 완료되고, 얼굴 검출 및 인식의 결과가 메모리 맵드 레지스터(MMR)에 결과 레지스터 값들로 기입되면, 결과 요청(RESULT_REQ)의 레지스터 값을 '1'로 설정할 수 있다. 마스터 모듈(110)이 결과 요청(RESULT_REQ)의 레지스터 값을 읽은 결과가 '1'인 때에, 즉 얼굴 검출 및 인식 모듈(120)에서 얼굴 검출 및 인식의 결과가 도출되었음을 마스터 모듈(110)이 식별한 때에, 결과 요청 읽기(RESULT_REQ_READ) 이벤트가 생성될 수 있다.
제11 상태(S11)는 결과 응답 상태(st_RESULT_ACK)일 수 있다. 제11 상태(S11)에서, 결과 응답(RESULT_ACK)의 레지스터 값이 '1'로 기입되면, 결과 응답(RESULT_ACK) 이벤트가 생성되고, 상태 기계(SM)는 제12 상태(S12)로 천이한다. 예를 들어, 마스터 모듈(110)은 얼굴 검출 및 인식의 결과들을 읽기를 원하는 타이밍에, 결과 응답(RESULT_ACK)의 레지스터 값을 '1'로 기입할 수 있다.
제12 상태(S12)는 결과 완료 요청 상태(st_RESULT_DONE_REQ)일 수 있다. 제12 상태(S12)에서, 결과 완료 요청(RESULT_DONE_REQ)의 레지스터 값이 '1'로 읽혀지면, 결과 완료 요청 읽기(RESULT_DONE_REQ_READ) 이벤트가 생성되고, 상태 기계(SM)는 제13 상태(S13)로 천이한다. 예를 들어, 레지스터 어드레스 디코더 및 이벤트 생성기(DEG)는 마스터 모듈(110)에 의해 얼굴 검출 및 인식의 결과가 모두 읽혀지면, 결과 완료 요청(RESULT_DONE_REQ)의 레지스터 값을 '1'로 설정할 수 있다. 마스터 모듈(110)이 결과 완료 요청(RESULT_DONE_REQ)의 레지스터 값을 읽은 결과가 '1'인 때에, 즉 얼굴 검출 및 인식의 결과가 모두 획득되었음을 마스터 모듈(110)이 식별한 때에, 결과 완료 요청(RESULT_DONE_REQ) 이벤트가 생성될 수 있다.
제13 상태(S13)는 결과 완료 응답 상태(st_RESULT_DONE_ACK)일 수 있다. 제13 상태(S13)에서, 결과 완료 응답(RESULT_DONE_ACK)의 레지스터 값이 '1'로 기입되면, 결과 완료 응답(RESULT_DONE_ACK) 이벤트가 생성되고, 상태 기계(SM)는 제1 상태(S1)로 복귀할 수 있다. 예를 들어, 마스터 모듈(110)은 얼굴 검출 및 인식의 결과들을 완료하고자 하는 타이밍에, 결과 완료 응답(RESULT_DONE_ACK)의 레지스터 값을 '1'로 기입할 수 있다.
도 8은 메모리 맵드 레지스터(MMR) 및 얼굴 검출 및 인식기(FDR)의 통신을 보여주는 순서도이다. 도 8을 참조하면, 메모리 맵드 레지스터(MMR)는 이미지의 폭 및 높이에 대한 정보를 얼굴 검출 및 인식기(FDR)로 전달할 수 있다. 예를 들어, 이미지의 폭 및 높이는 메모리 맵드 레지스터(MMR)의 '#base+48'을 통해 전달될 수 있다. 얼굴 검출 및 인식기(FDR)는 이미지의 폭 및 높이에 대한 정보를 이용하여, 데이터 메모리(DM, 도 1 참조)에 저장된 이미지 데이터에서 얼굴 검출 및 인식을 수행할 수 있다.
얼굴 검출 및 인식기(FDR)는 영상 다운스케일부(FDR_1), 적분 영상 생성부(FDR_2), 기준 얼굴 비교부(FDR_3), 얼굴 그루핑부(FDR_4), 피처 생성부(FDR_5), 그리고 인식부(FDR_6)를 포함한다.
영상 다운스케일부(FDR_1)는 데이터 메모리(DM)에 저장된 원 영상을 다운스케일하여 이미지 피라미드를 생성할 수 있다. 이미지 피라미드는 원 영상 및 원 영상보다 작으며 서로 다른 사이즈들을 갖는 둘 이상의 다운스케일 영상들을 포함할 수 있다. 적분 영상 생성부(FDR_2)는 이미지 피라미드에서 선택된 이미지의 적분 영상을 생성할 수 있다. 기준 얼굴 비교부(FDR_3)는 적분 영상을 기준 얼굴과 비교하여 얼굴 후보들을 식별할 수 있다. 얼굴 그루핑부(FDR_4)는 얼굴 후보들을 추출하여 그룹화할 수 있다. 피처 생성부(FDR_5)는 얼굴 후보들의 특징들을 피처들과 비교하여 특징들을 추출할 수 있다. 인식부(FDR_6)는 추출된 특징들을 기반으로 얼굴들을 분류할 수 있다.
예시적으로, 얼굴 검출 및 인식기(FDR)는 얼굴 처리 시작(FACE_START) 이벤트가 생성될 때까지 대기(wait)할 수 있다. 얼굴 검출 및 인식기(FDR)는 얼굴 검출 및 인식이 소요되는 수행 시간을 모델링하고, 수행 시간이 경과한 후에 얼굴 검출 완료(FACE_PROC_DONE) 이벤트를 생성할 수 있다. 얼굴 검출 및 인식기(FDR)는 얼굴 중심 수평 및 수직 좌표, 얼굴 폭, 얼굴 높이, 인식 결과 등을 포함하는 얼굴 검출 및 인식 결과로 메모리 맵드 레지스터(MMR)에 저장할 수 있다.
도 9는 마스터 모듈(110)이 얼굴 검출 및 인식 모듈(120)과 통신하는 과정을 보여주는 순서도이다. 도 1, 도 8 및 도 9를 참조하면, S110 단계에서, 얼굴 검출 및 인식 모듈(120)은 제1 상태(S1)일 수 있다. 마스터 모듈(110)은 설정 요청(CONF_REQ)의 레지스터 값을 '1'로 기입할 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 얼굴 검출 및 인식 모듈(120)은 제2 상태(S2)로 천이할 수 있다.
S115 단계에서, 마스터 모듈(110)은 설정 응답(CONF_ACK)의 레지스터 값을 읽을 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 설정 응답(CONF_ACK)의 레지스터 값이 '1'로 읽히면, 얼굴 검출 및 인식 모듈(120)은 제3 상태(S3)로 천이할 수 있다.
S120 단계에서, 마스터 모듈(110)은 한번 또는 둘 이상의 트랜잭션들을 통해 레지스터 설정을 수행할 수 있다. 예를 들어, 마스터 모듈(110)은 메모리 맵드 레지스터(MMR)의 '#base+48'에 레지스터 설정 값들을 기입할 수 있다.
S125 단계에서, 마스터 모듈(110)은 설정 완료 요청(CONF_DONE_REQ)의 레지스터 값을 '1'로 기입할 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 얼굴 검출 및 인식 모듈(120)은 제4 상태(S4)로 천이할 수 있다.
S130 단계에서, 마스터 모듈(110)은 설정 완료 응답(CONF_DONE_ACK)의 레지스터 값을 읽을 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 설정 완료 응답(CONF_DONE_ACK)의 레지스터 값이 '1'로 읽히면, 얼굴 검출 및 인식 모듈(120)은 제5 상태(S5)로 천이할 수 있다.
S135 단계에서, 마스터 모듈(110)은 이미지 요청(IMG_REQ)의 레지스터 값을 '1'로 기입할 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 얼굴 검출 및 인식 모듈(120)은 제6 상태(S6)로 천이할 수 있다.
S140 단계에서, 마스터 모듈(110)은 이미지 응답(IMG_ACK)의 레지스터 값을 읽을 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 이미지 응답(IMG_ACK)의 레지스터 값이 '1'로 읽히면, 얼굴 검출 및 인식 모듈(120)은 제7 상태(S7)로 천이할 수 있다.
S145 단계에서, 마스터 모듈(110)은 한번 또는 둘 이상의 트랜잭션들을 통해 이미지 데이터의 전송을 수행할 수 있다. 예를 들어, 마스터 모듈(110)은 데이터 메모리(DM)에 이미지 데이터를 기입할 수 있다.
S150 단계에서, 마스터 모듈(110)은 이미지 완료 요청(IMG_DONE_REQ)의 레지스터 값을 '1'로 기입할 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 얼굴 검출 및 인식 모듈(120)은 제8 상태(S8)로 천이할 수 있다.
S155 단계에서, 마스터 모듈(110)은 이미지 완료 응답(IMG_DONE_ACK)의 레지스터 값을 읽을 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 이미지 응답(IMG_ACK)의 레지스터 값이 '1'로 읽히면, 얼굴 검출 및 인식 모듈(120)은 제9 상태(S9)로 천이할 수 있다.
S160 단계에서, 얼굴 검출 및 인식 모듈(120)은 얼굴 처리 시작(FACE_START) 이벤트를 생성하고, 얼굴 검출 및 인식을 시작할 수 있다. 얼굴 검출 및 인식이 완료되면, 얼굴 검출 및 인식 모듈(120)은 얼굴 검출 완료(FACE_PROC_DONE) 이벤트를 생성하고, 제10 상태(S10)로 천이할 수 있다.
S165 단계에서, 마스터 모듈(110)은 읽기 요청(READ_REQ)의 레지스터 값을 읽을 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 읽기 요청(READ_REQ)의 레지스터 값이 '1'로 읽히면, 얼굴 검출 및 인식 모듈(120)은 제11 상태(S11)로 천이할 수 있다.
S170 단계에서, 마스터 모듈(110)은 읽기 응답(READ_ACK)의 레지스터 값을 '1'로 기입할 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 얼굴 검출 및 인식 모듈(120)은 제12 상태(S12)로 천이할 수 있다.
S175 단계에서, 마스터 모듈(110)은 한번 또는 둘 이상의 트랜잭션들을 통해 메모리 맵드 레지스터(MMR)의 결과 레지스터 값들을 읽을 수 있다.
S180 단계에서, 마스터 모듈(110)은 읽기 완료 요청(READ_DONE_REQ)의 레지스터 값을 읽을 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 예를 들어, 마스터 모듈(110)은 읽기 완료 요청(READ_DONE_REQ)의 레지스터 값을 주기적으로 읽는 폴링(polling)을 수행할 수 있다. 읽기 요청(READ_REQ)의 레지스터 값이 '1'로 읽히면, 얼굴 검출 및 인식 모듈(120)은 제13 상태(S13)로 천이할 수 있다.
S185 단계에서, 마스터 모듈(110)은 읽기 완료 응답(READ_DONE_ACK)의 레지스터 값을 '1'로 기입할 것을 요청하는 트랜잭션을 얼굴 검출 및 인식 모듈(120)로 전송할 수 있다. 얼굴 검출 및 인식 모듈(120)은 제1 상태(S1)로 복귀할 수 있다.
도 10은 도 1의 얼굴 인식 시스템(100)의 응용 예(200)를 보여주는 블록도이다. 도 10을 참조하면, 얼굴 인식 시스템(200)은 마스터 모듈(210) 및 얼굴 인식 및 검출 모듈(220), 그리고 다른 모듈들(230)과 연결될 수 있다.
마스터 모듈(210)은 프로세서 모듈(211) 및 버스 모듈(219)을 포함한다. 프로세서 모듈(211)은 운영 체제(213), 모듈 장치 드라이버(215) 및 모듈 응용 프로그램(217)을 포함할 수 있다. 버스 모듈(219)은 프로세서 모듈(211), 얼굴 검출 및 인식 모듈(220), 그리고 다른 모듈들(230) 사이의 통신을 중개할 수 있다.
예시적으로, 프로세서 모듈(211), 버스 모듈(219), 그리고 얼굴 검출 및 인식 모듈은 트랜잭션 레벨 모델(Transaction Level Model)에 기반하여 서로 통신하도록 구성될 수 있다. 트랜잭션 레벨 모델은 클록 사이클 단위의 전송 정확도를 보장하며, 최소화된 개수의 이벤트들을 유발하여 얼굴 검출 및 인식 모듈(220)의 수행 속도를 상승시킬 수 있다. 마스터 모듈(210)은 트랜잭션 레벨 모델에 기반하여 얼굴 검출 및 인식 모듈(220)과 연동되며, 얼굴 검출 및 인식 모듈(220)의 테스트 또는 모듈 응용 프로그램(217)의 개발 플랫폼을 제공할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100; 얼굴 검출 및 인식 시스템
110; 마스터 모듈
MRP; 마스터 레지스터 포트
MMP; 마스터 메모리 포트
120; 얼굴 검출 및 인식 모듈
SRP; 슬레이브 레지스터 포트
SRI; 슬레이브 레지스터 인터페이스
DEG; 레지스터 어드레스 디코더 및 이벤트 생성기
MMR; 메모리 맵드 레지스터
FDR; 얼굴 검출 및 식별기
SM; 상태 기계
SMP; 슬레이브 메모리 포트
SMI; 슬레이브 메모리 인터페이스
DEC; 메모리 어드레스 디코더
DM; 데이터 메모리

Claims (1)

  1. 제1 포트를 통해 수신되는 제1 트랜잭션을 디코딩하여 제1 커맨드 및 제1 어드레스를 획득하고, 상기 제1 포트를 통해 응답을 출력하도록 구성되는 레지스터 인터페이스;
    제1 어드레스들 및 상기 제1 어드레스들에 각각 대응하는 레지스터 값들을 저장하도록 구성되는 메모리 맵드 레지스터;
    상기 레지스터 인터페이스의 호출에 따라 상기 메모리 맵드 레지스터의 상기 레지스터 값들 중 상기 제1 어드레스에 대응하는 레지스터 값을 상기 커맨드에 따라 변환하고, 상기 변환된 레지스터 값 및 상태가 조건을 충족할 때에 이벤트를 생성하도록 구성되는 레지스터 어드레스 디코더 및 이벤트 생성기;
    제2 포트를 통해 수신되는 제2 트랜잭션을 디코딩하여 제2 커맨드, 제2 어드레스 및 이미지 데이터를 획득하고, 상기 제2 포트를 통해 응답을 출력하도록 구성되는 메모리 인터페이스;
    제2 어드레스들 및 상기 제2 어드레스들에 각각 대응하는 데이터를 저장하도록 구성되는 데이터 메모리;
    상기 메모리 인터페이스의 호출에 따라 상기 제2 어드레스를 이용하여 상기 데이터 메모리에 상기 이미지 데이터를 저장하도록 구성되는 메모리 어드레스 디코더; 그리고
    상기 상태 및 상기 이벤트에 따라 상기 이미지 데이터에서 얼굴 검출 및 인식을 수행하고, 상기 얼굴 검출 및 인식의 결과를 상기 메모리 맵드 레지스터에 저장하도록 구성되는 얼굴 검출 및 인식기를 포함하고,
    상기 레지스터 인터페이스 및 상기 메모리 인터페이스는 트랜잭션 레벨(transaction level)에서 상기 얼굴 검출 및 인식과 연관된 정보들 및 상기 이미지 데이터를 수신하고 그리고 상기 얼굴 검출 및 인식의 결과를 출력하도록 구성되는 얼굴 검출 및 인식 모듈.
KR1020160054255A 2016-05-02 2016-05-02 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈 KR20170124686A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160054255A KR20170124686A (ko) 2016-05-02 2016-05-02 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160054255A KR20170124686A (ko) 2016-05-02 2016-05-02 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈

Publications (1)

Publication Number Publication Date
KR20170124686A true KR20170124686A (ko) 2017-11-13

Family

ID=60385984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160054255A KR20170124686A (ko) 2016-05-02 2016-05-02 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈

Country Status (1)

Country Link
KR (1) KR20170124686A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359555A (zh) * 2018-09-21 2019-02-19 江苏安凰领御科技有限公司 一种高精度的人脸快速检测方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359555A (zh) * 2018-09-21 2019-02-19 江苏安凰领御科技有限公司 一种高精度的人脸快速检测方法

Similar Documents

Publication Publication Date Title
CN108268414B (zh) 基于spi模式的sd卡驱动器及其控制方法
CN105335548B (zh) 一种用于ice的mcu仿真方法
CN113849433B (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
CN108287804B (zh) 一种i2c控制器驱动方法及系统
CN112199040B (zh) 存储访问方法及智能处理装置
CN112100090A (zh) 数据访问请求处理方法、装置、介质及内存映射控制器
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
JP2009217813A (ja) 集積回路内のデバイス間のデータ転送
KR20170013882A (ko) 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc)
CN112765082B (zh) 多主机仲裁方法、装置和可读存储介质
CN110825435B (zh) 用于处理数据的方法和装置
US10496422B2 (en) Serial device emulator using two memory levels with dynamic and configurable response
CN114327975A (zh) 片上系统
CN112256615B (zh) Usb转换接口装置
US20100153622A1 (en) Data Access Controller and Data Accessing Method
CN113326670A (zh) 原型验证系统、方法、处理单元、及设备
KR20170124686A (ko) 트랜잭션 레벨 모델 기반의 얼굴 검출 및 인식 모듈
CN112286852B (zh) 基于iic总线的数据通信方法和数据通信装置
CN110750472A (zh) 一种int中断转msi中断的转换方法、装置及存储介质
US20050071145A1 (en) Simulation apparatus, simulation program, and recording medium
CN104025026B (zh) 访问用于配置空间的配置和状态寄存器
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
CN111444129B (zh) Mdb数据传输的方法及终端设备
CN108549611A (zh) 一种基于gt9系列芯片的驱动实现方法及系统
US11061654B1 (en) Synchronization of concurrent computation engines