基于caffe的人脸检测项目实战之制作数据源

人脸检测项目实战的目的:检测到人脸框

在这里插入图片描述

1.数据源制作
数据获取
  • benchmark
    是一个行业的基准,里面包含很多数据库、论文、源码和结果(经典论文)。
    facedetection benchmark:WIDER Face、FDDB等。

  • 优秀论文
    通常实验阶段都会介绍它所使用的数据集,公开数据集可以下载。申请数据集时候,最好使用学校的,以edu结尾的邮箱。

  • 论坛或者交流社区
    例如,thinkface。

  • 数据量
    越大越好,至少以万为单位。

    下载包含有人脸的原始数据,标注保存的格式:
    路径/***.jpg 40,60,250,300

实战项目是一个二分类项目,第一类是人脸,第二类是非人脸(只要不是人脸都可以)

  • 对于正样本的制作:
    对于原始数据,根据标注的坐标和OpenCV把人脸裁剪出来,完成正样本的制作。在完成裁剪之后,需要人工地对数据进行检查,如果存在问题,要对数据进行数据清洗。
  • 对于负样本的制作
    在原始数据上进行一个随机地裁剪,设定IOU(Intersection over Union)< 0.3 为一个负样本,但是这种方法可能存在将人脸数据裁剪成负样本,所以可以另外寻找不包含人脸的图像数据来制作负样本。
制作LMDB数据源

(一种Caffe支持的用于分类的数据源)

  • 制作LMDB准备
  1. 将制作的人脸正样本数据分成两部分,一部分用于训练,一部分用于验证,通常训练样本个数远远大于验证样本个数;负样本数据也按照同样的方式分成两部分。分好的数据分别放于train和val文件夹下,train文件夹包含0和1两个子文件夹,分别放置用于训练的负样本和正样本,val文件夹下放置验证集。
  2. 将数据分好之后,我们还需要写两个txt文档(脚本实现),train.txt和val.txt,对应作为训练集和验证集的标签。
    在这里插入图片描述
  3. 制作LMDB数据源,用caffe提供的脚本文件进行制作。
#!/usr/bin/env sh
# Create the face_48 lmdb inputs
# N.B. set the path to the face_48 train + val data dirs

EXAMPLE=/home/×××/face_detect
DATA=/home/×××/face_detect
TOOLS=/home/×××/caffe/build/tools

TRAIN_DATA_ROOT=/home/×××/face_detect/train/
VAL_DATA_ROOT=/home/×××/face_detect/val/

# Set RESIZE=true to resize the images to 60 x 60. Leave as false if images have
# already been resized using another tool.
RESIZE=true
if $RESIZE; then
  RESIZE_HEIGHT=227
  RESIZE_WIDTH=227
else
  RESIZE_HEIGHT=0
  RESIZE_WIDTH=0
fi

if [ ! -d "$TRAIN_DATA_ROOT" ]; then
  echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
  echo "Set the TRAIN_DATA_ROOT variable in create_face_48.sh to the path" \
       "where the face_48 training data is stored."
  exit 1
fi

if [ ! -d "$VAL_DATA_ROOT" ]; then
  echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
  echo "Set the VAL_DATA_ROOT variable in create_face_48.sh to the path" \
       "where the face_48 validation data is stored."
  exit 1
fi

echo "Creating train lmdb..."

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    --shuffle \
    $TRAIN_DATA_ROOT \
    $DATA/train.txt \
    $EXAMPLE/face_train_lmdb

echo "Creating val lmdb..."

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    --shuffle \
    $VAL_DATA_ROOT \
    $DATA/val.txt \
    $EXAMPLE/face_val_lmdb

echo "Done."
Status API Training Shop Blog About

执行脚本文件,完成人脸LMDB数据源的制作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值