DX station

安い、手軽、効果的! Microsoft AI サービス Custom Vision で実現する画像解析と活用例のご紹介

藤 亮太

こんにちは。データサイエンスチームの藤 (トウ) です。

みなさんは Microsoft 社が提供している Custom Vision Service (以後 Custom Vision) についてはご存じでしょうか。画像認識を簡単に実行できるサービスで、 Custom Vision を使ったサービスも数多く登場してきています。カメラを設置し、 Custom Vision に予測をしてもらうことで、業務効率化や新たな価値を創造するなど応用範囲は広いです。本記事では Custom Vision の簡単なご紹介から、 「手軽さ」、「コストの安さ」、「効果的な活用法」 について掲載しています。最後には実際に業務に落とし込む際にフローを掲載しております。 Custom Vision だけでなく、もう一つ大事な要素についてもその章で触れておりますので、最後までお付き合い下さい。



「CogEra」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


誰でも手軽に扱える Custom Vision とは

最初は Custom Vision が持つ手軽さについてです。本章では Custom Vision とは何かをご紹介したあと、複雑で難易度の高い機械学習や画像認識を簡単に扱える機能、またその特徴を 3 点ご紹介します。より詳細な操作方法に関しては当社データサイエンティストが書いているブログがリンク先にありますのでご参照ください。

  • Custom Vision について
  • データセットが作りやすい
  • 学習も検証も簡単
  • 汎用性の高さ

Custom Vision について

Custom Vision は Microsoft 社が提供するクラウドサービス Azure の AI ソリューションである Cognitive Services の一部で、専門知識なしで画像認識を実施できるサービスです。

画像のアップロード、タグ付け、モデルの学習、テストといった機械学習でよく実施するプロセスをWeb上で操作して簡単に実行できることが特長です。画像がどのカテゴリに属するかを決める 「画像の分類」 と、画像内のオブジェクトを識別して位置を出力する 「オブジェクトの検出」 の 2 つの機能が用意されています。画像の分類であれば 5 枚、オブジェクトの検出であれば 15 枚から学習自体は可能で、 50 枚以上が推奨値です。以下に示すような特定の対象 (ドメインと呼ばれる) の画像認識を実施したい場合は、ドメインによって Custom Vision が適切な事前学習済みモデルを用意されています。

画像の分類で用意されているドメイン

  • 全般 … さまざまな画像分類タスクに最適化されています。どのドメインを選択すればよいか不確かな場合は、全般ドメインを選択します。
  • 食料 … 料理の写真に最適化されています。
  • ランドマーク … 自然物、人工物といった建造物に最適化されています。多少人が映っていても機能します。
  • 小売 … ショッピングカタログで見るような商品に最適化されています。
  • コンパクトドメイン … エッジデバイスでのリアルタイムな分類の制約に最適化されています。

オブジェクトの検出で用意されているドメイン

  • 全般 … さまざまな画像分類タスクに最適化されています。どのドメインを選択すればよいか不確かな場合は、全般ドメインを選択します。
  • ロゴ … ブランドロゴを探すために最適化されています。
  • シェルブの製品 … 棚の中の製品を検出して分類するために最適化されています。
  • コンパクトドメイン … エッジデバイスでのリアルタイムな分類の制約に最適化されています。

データセットが作りやすい

実際の画面を見ながらデータセットの作りやすさを見ていきます。まず画像の分類です。画像をアップロードし、タグを付与するだけでデータセットが作成できます。

画像アップロード時にタグを付与した画像については Tagged に仕分けられます。アップロード時にタグを付与しなかった画像については Untagged に仕分けられます。 Untagged に仕分けられたものについても、あとでタグを付与できます。

オブジェクトの検出もプロセスは同じですが、タグの付与に加えてどの領域にオブジェクトがあるのかを指定します。マウスのドラッグによる領域の指定も可能ですが、 Custom Vision ではオブジェクトをクリックするだけでおおよその領域を自動で推薦してくれます。自動で推薦された領域の微調整も可能です。

またすべての画像にタグを付与することが面倒なときに利用できる Smart Labeler 機能があります。これは画像の分類、オブジェクトの検出のどちらにもある機能です。 Untagged の画像がある状態で一度画像を学習させる必要がありますが、 Untagged に仕分けられた画像に適切なタグを推薦してくれます。 Smart Labeler のように、徐々にデータを増やしていくための便利な機能からは、少しずつ学習モデルを成長させるという Custom Vision のコンセプトが見えます。

学習も検証も簡単

データを準備できたら学習させます。実行方法は Train を押すだけです。

学習する速度を重視するか、精度を重視するために時間を多くかけるかを選べますが、まずはクイックに学習してみましょう。クイックでも精度が高く出る印象です。

