Method Article

自動運転アプリケーション向けのフィールドプログラマブルゲートアレイベースの歩行者検知フレームワークの設計および実装

June 12th, 2026

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

本研究論文は、主に自動運転アプリケーション向けにフィールドプログラマブルゲートアレイハードウェア上でリアルタイム歩行者検出アルゴリズムを実装したことを示します。このアルゴリズムは、向き付き勾配ヒストグラム(HoG)とサポートベクトルマシン(SVM)分類器を組み合わせており、速度、消費電力、資源利用の面で効率性が示されています。

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

自動運転は、交通事故による死亡者数の増加に対処する有望な方法を提供します。自動運転車には多くの機能がありますが、歩行者を検知する能力は重要であり、難しく、監視、人物追跡、監視など様々なリアルタイムの状況に関連しています。歩行者を正確に識別するのは難しいです。なぜなら、歩行者はさまざまな形や位置、姿勢で現れることがあるからです。様々な服を着ることがあり、時には部分的に隠れたり、近くの物に溶け込んだりします。本論文は、人気のハードウェアプラットフォームであるフィールドプログラマブルゲートアレイ(FPGA)、Ultra 96 v2を用いて自動運転車の歩行者をリアルタイムで検知することに焦点を当てています。本研究は、指向勾配のヒストグラム(HOG)とサポートベクターマシン(SVM)分類器を組み合わせた歩行者検出手法を実装し、高水準合成(HLS)ツールを活用してFPGAボード上の個体を認識します。このシステムの有効性は、静止画とライブ映像の両方で検証されています。その結果、Ultra 96 v2のような先進的なFPGAボードは性能指標を大幅に向上させることが示されています。このシステムは150 MHzのクロック周波数で動作し、利用可能なリソースの半分以下しか使用せず、約2.5Wの電力を消費します。また、システムは歩行者の発見精度を約95%と報告し、精度(78.6%)、リコール(88.3%)、F1スコア(83.1%)などの効率的な検出評価指標も報告しています。まとめると、開発されたシステムは歩行者をリアルタイムで検知でき、スマートで安全な交通環境の整備を大きく改善する可能性を秘めています。

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

都市開発やスマートシティの出現は、世界中で関心のあるテーマです。すべての国は、住民にとって安全で快適な都市を建設できるよう、都市の発展に取り組んでいます。しかし現状では、人口増加と道路渋滞の悪化に伴い、運転過失や視界不良による交通事故による死亡者数が驚くほど増加していることが観察されています。これらの問題に対する有望な解決策として、世界的な自動運転車の登場が挙げられ、イノベーションを呼び起こしました。研究者たちは、乗客が心配なくリラックスできる完全自動運転車の開発に取り組んでいます。自動運転車の開発の必要性は、経験豊富なドライバーであってもストレスやジレンマ、疲労、悪天候による環境感覚の難しさに直面し、これらが交通事故につながることにあります。自動運転車は移動中の事故を避け、エンジン資源の活用を最適化し、交通法規に準拠するよう設計されており、これにより交通の便利さが確実に向上します。自動運転車は複数の機能、センサー、機能を備えており、周囲を非常に正確に感知し、衝突や事故を回避できるため、安全かつ確実な交通手段を実現する有望なソリューションとして浮上しています。

自動運転車に組み込まれているすべての機能の中で、最も重要なものの一つが歩行者検知です。堅牢な歩行者検知システムは、交通事故の死亡者数を大幅に減少させることができます。これらの事故の被害者の大多数は歩行者だからです。歩行者検知とは、道路上の人物を特定し、衝突を避けることを指します。この機能は自動運転車だけでなく、群衆監視、人物識別、91011の追跡など、さまざまな応用分野にも有効です。この検出プロセスの重要な側面は、検出の速度と正確さにあります。歩行者を正確かつ迅速に発見し、対応時間を最小限に抑えることが重要です。歩行者検知は非常に大きな課題です。道路上の歩行者は服装、外見、姿勢は自由で、悪天候や遮蔽により見えないこともあります。さらに、歩行者自身がルールを守らない可能性が高く、人間の本性を制御できないため、最善の方法は車両に誤った行動に対応し、死亡事故を避けるための知性を装備させることです。本研究の全体的な流れと歩行者検知のハードウェア実装の動機は、下の図1から簡単に理解できます。図1は歩行者検知の必要性、その多様な応用分野、課題、そして提供された利点を活用するためのFPGA実装について説明しています。

figure-introduction-1
図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×480SVM高性能HOG抽出器;SVMを統合し、単一スケール検出;低遅延パイプライン。
17アルテラ DE2-115640×480アダブースト複数の視点からパフォーマンスを評価し、HOG+AdaBoostのFPGA実装;リアルタイムの歩行者検知。
18インテル・ストラティックスV640×480SVMマルチスケールの歩行者検知;FPGAに適したHOG+SVMパイプライン;精度とハードウェア効率のトレードオフを強調します。
19Zynq UltraScale+ MPSoC3840×2160SVMリアルタイムUHD処理;パイプライン化されたHOG+SVM;SoC FPGAの実装;不動点最適化;スケーラブルアーキテクチャ。
20詳細は不明です詳細は不明ですSVM検出精度>95%を達成;リアルタイムFPGA実装;並列性を活用し、歩行者検出のための詳細なHOG+SVM FPGA設計。
21Zync 7000 FPGA1920×1080年SVMHOG+SVM向けのハイスループットストリームアーキテクチャ;HD解像度に対応しています。FPGA加速のための効率的なパイプライン。
22ウルトラ96(rev1)240×320SVMHLSを用いたFPGA実装;赤信号を検知し、891領域で確率を計算します。レイテンシーは153,838サイクルから19サイクルの範囲です。
23ザイリンクスZynq-7000 FPGA640×480HOG + SVMFPGA上でHOG-SVMを用いて歩行者検知を実装し、CPU処理に比べて消費電力を抑えつつリアルタイム性能を実現しました。組み込みビジョンアプリケーションに適した最適化された特徴抽出パイプラインを実証しました。
24Xilinx Virtex-6 FPGA640×480固定点物体検出器(ハール様の特徴)高精度を維持しつつ計算コストを削減し、物体検出を高精度に保つ高スループットFPGAのオブジェクト検出加速を提案しました。効率的なハードウェアリソース利用でCPU実装に比べて15×の高速化を示しました。

表1:FPGAにおける歩行者検出に基づく研究の文献レビュー(2015–2025年)。

表1は、歩行者検知の分野で豊富な文献が存在し、ハードウェアの実装が研究者の関心分野であることをまとめています。また、歩行者検出のタスクには、YOLOのような畳み込みニューラルネットワーク(CNN)ベースの検出器やトランスアーキテクチャなどの高度な深層学習および機械学習技術が存在することも明らかです。精度の面では従来のHoGアルゴリズムよりも優れていますが、ハードウェア実装を考慮すると高度なアルゴリズムは膨大なリソース利用率を生みます。複雑さのため23,24は他の性能パラメータにも影響を及ぼす可能性があります。また、複雑さが増すため、従来のHoGアルゴリズムの速度がわずかに優れていることも観察されています。2425歳。また、高度な技術はハードウェア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)セグメントと、カスタマイズ可能なハードウェアアクセラレーション202122を可能にするプログラマブルロジック(PL)セグメントが含まれます。これらのコンポーネントは、PS部分が外部要素との制御と相互作用を管理し、PL部分が実際の処理ロジックを処理するハイブリッドシステムの機能性を高めています。

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

本研究で用いられた実装手順は、FPGAボード上でHoG + SVMを用いた歩行者検出に基づき、高水準合成の利点を活用しており、以下の 2に示されています。

figure-protocol-1
図2:FPGAボード上での歩行者検知実装の設計手順。フェーズ1:HLSツールを用いたHoG+SVMを用いた歩行者検出アルゴリズムとIPブロック生成。フェーズ2:HoG+SVMを用いた歩行者検出アルゴリズムによる実際のFPGA実装とビットファイルの生成。フェーズ3:生成されたビットファイルでボードをプログラムする。 この図の拡大版はこちらをクリックしてご覧ください。

1. HLSツールによるHoGおよびSVMを用いた歩行者検知

  1. ダウンロード先のシステムプロパティに応じて、Python統合開発環境(IDE)をダウンロードしてください。
    注:本作業ではPython 3.10バージョンを使用しています。
  2. HoGアルゴリズムとSVM分類器を使ってトレーニングモデルを実行するためのPythonスクリプトを実行します。スクリプトをまず、データセットからポジティブサンプルとネガティブサンプルを読み込みます。
    注意:INRIAデータセット11を使用してください。
  3. 64×128のウィンドウサイズでHoGの特徴を抽出します。
  4. INRIAデータセットのトレーニングデータとテストデータを80対20の比率に分割し、再現性を確保するためにランダムシャッフルを行います。
    注意:データセットはPython関数を使ってランダムにシャッフルしてから分割されます。コード内でシード値が固定されるたびに同じ分割が行われるように再現性を確保するためです。
  5. 線形核を用いたCサポートベクトル分類(SVC)SVMを用いて訓練します。
  6. 重みベクトルとバイアスを抽出します。
  7. SVMの重みとバイアスはFPGA実装用に固定小数点Q8.8形式で保存してください。
    注:変換は、生成される各浮動小数点値のオリジナリティを256倍(28)倍でスケーリングし、その結果を整数にキャスティングすることで行われます。
  8. 訓練済みのモデルを別のPythonスクリプトでテストし、正則化パラメータCを調整して、精度が95%を超えるまで計算します。
    注:最適化された正則化パラメータはC = 0.05です。
  9. HLSツールを開き、xczu3eg-sbva484-1-eの部品番号を選択して新しいプロジェクトを作成します。
  10. C++のような高水準言語を使って、高水準合成ツールで歩行者検出コードを書きます。
  11. コード内で、3つの異なるC++スクリプトを書きます。1つはHoG特徴記述子とSVM分類器用、もう1つはテストベンチ用でテスト画像への入力と出力画像の保存用、そして3つ目はコードで使用されるパラメータを宣言するヘッダーファイル用です。
  12. HoG特徴計算のコードでは、画像を640×480にリサイズし、64×128のスライドウィンドウアーキテクチャを適用します。各ウィンドウについて、重なり合う8×8ブロックの勾配の大きさと向きを計算します。
    注意:スライドウィンドウの概念で画像全体をスキャンし、画像のすべてのエリアをカバーし、あらゆるサイズの歩行者を識別することが重要です。
  13. 同じコードのHoG特徴記述子の別の部分では、計算された勾配をSVM分類器に渡します。特徴を分類器の重みと照合するコードを書き、検出された特徴を人間のものかどうかの閾値と比較します。
  14. HLSツールの「 Run C Simulation 」をクリックすると、テストベンチを使ってコードの機能正確性をシミュレートできます。
  15. コードに異なる入力画像を提供し、検出された歩行者と出力画像を比較します。
  16. C合成を実行する 」をクリックすると、ツールによるハードウェア言語へのコードの合成、タイミングや利用率のレポートを生成できます。
    注意:このツールは自動的にHLS合成レポートを開きます。このレポートは、選択したFPGAプラットフォーム上でコーディングされたタスクを実装するために必要なクロック周波数の推定値を示し、使用されたリソースの推定も提供しています。これらの報告値はあくまで推定値であり、実際のパラメータはFPGAボードでの実装後に計算されます。
  17. RTLエクスポート 」をクリックすると、歩行者検出のHoGアルゴリズムの知的財産(IP)ブロックをエクスポートできます。
    注意:このIPは実装の後半段階で使用されるものとします。

