このコンテンツを表示するには、JoVEへの購読が必要です。 または、無料トライアルをお申し込みください。

方法論記事

リアルタイムSobelエッジ検出のための解像度適応型ハードウェアアーキテクチャ:サブリニアなリソーススケーリングの実現

58 回視聴

⸱

DOI:

10.3791/71589

⸱

2026年8月28日

 ,  , 

この記事について

サマリー

本研究では、Ultra96-V2ヘテロジニアスプラットフォーム上でのSobelエッジ検出アルゴリズムのFPGAベースの実装を提示し、256 × 256から2560 × 1440までの画像解像度におけるリソース利用率、電力、および速度を評価します。提案されたアーキテクチャは、リアルタイム画像処理アプリケーションにおいて、リソースのスケーリングがサブリニアであることを示しています。

要約

エッジ検出はコンピュータビジョンの主要な領域であり、様々な応用分野において不可欠な要素となっています。エッジ検出によってエッジの特定が可能になります。エッジは画像における重要な特徴であり、画像から主要かつ識別的な情報を抽出するのに役立つ重要な属性を表しています。エッジ検出のハードウェア実装は、高速であり、最小限のリソースを使用し、低消費電力である必要があり、さらに異なる画像解像度に適応できなければなりません。本論文では、低解像度画像からフルハイビジョンまでの適応的な画像解像度に対応したSobelエッジ検出を実装し、最新のヘテロジニアスField Programmable Gate Array (FPGA) プラットフォームであるUltra96-V2を使用しています。結果として、低解像度画像ではLook up Tables (LUTs)、Flip Flops (FF)、Digital Signal Processor (DSP)、Block Memory (BRAM) を含むFPGAオンボードリソースのわずか5%しか利用されない一方で、高解像度画像ではオンボードリソースの約23%が消費されることが明らかになりました。これは、低解像度から高解像度の画像に移行した際のリソース利用率の増加が20%未満であることを示しています。さらに、最高解像度での消費電力は約2 Wであり、最大動作周波数は高解像度画像で136 MHz、低解像度画像で166 MHzと記録され、周波数の低下はわずか18%にとどまりました。提案されたアーキテクチャは、最新のヘテロジニアスFPGAアーキテクチャの利点を活用することで、画素数が56倍に増加しても、リソース利用率の増加が20%未満、速度と電力の低下が20%未満というサブリニアなリソーススケーリングを実現しています。したがって、適応的な解像度能力と低リソーススケーリングを組み合わせた本設計は、高品質な画像処理を必要とするリアルタイムエッジ検出アプリケーションに特に適しています。

概要

エッジ検出は、今日、さまざまなアプリケーション領域で使用されているほぼすべてのコンピュータビジョン技術において極めて重要な要素となっています1。エッジ検出は特徴抽出の段階であり、画像から有益で特徴的な詳細を抽出することを目的としており、幅広いシナリオに適用可能です2。画像内のエッジは強度が急激に変化している領域を示しており、したがって、その画像に関する重要かつ特徴的な情報を提供します。このプロセスにより、不要で無関係な詳細を排除し、特定のアプリケーションのためにさらに処理可能な、不可欠で固有の要素のみを保持することが可能になります。

図1に示すように、エッジ検出の重要性は、画像セグメンテーション、物体検出および認識、特徴抽出、画像強調、物体識別、医療画像診断、監視、産業オートメーション、自動運転、拡張現実、およびロボティクスを含む様々なタスクへの適用によって強調されています2,3,4,5,6.

エッジ検出には、Sobel、Prewitt、Roberts、Cannyなどの複数の手法が存在します。これらの手法の中でも、Sobelエッジ検出は、適用が容易で実装の複雑さが少なく、エッジ検出における精度が高いため、非常に有用です3,4,5,6。Sobelエッジアルゴリズムでは、以下に示すように、それぞれカーネルGxおよびGyを用いて、画像の水平方向および垂直方向の勾配を決定します2,4。

