在linux系统下,从头开始配置一套深度学习目标检测模型,里面有很多自己踩的坑,记录一下,方便自己也方便他人。
要注意:: ubuntu版本是18.04 Anconda 2021.11——python 3.9版本,pycharm2021.3版本
1、下载ubuntu18.04镜像文件,下载vmware虚拟机软件。
这两个内容就直接下载即可完成,然后打开vmware软件,选择新建虚拟机,选择典型选项,然后将你下载的iso镜像文件导入,之后没有什么大问题,一路绿灯下去就行。此处要记得自己设置的虚拟机账户名和密码!!
2、对虚拟机目录进行汉化
一部分人虚拟机打开后不能正常联网,那么你就需要先关闭虚拟机,在你当前的虚拟机主页上点击编辑虚拟机配置,将网络配置改为NAT模式,或者是自定义模型,将自定义模式中选项设置为VMnet8,其实也就还是NAT模式。
下面来说如何汉化??点击设置,进入后选择区域与语言选项,你会看到下面这个画面:点击这个选项,你就可以进入到能下载语言的界面,下载简体中文,然后将中文选项调到最高优先级,重启系统即可。
3、下载PyCharm编辑器
下载pycharm直接在官网下载即可完成。我这下载的是免费社区版。
4、下载Anaconda环境配置
进入Anaconda官网,选择好与python版本相匹配的Anaconda版本,最好选择新一点的anaconda,比如说支持python3.8或者3.9以上的anaconda。
下载完成后,到你设定的下载文件目录下打开终端,输入命令
sh ./Anaconda3-2021.11-Linux-x86_64.sh 运行即可
安装完成后切记要重启终端!!!!
重启完成后,输入python 如果显示出下图,就说明成功了!
自己尝试创建环境
conda create -n object-detection python=3.8
激活环境
conda activate object-detection
5、准备数据集,直接下载或者自己制作都可以
直接下载数据集就不介绍了,下面说一下如何自己制作数据集。
在制作数据集的时候,我们要满足目标检测,就至少需要三个文件,一个是原图像文件夹image,一个是图像类别信息文件classes.txt,还有一个就是带有目标位置和目标信息的xml文件夹。
1)收集数据集,放入image中
2)将类别写入到txt文件中
3)使用labelImg工具来对每一张图片做标注,自动对每张图像生成xml文件。labelImg工具是github上开源的标注工具,你需要用pip下载pip install labelImg
。然后在上述三个文件所在目录打开终端,输入labelImg ./image ./classes.txt
正常情况下会出现下图:如果报错了,说明你少了一个包文件,利用下面这条命令安装即可
sudo apt-get install libxcb-xinerama0
我们可以看到这个界面左侧可以选择图片,选择你xml文件保存的位置,然后开始创建区域,将你要识别的区域框出来,选择对应类别,然后点击保存就行。这样就可以创建自己的数据集了。
最后你需要遍历自己的image文件夹,将训练集和测试集分开到两个文件夹下,主要,你不是把图片分到两个文件夹下,而是把图片名称分到train.txt文件和val.txt文件中。
代码使用这个数据集的流程是:先根据训练程序从train.txt文件内读取文件名,然后根据文件名到image文件夹下找图片和对应的xml文件信息,将其一起读入算作一个训练文件。
6、简单配置一下pycharm
6.1 配置git
首先你要下载git sudo apt-get install git
在终端输入上述命令,即可下载git。
6.2 新建或者从github上拉取项目到本地
7. 下载安装跟本机GPU相匹配的torch或者tensorflow框架
要安装的包:
sudo apt install --reinstall gcc
pip install torch==1.5
pip install pycocotools
直接pip安装即可,只不过要注意查一下本机配置的cuda和cudnn版本以及显卡版本。
当你成功的把代码利用git工具拉取到本地或者你自己写完一个模型时,你可能继续完整的数据集或者已经训练完的检查点文件,这时你可以利用SSH直接从windows平台传入到虚拟机内。具体步骤如下:
1)你需要在windows下载SSH工具 像winscp等
2)查看虚拟机ip,连接要用。不过ubuntu默认不开放ip查看工具,所以你必须按照才可以查看,使用pip install net-tools。
3)ubuntu系统默认不开放SSH链接接口,所以需要在ubuntu上执行下面代码。
sudo apt-get install openssh-server
sudo apt-get install ufw
sudo ufw enable
sudo ufw allow 22
此时你就可以在windows主机中把自己要用的传输到ubuntu上。
如果你还想把普通用户身份转换为root用户来下载包,那就需要su root。输入密码即可。不过在第一次切换时因为root用户没有初始密码,导致不能切换,给root付一个初始密码即可。
sudo passwd root 然后输入密码,确认密码即可。
8、将准备好的数据集和程序联系起来
在训练代码中将数据集位置指向你所制作或者下载的数据集train文件,运行程序即可运行代码。