疲劳驾驶检测和识别1: 疲劳驾驶检测和识别数据集(含下载链接)

该文分享了整理的疲劳驾驶检测和分类数据集,包括Drowsy-Driving-Det1和Det2(用于目标检测)以及Cls1、Cls2和Cls3(用于分类识别),总共有18000+图片。数据集已标注并转换为VOC格式,适合深度学习模型训练。此外,提供了Pytorch和Android平台的实现方法链接。
摘要由CSDN通过智能技术生成

疲劳驾驶检测和识别1: 疲劳驾驶检测和识别数据集(含下载链接)

目录

疲劳驾驶检测和识别1: 疲劳驾驶检测和识别数据集(含下载链接)

1. 前言

2. 疲劳驾驶类别说明

3. 疲劳驾驶检测数据集:

(1)Drowsy-Driving-Det1

(2)Drowsy-Driving-Det2

 4. 疲劳驾驶分类数据集

(1)Drowsy-Driving-Cls1

(2)Drowsy-Driving-Cls2

(3)Drowsy-Driving-Cls3

5. 疲劳驾驶检测和分类数据集下载

6. Pytorch实现疲劳驾驶检测识别

7. Android实现疲劳驾驶检测识别


1. 前言

这是项目《疲劳驾驶Drowsy Driving检测和识别》系列文章之《疲劳驾驶检测和识别数据集(含下载链接)》。网上有很多疲劳驾驶的数据,但数据比较杂乱,质量参差不齐,标注格式还不统一。本篇,我们将分享几个自己整理的可用于疲劳驾驶检测和分类识别的数据集:

疲劳驾驶检测数据集(Drowsy Driving Detection Dataset)收集了两个:Drowsy-Driving-Det1和Drowsy-Driving-Det1,总共13000+张图片;可用于深度学习疲劳驾驶目标检测模型算法开发。

疲劳驾驶分类数据集(Drowsy Driving Classification Dataset)收集了三个:分别为Drowsy-Driving-Cls1,Drowsy-Driving-Cls2和Drowsy-Driving-Cls3,总共50000+张图片;可用于深度学习疲劳驾驶分类识别模型算法开发。

 【尊重原则,转载请注明出处】 https://blog.csdn.net/guyuealian/article/details/131718648


  更多项目《疲劳驾驶检测和识别》系列文章请参考:

  1. 疲劳驾驶检测和识别1: 疲劳驾驶检测和识别数据集(含下载链接)https://blog.csdn.net/guyuealian/article/details/131718648
  2. 疲劳驾驶检测和识别2:Pytorch实现疲劳驾驶检测和识别(含疲劳驾驶数据集和训练代码)https://blog.csdn.net/guyuealian/article/details/131834946
  3. 疲劳驾驶检测和识别3:Android实现疲劳驾驶检测和识别(含源码,可实时检测)https://blog.csdn.net/guyuealian/article/details/131834970

  4.  疲劳驾驶检测和识别4:C++实现疲劳驾驶检测和识别(含源码,可实时检测)疲劳驾驶检测和识别4:C++实现疲劳驾驶检测和识别(含源码,可实时检测)_AI吃大瓜的博客-CSDN博客


2. 疲劳驾驶类别说明

疲劳驾驶检测和识别算法开发中,我们需要定义疲劳驾驶的行为状态,项目将疲劳驾驶状态分为两个状态,分别为:疲劳(drowsy),不疲劳(undrowsy),为了便于大家理解,这里给出这两个状态的图示说明

  • 疲劳(drowsy): 如果驾驶过程中出现闭眼,打哈欠等疲劳困倦等表情动作,则认为是疲劳驾驶(drowsy)
  • 不疲劳(undrowsy):正常情况下,没有出现闭眼,打哈欠的表情动作,则认为是清醒状态,即非疲劳状态(undrowsy)
drowsy
undrowsy

3. 疲劳驾驶检测数据集:

项目已经收集了两个疲劳驾驶检测数据集(Drowsy Driving Detection Dataset):Drowsy-Driving-Det1和Drowsy-Driving-Det2,总共13000+张图片

(1)Drowsy-Driving-Det1

Drowsy-Driving-Det1疲劳驾驶检测数据集,该数据来源于国外开源数据集,大部分数据是通过车载摄像头拍摄驾驶人的驾驶行为,部分数据是非车内场景的图片。总共约10000+张图片,分为两个子集:训练集(Train)和测试集(Test);其中训练集(Train)总数超过10061,测试集(Test)总数500张​​​​;图片已经使用labelme进行标注,标注格式统一转换为VOC数据格式,其中人脸框标注了的两个状态:drowsy(疲劳),undrowsy(非疲劳),可直接用于深度学习目标检测模型训练。

drowsy(疲劳)undrowsy(非疲劳)

(2)Drowsy-Driving-Det2

Drowsy-Driving-Det2疲劳驾驶检测数据集,该数据来源于国内开源数据集,主要通过车载摄像头拍摄驾驶人的驾驶行为,十分符合疲劳驾驶实际的业务场景。总共约2914张图片,图片已经使用labelme进行标注,标注格式统一转换为VOC数据格式,其中人脸框标注了的两个状态:drowsy(疲劳),undrowsy(非疲劳),可直接用于深度学习目标检测模型训练。

drowsy(疲劳)undrowsy(非疲劳)

 4. 疲劳驾驶分类数据集

项目已经收集了三个疲劳驾驶分类数据集(Drowsy Driving Classification Dataset),分别为Drowsy-Driving-Cls1,Drowsy-Driving-Cls2和Drowsy-Driving-Cls3,总共50000+张图片

(1)Drowsy-Driving-Cls1

