이 연구 논문은 주로 자율주행 응용을 위한 현장 프로그래밍 가능 게이트 어레이 하드웨어에서 실시간 보행자 탐지 알고리즘의 구현을 시연합니다. 이 알고리즘은 방향 경배 히스토그램(HoG)과 지지 벡터 기계(SVM) 분류기를 결합하여, 속도, 전력 소비, 자원 활용 측면에서 효율성을 보여줍니다.
Method Article
June 12th, 2026
이 연구 논문은 주로 자율주행 응용을 위한 현장 프로그래밍 가능 게이트 어레이 하드웨어에서 실시간 보행자 탐지 알고리즘의 구현을 시연합니다. 이 알고리즘은 방향 경배 히스토그램(HoG)과 지지 벡터 기계(SVM) 분류기를 결합하여, 속도, 전력 소비, 자원 활용 측면에서 효율성을 보여줍니다.
자율주행은 교통사고로 인한 사망자 수가 증가하는 문제를 해결하는 유망한 방법을 제공합니다. 자율주행차는 많은 기능을 포함하지만, 보행자 감지 능력은 감시, 사람 추적, 모니터링과 같은 다양한 실시간 상황에서 매우 중요하고 도전적이며 관련이 있습니다. 보행자를 정확히 식별하는 것은 어렵습니다. 왜냐하면 보행자는 다양한 형태, 위치, 자세로 나타날 수 있기 때문입니다. 다양한 옷을 입고 때로는 부분적으로 숨거나 주변 물체와 섞여 있을 수 있습니다. 이 논문은 인기 있는 하드웨어 플랫폼인 필드 프로그래머블 게이트 어레이(FPGA), Ultra 96 v2를 사용하여 자율주행차의 보행자 실시간 탐지에 초점을 맞추고 있습니다. 이 연구는 방향성 기울기 히스토그램(HOG)과 지지 벡터 기계(SVM) 분류기를 결합하여 FPGA 보드 내 개인을 인식하는 보행자 탐지 방법을 구현했으며, 고급 합성(HLS) 도구를 활용합니다. 시스템의 효과는 정지 이미지와 라이브 비디오 모두에서 테스트되었습니다. 결과는 Ultra 96 v2와 같은 첨단 FPGA 보드가 성능 지표를 크게 향상시킨다는 것을 보여줍니다. 이 시스템은 150 MHz의 클럭 주파수로 작동하며, 사용 가능한 자원의 절반 미만을 사용하고 약 2.5W의 전력을 소비합니다. 또한, 시스템은 보행자 탐지 정확도를 약 95%에 보고하며, 정확도(78.6%), 리콜(88.3%), F1 점수(83.1%) 등 다른 효율적인 탐지 평가 지표도 보고합니다. 요약하자면, 개발된 시스템은 실시간으로 보행자를 감지할 수 있으며, 스마트하고 안전한 교통 환경 개발을 크게 향상시킬 잠재력을 가지고 있습니다.
도시 개발과 스마트 시티의 등장은 전 세계적으로 관심 있는 주제입니다. 모든 국가는 자신들의 도시가 안전하고 쾌적하게 지어질 수 있도록 발전하기 위해 노력하고 있습니다. 하지만 현재 상황에서는 인구가 증가하고 도로 혼잡이 심화됨에 따라 운전 과실과 시야 저하로 인한 교통사고 사망률이 급격히 증가하고 있습니다. 이러한 문제에 대한 유망한 해결책은 전 세계적으로 자율주행차의 등장으로,이는 혁신을 촉진했으며 연구자들은 승객들이 걱정 없이 편안히 쉴 수 있도록 완전한 자율주행 차량 개발을 위해 노력하고 있습니다. 자율주행차 개발의 필요성은 경험 많은 운전자조차도 악천후로 인한 환경 인식 장애, 스트레스, 딜레마, 피로, 어려움을 겪을 수 있으며, 이러한 문제들이 도로 사고로 이어질 수 있기 때문입니다. 자율주행차는 여행 중 사고를 피하고, 엔진 자원 사용을 최적화하며, 교통법규를 준수하도록 설계되어 교통 편성을 확실히 향상시킬 것입니다. 자율주행차는 여러 기능과 센서, 기능을 갖추고 있어 주변을 매우 정밀하게 감지하여 충돌이나 사고를 피할 수 있습니다. 따라서 이들은 교통을안전하고 보안적으로 만드는 유망한 솔루션으로 떠올랐습니다.
자율주행차에 통합된 모든 기능 중 가장 중요한 것 중 하나는 보행자 감지입니다. 강력한 보행자 감지 시스템은 도로 사고 사망자 수를 크게 줄이는 데 도움이 될 수 있습니다. 사고 피해자의 대다수가 보행자이기 때문입니다. 보행자 탐지는 도로 위의 사람을 식별하고 충돌을 피하는 것을 포함합니다. 이 기능은 자율주행차뿐만 아니라 군중 모니터링, 사람 식별,9·10·11 추적 등 다양한 응용 분야에도 유용합니다. 이 탐지 과정의 핵심은 탐지의 속도와 정확성입니다. 보행자를 정확하고 신속하게 감지하여 대응 시간을 최소화하는 것이 매우 중요합니다. 보행자 탐지가 엄청난 도전 과제를 제기합니다. 도로 위의 보행자는 어떤 옷차림, 외모, 자세도 상관없으며, 악천후나 폐쇄로 인해 보이지 않을 수 있습니다.10, 11, 12, 13, 14. 더불어, 보행자가 규칙을 직접 지키지 않을 수도 있고, 인간 본성을 통제할 수 없으므로, 최선의 방법은 차량에 잘못된 행동을 처리할 수 있는 지능을 갖추어 사망을 피하는 것입니다. 본 연구의 전체 진행과 보행자 감지 하드웨어 구현의 동기는 아래 그림 1에서 쉽게 이해할 수 있습니다. 그림 1은 보행자 감지의 필요성, 다양한 응용 분야, 관련 과제, 그리고 FPGA에 제공된 이점을 활용하기 위한 구현 과정을 설명합니다.

