feature image

2017年11月28日 | ブログ記事

OpenCVを使って画像認識をやってみよう

はじめまして!どうもJichouPです

この記事について

この記事はわからない人向けのチュートリアルでもなければリファレンスでもありません
(´-`).。oO(OpenCVって聞いたことあるけどどんなことが出来るんだろう・・・)
って感じの人向けに、出来ることの一例が書いてあるだけのよわよわな記事です

OpenCVって?

画像処理に特化したライブラリです
導入してなくても画像処理をすることはできますが、使うととても楽になります!

使える言語

OpenCVを導入できる言語は以下の4つです(公式はサポートしてないけど他にも使える言語があるらしい)

以上からお好きなものをお選びください・・・と言いたいところなのですが・・・
C/C++の場合は導入するのがかなり大変なので、「ちょっと遊んでみるだけ」な人はPythonを選ぶことをおすすめします

ちなみに、私はC++を選んだのですが、私はVisualStudioの環境構築をしたのは初めてだったので、OpenCVを導入するまでに2週間ほどかかりました(カカリスギィ!!!)
JavaとMATLABは軽く触れただけなので私からはなんとも言えません・・・

導入方法(C/C++)

こちらからダウンロードできます
私はこちらのサイトを参考にさせていただきました!ありがとうございます!

Visual Studio 2017にOpenCV3.2.0とopencv_contribを導入する方法

どんなことができるの?

テンプレートマッチング

私はテンプレートマッチングで少し遊んでみたので紹介してみます
テーマは「艦これの自動化」です
※マクロは規約違反ですので気をつけてください

テンプレートマッチングって?

テンプレートマッチングとは、オリジナル画像とテンプレート画像を用意して、オリジナル画像の中にどのくらいテンプレート画像と似たものがあるかを調べる機能です
言葉で言っても分かりづらいので、一例をお見せします

オリジナル画像

テンプレート画像

マッチング結果

このように、テンプレート画像を用意すればオリジナル画像の中で似ている部分を見つけることができます
また、その部分がテンプレートとどのくらい似ているかも取得できます
似ているか似ていないか曖昧なものでも、しきい値を自由に設定できるので、精度は下がりますがマッチングできます

どうやってマッチングしてるの?

物体検出 — opencv 2.2 documentation - OpenCV.jp
このドキュメントに詳しい測定方法が書いてあります
今回は一番下の"CV_TM_CCOEFF_NORMED"という手法で測定しました

艦これでもやってみた

艦これで小破・中破・大破それぞれの認識をやってみました
めんどいので画像を一つにつなげてます

オリジナル画像

テンプレート画像

マッチング結果

という感じで、しっかり小破、中破、大破の判定ができたようです(一部ガバガバですが・・・)
これによって、通信内容を見ることなく艦娘の損害を確認できるようになりました
いろいろと悪いことが楽しいことができそうです

以上で私の記事は終わりです
明日はmimikkuさん、kanjiさんの記事です
お楽しみに!

JichouP icon
この記事を書いた人
JichouP

JSが好きです 東京工業大学17電電 / traP 庶務

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2017年11月14日
IBIS2017参加報告
Keijan icon Keijan
2017年11月17日
そばやのワク☆ワク流体シミュレーション~MPS編~
sobaya007 icon sobaya007
2017年12月26日
RustでMCMC(Metropolis-Hasting)
David icon David
2017年12月13日
チズケ破壊論
whiteonion icon whiteonion
2017年12月1日
WaltZ
Double_oxygeN icon Double_oxygeN
2017年11月4日
文章をよしなに分散表現しよう
David icon David
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記