2016-12-19 18 views
1

私は、赤ちゃんのモニターから写真を撮り、OpenCVを使って顔を検出するプログラムを書こうとしていました。私はそれに基づいて他の機能を追加したかったのです。問題は、顔を非常に頻繁に検出することができないことです。問題は、私が使っている写真で、赤ちゃんが何か手を食べているからです:P。 私は、赤ちゃんが転がっていたか、毛布をかぶっていたかを知るプログラムを作りたかったのです。この問題に取り組むための提案はありますか? OpenCVを複数の写真で訓練することは、私の場合に役立ちますか? ここにサンプルプログラムがあります。 nodejsで書かれていますが、論理は同じでなければなりません。これを達成するのに役立つライブラリ/アルゴリズム/アプローチがありますか?OpenCVを使って赤ちゃんの顔を検出する

var request = require('request'); 
var cv = require('opencv'); 

var user = 'admin'; 
var pass = 'password'; 
var options = { 
    url : 'http://192.168.86.114/cgi-bin/snapshot.cgi', 
    method : 'GET', 
    port: 80, 
    encoding: 'binary', 
    headers: { 'Authorization': 'Basic ' + new Buffer(user + ':' + pass).toString('base64') } 
} 

request(options, function(err, res, html){ 

    if(err){ 
     console.log(err) 
     return 
    } 

    require("fs").writeFile("./pictures/out.jpeg", res.body,'binary', function(err) { 
     console.log(err); 
     cv.readImage("./pictures/out.jpeg", function(err, im){ 
      im.detectObject(cv.FACE_CASCADE, {}, function(err, faces){ 
      for (var i=0;i<faces.length; i++){ 
       var x = faces[i] 
       im.ellipse(x.x + x.width/2, x.y + x.height/2, x.width/2, x.height/2); 
      } 
      im.save('./out.jpg'); 
      }); 
     }) 
    }); 
}) 
+1

私は訓練データセットを準備し、それに応じて画像にラベルを付けるべきだと言います。それはおそらく今の唯一の方法です。お使いの写真にラベルを付けるのに役立つ「強靭な」機能を試してみてください。タスクはそれほど広すぎます。 –

答えて

0

MTCNNを試してください。それは速くて堅牢です。

@ARTICLE{7553523, 
author={K. Zhang and Z. Zhang and Z. Li and Y. Qiao}, 
journal={IEEE Signal Processing Letters}, 
title={Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks}, 
year={2016}, 
volume={23}, 
number={10}, 
pages={1499-1503}, 
keywords={Benchmark testing;Computer architecture;Convolution;Detectors;Face;Face detection;Training;Cascaded convolutional neural network (CNN);face alignment;face detection}, 
doi={10.1109/LSP.2016.2603342}, 
ISSN={1070-9908}, 
month={Oct},} 
関連する問題