本研究論文は、主に自動運転アプリケーション向けにフィールドプログラマブルゲートアレイハードウェア上でリアルタイム歩行者検出アルゴリズムを実装したことを示します。このアルゴリズムは、向き付き勾配ヒストグラム(HoG)とサポートベクトルマシン(SVM)分類器を組み合わせており、速度、消費電力、資源利用の面で効率性が示されています。
Method Article
June 12th, 2026
本研究論文は、主に自動運転アプリケーション向けにフィールドプログラマブルゲートアレイハードウェア上でリアルタイム歩行者検出アルゴリズムを実装したことを示します。このアルゴリズムは、向き付き勾配ヒストグラム(HoG)とサポートベクトルマシン(SVM)分類器を組み合わせており、速度、消費電力、資源利用の面で効率性が示されています。
自動運転は、交通事故による死亡者数の増加に対処する有望な方法を提供します。自動運転車には多くの機能がありますが、歩行者を検知する能力は重要であり、難しく、監視、人物追跡、監視など様々なリアルタイムの状況に関連しています。歩行者を正確に識別するのは難しいです。なぜなら、歩行者はさまざまな形や位置、姿勢で現れることがあるからです。様々な服を着ることがあり、時には部分的に隠れたり、近くの物に溶け込んだりします。本論文は、人気のハードウェアプラットフォームであるフィールドプログラマブルゲートアレイ(FPGA)、Ultra 96 v2を用いて自動運転車の歩行者をリアルタイムで検知することに焦点を当てています。本研究は、指向勾配のヒストグラム(HOG)とサポートベクターマシン(SVM)分類器を組み合わせた歩行者検出手法を実装し、高水準合成(HLS)ツールを活用してFPGAボード上の個体を認識します。このシステムの有効性は、静止画とライブ映像の両方で検証されています。その結果、Ultra 96 v2のような先進的なFPGAボードは性能指標を大幅に向上させることが示されています。このシステムは150 MHzのクロック周波数で動作し、利用可能なリソースの半分以下しか使用せず、約2.5Wの電力を消費します。また、システムは歩行者の発見精度を約95%と報告し、精度(78.6%)、リコール(88.3%)、F1スコア(83.1%)などの効率的な検出評価指標も報告しています。まとめると、開発されたシステムは歩行者をリアルタイムで検知でき、スマートで安全な交通環境の整備を大きく改善する可能性を秘めています。
都市開発やスマートシティの出現は、世界中で関心のあるテーマです。すべての国は、住民にとって安全で快適な都市を建設できるよう、都市の発展に取り組んでいます。しかし現状では、人口増加と道路渋滞の悪化に伴い、運転過失や視界不良による交通事故による死亡者数が驚くほど増加していることが観察されています。これらの問題に対する有望な解決策として、世界的な自動運転車の登場が挙げられ、イノベーションを呼び起こしました。研究者たちは、乗客が心配なくリラックスできる完全自動運転車の開発に取り組んでいます。自動運転車の開発の必要性は、経験豊富なドライバーであってもストレスやジレンマ、疲労、悪天候による環境感覚の難しさに直面し、これらが交通事故につながることにあります。自動運転車は移動中の事故を避け、エンジン資源の活用を最適化し、交通法規に準拠するよう設計されており、これにより交通の便利さが確実に向上します。自動運転車は複数の機能、センサー、機能を備えており、周囲を非常に正確に感知し、衝突や事故を回避できるため、安全かつ確実な交通手段を実現する有望なソリューションとして浮上しています。
自動運転車に組み込まれているすべての機能の中で、最も重要なものの一つが歩行者検知です。堅牢な歩行者検知システムは、交通事故の死亡者数を大幅に減少させることができます。これらの事故の被害者の大多数は歩行者だからです。歩行者検知とは、道路上の人物を特定し、衝突を避けることを指します。この機能は自動運転車だけでなく、群衆監視、人物識別、9、10、11の追跡など、さまざまな応用分野にも有効です。この検出プロセスの重要な側面は、検出の速度と正確さにあります。歩行者を正確かつ迅速に発見し、対応時間を最小限に抑えることが重要です。歩行者検知は非常に大きな課題です。道路上の歩行者は服装、外見、姿勢は自由で、悪天候や遮蔽により見えないこともあります。さらに、歩行者自身がルールを守らない可能性が高く、人間の本性を制御できないため、最善の方法は車両に誤った行動に対応し、死亡事故を避けるための知性を装備させることです。本研究の全体的な流れと歩行者検知のハードウェア実装の動機は、下の図1から簡単に理解できます。図1は歩行者検知の必要性、その多様な応用分野、課題、そして提供された利点を活用するためのFPGA実装について説明しています。

