DeepLearning4j-使用Java训练YOLO模型
在这个Yolo v3发布的大好日子。
Deeplearning4j终于迎来了新的版本更新1.0.0-alpha
,在zoo model
中引入TinyYolo
模型可以训练自己的数据用于目标检测。
不得不说,在Yolo v3这种性能和准确率上面都有大幅度提升的情况下,dl4j才引入TinyYolo总有一种49年加入国军的感觉
一、任务和数据
数据来源自 https://github.com/cosmicad/dataset ,主要目的是识别并定位图像中的红细胞。
数据集总共分为两个部分:
- 数据集:JPEGImages
- 标签:Annotations
1.1 数据集
数据集样张如图所示:
数据集中所有的图像均为.jpg
格式。一共有410张图片用于模型的训练。
1.2 标签
标签如图所示,每一个图片都会有一个对应的xml
文件作为训练标签。

没一个标签的数据都是遵守PASCAL VOC
的数据格式,文件内容如下:
<annotation verified="no">
<folder>RBC</folder>
<filename>BloodImage_00000</filename> //对应的图片
<path>/Users/cosmic/WBC_CLASSIFICATION_ANNO/RBC/BloodImage_00000.jpg</path> //路径(不重要)
<source> //数据来源(不重要)
<database>Unknown</database>
</source>
<size> //图像的宽高和通道数
<width>640</width>
<height>480</height>
<depth>3</depth>
</size>
<segmented>0</segmented> //是否用于分割(在图像物体识别中01无所谓)
<object> //需要检测的物体
<name>RBC</name> //物体类别的标签,可以使用中文
<pose>Unspecified</pose> //拍摄角度
<truncated>0</truncated> //是否被截断(0表示完整)
<difficult>0</difficult> //目标是否难以识别(0表示容易识别)
<bndbox> //bounding-box(包含左上角和右下角xy坐标)
<xmin>216</xmin>
<ymin>359</ymin>
<xmax>316</xmax>
<ymax>464</ymax>
</bndbox