ディー・クルー・テクノロジーズ Blog

bookmark_borderAIモデルを開発する(AI×IoT トイレ見守り④)

無人TOF画像とリアルタイムのTOF画像を比較することで、人の位置や状態を判断できるのであれば、AIも同様にそれを判断できるはずです。この考えを基に、シンプルなAIモデルを開発しました。

前回の記事はこちら

AIモデルの仕組み

このAIモデルは、以下の3つの状態を検出できるように設計されています。

  • 空の個室 – TOFセンサーの値から人が存在しないことを検出し、トイレが使用されていないことを示します。
  • 使用中の個室 – TOFセンサーの値から立っているまたは座っている人を検出し、トイレが使用中であることを把握します。
  • 転倒した人 – TOFセンサーの値から床に倒れている状態を検出し、緊急事態であることを示します。これは迅速な対応を必要とします。

さらに、より高度なケースとして、トイレに座ったまま体調不良になった場合などには、タイムアウト検出機能を設けました。具体的には、「トイレに座ったまま15分以上動きがない」といった条件でこの異常を検知し、見守りアラートを発することが可能です。

PoCにおけるAIモデルの構成図

今回のAIモデル開発は非常にシンプルなものに徹しました。以下にPoCにおけるAIモデルの構成図を示します。

AIモデルの入力(左端)

このモデルには、以下の2つの入力があります。

  1. リアルタイムのTOF画像 ‐ 状態(立っている、座っている)を示す画像。
  2. 無人のTOF画像 – トイレが空いている状態を示す画像。

AIモデルの構成(中央)

このAIモデルは、次の2つのパートから成っています。

  1. 特徴 抽出パート – 画像から特徴情報を抽出します。
  2. 判断 パート – 抽出された特徴情報をもとに状態を判断します。

AIモデルの出力(右端)

また、出力は下記の3つです。

  1. 転倒状態の合計人数 – 床に倒れている人の数。
  2. 正常な状態の合計人数 – 立っているまたは座っている人の数。
  3. 検出された合計人数 – 検出された全ての人の数。

AI モデル学習を実行する

AIモデルは教師あり学習を用いて学習されます。モデルを学習させるためには、入力データと出力データの2種類のデータが必要です。教師あり学習とは、正解を逐次教えることで学習を行う方法です。

  1. 入力TOFデータ – TOFセンサーから取得した画像データ。
  2. ラベル(出力)– 出力データとして、検出された合計人数、正常な状態の合計人数、転倒状態の合計人数を使用します。

AIモデルが学習するステップは?

 AIモデルの学習ステップは以下の通りです。

  1. TOF画像をAIモデルに入力し、AIモデルの判断結果を正解データと比較します。
  2. AIモデルを更新し、正解に近い判断ができるように調整します。。

このように、プロセスはシンプルなのですが、賢いAIモデルを生み出すためにはこのプロセスになんと、数万枚の画像「データ」とそれ以上の反復学習が必要になる場合があります!

実用的なAIソリューションを作ることは挑戦ですが、最大の課題はAIモデルそのものではなく、「データ」です。

次回は、私がどのようにしてトイレのためのAI学習用「データ」を収集したのか、その方法についてお聞かせいたします。

bookmark_borderTOFセンサーとは?その仕組みとトイレ見守り活用方法を徹底解説(AI×IoT トイレ見守り③)

前回記事からの続きです。前回記事は↓からどうぞ。

近年、スマートフォンや自動運転車、産業用ロボットなど、さまざまな分野で使用される技術が急速に進化しています。その中でも「TOFセンサー」という言葉を耳にする機会が増えてきました。

TOFセンサーは、低コストで解像度も粗めなので、安全でプライバシーに配慮したトイレ見守りも可能になっています。本記事では、TOFセンサーとは何か、その基本的な仕組みから具体的な活用方法までをプロフェッショナルな視点で解説するとともに、PoCの製作を通じ、効率的なトイレ見守りシステムを提案します。

TOFセンサーの概要

TOFセンサー(Time of Flight Sensor)は、物体までの距離を正確に測定する技術です。「Time of Flight」とは「飛行時間」を意味し、光や電波が発信されてから物体に反射して戻ってくるまでの時間を計測することで距離を算出します。この技術は、高精度な距離測定が可能であり、様々な応用分野で利用されています。

TOFセンサーの技術

TOFセンサーでは、短い光パルス(通常は赤外線)が物体に向けて発信されます。パルスが物体に反射して戻ってくるまでの時間を高精度で計測し、その時間から距離を算出します。高速での距離測定が可能であり、動く物体の検出にも適しています。

このTOFセンサーはアクティブセンサーであるため、暗所などの環境でも使用できます。 センサーのTX(送信)部はレンズ技術を用いて赤外線をバースト送信(図の緑線)し、8ピクセルの平面グリッド列を形成します。

