顔を認識したい。
この記事は Speee Advent Calendar 2017 の9日目の記事です。
昨日は @mitsuyoshi さんから、 再利用可能なContainer View Controllerの作り方 でした。
本日のお題は「顔認識」
特に真新しいトピックはないのですが、導入だけでも案外躓いたので、ログとして残しておきます。
これだけ人工知能やら機械学習やら進んだ世の中ですので、先輩から
っ「今日中にこの画像、顔認識だけ済ませといて」
みたいな場面も増えてくると思います。そんな方のお役に立てればいいなと思っています。
実行環境
- Windows10
- Python3.6.3 + OpenCV3.3.0
- PythonはAnaconda環境
インストール
往々にしてそうなのですが、実行より環境の構築で躓きました。いろいろやってみたのできちんと覚えていないのですが、おそらく下記でできました。
pip install opencv-python
conda install ではなんだかうまくいかなかったです。
コード
わりと簡単にできました。
import cv2 # モデルの読み込み face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 画像読み込み・グレースケール化 img = cv2.imread('image.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 顔を検知 faces = face_cascade.detectMultiScale(gray) # 顔を線で囲む処理を顔の数繰り返す for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] # 画像表示 cv2.imshow('img',img) # 何かキーを押したら終了 cv2.waitKey(0) cv2.destroyAllWindows()
結果
人の顔でやってもあんまり面白くないので、annoying orangeのナシを使わせていただきました。
出来ました!
理論的な詳細とか追記します。
明日は @iida-hayato さんから、 blockchainの話を書きたいです。
TokyoRに行ってきたメモ+α
第63回R勉強会@東京(#TokyoR)に行ってきました。当日のメモと、帰ってちょこっと調べた+αです。
ちなみに初記事です。
資料とかはTwitterで収集しました。不都合のある方はお知らせください。
▼ATND
アジェンダ
※ATNDの内容をと当日の内容を元にやや修正しました。
初心者セッション
時間 | 発表者 | タイトル |
---|---|---|
14:30 – 15:00 | @yokkuns | R言語とデータマイニング基礎 |
15:00 – 15:30 | @kilometer | Hadleyverseパッケージの話とか |
15:30 – 16:00 | @aad34210 | R Markdownの話 |
応用セッション
時間 | 発表者 | タイトル |
---|---|---|
16:10 – 16:40 | 自己紹介タイム | |
16:40 – 17:10 | @hoxo_m | Prophet入門 Facebookの予測システム【R編】 |
17:10 – 17:40 | @sanoche16 | Rを用いたLife Time Valueの推定 |
17:50 – 18:20 | @u_ribo | これからはじめるShiny」(仮) |
LT(ライトニングトーク:5分)
発表者 | タイトル |
---|---|
@hoxo_m | Prophet入門【理論編】 |
@gepuro | useR!2017 in Brussels |
@langstat | Rによるword2vec |
@tanaka_marimo | 気温が高い=暑い? |
@yutannihilation | ggjoyの紹介 |
@wonder_zone | イルカになりたい |
@kubochi_ukyo | 新卒採用を、まっとうに。 ーグループディスカッション評価の適正化ー |
メモ+α
R言語とデータマイニング基礎
基本的な内容でした。TokyoRでは初学者の人ウェルカムで、毎回初心者セッションがあるそうです。優しい。今回もRまだやったことないって方がいらっしゃいました。
▼資料はこちら
www.slideshare.net
www.slideshare.net
Hadleyverseパッケージの話とか
資料は上がっていないみたいです。(あったら教えてください)
Hadleyverseパッケージというものがあって(知りませんでした)、Hadley Wickhamが貢献しているパッケージをまとめたものみたいです。dplyrとか、ggplot2とか、reshape2とか、使ったことある人は多いはず。
デモで苦戦されていましたが、最後のカオスの3次元プロットのデモはすごかったです。
上司にカオスとは何かを説明するときに使うらしい。
▼使い方はこちらにまとまっているみたいです(英語ですが)。
R Markdownの話
RStudioで使えるR Markdownの話。
Markdown記法の中でRが使える感じですね。便利。
▼資料はこちら
www.slideshare.net
自己紹介タイム
TokyoRは他の地方のRコミュニティに比べて社会人が多いらしいです。
確かに学生は少ししかいませんでした。
Prophet入門 Facebookの予測システム【R編】
Prophetはフェイスブックが開発した時系列の予測ツールで、
統計の専門的知識がなくても時系列データで未来予測を出来るようにしよう、ってのが基本思想
時系列データ = トレンド + 周期性 + イベント
と解釈して、曲線のフィッティング問題として捉えているのが特徴。
なので、小難しい統計のパラメータのチューニングとかはなく、
「週の周期性考慮してね」とか「このイベント考慮してね」とかでチューニングができる。すごい。
デフォルトの設定でもそこそこの精度で予測できるみたい。すごい。
▼資料はこちら
www.slideshare.net
▼lTで発表のあった理論編はこちら
www.slideshare.net
▼ちなみにpython版はこちら
Prophet入門【Python編】Facebookの時系列予測ツール
Rを用いたLife Time Valueの推定
使っていたパッケージは、BTYD(Buy ‘Til You Die)パッケージ。
顧客を確率的にモデル化して顧客のLTVとかアクティブ率とかをきちんと求めましょうって内容。
「購入回数」「最終購入日」「初回購入からの期間」を変数に求めていました。
いわゆるRFM分析をもっと厳密に統計を使ってやりました、という感じですね。
統計の勉強足りてなくてたぶんきちんと理解できていないです。
▼資料はこちら
www.slideshare.net
これからはじめるShiny」(仮)
Shinyは2017年1月にめでたくver1.0.0が公開されたみたいです。伴って色々機能も充実してるみたい。
個人的には最近pythonに浮気してるので、「pythonで言うところのdjangoですね」を聞いてそっちが気になった。
▼資料はこちら(展開できない)
▼gitで.Rprojも公開されてます。
▼チュートリアルも日本語訳されてます。
LT(ライトニングトーク:5分)
メモ取らずにだらりと聞いていたので、資料だけ。
▼useR!に行くまでのおすすめロードマップ付き。
www.slideshare.net
▼ggplot2の限界を越えていってました。可視化は難しい。
▼VBAの話。確かに世間一般のパソコンできる=Excelできるだと思う。でもなんでここでVBA。
www.slideshare.net
行ってみた感想とか
東京は人が多くてこういったイベントに人が集まるのが素敵ですね。(満員電車と引き換えにですが)
また、資料がTwitterで集まるのも素敵でした。みんなSlideShareにあげてくれるし。
LTくらいならやってみたいなあ。ネタを作っておかないと。