Gxはx方向のエッジを強調し、Gyはy方向のエッジを強調します12,13。これらを組み合わせることで、画像内のすべてのエッジを完全に定義できます6。カーネルを用いた畳み込みプロセスとスライディングウィンドウを用いて、画像にSobelエッジ検出を適用します。具体的には、例えば3×3ピクセルのウィンドウを画像から1つずつ取り出し、このウィンドウをフィルタ行列と畳み込みさせることで、中心ピクセルの新しい値を算出します。画像全体をこの方法で順次処理します。Sobelエッジ検出では、x方向のエッジ抽出用とy方向のエッジ抽出用の2つのカーネルが使用されます。すべてのエッジを取得するために、これら2つの結果を統合します。Sobelエッジ検出は正確で信頼性の高い結果をもたらし、前処理を行うことでさらに精度を高めることができます4,5,15。Sobelエッジ検出の全工程は図2で解説しています。

報告されているすべての文献はこの分野のエッジ検出に重要な貢献をしていますが、主要な研究のほとんどは低解像度の画像を用いています。対して、本論文で提示する手法では、低解像度画像(256×256ピクセル)から高解像度画像まで、さまざまな画像解像度を対象としています。 × 256) からフルハイビジョン(HD)画像解像度(2560 × 1440)。したがって、異なる画像解像度におけるSobelエッジ検出アルゴリズムのハードウェア実装を調査することは、多様な画像解像度を伴うリアルタイムのシナリオに適用した際の実装効率を理解する上で極めて重要である。フィールドプログラマブルゲートアレイ(FPGA)は、迅速なプロトタイプ開発に適していることや、ハードウェア構成全体を変更することなく容易に設計変更が可能な再構成可能性などの利点があるため、ハードウェア実装に適切なプラットフォームとして認められている。6,7,8,9,10,11,12,13さらに、FPGAは並列処理およびパイプライン処理を実現できる可能性を有しています。パフォーマンス指標が最適化され、プラットフォームが検証されれば、その設計を専用集積回路(ASIC)の実際の製造へと進めることができます。14,15FPGAのもう一つの重要な特徴はその再構成可能性であり、これにより設計者はハードウェアを交換することなく、いつでも製品設計に変更を加えることができます。設計者がVHDLやVerilogなどのハードウェア記述言語に習熟していれば、チップを再プログラミングするだけで済み、それに要する時間と手間はごくわずかです。4,6,13,16,17FPGA実装の解析において、検討される主要なパラメータは、速度(最大動作周波数)、リソース利用率、および電力効率です。 表1FPGAの分野で発表された文献数の増加を示しており、2006年から2024年にかけてFPGAに関する出版物がどのように進化してきたかがわかります。これにより、FPGAの研究領域が現在はリアルタイムアプリケーション、拡張現実、エッジコンピューティング、およびその他のハイエンドアプリケーションへと移行していることが明確に示されています。13,14,15,16,17,18,19,20,21,22,23.

表2は、2020年から2025年にかけてのFPGA上でのSobelエッジ検出実装に関する既存文献の研究内容をまとめたものです。表2では、各参照論文で使用されたFPGAボード、実装されたアルゴリズム、設計手法、知見、指標、適用分野、および課題について記載しています。

著者ら4は、エッジ検出の精度を向上させるために8方向Sobelエッジ法を用いることを推奨したが、提案手法ではリソース消費量が増加したと報告している。Navinkumarらは、従来のSobelエッジ検出に含まれる乗算や平方根といった複雑な数学的演算を削減する手法を用いることで、オンボードリソースを節約し、速度を向上させている9。また、ある著者ら17は、先進運転支援システム(ADAS)において車線を識別するためにSobelエッジ検出アルゴリズムを用いたことを記録している。彼らの目的は、処理時間を短縮しつつ検出速度を上げることであった。全体として、エッジ検出の利用は、将来的な関心領域(ROI)抽出のための信頼性の高い手法として提案されており、これは、不要な情報を無視して画像内の必要な領域のみを抽出する必要があるさまざまなアプリケーションにおいて非常に有用であると考えられる。共通して報告されている課題としては、リソースおよびメモリ利用率の上昇、ノイズへの敏感さ、高い計算コスト、および高解像度画像に対するスケーラビリティの制限などが挙げられている4,5,6,11,12,13,21,22,23。