TOFセンサーの画像(8ピクセル)

物体に反射した赤外線はRX(受信)レンズを通過し、赤外線検出器のアレイに導かれます(図の赤線)。検出器は、一定の時間間隔ごとに赤外線の到達時間と数を記録します。 その出力は、時間間隔ごとの赤外線光子数のヒストグラムとなります。このヒストグラムのピーク情報と時間データを用いることで、各検出器ごとの物体までの距離を算出できます。赤外線光の速度は光速と同じであるため、センサーは非常に短い時間間隔で計測します。

TOFセンサーでトイレ見守りPoCを作る

TOFセンサーをトイレの天井に設置します。通常は高さ2.2メートルから2.8メートルの範囲に配置されます。

下図中央のようなレイアウトだと、左図のように壁やトイレなどの特徴がセンサー画像に映りますが、それらの位置は分かっているため、TOF画像で見ても理解はしやすいです。

ただし画像の解像度が低いため、トイレの曲面などの細かい形状は認識できません。

トイレ内の物体の動きはどう判断されるのか

一番右の図の無人のトイレ個室のTOF画像と、それぞれ人がいる状態の画像をリアルタイムに比較することで、個室内に何かがあることが判断できます。

  1. 無人
  2. オレンジ色のピクセルは、人が立っているエリアを示します。
  3. 黄色のピクセルは、人が座っているエリアを示します。
  4. 緑色のピクセルは、人が倒れているエリアを示します。

このように、低解像度のTOFセンサーでも、トイレ内のどこかに何か(または誰か)がいるかを推測できます。また、物体の大きさや高さ(天井に近いのか、床に近いのか)も推測可能です。ただし解像度のため、センサーのみでそのものずばりを人か否かと判別することまではセンサーではできません。この点は予めご理解ください。。

AIモデルの登場

このように無人のトイレのTOF画像と他のリアルタイムのトイレのTOF画像を比較するだけで、人間が見て物体(人)の位置や状態を判断できるのであれば、AIを使っても同様に判断できるはずですね。この考えをもとに、私はシンプルなAIモデル を開発しました。次回はそのAIモデルについてお話しします。

bookmark_borderAI×IoTでトイレ見守りシステムを作る(2)

トイレ見守りシステムの2回目です。今日は見守りを可能にする技術の変遷についてお話します。

前回の記事はこちら↓

技術革新がスマートトイレ見守りを可能にした理由とは?

この20年間で、モバイル産業、IoT、AI の急速な発展により、私たちの生活は大きく変わりました。そして、これらの技術の進歩は スマートトイレ監視システム の実現にも大きく貢献しています。

では、どのようにしてここまで進化してきたのでしょうか? その鍵の1つは モバイル産業がけん引した、センサー技術、マイコン(MCU)、そしてAIの進化 にあります。

モバイル産業が技術革新牽引したセンサーとは?

技術革新の大きな原動力となったのが、モバイル産業 です。スマートフォンの進化とともに、メーカーは より小型で低コスト、かつ省電力なセンサー の開発を進めてきました。その結果、以下の技術が大きく発展しました。

  • MEMS(Micro-Electro-Mechanical Systems)センサー – MEMSセンサーは、小型化された加速度センサー、ジャイロセンサー、マイクなどの複雑なデバイスを含みます。これらのセンサーは、ミリメートル単位のサイズでありながら、高精度かつ高感度な測定機能を提供します。例えば、加速度センサーは、自動車の安全システム、スマートフォン、スマートウォッチなど、幅広い用途で利用されています。また、ジャイロセンサーは、デバイスの向きや角度を正確に測定できるため、ゲームコントローラーやドローンの操縦システムなどで重要な役割を果たしています。さらに、MEMS マイクは、音声認識や通信機器において高い性能を発揮します。
  • パッシブイメージセンサー – 従来のRGBカメラやサーマルカメラは、高価な機器に依存していましたが、技術の進歩によってコストが大幅に下がり、ますます多くの消費者が利用できるようになりました。この変化は、スマートフォンのカメラ機能の向上だけでなく、他の分野でも応用が広がっています。たとえば、パッシブイメージセンサーは、セキュリティシステム、医療用診断機器、さらには農業における作物モニタリングなど、多岐にわたる応用が見込まれています。これにより、ユーザーは手軽に高品質なイメージデータを取得できるようになり、情報の可視化や的確な判断を行うための手助けとなっています。
  • レーダー、LiDAR、TOFセンサー – レーダー、LiDAR(Light Detection and Ranging)、そしてTOF(Time of Flight)センサーは、もともとモバイルデバイスや自動車向けに開発された高度なセンサー技術です。特に人の存在を検知する用途において、そのプライバシーを守る機能が注目されています。レーダーは、非接触で対象物の移動を捉えることができ、交通管理や安全装置として広く使われています。また、LiDARは、レーザーを用いて周囲の詳細な3Dマップを生成することができ、これにより自動運転車両の進化に貢献しています。TOFセンサーは、光の飛行時間を測定することで、距離や深さを高精度で計測できるため、拡張現実(AR)やバーチャルリアリティ(VR)といった分野でも重要な役割を果たしています。

