茶叶叶片品相识别检测数据集 yolo数据集 共2300张
茶叶叶片品相识别数据集(Tea Leaf Quality Recognition Dataset, TLQRD)
摘要
TLQRD 是一个专注于茶叶叶片品相识别的数据集,旨在为茶叶生产领域提供一个标准化的训练和评估平台。该数据集包含了2300张高清的茶叶叶片图像,这些图像来自多个茶树品种和生长环境。每张图像都被详细地标注了茶叶叶片的质量等级,包括粗劣、精细、接触和不确定等四个级别。数据集的设计目标是帮助茶叶生产商和研究人员更好地了解茶叶品质的特征和规律,以提升茶叶质量控制和分级的准确性。
数据集特点
- 多样的茶叶品种:数据集包含了多个茶树品种的叶片,适应于不同种类的茶叶生产。
- 细致的品相分类:数据集将茶叶叶片分为粗劣、精细、接触和不确定四个级别,便于进行精细化的品质分析。
- 高质量的图像:所有的图像都是由专业的摄影设备拍摄,具有高分辨率和清晰度,能够准确反映茶叶叶片的真实状态。
- 详细的标注信息:每张图像都经过专业人员的仔细标注,包括茶叶叶片的品相等级。
- 易于使用:数据集已经按照YOLO格式整理,可以直接用于训练和评估YOLO系列的目标检测模型。
- 广泛的适用性:适用于茶叶生产、加工、销售等多个环节的质量控制和优化。
数据集构成
- 图像数量:总共有2300张茶叶叶片图像。
- 类别数:4类
- 类别名称及对应数量:
coarse
: 粗劣 (10914张)fine
: 精细 (9209张)touching
: 接触 (66张)unsure
: 不确定 (1530张)
示例代码
以下是一个简单的Python脚本示例,用于加载数据集中的一对图像-标签对,并可视化其中的标注
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
# 数据集目录路径
data_dir = 'path/to/tlqrd_dataset'
train_image_dir = os.path.join(data_dir, 'images/train')
train_label_dir = os.path.join(data_dir, 'labels/train')
# 选取一张训练图像及其对应标签
image_files = os.listdir(train_image_dir)
image_file = image_files[0] # 假设取第一张图
label_file = os.path.splitext(image_file)[0] + '.txt'
image_path = os.path.join(train_image_dir, image_file)
label_path = os.path.join(train_label_dir, label_file)
# 加载图像
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
height, width, _ = image.shape
# 解析YOLO格式标签
def parse_yolo_label(label_path, image_width, image_height):
bboxes = []
with open(label_path, 'r') as f:
lines = f.readlines()
for line in lines:
class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
x_min = int((x_center - box_width / 2) * image_width)
y_min = int((y_center - box_height / 2) * image_height)
box_width = int(box_width * image_width)
box_height = int(box_height * image_height)
bboxes.append((class_id, x_min, y_min, box_width, box_height))
return bboxes
# 解析标签
bboxes = parse_yolo_label(label_path, width, height)
# 可视化标注
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
colors = ['red', 'blue', 'green', 'orange', 'purple', 'yellow', 'pink', 'brown', 'gray']
names = ['coarse', 'fine', 'touching', 'unsure']
for bbox, color_name in zip(bboxes, colors):
class_id, x, y, w, h = bbox
rect = Rectangle((x, y), w, h, linewidth=2, edgecolor=color_name, facecolor='none')
ax.add_patch(rect)
ax.text(x, y - 10, names[int(class_id)], color=color_name, fontsize=8)
plt.title('Tea Leaf Quality Recognition Dataset')
plt.axis('off')
plt.show()
数据集使用指南
-
数据准备:
- 确认数据集路径是否正确,并且图像和标签文件均存在指定的目录下。
- 检查数据集是否有损坏或缺失的文件,确保所有图像和对应的标注文件都是完整的。
-
数据集划分:
- 数据集已经划分为训练集、验证集和测试集,可以直接使用。
-
配置文件:
-
根据所使用的深度学习框架创建相应的配置文件。对于YOLOv5等模型,通常需要一个
data.yaml
文件来描述数据集路径和类别信息。 -
yamldata.yaml
示例内容如下:深色版本
train: path/to/tlqrd_dataset/images/train val: path/to/tlqrd_dataset/images/validation test: path/to/tlqrd_dataset/images/test nc: 4 names: ['coarse', 'fine', 'touching', 'unsure']
-
-
模型训练:
- 选择适合任务的深度学习框架(如YOLOv5, YOLOv7, Detectron2等)。
- 配置训练参数,包括学习率、批次大小、迭代次数等。
- 使用提供的数据集开始训练模型。确保在训练过程中监控模型的收敛情况和损失函数的变化。
-
模型评估:
- 训练完成后,使用验证集或测试集评估模型的表现,根据实际情况调整模型参数。
-
应用实践:
- 将训练好的模型应用于实际的茶叶生产环境中,实现自动化茶叶品质识别和分拣。