OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
oneAPIによるOpenCVのビルド

前のチュートリアル: Linuxへのインストール
次のチュートリアル: gccとCMakeでOpenCVを使う

原著者Alessandro de Oliveira Faria
互換性OpenCV >= 4.11.0

クイックスタート

oneAPI は、Intelのオープンイニシアチブ(現在はUXL Foundationによっても維持されている)であり、単一のコードベースでCPU、GPU、FPGA、NPUをプログラミングするための仕様とツールキット群を組み合わせたものである。中核となるのはSYCL標準(並列処理のためのシングルソースC++)であり、高性能ライブラリ群 — oneTBB(並列処理)、oneMKL(線形代数)、oneDNN(ニューラルネットワーク)、oneVPL(ビデオ)など — がこれを補完する。したがって、oneAPIのDPC++(icpx)コンパイラでコンパイルすると、ソースコードを変更することなく、実行時に最適なベクトル命令や利用可能なデバイスを選択する最適化された実行パスをバイナリが獲得する。

CPUを対象とする際にoneAPIエコシステムでOpenCVをコンパイルする理由:

  • 理由は単純で、CMakeオプション -DWITH_SYCL=ON -DWITH_TBB=ON -DWITH_ONEDNN=ON -DWITH_IPP=ON を有効にし、icpxコンパイラを使用すると、OpenCVコアがoneAPIライブラリを直接呼び出すようになるからである。
  • oneDNN は cv::dnn レイヤの汎用カーネルを、AVX2、AVX-512、AMX、VNNI を活用した実装に置き換え、最新CPU上で畳み込み・行列積・ネットワーク後処理を最大3〜5倍高速化する。
  • oneTBB はスレッドプールを引き受け、cv::resizecv::GaussianBlur といったフィルタや G-API パイプラインを、ビジーウェイトなしで全コアにわたってスケジューリングする。
  • IPP(現在は oneAPI Base Toolkit 経由で配布される)は基本演算(SAD、DFT、メディアン平滑化)向けに最適化されたイントリンシックルーチンを提供し、OpenCV は HAVE_IPP マクロを検出した際にこれらを呼び出す。
  • これらはすべて透過的に行われる。cv::Mat を使用するソースコードは変わらないが、リンクされるシンボルはベクトル化されたバージョンを指し、内部のディスパッチャが実行時に適切なベクトル幅を選択する。

CPUプロセッサの要件

以下の Intel® 64 アーキテクチャベースのシステムは、ホストプラットフォームおよびターゲットプラットフォームの両方としてサポートされている。

  • Intel® Core™ プロセッサファミリ以上
  • Intel® Xeon® プロセッサファミリ
  • Intel® Xeon® スケーラブルプロセッサファミリ

アクセラレータの要件

  • 統合 GEN9(以上)の GPU。Intel® Graphics Compiler for OpenCL™ のソースを参照。
  • FPGA カード: Intel(R) DPC++ Compiler のシステム要件を参照。

ディスク容量の要件

  • 標準インストールでディスク容量 3.3 GB(最小)。
覚え書き
: インストール処理中に、インストーラはダウンロードおよび中間インストールファイルを管理するため、最大 6 GB の追加の一時ディスク容量を必要とする場合がある。

メモリ要件

  • 8 GB RAM 推奨

oneAPIのインストール方法

oneAPI のインストール: openSUSE 上で oneAPI エコシステムを素早くセットアップするには、公式ガイド https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html に従えばよい。このガイドでは、ディストリビューション専用のリポジトリ(zypper ar … oneAPI)を有効化し、メタパッケージ(たとえば intel-basekit(DPC++、TBB、oneDNN、IPP コンパイラ)や、HPC やグラフィックスツールが必要な場合はオプションで intel-hpckit または intel-renderkit)をインストールする方法が示されている。また、source /opt/intel/oneapi/setvars.sh で環境を読み込むといったインストール後の調整についても説明されており、これによりバイナリ(icpx、dpcpp)とライブラリが、アクセラレーションされたアプリケーションのコンパイルおよび実行のためにシェル上で直ちに利用可能になる。

ダウンロード、GitHubの手順、ビルドとインストール

  1. 以下は最新バージョン(本テキストの公開日時点での最新リリース)をダウンロードするためのコマンドである:
git clone https://github.com/opencv/opencv.git
  1. そして、ブランチ 4.* を使用していることを確認する:
git status
On branch 4.x
  1. OpenCV リポジトリに移動し、ビルドフォルダを準備する:
cd opencv
mkdir build
cd build
  1. Intel oneAPI 環境変数を設定する。デフォルトインストールの場合:
source /opt/intel/oneapi/setvars.sh
  1. プロジェクトを構成するため、Intel® oneAPI DPC++/C++ Compiler を指定して CMake * を実行する:
cmake -DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx
-DCMAKE_CXX_FLAGS="-march=native -mavx -mfma -msse -msse2" ..
cmake --build .
  1. 次に openCV* が Intel® oneAPI DPC++/C++ Compiler でコンパイルされていることを確認し、インストールする:
readelf -p .comment bin/opencv_annotation
String dump of section '.comment':
[ 0] GCC: (SUSE Linux) 13.3.1 20250313 [revision 4ef1d8c84faeebffeb0cc01ee22e891b41e5c4e0]
[ 56] GCC: (SUSE Linux) 12.3.0
[ 6f] Intel(R) oneAPI DPC++/C++ Compiler 2025.1.1 (2025.1.1.20250418)
make install

それでは楽しんで...