このように、携帯電話業界が推進した省電力化、低コスト化、センサーサイズの小型化の3つは、ドローン、XR、VR、ウェアラブルなどの他のビジネスの起爆促進剤となりました。

MCU(マイコン)と組み込みAIの進化

センサーが進化する一方で、それを処理する マイコン(MCU: Microcontroller Unit) も急速に進歩しました。これにより、スマートトイレ見守りシステムのようなエッジAIデバイスの開発が可能になりました。このシステムは、使用者の健康状態や行動をリアルタイムで監視し、データを解析することで、予防医療や健康管理に寄与します。従来のクラウドベースのシステムに依存せず、デバイス自体で直接データ処理を行うことができるため、迅速なフィードバックとプライバシーの保護が実現されます。

  • 省電力で高性能な32ビットMCU が、センサーや画像データをリアルタイム処理 できるようになりました。
  • 一部の企業では MCUとセンサーを一体化 し、さらなる小型化と効率化を実現しました。ハードウェアの複雑さが軽減され、製造コストも削減されます。これにより、より多くの企業や開発者がエッジAI技術を活用しやすくなり、様々な産業での応用が広がります。
  • IoT向けのAI対応チップ の登場により、AIを活用したエンベデッドシステムの開発が容易になりました。データの収集、処理、分析を行うための計算能力を持ちながら、従来のMCUよりもさらに小型・低消費電力を実現します。

7〜8年前までは、32ビットMCUでAIを処理することはその処理能力に限界があり、実用的ではありませんでした。しかし現在ではこうした技術の進歩により、デバイス上でAIアクセラレータを内蔵したMCUがAIモデルを直接実行することが可能になっています。この進化により、リアルタイム分析が可能になり、従来のクラウド依存型のアプローチから脱却することができるようになり、より迅速な意思決定を可能とし、さまざまな業界での応用が期待されます。

AI対応MCUチップの構成イメージ

⓵シングルパッケージソリューション
②マルチパッケージソリューション

見守りシステムにおける、AI活用の可能性とは?

なぜスマートトイレ見守りにAIが必要なのか?

「そもそも、なぜトイレ見守りシステムにAIや機械学習が必要なのか?」という疑問を持つ方もいるかもしれません。その答えは、センサーデータの処理が極めて複雑だから です。従来のアルゴリズムでは、転倒検知や動作検知を高精度に実現することが難しい のです。AIを活用することで、以下のようなメリットが得られます。

  • 高精度な検知 – AIは、従来のアルゴリズムでは見逃しがちなパターンを認識できる。これにより、より正確に異常事態を検出することができ、利用者の安全を向上させます。
  • 適応性 – AIモデルは、学習を重ねることでより正確な検出が可能に。様々な環境や状況に応じた柔軟な対応が可能となります。
  • 自動的な特徴抽出 – ルールをいちいち手作業で作らなくても、AIを利用すればデータから自動的にパターンを学習し、精度の高い判断が可能となります。

ただし、AIは万能ではありません。最も重要なのは 「正しいデータを用意すること」 です。データの質が悪ければ、AIモデルの学習精度も低下します。そうならないような学習データの収集と管理が成功の鍵を握ります。

スマートトイレ見守りの未来

センサー、MCU、AIの進化 により、プライバシーに配慮したスマートトイレ監視システムが実現可能になりました。今後、さらなる技術革新により、以下のような進展が期待されます。

  • よりコンパクトで低コストなソリューションの登場
  • より高精度なAIモデルによる検知の向上 IoTやクラウドとの統合によるさらなる利便性向上

次回は、スマートトイレ見守りの実験の様子や、実験に使用したTOFセンサーについて解説します。

bookmark_borderAI×IoTでトイレ見守りシステムを作る(1)

急速に変化する日本社会、求められるデジタル変革

日本社会は大きな変革の時を迎えています。若年層と高齢層の人口バランスが変化し、労働可能な人口が減少する一方で、高齢者の割合は急速に増加しています。このような社会構造の変化に対応するため、今生活設備の自動化やデジタル変革(DX)が不可欠になっています。デジタル変革にはコストが重要な課題の1つです。新しいソリューションを導入する際は、初期費用だけでなく、長期的なサポートコストも考慮し、費用対効果の高い選択をすることが求められます。

こんにちは。私は、ディー・クルー・テクノロジーズで「ハードウェア、センサー、処理技術(アルゴリズム・AI)、そして通信技術(ワイヤレスなど)」を組み合わせることで、コストの課題に対応できるソリューションを提供可能と考えているエンジニアです。 今回は、テクノロジーの力で、変化する社会に柔軟に適応し、より持続可能な未来を実現していけることを皆様にも感じてもらいたく、このブログを寄稿いたしました。

トイレみまもりシステムとは? ー今、トイレ監視が求められる理由

近年、病院や高齢者介護施設、パチンコ店、カフェ などでのトイレ監視システムの重要性が高まっています。それらの目的はシンプルで、利用者の異常な状態をできるだけ早く検知し、迅速な対処を可能にすることです。もし命に係わるような緊急時であったときは、わずかな遅れが健康や深刻な影響を及ぼす可能性がありますので、なおさらこうした対策が求められているのです。

トイレは 人目の届かない空間 であり、利用者が困っていても気づきにくい場所です。病院の患者、介護施設を利用する高齢者、パチンコ店などの娯楽施設やカフェのお客様 などが、万一お一人でトイレを利用中に急な体調不良が発生した場合、気づかずに放置されてしまい、場合によっては命にかかわるという高いリスクが常に伴います。

だからこそ、そこにトイレにIoTがあれば、お一人で利用していても、それぞれの環境で 迅速な異常検出を行って場合によっては命を救うこともできるかもしれない、と考えています。

盗撮と勘違いされないようにトイレを見守るには?

トイレの監視システムでは利用者の状態をセンサーで検出するという仕組みが必要です。しかし、盗撮・盗聴などの悪質行為と勘違いされないように配慮しなければなりません。ここが以前ブログでお伝えしたカメラを使った駐車場監視とは違ったトイレ見守りの難しいところです。

カメラ・マイクはご法度!

さて、利用者の行動を監視するには、結論から言うと次のような検知機能が求められます。

  • 占有検知 – トイレが利用者によって使用中かどうか
  • 動作検知 – 利用者に異常な動きがみられないか
  • 転倒検知 – トイレ内で利用者が倒れていないか

これらの検知を、カメラやマイクを用いずに、実施すること。これができれば、異常時に適切な対応ができる仕組み を作ることが可能になります。

トイレ見守りにたいする街の施設の課題感とは?

  • 病院・高齢者介護施設の課題
    • 病院では、看護師がナースステーションから複数の病室を監視 することが一般的です。しかし、監視システムの届かない、トイレの中で患者に異変があったとしても、すぐには気づけません。
    • 患者さんのプライバシーを守りつつ、異常な静止状態や転倒を自動で検知し、看護師に通知できるシステムを導入すれば、これによりプライバシーを守りながら患者さんの安全を確保 できます。
  • パチンコ店などの娯楽施設の課題
    • 医療・介護スタッフが常駐しているような設備であれば、まだ人的にリスク回避が可能ですが、医療スタッフが常駐しているわけではない、パチンコ店では、長時間座って遊技するお客様が多く、トイレをずっと我慢していたり、たまに立ち上がってトイレに行って用を足しているときに、お客様の中には体調を崩されてトイレ内で倒れるといったケースがあるそうです。

実際に娯楽施設の運営サイドでは、こうしたシチュエーションにおいてお客様の健康を守るために、異常検知システムが求められているようです。私もパチンコ店のような環境でこそ、IoTシステムによる異変の早期発見がより重要なキーになるのでは、と考えています。

パチンコ店が求めているトイレ見守りシステムとは?

さて、お店では、大きく分けて3つのお客様の異常を検知できるシステムを求めているそうです。

  1. トイレ内での体調不良による意識喪失
  2. 異常に長い滞在時間による健康リスク
  3. 転倒・転落事故の発生
トイレで慌てて転倒!

こうした緊急事態をプライバシーに配慮した環境でシステムが検知し、スタッフに通知すれば、迅速な対応が可能です。パチンコ施設側も安心安全なお手洗いの提供という付加価値も提供できます。

スマートなトイレ見守りシステムはどうあるべきか

さて、こうした状況をカバーする、スマートな見守りシステムとはどうあるべきでしょうか?

何はなくともプライバシー配慮型であること

繰り返しになりますが、トイレ監視システムの導入にあたっては、プライバシーの確保が最優先事項 です。監視にはカメラを使用せず、高解像度のRGBカメラやサーマルカメラの導入は避けるべき です。その代わりに、最近進化した別のセンサー技術を活用することで、プライバシーを守りながら監視を行えます。また、大規模施設もおおいこうした設備では量導入が見込まれるため、システムには 低コストでスケーラブルな設計 も求められます。優れた監視システムにするには以下の条件が必要です。

