Title: A 58.6mW Real-Time Programmable Object Detector with Multi-Scale Multi-Object Support Using Deformable Parts Model on 1920x1080 Video at 30fps
ArXiv ID: 1607.08635
발행일: 2016-08-01
저자: Amr Suleiman, Zhengdong Zhang, Vivienne Sze
📝 초록 (Abstract)
본 논문은 Deformable Parts Model (DPM)을 기반으로 한 객체 감지 가속기를 제시하며, 이는 1920x1080 해상도의 HD 비디오를 초당 30프레임으로 처리하는 데 사용됩니다. 저전력 및 실시간 처리가 필요한 임베디드 애플리케이션에서 객체 감지는 필수적인 요소로, 특히 자율 주행 시스템에서는 낮은 지연 시간과 에너지 소비량의 최적화가 중요합니다. 이 논문에서는 분류 절감 및 벡터 양자화를 통해 DPM의 계산 복잡성을 줄이는 방법을 제시하며, 이를 통해 58.6mW의 저전력으로 HD 비디오를 실시간으로 처리할 수 있는 가속기를 설계했습니다.
💡 논문 핵심 해설 (Deep Analysis)
본 논문은 Deformable Parts Model (DPM)을 기반으로 한 객체 감지 가속기의 설계와 구현에 중점을 두고 있습니다. DPM은 물체를 다양한 자세로 인식할 수 있는 능력을 제공하며, 이는 경직된 템플릿 기반 감지보다 높은 정확도를 보장합니다. 그러나 이러한 높은 정확도는 계산 복잡성을 증가시키고, 특히 다중 규모 및 다중 객체 감지는 매우 어려운 과제로 만들어집니다.
논문의 핵심 기술 중 하나는 분류 절감입니다. 이 방법을 통해 뿌리 점수가 프로그래밍된 임계값 아래일 경우, 부분 분류를 줄여 효율성을 크게 향상시킵니다. 이를 통해 97%의 부분 분류가 절감되며, 이는 뿌리 후보 중에서 33배 감소하는 효과를 가져옵니다.
또한 벡터 양자화(Vector Quantization, VQ) 기법을 사용하여 특징 저장 크기를 크게 줄이고, 이를 통해 온칩 SRAM에 적합한 크기로 만들며, 오프칩 저장의 필요성을 제거합니다. 이는 HOG 특징 벡터를 15배 감소시키고, 탈양자화 과정을 단순화하여 처리 속도를 향상시킵니다.
특히, 논문은 분류 SVM 가중치가 희소한 새로운 공간으로 특징을 투영하는 방법을 제안합니다. 이 기법을 통해 제로 곱셈을 건너뛰고 비영 가중치만 온칩에 저장함으로써, 전체 분류 작업의 계산 복잡성을 크게 줄입니다.
구현 측면에서, 칩은 65nm CMOS 기술로 제작되었으며, HD 해상도의 실시간 처리를 위해 62.5MHz와 0.77V에서 작동하며 58.6mW의 전력을 소비합니다. 이는 피크 성능 1,168 GOPS/W와 에너지 효율성 0.94nJ/픽셀을 제공하는 것으로 나타났습니다.
평가 결과에 따르면, 본 논문에서 제시된 가속기는 PASCAL VOC 2007 데이터셋에서 4.8%의 감지 정확도 하락만으로 전체 전력 소비를 5배 감소시키는 데 성공했습니다. 이는 기존 방법에 비해 픽셀당 에너지 소비가 30% 적은 것으로 나타났습니다.
이 논문은 객체 감지를 위한 저전력 및 실시간 처리의 중요성을 강조하며, 이를 위해 분류 절감과 벡터 양자화를 포함한 다양한 기법을 제시함으로써, 에너지 효율성과 정확도 사이에서 균형을 맞추는 데 성공했습니다. 이러한 접근 방식은 임베디드 시스템 및 자율 주행 등 다양한 분야에서의 객체 감지에 중요한 의미를 갖습니다.
📄 논문 본문 발췌 (Excerpt)
## 객체 감지 가속기 설계: 효율성 향상을 위한 분류 절감 및 벡터 양자화
객체 감지는 저전력 및 실시간 처리가 필요한 다양한 임베디드 애플리케이션에 필수적인 요소입니다. 예를 들어, 자율 주행 시스템에서 빠른 물체 접근에 대한 신속한 반응을 위해 낮은 지연 시간과 HD 이미지가 중요하며, 배터리 및 열 제한으로 인해 에너지 소비량 감소도 필수적입니다. 객체 감지는 분류/인식뿐만 아니라 위치 정보 획득을 포함하며, 이는 사전 학습된 모델의 창을 이미지 위로 슬라이딩하여 달성됩니다. 다중 규모 감지를 위해서는 이미지의 계층적 피라미드에 창이 이동합니다. HD 이미지의 경우 이미지가 100배 이상 확장될 수 있어 다중 규모 감지는 매우 어려운 과제입니다. 높은 계산 복잡성으로 인해 객체 감지 처리를 위한 빠른 하드웨어 구현이 필요합니다 [1].
본 논문에서는 DPM [2]을 기반으로 한 완전한 객체 감지 가속기를 제시합니다. 이 모델은 뿌리와 8개의 부분으로 구성되며, Fig. 1에 표시된 바와 같습니다. DPM은 경직 템플릿 기반 감지보다 두 배의 감지 정확도를 제공합니다. 8개의 부분은 객체가 다양한 자세로 감지될 수 있도록 변형 가능성을 담당하며, 단일 모델을 통해 다양한 자세의 물체를 감지하고 감지 신뢰도를 높입니다. 그러나 이러한 높은 정확도는 DPM 분류에 35배 더 많은 곱셈 연산을 필요로 하여 (DPM 분류는 단일 감지기의 전력 소비의 80%를 차지), 다중 객체 감지를 어려운 과제로 만듭니다. [3]에서는 소프트웨어 기반 DPM 객체 감지기를 소개하며, 이를 통해 500x500 이미지를 초당 30프레임으로 감지할 수 있지만, 강력한 Xeon 6코어 프로세서와 32GB 메모리가 필요합니다. 본 연구에서는 두 가지 주요 기법을 통해 분류 오버헤드를 크게 감소시킵니다:
분류 절감: 벡터 양자화를 이용한 선택적 부분 처리.
스파르스 곱셈: 특징 기반 투영.
건축 개요
Fig. 2는 우리 감지기의 블록 다이어그램을 보여줍니다. 이 아키텍처에는 호그(HOG) 특징 피라미드 생성 단위와 지원 벡터 머신 (SVM) 분류 엔진이 포함되어 있습니다. 4 옥타브, 각 옥타브당 3개의 스케일 등 총 12개의 스케일을 가진 특징 피라미드를 선택하여 감지 정확도와 계산 복잡성 사이의 균형을 맞추었습니다. 이 피라미드에는 87K 개의 특징 벡터가 포함되어 있으며, 이는 일반적인 HD 이미지의 2.7배에 해당합니다. 처리량을 충족시키기 위해 세 개의 병렬 히스토리 및 정규화 블록이 피라미드를 생성합니다. 두 개의 분류 엔진은 생성된 특징을 공유하여 동시에 두 가지 다른 객체 클래스를 감지합니다. 뿌리와 부분 SVM 가중치는 최대 템플릿 크기 128x128 픽셀까지 프로그래밍될 수 있습니다. 이 큰 크기는 다양한 비율의 다양한 객체 클래스 감지에 유연성을 제공합니다. 각 SVM 엔진에는 뿌리 분류기(뿌리 감지용), 절감 블록(후보 뿌리 선택용) 및 8개의 부분 처리 엔진(부분 감지용)이 포함되어 있습니다. 각 부분 엔진의 로컬 특징 저장은 병렬 처리를 가능하게 하고, 특징 저장 읽기 대역폭을 줄이며, 7배의 속도를 향상시킵니다. 마지막으로, Deform 블록은 각 부분에 대해 5x5 검색 영역에서 최대 점수를 찾는 데 2.2배의 속도를 높이는 거친-정밀 기법을 사용합니다.
분류 절감 및 벡터 양자화
초당 260만 개의 특징을 생성하는 환경에서 뿌리 분류는 [3]과 유사하게 온더플라이 처리를 사용하여 최소한의 온칩 저장 공간을 확보합니다. 부분 분류에 동일한 접근 방식을 사용하면 큰 축적 SRAM (최소 800KB의 하나의 분류 엔진)이 필요합니다. 그러나 뿌리 점수가 매우 낮으면 객체를 부분 특징에 기반하여 감지할 가능성도 낮다는 관찰이 이루어졌습니다. 부분 분류는 뿌리 점수가 프로그래밍된 임계값 아래일 경우 절감됩니다. 이를 통해 97%의 부분 분류를 절감 (뿌리 후보 중 33배 감소)하여 효율성을 높입니다.
이미지 객체 감지 가속기 설계 및 구현
HOG 특징은 부분 처리 엔진에서 재사용하기 위해 라인 버퍼에 저장되어 재계산을 피합니다 (그림 3). VQ는 특징 라인 버퍼의 쓰기 대역폭을 감소시킵니다 (44.4MB/s에서 2.5MB/s), 온칩 SRAM에 적합한 크기로 만들고 오프칩 저장 필요성을 제거합니다. 세 개의 병렬 VQ 엔진이 처리량을 충족시키기 위해 사용됩니다. 공유 SRAM에 256개의 프로그래밍 가능한 클러스터 중심이 저장되어 메모리 읽기 대역폭을 최소화합니다. 143비트 HOG 특징 벡터 (각 13차원, 11비트)는 벡터당 8비트로 양자화되어 전체 특징 저장 크기를 15배 감소시킵니다. 탈양자화는 단순히 특징 SRAM에서 메모리 읽기입니다.
각 분류기의 비용을 더 줄이기 위해, 특징은 분류 SVM 가중치가 희소한 새로운 공간으로 투영됩니다. 제로 곱셈은 건너뛰고 비영 가중치만 온칩에 저장됩니다. 그림 4는 투영 후 제로 가중치의 비율이 7%에서 56%로 증가함을 보여줍니다. 프로그래밍 가능한 기초 벡터는 가중치 중 적어도 7개의 차원이 제로임을 보장하도록 설계되었습니다. 제로 위치를 표시하기 위해 13비트 플래그가 저장되어 SVM 가중치 SRAM 크기와 읽기 대역폭을 총 34% 감소시킵니다. 기초 투영은 곱셈 수를 2배 감소시키고 전체 분류 힘을 43% 감소시킵니다.
평가
우리의 가속기의 정확도는 널리 사용되는 이미지 데이터셋인 PASCAL VOC 2007 [5]에서 분석되었습니다. 이 데이터셋은 9,963개의 이미지에 20가지 다른 객체 클래스 (항공기, 자전거, 새 등)를 포함하고 있습니다. 97%의 가지치기, VQ 및 특징 기초 투영, 10배 적은 분류 곱셈 및 3.6배 작은 메모리 크기를 달성하면서 전체 전력 소비를 5배 감소시켰고, 객체 감지 정확도는 단지 4.8% 하락했습니다.
구현 및 테스트
칩은 65nm CMOS 기술로 구현되었습니다. 실시간으로 HD 이미지를 30fps 처리할 수 있는 것으로 테스트되었으며, 62.5MHz와 0.77V에서 58.6mW의 전력을 소비하며 작동합니다. 이는 피크 성능 1,168 GOPS/W와 에너지 효율성 0.94nJ/픽셀을 제공합니다. 그림 5는 칩 사진과 사양을 보여주며, 처리량과 에너지 소비에 따른 스윕을 포함합니다. 1.11V에서 칩은 최대 60fps로 HD 이미지를 처리하며 216.5mW의 전력을 소비합니다. 그림 6은 다양한 테스트 구성에 따른 전력 분해도를 보여줍니다. DPM 분류 전력은 전체 전력의 단지 15%로 크게 감소했습니다. 특징 공유를 통해 DPM을 사용하여 객체 클래스를 추가하면 총 전력 소비가 단지 19% 증가합니다. 그림 6은 또한 다중 객체 감지 (차량 및 보행자)의 칩 출력을 보여줍니다. [6]의 감지기 가속기와 비교하여, 우리의 칩은 다중 스케일 감지와 객체당 8개의 변형 부품 감지를 통해 더 높은 감지 정확도를 달성하며 픽셀당 에너지 소비는 30% 적습니다.