基于EXSi的虚拟机Centos7上搭建YOLO图像检测环境

文中用到的文件资料 提取码:c7f6

1.CentOS与EXSi上的显卡实现直通

chrome登录EXSi启用显卡直通


登录EXSi

启用显卡

如果显卡是N卡系列,则可能还需要如下操作,笔者在直通N卡TITAN X的时候遇到了一些坑
N卡图像模块无法直接进行启用 需要对下面的音频模块(High Definition Audio)进行启用 音频启用后图像模块会自动启用


image.png

完成上述操作后,重启服务器,再次通过chrome进入对应IP网页
直通Quadro K4200显卡步骤1

直通Quadro K4200显卡步骤2

直通Quadro K4200显卡步骤3

如果是N卡系列 还需要在宿主机中进行如下设置:
找到虚拟机的vmx文件:


找到虚拟机的vmx文件

在其中添加内容: hypervisor.cpuid.v0 = "FALSE"
在vmx文件中进行配置

然后重启宿主机

登录虚拟机 即可查询显卡已启用

lspci | grep -i nvidia #查询显卡信息
Quadro K4200显卡直通成功

TITAN X显卡直通成功

2.安装对应显卡驱动

安装必要编译器环境:

sudo yum install gcc    
sudo yum install gcc-c++ 

安装kernel-devel(此处要与源码版本一致)

ls /boot | grep vmlinu #查询源码版本信息

源码版本为3.10.0-862.el7.x86_64

对应的kernel-devel-3.10.0-862.el7.x86_64.rpm包 若找不到则自行百度下载

rpm -ivh kernel-devel-3.10.0-862.el7.x86_64.rpm # 安装kernel

下载对应英伟达驱动(此处下载版本为Quadro K4200)英伟达驱动网址

Quadro K4200驱动下载界面

下载完后, 需要禁用系统默认的nouveau

vi /lib/modprobe.d/dist-blacklist.conf

将nvidiafb注释掉。并在下方添加两行

#blacklist nvidiafb
blacklist nouveau
options nouveau modeset=0

再在命令行输入 重建initramfs image

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak 
dracut /boot/initramfs-$(uname -r).img $(uname -r) 

重启输入 若无输出则表示禁用成功

lsmod | grep nouveau

进行英伟达驱动安装

# 修改运行级别为文本模式
systemctl set-default multi-user.target 
# 安装驱动 一直yes/ok即可 界面不动等一下就行
./NVIDIA-Linux-x86_64-430.50.run
# 修改运行级别回图形模式
systemctl set-default graphical.target 
# 重启
reboot
# 重启后
nvidia-smi # 查看驱动是否安装成功 若有输出即安装成功

# 英伟达驱动卸载命令
sh NVIDIA-Linux-x86_64-430.50.run --uninstall

3.安装CUDA9.0以及cuDNN

cuda_9.0.176_384.81_linux.run以及对应的CUDNN在文章开始的文件资料中有 自行下载 下载完后直接安装

sudo sh cuda_9.0.176_384.81_linux-run.run

在这里我们已经在上述第二步骤自己安装了匹配的英伟达驱动,所以第一项Driver出来的时候选择N 后面全是Y ,即可。安装后在用户根目录下的.bashrc文件中加入如下内容:

export PATH=$PATH:/usr/local/cuda-9.0/bin    
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64  
# 保存退出
source .bashrc (立即生效文件)
# 如果是全环境变量(所用用户都能使用),需要在/etc/profile文件加入上面的几句话

下载对应CUDA的CUDNN版本 进行解压

tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz

复制相关文件到cuda特定目录下(我的cuda安装目录为/usr/local/cuda-9.0/)

sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64

修改文件权限 并更新软连接

sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
cd /usr/local/cuda-9.0/lib64
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so

4.安装opencv

添加源并下载安装依赖库

sudo rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
sudo rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro 
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm 
sudo yum install epel-release gcc gcc-c++ cmake python-devel numpy gtk2-devel libdc1394-devel libv4l-devel gstreamer-plugins-base-devel
yum install -y vim epel-release
yum repolist
yum install -y ffmpeg
yum install ffmpeg-devel

下载并安装OpenCV

wget https://github.com/opencv/opencv/archive/3.4.4.zip
unzip 3.4.4.zip
cd opencv-3.4.4
mkdir release
mkdir install
cd release
# 执行下面这个语句时 可能会出现ippcv下载停滞问题
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=path/to /install -D BUILD_TESTS=OFF ..
make
sudo make install

出现IPPCV下载停滞问题:
直接下载对应ippcv包(这里是ippicv_2019_lnx_intel64_general_20180723.tgz)移动到一定位置(这里移动到了opencv文件夹)修改3rdparty/ippcv/ippicv.cmake再重新cmake即可

# 将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改为手动下载的文件的本地路径(也就是将网络下载的模式改为本地文件下载的模式):
"file:/root/opencv-3.4.4/" #(仅供参考,根据自己的路径填写)

添加库路径(创建opencv.conf文件)

vi /etc/ld.so.conf.d/opencv.conf

输入/usr/local/lib,并保存退出然后进行添加profile环境变量

vi /etc/profile

在末尾加入:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

添加bash环境变量:

vi /etc/bash.bashrc

在末尾加入:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

最后更新环境变量并更新系统库缓存:

source /etc/profile
source /etc/bash.bashrc
sudo ldconfig

重启电脑 输入如下指令查看opencv是否安装成功

pkg-config --cflags opencv
pkg-config --modversion opencv

5.安装YOLO

---安装基础版yolo---

git clone https://github.com/pjreddie/darknet.git
cd darknet
# 修改Makefile
vim Makefile

对文件做如下修改

GPU=1    # 使用GPU训练,若有置为1,可根据自己的需要调整
CUDNN=1  # 这里已经安装了cudnn所以设置1
OPENCV=1 # 这里已经安装了opencv所以设置1
OPENMP=0
DEBUG=0

保存并退出 运行测试命令

./darknet

若有输出则为成功

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容