Environment Configuration for Yolo-darknet

Just do it.
Just do something new and do it yourself.

记录一些关于yolo-darknet环境配置踩过的坑。
能力有限,但求指点,欢迎交流。

搭建环境

  • OS: Ubuntu 16.04 LTS
  • PC: ASUS K550J (EFI enable)
  • GPU: GTX950M
  • CPU: i5-4200H
  • RAM: 4G
  • DISK: 1T HDD (no SSD)

配置过程

安装Ubuntu

  1. 用UltraISO把iso文件烧到你的U盘,进BIOS打开EFI引导,并选择EFI模式下的U盘为第一引导项
  2. 安装Ubuntu到一个空白分区(可以通过分区压缩获得,如果是全新电脑就直接开始分区了):
    • 注意根据提示划分那块bios efi的小分区,几十K即可
    • 划分swap交换分区,一般是你内存大小的3倍大,划在主分区后面
    • 剩下的划给主分区;
    • 选择安装启动器到Windows使用的那个EFI启动分区
  3. 进入分区界面前有几个选项要注意:
    • 让你顺带安装更新的那个,不要勾选,更新的源大多自动匹配到了国外的,网速你懂的;
    • 让你安装第三方闭源驱动和软件的,必须勾选,能解决很多开源驱动带来的问题。
  4. 安装,然后回到BIOS里面你会惊奇的发现出现了Ubuntu的EFI模式引导项(准确来说是两个,估计是那次我多搞了一个/boot)选择它为第一个。
  5. 成功进入Ubuntu

安装OpenCV

安装OpenCV主要是为了使用外置摄像头进行图像采集。

GitHub上有自动安装版本

1
2
sudo su 
git clone https://github.com/jayrambhia/Install-OpenCV/tree/master/Ubuntu

进入安装目录下的/2.4,提升*.sh文件的权限并执行

1
2
3
sudo su
chmod a+x *.sh
./opencv2_4_10.sh

然后就会开始极其漫长的安装过程。

第一次安装到某个阶段的时候卡死,
硬盘灯不闪,鼠标键盘没反应,我还以为安装失败强行重启了。
然后又开始一遍,又卡死。
我绝望了,但是冷静了下来,想了想
——怕是自己电脑配置太渣。
然后在安装前关闭了所有无关程序,
唯独打开了系统监视器(即Windows下的任务管理器)。
之后就非常惊奇地看到卡死的时候:
内存+CPU,全部占用100%
然后过了大概一个多小时,又全部降回去了,
没过三分钟,又是内存飙到100%,CPU反倒正常了
目测过了三个多小时,还是这个样子,倒是命令行每隔十几分钟跳一次字,
系统时钟已经卡到了和实际时间存在了十分钟到半小时不等的时差,
只有某几次命令行跳字的时候,内存占用下来了一点,系统时间一秒刷新了十几分钟
最后一脸无奈地睡了。
第二天打开笔记本盖子一看,
装好了,老大一个success。

安装darknet

打开终端

1
2
3
sudo su
git clone http://github.com/pjreddie/darknet.git
cd darknet

用gedit修改makefile文件
令OPENCV=1
然后在终端输入

1
make -j8

安装NVIDIA官方GPU驱动

首先禁用开源驱动

新建一个.conf文件

1
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

写入以下内容

1
2
3
4
5
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

保存,重启后再打开终端,输入
1
lsmod | grep nouveau

无输出即禁用成功

正式开始安装NVIDIA官方驱动了
我这里选择的是直接到系统的“软件和更新”里的“附加驱动”选择安装NVIDIA的专有驱动
(不要管他是否显示tested,安装就是了)

等待安装成功后,重启打开终端,输入

1
nvidia-smi

正确显示你当前GPU的状况就OK了

安装CUDA

CUDA下载地址:https://developer.nvidia.com/cuda-downloads
选项顺序是Linux-x86_64-Ubuntu-16.04-deb(local)
1点多G,然后找个下载速度快的地方下了它,推荐迅雷等下载工具
虽然并没有加速,但毕竟服务器在境外,浏览器没法断点续传,连接一断就得重新下载。

然后把下载好的文件包拷到“/home/用户名/”目录下,在终端里面输入
(注意你的deb文件名不一定是这个,这个是旧版的了)

1
2
3
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda

安装完成后输入
(注意你的cuda文件夹不一定是这个7.5的,这个是旧版的了)

1
2
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-7.5/bin:$PATH

再次安装darknet

再次用gedit打开makefile
(注意你的cuda文件夹不一定是这个7.5的,这个是旧版的了)
令开头GPU=1,同时令NVCC = /usr/local/cuda-7.5/bin/nvcc后保存退出
然后在终端输入

1
make -j8

测试darknet

下载模型+测试模型

到这儿下载*.weight格式的模型:http://pjreddie.com/darknet/yolo/

终端切换到darknet的安装目录下
示例命令如下:

1
2
./darknet detect cfg/yolo.cfg yolo.weight data/horses.jpg
./darknet yolo test cfg/yolo-tiny.cfg yolo-tiny.weight

使用电脑/手机摄像头采集图像

电脑摄像头:

1
./darknet detector demo cfg/voc.data cfg/tiny-yolo-voc.cfg weights/tiny-yolo-voc.weights

手机摄像头:

先在手机上安装好IP摄像头APP,配置好地址后,先用浏览器访问以确定视频源的路径
(因此这里的地址是你配置并确定好视频源的地址)

1
./darknet detector demo data/coco.data yolo.cfg yolo.weights http://192.168.191.2:8080/video

参考资料

  1. http://blog.csdn.net/samylee/article/details/51684856
  2. http://blog.csdn.net/wjbwjbwjbwjb/article/details/52125475
  3. http://blog.csdn.net/u014696921/article/details/65626751
  4. http://blog.csdn.net/wuzuyu365/article/details/52469131
  5. http://blog.csdn.net/zafir_410/article/details/73188228
  6. http://blog.csdn.net/u013832707/article/details/53438574
  7. https://www.cnblogs.com/jackchen-Net/p/7954138.html

最后,这是本站的第六篇正式发文,感谢阅读。
如有意见和建议,欢迎通过首页的联系方式联系作者,
本文参考资料均来源于网络,作者保留相关权利,转载请注明出处。