画像を分析してステータス・アラートを送信する  

サーバーレスと視覚認識を使用して画像を分析し、アラート通知を送信する IoT アプリを構築する

Last updated | By Hovig Ohannessian

Description

産業およびハイテク業界のメンテナンス会社では、通常、現場の写真を撮って潜在的な危険や緊急事態の有無を確認し、問題が見つかった場合はそれに対処できる適切な担当者に通知します。このコード・パターンでは、対処する必要のある危険が存在するかどうかを知らせるために、画像を IBM Cloudant データベースにロードして分析し、その結果に基づいてアラートをトリガーするアプリを構築します。

Overview

事業会社やメンテナンス会社では、現場で何が起こっているのか現状を把握する必要があります。漏電、火災、故障は会社にとって、従業員を危険な状況にさらす結果、あるいはダウンタイム、広報活動の妨げ、金銭的損失という結果を招きかねない、大惨事の兆候かもしれません。

このような会社はこれまで率先して、故障をモニターする対象の現場や機器の画像を送信するためにリモート・デバイス (電話、搭載カメラ、ドローン) を使用してきましたが、そのような画像を自動的に分析し、対処が必要な場所や潜在的に危険な状況に関するアラートを送信することはできないでしょうか?

画像に依存する会社で開発者として働いているとしたら、画像を送信して自動的に分析し、アラートを送信するアプリケーションを構築するのは不可能なことではありません。このコード・パターンでは、まず IBM Cloud Functions を利用して画像を分析し、その結果を Watson IoT Platform に送信します。Watson IoT Platform で画像にスコアを割り当てた後、そのスコアを評価して、必要に応じてアラートをトリガーし、利用可能な最善の通信チャネル (例えば、e-メール、テキスト、プッシュ通知など) を通じて担当者に報告します。

このアプリケーションをスタンドアロンのアプリケーションとして開発すれば、スマート・デバイス内から操作できるように簡単に更新または変更できます。あるいは別の方法として、ラップトップまたはスマートフォン上のブラウザー上でアプリケーションを実行することも可能です。

このパターンの使用ケースでは、火災の検出を目的に、画像を送信して処理する方法を説明します (この同じアプリを、メンテナンスを促すアラートや他の緊急事態を知らせるアラートの検出に使用することもできます)。Watson Visual Recognition サービスによって火災が識別されると、Node-RED アプリが該当する担当者に通知します。

このプロセスを設計するには、さまざまな方法があります。また、このパターンに変更を加えて実際の使用ケースに応じて拡張し、アラートの受信者を変更したり、アラート通知に使用する指定のチャネルを追加したりすることもできます。

作成するアプリは、以下のフローに基づいています。

  • アプリケーションがデバイスから画像を取得するか、ローカルの画像フォルダーから IBM Cloudant NoSQL データベースに画像をアップロードします。
  • Cloudant データベースはバイナリー・データを受信すると、IBM Cloud Functions 上でアクションをトリガーします。
  • IBM Cloud Functions Composer が Visual Recognition 分析を実行し、分析結果として JSON フォーマットのレスポンスを受け取ります。
  • レスポンスは IoT Platform に送信されて、分析された画像の受信デバイスとして登録されます。
  • 続いて Node-RED フローが IoT Platform プラットフォーム上のデバイスからイベントを読み取り、画像のフィーチャーに応じてアラートをトリガーします。以下はアラートの一例です。
    
    iot-2/type/Device/id/motor1/evt/eventData/fmt/json
            image: fire
            score: 0.679
            alert: EMERGENCY ALERT!
            time: Tue Oct 24 2017 01:20:49 GMT+0000 (UTC)
    

Flow

  1. viz-send-image-app フォルダーは、ローカルで実行することも、クラウドにプッシュすることもできます。このフォルダーに含まれているアプリ UI を使用して、画像を Cloudant データベースにアップロードできます。
  2. Cloudant サービスを含む Node-RED パッケージを作成します。
  3. IBM Cloud Catalog から IBM Functions を作成します。Cloudant、IoT Platform、および Visual Recognition の各資格情報を、credentials.cfg ファイル (viz-openwhisk-functions 内) と credentials.json ファイル (viz-send-image-app 内) に貼り付けます。
  4. IBM Cloud Catalog から Watson Visual Recognition サービスを作成します。
  5. Watson IoT Platform を作成して Node-RED パッケージにバインドします。
  6. .json フローを Node-RED エディターに貼り付けます。Node-RED 内の ibmiot ノードに、Watson IoT Platform からの正しい情報が設定されていることを確認します。

Related Blogs

IBM Developer へようこそ

新しい IBM Developer へようこそ! 私たちはこの新しいプロジェクトに大いに張り切っていますが、まずは皆さんについて、つまり開発者についてお話ししたいと思います。

続けて読む 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 Internet of Things Reference Architecture

IBM Cloud

The home of 170+ unique services.