DeepLearningで画像から判断してみよう #1
最近仕事で今表示されている画面から判断して自動で入力して、作業を行うことができないかという話が上がったので色々調べてみた。
今回はその第一弾として、まずは調べた結果をまとめておきます。
画面のスクショから何の画面か判断する
まずはこれです。今開いている画面のスクショを撮影し、何の画面が開いているかという判断をまず行う必要があります。
画像といえばOpenCVです。
最近はOpenCV3が出て、12月末にはOpenCV3.1がリリースされています。
OpenCV3になってからDeepLearningの機能が強化されたようです。
contlibとかって、ライブラリ機能が別で用意され自前で必要なものを用意するとか。。。
(まだこの辺はあまりよくわかってないです)
テンプレートを予め用意して、マッチングする箇所の座標を調べる方法としてTemplateMatchingという方法を取るようです。
Template Matching — OpenCV 2.4.12.0 documentation
画面のスクショとって、そのスクショの画像から場所を特定したいボタンだけを別画像でテンプレートとして用意してTemplateMatchingをやってみました。
for文で単純にX軸とY軸を少しずつ移動し、テンプレート画像と一致する場所を特定するという方法を取るわけですが、まぁ見事に場所は特定されるわけです。
けどボタンのサイズが変わったり画素数が変わるとうまくいくのかというと怪しい。。
ということは、テンプレート画像を縮小してみたり、ターゲット画像とテンプレート画像をグレースケール変換して比較してみたりといろいろ必要になります。
DeepLearningでやる前に読んでみたい記事
要はやりたいことってこれだなーと思った記事が以下。
※職場では少し開きづらい記事だなw
[Chainer] Deep Learning でアニメ (ゆるゆり) キャラクターを識別する(2015/11/4少し追記) | まさかり募集中
ChainerやGoogleが突然公開したTensorFlowを利用して学習させましょうということのようですね。
がしかし、学習用の画像を数千枚・・・
この方々は数千枚もの画像を用意したというのか・・・・