本研究では、従来のSobelエッジ検出アルゴリズムをUltra96-V2 FPGAボード上に実装し、256 × 256の低解像度から2560 × 1440のフルHD解像度まで、さまざまな画像解像度において検証を行いました。Ultra96-V2は、FPGAのプログラマビリティと強力なArmプロセッシング(Cortex-A53/R5)を組み合わせた、高性能アプリケーション向けのボードです。このボードは2018年に初めてリリースされ、16 nm FinFETテクノロジーノード18を採用しています。

再現性を確保するため、すべての実装は、高位合成(HLS)用のVivado HLS 2019.2と配置配線用のVivado 2019.2、およびUltra96-V2リソースからリリースされたPYNQイメージで構成される標準的なツールチェーンを用いて行われました。HLSコードを利用してSobelエッジ検出IP(Intellectual Property)を導出し、これをエクスポートしてVivado設計スイートに統合しました。この IPはPL(Programmable Logic)部に実装され、FPGAのPS(Processing System)部がデータ転送および制御メカニズムを担いました。PSとPLのインターフェースにはAXIプロトコルを使用しました。報告されたすべての指標(周波数、リソース利用率、電力)は、HLSの推定値ではなく、実装後のレポートから取得したものです。実装設定は一貫して維持し、実験を通じて画像解像度のみを変更しました。

本研究の重要な成果は、低消費電力、低リソース利用率、および高速性にあります。結果として、高解像度画像に対するオンボードリソース利用率は20%未満(Look Up Tables (LUTs) 18%、Flip Flops (FF) 11%、メモリ 3%、DSP 10%)であり、エッジ検出は中間ステップに過ぎないため、あらゆるコンピュータビジョンシステムで期待される、より多くの画像処理機能を統合できる十分な空き容量があることが示されました。また、消費電力は約 2 Wであり、最大動作周波数は 144 MHzと報告されています。さらに、画像サイズを約56倍に拡大しても、リソース利用率の増加は約20%にとどまることが結果から分かります。速度および消費電力の低下も約20%のみでした。この分析は、過去の文献では報告されていない異なる視点からアルゴリズムを詳細に調査したものであり、したがって、本実装がリアルタイムアプリケーションに適しており、画像を小さなサイズや低解像度に制限する必要がないことを示しています。解像度の制限は、エッジ検出後の後続ステージで必要となる情報量を確実に低下させるためです。

本研究の新規性はアルゴリズム自体にあるのではなく、HLSベースの実装手法の利点を活用し、現代のヘテロジニアスFPGAアーキテクチャにおける様々な画像解像度での伝統的なSobelエッジ検出アルゴリズムの性能評価に焦点を当てている点にあります。本論文の主な貢献は、FPGA上に実装されたハイブリッド手法を適用し、アーキテクチャのPSセクションとPLセクションの間でワークロードを効果的に分散させることで、設計が異なる解像度に容易に適応できるようにしたことにあります。もう一つの貢献は、画像解像度の変化に伴いリソーススケーリングがどのように変化するかを評価する実験を行い、異なるセットアップや多様なアプリケーションにおける性能の理解に寄与したことです。

アクセスが制限されています。このコンテンツを表示するにはログインするか、トライアルを開始してください。

プロトコル