2. FPGAボードのプログラミング

  1. FPGAプログラミングツールを開き、新しいプロジェクトを作成します。部品番号を xczu3eg-sbva484-1-e として選択し、新しいブロック設計を作成します。
    注意:このブロック図は、PSとFPGAボードのPL部分の統合を確立するために作成されています。使用されている通信プロトコルはAdvanced eXtensible Interface(AXI)プロトコルです。
  2. ツール内で IPカタログ を検索し、見つけたら開いてください。
  3. ステップ1.17でエクスポートされたRTL IPのパスを追加してユーザーリポジトリを作成します。
  4. 新しいブロックデザインウィンドウで、右クリックしてIPを追加を選択します。ツールが提供するIPやユーザー追加リポジトリを含むすべてのIPが見えます。
  5. リポジトリから Zync Ultrascale PSブロックを追加してください。
    注:このブロックはシステムのPS部分を反映しており、必要なクロックを生成する役割を担い、AXIインターコネクトブロックを介してインポートされたHoG IPに接続するためのマスターポートとスレーブポートも備えています。AXIプロトコルの基本回路で動作します。
  6. 8つの HoG IPを追加してください。これは、FPGAボードが提供する並列処理の利点を活かすために、システムが同時に8つのウィンドウを処理することになるからです。
  7. プロセッサシステムのリセットブロックを追加し、図内の各ブロックのクロックとリセット電源を制御します。
  8. HoG IPとZync PSブロックをつなぐための axi_smart connect ブロックを2つ追加してください。完全な接続を含む全ブロック図は 図3に示されています。
    注: 図3に示されているように、設計に追加すべきすべてのブロックは明確に示されています。 図3 はツールから取得したもので、各ブロックの内部ポートと異なるブロック間のポート間の相互接続を示しています。このブロックは主要な設計であり、FPGAボードのPSとPL部分間のインターフェースを確立する役割を担っています。
  9. 図3に従って接続を完了したら、「設計の検証」をクリックします。
    注意:検証は基本的に欠損した接続や切断された接続を確認するもので、これが後の段階で問題を引き起こす可能性があります。
  10. 合成をクリックして、ブロック図の検証が成功したら「設計を実装」と入力してください。
    注:Synthesisは設計されたブロック図をマッピングし、それをFPGAボードにマッピングします。このステップでは、設計がハードウェア上で実装できないことを示す違反を報告します。
  11. また、タイミング、資源利用、消費電力に関するレポートも生成します。報告書を慎重に確認し、タイミング違反がないか確認し、設計されたシステムの性能を分析してください。
  12. FPGAボードのプログラミングに必要な.bitファイルを生成するビット ストリームファイルを生成する「生成ビットファイル(Generate the bitstream) 」をクリックしてください。

figure-protocol-2
図3:HoG + SVMインポートIPを用いた歩行者検出のブロック図。この図の拡大版はこちらをクリックしてください。

3. FPGAボードへの最終実装

  1. FPGAボードを用意し、適切なイメージファイルが入ったSDカードをボードのスロットに差し込みます。
  2. ボードもパソコンに接続してください。
  3. FPGAボードをSDカードモードで起動して、Pythonプログラミングを有効にすることができます。
  4. Wi-Fiに接続した後、基板上のJupyterプラットフォームにアクセスします。
  5. ウェブカメラをボードに接続します。
  6. 生成されたビットファイルをインポートするPythonコードを書き、カメラ画像へのアクセスタスクを実行します。
  7. コード内で、画像がPS部分を通じてFPGAボードのメモリに書き込まれ、PL部分に渡されて処理されるようにスクリプトを書きます。
    注:HoG IPに対応するPL部分は、これらのメモリ位置を通じて画像ピクセルにアクセスし、処理し、スコアを出力として提供します。
  8. 同じPythonスクリプトで適切なコードを書いて、処理済みの画像を読み込み、コンピュータ画面に表示します。
    注:これで設計全体が完成し、システムは実世界での展開準備が整いました。本研究で使用されたすべてのコードは補足コーディングファイルとしてアップロードされています(補足ファイル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])。

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

HLSでの歩行者検知実装
図4 は、HoG + SVMを用いた歩行者検出のためのHLSツールによるシミュレーション結果を示しています。歩行者を含む入力画像がテスト入力としてコードに入力され、検出された歩行者の出力が表示されます。画像には2つのセクションがあります。最初の検出は同じ歩行者の周囲に何度もバウンディングボックスがあり、2枚目の画像では重なっているボックスが取り除かれ、抑制され、メインの検出ボックスだけが残っています。

figure-results-1
図4:HLSツールによるシミュレーション結果。(A,B)2つの異なる入力画像と、検出された歩行者を含む結果の画像です。この図の拡大版はこちらをクリックしてご覧ください。