図1:歩行者検知。歩行者検知の必要性、歩行者検知の主要な応用分野、歩行者検知に伴う課題、そしてFPGAボード上での歩行者検知の実装の流れについて。 この図の拡大版はこちらをクリックしてご覧ください。
道路上の歩行者を特定するために、多数のアルゴリズムが存在します。この全体的なタスクは主に二つの主要なサブタスクに分けられます。最初のステップは入力画像から特徴を抽出し、重要な特徴だけを保持し、関連する情報を伝えるものだけを保持し、冗長なものは無視します。画像内の人間や歩行者を効果的に認識するためには、これらの特徴がシーン13,14に人間の存在を示すことが重要です。この抽出の後、特徴は分類器に送られ、識別された特徴が人間のものかどうかを判断します。したがって、アルゴリズムは特徴抽出と記述フェーズを経て、その後に分類ステップで入力シーン内の歩行者の存在を判断する必要があります。この目的のために様々なアルゴリズムが利用可能です。しかし、これまでで最も広く受け入れられている歩行者検知方法は、指向勾配ヒストグラム(HoG)と支持ベクターマシン(SVM)分類器12,13,14,15の組み合わせです。ソフトウェアの進歩例は数多く存在しますが、最終的には実装を互換性のあるハードウェアプラットフォームに移植し、それをアプリケーションシステムに統合してリアルタイムで利用できるようにすることです。したがって、現在の重点はハードウェア実現にあります。したがって、適切なハードウェアを備えたカメラを車両に搭載し、道路上の歩行者を識別できるような、歩行者検知システムの適切なハードウェア実装を開発する必要があると言えます。このような実装に適したハードウェアを検討する際、最も一般的に利用される選択肢の一つはフィールドプログラマブルゲートアレイ(FPGA)です。これは設計時間の短縮、スケーラビリティ、改造の容易さ、再構成可能、低消費エネルギーと電力消費など多くの利点からです。15,16,17,18,19,20,21。22歳。
FPGAボードは継続的に進化し、現在では基本的な画像処理から物体検出、拡張現実、深層学習に至る複雑で高度なコンピュータビジョンアプリケーションに広く使われています。現在、いくつかの高性能FPGAボードは、これらの複雑なアプリケーションに必要な広範な処理に対応する卓越したアーキテクチャ能力を備えています。歩行者検知などの自動運転車の高度な機能をこれらのハードウェアプラットフォームに実装すれば、性能分析のための迅速な試作開発に非常に役立つでしょう。最適化後、実装されたアルゴリズムを実際の集積回路に移してシステムに統合することも可能です。
10年以上にわたり、HoGおよびSVM手法を用いた歩行者検出の実装に関する重要な論文が異なるFPGAプラットフォームで発表されています。表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 UltraScale+ 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(rev1) | 240×320 | SVM | HLSを用いたFPGA実装;赤信号を検知し、891領域で確率を計算します。レイテンシーは153,838サイクルから19サイクルの範囲です。 |
| 23 | ザイリンクスZynq-7000 FPGA | 640×480 | HOG + SVM | FPGA上でHOG-SVMを用いて歩行者検知を実装し、CPU処理に比べて消費電力を抑えつつリアルタイム性能を実現しました。組み込みビジョンアプリケーションに適した最適化された特徴抽出パイプラインを実証しました。 |
| 24 | Xilinx Virtex-6 FPGA | 640×480 | 固定点物体検出器(ハール様の特徴) | 高精度を維持しつつ計算コストを削減し、物体検出を高精度に保つ高スループットFPGAのオブジェクト検出加速を提案しました。効率的なハードウェアリソース利用でCPU実装に比べて15×の高速化を示しました。 |
表1:FPGAにおける歩行者検出に基づく研究の文献レビュー(2015–2025年)。
表1は、歩行者検知の分野で豊富な文献が存在し、ハードウェアの実装が研究者の関心分野であることをまとめています。また、歩行者検出のタスクには、YOLOのような畳み込みニューラルネットワーク(CNN)ベースの検出器やトランスアーキテクチャなどの高度な深層学習および機械学習技術が存在することも明らかです。精度の面では従来のHoGアルゴリズムよりも優れていますが、ハードウェア実装を考慮すると高度なアルゴリズムは膨大なリソース利用率を生みます。複雑さのため23,24は他の性能パラメータにも影響を及ぼす可能性があります。また、複雑さが増すため、従来のHoGアルゴリズムの速度がわずかに優れていることも観察されています。24。25歳。また、高度な技術はハードウェア24,26上で実装されるとより多くの電力消費が見られます。したがって、本論文で実装された研究の目的は、FPGAハードウェア上で従来のHoGおよびSVMフレームワークを用いて歩行者検出を行い、リアルタイム埋め込みにおいて精度・速度・資源・消費電力の有利なトレードオフを達成することです。表1から明らかなのは、HoGおよびSVMベースの研究を分析すると、最近導入されたZynq UltraScale+ MPSoC(Multi-Processor System On Chip)ベースのFPGA開発ボード27を活用し、これらのボードの能力を探求するために限られた出版物が存在することが明らかです。これらのボードはアーキテクチャの観点から進化してきたからです。 そして、ハイエンドなリアルタイムコンピュータビジョンアプリケーションの実装において大きな可能性を提供します。FPGAボード上で歩行者検知システム全体をリアルタイムで実現した論文は限られています。しかし、中間課題の効率的な実装や改善に注力してきました。さらに、これらの実装の多くはハードウェア記述言語を用いてFPGAボード上でシステム全体を実現することに基づいています。設計サイクルを短縮するためにハイレベルシンセシス(HLS)ツールの利点を活用した人はほとんどいません。本論文では、自動運転アプリケーション専用のFPGAボード上でリアルタイム歩行者検知の設計と実装を実証します。本論文は、静止画、動画、または実際のカメラ入力における歩行者検出のためにHoGおよびSVMフレームワークを利用しています。使用されているハードウェアは、最先端で最近リリースされたFPGAボードであるUltra96 v2で、これはコンピュータビジョン、画像処理、機械学習、エッジコンピューティングなどの強力なプラットフォームである先進的なFPGAアーキテクチャです。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ツールによるシミュレーション結果を示しています。歩行者を含む入力画像がテスト入力としてコードに入力され、検出された歩行者の出力が表示されます。画像には2つのセクションがあります。最初の検出は同じ歩行者の周囲に何度もバウンディングボックスがあり、2枚目の画像では重なっているボックスが取り除かれ、抑制され、メインの検出ボックスだけが残っています。