1. HLSツールによるSobelエッジ検出の実装

  1. Vivado HLS 2019.2ツールを開き、プロジェクトを作成します。FPGAボードとしてUltra96-V2を選択します。
  2. 画像サイズのパラメータを固定せず汎用化した、Sobelエッジ検出のためのC++による高位合成言語コードを記述します。
    注:画像幅と高さは固定せず、コード内で汎用パラメータとして記述することで、複数の箇所を変更することなく、画像解像度の変更に合わせて容易に調整できるようにしています。
  3. Sobelエッジ検出アルゴリズムのためのテストベンチコードをC++で記述します。
    注:テストベンチは、コードの検証に使用する入力画像を提供するために記述されます。
  4. 「run C simulation」をクリックしてコードをシミュレーションし、機能的な正しさを確認します。テストベンチに入力画像を与え、エッジが抽出された画像が出力されることを確認します。
  5. 「run C synthesis」をクリックしてHLSコードを合成し、Sobelエッジ検出用のIPをエクスポートします。
    注:合成プロセスは、基本的に記述された設計をハードウェアコンポーネントにマッピングし、設計をハードウェア実装に適した互換性のある状態にするものです。
  6. ツールによって生成されたタイミングおよびリソース利用率レポートを確認し、推定時間が目標時間を超えていないことを確認します。
    注:HLSプラットフォームによるこれらの結果はあくまで推定値であり、実際のパラメータは設計がFPGA上に実装された際にのみ算出されます。
  7. 「export IP」をクリックして、Sobelエッジ検出手順のIPをエクスポートします。
    注:このIPは、次のステップであるVivadoツールを用いたFPGA実装用のブロックダイアグラム設計で使用されます。

2. 抽出したHLS IPを用いたFPGAプラットフォームUltra96-V2へのSobelエッジ検出の実装

  1. Vivado Design Toolを開き、新しいプロジェクトを作成します。ターゲットボードにUltra96-V2を選択し、「Create a new block design」をクリックします。
  2. HLSツールからエクスポートしたSobelエッジIPをインポートします。PSとPL間のインターフェースを完結させるために必要な他のブロックを追加します。
    注:このブロックダイアグラムでは、Advanced eXtensible Interface (AXI) プロトコルを用いてPSとPLの間のインターフェースを構築するために、Zynq Ultrascale IP、Smart Connect、プロセッサリセットなどの他の重要なIPブロックも使用しています。
  3. 「デザインの検証(validate design)」をクリックして、ブロックデザインを検証します。ツールによって報告されるデザインエラーがないことを確認してください。エラーがある場合は、修正指示に従い、再度検証を行ってください。
    注:このステップでは、ブロックダイアグラムに接続漏れがないことを確認しますが、ブロック設計の機能的な正当性は検証しません。
  4. 「HDLラッパーの作成」をクリックして、ブロックデザインの汎用HDLコードを取得します。
  5. 「run synthesis」をクリックして設計を合成し、報告されたエラーがないか確認します。エラーが見つからない場合、ツールは合成の成功を報告します。合成に成功した後、タイミングの合成レポートにアクセスし、タイミング違反がないかを確認します。
  6. タイミング違反を確認するため、タイミングの報告に赤色のテキストが含まれていないことを確認してください。赤色のテキストは、使用時間が割り当てられた目標時間を超過していることを示しており、タイミング違反を意味します。
  7. 「run implementation」をクリックして、設計を実装し、タイミング、電力、およびリソース利用率のレポートを評価します。
  8. FPGAボードをプログラミングするための「.bit」ファイルを生成します。
    注:Ultra96-V2におけるSobelエッジ検出のブロック図は、以下に示されています。 図3前述の通り、ブロック図は基本的に、FPGAボードのPS部とPL部の間のインターフェースを確立するために必要です。

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

  1. SDカードを準備するため、Ultra96-V2ボード用のPYNQイメージファイル(.img)をダウンロードし16、ダウンロードしたファイルをSDカードにインストールします。
  2. Ultra96-V2リファレンスマニュアル16に従ってスイッチ位置を選択し、SDカードブートモードでボードの電源を入れます。
  3. URL http://192.168.3.1 にアクセスし、プロンプトが表示されたらユーザー名とパスワードの両方に「xilinx」と入力します。
    注:技術的な不整合を避けるため、Google Chromeブラウザの使用が推奨されます。
  4. Jupyterプラットフォームにアクセスし、入力画像またはビデオを読み込み、読み込んだ画像を処理のためにPL部に送信するPS部分のPythonコードを記述します。
  5. 処理済み画像をPLからPSに書き戻し、結果を表示するためのコードを記述します。
    注:Ultra96-V2で結果を表示する場合、PYNQプラットフォームが使用されます。これにより、PythonコードとOpenCVライブラリを使用するだけで、出力画像を非常に簡単に表示できます。
    図4に、本セクションで実演したUltra96-V2によるアプローチの手順と得られた出力結果を示します。

