KR20110037184A - 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치 - Google Patents

뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치 Download PDF

Info

Publication number
KR20110037184A
KR20110037184A KR1020090094496A KR20090094496A KR20110037184A KR 20110037184 A KR20110037184 A KR 20110037184A KR 1020090094496 A KR1020090094496 A KR 1020090094496A KR 20090094496 A KR20090094496 A KR 20090094496A KR 20110037184 A KR20110037184 A KR 20110037184A
Authority
KR
South Korea
Prior art keywords
neuro
fuzzy
tile
processing units
data
Prior art date
Application number
KR1020090094496A
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 KR1020090094496A priority Critical patent/KR20110037184A/ko
Publication of KR20110037184A publication Critical patent/KR20110037184A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 연산 시간 제어 가능한 병렬처리 컴퓨터 시스템 및 이를 이용하여 영상에서 물체를 인식하는 파이프라이닝(pipelining) 기술에 관한 것이다.
본 발명에 따른 컴퓨터 시스템은 뉴럴 네트워크(neural networks) 블록, 퍼지 로직(fuzzy logic) 블록, 및 뉴럴 네트워크와 퍼지 로직이 결합된 뉴로-퍼지 블록 중 적어도 어느 2개를 포함하는 뉴로-퍼지 시스템(neuro-fuzzy system), 복수의 프로세싱 유닛을 포함하는 병렬처리 프로세서(parallel processor) 및 뉴로-퍼지 시스템과 병렬처리 프로세서 사이에 연결되어 뉴로-퍼지 시스템, 병렬처리 프로세서 간의 데이터 통신을 하는 네트워크 온 칩을 포함하고, 뉴로-퍼지 시스템은 뉴로-퍼지 시스템의 출력 데이터 양에 비례하여, 데이터를 처리할 프로세싱 유닛의 개수를 결정하고, 데이터를 결정된 프로세싱 유닛에 분배하는 태스크 스케줄러(task scheduler)를 더 포함한다.
본 발명에 의하면 뉴럴 네트워크 기술과 퍼지 기술을 적용하여 입력된 데이터 중에서 한정된 데이터를 필요한 프로세서에 대해서만 병렬처리를 수행함으로써 파이프라이닝을 구현할 수 있다. 또한, 본 발명에 의하면 입력된 영상에서 관심영역을 추출하고 추출된 관심영역의 데이터만을 필요한 프로세서에 대해서만 병렬처리를 수행함으로써 파이프라이닝을 구현하여 물체 인식 처리 속도를 증가시키고, 물체 인식 장치의 전력 소모를 감소시켜 실시간으로 물체를 인식할 수 있다.
뉴럴 네트워크, 퍼지 로직, 뉴로-퍼지, 뉴로-퍼지 시스템, 병렬처리 프로세서, 물체인식, 관심영역, 파이프라이닝

Description

뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치{PIPELINING COMPUTER SYSTEM COMBINING NEURO-FUZZY SYSTEM AND PARALLEL PROCESSOR, METHOD AND APPARATUS FOR RECOGNIZING OBJECTS USING THE COMPUTER SYSTEM IN IMAGES}
본 발명은 연산 시간 제어 가능한 병렬처리 컴퓨터 시스템 및 이를 이용하여 영상에서 물체를 인식하는 파이프라이닝(pipelining) 기술에 관한 것이다.
물체 인식(object recognition)은 자동차 자율 주행, 지능형 로봇 비전 시스템, 경보 시스템 등 최근 고급 비전 응용분야의 핵심기술로서, 2-D 영상(image, 이미지) 데이터가 입력으로 주어졌을 때, 이미지에서 물체의 특징점을 찾고 그에 대한 특징벡터(descriptor vector)를 생성하여, 미리 등록된 물체에 대한 벡터 집합인 물체 데이터베이스(object database)와 비교하여 가장 가까운 물체를 결정하는 과정으로 이루어진다.
이러한 물체 인식을 수행하기 위해서는 입력 이미지에 대하여 어떻게 특징점을 추출하고 그것을 어떻게 벡터로 기술하는지가 중요하게 되고, 이를 위해서는 많은 양의 이미지 데이터에 대하여 필터링, 히스토그램 등 복잡, 다양한 연산이 필요 하게 된다. 현재 가장 많이 사용되는 병렬 처리는 SIFT(scale invariant feature transform)로서, 그 과정이 많은 양의 연산량을 필요로 하여 2GHz 고성능 CPU로도 초당 0.5프레임 정도의 성능을 낼 정도로 실시간 처리하기가 힘들다.
이를 극복하기 위하여 수많은 프로세싱 유닛을 포함하는 병렬 프로세서 (parallel processor)를 이용하여 물체 인식을 수행할 경우, 병렬 처리로 인하여 프레임 속도를 향상시킬 수 있지만, 각 연산 단계의 수행 시간이 일정하지 않다.
파이프라이닝은 컴퓨터 시스템에서 쓰이는 연산시간 단축 방법으로, 여러 단계로 나누어진 연산 시스템의 경우, 각 단계가 서로 독립적으로 서로 다른 명령을 수행하여, 결과적으로 동일한 시간에 여러 명령을 동시에 수행하여 연산 속도를 증가시키는 방법이다. 파이프라이닝이 수행되기 위해서는 각 단계에서 연산에 걸리는 시간이 비슷하여 이전 단계의 결과를 기다리지 않고 수행되도록 하는 것이 중요하다. 기존의 방법대로 파이프라이닝을 구현할 경우 추출된 특징점의 개수에 비례하여 연산 시간이 증가하는데, 특징점의 개수는 주어진 입력의 이미지에 따라 다르므로 연산 단계와 이전 단계의 소요 시간이 다르므로 파이프라이닝을 구현하기 어렵다.
본 발명은 뉴럴 네트워크 기술과 퍼지 기술을 적용하여 입력된 데이터 중에서 한정된 데이터만을 필요한 프로세서에 대해서만 병렬처리를 수행함으로써 파이프라이닝(pipelining)을 구현하는 것을 목적으로 한다.
또한, 본 발명은 입력된 영상에서 관심영역(region-of-interest, ROI)을 추출하고 추출된 관심영역의 데이터만을 필요한 프로세서에 대해서만 병렬처리를 수행함으로써, 파이프라이닝을 구현하여 물체 인식 처리 속도를 증가시키고, 물체 인식 장치의 전력 소모를 감소시켜 실시간으로 물체를 인식하는 것을 목적으로 한다.
본 발명에 따른 컴퓨터 시스템은 뉴럴 네트워크(neural networks) 블록, 퍼지 로직(fuzzy logic) 블록, 및 뉴럴 네트워크와 퍼지 로직이 결합된 뉴로-퍼지 블록 중 적어도 어느 2개를 포함하는 뉴로-퍼지 시스템(neuro-fuzzy system), 복수의 프로세싱 유닛을 포함하는 병렬처리 프로세서(parallel processor) 및 뉴로-퍼지 시스템과 병렬처리 프로세서 사이에 연결되어 뉴로-퍼지 시스템, 병렬처리 프로세서 간의 데이터 통신을 하는 네트워크 온 칩을 포함하고, 뉴로-퍼지 시스템은 뉴로-퍼지 시스템의 출력 데이터 양에 비례하여, 데이터를 처리할 프로세싱 유닛의 개수를 결정하고, 데이터를 결정된 프로세싱 유닛에 분배하는 태스크 스케줄러(task scheduler)를 더 포함한다.
뉴로-퍼지 시스템에서 추출된 데이터와 병렬처리 프로세서의 연산 과정의 중간 데이터를 저장하기 위한 메모리를 더 포함하는 것이 바람직하다.
본 발명에 따른 컴퓨터 시스템에서 태스크 스케줄러가 프로세싱 유닛의 개수를 결정하는 방법은 데이터에 비례하여 프로세싱 유닛의 개수를 결정하는 분배 기준을 정하는 제1 단계, 뉴로-퍼지 시스템에서 출력될 데이터의 양을 측정하는 제2 단계, 측정된 데이터의 양과 분배 기준을 비교하여 특정 개수의 프로세싱 유닛을 선택하는 제3 단계, 태스크 스케줄러가 선택된 프로세싱 유닛에 데이터를 분배하는 제4 단계 및 선택된 프로세싱 유닛의 연산 소요 시간에 따라 제1 단계의 분배 기준을 갱신하는 제5 단계를 포함하고, 각각의 분배 기준은 일정한 단계의 증가에 비례하여 특정 개수의 프로세싱 유닛을 포함한다.
본 발명에 따른 물체 인식 장치는, 셀룰러 뉴럴 네트워크 시각 집중기(cellular neural networks visual attention engine), 퍼지 모션 측정기(fuzzy motion estimator), 뉴로-퍼지 분류기(neuro fuzzy classifier) 및 태스크 스케줄러를 포함하는 뉴로-퍼지 시스템, 복수의 프로세싱 유닛을 포함하는 병렬처리 프로세서, 특징벡터를 데이터베이스에 있는 벡터들과 비교하여 가장 가까운 거리를 갖는 벡터에 해당하는 물체를 인식하는 물체결정부 및 뉴로-퍼지 시스템, 병렬처리 프로세서 및 물체결정부 간의 데이터 통신을 하는 네트워크 온 칩을 포함하고, 퍼지 모션 측정기는 연속된 이미지프레임 사이에서 동적 모션 벡터를 생성하고, 셀룰러 뉴럴 네트워크 시각 집중기는 정적 특징인 강도, 색, 방향을 추출하고 동적 모션 벡터와 함께 누적하여 특징맵을 생성하고, 뉴로-퍼지 분류기는 특징맵을 기반으로 시드점(seed point)을 추출하고 시드점을 기준으로 영역확장을 통한 동질성 판단으로 각 물체의 관심영역(region-of-interest, ROI)을 타일(tile) 단위로 추출하고, 태스크 스케줄러는 관심영역 타일을 관심영역 타일 태스크로 변환하고, 관심영역 타일의 개수에 비례하여 프로세싱 유닛의 개수를 결정하고, 관심영역 타일 태스크를 결정된 프로세싱 유닛에 분배하며, 데이터베이스의 크기를 제어하고, 병렬처리 프로세서는 관심영역 타일 태스크를 SIMD(single-instruction-multiple-data) 병렬연산을 하여 물체의 특징점과 특징점에 대한 특징벡터를 생성하고, 특징벡터를 물체결정부로 전달한다.
태스크 스케줄러는 프로세싱 유닛의 개수를 결정하는 분배 기준을 가지고, 각각의 분배 기준은 일정한 단계의 증가에 따라 적어도 1개 이상의 프로세싱 유닛을 포함하는 것이 바람직하다.
관심영역 타일 태스크는 전체 이미지 데이터에서 추출한 관심영역 타일의 최 좌측 상단 점의 데이터의 주소를 의미하는 시작주소, 전체 이미지에서 관심영역 타일의 최 좌측 상단 점의 2차원 좌표값인 X방향 좌표, Y방향 좌표로 구성된 시작 좌표 및 관심영역 타일의 너비와 높이를 각각 기술한 타일크기를 포함하는 것이 바람직하다.
본 발명에 따른 물체 인식 장치에서 파이프라이닝을 구현하기 위해서 태스크 스케줄러가 프로세싱 유닛의 개수를 결정하는 방법은, 관심영역 타일의 개수에 비례하여 프로세싱 유닛의 개수를 결정하는 분배 기준을 설정하는 제1 단계, 뉴로-퍼지 분류기가 추출한 관심영역 타일의 개수를 측정하는 제2 단계, 측정된 타일의 개수와 분배 기준을 비교하여 프로세싱 유닛의 특정 개수를 선택하는 제3 단계, 태스크 스케줄러가 선택된 프로세싱 유닛에 관심영역 타일 태스크를 분배하는 제4 단계 및 선택된 프로세싱 유닛의 연산 소요 시간에 따라 제1 단계의 분배 기준을 갱신하는 제5 단계를 포함하고, 각각의 분배 기준은 일정한 단계의 증가에 비례하여 특정 개수의 프로세싱 유닛을 포함한다.
여기서, 각각의 분배 기준은 일정한 단계의 증가에 비례하여 적어도 1개 이 상의 프로세싱 유닛을 포함하는 것이 바람직하다.
제5 단계의 분배 기준을 갱신하는 방법은, 선택된 프로세싱 유닛이 관심영역 타일 태스크를 연산하는데 소요되는 시간을 측정하는 제5-1 단계, 뉴로-퍼지 시스템이 이미지프레임을 입력받아 관심영역 타일 태스크를 결정된 프로세싱 유닛에 분배하는데 소요되는 시간을 측정하는 제5-2 단계, 제5-1 단계의 시간에서 제5-2 단계의 시간을 뺀 값이 양수인지 판단하는 제5-3 단계, 및 제5-1 단계의 시간에서 제5-2 단계의 시간을 뺀 값이 양수인 경우, 분배 기준에 포함된 프로세싱 유닛의 개수를 증가시키고, 제5-1 단계의 시간에서 제5-2 단계의 시간을 뺀 값이 음수인 경우, 분배 기준에 포함된 프로세싱 유닛의 개수를 감소시키는 제5-4 단계를 포함하는 것이 바람직하다.
본 발명에 따른 물체 인식 장치를 이용한 파이프라이닝 물체 인식 방법은 뉴로-퍼지 시스템에 의하여 물체의 관심영역을 타일 단위로 추출하는 제1 단계, 추출된 관심영역 타일을 전체 이미지 데이터에서 해당 타일 데이터의 시작 주소, 전체 이미지에서 해당 타일의 시작 위치의 2차원 좌표값 및 해당 타일의 크기를 포함하는 관심영역 타일 태스크로 변환하는 제2 단계, 제1 단계 및 제2 단계까지의 수행시간을 측정하는 제3 단계, 병렬처리 프로세서의 연산 소요 시간을 제3 단계에서 측정된 시간과 일치시키기 위해서 관심영역 타일 개수에 따라 프로세싱 유닛의 특정 개수를 결정하는 제4 단계, 변환된 관심영역 타일 태스크가 네트워크 온 칩을 통하여 특정 개수의 프로세싱 유닛에 분배되는 제5 단계, 특정 개수의 프로세싱 유닛이 분배받은 관심영역 타일 태스크에 대하여 물체의 특징점과 특징벡터를 생성하 는 제6 단계 및 제3 단계에서 측정된 시간안에 물체결정부가 물체를 인식하기 위해서 태스크 스케줄러가 데이터베이스의 크기를 제어하는 제7 단계를 포함한다.
제1단계는 뉴로-퍼지 시스템이 동적 모션 벡터 생성, 정적 특징 추출한 후, 동적 모션 벡터 및 정적 특징을 함께 누적하여 관심영역을 분류하고 관심영역을 일정한 크기의 기본 타일을 이용하여 표현하는 것이 바람직하다.
본 발명에 의하면 뉴럴 네트워크 기술과 퍼지 기술을 적용하여 입력된 데이터 중에서 한정된 데이터를 필요한 프로세서에 대해서만 병렬처리를 수행함으로써 파이프라이닝을 구현할 수 있다.
또한, 본 발명에 의하면 입력된 영상에서 관심영역을 추출하고 추출된 관심영역의 데이터만을 필요한 프로세서에 대해서만 병렬처리를 수행함으로써 파이프라이닝을 구현하여 물체 인식 처리 속도를 증가시키고, 물체 인식 장치의 전력 소모를 감소시켜 실시간으로 물체를 인식할 수 있다.
병렬연산시간 제어 가능한 컴퓨터 시스템
도 1은 본 발명의 일 실시예에 따른 컴퓨터 시스템(100)의 블록도를 나타내는 도면이다. 컴퓨터 시스템(100)은 뉴로-퍼지 시스템(110), 병렬처리 프로세서(120), 네트워크 온 칩(130) 및 메모리(140)를 포함한다.
뉴로-퍼지 시스템(110)은 뉴럴 네트워크 블록(111), 퍼지 로직 블록(112), 및 뉴럴 네트워크와 퍼지 로직이 결합된 뉴로-퍼지 블록(113) 중 적어도 어느 2개 를 포함하는 시스템을 말한다. 본 발명에서 뉴로-퍼지 시스템(110)은 태스크 스케줄러(114)를 더 포함한다.
뉴로-퍼지 시스템(110)은 인간의 학습 능력(뉴럴 네트워크)과 근사적인 사고 과정(퍼지 로직)을 함께 구현하는 시스템으로, 뉴럴 네트워크의 기능과 퍼지 로직의 기능이 결합되어야 한다. 이를 위해서 첫 번째 경우로 뉴로-퍼지 블록(113)들만으로 구성될 수 있으나 이 경우만을 말하는 것은 아니다. 두 번째 경우로 뉴럴 네트워크 블록(111)과 퍼지 로직 블록(112)의 결합으로도 위와 같은 기능을 구현할 수 있고, 세 번째 경우로 뉴로-퍼지 블록(113)과 뉴럴 네트워크 블록(111)의 결합으로도 위와 같은 기능을 구현할 수 있고, 네 번째 경우로 뉴로-퍼지 블록(113)과 퍼지 로직 블록(112)의 결합으로도 가능하다. 뿐만 아니라 다섯 번째 경우로 뉴로-퍼지 블록(113), 뉴럴 네트워크 블록(111) 및 퍼지 로직 블록(112) 모두의 결합으로도 위와 같은 기능의 구현이 가능하므로 뉴로-퍼지 시스템(110)은 위 다섯 가지 경우를 모두 포함하는 시스템으로 정의한다.
뉴럴 네트워크 블록(111)은 데이터 마이닝, 네트워크 관리, 머신 비전, 신호처리 등의 광범위한 분야에서 사용되는데 기존의 컴퓨터 모델이 지속적인 명령어에 의해 계산적인 연산에는 뛰어나지만 경험을 통해 현상을 일반화하고 배우는 학습 능력이 부족한 사실에 기반하여, 인간의 학습 능력을 모사하기 위하여 인간 뇌의 신경망(neural)을 컴퓨터에 모델링한 알고리즘이 적용된 블록이다.
이러한 인간 뇌의 신경망을 모델링한 알고리즘은 뇌의 신경망 활동을 모델링하기 위해 설계된 기본적 단위들로 구성된다. 위의 단위는 데이터 입력들을 하나의 출력값으로 통합하는데 이러한 결합을 단위의 활성화 함수라 한다. 활성화 함수는 두 가지 부분으로 나뉜다. 첫 번째 부분은 모든 입력을 하나의 값으로 통합하는 것이다. 즉 단위로의 각각의 입력은 자체적인 가중치를 가진다. 가장 일반적인 결합 함수는 가중치를 가지는 합계(weighted sum)로 각 입력은 가중치로 곱해지고 이러한 것들은 함께 더해진다. 다른 결합 함수들도 때때로 유용하며, 가중치를 가진 입력의 최대값, 최소값 혹은 논리적 AND, OR 값을 포함한다. 활성화 함수의 두 번째 부분은 이전함수(transfer function)로, 결합함수로부터 단위의 출력으로 값이 이전된다는 사실에서 붙여진 이름이다. 이전 함수에는 지그모이드(sigmoid), 선형, 하이퍼볼릭 탄젠트(hyperbolic tangent) 함수가 있다.
퍼지 로직 블록(112)은 플랜트 제어, 모터 제어, 비행기 제어 등 많은 지능 제어 응용 분야에서 널리 사용되는데, 여기서 퍼지 로직은 분석 대상이 어떤 모임에 속한다 또는 속하지 않는다는 이진법 논리로부터, 각 분석 대상이 그 모임에 속하는 정도를 멤버쉽 함수(membership function)로 나타냄으로써 수학적으로 표현한다. 이러한 멤버쉽 함수를 통하여 애매모호한 값을 다루는 퍼지 로직으로 구현된 블록을 퍼지 로직 블록(112)이라고 한다. 퍼지 로직 블록(112)은 인간의 뇌에서 벌어지는 근사적이고 비수치적인 사고의 과정을 모사한다. 퍼지 로직 블록(112)은 컴퓨터 시스템(100)의 목적에 따라 알려진 여러 멤버쉽 함수를 이용하여 구현할 수 있다.
뉴로-퍼지 블록(113)은 뉴럴 네트워크의 학습 기능과 애매모호한 값을 다루는 퍼지 로직의 특징을 결합하여 인간의 뇌에서 벌어지는 추론 과정을 모사하기 위 해서 뉴럴 네트워크 기술과 퍼지 로직 기술을 결합하여 구현한다.
태스크 스케줄러(114)는 뉴로-퍼지 시스템(110)의 출력 데이터를 처리할 프로세싱 유닛(121)의 개수를 결정하고, 출력 데이터를 결정된 특정 개수의 프로세싱 유닛(121)에 분배한다. 프로세싱 유닛(121)의 개수는 뉴로-퍼지 시스템(110)이 출력할 데이터의 양에 비례하여 결정한다. 즉, 데이터의 양에 따라 연산을 위한 프로세싱 유닛(121)의 개수를 적절히 선택하여 병렬처리 프로세서(120)의 연산 시간을 제어할 수 있다. 예를 들면, 프로세싱 유닛(121)의 개수가 증가하면 일정한 양의 데이터를 연산하는데 소요되는 시간은 줄어들게 되고, 프로세싱 유닛(121)의 개수가 감소하면 일정한 양의 데이터를 연산하는데 소요되는 시간은 증가할 것이다.
병렬처리 프로세서(120)는 복수의 프로세싱 유닛(121)을 포함하며 네트워크 온 칩(130)에서 전송된 데이터를 병렬적으로 연산한다.
네트워크 온 칩(130)은 뉴로-퍼지 시스템(110)과 병렬처리 프로세서(120) 사이에 연결된다. 네트워크 온 칩(130)은 뉴로-퍼지 시스템(110)이 취합 또는 추출한 데이터를 병렬처리 프로세서(120)에 전달하고, 태스크 스케줄러(114)가 특정 개수의 프로세싱 유닛을 선택하는 신호를 병렬처리 프로세서(120)에 전달한다. 또한 뉴로-퍼지 시스템(110), 병렬처리 프로세서(120), 및 메모리(140) 간의 데이터 또는 신호의 통신을 가능하게 한다.
메모리(140)는 뉴로-퍼지 시스템(110)에서 추출된 데이터와 병렬처리 프로세서(120)의 연산 과정의 중간 데이터를 저장한다.
뉴로-퍼지 기술을 적용한 컴퓨터 시스템(100)은 일정한 목적을 위해 입력된 전체 데이터 모두를 처리 또는 연산하지 않고 컴퓨터 시스템(100)의 목적을 달성하는 데 있어 필요한 정도의 일정한 데이터만을 뉴로-퍼지 기술로 선택 또는 취합하고, 선택 또는 취합된 데이터만을 컴퓨터 시스템(100)이 처리 또는 연산한다. 결국 뉴로-퍼지 기술이 적용되지 않은 기존의 컴퓨터 시스템에 비해서 같은 목적을 달성하더라도 처리 속도, 전력 소모 등이 향상된다.
또한, 뉴로-퍼지 시스템(110)에 포함된 태스크 스케줄러(114)는 뉴로 퍼지 시스템(110)에서 출력되는 데이터를 병렬처리 프로세서(120)에 효율적으로 분배한다. 예를 들면, 높은 처리속도를 위해서 파이프라이닝이 필요한 경우, 각 단계(예를들어 뉴로-퍼지 시스템(110)의 데이터 추출 단계)의 수행 시간이 다른 점이 문제되지만 본 발명에 따른 태스크 스케줄러(114)가 각 단계(예를들어 뉴로-퍼지 시스템(110)의 데이터 추출 단계)의 수행 시간과 프로세싱 요소(121)들의 연산 시간을 일치시킬 수 있다. 따라서 이전의 단계의 결과를 기다리지 않는 파이프라이닝이 가능해진다. 즉, 여러 개의 데이터들을 프로세싱 유닛(121)에 효율적으로 할당하고, 선택된 특정 개수의 프로세싱 유닛(121)이 각각의 데이터 연산을 끝내는 대로 새로운 데이터를 할당하는 것이 가능하다. 따라서 방대한 데이터를 처리하는 경우에도 뉴로-퍼지 기술이 적용된 컴퓨터 시스템(100)은 실시간, 저전력 구동이 가능하다.
병렬연산시간 제어 가능한 물체 인식 장치
도 1의 컴퓨터 시스템(100)을 이용하는 다양한 실시예 중에서 물체 인식 장치 및 물체 인식 방법에 관하여 이하 도면을 통해 설명한다.
물체 인식은 2-D 영상(image, 이미지) 데이터가 입력으로 주어졌을 때, 이미지에서 물체의 특징점을 찾고 그에 대한 특징벡터(descriptor vector)를 생성하여, 미리 등록된 물체에 대한 벡터 집합인 물체 데이터베이스(database)와 비교하여 가장 가까운 물체를 결정하는 과정으로 이루어진다. 이러한 물체 인식을 수행하기 위해서는 입력 이미지에 대하여 특징점을 추출하고 그것을 벡터로 기술하여야 한다. 이를 위해서는 많은 양의 이미지 데이터에 대하여 복잡, 다양한 연산이 필요하다. 현재 가장 많이 사용되는 병렬 처리 연산은 SIFT(scale invariant feature transform)이지만 이는 많은 양의 연산량을 필요로 하여 2GHz 고성능 CPU로도 초당 0.5프레임 정도의 성능을 낼 정도로 실시간 처리하기가 힘들다.
본 발명에서 제안된 컴퓨터 시스템(100)을 물체 인식 장치에 적용하면 병렬 처리 프로세서(120)가 처리해야 하는 데이터의 양을 원천적으로 감소시킨다. 또한, 병렬처리 프로세서의 연산 시간을 물체 결정 단계 및 시각 인식 단계의 소요되는 시간과 일치시켜 데이터 처리 과정에서 파이프라이닝이 가능해진다. 결국 많은 연산량을 요구하는 물체 인식을 종래 기술에 비해 저전력으로 수행 가능하고, 처리 속도의 향상으로 실시간으로 물체 인식이 가능하게 된다.
도 2는 본 발명의 일 실시예에 따른 물체 인식 장치의 블록도를 나타낸 도면이다. 물체 인식 장치는 뉴로-퍼지 시스템(210), 병렬처리 프로세서(220), 네트워크 온 칩(230), 메모리(240) 및 물체결정부(250)를 포함한다.
뉴로-퍼지 시스템(210)은 뉴럴 네트워크 블록, 퍼지 로직 블록, 뉴럴 네트워크와 퍼지 로직이 결합된 뉴로-퍼지 블록 및 태스크 스케줄러(217)를 포함한다.
뉴로-퍼지 시스템(210)은 전체 이미지(215)를 입력받아 물체에 대한 관심영역(211, 212, 213)을 추출한 뒤 추출된 관심영역(211, 212, 213) 이미지를 2차원 타일 태스크(214)로 변환하고 변환된 타일 태스크(214)를 출력한다. 예를 들면, 640x480 픽셀 크기의 예시 이미지(215)에서 각 물체의 관심영역(211, 212, 213)은 뉴로-퍼지 시스템(210)에 의하여 40x40 크기의 기본 타일 단위(216)로 추출되게 된다.
태스크 스케줄러(217)는 이렇게 추출된 관심영역 타일을 관심영역 타일 태스크(214)로 변환하고, 관심영역 타일 태스크(214)는 각 관심영역 기본 타일(216)의 시작 주소, 시작 좌표, 및 타일 크기를 포함한다. 또한, 태스크 스케줄러(217)는 관심영역 타일 태스크(214)를 처리할 프로세싱 유닛(221)의 개수를 결정하고, 변환된 관심영역 타일 태스크(214)를 결정된 특정 개수의 프로세싱 유닛(221)에 분배한다.
프로세싱 유닛(121)의 개수는 뉴로-퍼지 시스템(210)이 추출한 관심영역 타일의 개수에 비례하여 결정한다. 즉, 관심영역 타일의 개수에 따라 연산을 위한 프로세싱 유닛(221)의 개수를 적절히 선택하여 병렬처리 프로세서(120)의 연산 시간을 제어할 수 있다. 예를 들면, 프로세싱 유닛(221)의 개수가 증가하면 일정한 양의 데이터를 연산하는데 소요되는 시간은 줄어들게 되고, 프로세싱 유닛(221)의 개수가 감소하면 일정한 양의 데이터를 연산하는데 소요되는 시간은 증가할 것이다.
또한 태스크 스케줄러(217)는 물체결정부(250)의 데이터베이스의 크기를 제어하여 물체 결정 단계에 소요되는 시간을 제어할 수 있다.
병렬처리 프로세서(220)는 복수의, 예를 들어 16개의 프로세싱 유닛(221)을 포함하고 추출된 관심영역 타일(211, 212, 213)의 관심영역 타일 태스크(214)에 대해서 SIMD 병렬 연산을 통하여 물체의 특징점과 특징벡터들을 생성한다.
네트워크 온 칩(230)은 뉴로-퍼지 시스템(210)과 병렬처리 프로세서(220) 사이에 연결된다. 네트워크 온 칩(130)은 뉴로-퍼지 시스템(210)의 출력인 관심영역 타일 태스크(214)를 병렬처리 프로세서(220)에 전달하고, 태스크 스케줄러(217)가 특정 개수의 프로세싱 유닛(221)을 선택하는 신호를 병렬처리 프로세서(220)에 전달한다. 또한, 뉴로-퍼지 시스템(210), 병렬처리 프로세서(220), 메모리(240) 및 물체결정부(250) 간의 데이터 또는 신호의 통신을 가능하게 한다.
메모리(240)는 전체 입력 이미지(215)를 저장하고, 뉴로-퍼지 시스템(210), 물체결정부(250) 및 프로세싱 유닛(221)들의 데이터를 저장한다.
물체결정부(250)는 병렬 처리 프로세서(220)에서 생성한 특징점과 특징벡터를 기초로 대상 물체에 대하여 미리 만들어진 데이터베이스에서 가장 가까운 벡터를 찾아 투표함으로써 물체의 종류를 판단한다. 여러 물체가 있을 경우 반복적으로 매칭(matching) 과정을 수행하여 여러 물체에 대하여 최종적으로 물체들의 종류를 판단한다.
물체결정부(250)가 물체의 종류를 판단하는 시간은 앞서 설명한 바와 같이 태스크 스케줄러(217)가 데이터베이스 크기를 제어함으로써 가능해진다. 즉, 물체의 종류를 판단하는 시간을 증가시킬 경우에는 데이터베이스 크기를 크게 하고, 물체의 종류를 판단하는 시간을 감소시킬 경우에는 데이터베이스 크기를 작게 한다.
본 발명의 일 실시예에 따르면, 병렬처리 프로세서(220)는 입력된 이미지(215) 전체가 아닌 뉴로-퍼지 시스템(210)에서 추출된 관심영역(211, 212, 213) 타일이 변환된 타일 태스크(214)에 대하여만 SIMD 연산을 수행한다.
또한 뉴로-퍼지 시스템(210)에 포함된 태스크 스케줄러(217)는 뉴로- 퍼지 시스템(210)에서 출력되는 관심영역 타일 태스크(214)를 병렬처리 프로세서(220)에 효율적으로 분배한다. 예를 들면, 높은 처리속도를 위해서 파이프라이닝이 필요한 경우, 각 단계(예를들어 뉴로-퍼지 시스템(210)의 관심영역 타일 태스크(214) 추출 단계, 물체결정부(250)의 물체 결정단계)의 수행 시간이 다른 점이 문제되지만 본 발명에 따른 태스크 스케줄러(217)는 각 단계(예를들어 뉴로-퍼지 시스템(210)의 관심영역 타일 태스크(214) 추출 단계, 물체결정부(250)의 물체 결정단계)의 수행 시간과 프로세싱 요소(221)들의 연산 시간을 일치시킬 수 있다. 따라서 이전의 단계의 결과를 기다리지 않는 파이프라이닝이 가능해진다. 즉, 여러 개의 관심영역 타일 태스크(214)를 프로세싱 유닛(121)에 효율적으로 할당하고, 선택된 특정 개수의 프로세싱 유닛(221)이 각각의 연산을 끝내는 대로 새로운 관심영역 타일 태스크(214)를 할당하는 것이 가능하다. 따라서 본 발명에서 제안된 물체 인식 장치는 종래 기술과 비교해서 저전력으로 물체를 인식할 수 있고, 처리 속도가 향상되어 실시간으로 물체를 인식할 수 있다.
도 3a는 도 2에 나타낸 물체 인식 장치에 있어서, 뉴로-퍼지 시스템(210)이 물체의 관심영역(211, 212, 213)을 추출하는데 필요한 구성을 나타낸 도면이다.
뉴로-퍼지 시스템(210)은 퍼지 모션 측정기(310), 셀룰러 뉴럴 네트워크 시 각 집중기(320), 뉴로-퍼지 분류기(330), 태스크 스케줄러(340) 및 제어부(350)를 포함한다.
도 3a의 퍼지 모션 측정기(310)는 퍼지 로직 기술을 이용하여 시간적으로 연속적인 두 이미지 프레임에 대하여 모션 벡터(motion vector)를 구한다. 한 프레임의 어떤 지점이 다른 프레임에서 어떤 지점인지를 찾아내는 정합 문제(correspondence problem)를 통하여 각 지점의 모션 벡터를 찾아내게 된다. 이 과정에서 모든 이미지 영역을 찾는 풀 서치(full search)를 사용하면 연산량이 너무 많기 때문에 퍼지 추론을 이용하여 서치 영역을 줄이는 것이 필요하다. 동작 과정을 자세히 살펴보면, 먼저 입력된 이미지 프레임에서 비교하고자 하는 픽셀을 각각 하나씩 추출하고, 그 차이 값을 누적하여 메모리 소자에 기억한 다음, 그 값을 멤버십 함수를 통하여 퍼지화 시킨다. 퍼지화된 값의 분포에 따라 두 이미지 픽셀의 유사도를 결정함으로써, 모션 벡터의 크기를 결정하게 된다.
도 3a의 셀룰러 뉴럴 네트워크 시각 집중기(320)는 뉴럴 네트워크 기반의 시각집중 알고리즘을 이용하여 인간 뇌의 시각피질(visual cortex)에서 일어나는 시각 집중(visual attention) 현상을 하드웨어로 구현한다. 이는 2-D로 연결된 뉴럴 네트워크를 이용하여 효율적으로 전체 입력 이미지에서 강도, 색, 방향 등의 정적 특징 추출(feature extraction)을 수행하며, 퍼지 모션 측정기(310)에서 생성된 모션 벡터와 셀룰러 뉴럴 네트워크 시각 집중기(320)에서 추출된 강도, 색, 방향들을 모두 누적하여 특징맵(saliency map)을 생성한다.
도 3b는 셀룰러 뉴럴 네트워크 시각 집중기(320)를 나타낸 도면이다. 각 셀(321)이 2-D 배열로 구성되는 셀룰러 뉴럴 네트워크 (322)를 이용하여 구현된다. 2-D 배열의 각 셀(321)은 입력 이미지의 한 픽셀에 각각 매핑되어 강도, 색, 방향의 특징 추출(feature extraction)을 수행한다. 이렇게 함으로써 입력 이미지의 특징 추출의 효율이 증가된다. 셀룰러 뉴럴 네트워크(322)는 각 셀(321)의 배열과 입력된 이미지의 픽셀과의 일대일 관계를 이용하여 이미지 필터링 등의 작업을 수행한다. 이렇게 함으로써 이미지 필터링 등의 처리 시간이 빨라지고 셀룰러 뉴럴 네트워크 시각 집중기(320)의 전력 소모가 감소된다. 각 셀(321)은 이미지 정보를 저장하는 메모리 소자(323), 인근 셀과 데이터를 주고 받기 위한 시프트 레지스터(324), 그리고 셀 데이터의 연산을 위한 연산 장치(325)로 이루어지며, 도 3a의 제어부(350)를 통하여 각 셀(321)들이 주변 셀(321)들과 통신하여 고유한 영상 처리를 수행한다.
다시 도 3a로 돌아가, 뉴로-퍼지 분류기(330)는 뉴럴 네트워크와 퍼지 로직을 결합하여 셀룰러 뉴럴 네트워크 시각 집중기(320)에서 얻어진 특징맵을 기반으로 도 2에 나타낸 입력 이미지(215)에서 각 물체의 관심 영역(211, 212, 213)을 추출하는 역할을 한다.
도 3c는 뉴로-퍼지 분류기(330)를 나타낸 블록도이다. 뉴로-퍼지 분류기(330)는 임의의 픽셀이 임의 물체의 관심 영역(211, 212, 213)에 들어가게 되는지 아닌지를 동질성 기준(homogeneity criteria)을 통하여 판별하며, 셀룰러 뉴럴 네트워크 시각 집중기(320)에서 생성된 특징맵으로부터 가장 특징적인 부분인 시드점을 추출한 후, 그것을 시작점으로 주변 픽셀들에 대한 분류를 통하여 점점 영역 을 넓혀가면서 각 물체의 관심 영역을 도출한다. 이 과정에서 물체의 관심 영역과 동질성 테스트를 위한 타겟 픽셀간의 유사도를 측정하기 위해서 퍼지 로직이 사용된다. 유사도 측정의 대상으로 강도(intensity), 특징(saliency), 시드점과의 거리(distance) 등이 고려된다. 인간의 유사도 판단과 비슷한 유사도 측정을 위해서 퍼지 로직을 이용한다. 측정의 대상이 되는 변수는 다음 수식(1)과 같이 가우시안(gaussain) 퍼지 로직(331)을 통해 유사도(μ1 내지 μn)가 측정된다.
Figure 112009061055145-PAT00001
… (1)
측정된 유사도(μ1 내지 μn)들은 뉴럴 네트워크(332)를 통해 수식(2)와 같이 가중치(ω1 내지 ωn)가 곱해지게 되고, 곱해진 값들은 합산부(334)에서 합산된다. 그 후 동질성 판별부(335)는 수식(3)과 같이 합쳐진 값이 경계 값(threshold value, b)과 비교하여 최종적으로 해당영역에 포함되는 동질 픽셀인지 판별한다.
Figure 112009061055145-PAT00002
… (2)
Figure 112009061055145-PAT00003
… (3)
판별 후 뉴럴 네트워크(332)에 포함된 가중치 업데이트 경로(333)를 통해 각 연결의 가중치(ω1 내지 ωn)가 수식 (4)와 같이 학습에 의하여 변화하게 된다.
Figure 112009061055145-PAT00004
… (4)
도 3d는 유사도 측정에 사용되는 퍼지 멤버십 함수의 대표적인 예인 가우시안 함수를 CMOS소자로 구현한 회로(360) 및 결과 파형(370)을 도시한 것이다. 도 3d의 (b)에 나타낸 바와 같이 이 회로(360)의 출력(Iout; 362)은 가우시안 함수(370)로 출력된다. 회로의 입력인 Xseed(361)의 값을 변화시키면 결과 파형(370)의 중심점(seed, 371)을 이동시킬 수 있다. 또 다른 입력인 Xtarget(363)에 target값(373)을 입력하면 해당 입력값(373) 가우시안 함수값(372)이 출력단자(Iout; 362)에서 출력된다.
가우시안 함수(370)를 디지털로 정확히 구현하고자 한다면, 1000회 이상의 인스트럭션 수행이 필요하나 아날로그 회로(360)로 구현하는 경우 소수의 MOSFET 소자(M1 내지 M11)만으로 100ns 이하로 수행 시간으로 가우시안 함수(370)의 구현이 가능하다.
다시 도 3a로 돌아가, 태스크 스케줄러(217)는 퍼지 모션 측정기(310), 셀룰러 뉴럴 네트워크 시각 집중기(320) 및 뉴로-퍼지 분류기(330)에 의하여 추출된 관심영역 타일(211, 212, 213)을 관심영역 타일 태스크(214)로 변환하고, 관심영역 타일 태스크(214)를 복수의 프로세싱 유닛(221)에 병렬적으로 할당하기 때문에, 병렬 처리 프로세서(220)는 동시에 여러 개의 관심영역의 타일(211, 212, 213)을 처리하게 된다. 태스크 스케줄러(340)는 타일 태스크(214)를 복수의 프로세싱 유닛(221)에 할당함에 있어서, 태스크 스케줄링 테이블을 만들어 어떤 프로세싱 유닛(221)에서 어떤 관심영역 태스크(214)를 처리하고 있고 어떤 프로세싱 유닛(221)이 사용 가능한지를 관리한다. 예를 들면, 태스크 스케줄러(340)는 높은 처리 속도를 위해서 여러 개의 관심영역 타일 태스크들(214)을 최대한 많은 프로세싱 유닛(221)에 할당하고, 각 프로세싱 유닛(221)이 개별 태스크를 끝내는 대로 새로운 관심영역 타일 태스크(214)를 할당하는 것이 가능하다. 하지만, 이것은 한 가지 스케줄링 방법일 것이고, 태스크 스케줄러에 의해서 여러 가지 스케줄링 방법이 가능하다. 또한, 할당되는 관심영역의 크기 역시 일정하지 않고, 타일 크기를 임의로 기본 타일 크기의 배수로 정하는 것이 가능하다.
제어부(350)는 퍼지 모션 측정기(310), 셀룰러 뉴럴 네트워크 시각 집중 기(320), 뉴러-퍼지 분류기(330) 및 태스크 스케줄러(217)의 동작을 제어한다.
도 4는 12바이트의 관심영역 타일 태스크(214)의 포맷을 나타낸 도면이다. 타일 태스크(214)는 32비트의 시작 주소(411), 32비트의 시작좌표(412), 32비트의 타일크기(413)로 구성되어 있다.
32비트의 시작 주소(411)는 메모리에 저장되어 있는 전체 이미지(215) 데이터 중에서 해당 관심영역 타일(211, 212, 213)의 최 좌상단의 데이터의 주소를 의미한다. 32비트의 시작 좌표(412)는 이미지(215)에서 해당 관심영역 타일(211, 212, 213)의 최 좌상단 점(415)의 2차원 좌표값(X, Y)을 의미한다. 시작 좌표(412)는 다시 각각 16비트의 X방향좌표, Y방향좌표로 나눠진다. 타일 크기(413)는 시작 좌표(412)를 기준으로 해당 타일(414)의 크기를 기술하는 것으로, 타일의 너비(W)와 높이(H)가 각각 16비트씩 기술되어 있다. 위 3가지 정보(411, 412, 413)와 전체 이미지(215) 넓이의 데이터만 있으면, 도 2의 프로세싱 유닛(221)은 자신이 처리해야 하는 이미지(414) 타일의 위치와 크기를 알 수 있고 이것을 메모리(240)에서 다운로드해서 처리하는 것이 가능하다. 전체 이미지의 넓이는 변하지 않는 값이므로 프로그램 시작 단계에서 각 프로세싱 유닛(221)에 세팅할 수 있다.
프로세싱 유닛의 개수 결정하는 태스크 스케줄러
도 5a는 파이프라이닝을 위해서 태스크 스케줄러(217)가 관심영역 타일 개수(211a, 213a)에 따라 프로세싱 유닛(221)의 개수를 결정하는 과정을 나타낸 도면이다.
뉴로-퍼지 시스템(210)은 전체 이미지(215)를 입력받아 물체에 대한 관심영역(211, 212, 213)을 추출한다. 예를 들면, 640x480 픽셀 크기의 예시 이미지(215)에서 각 물체의 관심영역(211, 212, 213)은 뉴로-퍼지 시스템(210)에 의하여 40x40 크기의 기본 타일 단위(216)로 추출된다.
예를 들면, 제1 관심영역(213)의 경우 특징점이 적으므로 연산량이 적다. 이에 반해 제2 관심영역(211)은 특징점이 제1 관심영역(213)보다 많고 따라서 연산량 역시 많다.
즉, 제1 및 제2 관심영역(213, 211)의 기본 타일(216)의 개수를 살펴보면, 제1 관심영역(213)의 타일들(213a)의 개수는 도면에 나타낸 바와 같이 20개이고, 제2 관심영역(211)의 타일들(211a)의 개수는 도면에 나타낸 바와 같이 40개이다.
기본 타일(216) 하나에 대해서 하나의 프로세싱 요소(221)가 SIMD 병렬 연산을 통하여 물체의 특징점과 특징벡터들을 생성하는데 소요되는 시간은 일정하므로, 제1 관심영역(213) 타일들(213a)과 제2 관심영역(211) 타일들(211a)를 동일한 개수의 프로세싱 유닛(221)에 분배할 경우 SIMD 병렬 연산에 소요되는 시간은 제2 관심영역(211)의 경우가 2배 크다.
따라서 파이프라이닝을 위해서는 한 프레임에서 소요되는 시간이 동일해야 하므로, 본 발명의 태스크 스케줄러(217)는 관심영역(211, 212, 213) 타일의 개수에 비례하여 프로세싱 유닛(221)을 분배한다. 즉, 태스크 스케줄러(217)가 제1 관심영역(213)의 경우 4개의 프로세싱 유닛(PE 1, PE 2, PE 5, PE 6, 213b)을 분배하고, 제2 관심영역(211)의 경우 제1 관심영역(213)의 2배인 8개의 프로세싱 유닛(PE 1 내지 PE 8, 211b)을 분배한다. 결국 제1 관심영역(213)과 제2 관심영역(211)에 대해서 프로세싱 요소(221)가 SIMD 병렬 연산을 통하여 물체의 특징점과 특징벡터들을 생성하는데 소요되는 시간은 일치하게 된다.
결국 태스크 스케줄러(217)는 병렬처리 단계에 소요되는 시간을 줄이거나 늘릴 수 있고, 본 발명의 일 실시예에 따른 물체 인식 장치는 파이프라이닝이 가능하다. 즉, 앞서 설명한 병렬처리 단계에서 소요되는 시간을 물체결정부(250)가 물체의 종류를 판단하는데 소요되는 시간 및 뉴로-퍼지 시스템(210)이 입력 이미지(215)에서 관심영역(211, 212, 213)을 추출하고 이를 변환한 관심영역 타일 태스크(214)를 출력하는데 소요되는 시간과 일치시키면 된다.
도 5b는 병렬처리 프로세서(220)에서 데이터 연산에 필요한 시간을 일정하게 유지하기 위해 관심영역 타일의 개수(550, 560)에 따른 프로세싱 유닛(221)의 개수(551, 561)를 결정한 결과를 모식적으로 나타낸 도면이다.
기본 타일(216)의 개수가 4개인 물체 영역(550)에는 두 개의 프로세싱 유닛(551)을 분배하고, 기본 타일(216)의 개수가 8개인 물체 영역(560)에는 4개의 프로세싱 유닛(561)을 분배한다. 각각의 SIMD 연산에 필요한 시간을 모식적으로 “기본 타일(216)의 개수 ÷ 분배된 프로세싱 유닛(221)의 개수”라고 보면, 각각의 SIMD 연산에 필요한 시간은 하나의 프로세싱 유닛(221)이 2개의 기본 타일(216)을 처리하는 시간(552, 562)으로 볼 수 있고 이는 서로 일치한다.
파이프라이닝(pipelining)을 위한 프로세싱 유닛의 개수 결정 방법
도 6은 본 발명의 일 실시예에 따른 물체 인식 장치에 포함된 태스크 스케줄러(217)가 관심영역(211,212,213) 타일의 개수에 비례하여 프로세싱 유닛(221)의 개수를 결정하는 방법을 나타낸 순서도이다.
먼저 관심영역(211,212,213) 타일의 개수에 비례하여 프로세싱 유닛의 개수를 결정하는 분배 기준(WTH 1 내지 WTH N)을 설정한다(S500). 여기서 각각의 WTH 값에 특정 개수의 프로세싱 유닛(221)이 포함될 수 있다. 도 6에서는 기본적으로 1개의 프로세싱 유닛(221)이 각각의 WTH 값에 포함된 것을 나타낸다.
그 후 뉴로-퍼지 분류기(330)가 추출한 관심영역(211, 212, 213) 타일의 개수를 측정한다(S510).
그 후 측정된 타일의 개수와 분배 기준(WTH 1 내지 WTH N)을 비교하여 프로세싱 유닛(221)의 특정 개수를 결정한다(S520).
그 후 태스크 스케줄러(217)가 선택된 프로세싱 유닛(221)에 상기 관심영역 타일 태스크(214)를 분배한다(미도시).
그 후 선택된 프로세싱 유닛(221)의 연산 소요 시간에 따라 상기 제1 단계의 분배 기준(WTH 1 내지 WTH N)을 갱신한다(S530).
위 방법으로 관심영역(211,212,213) 타일의 개수에 따라 필요한 프로세싱 유닛(221)의 개수를 결정할 수 있다. 결국 필요한 프로세싱 유닛(221)의 개수를 제어하여 SIMD 병렬 연산에 소요되는 시간을 원하는 시간으로 제어할 수 있고, 파이프라이닝이 가능하게 되어 물체 인식 장치의 처리 속도가 증가하게 된다.
프로세싱 유닛의 개수 결정 방법의 분배 기준 갱신 방법
도 7은 도 6에 나타낸 프로세싱 유닛(221)의 개수 결정 방법에서 분배 기준(WTH 1 내지 WTH N)을 갱신하는 방법을 나타낸 도면이다.
먼저 측정된 타일의 개수와 분배 기준(WTH 1 내지 WTH N)을 비교하여 프로세싱 유닛(221)의 특정 개수를 결정한다(S520).
그 후 선택된 프로세싱 유닛(221)이 관심영역 타일 태스크를 연산하는데 소요되는 시간(t1)을 측정한다(S702).
그 후 뉴로-퍼지 시스템(210)이 이미지프레임(215)을 입력 받은 후 관심영역 타일 태스크(214)를 결정된 프로세싱 유닛(221)에 분배하는데 소요되는 시간(t2)을 측정한다(S703).
그 후 S702 단계의 시간(t1)에서 S703 단계의 시간(t2)을 빼고(S704), 뺀 값(t)이 양수인지(t > 0) 판단한다(S705)
그 후 S702 단계의 시간(t1)에서 S703 단계의 시간(t2)을 뺀 값(t)이 양수(t > 0)인 경우(S706), 분배 기준(WTH 1 내지 WTH N)에 포함된 프로세싱 유닛(221)의 개수를 증가시킨다(S707).
또한, S702 단계의 시간(t1)에서 S703 단계의 시간(t2)을 뺀 값(t)이 음수(t < 0)인 경우(S708), 분배 기준(WTH 1 내지 WTH N)에 포함된 프로세싱 유닛(221)의 개수를 감소시킨다(S709).
도 7에 도시하지 않았지만 제1 단계의 시간(t1)에서 제2 단계의 시간(t2)을 뺀 값(t)이 0인 경우(t = 0)에는 분배 기준(WTH 1 내지 WTH N)을 갱신할 필요가 없을 것이다.
파이프라이닝 ( pipelining ) 물체 인식 장치
도 8a 및 8b는 본 발명의 일 실시예에 따른 물체 인식 장치에서 수행되는 물체 인식 방법의 각 단계가 파이프라이닝 되는 것을 모식적으로 나타낸 도면이다.
뉴로-퍼지 시스템(210)으로 영상이 입력된다. 그러면 뉴로-퍼지 시스템(210)에서 관심영역 타일 태스크(214)를 생성하고 관심영역 태스크(214)가 병렬처리 프로세서(220)로 전달된다. 관심영역 타일 태스크(214)가 병렬처리 프로세서(220)에 포함된 하나 이상의 프로세싱 유닛(221)에 의해 SIMD 연산된 후, 그 연산 결과로서 특징벡터가 물체결정부(250)로 전달된다. 물체결정부(250)에서는 물체의 종류를 인식하여 인식 결과를 출력한다. 여기서 뉴로-퍼지 시스템(210)에 의해 관심 영역 타일 태스크(214)가 생성되는 것은 시각인식단계(S110)에 해당하고, 병렬처리 프로세서(220)에 의해 특징벡터가 생성되는 것은 병렬 처리단계(S120)에 해당하고, 물체결정부(250)에 의해 물체가 인식되는 것은 물체 결정단계(S130)에 해당한다.
각 단계(S110, S120, S130) 사이에 전달되는 데이터의 효과적인 파이프라이닝을 위해서는 각 단계의 수행 시간이 동일하게 유지되어야 한다. 이를 위하여 뉴로-퍼지 시스템(210)에 포함된 태스크 스케줄러(217)는 두 번째 단계인 병렬 처리 단계(S120)와 세 번째 단계인 물체 결정단계(S130)의 수행시간을 다음과 같이 제어한다.
태스크 스케줄러(217)는 뉴로-퍼지 시스템(210)이 생성하는 수십 개의 기본 타일(216)로 이루어지는 관심 영역 타일 태스크(214)를 복수의 프로세싱 유닛(221)에 분배한다. 복수의 프로세싱 유닛(221)은 태스크 스케줄러(217)로부터 관심 영역(211, 212, 213)의 관심영역 타일 태스크(214)를 전달받아 그 관심 영역(211, 212, 213)에 대하여 SIMD 연산을 수행한다. 여기서 태스크 스케줄러(217)는 복수의 프로세싱 유닛(221)의 수행 시간을 제어하기 위하여, 관심 영역(211, 212, 213) 타일의 개수를 측정하여 관심 영역 타일 개수에 따라 프로세싱 유닛(221)의 개수를 결정한다.
도 8b를 참조하면, 우선 첫 번째 프레임에 대해 시각인식, 병렬 처리, 물체 결정이 시간순서(S610 -> S620 -> S630)에 따라 수행된다. 첫 번째 프레임에서 시각인식이 끝나고 병렬 처리가 수행되는 시간(S620)동안 두 번째 프레임에서는 시각인식이 수행된다. 첫 번째 프레임에서 물체 결정이 처리되는 시간(S630)에, 두 번째 프레임에서는 병렬처리가 수행되고, 동시에 세 번째 프레임에 대해 시각인식이 수행된다. 이하 프레임에 대해서도 마찬가지 방식으로 시각인식, 병렬처리, 물체결정이 시간순서(S610 -> S620 -> S630)에 따라 수행된다. 이렇게 물체 인식 방법을 세 단계로 나누어 파이프라이닝함으로써 한 프레임의 처리가 모두 끝난 뒤에 다음 프레임의 처리를 시작하는 것이 아니라 동시에 물체 인식 장치의 모든 하드웨어를 동시에 풀 가동하여 물체 인식을 신속하게 수행할 수 있다.
파이프라이닝 ( pipelining ) 물체 인식 방
먼저 제1 단계로 뉴로-퍼지 시스템(210)에 의하여 물체의 관심영역(211, 212, 213)을 기본 타일 단위(216)로 추출한다.
그 후 제2 단계로 추출된 관심영역(211, 212, 213) 타일을 전체 이미지(215) 데이터에서 해당 타일 데이터의 시작 주소, 전체 이미지에서 해당 타일의 시작 위치의 2차원 좌표값 및 해당 타일의 크기를 포함하는 관심영역 타일 태스크(214)로 변환한다.
그 후 제3 단계로 앞선 제1 및 제2 단계까지의 수행시간을 측정한다.
그 후 제4 단계로 병렬처리 프로세서(220)의 연산 시간을 제3 단계에서 측정된 시간과 일치시키기 위해서 관심영역(211, 212, 213) 타일의 개수에 따라 프로세싱 유닛(221)의 개수를 결정한다.
그 후 제5 단계로 변환된 관심영역 타일 태스크(214)가 네트워크 온 칩(230)을 통하여 복수의 프로세싱 유닛(221)으로 구성된 병렬처리 프로세서(220)에 분배된다.
그 후 결정된 개수의 프로세싱 유닛(221)이 분배받은 관심영역 타일 태스크(214)에 대하여 물체의 특징점과 특징벡터를 생성한다.
그 후 제3 단계에서 측정된 시간안에 물체결정부(250)가 물체를 인식하기 위해서 태스크 스케줄러(217)가 데이터베이스의 크기를 제어한다.
또한, 제1 단계에서, 도 3a에 나타낸 뉴로-퍼지 시스템(210)의 퍼지 모션 측 정기(310), 셀룰러 뉴럴 네트워크 시각 집중기(320), 뉴로-퍼지 분류기(330)를 통하여 각 물체의 관심영역(211, 212, 213)을 추출할 수 있다.
본 발명에서 컴퓨터 시스템(100)은 이상 설명한 실시예에만 국한된 것이 아니고, 뉴럴 네트워크 블록(111), 퍼지 로직 블록(112), 및 뉴럴 네트워크와 퍼지 로직이 결합된 뉴로-퍼지 블록(113) 중 적어도 어느 2개를 포함하는 뉴로-퍼지 시스템(110)과 병렬처리 프로세서(120)가 결합되어 연산을 처리하는 모든 컴퓨터 시스템에 적용 가능함을 명시한다
본 발명의 일 실시예에 따른 물체 인식 장치에서 뉴로-퍼지 시스템(210)은 전체 이미지(215)에서 각 물체의 관심영역(211, 212, 213)을 추출함으로써 병렬처리 프로세서(220)는 전체 이미지(215)가 아닌 개략적인 이미지인 관심영역(211, 212, 213)의 데이터만 연산하므로 물체 인식 속도를 가속화한다.
또한 태스크 스케줄러(217)는 관심영역(211, 212, 213) 타일의 개수에 따라 SIMD 연산을 위한 프로세싱 유닛(221)의 개수를 결정하고, 이를 통해 병렬처리 프로세서(220)의 연산시간을 제어가 가능하고 이에 따라 물체 인식 장치에서 파이프라이닝이 가능하게 된다. 그 결과, 640x480 크기의 입력 이미지(215)에 대하여 500mW의 저전력으로 초당 30Frame 이상의 실시간 물체 인식이 가능하게 된다. 예를 들면, COIL-100과 같이 물체 인식의 실험에 많이 쓰이는 데이터베이스를 이용하여 테스트를 한 결과, 뉴로-퍼지의 관심영역(211, 212, 213) 추출로 인하여 병렬처리 프로세서(220)가 처리해야 하는 이미지 영역은 뉴로-퍼지 시스템(210)이 적용되지 않았을 때와 비교하여 평균적으로 50% 이상 줄어들게 됨을 알 수 있었다. 또한, 필요한 관심영역(211, 212, 213)에서만 특징점들이 추출되기 때문에 특징점의 개수가 줄어들고 따라서 물체인식을 위한 벡터를 만드는 과정 및 데이터베이스와의 매칭 과정에서 필요한 연산량 또한 줄어들게 되어 저전력, 실시간으로 물체 인식이 가능하게 되는 것이다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시 될 수 있다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 일 실시예에 따른 컴퓨터 시스템(100)의 블록도를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 물체 인식 장치의 블록도를 나타낸 도면이다.
도 3a는 도 2에 나타낸 물체 인식 장치에 있어서, 뉴로-퍼지 시스템(210)이 물체의 관심영역(211, 212, 213)을 추출하는데 필요한 구성을 나타낸 도면이다.
도 3b는 셀룰러 뉴럴 네트워크 시각 집중기(320)를 나타낸 도면이다.
도 3c는 뉴로-퍼지 분류기(330)를 나타낸 블록도이다.
도 3d는 유사도 측정에 사용되는 퍼지 멤버십 함수의 대표적인 예인 가우시안 함수를 CMOS소자로 구현한 회로(360) 및 결과 파형(370)을 도시한 것이다.
도 4는 12바이트의 관심영역 타일 태스크(214)의 포맷을 나타낸 도면이다.
도 5a는 파이프라이닝을 위해서 태스크 스케줄러(217)가 관심영역(211, 212, 213) 타일 개수(211a, 213a)에 따라 프로세싱 유닛(221)의 개수를 결정하는 과정을 나타낸 도면이다.
도 5b는 병렬처리 프로세서(220)에서 데이터 연산에 필요한 시간을 일정하게 유지하기 위해 관심영역 타일의 개수(550, 560)에 따른 프로세싱 유닛(221)의 개수(551, 561)를 결정한 결과를 모식적으로 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 물체 인식 장치에 포함된 태스크 스케줄러(217)가 관심영역(211, 212, 213) 타일의 개수에 비례하여 프로세싱 유닛(221)의 개수를 결정하는 방법을 나타낸 순서도이다.
도 7은 도 6에 나타낸 프로세싱 유닛(221)의 개수 결정 방법에서 분배 기준(WTH 1 내지 WTH N)을 갱신하는 방법을 나타낸 도면이다.
도 8a 및 8b는 본 발명의 일 실시예에 따른 물체 인식 장치에서 수행되는 물체 인식 방법의 각 단계가 파이프라이닝 되는 것을 모식적으로 나타낸 도면이다.
**********도면의 주요 부분에 대한 부호의 설명**********
110, 210: 뉴로-퍼지 시스템
120, 220: 병렬처리 프로세서
130, 230: 네트워크 온 칩
140, 240: 메모리
211, 212, 213: 관심영역
214: 관심영역 타일 태스크
217: 태스크 스케줄러
310: 퍼지 모션 측정기
320: 셀룰러 뉴럴 네트워크 시각 집중기
330: 뉴로-퍼지 분류기

