openvino在ubuntu20上的安装部署
bigfly Lv4

先决条件:

ubuntu20.04

openvino runtime2022.04

QT creater/vs code

cmake

opencv

第一步:工具的安装

1.首先当然是安装系统,笔者这里已经安装好ubuntu20.04.6LTS的系统。

image

2.接下来的应用安装顺序没有要求,笔者这里首先安装openvino runtime2022.04

点击这里可以直达下载地址。这里的环境选择运行时(openvino runtime)操作系统选择Linux,版本选择最新的LTS版本,也就是2022.3,这里通过归档文件的方式进行安装。大家也可以点击此链接看官方的安装步骤

image

选择好后依次执行以下命令即可安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo apt install curl

sudo mkdir /opt/intel

cd ~/Downloads

curl -L https://storage.openvinotoolkit.org/repositories/openvino/packages/2022.3/linux/l_openvino_toolkit_ubuntu20_2022.3.0.9052.9752fafe8eb_x86_64.tgz --output openvino_2022.3.0.tgz

tar -xf openvino_2022.3.0.tgz

sudo mv l_openvino_toolkit_ubuntu20_2022.3.0.9052.9752fafe8eb_x86_64 /opt/intel/openvino_2022.3.0

cd /opt/intel/openvino_2022.3.0
sudo -E ./install_dependencies/install_openvino_dependencies.sh

cd /opt/intel
sudo ln -s openvino_2022.3.0 openvino_2022

至此openvino runtime 安装完成,我们可以通过如下命令来验证以下是否安装成功。

1
source /opt/intel/openvino_2022/setupvars.sh

若出现如下图所示的输出,恭喜你已经成功安装openvino runtime

image

注意要想正确使用openvino runtime 每次启动时都要输入上面的一条命令。那官方也给出了一劳永益的方法;

image

具体的做法如下所示:

更新环境变量,编辑./bashrc文件:

1
2
sudo gedit ~/.bashrc

添加下面这条语句,然后 ctrl +s 保存。

1
source /opt/intel/openvino_2022/setupvars.sh 

保存后别忘了执行下面这条语句来更新一下:

1
source ~/.bashre

这样每次新打开一个新终端都会出现OpenVINO™ environment initialized. 从而达到一劳永益的目的。

3.安装QT

这里我们也是通过归档的方式来进行安装。

选择5.12.9版本进行安装链接为https://download.qt.io/archive/qt/5.12/5.12.9/ 注意你可以安装其他版本,但这里建议不要安装过高版本,因为笔者也踩了几次坑。不希望大家把过多的经历花费在软件安装配置上面。

接下俩选择qt-opensource-linux-x64-5.12.9.run即可进行下载。

image

下载完成后断开互联网(否则要填写qt帐号验证),然后执行下面的三条命令进行安装。

1
2
3
cd ~/Downloads
sudo chmod +x qt-opensource-linux-x64-5.12.9.run
sudo ./qt-opensource-linux-x64-5.12.9.run

注意在下图所示界面勾选所有的内容。image

最后点击完成即可,如下图所示。

image

为了方便我们我们可以创建桌面图标。

创建桌面图标需要执行如下操作:

1
sudo gedit /usr/share/applications/QtCreator.desktop

然后在弹出的文本编辑器中输入以下内容。

1
2
3
4
5
6
7
8
[Desktop Entry]
Type=Application
Name=QtCreator
GenericName=QtCreator
Exec=/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator
Icon=/opt/Qt5.12.9/Tools/QtCreator/share/qtcreator/qbs/share/qbs/examples/cocoa-application/CocoaApplication/CocoaApplication.xcassets/AppIcon.appiconset/icon_512x512.png
Terminal=false
Categories=Development;Qt;

最后安装一些包

1
2
sudo apt-get install build-essential
sudo apt-get install libqt4-dev

4.安装opencv

这里用的版本是3.4版本。

可以去Github下载,这里同样给出下载链接https://github.com/opencv/opencv/tree/3.4

下载完成后进行解压,并给权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd ~/Downloads
unzip opencv-3.4.zip
sudo mv opencv-3.4 /opt/opencv-3.4
cd /opt/opencv-3.4
mkdir build

apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install
gedit /etc/ld.so.conf.d/opencv.conf


整个make的过程有点长,请耐心等待,完成后会出现下图所示。

image

1
2
打开文本编辑器后输入如下内容
/user/local/lib
1
2
sudo ldconfig
sudo gedit ~/.bashrc
1
2
3
在打开的文档中输入如下内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
1
source ~/.bashrc
1
输入  pkg-config opencv --modversion   查看版本

image

显示如上信息表示正常。

5.测试环境

接下来笔者用自己之前的一个项目测试一下,是否可以正常工作。

这是一个通过openvino来推理yolov5训练出来的一个数字识别项目。项目结构如下图所示。

  • ./configFiles目录下方的是一些模型文件和类别文件。
  • ./data/test_data目录下放置一些测试图片,./data/save_data目录下用来存放检测结果图片。
  • ./include目录下放置头文件。
  • ./src目录下放置源文件。

image

我们可以在根目录下执行以下命令来编译运行此工程。

1
2
3
4
mkdir build
cmake ..
make

image

执行完上述命令,编译成功后会在build文件夹下生成可执行的mnist 二进制文件。

此时可以直接 在终端输入 ./mnist 来运行此二进制文件。

image

运行结束后即可看到在./data/save_data 目录下生成结果文件。如下图所示:包括一个result.csv文件和一些图片文件。

image

下面打开其中两张张来作为结果展示。

image

image

效果还算非常不错的。至此软件安装 以及测试环节就讲解完毕。

参考资料:

[1] https://docs.openvino.ai/2023.0/home.html

[2]https://blog.csdn.net/xjcwzp/article/details/88861813?ops_request_misc=&request_id=&biz_id=102&utm_term=20:13:55:%20Could%20not%20start%20proc&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-88861813.142

[3]https://blog.csdn.net/jiugeshao/article/details/124288250?spm=1001.2014.3001.5502

[4]https://blog.csdn.net/itliyang/article/details/126259796

[5]https://blog.csdn.net/gLare_nijianwei/article/details/128972547?ops_request_misc=&request_id=&biz_id=&utm_medium=distribute.pc_search_result.none-task-blog-2~all~koosearch~default-6-128972547-null-null.142

[6]https://blog.csdn.net/qq_36373500/article/details/128078092?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168511979016800184166857%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168511979016800184166857&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-128078092-null-null.142

Other:

之后我会完善此部分,分享如何通过openvino进行模型的优化,以及如何通过异步流水线来实现更高的帧率和其他一些模型部署相关的知识。

声明:

时间仓促,很多参考过的资料也无法溯源,在此对开源大佬,以及提供帮助的伙们表示深深的敬意。最后附上我非常喜欢的一句话:看见光,追随光,成为光,发散光。