그림 1: 보행자 탐지. 보행자 감지의 필요성, 보행자 감지의 주요 응용 분야, 보행자 감지의 도전 과제, 그리고 FPGA 보드에 보행자 감지의 구현 흐름이 포함됩니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
도로 위 보행자를 식별하기 위해 수많은 알고리즘이 존재합니다. 이 전체 작업은 주로 두 가지 주요 하위 작업으로 나눌 수 있습니다: 초기 단계는 입력 이미지에서 특징을 추출하고, 중요한 특징만 유지하고 관련 정보를 전달하는 특징만 유지하며, 중복된 특징은 무시하는 것입니다. 이미지 속 인간이나 보행자를 효과적으로 인식하기 위해서는 이러한 특징들이 장면 내 인간의 존재를 나타내는 것이 매우 중요합니다.13, 14. 이 추출 후에는 특징을 분류기에 보내 식별된 특징이 인간인지 판단해야 합니다. 따라서 알고리즘은 특징 추출 및 설명 단계를 거쳐 분류 단계를 거쳐 입력 장면에서 보행자의 존재를 결정해야 합니다. 이 목적을 위한 다양한 알고리즘이 존재합니다. 그러나 지금까지 가장 널리 받아들여지는 보행자 탐지 방법은 방향 경배 히스토그램(HoG)과 지지 벡터 기계(SVM) 분류기 12,13,14,15의 조합입니다. 수많은 소프트웨어 발전 사례가 존재하지만, 궁극적인 목표는 구현을 호환 가능한 하드웨어 플랫폼으로 이식하여 애플리케이션 시스템에 통합하여 실시간으로 사용하는 것입니다. 따라서 현재는 하드웨어 실현에 중점을 두고 있습니다. 따라서 적절한 하드웨어가 장착된 카메라를 차량에 배치하고 도로 위 보행자를 식별할 수 있는 보행자 감지 시스템의 적절한 하드웨어 구현을 개발해야 한다고 할 수 있습니다. 이러한 구현에 적합한 하드웨어를 고려할 때, 가장 일반적으로 사용되는 옵션 중 하나는 설계 시간 단축, 확장성, 수정 용이성, 재구성 가능성, 에너지 및 전력 소비 감소 등 다양한 장점을 가진 현장 프로그래머블 게이트 어레이(FPGA)입니다.15, 16, 17, 18, 19, 20, 21,22살.
FPGA 보드는 꾸준히 발전해 왔으며, 이제는 기본 이미지 처리부터 객체 감지, 증강현실, 딥러닝에 이르기까지 복잡하고 첨단 컴퓨터 비전 응용 분야에 널리 사용되고 있습니다20, 21, 22. 현재 여러 고성능 FPGA 보드는 이러한 복잡한 응용에 필요한 광범위한 처리를 수용할 수 있는 뛰어난 아키텍처 기능을 갖추고 있습니다. 보행자 감지와 같은 자율주행차의 고급 기능이 이러한 하드웨어 플랫폼에 구현된다면, 이러한 플랫폼은 성능 분석을 위한 빠른 프로토타입 개발에 매우 유용할 수 있으며, 최적화 후 구현된 알고리즘을 실제 집적회로로 전환하여 시스템에 통합할 수 있습니다.
10년 넘게 다양한 FPGA 플랫폼에서 HoG와 SVM 방법을 이용한 보행자 감지 구현에 관한 중요한 논문들이 있습니다. 표 1은 2015년부터 2025년까지 15,16,17,18,19,20,21,22,23,24 등 주요 요소에 중점을 둔 이 분야의 기사들을 요약합니다. 이미지 해상도, 처리량, 프레임 초당 프레임(FPS), 분류기 유형, 주요 하이라이트 또는 기여 종이.
| 참고문헌 | FPGA 플랫폼 | 이미지 해상도 | 분류기 | 주요 하이라이트 / 기여 |
| 15 | 자일링스 징크 | 640×480 | 아다부스트 | 실시간 FPGA 구현; 자원 효율적; 최적화를 위해 이진 화를 사용한다; 탐지 정확도가 좋습니다. |
| 16 | 테라식의 DE1-SOC 보드 | 640×480 | SVM | 고성능 HOG 추출기; SVM을 통합하고; 단일 스케일 탐지; 저지연 파이프라인. |
| 17 | 알테라 DE2-115 | 640×480 | 아다부스트 | 여러 관점에서 성과를 평가합니다; HOG+AdaBoost의 FPGA 구현; 실시간 보행자 탐지. |
| 18 | 인텔 스트라틱스 V | 640×480 | SVM | 다중 스케일 보행자 감지; FPGA 친화적인 HOG+SVM 파이프라인; 정확성과 하드웨어 효율성 간의 절충 관계를 강조합니다. |
| 19 | Zynq 울트라스케일+ MPSoC | 3840×2160 | SVM | 실시간 UHD 처리; 파이프라인 HOG+SVM; SoC FPGA 구현; 고정점 최적화; 확장 가능한 아키텍처입니다. |
| 20 | 명시되지 않음 | 명시되지 않음 | SVM | >95% 탐지 정확도를 달성; 실시간 FPGA 구현; 병렬성을 활용하고; 보행자 감지를 위한 상세한 HOG+SVM FPGA 설계. |
| 21 | Zync 7000 FPGA | 1920×1080 | SVM | HOG+SVM을 위한 고처리량 스트림 아키텍처; HD 해상도 지원; FPGA 가속을 위한 효율적인 파이프라인. |
| 22 | 울트라96 (1번째 버전) | 240×320 | SVM | HLS를 이용한 FPGA 구현; 빨간 신호 감지; 891개 영역에서 확률을 계산하며; 지연 시간은 153,838에서 19 사이클 사이입니다. |
| 23 | 자일링스 Zynq-7000 FPGA | 640 × 480 | HOG + SVM | FPGA에서 HOG-SVM을 사용해 보행자 감지를 구현하여, CPU 처리 대비 전력 소비를 줄이고 실시간 성능을 달성했습니다. 임베디드 비전 응용에 적합한 최적화된 특징 추출 파이프라인을 시연했습니다. |
| 24 | 자일링스 버텍스-6 FPGA | 640 × 480 | 고정점 물체 검출기(하르와 유사한 특징) | 고정소수점 연술을 이용한 고처리량 FPGA 객체 검출 가속을 제안하여 계산 비용을 줄이면서도 정확도를 유지합니다. CPU 구현 대비 15× 속도 향상과 효율적인 하드웨어 자원 활용을 보여주었습니다. |
표 1: FPGA에서 보행자 감지 연구를 기반으로 한 문헌 고찰 (2015–2025).
표 1은 보행자 탐지 분야에서 방대한 문헌이 존재했으며, 하드웨어 구현이 연구자들의 관심 분야임을 요약합니다. 또한 보행자 탐지 작업을 위한 합성곱 신경망(CNN) 기반 검출기(YOLO), 트랜스포머 기반 아키텍처 등과 같은 고급 딥러닝 및 머신러닝 기법이 존재한다는 점도 분명합니다. 정확도 면에서는 전통적인 HoG 알고리즘보다 성능이 우수하지만, 하드웨어 구현을 고려하면 고급 알고리즘은 복잡한 알고리즘 때문에 막대한 자원 활용을 초래합니다.23,24는 다른 성능 매개변수에도 영향을 미칠 수 있고, 복잡성이 추가되어 전통적인 HoG 알고리즘의 경우 속도가 약간 더 우수하다는 점도 관찰되었습니다24, 25. 또한 고급 기술들이 하드웨어24,26에 구현될 때 더 많은 전력을 소비한다는 점도 관찰되었습니다. 따라서 본 논문에서 구현된 연구의 목적은 FPGA 하드웨어에서 전통적인 HoG 및 SVM 프레임워크를 사용하여 보행자 검출을 수행하고, 실시간 임베딩을 위해 정확도, 속도, 자원, 전력 측면에서 유리한 균형을 달성하는 것입니다. 표 1에서 볼 수 있듯이, HoG 및 SVM 기반 연구를 분석할 때, 최근에 도입된 Zynq UltraScale+ MPSoC(다중 프로세서 시스템 온 칩) 기반 FPGA 개발 보드27을 활용하여 이 보드들의 성능을 탐구하는 논문이 제한적으로 존재한다는 점이 분명합니다. 이 보드들은 아키텍처 관점에서 진화해 왔습니다. 그리고 고급 실시간 컴퓨터 비전 응용 구현 측면에서 큰 잠재력을 제공합니다. FPGA 보드에서 보행자 감지 시스템 전체를 실시간으로 구현한 제한된 출판물이 있습니다. 하지만 중간 과제의 효율적인 구현이나 개선에 집중해 왔습니다. 더불어, 대부분의 구현은 하드웨어 설명 언어를 사용하여 FPGA 보드 위에 전체 시스템을 구현하는 데 기반합니다. 고수준 합성(HLS) 도구의 이점을 활용해 설계 과정을 가속화한 사람은 거의 없습니다. 이 논문은 자율주행 애플리케이션에 전용된 FPGA 보드에서 실시간 보행자 감지의 설계 및 구현을 시연합니다. 이 논문은 정지 이미지, 비디오 또는 실제 카메라 입력에서 보행자 탐지를 목적으로 HoG와 SVM 프레임워크를 활용합니다. 사용되는 하드웨어는 최첨단이자 최근에 출시된 FPGA 보드인 Ultra96 v2로, 컴퓨터 비전, 이미지 처리, 머신러닝, 엣지 컴퓨팅 등 강력한 플랫폼인 고급 FPGA 아키텍처입니다.24. Ultra96 v2는 Arm 기반 AMD Xilinx Zynq UltraScale+ MPSoC27을 탑재한 개발 보드입니다. 이 보드에는 소프트웨어 측면을 관리하는 ARM 기반 CPU 코어로 구성된 프로세싱 시스템(PS) 세그먼트와,20, 21, 22 하드웨어 가속을 가능한 프로그래머블 로직(PL) 세그먼트가 포함되어 있습니다. 이 구성 요소들은 PS 부분이 외부 요소와의 제어 및 상호작용을 관리하고, PL 부분이 실제 처리 로직을 처리하는 하이브리드 시스템의 기능을 향상시킵니다.
이 연구에서 사용된 구현 절차는 FPGA 보드에서 HoG + SVM을 이용한 보행자 감지를 기반으로 하며, 고수준 합성의 이점을 활용한 방식이 아래 그림 2 에 나와 있습니다.

