Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deep learning for face detection in mobile device

I want to create a face detection mobile app and I want to do it with a regular Deep Learning(Convolutional Network). I will train it with my computer and use trained data in the mobile app.

My question is that: can I get very fast computation in the regulat phone like iPhone? I need it be very fast and under 1 sec can detect a face in the video. Is it possible on a mobile device? or this kind of task need more powerful hardware?

I know training phase must be in a powerful computer but I mean production phase in a mobile device.

for example, if I put my phone in a street, It can detect all peoples face with the same deep network in training phase?

like image 908
Fcoder Avatar asked Mar 09 '23 23:03

Fcoder


1 Answers

Yes, this is possible, but not with standard CNN architectures, some changes are needed:

  • One approach is CNNs with binary weights, so evaluating the CNN can just be done with bit operations. There are many publications about this, like this, this or this. I have seen an implementation of YOLO with binary weights running in real-time on an iPhone, so it is definitely possible.
  • A second approach is to reduce the number of parameters of the neural network, for example if you train a network with 5000 weights and gets detection performance that is close to what you want, then this network might run in real-time. But this is harder.
  • Third approach is just to optimize the neural network architecture to minimize parameters, and combine it with a very optimized implementation. There are algorithms to speedup convolution operations, such as L-CNN, or the ones implemented by cuDNN.

A very good related resource are the presentation and papers from the The 1st International Workshop on Efficient Methods for Deep Neural Networks.

like image 86
Dr. Snoopy Avatar answered Mar 20 '23 03:03

Dr. Snoopy