本来、機械学習のモデルの学習はパラメーターの調整に時間がかかるだけでなく、データサイエンティストの技術力が色濃く反映される部分でもあります。そういったステップをボタン一つで実施してくれるのは嬉しい点です。学習が完了すると同時に、評価結果が出力されるのでモデルの性能をチェックしてみましょう。評価指標は Precision、 Recall、 AP の 3 つです。 Precision は真と予測したモデルの結果のうち、閾値を超える確信度で真と予測できた割合を示します。 Recall は真のデータのうち、閾値を超える確信度で真と予測できた割合を示します。 AP は PR 曲線 (Precision Recall の略) を書いたときの面積です。 PR 曲線については深く触れませんが、一般的に Recall が上がれば Precision は下がるため右肩下がりのグラフになりますが、 Precision が下がりにくい良いモデルであればグラフの面積が大きくなり、精度がよいといえる指標です。参考までに PR 曲線の例を示します。

今回は画像を 24 枚しか投入していませんが精度が高くなりました。データの質がよく、分類しやすかった画像であったためと思われます。次に Quick Test について説明します。画面上部の Quick Test を押して評価用の画像を選択します。この際、学習で使用していない画像を用意することが重要です。学習で使用した画像でテストするのは Leakage と呼ばれ、テストでカンニングするようなものです。今回は異常を含む画像と正常な画像を分類してみましたが、下図のようにテストしてみたところ異常であると認識できています。 (異常部分を示すピンクの丸は筆者が説明のために追加したもので、 Custom Vision の実際の出力とは異なります。)

汎用性の高さ

画像の分類には「Multiclass」と「Multilabel」の 2 通りの分類方法があります。Multiclass は 1 つの画像に対しタグを 1 つ付与して学習し、 Multilabel は 1 つの画像に対しタグを複数付けることが可能です。これらは Custom Vision のプロジェクトを作るときに指定できます。

画像においては 1 つのタグを付与することが一般的ですが、複数のタグが扱えることで 「材料 A と材料 B が混在している。」 といったように、複数種類の対象が画像内に含まれていることを検出できます。画像の分類は不良品の検出や異常箇所の推定に適用でき、オブジェクトの検出は物体や人間のカウンティングにも応用可能なため画像処理による問題解決のアプローチとして汎用性の高い技術といえるでしょう。



「CogEra」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


いろんな意味で低コストな Custom Vision

前章までCustom Visionの手軽さについて説明しました。本章ではコスト面についてご紹介し、低コストだからこそ実現できることと、その価値についてご説明します。

  • 価格
  • 何度も学習しなおせる
  • ドメインの切り替えもしやすい

価格

Custom Vision の価格は、下の表に示すように 「無料インスタンス」 と 「Standard インスタンス」の 2 パターンが設定されています。例えばひと月に 2 台のカメラで 1 日あたり 24 回予測を行い、学習は 1 時間以内で収まるということであれば無料インスタンスの範囲で利用可能です。上記の条件で学習が 2 時間かかり、学習に用いる画像を 10,000 枚にした場合、 Standard インスタンスで約 3,583 円です。検証の初期段階では少しずつ画像を集めてモデルを成長させていくことが多いため、無料インスタンスの範囲で検証できる場合が多いと考えられます。

インスタンスごとの価格(2021/11/29 現在)

インスタンス 1秒あたりのトランザクション数 機能 料金
無料 2 最大プロジェクト数 : 2 すべて無料
1 ケ月あたり 1 時間の学習
1 ケ月あたり 10,000 回の予測
1 プロジェクト当たり 5,000 枚の画像の学習
Standard 10 最大プロジェクト数 : 100 \227.44 / 1,000 回の予測
学習 \1,137.2 / 1 時間
1 プロジェクト当たり最大 6 MBのストレージ \79.604 / 1,000 画像

何度も学習しなおせる

学習したモデルの精度が低いとき、学習画像を追加、または学習画像をすべて刷新して再学習を実施しますが、 Quick Test を活用すれば短時間でやり直すことができます。

ドメインの切り替えもしやすい

金額的なコスト以外も考えてみます。異なる環境や業務で Custom Vision を使いたい場合、アップロードさせる画像を変えて学習が簡単にできます。横展開における内製化が楽になることが期待され、コストだけでなく時間も節約できます。



「CogEra」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


Custom Vision を効果的に活用して業務効率化

続いて Custom Vision を活用した業務効率化の実例についてご紹介します。実案件に基づくため詳細は割愛し、概要の説明としています。

  • 工場の製品チェックを効率化し、人件費の削減と製品品質の向上を達成
  • 人流を予測し、警備、マーケティングのデータとして利活用

工場の製品チェックを効率化し、人件費の削減と製品品質の向上を達成

大型のフィルム系製品について異常の有無を点検する業務にて、一度すべてフィルムを広げてから目視によるチェックを実施し、再度巻き直す作業を効率化したいというお話をいただきました。製造段階で Custom Vision による画像の分類を実施し、異常と判断した結果がどの位置の画像か処理することで人手による作業量を抑えました。異常の箇所や傾向を把握することで品質の向上の施策に繋げることにもなりました。

注意 : 一般的に画像の異常検知において異常のパターンが多い場合は分類によって解決することは困難であり、画像の異常検知に特化した別のアプローチが必要になります。異常のパターンが限定的でかつデータを取得しやすい環境であれば分類によって解決することが可能である場合もあります。


人流を予測し、警備、マーケティングのデータとして利活用