그림 2: FPGA 보드에서 보행자 감지 구현 설계 절차. 1단계: HLS 도구에서 HoG+SVM을 이용한 보행자 탐지 알고리즘과 IP 블록 생성. 2단계: HoG+SVM을 이용한 보행자 탐지 알고리즘을 실제 FPGA 구현과 비트 파일 생성. 3단계: 생성된 비트 파일로 보드를 프로그래밍하는 것. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
1. HLS 도구에서 HoG와 SVM을 이용한 보행자 감지
2. FPGA 보드 프로그래밍

그림 3: HoG + SVM 임포트 IP를 이용한 보행자 감지 블록다이어그램. 이 그림의 더 큰 버전을 보려면 여기를 클릭하세요.
3. FPGA 보드에서의 최종 구현
HLS에서의 보행자 감지 구현
그림 4 는 HoG + SVM을 이용한 보행자 감지를 위한 HLS 도구의 시뮬레이션 결과를 보여줍니다. 보행자가 포함된 입력 이미지가 코드 테스트 입력으로 입력되고, 감지된 보행자가 포함된 출력이 표시됩니다. 이미지에는 두 개의 섹션이 있습니다. 첫 번째 감지 화면에는 같은 보행자 주위에 여러 개의 경계 상자가 반복적으로 배치되어 있고, 두 번째 이미지에서는 겹치는 상자들이 제거되고 억제되어 주요 감지 상자만 남습니다.

그림 4: HLS 도구의 시뮬레이션 결과. (A,B) 두 가지 다른 입력 이미지와 그 결과 감지된 보행자가 포함된 이미지들입니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
HLS 도구는 또한 타이밍과 자원 활용에 대한 종합 보고서를 제공합니다. 타이밍 요약은 설계에 요구되는 시간 범위를 강조하며, 사이클 수 기준으로 최대 및 최소 지연 값을 제공합니다. 이 정보는 설계가 실행에 필요한 시간과 실제 하드웨어 구현 시 클럭 주파수를 추정하는 데 유용합니다. 아래 표 2는 HLS 합성 후 타이밍 보고서를 보여주며, 목표 클럭 주기가 6ns였고 설계가 5.25ns를 사용했음을 명확히 보여줍니다. 이는 목표 시간보다 짧아 시간 주기가 6ns 이상일 수 있지만 5ns보다 낮을 수 없음을 명확히 보여줍니다.
| 타이밍 요약 | ||
| 시계 | 목표 | 추정 |
| 6.00 ns | 5.250 ns | |
| 활용 요약 | ||
| 총 / 이용 가능 | 사용 비율 | |
| BRAM18K | 22 / 432 | 5% |
| DSP48E | 13 / 360 | 3% |
| FF | 5611/ 141120 | 3% |
| LUT | 9904/ 70560 | 14% |
| 우람 | 0 | 0 |
표 2: HoG-SVM을 이용한 보행자 탐지를 위한 HLS 도구의 추정 시간 및 자원 활용 보고서.
표 2는 이용 보고서도 보여줍니다. 이는 선택한 대상 보드에 따른 중요한 온보드 FPGA 자원의 비율 활용도를 보여줍니다. 이 보행자 감지 설계의 활용률 보고서에 따르면, 루크업 테이블(LUT)의 14%, 플립플롭(FF)의 3%, 디지털 신호 처리(DSP)의 3%, 블록 임의 접근 메모리(BRAM)의 5%를 소비합니다. 이 추정치는 정확한 이용 보고서는 아니지만, 실제 보고서는 이 추정치에 가깝습니다. 이는 HLS 도구로 계산할 수 있는 추정치일 뿐입니다. 실제 구현은 보통 이러한 추정치와 매우 다릅니다.
실제 구현은 하드웨어 프로그래밍에서 나옵니다
코드가 IP에 매핑되어 FPGA 프로그래밍 도구에 가져오고, 실제 FPGA 하드웨어에 설계가 구현된 후, 여러 보고서도 생성됩니다. 첫 번째는 타이밍 요약으로, 설계에 제공된 클럭 주파수가 충분한지 여부를 보여줍니다. 모든 타이밍 제약 조건이 충족되고 위반이 없다면 설계를 진행할 수 있습니다. 아래 표 3은 이 도구가 생성한 타이밍 요약을 보여줍니다. 표에 나타난 대로, 타이밍 요약은 최악의 음의 여유(4.073 ns)를 나타냅니다. 이 값이 양수이라면, 이 정도 시간이 남아 있음을 의미합니다. 음수(negative values)는 FPGA가 작업을 완료하는 데 더 많은 시간이 걸리고 있고 클럭이 빠르게 작동하고 있음을 나타냅니다. 이 경우 음수가 없으므로 타이밍 제약 조건이 충족되었음을 의미합니다.
| 설계 타이밍 요약 | ||
| 설정 | 멈춰 | 펄스 폭 |
| 최악의 네거티브 슬랙 4.073 ns | 최악의 홀드 슬랙 0.010 ns | 최악의 펄스 폭 슬랙 3.500 ns |
표 3: FPGA 보드에서 보행자 감지의 실제 타이밍 요약.
또한, 도구는 선택한 FPGA 보드에 따른 온보드 자원의 실제 활용도를 나타내는 자원 활용도 보고서를 보여줍니다. 이 경우 선택된 보드는 Zynq UltraScale+ MPSoC(다중 프로세서 시스템 온 칩) 기반 FPGA 개발 보드27입니다. 아래 표 4는 자원 활용도를 보여주고, 그림 5 는 자원 활용도를 도식으로 표현한 것입니다.
활용률 요약은 8개의 HoG IPS가 병렬로 사용되고 HLS 종합에서 보고된 추정치가 단일 HoG IP에 대한 실제 온보드 자원 소비량을 나타냅니다. 하지만 이렇게 광범위한 사용 후에도 모든 자원의 자원 사용률은 50% 미만입니다. 표 4는 각 자원에 대한 활용도와 그 활용률을 명확히 표시하며, 그림 5에 그림으로 표현되어 있습니다.
| 자료 | 활용 | 이용 가능 | 활용률 % |
| LUT | 40536 | 70560 | 57.45% |
| 루트람 | 7304 | 28800 | 25.36% |
| FF | 33342 | 141120 | 23.63% |
| 브램 | 68 | 216 | 31.48% |
| DSP | 128 | 360 | 35.56% |
| 완전 그렇다 | 2 | 196 | 1.02% |
표 4: FPGA 보드 보행자 감지 실제 활용 보고서.

