wordpress 添加搜索欄搜索引擎優(yōu)化的核心及內(nèi)容
【寫在前面】 飛騰開(kāi)發(fā)者平臺(tái)是基于飛騰自身強(qiáng)大的技術(shù)基礎(chǔ)和開(kāi)放能力,聚合行業(yè)內(nèi)優(yōu)秀資源而打造的。該平臺(tái)覆蓋了操作系統(tǒng)、算法、數(shù)據(jù)庫(kù)、安全、平臺(tái)工具、虛擬化、存儲(chǔ)、網(wǎng)絡(luò)、固件等多個(gè)前沿技術(shù)領(lǐng)域,包含了應(yīng)用使能套件、軟件倉(cāng)庫(kù)、軟件支持、軟件適配認(rèn)證四大板塊,旨在共享尖端技術(shù),為開(kāi)發(fā)者提供一個(gè)涵蓋多領(lǐng)域的開(kāi)發(fā)平臺(tái)和工具套件。 點(diǎn)擊這里開(kāi)始你的技術(shù)升級(jí)之旅吧
????
本文分享至飛騰開(kāi)發(fā)者平臺(tái)《飛騰平臺(tái)OpenCV編譯安裝說(shuō)明》
1 介紹
??OpenCV(Open Source Computer Vision Library)是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。軟件庫(kù)包含了超過(guò)2500種計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)的通用算法,廣泛應(yīng)用于人臉檢測(cè)、人臉識(shí)別、目標(biāo)檢測(cè)、視頻內(nèi)行為分析、3D建模、相似圖像檢測(cè)、眼動(dòng)追蹤和增強(qiáng)現(xiàn)實(shí)等等。OpenCV同時(shí)提供了C++, Java, MATLAB等語(yǔ)言的接口,可利用處理器相關(guān)SIMD指令集對(duì)程序進(jìn)行加速,也支持CUDA和OpenCL。OpenCV是模塊化的結(jié)構(gòu)設(shè)計(jì),包括了多個(gè)共享或靜態(tài)庫(kù),如表1.1所示。關(guān)于OpenCV的更多信息請(qǐng)查閱參考文獻(xiàn)【1】(文末)。
核心功能(core) | 定義了基本的的數(shù)據(jù)結(jié)構(gòu),包含矩陣的數(shù)據(jù)結(jié)構(gòu)和基本操作方式。 |
---|---|
圖像處理(imgproc) | 包括線性和?線性的圖像濾波、?何圖像轉(zhuǎn)換(縮放、仿射和透視調(diào)整)、顏?模式轉(zhuǎn)換、直?圖等等。 |
視頻分析(video) | 包含了運(yùn)動(dòng)估計(jì)、背景消除和?標(biāo)跟蹤算法。 |
立體標(biāo)定和3D重建(calib3d) | 提供基本的多視圖?何算法、平?和?體影像校正、目標(biāo)姿態(tài)估計(jì)和3D重建算法。 |
二維特征框架(Features2d) | 顯著特征探測(cè)器、描述符和描述符匹配器。 |
目標(biāo)檢測(cè)(Objectect) | 檢測(cè)對(duì)象和預(yù)定義的類的實(shí)例(例如:臉部、眼睛、杯?、?、?等等)。 |
圖像界面(Highgui) | 提供?個(gè)簡(jiǎn)單易?的UI。 |
視頻接口(videoio) | 提供?個(gè)簡(jiǎn)單易?的視頻捕獲和編碼解碼界?。 |
其他 | FLANN(神經(jīng)?絡(luò))和Google測(cè)試封裝、 Python綁定等等 |
2 環(huán)境說(shuō)明
2.1 硬件環(huán)境
??硬件環(huán)境如下表所示。
項(xiàng)目 | 說(shuō)明 |
---|---|
CPU | FT-2000/4 |
網(wǎng)絡(luò) | 可訪問(wèn)外網(wǎng) |
存儲(chǔ) | 無(wú)要求 |
內(nèi)存 | 無(wú)要求 |
2.2 軟件環(huán)境
2.2.1 操作系統(tǒng)
??操作系統(tǒng)環(huán)境如下表所示。
項(xiàng)目 | 說(shuō)明 |
---|---|
Kylin | V10 |
Kernel | 4.4.131 |
2.2.2 軟件環(huán)境
軟件環(huán)境如下表所示。
項(xiàng)目 | 版本 | 下載地址 |
---|---|---|
GCC | 5.4.0 | |
cmake | 3.18.0 | https://github.com/Kitware/CMake/releases/download/v3.18.6/cmake-3.18.0.tar.gz |
OpenCV | 4.4.0 | https://github.com/opencv/opencv/archive/4.4.0.tar.gz |
OpenCV_extra | 4.4.0 | https://github.com/opencv/opencv_extra/archive/4.4.0.tar.gz |
3 編譯安裝
3.1 安裝OpenCV所需依賴庫(kù)
??依賴版本要求:
????GCC 4.4.x or later
????CMake 2.8.7 or higher
????Git
????GTK+2.x or higher, including headers (libgtk2.0-dev)
????pkg-config
????Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev,python-numpy)
????ffmpeg or libav development packages: libavcodec-dev, libavformat-dev,libswscale-dev
??可選項(xiàng):
????libtbb2 libtbb-dev
????libdc1394 2.x
????libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
????CUDA Toolkit 6.5 or higher
??安裝方式:
# sudo apt-get install build-essential
# sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev
libavformat-dev libswscale-dev python-dev python-numpy libopenblas-dev
??安裝選裝庫(kù):
方式一:
# sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev
libtiff-dev libjasper-dev libdc1394-22-dev
方式二: 選擇相應(yīng)的配置選項(xiàng)后,OpenCV會(huì)在安裝過(guò)程中自動(dòng)下載相關(guān)項(xiàng)依賴庫(kù)。
3.2 編譯安裝OpenCV
??第一步 下載源碼包(建議在網(wǎng)頁(yè)端下載源碼)。
git clone <https://github.com/opencv/opencv/archive/4.4.0.tar.gz> /git clone <https://github.com/opencv/opencv_extra/archive/4.4.0.tar.gz>
??第二步 解壓。
tar zxf opencv-4.4.0.tar.gztar zxf opencv_extra-4.4.0.tar.gz
??第三步 編譯選項(xiàng)配置(詳細(xì)配置選項(xiàng)見(jiàn)第四章)。
cd opencv-4.4.0mkdir buildcd buildcmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
????三種cmake選項(xiàng)配置方式:
????A、命令行 cmake -Doption=value
????B、cache文件 cmake -C my_options.txt
????C、交互式:ccmake 或者 cmake-gui
????Note : 對(duì)于Tengine等選裝項(xiàng),opencv會(huì)在選擇配置后自動(dòng)下載安裝。
??第四步 編譯安裝。
make -j4make install \#默認(rèn)安裝到 /usr/local/目錄下#或者下列方式,去掉strip信息cmake --build . --target install/strip
??第五步 配置
????1、配置安裝庫(kù)到全局變量
在/etc/ld.so.conf/目錄下opencv.conf添加 \<path to your OpenCV installed \>到 opencv.confLdconfig
????2、配置測(cè)試文件路徑(可直接添加到當(dāng)前用戶的環(huán)境變量之中方便后續(xù)測(cè)試工作。)
export OPENCV_TEST_DATA_PATH = \<path to opencv_extra/testdata\>
3.3 OpenCV運(yùn)行驗(yàn)證
??可執(zhí)行bin目錄下opencv_test_** 任意一測(cè)試程序,以core模塊為例:
cd \<path to build dir/bin\>./opencv_test_core
?
?
??Note :對(duì)于dnn的測(cè)試只有卷積計(jì)算部分,對(duì)于模型的測(cè)試需要額外下載相關(guān)的模型文件。
4 編譯選項(xiàng)說(shuō)明
??本章只列出了OpenCV-4.4.0部分并行化和DNN相關(guān)的配置選項(xiàng),其他選項(xiàng)請(qǐng)查閱參考文獻(xiàn)【2】。
4.1 并行化選項(xiàng)
選項(xiàng) | 默認(rèn)值 | 平臺(tái) | 描述 | |
---|---|---|---|---|
pthreads | WITH_PTHREADS_PF | ON | Unix-like | Default backend based on?pthreads?library is available on Linux, Android and other Unix-like platforms. Thread pool is implemented in OpenCV and can be controlled with environment variables?OPENCV_THREAD_POOL_*. Please check sources in?modules/core/src/parallel_impl.cpp?file for details. |
TBB | WITH_TBB | OFF | Multiple | Threading Building Blocks?is a cross-platform library for parallel programming. |
OpenMP | WITH_OPENMP | OFF | Multiple | OpenMP?API relies on compiler support. |
HPX | WITH_HPX | OFF | Multiple | High Performance ParallelX?is an experimental backend which is more suitable for multiprocessor environments. |
4.2 GUI選項(xiàng)
選項(xiàng) | 默認(rèn)值 | 平臺(tái) | 描述 |
---|---|---|---|
WITH_GTK | ON | Linux | GTK?is a common toolkit in Linux and Unix-like OS-es. By default version 3 will be used if found, version 2 can be forced with the?WITH_GTK_2_X?option. |
WITH_WIN32UI | ON | Windows | WinAPI?is a standard GUI API in Windows. |
N/A | ON | macOS | Cocoa?is a framework used in macOS. |
WITH_QT | OFF | Cross-platform | Qt?is a cross-platform GUI framework. |
4.3 深度神經(jīng)網(wǎng)絡(luò)相關(guān)選項(xiàng)
選項(xiàng) | 默認(rèn)值 | 描述 |
---|---|---|
WITH_PROTOBUF | ON | Enables?protobuf?library search. OpenCV can either build own copy of the library or use external one. This dependency is required by the?dnn?module, if it can't be found module will be disabled. |
BUILD_PROTOBUF | ON | Build own copy of?protobuf. Must be disabled if you want to use external library. |
PROTOBUF_UPDATE_FILES | OFF | Re-generate all .proto files.?protoc?compiler compatible with used version of?protobuf?must be installed. |
OPENCV_DNN_OPENCL | ON | Enable built-in OpenCL inference backend. |
WITH_INF_ENGINE | OFF | Enables?Intel Inference Engine (IE)?backend. Allows to execute networks in IE format (.xml + .bin). Inference Engine must be installed either as part of?OpenVINO toolkit, either as a standalone library built from sources. |
INF_ENGINE_RELEASE | 2020040000 | Defines version of Inference Engine library which is tied to OpenVINO toolkit version. Must be a 10-digit string, e.g.?2020040000?for OpenVINO 2020.4. |
WITH_NGRAPH | OFF | Enables Intel NGraph library support. This library is part of Inference Engine backend which allows executing arbitrary networks read from files in multiple formats supported by OpenCV: Caffe, TensorFlow, PyTorch, Darknet, etc.. NGraph library must be installed, it is included into Inference Engine. |
OPENCV_DNN_CUDA | OFF | Enable CUDA backend.?CUDA, CUBLAS and?CUDNN?must be installed. |
WITH_HALIDE | OFF | Use experimental?Halide?backend which can generate optimized code for dnn-layers at runtime. Halide must be installed. |
WITH_VULKAN | OFF | Enable experimental?Vulkan?backend. Does not require additional dependencies, but can use external Vulkan headers (VULKAN_INCLUDE_DIRS). |
WITH_TENGINE | OFF | Enable experimental?Tengine?backend for ARM CPUs. Tengine library must be installed. |
4.3.1 Tengine配置方式
??-DWITH_TENGINE=ON
??方式一:編譯過(guò)程中自動(dòng)下載安裝(需要機(jī)器聯(lián)網(wǎng))
??方式二:使用預(yù)編譯的lib,并制定路徑
??-DOPENCV_LIBTENGINE_ROOT_DIR=/UserFileDir/Tengine-library-dir
??配置安裝成功后:
??可通過(guò)strings <path to your opencv installed>/lib/ libopencv_dnn.so.xx.xx.xx |grep TENGINE驗(yàn)證:
?
??沒(méi)有配置成功則無(wú)顯示.
4.4 CPU相關(guān)優(yōu)化選項(xiàng)
??這部分選項(xiàng)一般不需要設(shè)置,編譯安裝過(guò)程會(huì)自動(dòng)識(shí)別。如果需要添加特定feature,可以自己添加。只要CPU支持,就會(huì)按照相關(guān)的代碼路徑去執(zhí)行程序。
??CPU_BASELINE: CPU支持的SIMD指令集
??如 CPU_BASELINE = NEON,FP16
??CPU_DISPATCH:自定義支持其他SIMD指令集。
??如 CPU_DISPATCH = AVX,AVX2
??Note: 運(yùn)行時(shí)如不需要利用某個(gè)SIMD指令可以設(shè)置OPENCV_CPU_DISABLE來(lái)實(shí)現(xiàn),如:
??OPENCV_CPU_DISABLE=FP16
5 參考資料
??[1]OpenCV官網(wǎng)及github:https://opencv.org/;https://github.com/opencv/opencv
??[2]OpenCV配置參考https://docs.opencv.org/master/db/d05/tutorial_config_referen...
推薦閱讀
- 基于飛騰平臺(tái)的Sqoop的安裝配置
- 基于飛騰平臺(tái)的Flume的安裝配置
歡迎廣大開(kāi)發(fā)者來(lái)飛騰開(kāi)發(fā)者平臺(tái)獲取更多前沿技術(shù)文檔及資料
如開(kāi)發(fā)者在使用飛騰產(chǎn)品有任何問(wèn)題可通過(guò)在線工單聯(lián)系我們
版權(quán)所有。飛騰信息技術(shù)有限公司 2023。保留所有權(quán)利。
未經(jīng)本公司同意,任何單位、公司或個(gè)人不得擅自復(fù)制,翻譯,摘抄本文檔內(nèi)容的部分或全部,不得以任何方式或途徑進(jìn)行傳播和宣傳。
商標(biāo)聲明
Phytium和其他飛騰商標(biāo)均為飛騰信息技術(shù)有限公司的商標(biāo)。
本文檔提及的其他所有商標(biāo)或注冊(cè)商標(biāo),由各自的所有人擁有。
注意
本文檔的內(nèi)容視為飛騰的保密信息,您應(yīng)當(dāng)嚴(yán)格遵守保密任務(wù);未經(jīng)飛騰事先書(shū)面同意,您不得向任何第三方披露本文檔內(nèi)容或提供給任何第三方使用。
由于產(chǎn)品版本升級(jí)或其他原因,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),飛騰在現(xiàn)有技術(shù)的基礎(chǔ)上盡最大努力提供相應(yīng)的介紹及操作指引,但飛騰在此明確聲明對(duì)本文檔內(nèi)容的準(zhǔn)確性、完整性、適用性、可靠性的等不作任何明示或暗示的保證。
本文檔中所有內(nèi)容,包括但不限于圖片、架構(gòu)設(shè)計(jì)、頁(yè)面布局、文字描述,均由飛騰和/或其關(guān)聯(lián)公司依法擁有其知識(shí)產(chǎn)權(quán),包括但不限于商標(biāo)權(quán)、專利權(quán)、著作權(quán)等。非經(jīng)飛騰和/或其關(guān)聯(lián)公司書(shū)面同意,任何人不得擅自使用、修改,復(fù)制上述內(nèi)容。