主にOpenCVが実行時/ビルド時に参照する環境変数の一覧
実行時†
- getenv関数が内部で使用されており、これにより環境変数を取得している
ENV_OPENCV_DNN_TEST_DATA_PATH†
ENV_OPENCV_TEST_DATA_PATH†
GTEST_TEST_FILTER_ENV_VAR_†
OPENCV_CPU_DISABLE†
- coreモジュール
- 用途: 特定のCPU命令群を無効化する
- 使い方
OPENCV_CPU_DISABLE=SSE4.1;SSE4.2
- 解説
- OpenCVでは、プログラム実行時にCPUが受け付ける拡張命令(SIMD命令)の可否をチェックし、内部でboolの配列haveとして保管する
- OPENCV_CPU_DISABLE環境変数を使うことで、このboolの配列の、特定の命令セットを上書きで無効化できる(3.3.0以降)
- 特に複数の命令セットで最適化されている場合はそれぞれの命令セットごとに最適化の効能を調べる場合に、再ビルドすることなくチェックできるので便利
- 環境変数に複数設定する場合は前述の用に;(セミコロン)でつなぐ。使えるセパレータ文字は,(カンマ)、;(セミコロン)の2種類
- 命令セットは以下の名前で指定する
- x86_64系列(SSE、AVX)
- MMX
- SSE
- SSE2
- SSE3
- SSSE3
- SSE4.1
- SSE4.2
- POPCNT
- FP16
- AVX
- AVX2
- FMA3
- AVX512F
- AVX512BW
- AVX512CD
- AVX512DQ
- AVX512ER
- AVX512IFMA
- AVX512PF
- AVX512VBMI
- AVX512VL
- ARM系
- NEON
- PowerPC系 (3.3.1以降)
- VSX
- 3.4.0まではセパレータにハイフンも使えたが、3.4.1以降は使えなくなった(AVX512命令がAVX512-SKXのように細分化され、名前の中にハイフンを含むため)
OPENCV_DNN_TEST_DATA_PATH†
OPENCV_DSHOW_DEBUG†
OPENCV_DUMP_CONFIG†
OPENCV_FFMPEG_DLL_DIR†
OPENCV_FOR_THREADS_NUM†
- coreモジュール
- parallell_forで並列化される部分の並列数
- 設定されない場合はCPUの数で並列化される
- ただAndroidではデフォルト=2でハードコードされてる(環境変数で上書き可能)
OPENCV_IPP†
OPENCV_IPP_CHECK†
OPENCV_LEGACY_WAITKEY†
OPENCV_OPENCL_BUFFERPOOL_LIMIT†
OPENCV_OPENCL_DEVICE†
OPENCV_OPENCL_DEVICE_MAX_WORK_GROUP_SIZE†
- coreモジュール
- device上で走るworkgroupの最大サイズを実行時に書き換える
- OpenCV 3.4.5から導入
OPENCV_OPENCL_FORCE†
- coreモジュール
- 内部で使われてる関数 isOpenCLForced がtrueを返すようになるが、isOpenCLForcedはOpenCV内でどこからも参照されてないため、無効な環境変数。
OPENCV_OPENCL_HOST_PTR_BUFFERPOOL_LIMIT†
OPENCV_OPENCL_PERF_CHECK_BYPASS†
OPENCV_OPENCL_PROGRAM_CACHE†
OPENCV_OPENCL_RAISE_ERROR†
OPENCV_OPENCL_RUNTIME†
- coreモジュール
- OpenCL.dllもしくはlibOpenCL.soをロードするためのパスを環境変数で指定できる
- disabledを指定すると、libOpenCL.soのロードを諦める
OPENCV_OPENCL_SVM_BUFFERPOOL_LIMIT†
OPENCV_OPENCL_SVM_CAPABILITIES_MASK†
OPENCV_OPENCL_SVM_DISABLE†
OPENCV_OPENCL_SVM_DISABLE_UMAT_USAGE†
OPENCV_OPENCL_SVM_FORCE_UMAT_USAGE†
OPENCV_PERF_VALIDATION_DIR†
OPENCV_PYTHON_BINARY†
OPENCV_TEGRA†
- coreモジュール
- HAL(carotene)の利用を実行時に切り替えられる
- OPENCV_TEGRA=disabled と指定すると明示的にcaroteneライブラリの実行を迂回できる
- 3系列のみで有効。4系列では、OPENCV_TEGRAを参照する部分がまるっと削除された。
OPENCV_TEMP_PATH†
OPENCV_TEST_DATA_PATH†
- tsモジュール
- opencv_extraのパスの置き場
- opencv_extraのリポジトリの直下のtestdataのパスを指定する
- 例 /home/user/opencv_extra がリポジトリ場所だとしたら、 /home/user/opencv_extra/testdata を指定する
OPENCV_TRACE†
OPENCV_TRACE_DEPTH_OPENCV†
OPENCV_TRACE_ITT_PARENT†
OPENCV_TRACE_LOCATION†
OPENCV_TRACE_MAX_CHILDREN†
OPENCV_TRACE_MAX_CHILDREN_OPENCV†
OPENCV_TRACE_SYNC_OPENCL†
OPENCV_VIDEOCAPTURE_DEBUG†
ビルド時†
ANT_DIR†
Atlas_ROOT_DIR†
DESTDIR†
EIGEN_ROOT†
GSTREAMER_DIR†
HOME†
IPP_ASYNC_ROOT†
MFX_HOME†
MKLROOT†
NVSDKCOMPUTE_ROOT†
OPEN_NI_INSTALL_PATH†
OPEN_NI_INSTALL_PATH64†
OPEN_NI_LIB†
OPEN_NI_LIB64†
OpenBLAS_HOME†
OpenBLAS†
OPENCV_DOWNLOAD_PATH†
OPENCV_IPP_PATH†
OPENNI2_INCLUDE†
OPENNI2_INCLUDE64†
OPENNI2_LIB†
OPENNI2_LIB64†
OPENNI2_REDIST†
PCSDK_DIR†
TBBROOT†
VA_INTEL_IOCL_ROOT†
VA_INTEL_MSDK_ROOT†
コードのリビジョン†
:OpenCV