《我的PaddlePaddle学习之路》笔记十——自定义图像数据集实现目标检测
在阅读这一篇文章之前,要先阅读上一篇文章使用 VOC 数据集的实现目标检测,因为大部分的程序都是使用上一篇文章所使用到的代码和数据集的格式。在这篇文章中介绍如何使用自定义的图像数据集来做目标检测。
在阅读这一篇文章之前,要先阅读上一篇文章使用 VOC 数据集的实现目标检测,因为大部分的程序都是使用上一篇文章所使用到的代码和数据集的格式。在这篇文章中介绍如何使用自定义的图像数据集来做目标检测。
PASCAL VOC 挑战赛是视觉对象的分类识别和检测的一个基准测试,提供了检测算法和学习性能的标准图像注释数据集和标准的评估系统。
场景文字识别到底有什么用呢,说得大一些在自动驾驶领域,公路上总会有很多的路牌和标识,这些路牌标识通常会有很多的文字说明,我们就要识别这些文字来了解它们的含义。还有老师在黑板上写的笔记,如果使用场景文字识别技术,我们直接拍个照,直接识别黑板中的文字内容,就可以省去很多抄笔记时间了。
车牌识别的应用场景有很多,比如在停车场。通过车牌识别登记入库和出库的车辆的情况,并计算该车停留时间,然后折算费用。还可以在公路上识别来往的车辆,方便交警的检查等等。接下来我们就是使用 PaddlePaddle 来做一个车牌识别,我们直接通过段端到端识别,不用分割即可完成识别。在阅读这篇文章时,
在上一篇文章中介绍了验证码的识别,但是使用的传统的验证码分割,然后通过图像分类的方法来实现验证码的识别的,这中方法比较繁琐,工作量比较多。在本篇文章会介绍验证码端到端的识别,直接一步到位,不用图像分割那么麻烦了。好吧,现在开始吧!
本次使用的验证码是方正系统,现在很多的大学的教务系统用的就是这个方正系统,刚好既然那么普遍,我们就用它练一练手。经过观察大量的验证码发现,该系统的验证码只有小写的字母和数字,这样分类就少了很多了。该系统的验证码如下:
如果我们要训练自己的数据集的话,就需要先建立图像列表文件,下面的代码是 Myreader.py
读取图像数据集的一部分,从这些代码中可以看出,图像列表中,图像的路径和标签是以 \t
来分割的,所以我们在生成这个列表的时候,使用 \t
就可以了。
本次项目中使用的是一个 32*32 的彩色图像的数据集 CIFAR-10,CIFAR-10 数据集包含 10 个类的 60000 个 32x32 彩色图像,每个类有 6000 个图像。有 50000 个训练图像和 10000 个测试图像。数据集分为五个训练 batch 和一个测试 batch,每个 batch 有 10000 个图像。测试 batch 包含来自每个类 1000 个随机选择的图像。训练 batch 按照随机顺序包含剩余的图像,但是一些训练 batch 可能包含比另一个更多的图像。在他们之间,训练的 batch 包含每个类别正好 5000 张图片。
如题目所示,本次训练使用到的是 MNIST 数据库的手写数字,这个数据集包含 60,000 个示例的训练集以及 10,000 个示例的测试集。图片是 28x28 的像素矩阵,标签则对应着 0~9 的 10 个数字。每张图片都经过了大小归一化和居中处理。该数据集的图片是一个黑白的单通道图片,其中图片如下:
PaddlePaddle 目前还不支持 Windows,如果读者直接在 Windows 上安装 PaddlePaddlePaddle 的话,就会提示没有找到该安装包。如果读者一定要在 Windows 上工作的话,笔者提供两个建议:一、在 Windows 系统上使用 Docker 容器,在 Docker 容器上安装带有 PaddlePaddle 的镜像;二、在 Windows 系统上安装虚拟机,再在虚拟机上安装 Ubuntu。