加えて3つのシステム条件が必要

  • 低コスト – IoTシステムの導入において、最も重要な点の一つは低コストです。病院や企業は限られた予算内で効率的に運営を行う必要があります。そのため、導入時のコストが抑えられ、手頃な価格設定であることが求められます。これにより、さらなる機会を捉えやすくなります。
  • スケーラブル – もう一つの条件はスケーラビリティです。多くの施設や部門に対して、スムーズにシステムを展開できる能力があることが重要です。つまり、必要に応じて規模を拡大したり、異なる環境に適応することができるシステムが望まれています。
  • 高精度 – 最後に、高精度もIoTシステムの重要な要素です。過検知や誤検知を防ぎ、正確に異常を検出する能力は、信頼性のある運用に欠かせません。特に医療機関では、患者の安全を守るためにも、精度の高いデータ収集が求められます。

これらの条件を考慮しながら、IoTシステムの導入を進めることで、より効率的で安全な運用の可能性が広がると考えます。

スマートトイレ見守りを可能にする技術とは?

プライバシーに配慮しながら、コストを抑え、確実に異常を検知できる仕組みを構築する技術が進化することで、病院やパチンコ店、に限らず、介護施設などさまざまなレベルの個室の安全性が向上します。 次回は、それら技術の進化についてみていきましょう。

bookmark_border駐車場の空きを教えるエッジAIを作る (その3~データセットの課題解決) 

こんにちは。

オープンソースを活用しながら、低コストでエッジ デバイスやさらに小さなIoT デバイスで使用できる小さな AI モデルを作成する、駐車場AI R&D チャレンジの3回目です。

作成したPOCには大きく3つの課題がありました。どのような対策を施し克服したのかご紹介します。

データ注釈の課題克服

まず、時間のかかるプロセスである、データ注釈(アノテーション)の課題解決です。

利用可能なオープンソースの注釈ツールはいくつかありますが、今回のPOCの目的「AI モデルのトレーニングに使用される”ビットマップ マスク イメージを生成する”」こと。この 要件に一致するものはありませんでしたので、私はPython で OpenCV API を使用し自ら注釈モデルを作成しました。

製作した注釈モデルアプリケーション

このアプリケーション製作は慣れていれば非常に簡単です。アプリケーションは 2 つのウィンドウで構成されています。 左側が入力画像、右側が出力マスクです。

ユーザーの作業は基本的に、

「車の位置にある左側の画像をクリック」する、

たったこれだけです。 これにより、右側のマスクが自動的に更新されます。

ちなみに同じ場所をもう一度クリックすると削除できます。キーコントロールで画像を保存、次の画像を選択、ポイント設定という流れでザクザクと設定を進められます。 (すべての画像が同じディレクトリにあると想定ですが)

簡単とはいえども、画像数が多いと当然ながら非常に時間がかかります。もっと楽をしたいので私は、手動で1,000 枚の画像に注釈を付けた後で、その注釈付きの画像を活用して注釈付けAIのトレーニングと AI モデルを作成しました。

このトレーニング済みの AI モデルを使用して、残りの画像に注釈を付け作業を簡略化できました。

そもそもの元画像にミスが多かったせいで、手動で手直しも発生しましたが、とはいえゼロから画像に注釈を付けるよりもはるかに高速で処理できました。

AIモデルの課題克服

次に、注釈モデルアプリの中のAIモデルですが、IoT環境で使うため、プログラムサイズの軽量化が必要です。

注釈モデルアプリの処理の流れ

私の製作した注釈モデルアプリのAI モデル(上図中央)は以下の 2 つの部分で構成されています。

  • 前工程:事前学習された Mobilenet バックボーン (モデルの一部のみ)
  • 後工程:カスタム FCNN (完全畳み込みネットワーク)

学習データ セットが小さかったため、私はこのアプローチを採用しました。 本AI モデルでは、小さなカスタム FCNN セクションのみがトレーニングされますので効率的です。 前工程のMobilenet は事前にトレーニングされているため、画像内の多くの低レベルの特徴を検出できます。後工程の カスタム FCNN のほうは、前工程のMobilenetの検出後画像をさらにフィルタリングし、車のみが検出できるようにしました。この結果私の製作した AI モデルのプログラムサイズは、float32 パラメーターでは約 6 メガバイトでしたが、(パフォーマンスは 1 パーセント (0.3%) ほど低下したものの)量子化 (int8) によって 4 分の 1 (2.5 メガバイト)にまで縮小できました。

データの増強とデータセットの制限の克服

次に、データセットの問題です。

前回2回目のブログで私は、駐車場画像のデータセットに偏りがあると、駐車場監視AIモデルの学習がうまく進まないこと、駐車場においては主に7つのデータセットの課題があるとお伝えしました。

