車両損傷の画像を分類する  

Apache Cordova、Node.js、Watson Visual Recognition を利用して、カスタム視覚認識分類子を作成する

Last updated | By Scott D’Angelo

Description

IBM Watson™ Visual Recognition は、学習アルゴリズムを使用して画像を分析し、物体、場所、顔などのコンテンツを認識するサービスです。このコード・パターンでは、保険業界での使用ケースとして、車両の損傷を分析するカスタム分類子を紹介します。このパターンで作成するモバイル・アプリケーションは、車両損傷の写真を撮って保険会社に送信し、問題 (タイヤのパンク、窓の損傷、車体のへこみなど) を特定して分類します。

Overview

あらゆる類の組織で、画像分類の必要性が大きくなってきています。このことは、保険会社にしても例外ではありません。IBM Watson Visual Recognition サービスを利用すれば、画像分類に簡単に対応できます。

Visual Recognition サービスでは、サンプル画像をアップロードして、カスタム分類子を作成できるようになっています。このコード・パターンでは、興味深い使用ケースとして、保険会社が車両損傷を分析するためのカスタム分類子を必要としている場合を取り上げます。

ここでは、Apache Cordova, Node.js、および Watson Visual Recognition を利用してモバイル・アプリケーションを作成します。このモバイル・アプリケーションから送信する自動車やオートバイの事故やその他の車両問題の画像を、サーバー・アプリケーションで Watson Visual Recognition を利用して分析します。サーバー・アプリケーションでは画像を使用して、各種の問題区分 (破壊行為、フロントガラスの破損、自動車事故、タイヤのパンクなど) を特定できるように Watson Visual Recognition をトレーニングします。このパターンを利用して、さまざまな使用ケースに応じた独自のカスタム Watson Visual Recognition 分類子を作成することができます。

このコード・パターンをひと通り完了すると、以下の方法がわかるようになります。

  • Watson Visual Recognition サービスを利用して画像を分類できる Node.js サーバーを作成する
  • サーバーの起動時に、Watson Visual Recognition カスタム分類子を初期化する
  • アプリケーション内に Watson Visual Recognition カスタム分類子を作成する
  • Watson Visual Recognition を利用して分類する対象として写真をサーバーに送信できる Android モバイル・アプリケーションを作成する

Flow

  1. ユーザーがモバイル・アプリケーションで画像をキャプチャーします。
  2. ユーザーがモバイル・アプリケーション上の写真を、クラウド内で稼働中のサーバー・アプリケーションに送信します。
  3. サーバーが受信した画像を分析対象として Watson Visual Recognition サービスに送信します。
  4. Watson Visual Recognition サービスが画像を分類し、その情報をサーバーに返します。

Instructions

このコード・パターンをデプロイする基本的な手順は、以下のとおりです。詳細については、README ファイルを参照してください。

  1. サーバー・アプリケーションを IBM Cloud またはローカルにデプロイします。
  2. リポジトリーを複製します。
  3. Watson Visual Recognition サービスを作成して名前を付けます。
  4. .env ファイルに Visual Recoginition API キーを追加します。
  5. 依存関係をインストールしてサーバーを実行します。
  6. モバイル・アプリに合わせて構成値を更新します。
  7. 依存関係をインストールしてモバイル・アプリケーションをビルドします。
  8. ビルドされたモバイル・アプリケーションを Docker コンテナー内で実行します。
  9. Android プラットフォームおよびプラグインを追加します。
  10. Android デバイスをセットアップします。
  11. モバイル・アプリケーションをビルドして実行します。

Related Blogs

IBM Developer へようこそ