図4:HLSツールによるシミュレーション結果。(A,B)2つの異なる入力画像と、検出された歩行者を含む結果の画像です。この図の拡大版はこちらをクリックしてご覧ください。
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ハードウェア上で実装されると、いくつかのレポートも生成されます。1つ目はタイミング概要で、設計に提供されるクロック周波数が十分かどうかを示します。すべてのタイミング制約が満たされ、違反がなければ設計を進めることができます。以下の 表3 は、ツールによって生成されるタイミング概要を示しています。表に示されているように、タイミングの要約は最悪の負のスラックである4.073 nsを示しています。この値が正の場合、まだこの時間が残っていることを示しています。負の値は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%を調べてみてください。 この図の拡大版はこちらをクリックしてご覧ください。
3つ目の報告書は、設計によるエネルギー消費量に関するボードの電力推定に関するものです。下 の図6 は消費電力レポートを示しており、オンチップの総出力は2.435Wです。接合温度や重要なネットおよび部品の消費電力も示されています。電力測定では深刻な消費電力はなく、設計は省エネと見なすことができます。

図6:実際の実装後のFPGAボード上での歩行者検知の電力推定。 ツールによって生成される電力レポートには、総消費電力が2.435Wと示され、FPGAボード上の各種リソース間での電力分布も示されています。 この図の拡大版はこちらをクリックしてご覧ください。
さらに、図 3に示すように、作成されたブロック図で単一のHoG IPや8以上のIPではなく8個のHoG IPを使う利点を理解するための分析が行われています。ハードウェア関連のパフォーマンス指標は、単一の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:単一HoG 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カードでボードを起動すると、jupyterインターフェースにアクセスでき、Pythonコードを書き込んでプラットフォーム上で実行できます。Pythonのコードは異なる入力画像で歩行者検出のために実行・テストされます。数枚の画像の結果は下の図7に示されています。これらの画像はINRIAデータセットおよびオープンソースのオンラインソースから取得した歩行者のランダム画像から利用されています。

