KR20160003020A - 다목적 이미지 프로세싱 코어 - Google Patents

다목적 이미지 프로세싱 코어 Download PDF

Info

Publication number
KR20160003020A
KR20160003020A KR1020157033283A KR20157033283A KR20160003020A KR 20160003020 A KR20160003020 A KR 20160003020A KR 1020157033283 A KR1020157033283 A KR 1020157033283A KR 20157033283 A KR20157033283 A KR 20157033283A KR 20160003020 A KR20160003020 A KR 20160003020A
Authority
KR
South Korea
Prior art keywords
vector
feature
block
rti
pfv
Prior art date
Application number
KR1020157033283A
Other languages
English (en)
Other versions
KR101864000B1 (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 KR20160003020A publication Critical patent/KR20160003020A/ko
Application granted granted Critical
Publication of KR101864000B1 publication Critical patent/KR101864000B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06K9/00973
    • G06K9/00986
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors

Abstract

물체 검출, 인식 및 추적 알고리즘이 비젼의 많은 어플리케이션에 이용된다. 이러한 알고리즘의 출력은 상황 인식과 의사 결정에 필수적이다. 이러한 알고리즘의 정확도 및 프로세싱 레이턴시는 시스템의 성공에 중요한 파라미터다. 이러한 발명은 테크닉에 기반하는 뉴럴 네트워크를 가능하게 하고, 레이턴시 제약을 충족시킨다.

Description

디스크립션 다목적 이미지 프로세싱 코어{DESCRIPTION MULTI-PURPOSE IMAGE PROCESSING CORE}
본 발명은 뉴럴 네트워크 기반의 기술을 이용하여, 플래폼에 내재되어 실시간으로 동작하는 비디오 프레임을 분석하기 위한 FPGA의 이미지 프로세싱 방법과 연관된다.
비전의 뉴럴 네트워크 큰 스케일의 분류[참조 1] 또는 다중 모드 방식[참조 2]와 같은 복잡한 임무에서의 성능으로 인해 더 많이 이용된다. 이러한 성공은 분류되지 않은 데이터로부터의 지시되지 않는 기능의 학습[참조 3], [참조 4], 깊은 구조를 경유하는 계층 프로세싱[참조 5]-[참조 7] 및 리커런트 프로세싱[참조 3], [참조 8]을 이용하는 넓은 범위의 통계적 의존성의 개발 등과 같은 많은 장점으로 인한 것이다. 뉴럴 네트워크 접근법은 커널 방법에 대한 오쏘고널 접근법: 입력은 숨겨진 유닛의 비선형 높은 차원의 공간에 투영되고, 선형 하이퍼 평면은 데이터를 분할할 수 있다[참조 9]. 이러한 비선형 투영은 시각 데이터의 강력한 표현이고, 분류, 투영, 추적, 클러스터링, 관심 포인트 검출 등과 같은 다중의 다른 임무를 위해 이용되는 것이 가능하다. 따라서, 이미지 또는 비디오 블록이 다중의 레이어 프로세싱을 경유하여 뉴럴 네트워크에 의해 "분석"되고, 시각 입력을 나타내는 숨겨진 레이어 활동은 필요에 따라 많은 다른 임무로 다중 송신될 수 있고, 코르티컬 프로세싱[참조 10]에서 실행된다.
실시간으로 내재된 시각 프로세싱의 수요는 늘어나고 있고, UAV(Unmanned Aerial Vehicles)와 같은 지능형 로봇 플랫폼에서의 수요도 증가하고 있다. 이러한 시스템은 자동화 방식으로 동작하고 항해하는 것으로 예측되고, 이는 이미지 및 비디오의 지식 기능의 성공적인 구현을 필요로 한다. 장면 인식, 이미지에서의 특정 물체의 검출, 움직이는 물체의 분류 및 물체 추적은 자동화 로봇 시스템에서 요구되는 필수적 시각 기능의 일부이다. 이러한 시스템의 무게 및 에너지 스펙은 시각 프로세싱 기능, 동작 용량의 감소의 복잡성 및 수 모두에 제한을 받는다. 이러한 기능의 적어도 하위 집합에 일반적인 시간 프로세싱 코어는 제한을 완화시킬 수 있다.
본 발명에서, 희소성 있고 및 완성도 있는 이미지 표현이 뉴럴 네트워크의 숨겨진 레이어에서 형성되고, 여러모로 유용한 파워를 제공한다[참조 4], [참조 11]. 특히, 이는 감시와 인식을 목적으로 한 UAV 플랫폼에 내장될 수 있다.
[참조 1] A. Krizhevsky, I. Sutskever, 및 G. Hinton, "Imagenet classification with deep convolutional neural networks," in Advances in Neural Information Processing Systems 25, 2012, pp. 1106-1114.
[참조 2] N. Srivastava 및 R. Salakhutdinov, "Multimodal learning with deep boltzmann machines," in Advances in Neural Information Processing Systems 25, 2012, pp. 2231-2239.
[참조 3] G. E. Hinton, S. Osindero, 및 Y.-W. Teh, "A fast learning algorithm for deep belief nets," Neural computation, vol. 18, no. 7, pp. 1527-1554,2006.
[참조 4] B. A. Olshausen et al., "Emergence of simple-cell receptive field properties by learning a sparse code for natural images," Nature, vol.381, no. 6583, pp. 607-609, 1996.
[참조 5] Y. LeCun, L. Bottou, Y. Bengio, 및 P. Haffner, "Gradient-based learning applied to document recognition," Proceedings of the IEEE, vol. 86, no. 11, pp. 2278-2324, 1998.
[참조 6] M. Ranzato, F. J. Huang, Y.-L. Boureau, 및 Y. Lecun, "Unsupervised learning of invariant feature hierarchies with applications to object recognition," in Computer Vision and Pattern Recognition, 2007. CVPR'07. IEEE Conference on. IEEE, 2007, pp. 1-8.
[참조 7] Y. Bengio, P. Lamblin, D. Popovici, 및 H. Larochelle, "Greedy layerwise training of deep networks," Advances in neural information processing systems, vol. 19, p. 153, 2007.
[참조 8] D. E. Rumelhart, G. E. Hinton, 및 R. J. Williams, "Learning representations by back-propagating errors," Cognitive modeling, vol. 1, p. 213, 2002.12
[참조 9] A. Coates, A. Y. Ng, 및 H. Lee, "An analysis of single-layer networks in unsupervised feature learning," in International Conference on Artificial Intelligence and Statistics, 2011, pp. 215-223.
[참조 10] T. S. Lee, D. Mumford, R. Romero, 및 V. A. Lamme, "The role of the primary visual cortex in higher level vision," Vision research, vol. 38, no. 15, pp. 2429-2454, 1998.
[참조 11] Y.-L. Boureau, F. Bach, Y. LeCun, 및 J. Ponce, "Learning mid-level features for recognition," in Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. IEEE, 2010, pp. 2559-2566.
본 발명의 목표는 이미지 프로세싱 코어에 의존하는 뉴럴 네트워크의 FPGA 구현을 제공한다.
일측에 따르면, 인벤티브 다목적 이미지 프로세싱 코어(101)는 적어도 하나의 이미지 분석기(102) 블록; 및 적어도 하나의 메모리 인터페이스(103) 블록을 포함한다.
일실시예에 따르면, 상기 이미지 분석기(102) 블록은 적어도 하나의 특징 추출(104) 블록; 적어도 하나의 특징 합산(105) 블록; 및 적어도 하나의 분류(106) 블록을 포함한다.
일실시예에 따르면, 상기 이미지 분석기(102) 블록은 비디오 프레임(107); 특징 딕셔너리(108); 분류 매트릭스(110); 특징 계산 요청(109); 및 희소성 곱셈기(114)를 포함한다.
일실시예에 따르면, 상기 이미지 분석기(102) 블록은 특징 벡터(111); 및 분류 라벨(112)를 포함한다.
일실시예에 따르면, 상기 특징 추출(104) 블록은 패치(310) 획득 프로세스; P 벡터(302) 구축 프로세스; P 벡터 평균값(303) 계산 프로세스; 이진 PB 벡터(304) 구축 프로세스; 딕셔너리(dictionary; D)와 함께 PB의 비트 플리핑 거리 벡터(distance vector; DV)(305) 계산 프로세스; DV의 평균값(306) 계산 프로세스; DV의 표준편차값(307) 계산 프로세스; DV의 활성화 임계치(activation threshold; AT)(308) 계산 프로세스; 및 DV의 픽셀 특징 벡터(pixel feature vector; PFV)(309) 계산 프로세스를 포함한다.
일실시예에 따르면, 상기 패치 획득 프로세스는 상기 각각의 새롭게 들어오는 비디오 라인을 바닥 라인 FIFO(401)에 기록하는 단계; 상기 다음 비디오 라인이 오는 경우, 바닥 라인 FIFO(401)로부터 상기 이전의 비디오 라인을 판독하고 상위 라인 FIFO(401)에 기록하는 단계; 모든 라인 FIFO (401)가 패치를 구축(204)하도록 상기 필요한 라인으로 채워질 때까지 상기 처음 두 단계를 지속하는 단계; 모든 라인이 사용 가능한 경우, 상기 라인 FIFO(401)로부터 K번 판독하고 상기 패치를 획득(240)하는 단계; 상기 라인 FIFO(401)로부터 상기 K+1의 판독을 이용하여 상기 다음 픽셀 패치를 획득하는 단계; 비디오 라인을 통해 모든 패치가 획득될 때까지 상기 판독 작업을 지속하는 단계; 및 패치(204)의 하향 이동을 생성하도록 상기 비디오 라인을 상위 라인 FIFO(401)로 이동시키는 단계를 포함한다.
일실시예에 따르면, 인벤티브 다목적 이미지 프로세싱 코어(101)는 특징 딕셔너리 D(701) 사이의 상기 거리 계산(305)을 위해 스칼라 P(501) 벡터 대신 이진 PB(603) 벡터를 이용한다.
일실시예에 따르면, 인벤티브 다목적 이미지 프로세싱 코어(101)는 상기 거리 계산(305)을 위해 스칼라 특징 딕셔너리 대신 이진 특징 딕셔너리 D(701)를 이용한다.
일실시예에 따르면, 인벤티브 다목적 이미지 프로세싱 코어(101)는 상기 시나리오에 따라 상기 연산 동안 다른 특징 사전(D)(701)을 로딩하는 상기 가능성을 가진다.
일실시예에 따르면, 상기 비트 플리핑 거리 계산(305) 프로세스는 xor(801) 연산을 이용함으로써 PB(603) 벡터를 특징 사전 D(701)의 모든 열(702)과 비교하는 단계; xor 연산(801) 이후에 "1"과 동일한 엔트리의 상기 수를 계산하는 단계(802); 및 상기 거리 벡터 DV(804)를 구축하는 단계(803)를 포함한다.
일실시예에 따르면, 인벤티브 다목적 이미지 프로세싱 코어(101)는 상기 거리 벡터 DV(804)는 모든 xor 연산(801)의 결과 대신에 "1"과 동일한 엔트리의 상기 수만을 유지한다.
일실시예에 따르면, 상기 픽셀 특징 벡터(PFV)(309) 계산 프로세스는 DV(805)의 상기 엔트리를 AT(901)와 비교하는 단계; DV(805)의 엔트리가 AT(901)보다 더 큰 경우, "0"을 할당하는 단계; DV(805)의 엔트리가 AT(901)보다 더 작은 경우, "1"을 할당하는 단계; 및 픽셀 특징 벡터(PFV)(309)를 구축하는 단계(904)를 포함한다.
일실시예에 따르면, 상기 픽셀 특징 벡터(PFV)(904)는 AT 및 DV 엔트리 사이의 상기 비교의 상기 결과를 2진 값으로서 유지한다.
일실시예에 따르면, 상기 특징 합산(105) 블록은 상기 통합 벡터 IV(1201)를 계산하는 적어도 하나의 통합 벡터 계산기(1001); 상기 특징 계산 요청(109)에 따라 상기 내부 RAM(1004)을 계산하는 적어도 하나의 어드레스 계산기(1002); 상기 특징 계산 요청(109)을 저장하는 적어도 하나의 특징 계산 요청 FIFO(1003); 및 상기 PFV(309)를 저장하는 적어도 하나의 내부 RAM(1004)의 하위 블록을 포함한다.
일실시예에 따르면, 상기 특징 합산(105) 블록은 영역을 네 개의 동일한 하위 영역; 사분면(1103, 1104, 1105, 1106)으로 분할하도록 상기 특징 계산 요청(109)의 경계 좌표(1101)를 픽셀 값으로서 수신하고, 상기 다른 좌표(1102)를 계산한다.
일실시예에 따르면, 상기 특징 합산(105) 블록은 상기 계산을 더 빠르게 하기 위해 외부 메모리(113)으로부터 상기 PFV(309)를 판독하고 내부 RAM(1004)을 기록한다.
일실시예에 따르면, 상기 통합 벡터 계산기(1001)의 하위 블록은 내부 RAM(1004)으로부터 상기 PFV(309)를 판독하는 단계; 및 수평 및 수직 차원 모두에서 이전 PFV(904)의 상기 모든 엔트리를 추가함으로써 상기 사분면 통합 벡터 QIV(1103-1)를 계산하는 단계를 포함한다.
일실시예에 따르면, 인벤티브 다목적 이미지 프로세싱 코어(101)는 사분면 통합 벡터 및 제1 PVF 사이의 상기 뺄셈 연산을 생략하도록 상기 제1 PVF(309)의 값을 모두 "0"으로서 획득한다.
일실시예에 따르면, 분류(106) 블록은 C 매트릭스 행과 FV(111)의 상기 곱셈을 제어하는 적어도 하나의 C 매트릭스 행 아비터(1303); 및 상기 매트릭스 벡터 곱셈 연산을 구현하는 적어도 하나의 곱셈 & 덧셈(1304) 연산기를 포함한다.
본 발명의 목적을 충족시키기 위한 다목적 이미지 프로세싱(image processing; IP) 코어는 첨부된 도면에서 설명된다.
도 1은 외부 요소와 함께 FPGA의 IP 코어가 도시한다.
도 2는 비디오 및 패치 구조를 도시한다.
도 3은 기능 추출기의 흐름을 도시한다.
도 4는 패치 획득 프로세스의 구조이다.
도 5는 P 벡터의 구조이다.
도 6은 이진 PB 벡터의 구조이다.
도 7은 딕셔너리 D이다.
도 8은 거리 벡터 DV의 구조이다.
도 9는 픽셀 기능 벡터 PFV의 계산이다.
도 10은 기능 합산기의 구조이다.
도 11은 사분면의 구조이다.
도 12는 기능 벡터 FV의 계산이다.
도 13은 계층 라벨 CL의 계산이다.
본 발명의 바람직한 실시예에서, 인벤티브 다목적 이미지 프로세싱 코어(101)가 FPGA (100)에서 구현된다. 코어는 두 개의 메인 하위 블록; 이미지 분석기(102) 및 메모리 인터페이스(103)로 구성된다.
메모리 인터페이스(103)는 이미지 분석기(102) 및 메모리 인터페이스(103) 사이의 데이터 전송을 수행한다. 이미지 분석기(102)는 세 개의 하위 블록; 특징 추출(104) 블록; 특징 합산(105) 블록; 및 분류(106) 블록으로 구성된다. 이미지 분석기(102) 블록은 FPGA (100)의 외부로부터 다섯 타입의 입력; 비디오 프레임(107); 특징 딕셔너리(108); 분류 매트릭스(110); 특징 계산 요청(109); 및 희소성 곱셈기(114)을 수신한다. 비디오 프레임(107)은 두 개의 파라미터; 해상도 및 프레임 속도에 의해 정의될 수 있다. 해상도는 M(행) (201) N(열)(202)이고 프레임 속도는 1초에 캡쳐되는 프레임(203)의 수이다. 다른 입력; 특징 딕셔너리(108), 계층 매트릭스(110), 특징 계산 요청(109) 및 희소성 곱셈기(114)는 이어지는 부분에서 설명된다.
특징 추출(104) 블록은 패치 획득 프로세스를 시작한다. 이러한 프로세스는 비디오 프레임(107)으로부터 패치(204)의 선택되는 관련 좌표를 캡쳐한다. 관련 좌표를 캡쳐하기 위해, 들어오는 비디오 라인(비디오 프레임(107)의 행(201))은 라인 FIFO (401)으로 기록된다. 패치(204) 차원(K)에 따라 패치 획득(301) 프로세스는 K개의 라인 FIFO (401)를 이용한다. 각각의 들어오는 비디오 라인은 먼저 라인 FIFO (401)의 바닥에 기록되고, 다음 비디오 라인이 들어오는 경우, 이전의 라인은 라인 FIFO (401)의 바닥으로부터 판독되고 상위 라인 FIFO (401)에 기록된다. 이러한 단계는 모든 라인 FIFO (401)이 패치(204)를 구축하는 필요한 라인으로 채워질 때까지 지속된다. 모든 라인이 사용 가능한 경우, 다음 라인이 들어오고, 픽셀 값은 라인 FIFO (401)으로부터 판독된다. K 번의 판독 작동 후에, 패치는 추가의 작동을 준비한다. 라인 FIFO (401)로부터의 K+1 번의 판독은 다음 픽셀 패치를 수여한다. 이러한 단계는 모든 패치(204)가 라인을 통해 캡쳐될 때까지 지속된다. 라인 FIFO (401)으로부터의 패치 판독 동안, 새로운 라인은 상위 라인 FIFO (401)으로 이동하도록 지속된다. 이러한 이동은 비디오 프레임(107)을 통해 패치(204)의 하향 이동을 생성한다.
P 벡터(501)는 캡쳐되는 패치(204) 픽셀 값을 이용함으로써 구축(302)된다. 실제로, 이러한 구축 프로세스는 단순한 등록 할당이다. L1P1 (402)로부터 LKPK (403)까지 KxK 번의 등록이 있고, 모든 등록은 관련 픽셀 값을 유지한다. 등록의 비트 사이즈는 최대 가능 픽셀 값에 의해 결정된다.
P 벡터의 평균값(Pμ (602))을 계산하기 위해 패치(204)의 모든 픽셀 값이 추가되어야 하고 픽셀의 전체 수에 의해 분할되어야 한다. 추가 프로세스가 가산기에 의해 구현될 수 있고, 가산기의 입력 수는 FPGA 능력에 따라 달라질 수 있다. 가산기의 입력 수는 파이프라인 클락 레이턴시 및 이용되는 가산기의 수에 영향을 줄 수 있다. 모든 픽셀 값이 계산된 후에, 전체는 K*K에 의해 분할된다.
Pμ (602)를 계산한 후에 P 벡터(501)의 각각의 엔트리는 Pμ (602)와 비교되고, PB 벡터(603)를 구축하기 위해 이진화(304)된다. 이진화 단계는 현재의 가능한 FPGA에서 이러한 이미지 프로세싱 알고리즘을 구현하는 데 필수적이다. Pμ (602)보다 작은 값에서, "0"이 할당된다. 동일하거나 더 큰 값에서, "1"이 할당된다. 모든 값이 평균 값과 비교(601)된 후에, 이진 P(501) 벡터 PB(603)이 획득된다. PB(603)는 T(604)가 K*K와 동일한 경우, "1" 비트 벡터에 의한 T(604)이다.
이미지의 모든 패치(204)로부터 구축되는 모든 이진 벡터 PB(603)는 시각적 단어의 Z(703)개의 수를 가진 미리 계산된 딕셔너리를 이용하여 기능 벡터로 변환된다. 딕셔너리 D(701)는 Z(703) 비트 매트릭스에 의한 T(604)이다. D(701)의 엔티티는 이진 값; "1" 또는 "0"이다. D(701) 매트릭스(DC1 - DCZ (702))의 열은 FPGA (100)의 내부 레지스터에 등록된다. 딕셔너리는 PCI, VME 등과 같은 통신 인터페이스의 수단에 의해 FPGA로 로딩된다. 딕셔너리의 엔트리는 엔트리가 내부 레지스터에 저장된 후에 언제라도 업데이트될 수 있다.
비트 플리핑 (또는 해밍) 거리 계산(305)은 두 개의 백터: PB(603) 및 D(701)의 모든 열(DC1-DCZ (702)) 사이에서 유사성을 계산한다. PB(603)의 엔트리 및 DCX(702)가 동일한 경우, "0"으로 할당되고, 그렇지 않은 경우, "1"로 할당된다. 이러한 작용은 xor (801)에 의해 구현된다. xor (801) 동작 이후 "1"의 전체 수는 두 개의 이진 벡터 사이의 차이점 측정이다. DV(804)는 딕셔너리의 모든 시각화 단어(열(702))로 단일 PB(603) 벡터의 해밍 거리를 포함한다. DV(804)의 엔트리(805)는 "1"의 수를 유지하고, 따라서 상기 엔트리는 정수 값이고 PB(603) 또는 DCX (702)와 비교되는 경우 더 낮은 비트에 의해 표현될 수 있다. DV(804)는 Z(703) 비트 벡터에 의한 H(806)이다. H(806)은 스칼라 값 T(604)를 정의할 수 있는 최소 수의 비트이다.
DV (804) (DVμ)의 평균값은 Pμ (602)와 유사하게 계산된다. DV (804) (DVσ) (307)의 표준 편차를 계산하기 위해, DVμ는 DV (805)의 각각의 엔트리로부터 감해진다. 이러한 뺄셈의 제곱이 계산되고 모든 제곱이 합산된다. 다음으로 전체 값이 Z(703)에 의해 분할된다. 마지막으로, 제곱근이 계산되고, DVσ이 획득된다. 활성화 임계치 AT(901)이 식 1에 의해 계산(307)된다. 이러한 임계치는 특정한 값보다 큰 거리 값을 널리파잉(nullifying)하는 것을 경유하여 희소성 표현을 구축하도록 이용된다.
Figure pct00001
(1)
픽셀 특징 벡터(309)를 구축하기 위해 DV(804)의 각각의 엔트리는 AT(901)와 비교(902)된다. 엔트리(805)가 AT(901)보다 큰 경우, "0"을 PFV(904)의 관련된 엔트리로 할당한다. 결과는 Z 픽셀 특징 벡터 PFV (904)에 의한 "1"이다.
결과로서, 비디오 프레임(107)의 각각의 픽셀에서, Z(703)에 의한 비트 벡터(픽셀 특징 벡터 PFV (904))이 획득된다. 이러한 PFV(904)는 메모리 인터페이스(103)으로 보내져 외부 메모리(113)에 기록된다.
특징 계산 요청(109)은 특징 계산 요청 FIFO (1003)로 기록되고, 요청은 픽셀 좌표로서 기록된다. CPU는 두 개의 경계 픽셀(좌상단 및 우하단, 검은 점(1101))의 좌표를 송신하고, FPGA는 하위 영역의 남은(하얀 점(1102)) 좌표를 계산한다. 메인 아이디어는 영역을 네 개의 동일한 하위 영역; 사분면(1103, 1104, 1105, 1106)으로 나누는 것이고, 픽셀 특징 벡터(PFVs (904))를 모으고, 특징 벡터(FV (111))를 획득하기 위해 내부 특징 벡터를 연결시킨다.
픽셀 좌표에 따라, 내부 RAM(1004) 어드레스가 어드레스 계산기(1002) 블록에 의해 계산된다. 상기 블록은 RAM의 내용을 알고, 라인 좌표가 저장된다. 계산을 더 빠르게 하기 위해 PFV (904) 값이 외부 메모리(113)으로부터 판독되고, 내부 RAM으로 기록된다. RAM은 R x N (202) x Z (703) 비트의 데이터를 저장할 수 있다. R은 동시에 프로세싱될 수 있는 라인의 최대 수이다.
내부 벡터 계산기(100)은 필요한 PFVs (904)를 내부 RAM(1004)로부터 판독하여 내부 벡터(1201)을 계산하도록 하게 한다. 통합 벡터 IV (1201) 엔트리는 수평과 수직 차원 모두의 이전의 PFVs (904)의 모든 엔트리의 합이다. 예를 들어 IV11 (1201-11)는 PFV11 (904-11)와 동일하고, IV12 (1201-12)는 IV11 (1201-11) 및 PFV12 (904-12)의 합과 동일하고, IV21 (1201-21)는 PFV11 (904-11)와 PFV21 (904-21)의 합과 동일하다. 마지막 결과는 사분면 통합 벡터 IV22 (1201-22)이다. 모집 특성 동작은 IV22 (1201-22)와 IV11 (1201-11) 사이의 차이를 요구한다. 따라서, PFV11 (904-11)를 모두 "0"으로 획득하는 것은 동일하다. 모든 통합 벡터 IV22 (1201-22)는 차(difference)이고, QIV (1103-1)와 동일하다.
네 개의 사분면(Q1 (1103), Q2 (1104), Q3 (1105) and Q4 (1106))이 존재하기 때문에, 모든 사분면의 결과(1103-1, 1104-1, 1105-1 and 1106-1)는 연결되고 최종 특징 벡터 FV (1202)가 획득된다. FV (1202)는 G x S 비트 벡터이다. S는 사분면에 "1"을 저장할 수 있는 최소 비트 수이다. G는 4*Z (703)과 동일하다. 벡터는 FPGA의 내부 램에 저장된다. 이러한 특징 벡터(FV)는 경계 좌표에 의해 정의되는 이미지 패치를 나타내고, 분류 및 클러스터링 목적으로 이용될 수 있고, 메모리 전송을 통해 FPGA 또는 CPU에서 실행된다.
이미지 영역이 종료된 후, 즉 영역 내의 요구되는 좌표로 풀링하는 것이 종료된 경우에, 내부 RAM (1004)은 새로운 라인으로 업데이트되고, 새로운 풀링 계산이 시작된다. 이러한 프로세스는 어드레스 계산기(1002)의 도움으로 통합 벡터 계산기(1001)에 의해 제어된다.
분류기 블록(106)은 선형 분류 방법을 이용하여 계층 라벨과 유사한 벡터를 생성한다. 이는 FV (111)를 이용하여 계층 매트릭스 C (1301)의 매트릭스 벡터 곱셈을 수행한다. 계층 매트릭스 C(1301)는 특징 딕셔너리 D(701)처럼 FPGA에 로딩된다. 행 아비터(1303)는 FV 곱셈(111)을 위해 C (1301) 매트릭스 행 관리를 제어한다. C(1301) 매트릭스는 J (1302) x G x S 비트 매트릭스이다. 결과는 계층 라벨 CL (112) 벡터이다. CL(112)의 엔트리는 C (1301) 행과 FV (111)의 곱셈이다. CL(112)는 추가의 프로세싱, 분류, 검출 등을 위해 CPU로 송신된다.

Claims (19)

  1. 인벤티브 다목적 이미지 프로세싱 코어(101)에 있어서,
    적어도 하나의 이미지 분석기(102) 블록; 및
    적어도 하나의 메모리 인터페이스(103) 블록
    을 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  2. 제1항에 있어서,
    상기 이미지 분석기(102) 블록은
    적어도 하나의 특징 추출(104) 블록;
    적어도 하나의 특징 합산(105) 블록; 및
    적어도 하나의 분류(106) 블록
    을 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  3. 제1항에 있어서,
    상기 이미지 분석기(102) 블록은
    비디오 프레임(107);
    특징 딕셔너리(108);
    분류 매트릭스(110);
    특징 계산 요청(109); 및
    희소성 곱셈기(114)
    에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  4. 제1항에 있어서,
    상기 이미지 분석기(102) 블록은
    특징 벡터(111); 및
    분류 라벨(112)
    에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  5. 제2항에 있어서,
    상기 특징 추출(104) 블록은
    패치(310) 획득 프로세스;
    P 벡터(302) 구축 프로세스;
    P 벡터 평균값(303) 계산 프로세스;
    이진 PB 벡터(304) 구축 프로세스;
    딕셔너리(dictionary; D)와 함께 PB의 비트 플리핑 거리 벡터(distance vector; DV)(305) 계산 프로세스;
    DV의 평균값(306) 계산 프로세스;
    DV의 표준편차값(307) 계산 프로세스;
    DV의 활성화 임계치(activation threshold; AT)(308) 계산 프로세스; 및
    DV의 픽셀 특징 벡터(pixel feature vector; PFV)(309) 계산 프로세스
    의 하위 단계를 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  6. 제5항에 있어서,
    상기 패치 획득 프로세스는
    상기 각각의 새롭게 들어오는 비디오 라인을 바닥 라인 FIFO(401)에 기록하는 단계;
    상기 다음 비디오 라인이 오는 경우, 바닥 라인 FIFO(401)로부터 상기 이전의 비디오 라인을 판독하고 상위 라인 FIFO(401)에 기록하는 단계;
    모든 라인 FIFO (401)가 패치를 구축(204)하도록 상기 필요한 라인으로 채워질 때까지 상기 처음 두 단계를 지속하는 단계;
    모든 라인이 사용 가능한 경우, 상기 라인 FIFO(401)로부터 K번 판독하고 상기 패치를 획득(240)하는 단계;
    상기 라인 FIFO(401)로부터 상기 K+1의 판독을 이용하여 상기 다음 픽셀 패치를 획득하는 단계;
    비디오 라인을 통해 모든 패치가 획득될 때까지 상기 판독 작업을 지속하는 단계; 및
    패치(204)의 하향 이동을 생성하도록 상기 비디오 라인을 상위 라인 FIFO(401)로 이동시키는 단계
    를 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  7. 제5항에 있어서,
    특징 딕셔너리 D(701) 사이의 상기 거리 계산(305)을 위해 스칼라 P(501) 벡터 대신 이진 PB(603) 벡터를 이용하는 것에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  8. 제5항에 있어서,
    상기 거리 계산(305)을 위해 스칼라 특징 딕셔너리 대신 이진 특징 딕셔너리 D(701)를 이용하는 것에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  9. 제5항에 있어서,
    상기 시나리오에 따라 상기 연산 동안 다른 특징 사전(D)(701)을 로딩하는 상기 가능성을 가지는 것에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  10. 제5항에 있어서,
    상기 비트 플리핑 거리 계산(305) 프로세스는
    xor(801) 연산을 이용함으로써 PB(603) 벡터를 특징 사전 D(701)의 모든 열(702)과 비교하는 단계;
    xor 연산(801) 이후에 "1"과 동일한 엔트리의 상기 수를 계산하는 단계(802); 및
    상기 거리 벡터 DV(804)를 구축하는 단계(803)
    를 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  11. 제10항에 있어서,
    상기 거리 벡터 DV(804)는 모든 xor 연산(801)의 결과 대신에 "1"과 동일한 엔트리의 상기 수만을 유지하는 것에 의해 특징지어지는 단계.
  12. 제5항에 있어서,
    상기 픽셀 특징 벡터(PFV)(309) 계산 프로세스는
    DV(805)의 상기 엔트리를 AT(901)와 비교하는 단계;
    DV(805)의 엔트리가 AT(901)보다 더 큰 경우, "0"을 할당하는 단계;
    DV(805)의 엔트리가 AT(901)보다 더 작은 경우, "1"을 할당하는 단계; 및
    픽셀 특징 벡터(PFV)(309)를 구축하는 단계(904)
    를 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  13. 제12항에 있어서,
    상기 픽셀 특징 벡터(PFV)(904)는 AT 및 DV 엔트리 사이의 상기 비교의 상기 결과를 2진 값으로서 유지하는 것에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  14. 제2항에 있어서,
    상기 특징 합산(105) 블록은
    상기 통합 벡터 IV(1201)를 계산하는 적어도 하나의 통합 벡터 계산기(1001);
    상기 특징 계산 요청(109)에 따라 상기 내부 RAM(1004)을 계산하는 적어도 하나의 어드레스 계산기(1002);
    상기 특징 계산 요청(109)을 저장하는 적어도 하나의 특징 계산 요청 FIFO(1003); 및
    상기 PFV(309)를 저장하는 적어도 하나의 내부 RAM(1004)
    의 하위 블록을 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  15. 제14항에 있어서,
    상기 특징 합산(105) 블록은 영역을 네 개의 동일한 하위 영역; 사분면(1103, 1104, 1105, 1106)으로 분할하도록 상기 특징 계산 요청(109)의 경계 좌표(1101)를 픽셀 값으로서 수신하고, 상기 다른 좌표(1102)를 계산하는 것에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  16. 제14항에 있어서,
    상기 특징 합산(105) 블록은 상기 계산을 더 빠르게 하기 위해 외부 메모리(113)으로부터 상기 PFV(309)를 판독하고 내부 RAM(1004)을 기록하는 것에 의해 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  17. 제14항에 있어서,
    상기 통합 벡터 계산기(1001)의 하위 블록은
    내부 RAM(1004)으로부터 상기 PFV(309)를 판독하는 단계; 및
    수평 및 수직 차원 모두에서 이전 PFV(904)의 상기 모든 엔트리를 추가함으로써 상기 사분면 통합 벡터 QIV(1103-1)를 계산하는 단계
    를 필수적으로 더 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
  18. 제17항에 있어서,
    사분면 통합 벡터 및 제1 PVF 사이의 상기 뺄셈 연산을 생략하도록 상기 제1 PVF(309)의 값을 모두 "0"으로서 획득하는 것에 특징지어지는 인벤티브 다목적 이미지 프로세싱 코어(101).
  19. 제2항에 있어서,
    분류(106) 블록은
    C 매트릭스 행과 FV(111)의 상기 곱셈을 제어하는 적어도 하나의 C 매트릭스 행 아비터(1303); 및
    상기 매트릭스 벡터 곱셈 연산을 구현하는 적어도 하나의 곱셈 & 덧셈(1304) 연산기
    의 하위 블록을 필수적으로 포함하는 인벤티브 다목적 이미지 프로세싱 코어(101).
KR1020157033283A 2013-09-17 2013-09-17 다목적 이미지 프로세싱 코어 KR101864000B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2013/058604 WO2015040450A1 (en) 2013-09-17 2013-09-17 Multi-purpose image processing core

Publications (2)

Publication Number Publication Date
KR20160003020A true KR20160003020A (ko) 2016-01-08
KR101864000B1 KR101864000B1 (ko) 2018-07-05

Family

ID=49641805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157033283A KR101864000B1 (ko) 2013-09-17 2013-09-17 다목적 이미지 프로세싱 코어

Country Status (2)

Country Link
KR (1) KR101864000B1 (ko)
WO (1) WO2015040450A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525803A (zh) * 2017-09-18 2019-03-26 北京深鉴智能科技有限公司 基于fpga和人工智能的视频结构化处理装置和方法
WO2020027519A1 (ko) * 2018-08-02 2020-02-06 삼성전자 주식회사 영상 처리 장치 및 그 동작방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9934043B2 (en) 2013-08-08 2018-04-03 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing computational imaging pipeline
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
CN107992100B (zh) * 2017-12-13 2021-01-15 中国科学院长春光学精密机械与物理研究所 基于可编程逻辑阵列的高帧频图像跟踪方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101162605B1 (ko) * 2011-03-21 2012-07-05 인하대학교 산학협력단 씨티 이미지에서의 텍스처 특징 추출방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525803A (zh) * 2017-09-18 2019-03-26 北京深鉴智能科技有限公司 基于fpga和人工智能的视频结构化处理装置和方法
CN109525803B (zh) * 2017-09-18 2023-09-15 赛灵思电子科技(北京)有限公司 基于fpga和人工智能的视频结构化处理装置和方法
WO2020027519A1 (ko) * 2018-08-02 2020-02-06 삼성전자 주식회사 영상 처리 장치 및 그 동작방법
US11961203B2 (en) 2018-08-02 2024-04-16 Samsung Electronics Co., Ltd. Image processing device and operation method therefor

Also Published As

Publication number Publication date
WO2015040450A1 (en) 2015-03-26
KR101864000B1 (ko) 2018-07-05

Similar Documents

Publication Publication Date Title
Zhang et al. Latentgnn: Learning efficient non-local relations for visual recognition
Lu et al. Monocular semantic occupancy grid mapping with convolutional variational encoder–decoder networks
Milioto et al. Rangenet++: Fast and accurate lidar semantic segmentation
Xie et al. Multilevel cloud detection in remote sensing images based on deep learning
Ye et al. 3d recurrent neural networks with context fusion for point cloud semantic segmentation
Yin et al. Virtual normal: Enforcing geometric constraints for accurate and robust depth prediction
KR101864000B1 (ko) 다목적 이미지 프로세싱 코어
CN107633226B (zh) 一种人体动作跟踪特征处理方法
CN111797983A (zh) 一种神经网络构建方法以及装置
CN114255238A (zh) 一种融合图像特征的三维点云场景分割方法及系统
CN110222718B (zh) 图像处理的方法及装置
CN110991444B (zh) 面向复杂场景的车牌识别方法及装置
CN109063549B (zh) 基于深度神经网络的高分辨率航拍视频运动目标检测方法
CN114638954B (zh) 点云分割模型的训练方法、点云数据分割方法及相关装置
CN113537180B (zh) 树障的识别方法、装置、计算机设备和存储介质
CN110135237B (zh) 一种手势识别方法
Zhou et al. Octr: Octree-based transformer for 3d object detection
Zhong et al. T-net: Effective permutation-equivariant network for two-view correspondence learning
Hu et al. A grasps-generation-and-selection convolutional neural network for a digital twin of intelligent robotic grasping
KR20180123810A (ko) X-Ray 의료 영상 판독을 위한 데이터 심화학습 처리 기술 및 그 방법
Ahmad et al. 3D capsule networks for object classification from 3D model data
Zhang et al. Sequential 3D Human Pose Estimation Using Adaptive Point Cloud Sampling Strategy.
CN114066987A (zh) 一种相机位姿估计方法、装置、设备及存储介质
CN111444923A (zh) 自然场景下图像语义分割方法和装置
Pavlov et al. Detection and recognition of objects on aerial photographs using convolutional neural networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant