zoukankan      html  css  js  c++  java
  • MTCNN 复现

    0. 背景

      最近有个猫脸检测任务,终极目标是实现猫脸和一些特征点的定位,从效率上来说,使用MTCNN比较合适,所以尝试训练了一下,并没有真正的复现。

    1.踩过的坑

      MTCNN这么火,所以从一开始就没打算自己写,直接在github上找的相关代码。平时习惯用 Pytorch, 没用过Tensorflow,所以就找了caffe的实现。

    CongWeilin/mtcnn-caffe 从代码的简单程度来说,这是最简单的了,也不需要对caffe源码做什么修改,直接python_layer搞定,但是作者没开放 issue。对我来说遇到一些麻烦,train 和 test 的prototxt后几层命名不一致,导致后面运行的时候会产生随机的输出。从我对caffe模型的理解来说,名称不一致但类型一致不应该报错,具体就没深究了。
    luoyetx/Joint-Face-Detection-and-Alignment 实现的很良心,有一篇完整的 summary.md。虽然也花了一段时间调整数据,但是并没有用太长时间。从我现在的水平来看,膜拜代码,数据加载的部分都是用读者写者实现,高大上。

    2. 训练过程
    根据代码里数据加载部分重写数据,这里比较要注意的就是要完全按照数据加载的方式写数据,对于bbox要看好是 (x, y, w, h)还是(xmin, ymin, xmax, ymax)
    特征点的数据集同理。
    数据量总共1w张图,划分了训练集和验证集,同时放到了 bbox 训练和 landmarks 训练。

    3. 结果

      最后的结果上来说,对于正脸的猫是可以检测出来的,特征点也大约在定义的位置,由于数据量小,Onet 本身就不好训练,所以能跑出结果就暂时先放一放了。

    4. 遇到的麻烦

      主要是caffe的问题。

      4.1 snapshot_perfix 参数不能传,只要加入这个参数就会运行失败,没解决只能不用这个参数了。

      4.2 在训练 Lnet 的时候(修正Onet的landmarks)caffe 出错, math_functions.cu:79  Check failed: error==cudaSucess。没找到治本的解决办法,就先把caffe编译成cpu版本,训练了一下。

     5. 欢迎交流

       

  • 相关阅读:
    xxx
    部署在自己的加了分享,试下
    疑问
    去掉分享
    womenzijide_jiafenxiang
    womenzijide2
    womenzijide
    xiugai-去除js注释
    xiugai2
    《设计模式之禅》读书笔记(一)——单例模式
  • 原文地址:https://www.cnblogs.com/xiaochun-zhao/p/10283191.html
Copyright © 2011-2022 走看看