HOME > ソフテックだより > 第349号(2020年3月4日発行) 技術レポート「AIを活用した画像解析ソリューション」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第349号(2020年3月4日発行)
技術レポート

「AIを活用した画像解析ソリューション」

1. はじめに

組込みシステム開発を担当している入社半年のキャリア入社の社員です。社内の研究開発プロジェクトにて、シングルボードコンピュータ「Raspberry Pi」でAIを活用したカメラソリューションのプラットフォーム開発を致しましたので、ご紹介させて頂きます。

1.1 なぜAI (Artificial Intelligence:人工知能)なのか?

AIとは「人間の知能を機械で人工的に再現したもの」であり、AI、IoT、ビッグデータ、ロボットが相互に連携することで高度な処理を実現することができます。テクノロジーの進化により、コンピュータの計算能力が飛躍的に向上し機械学習・深層学習が実用化されてきおり、産業分野でも表 1に示す様に活用事例が広がってきています。

表1.  産業分野でのAI活用事例

事例 対応内容 効果
自動検査 製品の不良を検出する。 品質向上
コスト削減
商品仕分け 商品画像やラベルデータを判別し、商品の選別・ピッキング・仕分け作業を自動化する。
予兆保全 機械や消耗品の経年劣化などによる故障の予兆を検出し、ダウンタイムを削減する。 ダウンタイム削減
異常検知 異常箇所を推定する。
ヒヤリハット検知 立ち入り禁止エリアへの侵入を検知し、アラートを出す。 事故防止
工場での需要予測 製品をどのタイミングでどの程度生産・販売すべきかを予測し在庫最適化を実現する。 在庫最適化
熟練工の行動分析 熟練工の作業工程を分析し、未熟練工向けのマニュアル作成や効率化に活用する。 作業効率化
人材育成

1.2 なぜRaspberry Piなのか?

AIの導入は進んで来たものの高額なシステムでは導入の敷居が高く普及を促進できません。そこで今回5000円程度で入手可能なシングルボードコンピュータの「Raspberry Pi」とオープンソースを活用し、安価な開発プラットフォームを構築しました。また、Raspberry PiのOSは組み込みLinuxで汎用性が高いため、産業用途として長期安定供給が求められるシステムの際は、産業用パソコン、横河電機のe-RT3や三菱電機のC言語コントローラへの移植も可能です。

2. AIを活用したシステム開発方法

AIの学習方法は、表2に示す通り大きく3つ「教師あり学習」「教師なし学習」「強化学習」があります。今回、「教師あり学習」(※1)を用い分類する自動検査システムの開発方法を例として図1に示し解説します。「教師あり学習」は、正解がわかっているデータを元にルールやパターンを学習する方法です。
カメラ画像による自動検査システムでは教師データを準備します。教師データに良否(OK/NG)などの正解ラベルを付けて学習することによりニューラルネットワーク(※2)を作成します。自動検査の際は、カメラからの入力画像を作成したニューラルネットワークで推論することにより、良否を判定することができます。
このとき、教師データの画像点数は、システムによって前後しますが数百〜数千枚程度が必要です。準備する教師データには学習しやすいことが求められます。例えば、画質や角度が異なる撮影をした画像では正しく認識できない可能性があります。撮影方法・角度を合せたり明るさを一定に保った環境で撮影したりするといった工夫が必要です。また、コンピュータでの画像認識をしやすくするために、画像のノイズやひずみを取り除いたり明るさ・色合いを調整したりする前処理作業も必要になります。“学習”を意識してデータを準備することが肝要です。
AIを活用したシステム開発において、教師データを大量に準備する事が最初のハードルであり、AIの推論精度を向上させる上でも教師データの点数は重要なポイントでした。最初に教師データを自動収集するツールを作ることが開発の第一歩であり、推論精度を上げる取り組みとしても有効だと感じました。

(注1)
教師あり学習とは正解がわかっているデータを元にルールやパターンを学習する手法です。
(注2)
ニューラルネットワークとは、人間の脳の働きを模倣する数理モデルです。

表2.  AIを活用したシステム開発

学習方法 統計手法・アルゴリズム 事例
教師あり学習
(Supervised Learning)
分類
(Classification)
自動検査
商品仕分け
回帰
(Regression)
異常検知
工場での需要予測
教師なし学習
(Unsupervised Learning)
クラスタリング
(Clustering)
予兆保全、熟練工の行動分析
ヒヤリハット検知、レコメンド
強化学習
(Reinforcement Learning)
Q学習
Bandit Algorithms
自動運転
広告・マーケティング、ゲーム

自動検査システムのAI開発方法
図1.  自動検査システムのAI開発方法

3. システム構成

今回のご紹介するAIを活用したカメラソリューションのプラットフォームで構築した自動検査システムは図2の通りで、カメラからの映像を取得し、画像処理後、AIにて推論し結果を表示します。画像データから良否を導き出す推論処理のシステムです。
このとき、AIはNNL(Neural Network Libraries)で、画像処理はOpenCVを活用しました。NNLはソニーが開発・公開したオープンソースのAIライブラリで、OpenCVはインテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリです。システム構成の詳細は表3の通りです。
カメラからの画像データを推論し易い様に、正方形に切り出し、カラー画像をグレースケールへ変換、二値化・反転、縮小処理し784(28×28)ビットのデータへと変換しAIへ入力しました。推論結果はOK/NGの2個の正解ラベルです。推論処理の実行時間を測定したところ3[msec]程度と高速に実行することができました。

システム構成
図2.  システム構成

表3.  システム構成一覧

分類 名称 バージョン
コンピュータ Raspberry Pi Raspberry Pi 3 Model B+
カメラ Piカメラ V2
表示器 Piタッチディスプレイ
OS Raspbian Raspbian September 2019
ライブラリ NNL(Neural Network Libraries) C++ API 1.4.0.dev1
OpenCV 3.4.3

実機イメージ
図3.  実機イメージ

4. 最後に

自動検査システムを例として、AIを活用したシステム開発方法と、AIを活用したカメラソリューションのプラットフォームを紹介させて頂きました。本プラットフォームは、AIの導入の敷居を下げ、汎用性が高く様々なシステムへの移植も可能です。
今回は、「教師あり学習」を用い分類を実施するシステムの開発に関してご紹介させて頂きましたが、その他のAIを活用したシステム開発に関しても機会があればご紹介させて頂きたいと思います。

(H.M.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