ページ 1 / 1
顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 12:15
by たくまろ
最近、apiやrealsense等でよく見かけるようになった
顔の各パーツや輪郭を覆うように何十点もの特徴点を描画する
実装方法が全く分かりません。
シフト特徴量を使ってる?
くらいの理解でシフトで取れる特徴点をどう使えば良いのか分かりません
実装の道筋や参考ページを教えて頂けませんか?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 12:47
by C6b14
”直前の質問”を読んでルール通りに質問をお願い致します。(Pythonを使ってるとかC++とかもお願いします。)
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 13:44
by C6b14
Intel RealSense SDKセンサープログラミング (初音玲 ...著)は読まれましたか。microsoft azure api
https://azure.microsoft.com/ja-jp/servi ... ices/face/はお使いでしょうか。
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 13:58
by C614b
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 14:18
by C6b14
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 15:03
by C6b14
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 16:33
by みけCAT
C6b14 さんが書きました:”直前の質問”を読んでルール通りに質問をお願い致します。
ここではトピックはデフォルトでは最後の返信の新しい順に並び、トピック作成の順に並べるオプションは無さそうな気がするので、”直前の質問”が何のことかわかりにくいです。
だから、リンクを張るべきだと思います。
それとも、「トピックを立てようとする時にたまたまトピック一覧の上の方にある適当な質問」という意味でしょうか?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 16:41
by C6b14
あ、気が付きませんでした。もっと丁寧にかくべきでした。ごめんなさい。
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 21:36
by oomnakupiyopiyo
ありがとうございます。
扱い方をわきまえておらず、すみませんでした。
開発環境はc++かPythonです。
MicrosoftのAPIやRealSenseの本は存じ上げております。
ですが、今回はそういった出来た物を使うのではなく
いちから全て自分で作りたいのです。
Haar-likeで行うように、顔やそのパーツの検出はよく見かけるのですが
パーツを囲うように特徴点を描画する方法が分かりません。
RealSenseでいうfacetrackingのように72点?の特徴点を描画したいのです。
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 22:12
by C6b14
もしかして詳しいかたがいるかもしれません。具体的なコードを提示頂くように書いてあったとおもいますが?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 22:27
by oomnakupiyopiyo
いえ、まだコードは書いていません
道筋が分かりませんから。
haar-likeで顔検出して四角の箱を描画したところでその後どうやって
顔の各パーツを囲う様に特徴点を描画すれば良いのですか?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 22:45
by C6b14
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 22:55
by C6b14
錯綜したようです。>haar-likeで顔検出して四角の箱を描画したところでその後どうやって---
そこまでのコードは長いものですか。なにがいちばんの問題点ですか。具体的に何か提示して頂きたいのですが。図とか?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 23:06
by C6b14
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 23:14
by oomnakupiyopiyo
ありがとうございます。
ですが、Unityは触ったことないです。。。
アルゴリズムが理解出来れば書き換えるだけでいいんですが
何が一番の問題点というか、問題点自体が分からないという質問です。
SIFTやhaar-likeで特徴点を取ってきて、それをどうやって顔パーツを囲う様に特徴点を打っているのですか?
haar-like等からrealsenseの様な特徴点群まで持って行く方法が分かりません。
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 23:21
by oomnakupiyopiyo


この過程が知りたいです
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 23:22
by C6b14
何か参考にしてるサイトとか?図を描くアルゴリズムが問題なのか、特徴点を抽出するアルゴリズムか
http://derivecv.tumblr.com/post/49555836875
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 23:32
by C6b14
同じところを見たようです。これはしばらくの間時々ここを見て下さい。どなたかアイデアを思いつくかも知れません。逆に何か思いついたらお知らせください。宜しくお願い致します。
Re: 顔画像の特徴点描画方法
Posted: 2016年12月12日(月) 23:50
by oomnakupiyopiyo
特徴点を抽出するアルゴリズムもあいまいですし
それら特徴点を結んで図を描くアルゴリズムも微妙です。(openCVで点の座標を結ぶだけで良い?)
とにかく、静止画ベースで良いのですが、何からコードを組めば良いか分かりません。
調べた限り、特許等がからんでいそうなのでそもそも分からないのか。。。
DetectFaceみたいなAPIやリアルセンスに搭載されている隠れアルゴリズムを使うしかなくて
自分で1から実装することは不可能なのでしょうか?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月13日(火) 00:00
by oomnakupiyopiyo
dlib等のライブラリを使うしかないもよう・・・
自分で1から実装するには顔の3次元モデル等を各方位から用意しないといけないのかな?
Re: 顔画像の特徴点描画方法
Posted: 2016年12月13日(火) 08:10
by C6b14
ここに
http://opencv.jp/cookbook/opencv_img.html#id20”プログラム例があります。。(OpenCVです)
[図を描くアルゴリズム]
”*:点座標集合に外接する図形を求める”
[特徴点を抽出するアルゴリズム]
”*:特徴点を検出する[様々な手法で特徴点を検出することができます. detector( cv::FeatureDetector を継承した様々なクラス)を変えるだけで,検出手法を変更することができます]
「SIFT検出器に基づく特徴点検出」”など沢山のプログラムが載っています
Re: 顔画像の特徴点描画方法
Posted: 2016年12月13日(火) 09:13
by usao
例えば,ASM(Active Shape Model) とか AAM(Active Appearance Model) とかそういった方面の話でしょうか.
この方面は詳しくないですが,機械学習な方面の話になるかと想像します.
まず顔画像のサンプルを山のように収集し,それらサンプルに対して
「何らかの基準で」特徴点の位置を与え(手作業で),
その特徴点群の分布や,特徴点付近の画像パッチの特徴量,あるいは特徴点群で構成される図形内の画像特徴量
等を学習器に学習させる
↓
検出時には,例えばhaar-likeを使った別の検出器で顔領域候補を得た後,
その候補領域に対して,学習された顔モデルの当てはめを行う…のだと思います.
#本当に自前で実装したいなら,おそらく顔認識関係の論文を漁った方が良いかと.
とりあえず Google Scholar あたりで 「Face」と{Detection, Recognition, Model}みたいな単語の組み合わせで検索してみてはどうでしょうか.
何故自前でやりたいのか不明ですが,興味本位とか個人的な枠内での話であれば,
論文(というか研究者)によっては,自分が使ったデータセットをWebで公開している場合もあるので,
そういうのを利用できれば,サンプル収集と特徴点データ付与にかかる膨大な時間と労力をとりあえず回避して検討できるでしょう.