機械学習による顔評価
2387 ワード
科学は童话を现実に変えることができて、また《白雪姫》の中の魔镜を覚えていて、人类の科学技术を利用して本当に庶民にも1つ持つことができます.人間はコンピューターも自分で機械で勉強して判断できるようになったからだ.
機械を利用して勉強する常用手順は、まず機械に勉強させ、それから機械を働かせることだ.
人の颜に点数をつけることをどのように勉强して、きっとコンピュータにたくさんの写真をあげなければならなくて、それに1枚の写真の点数がいくらなのかを教えて、コンピュータの勉强が终わって、更にそれに见たことがない写真をあげて、それに点数をつけて、勉强の良いかどうかを见せます.
勉強するには、Caffe、Tensorflowなどの機械学習のフレームワークを利用することができますが、これらのフレームワークはインストールが難しく、使用が面倒で、運行時間も長いです.最も基礎的な機械学習ライブラリを使ってこのことを解決してみましょう.この文書に記載されているコードとドキュメントは、Githubのこのリンクに含まれています.
https://github.com/oatmeal3000/female-face-rating
まず、私たちは人の顔の写真の中の肝心な情報を提出しなければなりません.この情報は少ないほどいいです.そうすれば、後でコンピュータが勉強するときに手間が省けます.人の顔にとって、顔の高さを決めるのはいくつかのポイントの位置です.これらのキーの位置は写真では横長座標で表されます.だから私たちはまずネット上でいくつかの女の子の写真を見つけて、これらの写真はsource/web_に置いています.イメージフォルダには、写真ごとのスコアがdata/ratingsに置かれています.txtファイルにあります.写真フォルダパスをパラメータとして、1_を実行します.facial_landmarks.pyプログラムは、各写真の顔のキーを抽出し、テキストファイルに存在させることができます.このプログラムではdlibライブラリの顔認識機能を使って、写真の顔を見つけて、顔のキーを探します.これは特に注意しなければならない点があります.私たちは1つのフォルダの500枚の写真から1つの写真からキーを探しているので、プログラムの中でlistdir関数でこの500枚の写真をリストするときは、ソートを忘れないでください.listdir関数に列挙されたファイル名の順序は、写真ファイル名のシーケンス番号順ではないので、sort関数:
第2歩では、顔のキーから特徴を計算することができます.この特徴は,各キー間の距離スケールである.もちろん、任意の2つの顔のキー間の距離を計算して、この距離と他のすべての距離の割合を計算することができます.しかし、顔のキーは少なくとも数十個あります.プログラムの計算量を減らすにはどうすればいいですか.これで私たちが待っている時間も少なくなります.私たちは顔美学の研究が多い専門家の肩に立って、この目的を実現することができます.韓国の科学者はこの方面で比較的に先進的で、それらの整形技術の応用があまりにも普遍的であるため、この文章を見て「A Novel Framework for Assessing Facial Attractiveness Based on Facial Proportions」を見て、それはいくつかの人の顔の美しさの程度を決定するいくつかの重要な割合をまとめて、私たちは持って来ることができます.これらのキー距離の割合を計算してdata/features_に置きますALL.txtテキストファイルにあります.
第三歩は、写真の特徴と採点があれば、コンピュータに投げて勉強することができます.主成分分析Principal Component Analysis(PCA)の大法が利用できる学習時間を減らす手段もある.私たちが計算した特徴はまだ少し多いので、PCAで少し減らして、scikit-learnの中にPCAがあるライブラリは直接利用することができます.特徴をどれだけ減らしたいのか、既存のデータセット実験を利用して確定したり、あまり差のない値を勝手に与えたりして、先に使ってみましょう.その後、機械学習のモデルを利用して訓練することができます.よく用いられるモデルには,線形回帰,論理回帰,サポートベクトルマシン,ランダム森林,Gauss過程回帰がある.異なるモデルの表現効果は異なり、ある特定の問題に対して、実験して、表現が一番いいものを選ぶことができます.この基準はPearson correlationに基づいて、あなたのデータセットから専門的にテストをすることができます.実験して、このモデルの訓練結果とテストデータセットの一致度が高いかどうかを見てみましょう.学習訓練の結果はモデルフォルダに入れて、後で顔値の採点ができます.
第四歩は、プログラムに見たことのない写真をあげて、コンピュータに自分で判断させましょう.私たちはやはりこの写真から人の顔を見つけて、人の顔のすべてのポイントを見つけなければなりません.キーポイントを利用して私たちが興味を持っている特徴(あの韓国論文を覚えていますか)を計算し、私たちが3歩目に生成した訓練結果モデルをロードし、その訓練したモデルを利用して予測採点を行いましょう.
以上は1つの机械の学习の完全な过程で、具体的に実现して実験のコードを頼みます~
機械を利用して勉強する常用手順は、まず機械に勉強させ、それから機械を働かせることだ.
人の颜に点数をつけることをどのように勉强して、きっとコンピュータにたくさんの写真をあげなければならなくて、それに1枚の写真の点数がいくらなのかを教えて、コンピュータの勉强が终わって、更にそれに见たことがない写真をあげて、それに点数をつけて、勉强の良いかどうかを见せます.
勉強するには、Caffe、Tensorflowなどの機械学習のフレームワークを利用することができますが、これらのフレームワークはインストールが難しく、使用が面倒で、運行時間も長いです.最も基礎的な機械学習ライブラリを使ってこのことを解決してみましょう.この文書に記載されているコードとドキュメントは、Githubのこのリンクに含まれています.
https://github.com/oatmeal3000/female-face-rating
まず、私たちは人の顔の写真の中の肝心な情報を提出しなければなりません.この情報は少ないほどいいです.そうすれば、後でコンピュータが勉強するときに手間が省けます.人の顔にとって、顔の高さを決めるのはいくつかのポイントの位置です.これらのキーの位置は写真では横長座標で表されます.だから私たちはまずネット上でいくつかの女の子の写真を見つけて、これらの写真はsource/web_に置いています.イメージフォルダには、写真ごとのスコアがdata/ratingsに置かれています.txtファイルにあります.写真フォルダパスをパラメータとして、1_を実行します.facial_landmarks.pyプログラムは、各写真の顔のキーを抽出し、テキストファイルに存在させることができます.このプログラムではdlibライブラリの顔認識機能を使って、写真の顔を見つけて、顔のキーを探します.これは特に注意しなければならない点があります.私たちは1つのフォルダの500枚の写真から1つの写真からキーを探しているので、プログラムの中でlistdir関数でこの500枚の写真をリストするときは、ソートを忘れないでください.listdir関数に列挙されたファイル名の順序は、写真ファイル名のシーケンス番号順ではないので、sort関数:
list_im.sort(reverse = True, key=lambda x:int(x[8:-4]))
を呼び出します.第2歩では、顔のキーから特徴を計算することができます.この特徴は,各キー間の距離スケールである.もちろん、任意の2つの顔のキー間の距離を計算して、この距離と他のすべての距離の割合を計算することができます.しかし、顔のキーは少なくとも数十個あります.プログラムの計算量を減らすにはどうすればいいですか.これで私たちが待っている時間も少なくなります.私たちは顔美学の研究が多い専門家の肩に立って、この目的を実現することができます.韓国の科学者はこの方面で比較的に先進的で、それらの整形技術の応用があまりにも普遍的であるため、この文章を見て「A Novel Framework for Assessing Facial Attractiveness Based on Facial Proportions」を見て、それはいくつかの人の顔の美しさの程度を決定するいくつかの重要な割合をまとめて、私たちは持って来ることができます.これらのキー距離の割合を計算してdata/features_に置きますALL.txtテキストファイルにあります.
第三歩は、写真の特徴と採点があれば、コンピュータに投げて勉強することができます.主成分分析Principal Component Analysis(PCA)の大法が利用できる学習時間を減らす手段もある.私たちが計算した特徴はまだ少し多いので、PCAで少し減らして、scikit-learnの中にPCAがあるライブラリは直接利用することができます.特徴をどれだけ減らしたいのか、既存のデータセット実験を利用して確定したり、あまり差のない値を勝手に与えたりして、先に使ってみましょう.その後、機械学習のモデルを利用して訓練することができます.よく用いられるモデルには,線形回帰,論理回帰,サポートベクトルマシン,ランダム森林,Gauss過程回帰がある.異なるモデルの表現効果は異なり、ある特定の問題に対して、実験して、表現が一番いいものを選ぶことができます.この基準はPearson correlationに基づいて、あなたのデータセットから専門的にテストをすることができます.実験して、このモデルの訓練結果とテストデータセットの一致度が高いかどうかを見てみましょう.学習訓練の結果はモデルフォルダに入れて、後で顔値の採点ができます.
第四歩は、プログラムに見たことのない写真をあげて、コンピュータに自分で判断させましょう.私たちはやはりこの写真から人の顔を見つけて、人の顔のすべてのポイントを見つけなければなりません.キーポイントを利用して私たちが興味を持っている特徴(あの韓国論文を覚えていますか)を計算し、私たちが3歩目に生成した訓練結果モデルをロードし、その訓練したモデルを利用して予測採点を行いましょう.
以上は1つの机械の学习の完全な过程で、具体的に実现して実験のコードを頼みます~