【问题标题】:How to use caffe convnet library to detect facial expressions?如何使用 caffe convnet 库检测面部表情?
【发布时间】:2023-04-04 17:06:01
【问题描述】:

如何使用 caffe convnet 检测面部表情?

我有一个图像数据集 Cohn Kanade,我想用这个数据集训练 caffe convnet。 Caffe 有一个文档站点,但它没有解释如何训练我自己的数据。只需使用预先训练的数据。

有人可以教我怎么做吗?

【问题讨论】:

  • Pasdf,我也有同样的问题。我不明白,如何训练 caffe。
  • 解决这个问题的方法太多了。答案只会变成一个人们喜欢的稻草民意调查。最好的办法是自己对这个主题进行一些研究,找到两三个,分析它们,确定它们是否适合你,然后尝试一下。当您对尝试做的事情有具体问题时,请使用。

标签: image-processing neural-network caffe conv-neural-network


【解决方案1】:

Caffe支持输入数据的多种格式(HDF5 / LMDB / LevelDB)。这只是一个挑选你觉得最舒服的问题。这里有几个选项:

  1. caffe / build / tools / convert_imageset:

convert_imageset是您从建筑Caffe的命令行工具之一。

用法如下:

  • 在文本文件中指定图像列表和标签对。每对 1 行。
  • 指定图像位置的位置。
  • 选择后端数据库(哪种格式)。默认是 lmdb,应该没问题。

需要编写一个文本文件,其中每行从图像的文件名开始,后跟标标标签(例如,0,1,2,...)

    在Python中使用Caffe's Datum class: 构建您的LMDB

这需要构建Caffe的Python接口。在这里,您可以编写一些python代码:

  • 遍历图像列表
  • 将图像加载到987654324 @阵列中。
  • 构建Caffe Datum对象
  • 将图像数据分配给Datum对象。
  • Datum class有一个名为@ 987654328的成员,您可以将其设置为CK数据集的AU类,如果是您希望您的网络对分类。
  • Datum对象写入DB,然后移动到下一个图像。

Here's从Gustav Larsson将图像转换为LMDB的代码SN-P.在他的示例中,他构建了一个LMDB的图像和标签对进行图像分类。

将lmdb加载到您的网络中:

这与 LeNet 示例中的完全一样。该数据层在网络Protott的开头,用于描述Lenet模型。

layer {
  name: "mnist"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "examples/mnist/mnist_train_lmdb"
    batch_size: 64
    backend: LMDB
  }
}

源字段是将Caffe指向您刚刚创建的LMDB的位置的位置。

与性能相关的东西,不关键以实现工作,是指如何归一化输入功能。这是通过transform_param 字段完成的。 CK +具有固定尺寸的图像,因此无需调整大小。尽管需要进行一件事是标准化灰度值。您可以通过均值减法来做到这一点。这样做的简单是替换transform_param:scale的值,以ck + dataSet中的灰度强度的平均值。

【讨论】:

  • 谢谢你,ypx。在您的信息和Gustav Larsson博客上的信息之后,我可以配置Caffe。 span>
  • ypx,我得到的是我的灰度强度的平均值是130,我必须穿上变换_param:scale?转换参数:130?对吗?
  • @ pasdf如果要将灰度值除以平均强度,则需要添加变换_param {scalar:0.00769230769},其中0.00769230769 = 1/130。通过将比例设置为倒数来分割。 span>
猜你喜欢
  • 2018-08-25
  • 2012-06-08
  • 2017-11-12
  • 2017-03-24
  • 2016-09-17
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多