アクセスが制限されています。このコンテンツを表示するにはログインするか、トライアルを開始してください。

結果

このセクションでは、Ultra96-V2におけるSobelエッジ検出の設計で得られた結果について述べます。 図 5 以下に、HLSシミュレーションを通じて得られた入力画像と出力画像を示します。使用した画像は512 × 512サイズの標準画像です。これらの結果は、Sobelエッジ検出用に記述されたHLSコードが機能的に正しいことを示しています。結果として得られた画像では、エッジが明確に視認できなければなりません。

表3に、FPGAパーツとしてxczu3eg-sbva484-1-eを使用したUltra96-V2における合成レポート、および生成されたタイミングとリソース利用率のパラメータを示します。このレポートには、設計がユーザーの指定したタイミング制約を満たしているかを示すタイミング関連の情報が含まれています。タイミングサマリーによると、推定時間は8.544 nsであり、ターゲット時間である10 nsを下回っているため、設計がユーザー制約を満たしていることが明...

アクセスが制限されています。このコンテンツを表示するにはログインするか、トライアルを開始してください。

ディスカッション

本論文では、コンピュータビジョンおよび画像処理の多岐にわたる分野のさまざまなアプリケーションにおいて不可欠な要素である、Sobelエッジ検出アルゴリズムの実行に焦点を当てます2,3,4,5,6。Sobelエッジ検出の実装はVivado HLSツールを用いて行われ、ハードウェア記述言語に依存せず高位言語でのコーディングを可能にしています。Vivado HLSコードはUltra96-V2ボード上で動作します。実装後の結果から、実装された設計が高解像度画像をサポートし、周波数136 MHz、消費電力2 Wで動作し、ボード上の総リソースの20%未満しか使用しないことが示されました。また、異なるアプリケーションによって異なる画像サイズの使用が求められる場合があり、エッジ検出は通常、複雑な設計パイプラインにおいて非常に頻繁に行われる中間ステップであるため

アクセスが制限されています。このコンテンツを表示するにはログインするか、トライアルを開始してください。

開示事項

著者は利益相反がないことを宣言します。本原稿の作成において、人工知能(AI)ツールは使用されていません。

謝辞

著者は、謝辞として宣言する事項はありません。本研究は外部資金による援助を受けていません。

アクセスが制限されています。このコンテンツを表示するにはログインするか、トライアルを開始してください。

材料

この記事で使用された材料の一覧
名前会社カタログ番号コメント
Ultra96-V2 FPGAボード Xilinx 2018年導入歩行者検知アルゴリズムの実装に使用したハードウェア実装プラットフォーム
Vivado HLS AMD2019.2インテレクチュアル・プロパティ (IP) をエクスポートするために、論文内の歩行者検知コードの高レベルプログラミングに使用した高位合成ツール
Vivado AMD2019.2Sobelエッジ検知アルゴリズムをUltra 96 v2 FPGAボードに書き込むために使用したFPGAプログラミングツール 

参考文献

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

アクセスが制限されています。このコンテンツを表示するにはログインするか、トライアルを開始してください。

再版と許可

さらに記事を探す

リアルタイムエッジ検出適応型画像解像度FPGAアーキテクチャハードウェア実装Ultra96-V2 FPGA画像処理コンピュータビジョン