HLSツールはまた、タイミングやリソース利用のための合成レポートも提供します。タイミング概要は設計で必要な時間の幅を示し、サイクル数に基づく最大および最小レイテンシの値を提供します。この情報は、設計が実行に必要な時間や、実際のハードウェア実装に移行する際にどのクロック周波数が適切であるかを推定するのに役立ちます。下 記の表2 はHLS合成後のタイミング報告を示しており、目標クロック周期が6nsで設計が5.25nsで目標より短いことを明確に示しており、したがって時間は6ns以上で5ns未満はあり得ます。

タイミング概要
時計ターゲット推定
6.00 ns5.250 ns
利用概要
合計 / 利用可能利用率
BRAM18K22 / 4325%
DSP48E13 / 3603%
FF5611/ 1411203%
LUT9904/ 7056014%
ウラム00

表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に図示されています。

リソース利用利用可能利用率
LUT405367056057.45%
ルトラム73042880025.36%
FF3334214112023.63%
ブラム6821631.48%
DSP12836035.56%
バフグ21961.02%

表4:FPGAボード上の歩行者検出の実際の利用率報告書。

figure-results-2
図5:実際の実装後のFPGAボード上の歩行者検出のためのリソース利用率。テーブル(LUT):57%、LUTRAM:25%、フリップフロップ(FF):24%、ブロックRAM(BRAM):31%、デジタル信号プロセッサ(DSP):36%、バッファ:1%を調べてみてください。 この図の拡大版はこちらをクリックしてご覧ください。

3つ目の報告書は、設計によるエネルギー消費量に関するボードの電力推定に関するものです。下 の図6 は消費電力レポートを示しており、オンチップの総出力は2.435Wです。接合温度や重要なネットおよび部品の消費電力も示されています。電力測定では深刻な消費電力はなく、設計は省エネと見なすことができます。

figure-results-3
図6:実際の実装後のFPGAボード上での歩行者検知の電力推定。 ツールによって生成される電力レポートには、総消費電力が2.435Wと示され、FPGAボード上の各種リソース間での電力分布も示されています。 この図の拡大版はこちらをクリックしてご覧ください。

さらに、図 3に示すように、作成されたブロック図で単一のHoG IPや8以上のIPではなく8個のHoG IPを使う利点を理解するための分析が行われています。ハードウェア関連のパフォーマンス指標は、単一のHoG IPと8つのHoG IPを並列に計算しました。以下の 表5は 比較を示しています。

パロマンス計量1 IP8 IP
タイミング(ns)5.312~5.25
周波数(MHz)188150
パワー(W)1.92.43
LUT499840536
FF / レジスタ4,03133,342
DSP16128
ブラム8.568
FPS~10–1183

表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データセットおよびオープンソースのオンラインソースから取得した歩行者のランダム画像から利用されています。

figure-results-4
図7:FPGAボードを通じた静止画に対する歩行者検出結果。 テストされた画像には、INRIAデータセットからの画像が含まれており、これはインドの混雑した通りでの検出精度を検証するためにGoogleで公開されているオープンソース画像です。 この図の拡大版はこちらをクリックしてご覧ください。

また、ウェブカメラによるリアルタイムフレームキャプチャやフレーム内の歩行者検出、さらに歩行者の既に録画された映像入力でもテストされます。この結果は 図8図9に示されています。 図8 はウェブカメラで撮影された例のフレームと各フレームにおける歩行者検出の結果を示し、 図9 はシステムに提供された入力映像に実装された歩行者検出の結果を示しています。

figure-results-5
図8:FPGAボードを通じてリアルタイムにカメラがキャプチャしたフレームに対する歩行者検出の結果。ウェブカメラ720 Pを通じたリアルタイムのビデオ撮影と歩行者のリアルタイム検知の実証。ぼやけた映像は、進行中のライブ映像からスナップショットを撮った際に生じています。 この図の拡大版はこちらをクリックしてご覧ください。

figure-results-6
図9:FPGAボードに入力されたビデオの歩行者検知結果。動画はオープンソースのリンクから取得されました。 この図の拡大版はこちらをクリックしてご覧ください。