スマートビルディングの推進として、人流を把握して適切な空調管理や警備員の配置を実施するためにビルへの入場者数をカウントしたいというご要望がありました。人数のデータはマーケティングにも活用できる将来性があります。人流は基本的に入退出が双方向なのでオブジェクトの検出では対応し難いのですが、本例では一方通行の構造になっていたため入口の通行人数は入場者数に一致する状況だったため、オブジェクトの検出での対応が可能でした。システム構成としては一定秒数で画像を取得してクラウドにアップロードしておき、まとめて予測を実施したあと画像は廃棄し、入場者数のデータだけデータベースにアップロードするようにしました。



「CogEra」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


Custom Vision からシームレスに高度化

最後に Custom Vision を実際にどう利用するか、またどう高度化していくかについてお伝えしたいと思います。Custom Vision には 「コスト」、「手軽さ」、「効果的」の3点があるとここまでお話してきました。ただ残念ながら Custom Visionだけでは業務に活用することは難しく、その点を伝えているブログはあまりないかと思います。本章では実務の利用フローを提示してご説明します。本章で最後ですのでぜひお付き合い下さい。

  • まず試してモデルを作成する
  • In - Out を構築する
  • Custom Vision よりも高度なアルゴリズムを適用する

まず試してモデルを作成する

少量でもいいので画像を集めてモデルを構築してみることが第一歩です。少しずつデータを増やしてモデルを成長させていきます。内製化を想定している場合には自分たちで実施することをおすすめします。画像のタグ付けやオブジェクト位置のタグ付けは、業務にあたっている担当者が一番知識を持っている部分かと思います。よいタグ付けはよいモデルを作りますので、今まで培ってきた業務上の知見を最大限発揮できるプロセスといっても過言ではありません。先述の Smart Labeler 機能などラベル付与をサポートする機能は多いので活用してみてください。

In – Out を構築する

高精度なモデルを作ることができたあとに課題となるのは、実際に画像を Custom Vision にどうやって入力するか、また Custom Vision で予測した結果をどう出力し利用するかになります。 Custom Vision には画像の入力と結果の出力を管理するのに便利な API が備わっています。学習などを管理する API と予測用の API が存在しますが、ここでは予測用の API に絞って話を進めます。学習したモデルに対して画像を送信し、モデルから得た出力結果を取得するまでが予測用 API の主な役割です。 IoT デバイスから送信し、クラウドに格納された画像をCustom Visionで処理するためには Azure が提供する SDK や API を使用して IoT デバイスとともに開発をする必要があります。最近は IoT デバイスと手軽に連携できる製品も増えてきています。また Custom Vision だけでなく画像認識全般に言えることですが、画像をモデルが理解しやすいように加工する必要がある場合もあります。例えば、物体を認識しやすいように色調を変化させる場合や、余分な領域を削除する場合などです。その際は Python などのプログラミング技術が必要になります。

Custom Vision よりも高度なアルゴリズムを適用する

これまで Custom Vision を活用して手軽に画像認識技術を使用する方法について説明してきましたが、より高度な AI のアルゴリズムが必要となる場合もあります。例えば、画像から人流を予測する例をお伝えしましたが、双方向の通行人がいる等のより複雑な状況においては、オブジェクトトラッキングという深層学習技術を用いることが通例です。また、画像の異常検知に関しても異常パターンが複雑で、異常データを確保しにくい場合は、画像の異常検知に特化したアルゴリズムがより適する場合があります。データの質や量、取得する環境を整えるまでは Custom Vision を使用して検証を進め、プロジェクトが進行するにつれてより高度なアルゴリズムへの置き換えを検討しても良いかもしれません。



「CogEra」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


さいごに

本記事では Custom Vision が 「手軽さ」、「コストの安さ」、「効果的な活用法」 の3点で優れていることをお伝えしました。非常に有用なサービスで、データサイエンティストが不在でも活用できる機能が豊富です。当社が紹介している Custom Vision の詳細な使用方法を見ながら、ぜひ一度お試しいただければと思います。

当社では、 AI 活用支援をはじめ、機械学習のモデル構築、クラウドを活用したシステム構築支援までご支援しています。現行の作業を軽減してより重要な作業に時間を充てたい、取得しているデータを活用して課題解決を行いたいなど AI 活用を検討中のご担当者の方、まず何からはじめればよいか悩んでいるといったお客様も、ぜひ一度お問い合わせください。



「CogEra」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


おまけ : 今回の検証で使用したデータセット

今回扱うデータは BSData を使用しました。 BS というのは Ball Screwの略で、ボールねじと呼ばれる製品です。金属の表面に発生する局部腐食 (通常、孔食や Pitting と呼ばれる) を異常と定義します。(Wikipedia参照)


関連ブログ記事

Azure Custom Vision Service の物体検出機能を試してみる
Azure Custom Vision Service のご紹介
機械学習モデルのエッジデプロイ&実行(Custom Vision Service 編)

関連ページ

「CogEra」はこちら
「ML Connect」はこちら
「機械学習導入支援サービス」はこちら

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録