PR

 ディープラーニング(深層学習)などの機械学習手法の進化と普及によって、画像認識の精度が向上し、さまざまなシーンで活用されている。とりわけクラウドによる画像解析は、さまざまな事業者によってサービス化されており、誰でも手軽にその恩恵をあずかることができる。

 クラウドサービスを利用するためにはインターネットの接続が必須になるが、クラウドと通信できない環境で画像解析を利用したいケースもあるだろう。そもそもネットワーク環境がなかったり、ネットワーク費用やクラウドサービス利用料が出せなかったりなど、理由は様々だ。またクラウドと通信が発生する以上、ある程度の遅延は避けられない。

 こうした問題を解決するキーワードに「エッジコンピューティング」がある。末端で処理できることは末端で実行するという考え方だ。処理スペックが高いハードウエアが安価に手に入るようになり、近年ではエッジコンピューティングでもかなりのことができる。

 そこで今回は、オムロンのヒューマンビジョンコンポ(HVC)シリーズ「HVC-P2」を紹介しよう。簡単に説明すると、この製品は顔検知、性別や年齢の推定などを行い、その結果を返してくれるデバイスだ。これらの結果を得るのにクラウドは必要なく、この製品だけで完結する。他にも顔向き推定、人体検出、視線推定、目つむり推定、表情推定、手検出、そして、顔認証までサポートしている(写真1)。

写真1●オムロンの「HVC-P2」
写真1●オムロンの「HVC-P2」
[画像のクリックで拡大表示]

 製品は用途によって2つのタイプがある。違いが分かりにくいかもしれないが、写真上が長距離検出、写真下が広角検出タイプだ。タイプごとにカメラの視野の範囲が異なる。やや遠くの人物を判定したいならば長距離検出タイプを、目の前に人が来ることを前提として利用するなら広角検出タイプを使う。

 今回この製品を取り上げた理由は、通信仕様が一般に公開されており、誰でもこのデバイスを使ったアプリケーションを開発できるからだ。公式サイトから「コマンド仕様書」をPDF形式でダウンロードできる。もちろん、日本語ドキュメントなので安心してほしい。

 では使い方を簡単に紹介しよう。HVC-P2にはマイクロUSB端子があり、USBケーブルを通してシリアル通信ができる。このシリアルポートを通して、バイナリーデータのコマンドを送り、結果を取得する。USBシリアル通信が可能なプログラミング言語であれば、言語を問わずHVC-P2を操作できる。

 HVC-P2は常時検出処理を行うわけではなく、ホストコンピュータからコマンドを送ることで所定の処理を実行する。何を検出させたいかは、コマンドの中のビットを使って指定する。検出させる対象にもよるが、処理速度は想像以上に速いため、ほとんどのシーンで満足できるパフォーマンスを得られるだろう。

 顔認証をしたい場合は、事前に顔を登録しておく必要がある。一人につき複数の顔を登録できるので、いくつか登録しておけば、それなりの精度で個人の顔を区別できる。

 なお、この製品は顔認証を使ったセキュリティの用途には向いていないので注意してほしい。Windows 10に搭載されている「Windows Hello」やiPhoneの「Face ID」といった生体顔認証とは異なり、顔の深度は見ておらず、あくまでも画像を認識しているだけだからだ。そのため、写真をかざしても検知されてしまう。

 HVC-P2では、検出時の写真データも取得できる。モノクロ画像だが、最大で320×240ピクセル(QVGA)のビットマップデータが得られる。「この程度の低解像度の画像データで顔を検知して、さまざまな推定などできるわけがない」と思われるかもしれない。だがその点は心配に及ばない。HVC-P2の内部では1600×1200ピクセルの解像度で検出処理を行っている。シリアルポート経由で取り出す写真データがQVGAに縮小されているだけだ。

 オムロンはWindows版のデモ用デスクトップアプリを公開してる。これを試せば、どれくらいのパフォーマンスで、何を検出できるのかがよく分かるだろう。

 デモ画面(写真2)で筆者の年齢は44歳と判定されているが、実際の年齢は47歳だ。カメラの位置をずらしたり、表情を変えたりするだけで年齢推定は前後してしまう。だが人間同士ですら年齢を推定することは難しいにもかかわらず、エッジデバイス上で顔画像だけでここまで推定できるのはたいしたものだろう。

写真2●デモ画面
写真2●デモ画面
[画像のクリックで拡大表示]

 筆者はオープンソースで「node-omron-hvc-p2」という名前のnode.js版HVC-P2向けのモジュールを公開している。シリアル通信の仕様を知らなくても、メソッドベースでHVC-P2のほぼすべての機能を使える。node-omron-hvc-p2は、USBシリアルポートを認識できるOS環境であれば、HVC-P2を動認識する。HVC-P2をホストコンピュータのUSBポートに接続するだけで使い始めることが可能だ。また、ビットマップデータからJPEGやPNG形式のファイルとして保存する機能やData URL形式のテキストデータとして変換する機能も用意されている。まずは試しにいかがだろう。

OMRON Human Vision Components(HVC-P2)
https://plus-sensing.omron.co.jp/product/hvc-p2.html
node-omron-hvc-p2
https://github.com/futomi/node-omron-hvc-p2
羽田野 太巳(はたの ふとみ)
futomi 代表取締役社長、ニューフォリア取締役 最高技術 責任者
羽田野 太巳(はたの ふとみ) Webシステム開発およびWebコンサルティングに携わる。HTML5の気運が高まる以前からHTML5の探求を始め、HTML5専門サイト「HTML5.jp」を立ち上げ、HTML5の普及啓蒙に関わる。HTML5関連書籍や雑誌記事執筆も行う。現在は、Webベースのアプリケーション開発やデジタルサイネージ・システムの研究開発の指揮を執る。