그림 5: 실제 구현 후 FPGA 보드에서 보행자 감지를 위한 자원 활용도. 테이블(LUT): 57%, LUTRAM: 25%, 플립플롭(FF): 24%, 블록 RAM(BRAM): 31%, 디지털 신호 프로세서(DSP): 36%, 버퍼: 1%. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
세 번째 보고서는 설계에 의한 에너지 소비량에 대한 보드의 전력 추정에 관한 것입니다. 아래 그림 6 은 전력 소비 보고서를 보여주며, 전체 온칩 전력이 2.435 W임을 나타냅니다. 접합 온도와 모든 중요한 네트 및 부품이 소비하는 전력도 함께 보여줍니다. 전력 측정 결과, 심각한 전력 소비는 나타나지 않아 설계가 에너지 효율적이라고 볼 수 있습니다.

그림 6: 실제 구현 후 FPGA 보드에서 보행자 감지를 위한 전력 추정. 도구들이 생성하는 전력 보고서는 총 소비 전력을 2.435 W로 나타내며, FPGA 보드 내 다양한 자원 간 전력 분포도 보여줍니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
또한 8개의 HoG IP를 단일 또는 8개 이상의 블록 다이어그램 블록 다이어그램에서 사용하는 이점이 무엇인지 이해하기 위한 또 다른 분석이 이루어 졌습니다. 하드웨어 관련 성능 지표는 단일 HoG IP와 8개의 HoG IP 병렬로 계산되었습니다. 아래 표 5는 비교 과정을 보여줍니다.
| 퍼프리먼스 메트릭 | 1 IP | 8개의 IP |
| 타이밍 (ns) | 5.312 | ~5.25 |
| 주파수 (MHz) | 188 | 150 |
| 파워 (W) | 1.9 | 2.43 |
| LUT | 4998 | 40536 |
| FF / 레지스터 | 4,031 | 33,342 |
| DSP | 16 | 128 |
| 브램 | 8.5 | 68 |
| FPS | ~10–11 | 83 |
표 5: 단일 IP와 다중 HoG IP를 사용한 성능 지표 비교.
표 5는 자원을 LUT, FF, DSP, BRAM 등으로 고려할 때 단일 HoG IP와 8개의 HoG IP를 사용할 때, 자원 사용이 거의 8배로 증가하는 선형적 확장임을 명확히 보여줍니다. 이는 IP 증가로 인해 자원 소비가 증가하는 것으로 예상되는 현상입니다. 또한, 주파수가 관측되면 최대 주파수도 188 MHz에서 150 MHz로 약 20% 약간씩 저하됩니다. 블록이 많아질수록 연결도 늘어나 경로가 길어지면서 중요한 경로가 증가할 것으로 예상됩니다. 하지만 프레임/초(FPS)와 같은 유리한 요소들은 10에서 83으로 향상되어, 8개의 HoG IP로 도입된 병렬성 개념 덕분에 FPS에서 비선형 스케일링이 가능함을 보여줍니다. 또한 출력은 1.9W에서 2.4W까지 조절되어 파이프라인을 통한 에너지 효율성 향상을 나타냅니다. 따라서 이 분석은 8개의 HoG IP 도입이 설계에 유익하며, 8개를 초과하는 확장은 자원 과소비를 초래할 수 있음을 명확히 시사합니다; 따라서 8을 초과하는 블록 수는 유리하지 않다고 간주됩니다.
FPGA 구현 후 보행자 감지 결과
마지막으로 전체 시스템이 FPGA 보드에 통합되고, 비트스트림 파일이 생성되고, 이후 Python 프로그래밍 기능이 탑재된 SD 카드를 통해 보드에 프로그래밍됩니다. 보드가 SD 카드로 부팅되면 주피터 인터페이스에 접근할 수 있고, 파이썬 코드를 작성하고 실행할 수 있습니다. 파이썬 코드는 다양한 입력 이미지에서 보행자 감지를 위해 실행되고 테스트됩니다. 몇 장의 이미지 결과는 아래 그림 7에 나와 있습니다. 이 이미지들은 INRIA 데이터셋과 오픈 소스 온라인 소스에서 얻은 무작위 보행자 이미지에서 활용되었습니다26,27.