そこで私は駐車場データの増強やデータセットの制限を克服するために、以下のようなアプローチを試みました。

1. データサンプリング

データ分析において、データセットの中から有意な情報を得るため、データの一部を抽出することをサンプリングと言います。また、ヒストグラムの棒のことを英語ではbinビン)と言いますが、ある抽出データがどのビンに属するのかの定義を決めていきます。

まず、駐車場の画像データを、ビン(bin)に配置します。

駐車場の場合は駐車台数がキーになります。たとえば、車が 0 台の画像用のビンが 1 つ、車が 1 台しかない画像用のビンが 1 つなどと決めていきます。駐車場AIデータのトレーニング中は、これらのビンに配置した画像をランダムに選択しAIに答えさせていきます。

さて、昼と夕方では明るさが違うので、AIにより賢くなってもらうには、これらの状態でのサンプリングも必要になります。そこで私はビンをさらに 駐車台数 ✖ 画像の明るさレベル (平均)、明るい、中間、暗いへと分けました。
こうして(影や車の色の違い <明るい白から黒まで>も存在するため、これだけですべての問題が解決するわけではありませんが)様々な明るさ✖台数の駐車場データを設けることで、トレーニング データをより均等に分散させて、トレーニング中のバイアスを減らすことがAIにより賢くなってもらうために必要です。

2. ランダム化によるデータ増強

特定の駐車台数、特定の明るさのデータが十分にない区間も存在します。こうしたトレーニングデータのバイアスを補い均質化する技術としてランダムパッチがあります。

画像の一部分にランダムなパッチを当てて、ふたをします。こうすると、画像内の車の数が変化しますので、違う台数条件のデータを学習させることができます。

ランダム化には他にも方法がありますが、今回のデータの課題の特性を見ながら、ランダムな明るさの変化と、ランダムなコントラスト変更 (ぼかし、シャープ化)も必要と感じ実施しました。

3. ミラーリング

データ増強の方法にミラーリングというものがあります。画像をランダムな角度に水平方向に反転させ、鏡映しのような画像をつくるのですが、私は今回これも用いてみました。

結果

AIモデルのトレーニングには、過学習(オーバーフィッティング)を減らし、バランスの良い学習でAI モデルの堅牢性を向上させる必要がありますが、以上のアプローチの実施後、現時点のデータセットでのAIモデルの認識パフォーマンスは 99% 以上をマークすることができました。

今後の展開

今回のAI モデルは、FCNN (完全な畳み込みネットワーク) と組み合わせた MobileNet バックボーンを使用しましたが、プログラムサイズがまだかなり大きくて、約 2.5 メガバイトでした。 (ただしARM M7 Cortex で MobileNet モデルを実行することは可能です)

プログラムサイズに関しては、Mobilenet バックボーンの削除+完全にカスタム化された AI モデルの作成を行うこと、そしてNeural Architecture Search(NAS)を使ってニューラルネットワークの構造自体を最適化すれば1 メガバイト未満のモデルも構築できると想定しています。

それより重い課題は主な課題はトレーニング データです。 現在のデータセットはおそらく小さすぎて、AI モデルをゼロからトレーニングできません。費用と時間がそれなりにかけて、より多くのデータを収集していく方法は当然ありますが、予算や時間が限られる研究者も大勢いると思います。

だからこそ、私はより高度な AI モデルを使用してトレーニングデータを合成する方法で解決できる可能性に期待しています。大規模なジェネレーティブ AI モデルがトレーニング用データを合成し、その合成データを、今度はIoT やエッジ デバイスで動作する AI モデルのトレーニングに使用するプロセスです。

”合成データは AI データの未来である”

大きなAIがエッジAIのトレーニングをサポートすることが当たり前の世界に1歩でも近づけていきたい。私はこのように強く思っています。

次は、他のエッジAI開発事例についても、お話しできればと思います。

bookmark_border駐車場の空きを教えるエッジAIを作る
(その2~AIモデルおよびデータセットの課題) 

エッジ デバイスやさらに小さなIoT デバイスで使用できる小さな AI モデルを作成する、駐車場AI R&D チャレンジの2回目です。オープンソースを活用しながら低コストでの開発をしています。

今回はそうしたエッヂAI開発でありがちな、乗り越えなければならない課題をお話します。

AI モデルのサイズとパフォーマンス

オープンソースのオブジェクト検出 AI モデルはたくさんあります。 なかでも有名なのはYolo(You only look once) です。 こうしたオープンソースの検出モデルは、多くの研究データ セットで高いスコアを達成する素晴らしいものです。

人や車を検出する、オープンソースのオブジェクト検出AI

