■プログラミング

プログラミング初心者でもできる!【Open-CVで画像処理】

■プログラミング

 こんにちは黒部です。
今回はプログラミング初心者でもできる!今話題のプログラミング言語Pythonを使って、画像処理や動画処理が簡単にできるという紹介をします。

簡単なコードで作成したプログラムのデモを実際にお見せして、Pythonに限らずプログラミング全体のハードルを下げ、興味をもってもらおうと思います。

プログラミング初心者でもできる!【Open-CVで画像処理】

まずは以下の動画を見てください。
(軽くするためgif動画にしてます。)

海辺ではしゃぐ黒部です。

この動画は、こういった内容のことをしています。
・パソコンに接続したカメラで撮影
・リアルタイムで動画処理(エッジ抽出)
・リアルタイムで処理結果をパソコンに表示

難しいことをしているようですが、
たった17行のコードでプログラムが作れます。

これはOpenCVという画像や動画を処理をするのに必要なライブラリを使っており、このプログラムのメインとなる動画のエッジを抽出させるコードはなんと1行で出来ています!

残りもカメラと接続したりパソコンに表示したりと、ネットで検索すれば簡単に見つけられるようなコードです。

ライブラリの説明はリンク下部

OpenCVとは

 OpenCVとは『Open Source Computer Vision Library』の略で、機能がものすごく豊富にあり、以下に主な機能を書いておきますが実際には紹介しきれないほどあります。

 少し前によくネットで見かけたのは人の顔を検出するようなプログラムですね。OpenCVにもこの機能があり、顔検出や目検出など色々出来ます。流行したSNOWの様な顔を検出して補正をかけたりするアプリもこういった機能を使って開発されています。

【OpenCVの主な機能】

  • フィルター処理
  • 行列演算
  • オブジェクト追跡(Object Tracking)
  • 領域分割(Segmentation)
  • 特徴点抽出
  • 物体認識(顔検出など)
  • 機械学習
  • パノラマ合成(Stitching)
  • ウィンドウ表示、画像,動画ファイルの入出力、カメラキャプチャ

 ライブラリを用いると、決められた数行のコードを記述するだけで簡単な画像処理プログラムを開発できます。

イメージをもう少し簡単に説明すると、
例えば顔検出プログラムを作成したい場合、
・パソコンにPythonというソフトをインストール
・顔画像をパソコンから参照
・Pythonの顔検出機能を起動

 こんな感じです。プログラミングが難しく感じる理由は、この顔検出機能を使う方法がスマホアプリのSNOWのようにタッチ画面操作で起動できるのではなく、コードを書かなくては行けないという点だと思います。簡単な機能のコードは参考書やネットのコピペで済むので、あとはプログラミングに対する慣れも重要になってきます。

 そしてこのへんのライブラリの使い方をマスターすれば、今後ちょっとした写真加工アプリだったり動画編集ソフト、工場の異物検査ソフトなどを開発することも可能です。最近話題の人工知能の分野でも、これらを駆使した様々なソフトウェア開発が進んでおり、人材不足という需要過多の時代なので、勉強しておくことにより仕事の差別化や就職・転職に非常に有利になります。

 私もプログラミングを始める前は、「難しそうで自分には無理」「勉強するのはもう遅い」。こう思っていましたが、いろいろ考える前に簡単なプログラムを作成することから初めてみることをおすすめします。