性能指標の推定
上記の実装設計の効率を計算し、性能を分析するためには、性能評価に役立つ性能指標を計算することが不可欠です。検出アルゴリズムの効率を検出する性能指標は、基本的に真陽性(TP)、真陰性(TN)、偽陽性(FP)、偽陰性(FN)の値に依存します。これらの値から、精度、リコール率、F1スコア、画像あたりの誤陽性数、精度などの性能指標を以下の式に従って計算できます。ほとんどの研究論文は検出性能を精度パラメータを通じて報告していることが観察されています。しかし、TNの使用を伴う精度計算は誤解を招くパラメータになり得ることが観察されています。なぜなら、TNの値は真の意味で正しく計算できないからです。これは実際に歩行者がいない画像の検出窓の数を見つける必要があり、実装されたアルゴリズムも検出なしとして報告するからです。この数は一般的に非常に大きく、画像内の検出ウィンドウの総数が大きく、すべての画像の背景領域は通常歩行者のいない領域に対応しています。式[1]–[5]に示された精度の式を詳しく見ると、TNの値はTP+FP+FNと比べてかなり高くなるため、精度パラメータは通常高い値を持つことがわかります。パフォーマンスを真に評価するには、TNに依存しない精度、リコール率、F1スコアなどの指標を報告する方がはるかに正確です。

figure-results-7 [1]

figure-results-8 [2]

figure-results-9 [3]

figure-results-10 [4]

figure-results-11 [5]

この論文のTP、TN、FNの値を求めるために、静止画に対する実験を大量の画像で繰り返し行いました。すべての画像の結果から、真陽性(正しく検出された歩行者数)、偽陽性(誤検出された歩行者数)、偽陰性(実際に検出されなかった歩行者数)の値を計算しました。以下の値は実験後に報告され、下の 表6 に示されています。

パフォーマンス指標価値
TP143
FP39
FN19
プレシゾン0.786 (78.6%)
リコール0.883 (88.3%)
F1スコア0.831 (83.1%)
FPPI0.867

表6:FPGAベースの歩行者検知アルゴリズムの性能指標。

上記の表6は、ハードウェアプラットフォーム上でアルゴリズムが実装された場合、さまざまな性能指標、精度、リコール率、F1スコア、FPPIを通じた歩行者検出アルゴリズムの精度を示しています。

既存のFPGAベースのHoG実装との性能比較
最後に、実施された研究は過去の文献と比較し、この研究の重要な貢献を示すことができます。この比較は下の 表71516172124に示されています。比較対象となる記事はすべてFPGAプラットフォーム上で実装された歩行者検出アプリケーションに基づいており、これらの検出に使われるアルゴリズムもすべて同じで、HoGと分類器(Adaboost分類器またはSVMのいずれか)を組み合わせたものです。画像サイズもそれぞれ同じで(640×480)。比較は、速度、フレーム毎秒、消費電力、LUT、DSP、メモリ、スライス、レジスタのリソース利用に影響を与えるクロック周波数などのパラメータに基づいて行われます。公平な比較を図るために、比較対象となる研究論文は画像解像度が似ており、資源比較を正規化するために、使用されたFPGA基板に従って消費されたリソース数を総資源数で割って正規化します。

参考文献画像サイズFPGAボードクロック周波数フレーム毎秒(FPS)パワーピクセル数/クロックLUT(%)DSP48(%)BRAM / メモリビット (%)レジスター/FF(%)
15640×480ザイリンクス・ジンク82.2 MHz40-14020-
24640×480バーテックス6150 MHz1019 W395322-
16640×480サイクロンV162 MHz5269 W0.99218610021
17640×480アルテラ DE2-11550 MHz1293.6 W-73-7260
21640×480ジンク7000100 MHz2401.6 W-133110
この作品640 x 480ウルトラ96 v2150 MHz832.435W0.063257353124

表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。このファイルをダウンロードするには、こちらをクリックしてください。

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

本研究は、Zynq UltraScale+ MPSoC開発ボード24に基づく高度なFPGAハードウェア上で、HoG + SVMアルゴリズムを用いたリアルタイム歩行者検出システムを効果的に実装します。結果は、従来のHoGアルゴリズムであるヒト検出11は約95%の精度を達成し、オンボードFPGAリソース(LUT、FF、BRAM、DSP)の半分しか利用していないため、異なるタスクを処理するためにはるかに多くの処理を含める能力が大きく残っていることを示しています。全体の実装アプローチを分析すると、さまざまな重要なステップが存在することが観察されます。大きなステップの一つは、歩行者検出に適したデータセットでSVMモデル181924を学習し、重みを抽出して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アーキテクチャでの実装が性能パラメータが非常に最適化され、良好かつ許容可能な値が得られることを示しています。達成されたクロック周波数は、以前の文献1415162023と同等であり、速度が損なわれていないこと、また消費電力が最小であることから発熱の問題はないことを示しています。さらに、リソース利用率ではすべてのリソースが50%未満に抑えられていることが示されており、さらなる設計改善の大きな可能性を示しています。

開発されたシステムは、人間検出を要求するあらゆるアプリケーションで利用可能であり、リアルタイムの応用にも適応可能です。また、今後の取り組みでは、システム全体をPL部分に完全に集中させ、FPGAロジックが入力画像を読み取り処理済み出力画像を表示するようにする形で、約50%のオンボードリソースが利用可能であるため、前述の制限を取り除くことに注力するかもしれません。また、PSとPLの統合を利用する場合は、Software Development Kit(SDK)ツールを用いたインターフェース開発も可能です。その他の拡張としては、より厳しい天候条件や視界不良時の歩行者識別、あるいは他の物体の後ろに隠れている遮られた歩行者の識別などがあり、アルゴリズムの修正が必要です。この場合に必要な修正は、選択したチャレンジに応じた適切なトレーニング後にSVMトレーニングされた重りを交換することだけで、それ以外のシステム部分は他の修正を必要としません。したがって、実装されたシステムは他の困難なシナリオにも容易に適応できるのに適しています。もう一つの将来的な展望としては、高度なFPGAボードを用いてシステムに追加機能を組み込み、完全自動運転車両を作ることに注力することかもしれません。

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