ただ、小さなオブジェクトやオブジェクトが密集しているケースなどでは、検出パフォーマンスが低下する傾向があります。加えて、CPUを集中的に使用し、GPU をサポートしないようなエッジ デバイスやIoTデバイスでは、画像のフレーム レートは遅くなるので、さらにパフォーマンスに影響を与えます。

Yoloモデルのサイズは、数百メガバイトから 5 ~ 10 メガバイトまでさまざまあるのですが、 最適化されたモデルが小さいほど、パフォーマンスが低下しますので、今回のエッジAI開発のような、メモリの小さな環境ではかなり厳しい想定はありました。

とはいえ、今回の目的はそうした環境下でも「画像内の 1 つ以上のオブジェクトタイプを検出できる AI モデルを作成すること」です。

もしCPU のみのエッジ デバイスで 5 以上のフレーム レートで機能するAIモデルが実現できれば、さらに難度の高いAI/IoT デバイスでもAIモデルが実行できる可能性がありますのでやる価値はあります。

私は今回のAI モデルのサイズの目標を、エッジ デバイスの場合は 2 Mb 以下、さらに小さなAI/IoT デバイスの場合は 400kB 以下と置いて開発をすすめました。

データセットの注釈(アノテーション)

オリジナルデータ→ アノテーション記録 → イメージマスク出力(AI学習後)

AIモデルの実行環境と同じくらい重要なのが、データセットの注釈(アノテーション)です。

有料のアノテーション済の学習データ(教師データ)は便利ですがご存じの通り高価ですので、今回は無料で扱えるKaggleのデータベースを使うことにしました。

Kaggleのデータセットのデータは4000ほどありましたが、アノテーションが付いておりません。

付けなければなりませんが、人によるアノテーションはお察しの通り途方もない作業で、開発者が自ら行うのは無理があります。そこで、前述の著名な物体検出 AI モデルの「 Yolo」 で車を認識させアノテーションを自動設定しようと試みました。

 ところが、これがうまくいかないのです。

私の感覚ですと、どうもこの「Yolo」はおおまかに1画像に移っている車の数の20%~40%程度しか車を認識しませんでした。

 なぜか。

どうやら映像内で並んでいる車のサイズが小さすぎて、前述した「小さなオブジェクトやオブジェクトが密集しているケース」に相当してしまいYoloが認識できないのが原因のようでした。

結論として今回Yoloが使えないことが分かったので、もう自作しかないと思った私は、映像内の車の位置を記録するアプリケーションをカスタム製作することにしました。

詳細はまた機会があればご紹介しますが、このアプリがうまく各車の位置をアノテーション記録してくれたので、AIモデル学習、その後のAIモデルのイメージ マスク出力までできるようになりました。

データセットのバランス

データ セットの課題はもう1つあります。それはデータセットのバランスです。

データセットのバランスとは、極端に似たデータばっかりセット内に存在するとか、逆にあまり存在しないデータがあるといった不均衡、不均一なデータであることで、そのままAIが学習するとAIモデルの性能評価に偏りが生じる可能性があります。

今回の駐車場のデータセットでもいろいろとありましたが、まとめるとこんな感じです。

  1. 気象条件による明るさの変動
  2. 影による画像の明るさの変化
  3. 明るい日差しの中で白い車
  4. 暗い場所の黒い車
  5. 植物の問題
  6. データセット大きな偏り
  7. 一部の車種の形状

以下簡単にご説明いたします。

1.気象条件による明るさの変動

これは、霧がかかった冬の日から、明るい夏の日までさまざまな状態があります。こうした季節や気象の変化で駐車場の映像の明るさも刻々と変化します。この変動はAIモデル学習に影響を与えます。

2.影による画像の明るさの変化

また、1日の時間帯の条件も難しい時があります。朝から夕方までの太陽の位置で周囲の明るさ自体が変わります。また特に朝夕などで太陽の位置が傾いているときの映像データですと、出来る影が車の周囲に発生をして、これが邪魔をしてAIモデルが車を見分けにくくなることがあります。

日なたと日かげのある条件

3.明るい日差しの中で白い車

たとえば、明るい朝の日差しの中に白い車があるような状況です。こうなると周囲の明るさに車が埋没するので、カメラ センサーが飽和状態になり、車の特徴が見分けにくくなります。

明るいと白い車が飽和しがち

4.暗い場所の黒い車

これは前述の逆パターンで、薄暗くなった夕方になって駐車場へやってきた黒い車は、車とその周囲の明るさが似ていてAIが認識しにくい、という問題を引き起こします。

夕方の黒い車

5.樹木の問題

これもよく問題になります。この駐車場データの右下にある車は、その前にある木々の枝が茂っており、部分的に遮られています。落葉樹ですと冬には葉がありませんが、夏には葉がもっと茂るので、認識率もさらに変わってくることになります。

