目标检测第6步-使用keras版RetinaNet训练

读者可以加QQ群解决此篇文章复现遇到的问题,群号:111958809

致谢声明

1.本文学习fizyr的github工程《keras-retinanet》,此github工程链接:https://github.com/fizyr/keras-retinanet
此链接中已经具备充分且详细的工程使用指导,本文在此基础上实现数据准备部分的csv文件生成、利用检测模型实现视频检测效果这2个功能。

0.配置代码运行环境

0.1 硬件配置要求

所有的目标检测工程都需要有较大显存的显卡才能够运行,本文作者在编写此文时使用的是8GB显存的RTX2070显卡。
本文作者没有测试6GB显存的显卡是否能运行此工程,读者可以自己尝试。
只有Nvidia品牌的显卡可以运行深度学习,AMD品牌的显卡不可以运行深度学习。
那么Nvidia品牌具有8GB显存的最低价格显卡的型号为GTX1070。
如果购买资金充足,建议购买GTX1080Ti,此版本已经停售,市面上可购二手,11G显存可以运行绝大多数的目标检测算法模型。
如果购买资金不足,最少也得购买GTX1070,否则可能无法继续本文下面的实验。
如果没有nvidia显卡,但有visa信用卡,请阅读我的另一篇文章《在谷歌云服务器上搭建深度学习平台》,链接:https://www.jianshu.com/p/893d622d1b5a

0.2 软件配置要求

各种软件版本:
操作系统:Windows10
Anaconda :5.2
python : 3.6
CUDA :9.0
cudnn :7.3
tensorflow_gpu :1.10
Keras :2.2.4
有显卡之后需要配置深度学习环境,请阅读我的另一篇文章《深度学习环境搭建-CUDA9.0、cudnn7.3、tensorflow_gpu1.10的安装》,链接:https://www.jianshu.com/p/4ebaa78e0233

1.数据准备

1.1 数据下载

如果读者有自己已经使用labelImg软件标注好的数据,可以直接跳到1.4节图片压缩。
本文作者给读者演示的图片数据是来自ImageNet中的鲤鱼分类。
数据集压缩文件n01440764.tar下载链接: https://pan.baidu.com/s/1NksESNqBX--YqMJ4zptGdw 提取码: 6p3u
在桌面新建文件夹keras_RetinaNet,把下载好的压缩文件n01440764.tar放到其中,如下图所示:

image.png

选择 提取到n01440764,如下图所示:
image.png

解压完成后,桌面的文件夹 keras_RetinaNet中的情况,如下图所示:
image.png

1.2 选择像素足够的图片

在此数据集中,大部分图片都较为清晰,但是有极少数图片像素点少,不清晰。
像素点少的图片不利于模型训练或模型测试,所以在本章节中实现用python代码选出部分图片文件。
下载代码文件01_selectImages.py,链接: https://pan.baidu.com/s/1wfUnxYeZ1nJ1jk7G_4oQFQ 提取码: gdek
把代码文件01_selectImages.py放到文件夹keras_RetinaNet中,如下图所示:

image.png

在文件夹 keras_RetinaNet中运行cmd,即在Windows资源管理器的路径处输入 cmd,按Enter键运行,如下图所示:
image.png

在cmd中运行命令 python 01_selectImages.py -d n01440764,如下图所示:
image.png

运行命令完成后,桌面的文件夹 keras_RetinaNet中的情况,如下图所示:
image.png

1.3 图片数据标注

使用打标签工具LabelImg,下载页面链接:https://tzutalin.github.io/labelImg
如果下载页面链接没法访问,也可以从百度云盘中下载。
百度云盘下载链接:https://pan.baidu.com/s/1jVmkLxqQMZNJIzyv75HilA 提取码:yysh
下载页面如下图所示:

image.png

选择下载Windows_v1.8.0,如下图中红色箭头标记处所示:
image.png

把压缩文件 windows_v1.8.0.zip放到D盘根目录中,选择 解压到当前文件夹
解压后D盘根目录下会有 windows_v1.8.0文件夹,LabelImg软件在文件夹中。
选择D盘根目录的原因:如果windows_v1.8.0文件夹路径中带有中文,打开LabelImg软件会 闪退
打开 LabelImg软件,点击下图红色箭头标记处。
image.png

在打开的软件界面,点击 Open Dir按钮,如下图红色箭头标注处所示。
image.png

首先打开桌面的文件夹 keras_RetinaNet,在选中文件夹 01_selectedImages的情况下,点击下图红色箭头标记处所示的 选择文件夹按钮。
image.png

