トップページ

人工知能や自動運転などの技術が進化する中、画像処理、画像解析の需要は年々高まっています。また、バイオ分野でも研究開発においてスクリーニングを行う場合に定量性を出すために画像解析が用いられることも増えてきています。このような背景がある中、高価な画像処理ソフトでも思い通りの機能がないことが多くあります。そこで私は画像処理プログラムを自分で書いてしまうことをお勧めしています。とは言っても、全てを初めから書くのは大変です。そこで登場するのが画像処理ライブラリである、OpenCVです。OpenCVは画像の読み込みや、簡単な画像処理、輪郭検出などの頻繁に使われる処理があらかじめ実装されている便利なライブラリです。このサイトではOpenCVを使った画像処理の方法を解説しつつ、機械学習などの最新技術も紹介していきます。

 

Pythonで画像解析

Python2における、開発環境の準備、OpenCVの導入

Python / OpenCV 2.4 インストール
Anacondaを使ったインストール方法です。PythonにおけるOpenCVの環境構築は比較的簡単です。

Pythonの基本
jupyter notebookの起動方法から、リストやNumPy配列の基本的な使い方までを示しています。

Chainerのインストール
機械学習ライブラリ、Chainerは非常に簡単に導入できます。ディープラーニングを含む機械学習プログラムを非常に簡単に書くことのできるライブラリです。機会学習をやるなら、使わない手はありません!

画像解析例

セルカウント
PythonとOpenCVを用いた細胞数カウントプログラムです。distance mapを使って近接した粒子も切り分けてカウントすることができます。

画像の明るさの正規化
画像の明るさ、コントラストがバラバラだと、いくらその後の過程に手の込んだプログラムを用いても定量できません。画像の明るさを揃えるためのコードを紹介します。

 

C++で画像解析

C++における、開発環境の準備、OpenCVの導入

VirtualBoxにLinuxをインストールし、OpenCVを導入する方法はこのサイト内で紹介しています。Linuxでの開発は一見すると遠回りのように思えるかもしれませんが、Windowsでの開発は経験上エラーが発生しやすいので、私はお勧めしていません。Macを持っていれば、Macでの開発も可能です。

OpenCVインストール済みLinux
誰でもC++でOpenCVがすぐに使えるようにインストール済みのLinuxイメージです。

LinuxをUSBから起動する
USBメモリにLinuxをインストールする方法を紹介しています。Windowsを手放すことなくLinuxが使えます。

C++の基本
OpenCVプログラミングに最低限必要なC++の知識をまとめています。

OpenCVの基本
基礎的なOpenCVの関数を紹介しています。

画像解析例

私が勧めているのは、いきなり大きなプログラムを書くのではなく、小さなプログラムから書き始めるという方法です。たとえば、動画処理のプログラムであれば、最初に入力の動画を表示するだけのプログラムを作るのは基本中の基本です。実践編ではチュートリアル形式で小さなプログラムから組み立てていく練習をすることができます。

粒子のカウント
カウント処理は細胞数のカウントなど応用範囲の広い基本的技術です。種子のカウントを例題にしています。

根の長さの測定
長さ、面積などの項目を自動的に測定します。自動化により何千枚もの画像を簡単に解析できるようになるかもしれません。

移動体の追跡
動画を元に移動する物体の座標を自動的に決定し、記録することができれば、速度などさらに高次元の統計量を算出することが可能です。

回転パターンマッチで物体の向きの判定
パターンマッチングの応用例です。1度ずつ回転し、最もマッチする角度を計算します。

緑色のピクセル数をカウント
各画素の色情報を元に、緑色を判別して数え上げるプログラムを作成します。

空撮動画の解析
ドローンなどにより撮影した動画からドローンの位置や速度を逆計算します。最後には動画からの情報を元に航空写真のようなモザイキングマップを復元します。

オプティカルフロー可視化
OpenCVを用いたオプティカルフローにより、細胞遊走の速度や方向を可視化する方法を解説しています。

 

このウェブサイトに対するお問い合わせはこちらから。