丸ノ内テックブログ検索フォームを使用するには、こちらよりアクセスしてください。Graphで平面を地形に変形させてみた。いうサービスをご存知でしょうか。Notebookという開発環境を誰でも簡単に利用できるようにしたものです。K80)も12時間分までなら無料で使えてしまいます!まさに機械学習を試すにはうってつけの環境ということで、日本語の記事も増えてきているようです。Colaboratory。今回は少しライトな使用法として、OpenCVで画像処理を試してみたいと思います。WorldColaboratoryのサイトにアクセスすると、次のような初期画面が表示されます。2回目以降はファイル選択画面が表示されますが、ここでは新規作成をしていきましょう。すると、以下のようなセルが表示されます。このセルにコードを書き、好きなタイミングで左の実行ボタンを押すと(またはShift+Enter)、コードが実行されます。試しに以下のコードを入力して実行してみましょう。world!")すると下のように実行結果がインラインで表示されます!ファイルの読み込み準備ができたところで、次に画像を読み込んでみましょう。以下のコードを実行してみてください。OpenCVをimportして関数を利用します。cv2.imread('Lenna.jpg')print(im)おそらくエラーとなり、何も表示されないかと思います。これは当然で、指定した画像の参照ができていないためです。参照の方法として、Googleドライブと連携させることも可能ですが、少々手間がかかります。今回のように数枚の参照であれば、専用のダイアログを利用するのがいいでしょう。files.upload()上記のコードを実行、画像のアップを行なった後に再び先ほどのコードを実行してみてください。エラーが解消され、画像を表す行列が表示されるはずです。画像の表示OpenCVで画像を表示する場合は一般的に、imshow()というメソッドを使います。これは別window上で表示するものなので、Colaboratory上ではエラーとなってしまいます。そこで表示にはmatplotlibを利用します。これは、Python&データサイエンスの分野ではデファクトスタンダードとなっているグラフ描画ライブラリです。OpenCVもですが、Colaboratoryでは有名なライブラリはデフォルトでインストールされているのでとても便利です。下記のコードを実行してみます。pltplt.imshow(im)画像が表示されました。何か色が変です...。これはOpenCVで扱う画像フォーマットがBGRなのに対し、matplotlibではRGBとして扱ってしまうためです。ついでに不要な軸も非表示にします。cv2.COLOR_BGR2RGB)plt.imshow(im_rgb)うまくいきました。画像処理ここまで来れば、基本的な画像処理アルゴリズムを試すことはできると思います。いうことで最後にサンプルとして、AKAZEによる特徴点マッチングを行ってみます。Lennaさんと、それを回転したものをマッチングします。cv2.COLOR_BGR2RGB)plt.axis('off')plt.imshow(im_result_rgb)いかがでしょうか。ファイルの参照は若干面倒ですが、ブラウザだけで試せるというのは素晴らしいです。対話型で、かつGoogleドライブに残せるので、自習や勉強会の際にも大変役立ちそうです。Notebookの派生なので同じ解決策で事足りることも多い印象です。Colaboratory、試してみてください。Oyama人の感覚に興味があります。