Claims (11)

  1. 뉴럴 네트워크(neural networks) 블록, 퍼지 로직(fuzzy logic) 블록, 및 뉴럴 네트워크와 퍼지 로직이 결합된 뉴로-퍼지 블록 중 적어도 어느 2개를 포함하는 뉴로-퍼지 시스템(neuro-fuzzy system);
    복수의 프로세싱 유닛을 포함하는 병렬처리 프로세서(parallel processor); 및
    상기 뉴로-퍼지 시스템과 상기 병렬처리 프로세서 사이에 연결되고, 상기 뉴로-퍼지 시스템, 상기 병렬처리 프로세서 간의 데이터 통신을 하는 네트워크 온 칩을 포함하고,
    상기 뉴로-퍼지 시스템은
    상기 뉴로-퍼지 시스템의 출력 데이터 양에 비례하여, 상기 데이터를 처리할 상기 프로세싱 유닛의 개수를 결정하고, 상기 데이터를 상기 결정된 프로세싱 유닛에 분배하는 태스크 스케줄러(task scheduler)를 더 포함하는, 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 뉴로-퍼지 시스템에서 추출된 데이터와 상기 병렬처리 프로세서의 연산 과정의 중간 데이터를 저장하기 위한 메모리를 더 포함하는, 컴퓨터 시스템.
  3. 제1항에 따른 컴퓨터 시스템에서 상기 태스크 스케줄러가 상기 프로세싱 유 닛의 개수를 결정하는 방법으로서,
    상기 데이터에 비례하여 상기 프로세싱 유닛의 개수를 결정하는 분배 기준을 정하는 제1 단계;
    상기 뉴로-퍼지 시스템에서 출력될 데이터의 양을 측정하는 제2 단계;
    상기 측정된 데이터의 양과 분배 기준을 비교하여 특정 개수의 상기 프로세싱 유닛을 선택하는 제3 단계;
    상기 태스크 스케줄러가 상기 선택된 프로세싱 유닛에 상기 데이터를 분배하는 제4 단계; 및
    상기 선택된 프로세싱 유닛의 연산 소요 시간에 따라 상기 제1 단계의 분배 기준을 갱신하는 제5 단계를 포함하고,
    상기 각각의 분배 기준은 일정한 단계의 증가에 비례하여 특정 개수의 상기 프로세싱 유닛을 포함하는, 프로세싱 유닛 개수 결정 방법.
  4. 셀룰러 뉴럴 네트워크 시각 집중기(cellular neural networks visual attention engine), 퍼지 모션 측정기(fuzzy motion estimator), 뉴로-퍼지 분류기(neuro fuzzy classifier) 및 태스크 스케줄러를 포함하는 뉴로-퍼지 시스템;
    복수의 프로세싱 유닛을 포함하는 병렬처리 프로세서;
    특징벡터를 데이터베이스에 있는 벡터들과 비교하여 가장 가까운 거리를 갖는 벡터에 해당하는 물체를 인식하는 물체결정부; 및
    상기 뉴로-퍼지 시스템, 상기 병렬처리 프로세서 및 상기 물체결정부 간의 데이터 통신을 하는 네트워크 온 칩을 포함하고,
    상기 퍼지 모션 측정기는 연속된 이미지프레임 사이에서 동적 모션 벡터를 생성하고,
    상기 셀룰러 뉴럴 네트워크 시각 집중기는 정적 특징인 강도, 색, 방향을 추출하고 상기 동적 모션 벡터와 함께 누적하여 특징맵을 생성하고,
    상기 뉴로-퍼지 분류기는 상기 특징맵을 기반으로 시드점(seed point)을 추출하고 상기 시드점을 기준으로 영역확장을 통한 동질성 판단으로 각 물체의 관심영역(region-of-interest, ROI)을 타일(tile) 단위로 추출하고,
    상기 태스크 스케줄러는 상기 관심영역 타일을 관심영역 타일 태스크로 변환하고, 상기 관심영역 타일의 개수에 비례하여 상기 프로세싱 유닛의 개수를 결정하고, 상기 관심영역 타일 태스크를 상기 결정된 프로세싱 유닛에 분배하며, 상기 데이터베이스의 크기를 제어하고,
    상기 병렬처리 프로세서는 상기 관심영역 타일 태스크를 SIMD(single-instruction-multiple-data) 병렬연산을 하여 물체의 특징점과 상기 특징점에 대한 특징벡터를 생성하고, 상기 특징벡터를 상기 물체결정부로 전달하는, 물체 인식 장치.
  5. 제4항에 있어서,
    상기 태스크 스케줄러는 상기 프로세싱 유닛의 개수를 결정하는 분배 기준을 가지고,
    상기 각각의 분배 기준은 일정한 단계의 증가에 비례하여 적어도 1개 이상의 상기 프로세싱 유닛을 포함하는, 물체 인식 장치.
  6. 제4항에 있어서,
    상기 관심영역 타일 태스크는
    전체 이미지 데이터에서 상기 추출한 관심영역 타일의 최 좌상단 데이터의 주소를 의미하는 시작주소;
    전체 이미지에서 상기 관심영역 타일의 최 좌상단 점의 2차원 좌표값인 X방향 좌표, Y방향 좌표로 구성된 시작 좌표; 및
    상기 관심영역 타일의 너비와 높이를 각각 기술한 타일크기를 포함하는, 물체 인식 장치.
  7. 제4항에 따른 물체 인식 장치에서 파이프라이닝 구현을 위해서 상기 태스크 스케줄러가 상기 프로세싱 유닛의 개수를 결정하는 방법으로서,
    상기 관심영역 타일의 개수에 비례하여 상기 프로세싱 유닛의 개수를 결정하는 분배 기준을 설정하는 제1 단계;
    상기 뉴로-퍼지 분류기가 추출한 상기 관심영역 타일의 개수를 측정하는 제2 단계;
    상기 측정된 타일의 개수와 분배 기준을 비교하여 상기 프로세싱 유닛의 특정 개수를 선택하는 제3 단계;
    상기 태스크 스케줄러가 상기 선택된 프로세싱 유닛에 상기 관심영역 타일 태스크를 분배하는 제4 단계; 및
    상기 선택된 프로세싱 유닛의 연산 소요 시간에 따라 상기 제1 단계의 분배 기준을 갱신하는 제5 단계를 포함하고,
    상기 각각의 분배 기준은 일정한 단계의 증가에 비례하여 특정 개수의 상기 프로세싱 유닛을 포함하는, 프로세싱 유닛 개수 결정 방법.
  8. 제7항에 있어서,
    상기 각각의 분배 기준은 일정한 단계의 증가에 비례하여 적어도 1개 이상의 상기 프로세싱 유닛을 포함하는, 프로세싱 유닛 개수 결정 방법.
  9. 제7항에 있어서,
    상기 제5 단계의 분배 기준을 갱신하는 방법은,
    상기 선택된 프로세싱 유닛이 상기 관심영역 타일 태스크를 연산하는데 소요되는 시간을 측정하는 제5-1 단계;
    상기 뉴로-퍼지 시스템이 상기 이미지프레임을 입력받아 상기 관심영역 타일 태스크를 상기 결정된 프로세싱 유닛에 분배하는데 소요되는 시간을 측정하는 제5-2 단계;
    상기 제5-1 단계의 시간에서 상기 제5-2 단계의 시간을 뺀 값이 양수인지 판단하는 제5-3 단계; 및
    상기 제5-1 단계의 시간에서 상기 제5-2 단계의 시간을 뺀 값이 양수인 경우, 상기 분배 기준에 포함된 상기 프로세싱 유닛의 개수를 증가시키고, 상기 제5-1 단계의 시간에서 상기 제5-2 단계의 시간을 뺀 값이 음수인 경우, 상기 분배 기준에 포함된 상기 프로세싱 유닛의 개수를 감소시키는 제5-4 단계를 포함하는, 프로세싱 유닛 개수 결정 방법.
  10. 제4항에 따른 물체 인식 장치를 이용한 파이프라이닝 물체 인식 방법에 있어서,
    상기 뉴로-퍼지 시스템에 의하여 물체의 관심영역을 타일 단위로 추출하는 제1 단계;
    상기 추출된 관심영역 타일을 전체 이미지 데이터에서 해당 타일 데이터의 시작 주소, 전체 이미지에서 해당 타일의 시작 위치의 2차원 좌표값 및 해당 타일의 크기를 포함하는 관심영역 타일 태스크로 변환하는 제2 단계;
    상기 제1 단계 및 상기 제2 단계까지의 수행시간을 측정하는 제3 단계;
    상기 병렬처리 프로세서의 연산 소요 시간을 제3 단계에서 측정된 시간과 일치시키기 위해서 상기 관심영역 타일 개수에 따라 상기 프로세싱 유닛의 특정 개수를 결정하는 제4 단계;
    상기 변환된 관심영역 타일 태스크가 네트워크 온 칩을 통하여 상기 특정 개수의 프로세싱 유닛에 분배되는 제5 단계;
    상기 특정 개수의 프로세싱 유닛이 분배받은 상기 관심영역 타일 태스크에 대하여 물체의 특징점과 특징벡터를 생성하는 제6 단계; 및
    상기 제3 단계에서 측정된 시간안에 상기 물체결정부가 물체를 인식하기 위해서 상기 태스크 스케줄러가 상기 데이터베이스의 크기를 제어하는 제7 단계를 포함하는, 파이프라이닝 물체 인식 방법.
  11. 제10항에 있어서,
    상기 제1단계는,
    동적 모션 벡터 생성, 정적 특징을 추출하는 단계;
    상기 동적 모션 벡터 및 정적 특징을 함께 누적하여 관심영역을 판단하는 단계; 및
    상기 관심영역을 일정한 크기의 기본 타일을 이용하여 추출하는 단계를 포함하는, 파이프라이닝 물체 인식 방법.
