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

Image processing 如何使用caffe convnet库检测面部表情?,image-processing,neural-network,caffe,conv-neural-network,Image Processing,Neural Network,Caffe,Conv Neural Network,如何使用caffe convnet检测面部表情 我有一个图像数据集Cohn Kanade,我想用这个数据集训练caffe convnet。有一个文档站点,但它没有解释如何训练我自己的数据。只需要预先训练好的数据 有人能教我怎么做吗 Caffe支持输入数据的多种格式(HDF5/lmdb/leveldb)。这只是选择一个你觉得最舒服的。以下是几个选项: caffe/build/tools/convert\u图像集: convert\u imageset是从构建caffe中获得的命令行工具之一 使用方

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

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


有人能教我怎么做吗

Caffe支持输入数据的多种格式(HDF5/lmdb/leveldb)。这只是选择一个你觉得最舒服的。以下是几个选项:

  • caffe/build/tools/convert\u图像集:
  • convert\u imageset
    是从构建caffe中获得的命令行工具之一

    使用方法大致如下:

    • 在文本文件中指定图像和标签对的列表。每对1行
    • 指定图像的位置
    • 选择后端数据库(哪种格式)。默认值是lmdb,应该可以
    您需要编写一个文本文件,其中每行以图像的文件名开头,后跟标量标签(例如0、1、2、…)

  • 使用Caffe的
    Datum
    class:
  • 这需要构建caffe的python接口。在这里,您将编写一些python代码:

    • 遍历图像列表
    • 将图像加载到
      numpy
      数组中
    • 构造caffe
      基准
      对象
    • 将图像数据指定给
      基准
      对象
    • Datum
      类有一个名为
      label
      的成员,您可以从CK数据集中将其设置为AU类,如果您希望网络对其进行分类的话
    • 基准
      对象写入数据库并移动到下一个图像
    从Gustav Larsson的博客文章中将图像转换为lmdb的代码片段。在他的示例中,他构建了图像和标签对的lmdb,用于图像分类

    将lmdb加载到您的网络中:

    这与LeNet示例中的操作完全相同。此数据层位于描述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+具有固定大小的图像,因此无需调整大小。不过,您确实需要规范化灰度值。你可以通过平均减法来做到这一点。这样做的一个简单方法是用CK+数据集中灰度强度的平均值替换
    transform\u param:scale
    的值。

    Pasdf,我也有同样的问题。我不明白如何培训caffe。解决这个问题的方法太多了。答案将变成一个人们喜欢的民意测验。最好的办法是自己做一些关于这个话题的研究,找到两三个,分析它们,确定它们是否对你有用,并尝试一下。当你有关于你尝试做的事情的特定问题时,请使用。谢谢你,ypx。根据您的信息和Gustav Larsson博客上的信息,我可以配置caffe.ypx,我得到的灰度强度的平均值是130,我必须在transform_param:scale上添加什么?转换参数:130?是否正确?@Pasdf如果要将灰度值除以平均强度,则需要添加变换参数{scale:0.00769230769},其中0.00769230769=1/130。通过将比例设置为倒数进行除法。