ちょっとした業務課題やビジネスアイデアを見つけたら、ツールを使ってその場で解決策を考え、すぐに実践してみる──企業の間で、そんなカジュアルなITの利用が広がり始めた。しかし、IoTやAIといった先進的なITになると、「自分達には縁遠い難しいもの」と、とたんに身構えてしまい、容易には試せなくなる。だが、こうした先進ITでも、第一歩を踏み出すためのソフトウェアやツールが入手しやすくなったことで、実はカジュアルに試すことができることをご存知だろうか。

IoTでいえば、超小型コンピュータの「Raspberry Pi」に温度計や人感センサーなどを取り付け、部屋の温度変化や入退室履歴などのデータを眺めてみる。そうしたカジュアルな試みから、オフィスの照明管理を効率化したり、会議室やトイレの空きを確認したりといった業務改革につながったケースは数多い。

本稿では先進ITのテーマでも取り上げられることの多い画像解析、その中でも画像処理に焦点をあてて、「カジュアルな画像処理」の方法を紹介したい。

画像処理
画像処理とは、画像データを処理して別の画像に変形する、または画像から何らかの情報を取り出し、統計解析などを併用することで数値化したデータにする処理を指す。本稿では主に後者について扱う。

WebカメラとノートPCではじめる、カジュアルな画像処理

画像処理と聞くと、「専門的な知識や技術、機器を必要とする」という印象を受けるユーザーが多いだろう。しかし実は、WebカメラとノートPCを用意するだけでスタートすることができる。今や画像や映像の分析に高度なプログラミングは不要で、必要なコードをGUIベースで組み合わせるだけでアイデアを実装できる時代が到来しているのだ。

たとえば、PCにつないだWebカメラで、自分の目の前に散らばっているモノを撮影してみる。ここでは例として、以下のように、無造作にデスクに散らばったワッシャーのかたまりを撮影してみよう。

これを画像処理すると、「大きいワッシャーが11個、小さいワッシャーが7個」であることがたちどころにわかる。少し想像力を働かせれば、これが工業製品のラインの仕分けに応用できることに気づくはずだ。さらに、ワッシャーをお菓子の箱に置き換えたら店舗での在庫管理に使えるかもしれないし、人間に置き換えたらビルに侵入する不審者の検知に使えるかもしれない。

こうした画像処理は、従来、どうしても下に挙げるような専門的な知識を必要としていた。


画像処理に必要な専門知識
・膨張、収縮などの形態処理(モルフォロジー処理)
・物体(オブジェクト)の検出・解析
・位置合わせ(レジストレーション)
・領域切り出し(セグメンテーション)
・物体の定量評価
・特異点の認識

しかし、データ分析のツールが充実したことにより、「アイデアを実装していく作業」は格段に効率化されている。適用できる領域が広いことから、画像処理は多くの可能性を秘めているといえよう。そこから有用なアイデアを生み出すためには、まず画像処理の用途を知る必要がある。ここでは「人が行っている作業の自動化」「人では行えない作業の実現」「先進的な用途例」、以上の観点から、画像処理の可能性について紹介していく。

画像に写ったモノを認識させた、作業の自動化

画像処理やデータ分析を支援するソフトウェアの1つに、MathWorksが提供するMATLABがある。科学技術計算や数値演算の分野で知られる同ソフトウェアだが、近年では、画像分析や機械学習を中心に、あらゆる産業で使われるようになってきた。

このように説明すると、専門家が利用するようなさぞ難しいソフトなのだろうと思う人も多いかもしれない。だが、実際は、Excelの数式処理や簡単なマクロ操作の経験があればMATLAB未経験者でもすぐに違和感なく利用できるようになるだろう。現に、先に紹介したワッシャーの大きさと数を測定する部分のプログラムコードは、わずか10行程度にすぎない。ソフトウェアをインストールしてサンプルコードを見ながら作成するまでの時間は、30分にも満たないだろう。

旧来、こうした画像処理を行う場合には、先に挙げた専門知識と技術を駆使して「画像に写っているモノは何か」「モノと背景の境界はどこか」「大きさはどのくらいか」「重なった場合はどうか」などについて一つひとつプログラミングしていく必要があった。今では、画像からモノを抜き出し、数を数えるといったような機能の多くがライブラリ化されている。あとは関数のように呼び出すだけで、画像に対する処理が自動でできてしまうというわけだ。

こうなると気になるのは、ほかにどんな機能があるのかということだろう。たとえば、モノが工業製品のように決まった形ではなく、バラバラだったらどうなのか。以下は、不揃いのイチゴの数を数えるケースだ。

ここでのポイントは、イチゴの赤色を抽出していること。Photoshopのような画像編集ソフトが備えるカラーピッカー機能を使って、赤色部分だけを範囲指定する。すると、イチゴのかたちが島のように切り出されるので、あとは、その数をカウントすればいい。色指定や範囲指定を行う際もコーディングは必要なく、マウス操作だけで簡単に操作できる。こうしたフレンドリーさがMATLABの特徴だ。

人間に知覚できない事象を機械で検知する

先のワッシャーやイチゴを認識するような場合、人が行っている作業の自動化が主な用途となるが、アイデアの中にはそもそも「人間では知覚できない(難しい)ことの把握」を目的としたものもあるだろう。こうしたケースでも、画像処理は非常に有効だ。たとえば、以下の細胞数のカウントをみていただきたい。