KR1020090094496A 2009-10-06 2009-10-06 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치 KR20110037184A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090094496A KR20110037184A (ko) 2009-10-06 2009-10-06 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090094496A KR20110037184A (ko) 2009-10-06 2009-10-06 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20110037184A true KR20110037184A (ko) 2011-04-13

Family

ID=44044709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090094496A KR20110037184A (ko) 2009-10-06 2009-10-06 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20110037184A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324468A (zh) * 2013-07-12 2013-09-25 郑州大学 关于模糊概念的一种基于负载均衡的并行生成方法
CN108564170A (zh) * 2018-04-26 2018-09-21 福州瑞芯微电子股份有限公司 一种基于noc的可重构神经网络运算方法和电路
US10489684B2 (en) 2015-12-14 2019-11-26 Samsung Electronics Co., Ltd. Image processing apparatus and method based on deep learning and neural network learning
KR20210119744A (ko) * 2020-03-25 2021-10-06 주식회사 티맥스 소프트 스텝 입출력 데이터 셋 파이프라이닝
CN113761999A (zh) * 2020-09-07 2021-12-07 北京京东乾石科技有限公司 一种目标检测方法、装置、电子设备和存储介质
KR20230106732A (ko) * 2020-08-21 2023-07-13 주식회사 딥엑스 양자화된 인공신경망 모델을 구동하도록 구성된 신경망프로세싱 유닛

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324468A (zh) * 2013-07-12 2013-09-25 郑州大学 关于模糊概念的一种基于负载均衡的并行生成方法
US10489684B2 (en) 2015-12-14 2019-11-26 Samsung Electronics Co., Ltd. Image processing apparatus and method based on deep learning and neural network learning
US11341375B2 (en) 2015-12-14 2022-05-24 Samsung Electronics Co., Ltd. Image processing apparatus and method based on deep learning and neural network learning
CN108564170A (zh) * 2018-04-26 2018-09-21 福州瑞芯微电子股份有限公司 一种基于noc的可重构神经网络运算方法和电路
CN108564170B (zh) * 2018-04-26 2020-06-19 福州瑞芯微电子股份有限公司 一种基于noc的可重构神经网络运算方法和电路
KR20210119744A (ko) * 2020-03-25 2021-10-06 주식회사 티맥스 소프트 스텝 입출력 데이터 셋 파이프라이닝
KR20230106732A (ko) * 2020-08-21 2023-07-13 주식회사 딥엑스 양자화된 인공신경망 모델을 구동하도록 구성된 신경망프로세싱 유닛
KR20230106731A (ko) * 2020-08-21 2023-07-13 주식회사 딥엑스 최적화된 인공신경망 모델을 구동하도록 구성된 신경망프로세싱 유닛
KR20230106734A (ko) * 2020-08-21 2023-07-13 주식회사 딥엑스 프루닝된 인공신경망 모델을 구동하도록 구성된 신경망프로세싱 유닛
US11977916B2 (en) 2020-08-21 2024-05-07 Deepx Co., Ltd. Neural processing unit
CN113761999A (zh) * 2020-09-07 2021-12-07 北京京东乾石科技有限公司 一种目标检测方法、装置、电子设备和存储介质
CN113761999B (zh) * 2020-09-07 2024-03-05 北京京东乾石科技有限公司 一种目标检测方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
Wu et al. Helmet detection based on improved YOLO V3 deep model
KR20110037183A (ko) 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된 전력 제어 가능한 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치
CN108319957A (zh) 一种基于超点图的大规模点云语义分割方法
Sonkusare et al. A review on hand gesture recognition system
CN105809672B (zh) 一种基于超像素和结构化约束的图像多目标协同分割方法
CN103295025B (zh) 一种三维模型最优视图的自动选择方法
CN105243139A (zh) 一种基于深度学习的三维模型检索方法及其检索装置
KR20110037184A (ko) 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치
CN110334584B (zh) 一种基于区域全卷积网络的手势识别方法
Ren et al. A novel squeeze YOLO-based real-time people counting approach
CN109190559A (zh) 一种手势识别方法、手势识别装置及电子设备
CN110349186B (zh) 基于深度匹配的大位移运动光流计算方法
CN106127125A (zh) 基于人体行为特征的分布式dtw人体行为意图识别方法
CN107146219B (zh) 一种基于流形正则化支持向量机的图像显著性检测方法
CN105046714A (zh) 一种非监督的基于超像素和目标发现机制的图像分割方法
CN105740915A (zh) 一种融合感知信息的协同分割方法
CN111126459A (zh) 一种车辆细粒度识别的方法及装置
Huang et al. Hybrid bio-inspired lateral inhibition and imperialist competitive algorithm for complicated image matching
CN115018039A (zh) 一种神经网络蒸馏方法、目标检测方法以及装置
CN114842215A (zh) 一种基于多任务融合的鱼类视觉识别方法
Yevsieiev et al. Object Recognition and Tracking Method in the Mobile Robot’s Workspace in Real Time
CN113553943B (zh) 目标实时检测方法以及装置、存储介质、电子装置
KR100956747B1 (ko) 신경망회로와 병렬처리 프로세서를 결합한 컴퓨터구조 및그를 이용한 처리방법
CN112084988B (zh) 车道线实例聚类方法、装置、电子设备和存储介质
CN115471833A (zh) 一种动态局部自注意力卷积网络点云分析系统及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application