(右下)木の葉が多い茂っている

6.データセットの大きな偏り

この重要度は前述しましたが、駐車場の映像でのデータセットの偏りとは、なんだかわかりますか?

実は「駐車台数」です。

実際に学習用に入手できた駐車場画像は0~3台ほどが停車しているものが大半で、Kaggleでは4台~というものがほとんどなかったのです。ですので、このまま学習をすすめると、学習に大きな偏りが生じる、という問題を発生させます。

7.一部の車種の形状

こちらも前述いたしましたが、車の形状が大きく違う場合、認識率が落ちることがあります。たとえば、RVやセダンなどが多い国の映像を中心に学習していると、たまに停めに来る大型トラックなどを車と認識しない、ということが起きます。

以上、オープンソースを活用しながら低コストでエッジAI開発をするときの、AI モデルのサイズとパフォーマンス、そして駐車場データセットの課題についてまとめてみました。

いかがでしょうか。皆様の開発の参考になると嬉しいです。

次回は、これらの課題克服のポイントなどについてお伝えしようと思います。

bookmark_border駐車場の空きを教えるエッジAIを作る
(その1~ エッジAIモデルについて)

エッジAIとは?

ディー・クルーでは、エッジAI(IoT環境で動く人工知能)の研究を行っています。

IoTデバイスでは通信負荷が高まるとデータ転送に遅延が生じるなど、問題が起き始めます。

そこで、クラウド側に過度に依存せず、ローカル環境=エッジ側でセンシングー演算ーAI認識まで完結させて、レスポンス性能と通信負荷の低減を両立した環境にやさしいシステムを実現する。

これをめざしてディークルーで現在研究しているのが、AI開発「エッジAI」です。

すなわち、AIを組み込んだIoTデバイスやEDGEデバイスに AI オンチップ アクセラレータを組込むという構想です。

この構想のもと、私は電力負荷の高いGPU を使用せずに低電力 MCU で動作する軽量の AI システムを作りたいと思っていまして、今研究を進めています。

駐車場の空き監視AIを作ってみたきっかけ

今日は、そのなかでも、映像認識のエッジAI研究プロジェクトの1つ「駐車場監視AI」をご紹介します。

映像認識AIは例えば、今映像で映っているオブジェクト(対象物)が、人なら人、コップならコップといった具合に、「どこに、それがあるのか(ないのか)」を人工知能(AI)にリアルタイムに検出させる技術を用いて課題を解決する技術です。

当社はIoTシステムの開発案件を多く手掛けており、駐車場に関したシステムも開発していました。駐車場に止める「車」はAIモデルが認識しやすいオブジェクト(対象物)であります。

そこで、駐車場に設置したカメラから、駐車スペースの空きが分かる便利になると思い付き、AIによる駐車場空き監視システムを作ってみたので、少しご紹介したいと思います。

今回のAIモデルの概要

このプロジェクトのAIモデルについての概要を示します。

図1 AIモデル入力イメージ (368×528)
図2 AIモデル 出力マスク(23×33)

  1. 図1 入力イメージからのオブジェクト検出にFCNN(完全な畳み込みネットワーク)を用います。
  2. AIモデルは、図2 出力マスクを生成し、オブジェクトのおおよその位置を示します。
  3. AIモデルは、この出力マスクを使いオブジェクトの位置を特定、数えることができます。
  4. AI モデルは、Python向けの機械学習ライブラリである、Pytorch フレームワークを使用します。
  5. AI モデルは、Raspberry PI 4 上で 4 ~ 8 Hz のフレーム レートで実行されます。
  6. 学習用のデータセットソースは 、 Parking Lot Dataset | Kaggle を使用しています。

AIモデルの動作について

作成したAIモデルの動作についてはYoutubeの動画にしましたので、ぜひご覧いただければと思います。

図3 駐車場の空き監視AI デモ映像

次に、この映像で何が起きているかということをご説明します。

  • AIモデルが、映像上で「車」と認識している位置に、白い四角を打っています。
  • 動画の上部(UPPER)駐車スペースと、下部(LOWER)駐車スペースの「Parked」(満)と「FREE」(空)数で、AIが認識した数を数えて、それぞれの値を変えています。
  • AIが認識した駐車した車の数に合わせて、白い四角の数も変わり、これらの数字も刻々と変わっていくことがお分かりいただけるかと思います。

なお、映像がカクカクしているなとお感じかもしれません。これは、IoTならではの軽量システムでのパフォーマンスを維持するために、意図的にフレームレートを落としているからです。システム環境によっては、フレームレートを高め、AIモデルをそこに最適化することもできます。

次回は、このAIモデル作成時の課題や工夫したポイントなどについてお伝えしようと思います。