(c)理化学研究所 脳科学総合研究センター
生体物質分析支援ユニット
こちらからご覧ください

ここでは、神経細胞の染色画像から赤色に染色されているコアの数を自動的にカウントできるようになっている。人の目では細胞が重なっていてカウントできないが、画像処理を駆使することでこれが対処できるのだ。

画像処理は静止画だけでなく映像に適用することも可能だ。以下は、動いている歯車の映像から歯数をカウントし、歯が欠けてしまった不良を検出するという例。継続した単純作業はヒューマンエラーの発生を生み出す。100%の精度で不良品を排除することは、人の手だけだと非常に困難だ。この例では、実際にMATLABを業務に活用したことで、先の課題を解消している。

こうした映像は、たとえば顔認識とパターンマッチングを組み合わせることで、「不審者検知」に活用することもできる。不審者が通った箇所だけを録画するように設定すれば、監視映像のソリューションで課題となる容量の問題や、インシデント発生時の問題特定までのリードタイム短縮も可能だ。こうなってくると、人が行ってきた作業を機械で効率化することにとどまらず、機械やツールの特徴を生かした新しいサービスの可能性も見えてくる。

MATLABを活用した先進例

画像処理を活用して新しいサービスを提供する企業は多岐にわたる。ここでは、そうした事例のなかから、既存の設備やシステムを使って、効率よくサービス開発につなげた先進例を見てみよう。 自動車メーカーのBMWでは、駐車スペースを見つけるパーキングアシストシステムにMATLABを活用している。同システムはクルマを走行中、左側に駐車できる空きスペースを見つけるとそれを知らせくれるというものだ。

BMWの活用例

車体のドアミラーには、サイドビューカメラが左右に1台ずつ取り付けられている。そのカメラで撮影した2次元画像から、モーションステレオシステムで3次元モデルを作成。そこにMATLABを活用して画像処理を組み込むことにより、空きスペースが有るかどうかをリアルタイムに判別している。もともと備わっていたサイドビューカメラを使うことで短期間、低コストで機能を開発したことがポイントだ。画像処理の活用領域を交通インフラ全体にまで広げると、カメラを使った交通量監視システムの開発も可能になる。以下で紹介する試みと同様なものは、実際にいろいろなメーカーで検討が進められている。

カメラを使った交通監視量システム

ストリーミング映像を処理した先進例では、農業に応用したケースも興味深い。以下は、アクションカメラを畑に持ち込み、撮影したその場で生育状況を把握するという取り組みだ。Precision Agriculture(プレシジョンアグリカルチャ:精密農業)と呼ばれ、農業のIT化を進めるうえでのホットトピックの1つになっている。

アクションカメラをドローンに取り付ければ、広大な農地における作物の生育状況の把握も自動化できる。また、出荷状況にある作物がいくつあるかといったカウントも可能だ。さらには、植生の把握を空中から行うことで、NDVI(Normalized Difference Vegetation Index:正規化植生指標)の測定にもつながる。

MATLABで画像処理をカジュアルに始め、大きく育てていく

画像処理のための技術やツールは日進月歩で進化している。すでに見たように、ワッシャーのようなかたちが決まったようなものの認識から、作物のように時間の経過で大きさや形状、色が変わるものまで、あらゆるものを正確に把握できる。人や物体の認識でも、以前は電柱などの物陰に隠れてしまうだけで対象を認識できないケースもあったが、今では物陰に隠れていても、それが動いているのか止まっているのか、人なのか動物なのか、はたまた自転車なのかまで正しく把握できるようになった。

繰り返しになるが、通常こうした画像処理を行う際には、モルフォロジー処理、物体の検出・解析などさまざまな技術を組み合わせて処理する。それが、ツールの充実によって、容易に利用できるようになってきている。MATLABでは、さまざまな画像処理や機械学習などのツールやライブラリをToolboxとしてアドオンして利用できる。作業で必要になったら「アドオンエクスプローラー」を使ってソフト上に簡単に追加可能だ。

サポートする機器も、WebカメラからRaspberry Pi、ドローンまで多岐にわたる。ドキュメントも豊富で、サイト上で配布しているサンプルコードをダウンロードしてすぐに利用可能だ。もともと学術用途でリリースされていることもあり、ドキュメントには引用元の論文なども明記。もともとのアルゴリズムをたどることもできる。それでも不明な部分があれば、日本を含む世界中のコミュニティで質問することが可能だ。

MathWorksのコミュニティページ。課題解決に関する選択肢が多く用意されていることも、MATLABの大きな特徴だ

スモールスタートに適した機能を備える点も、MATLABの優位性だといえる。PoC(Proof of Concept)で作成したコードやライブラリからアプリケーションを作成してユーザーへ配布する、配布したアプリケーションを大規模環境に適したかたちで拡張するなど、小規模にスタートしたものを容易にスケールアップできる。

先進ITの取り組みは、いかに他社に先駆けて開始するかが重要視される。そこでのポイントは、「カジュアルに始めて実現性のあるアイデアを生み出す」ことだ。先進ITの1つである画像処理は、MATLABとノートPC、Webカメラだけではじめることができる。気軽な気持ちで、まずは試してみることをおすすめしたい。

関連サイト


MATLABを活用した画像処理
いまからはじめるMATLABによる画像処理・コンピュータービジョン2017 (Webセミナー)
Computer Vision System Toolboxの無料評価版

[PR]提供: