1

私の最終的な目標は、Altera DE2 FPGA での顔/物体検出および一般的な画像処理アプリケーションです。FPGA のプログラミングに Catapult C を使用しています (そのため、Verilog や VHDL ではなく、C コードを使用しています)。

私の質問は、Catapult C が openCV ライブラリをサポートしているかどうか、およびライブラリをインストールして Catapult 内で実行する方法に関するヒント/リンクがあるかどうかです。特別な考慮事項はありますか?Google と stackoverflow の両方を検索しましたが、まだ運がありません。ありがとうございました。

4

1 に答える 1

1

FPGA 実行ターゲット用に OpenCV ソース コードをコンパイルしようとさえしません。OpenCV (または大規模なマイクロプロセッサを対象としたコード ベース) には、ライブラリの依存関係とマイクロプロセッサ アーキテクチャ指向の仮定が多すぎます。

どのシステムにも、コンパイル時ライブラリと実行時ライブラリがあります。たとえば、OpenCV 共有ライブラリのランタイム ライブラリの依存関係を見ると、OpenCV 自体が使用するマイクロプロセッサ コード ライブラリが多数あります。

dpointer@death:~$ ldd /usr/lib/libcv.so
linux-vdso.so.1 =>  (0x00007fff1c1ff000)
libcxcore.so.4 => /usr/lib/libcxcore.so.4 (0x00007f03279f7000)
libavformat.so.52 => /usr/lib/libavformat.so.52 (0x00007f0327701000)
libavcodec.so.52 => /usr/lib/libavcodec.so.52 (0x00007f0326ca7000)
librt.so.1 => /lib/librt.so.1 (0x00007f0326a9f000)
libz.so.1 => /lib/libz.so.1 (0x00007f0326888000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f0326683000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f032636f000)
libm.so.6 => /lib/libm.so.6 (0x00007f03260ec000)
libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007f0325edd000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f0325cc0000)
libc.so.6 => /lib/libc.so.6 (0x00007f032593a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f0325722000)
libavutil.so.49 => /usr/lib/libavutil.so.49 (0x00007f0325513000)
libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f0325302000)
libgsm.so.1 => /usr/lib/libgsm.so.1 (0x00007f03250f3000)
libschroedinger-1.0.so.0 => /usr/lib/libschroedinger-1.0.so.0 (0x00007f0324e74000)
libspeex.so.1 => /usr/lib/libspeex.so.1 (0x00007f0324c5a000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0x00007f0324a0b000)
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f0324630000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f0324403000)
/lib64/ld-linux-x86-64.so.2 (0x00007f03282f1000)
liboil-0.3.so.0 => /usr/lib/liboil-0.3.so.0 (0x00007f0324172000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f0323f6b000)
dpointer@death:~$ 

FPGA システムで OpenCV をコンパイルして使用する場合は、FPGA 用にこのライブラリ コードもすべてコンパイルする必要があります。また、コードが FPGA システムで実行されているときに、FPGA 上のこれらのライブラリが確実に利用できるようにする FPGA システムのランタイム環境が必要になります。

これは大変な作業です。OpenCV が使用するすべてのライブラリ、それらのライブラリに必要なすべてのライブラリ、OpenCV 自体、および最上位のアプリケーション コードをコンパイルする必要があります。おっと、FPGA システムのランタイム環境を作成します。それをすべてコンパイルできたとしても、FPGA のリソースには収まりません。

一方、最上位の C コードと必要な画像処理 C コードを記述し、それを FPGA システム用にコンパイルすることもできます。OpenCV ソース コードは、FPGA ターゲットにさまざまな画像処理アルゴリズムを実装する方法を示す優れたリファレンス ツールです。

于 2013-04-26T21:57:30.580 に答える