著者たちは利益相反がないと宣言しています。

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
パイソンパイソンバージョン3.10
Ultra 96 V2 FPGAボード Xilinx 2018年に導入歩行者検出アルゴリズムの実装に使用されるハードウェア実装プラットフォーム
Vivado AMD2019.2Ultra 96 v2 FPGAボードに歩行者検出アルゴリズムを適用してプログラミングするためのFPGAプログラミングツールです。
ビバド HLS AMD2019.2知的財産(IP)をエクスポートするための論文内の歩行者検出コードの高水準プログラミングに使用されるハイレベル合成ツール

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Nkuzo, L., Sibiya, M., Markus, E. Computer vision-based applications in modern cars for safety purposes: A systematic literature review. 2023 Conference on Information Communications Technology and Society (ICTAS), Durban, South Africa, , (2023).
  2. Nidamanuri, J., Nibhanupudi, C., Assfalg, R., Venkataraman, H. A progressive review - Emerging technologies for ADAS driven solutions. IEEE Trans Intell Veh. 7 (2), 326-341 (2021).
  3. Bathla, G., et al. Autonomous vehicles and intelligent automation: Applications, challenges, and opportunities. Mob Inf Syst. 2022, 7632892(2022).
  4. Yamamoto, R., Izumi, Y., Aono, R., Nagahara, T., Tanaka, T., Liao, W., Mitsuyama, Y. Development of autonomous driving system based on image recognition using programmable SoCs. 2021 International Conference on Field-Programmable Technology (ICFPT), Auckland, New Zealand, , (2021).
  5. Kasem, A., Reda, A., Vásárhelyi, J., Bouzid, A. A survey about intelligent solutions for autonomous vehicles based on FPGA. Carpathian J Electr Comput Eng. , (2021).
  6. Nane, R., et al. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 35 (10), 1591-1604 (2015).
  7. Cao, J., et al. Pedestrian detection algorithm for intelligent vehicles in complex scenarios. Sensors. 20 (13), 3646(2020).
  8. Chen, W., Zhu, Y., Tian, Z., Zhang, F., Yao, M. Occlusion and multi-scale pedestrian detection: a review. Array. 19, 100318(2023).
  9. Galvao, L. G., Abbod, M., Kalganova, T., Palade, V., Huda, M. N. Pedestrian and vehicle detection in autonomous vehicle perception systems—A review. Sensors. 21 (21), 7267(2021).
  10. Akshayaa, S., Nithin, S. Comparative study of pedestrian detection techniques for driver assistance system. 2021 Second International Conference on Electronics and Sustainable Communication Systems (ICESC), Coimbatore, India, , (2021).
  11. Dalal, N., Triggs, B. Histograms of oriented gradients for human detection. Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), San Diego, CA, USA, , (2005).
  12. Singh, G., Kaur, A., Bhardwaj, V., Shrivastava, S. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security. 2024 5th International Conference for Emerging Technology (INCET), Belgaum, India, , (2024).
  13. Shrivastava, S., Kumar, B. V., Gupta, R., Sharma, V. Advancements in real-time image processing using Kintex and Virtex FPGAs: enhancing speed, efficiency, and versatility. 2025 IEEE International Conference on Interdisciplinary Approaches in Technology and Management for Social Innovation (IATMSI), Gwalior, India, , (2025).
  14. Rettkowski, J., Boutros, A., Göhringer, D. Real-time pedestrian detection on a Xilinx Zynq using the HOG algorithm. 2015 International Conference on Reconfigurable Computing and FPGAs (ReConFig), Riviera Maya, Mexico, , (2015).
  15. Ngo, V., Casadevall, A., Codina, M., Castells-Rufas, D., Carrabina, J. A high-performance HOG extractor on FPGA. arXiv. , 1802.02187(2018).
  16. Adiono, T., Prakoso, K. S., Putratama, C. D., Yuwono, B., Fuada, S. HOG-AdaBoost implementation for human detection employing FPGA ALTERA DE2-115. Int J Adv Comput Sci Appl. 9 (10), 353-358 (2018).
  17. Dürre, J., Paradzik, D., Blume, H. A HOG-based real-time and multi-scale pedestrian detector demonstration system on FPGA. Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, California, USA, , (2018).
  18. Wasala, M., Kryjak, T. Real-time HOG+SVM based object detection using SoC FPGA for a UHD video stream. 2022 11th Mediterranean Conference on Embedded Computing (MECO), Budva, Montenegro, , (2022).
  19. Lin, Y. Research on HOG-SVM pedestrian detection method based on FPGA. Appl Computat Eng. 9, 272-281 (2023).
  20. Ranawaka, P., et al. Application specific architecture for hardware accelerating HOG-SVM to achieve high throughput on HD frames. 2019 IEEE 30th International Conference on Application-Specific Systems, Architectures and Processors (ASAP), New York, NY, USA, 2160, 131-134 (2019).
  21. Luo, J. H., Lin, C. H. Pure FPGA implementation of an HOG based real-time pedestrian detection system. Sensors. 18 (4), 1174(2018).
  22. Ma, X., Najjar, W. A., Roy-Chowdhury, A. K. Evaluation and acceleration of high-throughput fixed-point object detection on FPGAs. IEEE Transactions on Circuits and Systems for Video Technology. 25 (6), 1051-1062 (2015).
  23. Weng, G. Real-time pedestrian recognition on low computational resources. arXiv. , 2309.01353(2023).
  24. Nguyen, T. A., Tran-Thi, T. Q., Bui, D. H., Tran, X. T. FPGA-based human detection system using HOG-SVM algorithm. 2023 International Conference on Advanced Technologies for Communications (ATC), Da Nang, Vietnam, , (2023).
  25. Tarchoun, B., Khalifa, A. B., Dhifallah, S., Jegham, I., Mahjoub, M. A. Hand-crafted features vs deep learning for pedestrian detection in moving camera. Traitement du Signal. 37 (2), 209-216 (2020).
  26. Suleiman, A., Chen, Y. H., Emer, J., Sze, V. Towards closing the energy gap between HOG and CNN features for embedded vision. 2017 IEEE International Symposium on Circuits and Systems (ISCAS), Baltimore, MD, USA, , (2017).
  27. Ultra96-V2 Single Board Computer Hardware User’s Guide. , Avnet. Available from: https://www.avnet.com (2025).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Pedestrian DetectionAutonomous DrivingField Programmable Gate ArrayFPGA ImplementationReal Time DetectionHistogram Of Oriented GradientsSupport Vector MachineHigh Level SynthesisUltra 96 V2Smart Transportation

Related Articles