新しい IBM Developer へようこそ!私たちはこの新しいプロジェクトに大いに張り切っていますが、まずは皆さんについて、つまり開発者についてお話ししたいと思います。 私は開発者である皆さんを称賛します。私自身も開発者として、この業界で起きていること、つまりクラウド、データ/アナリティクス、人工知能、トランザクション、ブロックチェーンのコンバージェンスを目にしていますが、開発者の皆さんの、文字どおりすぐに新しいテクノロジーに対応する能力に心から敬服します。これまでの歴史全体を通して、ソフトウェア開発者という職業を、今ほど誇らしく思える時代はありません。IBM での私たちの使命は、開発者という専門的職業を、世界で最も尊敬すべき、最も需要の高い職業として受け止められるようにすることです。 なぜなら、開発者は毎日、未来を築いているからです。このサイトは、皆さんと一緒に築いていきたい未来を映し出し、讃えるためのものです。 私たちのチームは、開発者のアドボケイト (支持者)、デザイナー、コンテンツ編集者で構成されています。この有能なチームが、必要なツールを確実に開発者に提供できるよう、全力を尽くします。 間違いなく、このサイトは皆さんのサイトです。私たちは開発者の価値観を反映するために、コード、コンテンツ、コミュニティーからなる IBM Developer サイトを立ち上げました。私たちがこのサイトで目標としているのは、皆さんが開発者としての責務をより迅速に、よりスマートに、より効果的に果たせるよう支援することに尽きます。 この目標を達成する IBM Developer ならではの手段として、コード、コンテンツ、コミュニティーを 1 つのエンティティーにまとめています。 コード 開発者の能力は、開発者が世に送り出すコードにそのまま反映されます。開発者の能力がコードの威力を超えることはありません。だからこそ、開発者が非の打ちどころのない美しいコードをより迅速に作成し、競争相手よりも迅速にコードをデプロイして市場に送り出せるようサポートすることが、私たちの任務だと思っているのです。ただそれだけです。 IBM Developer を開始するきっかけとなったのは、開発者にフォーカスしたサイトを作成したらどうだろうかというアイデアです。そのサイトでコードを前面に押し出し、実際の問題を解決することを重点に置き、開発者がその責務をより迅速に、よりスマートに、より効果的に果たすために利用できるようにするには、どこから始めればよいだろうか考えました。 答えは明白です。コードが出発点となります。 開発者の目標は、開発者自身と同じく、それぞれに異なります。意図も、情熱も、才能もそれぞれに異なる開発者が取り組むプロジェクトは、とんでもなくシンプルなものから気が遠くなるほどに複雑なものまで、多岐にわたります。 独自のアプリケーションを開発して数分で稼働できるよう開発者をサポートするためには、すぐに使えるコードを用意し、開発者が簡単にそれを入手してフォークし、本番アプリケーションに組み込めなければなりません。単純にとらえ過ぎていると思われるかもしれませんが、文字どおり単純な話なのです。そして、コードをすぐに利用できるようにする手段となるのが、私たちが作成するコンテンツです。 コンテンツ 開発者が利用するコンテンツについてと、そうしたコンテンツをどのような方法で利用したいかについて、開発者たちとかなりの時間をかけて話し合いました。その結果、クラウド、データ、AI、ブロックチェーンなどのテクノロジーを使用して特定の機能をアプリケーションに統合する方法を垣間見られる、数百のコード・パターンを作成することになりました。どのパターンをクリックしても、最初に表示されるのは、コードを取得するための「コードを入手する」ボタンです。このボタンをクリックしてコードを取得し、開発を始めることができます。 コード・パターンはこのサイトの特徴的なコンテンツですが、その一方で、皆さんは特定のテクノロジーを使用して特定のタスクに取り組む方法について理解するためのチュートリアルもお望みのはずです。そこで、コンテキストを説明し、最先端のテクノロジーに関する理解を広げる、SME による数々の記事も用意しています。また、IBM Developer 動画デモでは特定のテクノロジーを使用する手順を案内し、インタビューでは最新の傾向に対する業界トップの見解を紹介しています。さらに、ニュース・セクションでは、テクノロジー分野での最新の動向に関する洞察を得ることができます。 テクノロジー分野といえば、IBM Developer の寄稿者たちがフォーカスしている主なテクノロジー分野は 20 を超えていますが、コンテンツには 50 以上の主題別にタグを付けているので、探しているコンテンツを簡単に見つけられるようになっています。私たちは IBM であり、開発を公にすることの価値を信じています。このことから、サイトでは全体にわたって、オープンソース・テクノロジーを大きく取り上げていることを見てとれるはずです。200 を超えるオープンソース・プロジェクトを話題にしたコンテンツに、ワンクリックでアクセスできます。これらのプロジェクトを利用して、変更を加え、その成果を IBM Developer にコントリビュートしてください。 私たちは多言語のマルチクラウドの世界に生きているので、IBM 社員以外の人々からの話も聞きたいはずです。そのため、今後数週間にわたり、開発者コミュニティーに大々的にコントリビューションを公開することになっています。そうです。コンテンツに対するこうしたアプローチをオープンソースのように公開することで、より大きなコミュニティーからのコントリビューションを促そうとしているのです。 公開したコンテンツのすべては、エラスティック・サーチを通じて一体化されます。 コミュニティー IBM Coder Community は、開発者たちに、イノベーションを生み、アイデアを交換し、学習する場であるコミュニティーに参加してもらうためのものです。つまり、開発者同士を結び付けて経験を共有するハブの役割を果たします。 IBM...

続けて読む IBM Developer へようこそ

Call for Code Challenge 2018(9/28応募締切!)- まずは参加登録して、自然災害に役立つ IBM Cloud のサービスに触れてみよう

みなさまこんにちは! 年々、テレビのニュースや新聞を見て、異常気象による集中豪雨や猛暑が各地で発生していると感じている方は多いのではないでしょうか。自然災害による甚大な被害をもたらしているのは日本だけではありません。「自然災害」は、今、世界が立ち向かうべき最も大きな試練となっています。 IBMは、2018年5月24日、パートナー団体と共に「Call for Code」をいう取り組みを発表し、世界中のデベロッパーが最新の技術を駆使して、コードで世界にポジティブな変化を与える支援をはじめました。 2018年の Call for Code チャレンジでは、「自然災害」をテーマに自然災害を打ち破り、地域社会や自然災害対策を強化を目指し、IBM Cloud サービスを活用したソリューションを構築するコンペティッションを開催します。18歳以上の個人または最大5名までのチームで参加することができます。優勝チームには USD200,000 (2,200万円相当) が贈られます。 これを機に皆さんにも「Call for Code」にご参加いただき、クラウド、データ、AI、ブロックチェーンを活用するためのIBMのテクノロジーにも触れていただければと思います。詳しくはサイトをご覧ください。 Call for Code(日本語サイト) Call for Code への参加するまでの手引き(日本語解説資料) IBM Code Patterns : Watson を活用した AI やクラウドなどのアプリ開発に役立つサンプルコードを提供

続けて読む Call for Code Challenge 2018(9/28応募締切!)- まずは参加登録して、自然災害に役立つ IBM Cloud のサービスに触れてみよう

Related Links

Architecture center

Learn how this code pattern fits into the Cognitive discovery Reference Architecture

https://www.ibm.com/devops/method/content/architecture/cognitiveDiscoveryDomain2/0_1

Watson Node.js SDK

Access the Node.js client library to use the Watson developer cloud services, a collection of APIs that use cognitive computing to solve complex problems.