用于移动设备中人脸检测的深度学习
Deep learning for face detection in mobile device
我想创建一个人脸检测移动应用程序,我想用常规的深度学习(卷积网络)来实现。我会用我的电脑训练它,并在移动应用程序中使用训练好的数据。
我的问题是:我可以像 iPhone 那样在规则 phone 中进行非常快速的计算吗?我需要它非常快,不到 1 秒就可以检测到视频中的人脸。可以在移动设备上使用吗?或者这种任务需要更强大的硬件?
我知道训练阶段必须在功能强大的计算机中进行,但我的意思是在移动设备中进行生产阶段。
例如,如果我把我的 phone 放在一条街上,它可以在训练阶段使用相同的深度网络检测所有人的脸吗?
是的,这是可能的,但不适用于标准的 CNN 架构,需要进行一些更改:
- 一种方法是使用二进制权重的 CNN,因此可以仅通过位运算来评估 CNN。有很多关于此的出版物,例如 this, this or this。我在 iPhone 上的 real-time 中看到了二进制权重 运行ning 的 YOLO 的实现,所以这绝对是可能的。
- 第二种方法是减少神经网络的参数数量,比如你用5000个权重训练一个网络,得到接近你想要的检测性能,那么这个网络可能运行 在 real-time。但这更难。
- 第三种方法是优化神经网络架构以最小化参数,并将其与非常优化的实现相结合。有加速卷积运算的算法,例如L-CNN,或者由cuDNN实现的算法。
一个非常好的相关资源是 The 1st International Workshop on Efficient Methods for Deep Neural Networks 的演示文稿和论文。
我想创建一个人脸检测移动应用程序,我想用常规的深度学习(卷积网络)来实现。我会用我的电脑训练它,并在移动应用程序中使用训练好的数据。
我的问题是:我可以像 iPhone 那样在规则 phone 中进行非常快速的计算吗?我需要它非常快,不到 1 秒就可以检测到视频中的人脸。可以在移动设备上使用吗?或者这种任务需要更强大的硬件?
我知道训练阶段必须在功能强大的计算机中进行,但我的意思是在移动设备中进行生产阶段。
例如,如果我把我的 phone 放在一条街上,它可以在训练阶段使用相同的深度网络检测所有人的脸吗?
是的,这是可能的,但不适用于标准的 CNN 架构,需要进行一些更改:
- 一种方法是使用二进制权重的 CNN,因此可以仅通过位运算来评估 CNN。有很多关于此的出版物,例如 this, this or this。我在 iPhone 上的 real-time 中看到了二进制权重 运行ning 的 YOLO 的实现,所以这绝对是可能的。
- 第二种方法是减少神经网络的参数数量,比如你用5000个权重训练一个网络,得到接近你想要的检测性能,那么这个网络可能运行 在 real-time。但这更难。
- 第三种方法是优化神经网络架构以最小化参数,并将其与非常优化的实现相结合。有加速卷积运算的算法,例如L-CNN,或者由cuDNN实现的算法。
一个非常好的相关资源是 The 1st International Workshop on Efficient Methods for Deep Neural Networks 的演示文稿和论文。