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

サーバーレスと視覚認識を使用して画像を分析し、アラート通知を送信する 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

OSC東京 SpringにIBM Developer Advocateが登壇します!

みなさまこんにちは、IBM Developer AdvocateのTaijiです。 明日、2月22日はOSC東京 Springです! 私は14時よりJavaアプリをIKS(IBM Cloud上のK8s)へデプロイする方法の開設をデモ交えながらやらせて頂きます。 こちらの内容は、Code Patternsでも紹介しております。 Spring Boot マイクロサービスを Kubernetes 上にデプロイする ご存じない方も多いのですが、IBM Cloudの多くの部分は、実はオープンソースで構成されているんですよ😎 ご予定お繰り合わせの上、ぜひお越しくださいね🙋‍♂️ https://www.ospn.jp/osc2019-spring/ #osc19tk #TryIBMDev #IBM #IBMDeveloper

続けて読む OSC東京 SpringにIBM Developer Advocateが登壇します!

IBM Developer へようこそ

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

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

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.