在输入法为英文输入的情况下,按 键盘上的w键则可以开始绘制方框,方框会框住图片中的物体。
完成绘制方框后,还需要为方框标上类别,如下图所示。
注意:每完成一张图的打标签,一定要记得 保存!!!
image.png

在本文演示中,需要给图片中的 鲤鱼人脸2个类别打标签。
鲤鱼的标签名叫做fish,人脸的标签名叫human_face,打标签的结果如下图所示。
注意:用方框框住物体时,尽量框住物体的所有部位,例如本文中的鱼,鱼鳍是一个重要特征。保证框住物体所有部位的情况下,也不要使方框四周留出过多空白。
image.png

遇到特征不明显的图片,可以放弃为此图片打标签,举例如下图所示:
image.png

为200张图片打标签,本文作者共花费90分钟。
本文作者提供200张已经标注的图片,便于读者直接复现。
压缩文件 01_selectedImages.zip下载链接: https://pan.baidu.com/s/1YhLmY-IPpVmyFC4PUjSg_A 提取码: imv4
把压缩文件 01_selectedImages.zip复制到桌面的文件夹 keras_RetinaNet中,并选择 提取到01_selectedImages
完成压缩文件的解压后,桌面的文件夹 keras_RetinaNet中的情况,如下图所示:
image.png

1.4 检查标注数据

下载代码文件02_selectImages.py,链接: https://pan.baidu.com/s/17GAz2eF4sta8pQrNRDlDUQ 提取码: yxjm
把代码文件02_selectImages.py放到桌面的文件夹keras_RetinaNet中。
在文件夹keras_RetinaNet中运行cmd,即在Windows资源管理器的路径处输入cmd,按Enter键运行。
在cmd中运行命令python 02_checkAnnotations.py -d 01_selectedImages,如下图所示:

image.png

1.5 划分训练集和测试集

下载代码文件03_xml2csv.py,链接: https://pan.baidu.com/s/1cygU3AfkPmF3gmCmdlU1oQ 提取码: amja
把代码文件03_xml2csv.py放到桌面的文件夹keras_RetinaNet中。
在文件夹keras_RetinaNet中运行cmd,即在Windows资源管理器的路径处输入cmd,按Enter键运行。
在cmd中运行命令python 03_xml2csv.py -d 01_selectedImages,如下图所示:

image.png

运行命令完成后,桌面的文件夹 keras_RetinaNet中的情况,如下图所示:
image.png

2.模型训练

2.1 下载并安装Microsoft C++ build 14.0

只有先安装C++的编译工具,才能在Windows系统上安装keras_retinanet库。
首先下载Microsoft C++ build 14.0,链接:https://go.microsoft.com/fwlink/?LinkId=691126
文件只有3M左右大小,下载完成如下图所示。

image.png

打开安装文件 visualcppbuildtools.exe,初始化安装程序,如下图所示:
image.png

安装类型选择 自定义,然后点击 下一步,如下图红色箭头标记处所示。
image.png

选择功能只勾选 Windows 10 SDK 10.0.10240,然后点击 下一步,如下图所示:
image.png

点击下图红色箭头标记处所示的 安装按钮,则开始安装。
image.png

安装过程中截图,如下图所示:
image.png

完成安装后,点击 关闭即可。

2.2 下载并安装keras_retinanet库

github工程网页链接:https://github.com/fizyr/keras-retinanet
选择Download ZIP下载工程压缩文件keras-retinanet-master.zip,如下图所示:

image.png

把压缩文件 keras-retinanet-master.zip复制到桌面的文件夹 keras_RetinaNet中,并选择 解压到当前文件夹
完成压缩文件的解压后,桌面的文件夹 keras_RetinaNet中的情况,如下图所示:
image.png

在文件夹 keras-retinanet-master中运行cmd,即在Windows资源管理器的路径处输入 cmd,按Enter键运行,如下图所示:
image.png

在cmd中运行命令 pip install .,如下图所示。
出现下图红色箭头标记处所示信息,则表示已经成功安装keras_retinanet库。
如果不成功,请再次确认cmd是否处于文件夹 keras-retinanet-master路径,如下图红色划线处所示。
image.png

2.3 开始训练

在文件夹keras_RetinaNet中运行cmd,即在Windows资源管理器的路径处输入cmd,按Enter键运行,如下图所示:

image.png

在cmd中运行命令 retinanet-train ...,如下图所示。

你可能感兴趣的:(目标检测第6步-使用keras版RetinaNet训练)