그림 7: FPGA 보드를 통한 정지 이미지에서의 보행자 감지 결과. 테스트된 이미지에는 INRIA 데이터셋의 이미지가 포함되어 있으며, 이는 인도의 혼잡한 거리에서 탐지 정확도를 테스트하기 위해 구글에서 공개된 오픈 소스 이미지입니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
또한 웹 카메라를 통한 실시간 프레임 캡처와 프레임 내 보행자 감지, 그리고 이미 녹화된 보행자 영상 입력에 대해서도 테스트됩니다. 이 결과는 그림 8 과 그림 9에 나타난다. 그림 8 은 웹 카메라가 촬영한 예시 프레임들과 각 프레임에서의 보행자 감지 결과를 보여주며, 그림 9 는 시스템에 제공된 입력 비디오에 구현된 보행자 감지 결과를 보여줍니다.

그림 8: FPGA 보드를 통해 카메라가 실시간으로 캡처한 프레임에 대한 보행자 탐지 결과. 웹 카메라 720 P를 통한 실시간 비디오 촬영과 보행자 실시간 탐지 시연. 흐릿한 이미지는 진행 중인 라이브 영상에서 스냅샷을 찍으면서 발생합니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.

그림 9: FPGA 보드에 입력된 비디오에서의 보행자 탐지 결과. 영상들은 오픈 소스 링크에서 가져온 것이었다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
성능 지표 추정
위에 구현된 설계의 효율성을 계산하고 성능을 분석하려면, 성능 평가에 유용한 성능 지표를 산출하는 것이 필수적입니다. 탐지 알고리즘의 효율성을 감지하는 성능 지표는 기본적으로 진양성(TP), 진음성(TN), 거짓양성(FP), 거짓음성(FN) 값에 의존합니다. 이 값들로부터 정밀도, 리콜, F1 점수, 이미지당 오탐, 정확도와 같은 성능 지표를 아래에 제시된 식에 따라 계산할 수 있습니다. 대부분의 연구 논문이 정확도 매개변수를 통해 검출 성능을 보고하는 것으로 관찰되었습니다. 하지만 TN을 사용하는 정확도 계산은 오해의 소지가 있을 수 있는데, TN의 값은 실제로 보행자가 없는 이미지에서 모든 검출 창의 수를 찾아야 하므로 진정한 의미에서 올바르게 계산할 수 없으며, 구현된 알고리즘도 탐지 없음으로 보고하기 때문입니다. 이 수치는 일반적으로 매우 크는데, 이미지 내 검출 창의 총 수가 크고, 각 이미지의 배경 영역은 보행자가 없는 영역에 해당하기 때문입니다. 방정식 [1] – [5]에 표시된 정확도 공식을 면밀히 살펴보면, TN의 값이 TP+FP+FN에 비해 상당히 높으므로 정확도 매개변수는 보통 높은 값을 가진다는 것을 알 수 있습니다. 성능을 진정으로 평가하려면, TN에 의존하지 않는 정확도, 리콜, F1 점수 같은 지표를 보고하는 것이 훨씬 더 좋습니다.
[1]
[2]
[3]
[4]
[5]
이 논문에서 TP, TN, FN의 값을 찾기 위해 정지 이미지에 대한 실험을 다수의 이미지에 반복했습니다. 각 이미지 결과에서 진양성(정확히 감지된 보행자 수), 거짓 양성(잘못 탐지된 보행자 수), 그리고 실제 탐지되지 않은 보행자 수인 거짓 음성의 값을 계산했습니다. 다음 값들은 수행된 실험 후에 보고되었으며, 아래 표 6 에 나와 있습니다.
| 성과 지표 | 가치 |
| 화장지 | 143 |
| FP | 39 |
| FN | 19 |
| 프레시슨 | 0.786 (78.6%) |
| 리콜 | 0.883 (88.3%) |
| F1 점수 | 0.831 (83.1%) |
| FPPI | 0.867 |
표 6: 보행자 감지 알고리즘을 구현한 FPGA 기반 성능 지표.
위의 표 6은 하드웨어 플랫폼에서 알고리즘이 구현되었을 때 보행자 감지 알고리즘의 정확도를 설명한 보행자 감지 알고리즘의 정확도를 설명합니다.
기존 FPGA 기반 HoG 구현과의 성능 비교
마지막으로, 수행된 연구는 이전 문헌과 비교하여 이 연구의 중요한 기여를 명확히 할 수 있습니다. 이 비교는 아래 표 715, 16, 17, 21, 24에 나와 있습니다. 비교가 이루어진 기사들은 모두 FPGA 플랫폼에서 구현된 보행자 감지 애플리케이션을 기반으로 하며, 이 탐지에 사용되는 알고리즘도 모두 동일합니다. 이는 HoG와 분류기(Adaboost 분류기 또는 SVM)를 결합한 것입니다. 각 장의 이미지 크기도 동일합니다(640 × 480). 비교는 속도, 초당 프레임, 전력 소비, 그리고 LUT, DSP, 메모리, 슬라이스, 레지스터 등 자원 활용에 영향을 미치는 클럭 주파수와 같은 매개변수를 기반으로 이루어집니다. 공정한 비교를 유도하기 위해, 비교 대상 연구 논문들은 유사한 이미지 해상도를 가졌으며, 자원 비교를 정규화하기 위해 모든 자원 활용도를 사용한 FPGA 보드에 따라 소비된 자원 수로 나누어 정규화합니다.
| 참고문헌 | 이미지 크기 | FPGA 보드 | 클럭 주파수 | 초당 프레임(FPS) | 전력 | 픽셀 /클럭 | LUT (%) | DSP48 (%) | BRAM /메모리 비트 (%) | 레지스터/FF (%) |
| 15 | 640×480 | 자일링스 징크 | 82.2 MHz | 40 | - | 1 | 40 | 2 | 0 | - |
| 24 | 640×480 | 버텍스 6 | 150 MHz | 10 | 19 W | 39 | 53 | 22 | - | |
| 16 | 640×480 | 사이클론 V | 162 MHz | 526 | 9 W | 0.99 | 21 | 86 | 100 | 21 |
| 17 | 640×480 | 알테라 DE2-115 | 50 MHz | 129 | 3.6 W | - | 73 | - | 72 | 60 |
| 21 | 640×480 | Zync 7000 | 100 MHz | 240 | 1.6 W | - | 13 | 3 | 1 | 10 |
| 이 작품 | 640 x 480 | 울트라 96 v2 | 150 MHz | 83 | 2.435W | 0.0632 | 57 | 35 | 31 | 24 |
표 7: FPGA에서 보행자 감지 구현을 위한 매개변수 및 성능 비교
위 표 7 에서 볼 수 있듯이, 본 연구의 구현을 이전 연구들과 비교했을 때 속도 측면에서 상당한 향상이 나타난다는 점을 알 수 있습니다. FPGA 보드는 150 MHz의 클럭 주파수로 동작할 수 있는데, 이는 전체 작업을 완료하는 데 소요되는 시간이 6 ns보다 짧다는 의미입니다. 이전 연구들 중 일부는 FPS가 훨씬 높다고 보고하지만, 면밀히 분석하면 이 이점은 더 높은 전력 소비와 특정 자원의 거의 완전한 활용을 대가로 한다는 점을 분석할 수 있습니다. 전력 소비를 고려하면 본 연구에서 보고된 전력도 낮은 편이며, 자원 활용도는 각 자원의 소비가 특정 구현보다 약간 많지만 50% 이하임을 시사합니다(57% LUT, 35% DSP, 31% BRAM). 이는 이 설계에서 더 많은 작업을 구현할 여지가 있음을 나타냅니다. 전반적으로 본 논문에서 구현된 연구는 성능, 전력, 자원 활용 사이에서 균형 잡힌 균형을 이루고 있다고 말할 수 있습니다. 또한, 본 연구는 성능 매개변수에 큰 영향을 주지 않으면서도 여러 IP 블록을 통한 확장 가능한 병렬성을 보여주었습니다.
보조 파일 1: Script_1_train_test.py.이 파일을 다운로드하려면 여기를 클릭해 주세요.
보조 파일 2: Script_2_HLS_hog.cpp. 이 파일을 다운로드하려면 여기를 클릭해 주세요.
보조 파일 3: Script_3_HLS_test_bench.cpp. 이 파일을 다운로드하려면 여기를 클릭해 주세요.
보조 파일 4: Script_4_HLS_consts.h.이 파일을 다운로드하려면 여기를 클릭해 주세요.
보조 파일 5: Script_5_jupyter_code.txt.이 파일을 다운로드하려면 여기를 클릭해 주세요.
본 연구는 Zynq UltraScale+ MPSoC 개발 보드24를 기반으로 한 고급 FPGA 하드웨어에서 HoG + SVM 알고리즘을 활용한 실시간 보행자 감지 시스템을 효과적으로 구현합니다. 결과는 인간 탐지11의 전통적인 HoG 알고리즘이 약 95%의 정확도를 달성하며, 온보드 FPGA 자원(LUT, FF, BRAM, DSP)의 절반만 사용해 다양한 작업을 수행할 수 있는 큰 역량을 남겨두었습니다. 전체 구현 방식을 분석하면 여러 중요한 단계들이 포함되어 있음을 알 수 있습니다. 주요 단계 중 하나는 보행자 감지를 위한 적절한 데이터셋으로 SVM 모델18, 19, 24를 학습시켜 가중치를 추출하여 FPGA 프로그래밍에 활용하는 것입니다. 훈련 코드는 성능 정확도를 나타내며, 정확도를 95%에 가깝게 달성하려면 정규화 매개변수를 통해 검출 임계값을 신중히 조정해야 합니다. 학습에서 선택된 매개변수는 창 크기가 64 x 128, 블록 크기가 16 x 16, 셀 크기가 8 x 8인 맞춤형 HoG 디스크립터이며, 9개의 빈이 선택됩니다. 현재 INRIA 데이터셋11에서 2416장의 양성 이미지와 1218장의 부정 이미지로 훈련이 진행되었습니다. 증강에는 수평 거울 버전을 제공하기 위해 이미지를 회전시키는 작업이 포함됩니다. 가시성이 낮거나 규모 변동이 있는 조건에서 모델 평가와 같은 주요 포함 사항들은 재현성과 견고성을 보장하기 위해 향후 연구에서 다룰 예정입니다. 훈련에 고려되는 데이터셋에는 다양한 포즈를 취한 보행자 이미지가 포함되어야 하며, 보행자가 전혀 없는 이미지도 포함되어야 합니다18,19.
또 다른 중요한 단계는 전체 시스템의 블록 다이어그램을 만들어 FPGA 보드의 PS 부분이 PL 부분과 통신할 수 있도록 하는 것입니다. 이 단계에서는 각 블록이 올바른 포트로 매개변수화되어 있고, 다른 블록들과 제대로 연결되어 있는지 확인해야 합니다. 또한 설계자를 돕기 위한 자동 라우팅 제안도 제공합니다. 매우 중요한 단계는 블록 다이어그램을 완성한 후 주소 할당입니다. 가져온 HoG IP는 깊이에 따라 주소가 할당되어야 하며, 이 주소들은 어떤 두 IP에서도 동일해서는 안 됩니다. 이 주소들은 SD 카드의 파이썬 코드에 필수적이며, 이는 FPGA 보드의 PS 부분이 데이터를 읽고 쓰기 위해 접근해야 하는 PL 주소 위치를 이해하는 데 도움을 줍니다. 따라서 도전적인 단계는 Python 플랫폼에서 사용자가 입력 이미지/동영상/라이브 카메라 피드를 FPGA에 입력하고, FPGA에서 처리된 이미지를 받은 후 감지된 보행자에게 출력 이미지를 표시할 수 있도록 하는 인터페이스 개발입니다. Python 코드는 설계자가 중간 결과를 확인할 수 있도록 다양한 디버깅 메시지와 함께 작성되어야 하며, 실패 시 오류를 진단하고 수정할 수 있습니다. 이 연구에는 PS와 PL 부분 간의 적절한 인터페이스를 확립하는 데 많은 시간이 투자되었습니다. 이 인터페이스용 Python 스크립트는 여러 차례 반복 끝에 HoG IP 데이터를 접근할 수 있었고, 중간 결과를 표시하는 여러 문장을 포함하는 것은 문제 해결과 오류 수정에 매우 유용했습니다.
이 방법의 한 가지 한계는 FPGA의 PS와 PL 부분 간 인터페이스를 설정하는 데 파이썬 부분을 사용하는 점입니다. 파이썬 플랫폼은 설계 시간을 크게 단축시켰지만, 실시간 성능에 영향을 미치는 추가 오버헤드를 도입했습니다. 하드웨어 가속 보행자 감지 시스템은 83 FPS의 처리량을 보고했으나, PS와 PL 부품 간 데이터 전송으로 인한 지연으로 인해 지연 또는 라이브 카메라 테스트 중 반응하지 않는 시스템 전체 성능이 영향을 받았습니다. 미래 전망은 소프트웨어에 의존하지 않고 완전한 하드웨어 가속 시스템을 개발할 가능성을 담고 있습니다.
위에서 설명한 한계가 있지만, 이 연구는 개발된 시스템이 정지 이미지, 실시간 피드, 비디오 입력에서 보행자 감지에 원활하게 적응할 수 있어 크게 기여합니다. 세 가지 방법 모두 Jupyter 플랫폼에서 파이썬 코드를 약간 수정하면 충분하며, 시스템이 다양한 상황에 빠르게 적응할 수 있음을 보여줍니다. 결과는 첨단 FPGA 아키텍처에서의 구현이 성능 매개변수가 매우 최적화되어 우수하고 수용 가능한 값이 나오면서 고무적인 결과를 가져왔음을 보여줍니다. 달성된 클럭 주파수는 이전 문헌14, 15, 16, 20, 23과 비교해 속도가 저하되지 않았음을 나타내며, 최소한의 전력 소비는 열 문제가 없음을 시사합니다. 또한 자원 활용도는 모든 자원이 50% 미만으로 사용된 것으로 나타났으며, 이는 추가 설계 개선의 상당한 가능성을 시사합니다.
개발된 시스템은 인간 탐지 작업을 요구하는 모든 응용 분야에 활용할 수 있으며 실시간 응용에도 적용할 수 있습니다. 또한 향후 노력에서는 PL 부분에 전적으로 집중하여 FPGA 로직이 입력 이미지를 읽고 처리된 출력 이미지를 표시하도록 하여 앞서 언급한 제한을 제거하는 데 집중할 수 있습니다. 이는 거의 50%의 온보드 자원이 여전히 사용 가능하기 때문입니다. 또한 PS와 PL 통합을 활용할 경우 소프트웨어 개발 키트(SDK) 도구를 통한 인터페이스 개발도 수행할 수 있습니다. 다른 확장 가능성으로는 훨씬 더 혹독한 기상 조건이나 시야가 낮은 상황에서 보행자를 식별하거나, 다른 물체 뒤에 숨겨진 가려진 보행자를 식별하는 것이 있어 알고리즘 수정이 필요할 수 있습니다. 이 경우 필요한 유일한 수정은 선택한 도전에 따라 적절한 훈련 후 SVM에서 훈련된 무게를 교체하는 것뿐이며, 나머지 시스템은 별도의 수정이 필요하지 않습니다. 따라서 구현된 시스템은 다른 도전적인 상황에 쉽게 적응하기에 적합합니다. 또 다른 미래 전망은 첨단 FPGA 보드를 활용한 완전 자율주행 차량을 시스템에 추가하는 데 집중하는 것입니다.
저자들은 이해 충돌이 없다고 선언합니다.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| 파이썬 | 파이썬 | 버전 3.10 | |
| 울트라 96 V2 FPGA 보드 | Xilinx | 2018년에 도입됨 | 보행자 탐지 알고리즘 구현에 사용되는 하드웨어 구현 플랫폼 |
| Vivado와 nbsp; | AMD | 2019.2 | 보행자 감지 알고리즘을 적용하여 Ultra 96 v2 FPGA 보드를 프로그래밍하는 데 사용되는 FPGA 프로그래밍 도구; |
| 비바도 HLS | AMD | 2019.2 | 고수준 합성 도구는 지적 재산권(IP)을 내보내기 위한 논문에 나온 보행자 감지 코드의 고수준 프로그래밍에 사용됩니다. |
Request permission to reuse the text or figures of this JoVE article
Request Permission