Drowsy-Driving-Cls1疲劳驾驶分类数据集,是在Drowsy-Driving-Det1疲劳驾驶检测数据集上,裁剪人脸区域图片,制作的疲劳驾驶分类数据集,裁剪的图片存放在drowsy(疲劳),undrowsy(非疲劳)两个文件夹中,分为两个子集:训练集(Train)和测试集(Test);其中训练集(Train)总数超过10000+,测试集(Test)总数500张左右;所有人脸图片,都已经按照其所属类别存放于各自的文件夹下,可直接用于深度学习分类模型训练。

drowsy(疲劳)undrowsy(非疲劳)

(2)Drowsy-Driving-Cls2

Drowsy-Driving-Cls2疲劳驾驶分类数据集,是在Drowsy-Driving-Det2疲劳驾驶检测数据集上,裁剪人脸区域图片,制作的疲劳驾驶分类数据集,裁剪的图片存放在drowsy(疲劳),undrowsy(非疲劳)两个文件夹中,总数3400张左右;所有人脸图片,都已经按照其所属类别存放于各自的文件夹下,可直接用于深度学习分类模型训练。

drowsy(疲劳)undrowsy(非疲劳)

(3)Drowsy-Driving-Cls3

Drowsy-Driving-Cls3疲劳驾驶分类数据集,原始图片主要来源于国外开源人脸数据集,数据比较杂,存在部分图片分类错误的问题,建议使用前再次进行清洗,总共41,793张图片;所有人脸图片,都已经按照其所属类别存放于各自的文件夹下,可直接用于深度学习分类模型训练。

drowsy(疲劳)undrowsy(非疲劳)

5. 疲劳驾驶检测和分类数据集下载

下载地址:疲劳驾驶检测和识别数据集(含下载链接)

疲劳驾驶数据集包含内容:

  • 疲劳驾驶检测数据集:包含Drowsy-Driving-Det1和Drowsy-Driving-Det1,总共13000+张图片;标注格式统一转换为VOC数据格式,其中人脸框标注了的两个状态:drowsy(疲劳),undrowsy(非疲劳),可用于深度学习疲劳驾驶目标检测模型算法开发。

  • 疲劳驾驶分类数据集:包含Drowsy-Driving-Cls1,Drowsy-Driving-Cls2和Drowsy-Driving-Cls3,总共50000+张图片;所有人脸图片,都已经按照其所属类别存放于各自的文件夹下,可用于深度学习疲劳驾驶分类识别模型算法开发。


6. Pytorch实现疲劳驾驶检测识别

参考文章:疲劳驾驶检测和识别2:Pytorch实现疲劳驾驶检测和识别(含疲劳驾驶数据集和训练代码)https://blog.csdn.net/guyuealian/article/details/131834946


7. Android实现疲劳驾驶检测识别

参考文章:疲劳驾驶检测和识别3:Android实现疲劳驾驶检测和识别(含源码,可实时检测)https://blog.csdn.net/guyuealian/article/details/131834970 

  • 6
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
下面是一个基于卷积神经网络的疲劳驾驶识别检测的Python代码,包括数据集的生成和模型的训练和测试: ``` import cv2 import os import numpy as np from sklearn.model_selection import train_test_split from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers.convolutional import Conv2D, MaxPooling2D from keras.utils import to_categorical # 生成数据集 def load_dataset(dataset_path, img_size): # 读取数据集 images = [] labels = [] for foldername in os.listdir(dataset_path): label = int(foldername) folderpath = os.path.join(dataset_path, foldername) for filename in os.listdir(folderpath): imagepath = os.path.join(folderpath, filename) image = cv2.imread(imagepath) image = cv2.resize(image, (img_size, img_size)) images.append(image) labels.append(label) images = np.array(images, dtype=np.float32) / 255.0 labels = np.array(labels, dtype=np.int32) return images, labels # 划分数据集 def split_dataset(images, labels, test_size): x_train, x_test, y_train, y_test = train_test_split(images, labels, test_size=test_size, random_state=42) y_train = to_categorical(y_train) y_test = to_categorical(y_test) return x_train, x_test, y_train, y_test # 定义模型 def create_model(img_size, num_classes): model = Sequential() model.add(Conv2D(32, (3, 3), input_shape=(img_size, img_size, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) return model # 训练模型 def train_model(x_train, y_train, x_test, y_test, batch_size, epochs): model = create_model(x_train.shape[1], y_train.shape[1]) model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=epochs, batch_size=batch_size) return model # 测试模型 def test_model(model, images, labels): loss, acc = model.evaluate(images, labels, verbose=0) return acc # 主函数 if __name__ == '__main__': dataset_path = 'dataset' img_size = 32 test_size = 0.2 batch_size = 32 epochs = 10 num_classes = 2 images, labels = load_dataset(dataset_path, img_size) x_train, x_test, y_train, y_test = split_dataset(images, labels, test_size) model = train_model(x_train, y_train, x_test, y_test, batch_size, epochs) acc = test_model(model, x_test, y_test) print('Test accuracy:', acc) ``` 在这个代码中,我们首先使用`load_dataset`函数读取数据集,然后使用`split_dataset`函数划分数据集,接着使用`create_model`函数定义模型,使用`train_model`函数训练模型,最后使用`test_model`函数测试模型。其中,`num_classes`表示数据集中的类别数,本例中为2(疲劳和非疲劳),可以根据实际情况进行修改。 需要注意的是,在运行代码之前,需要先准备好数据集,将疲劳和非疲劳的图像分别放在两个不同的文件夹中,并将这两个文件夹放在一个名为`dataset`的文件夹下。 希望对你有所帮助!
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI吃大瓜

尊重原创,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值