図7:FPGAボードを通じた静止画に対する歩行者検出結果。 テストされた画像には、INRIAデータセットからの画像が含まれており、これはインドの混雑した通りでの検出精度を検証するためにGoogleで公開されているオープンソース画像です。 この図の拡大版はこちらをクリックしてご覧ください。
また、ウェブカメラによるリアルタイムフレームキャプチャやフレーム内の歩行者検出、さらに歩行者の既に録画された映像入力でもテストされます。この結果は 図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 に示されています。
| パフォーマンス指標 | 価値 |
| TP | 143 |
| FP | 39 |
| FN | 19 |
| プレシゾン | 0.786 (78.6%) |
| リコール | 0.883 (88.3%) |
| F1スコア | 0.831 (83.1%) |
| FPPI | 0.867 |
表6:FPGAベースの歩行者検知アルゴリズムの性能指標。
上記の表6は、ハードウェアプラットフォーム上でアルゴリズムが実装された場合、さまざまな性能指標、精度、リコール率、F1スコア、FPPIを通じた歩行者検出アルゴリズムの精度を示しています。
既存の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 | ジンク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ナノ秒未満であることを示しています。過去の研究では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アルゴリズムを用いたリアルタイム歩行者検出システムを効果的に実装します。結果は、従来のHoGアルゴリズムであるヒト検出11は約95%の精度を達成し、オンボードFPGAリソース(LUT、FF、BRAM、DSP)の半分しか利用していないため、異なるタスクを処理するためにはるかに多くの処理を含める能力が大きく残っていることを示しています。全体の実装アプローチを分析すると、さまざまな重要なステップが存在することが観察されます。大きなステップの一つは、歩行者検出に適したデータセットでSVMモデル18、19、24を学習し、重みを抽出してFPGAプログラミングで活用することです。トレーニングコードは性能精度を示し、検出閾値は正則化パラメータで慎重に調整し、約95%の精度を得る必要があります。訓練で選択されたパラメータは、ウィンドウサイズ64 x 128、ブロックサイズ16 x 16、セルサイズ8 x 8、そして9個のビン数を選択するカスタムHoGディスクリプタです。現在、INRIAデータセット11で2416枚のポジティブ画像と1218枚のネガティブ画像でトレーニングが行われています。拡張には画像の回転を含み、水平鏡像版を提供します。可視性が低い条件下でのモデル評価やスケール変動などの主要な要素も、再現性と堅牢性を確保するために今後の研究で取り上げていきます。訓練対象となるデータセットには、さまざまなポーズの歩行者の画像が含まれ、歩行者が一切含まれていない画像も含めなければなりません。
もう一つの重要なステップは、システム全体のブロック図を作成し、FPGAボードのPS部分がPL部分と通信できるようにすることです。このステップでは、各ブロックが正しいポートでパラメータ化され、他のブロックと適切に接続されていることを確認する必要があります。また、設計者を支援するための提案付きの自動ルーティングも提供しています。非常に重要なステップはブロック図完成後の住所割り当てです。インポートされたHoG IPには、その深さに応じてアドレスを割り当てる必要があり、これらのアドレスは2つのIPで同じであってはなりません。これらのアドレスはSDカードのPythonコードに必要であり、FPGAボードのPS部分がPL内のアドレス位置を理解し、読み書きを行うのに役立ちます。したがって、Pythonプラットフォーム上でユーザーが入力画像や動画、ライブカメラフィードをFPGAに入力し、FPGAから処理済み画像を受け取った後、検出された歩行者に出力画像を表示するインターフェース開発が課題となっています。Pythonコードは、設計者が中間結果を確認できるように、さまざまなデバッグメッセージを書き込む必要があり、失敗時にはエラーを診断・修正できます。この研究には、PSとPL部分の適切なインターフェースを確立するために膨大な時間が費やされました。このインターフェース用のPythonスクリプトは、数回の反復後にHoGのIPデータにアクセスすることができ、中間結果を表示するための複数の文を含めることで、トラブルシューティングやエラーの修正に非常に役立ちます。
この手法の観察された制約の一つは、FPGAのPSとPL部分のインターフェースを確立するためにPython部分を利用することです。Pythonプラットフォームは設計時間を劇的に短縮しましたが、リアルタイムパフォーマンスに影響を与える追加のオーバーヘッドを生み出します。ハードウェアアクセラレーションによる歩行者検知システムは83 FPSのスループットを報告しましたが、PSとPL間のデータ転送による遅延により遅延やライブカメラテスト中に応答しなくなったため、システム全体の性能が影響を受けたり、応答が鈍化しました。将来の展望では、ソフトウェアに依存しない完全なハードウェアアクセラレーションシステムの開発が可能となります。
上記の制限もありますが、この研究は開発されたシステムが静止画、ライブフィード、動画入力の歩行者検出にシームレスに適応できるため、大きく貢献しています。これら3つの方法は、Jupyterプラットフォーム上のPythonコードにわずかな変更を加えるだけで済み、システムの迅速なシナリオ適応能力を示しています。結果は、高度なFPGAアーキテクチャでの実装が性能パラメータが非常に最適化され、良好かつ許容可能な値が得られることを示しています。達成されたクロック周波数は、以前の文献14、15、16、20、23と同等であり、速度が損なわれていないこと、また消費電力が最小であることから発熱の問題はないことを示しています。さらに、リソース利用率ではすべてのリソースが50%未満に抑えられていることが示されており、さらなる設計改善の大きな可能性を示しています。
開発されたシステムは、人間検出を要求するあらゆるアプリケーションで利用可能であり、リアルタイムの応用にも適応可能です。また、今後の取り組みでは、システム全体をPL部分に完全に集中させ、FPGAロジックが入力画像を読み取り処理済み出力画像を表示するようにする形で、約50%のオンボードリソースが利用可能であるため、前述の制限を取り除くことに注力するかもしれません。また、PSとPLの統合を利用する場合は、Software Development Kit(SDK)ツールを用いたインターフェース開発も可能です。その他の拡張としては、より厳しい天候条件や視界不良時の歩行者識別、あるいは他の物体の後ろに隠れている遮られた歩行者の識別などがあり、アルゴリズムの修正が必要です。この場合に必要な修正は、選択したチャレンジに応じた適切なトレーニング後にSVMトレーニングされた重りを交換することだけで、それ以外のシステム部分は他の修正を必要としません。したがって、実装されたシステムは他の困難なシナリオにも容易に適応できるのに適しています。もう一つの将来的な展望としては、高度なFPGAボードを用いてシステムに追加機能を組み込み、完全自動運転車両を作ることに注力することかもしれません。
著者たちは利益相反がないと宣言しています。
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| パイソン | パイソン | バージョン3.10 | |
| Ultra 96 V2 FPGAボード | Xilinx | 2018年に導入 | 歩行者検出アルゴリズムの実装に使用されるハードウェア実装プラットフォーム |
| Vivado | 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