身近なものでIoT!使わなくなったiPhoneで顔認識する監視カメラをつくってみた!

身近なものでIoT!使わなくなったiPhoneで顔認識する監視カメラをつくってみた!
■ 店頭より得で、予約しやすいオンラインショップ。
 → ドコモオンラインショップ
 → auオンラインショップ
 → ソフトバンクオンラインショップ

最新のiPhoneを得して乗り換えるなら、最大6万円のキャッシュバックがある
→ SMARTPHONE STORE

最近IoTという言葉をよく聞きますね!
IoTとはInternet of Thingsという略称で、和訳で「モノのインターネット」と言われております。

wikipediaより引用してみます

モノのインターネット(Internet of Things、IoT)は、一意に識別可能な「もの」がインターネット/クラウドに接続され、情報交換することにより相互に制御する仕組みである[1]。「Internet of Everything」や「Smart Everything」、「サービスのモノ化」ともいう[2][3][4]。「Internet of Things」という用語は、1999年にケビン・アシュトン(英語版)(Kevin Ashton)が始めて使った用語である[5]。ここでいう「もの」とは、スマートフォンのようにIPアドレスを持つものや、IPアドレスを持つセンサーから検知可能なRFIDタグを付けた商品や、IPアドレスを持った機器に格納されたコンテンツのことである。

世の中にあるあらゆる「もの」がインターネットにつながるイメージですね。
以前より記事にしているibeaconもIoTとしてくくることも考えれます。

私の中でのIoTとは
「今までインターネットにつながっていなかったものがインターネットにつながる」
と思っております。

しかしながら今現在、技術の普及はありながらも身の回りにIoTを実感できる機器は少ないですので、私なりの「簡単に体験できるIoT」を作ってみました。

準備

【用意したもの】

 ・iPhone5s(椅子を撮影しつづけております)と Webサーバー

image04

【デモ画面】

 ◼︎アプリ側
 ・侵入者がきた!!
  image07

 ◼︎サーバー側
 ・インターネット経由でサーバーに画像を送信してWEBから見ることができます。

image06 

【全体の概要】

 ◼︎アプリ側
  1:アプリ起動後リアルタイムに映像を撮影し続けます

  2:顔を検知したらサーバーに画像をPOST送信します。
 以降延々とこれを繰り返します。
 
 ◼︎サーバー側
  1:受け取った画像を任意のフォルダの中に保存します
  2:HTML側ではそのimgを表示し続けます。

実装部分

アプリ側(Objective-c)

・AVCaptureSession
 これはカメラやマイクの入出力を管理するためのクラスです
 このsessionに設定を加えて
 

 とすると撮影が始まります。

 画面への表示は
・AVCaptureVideoPreviewLayer
 を使います。

 こうすることで、上記のAVCaptureSessionの動画を画面に表示しつづけます。

・AVCaptureMetadataOutput
・AVCaptureVideoDataOutput
 これらのクラスを先ほどの AVCaptureSessionに追加します
 

 そしてdelegateを設定すると
 撮影されている動画のリアルタイムな情報を取得することが可能になります。
 ↓

 1秒間にすごい回数このイベントが呼ばれており、
 CMSampleBufferRefから画像を取得することが可能です。
 ただし、この段階では顔を検知することはできません。

 このイベントはとても便利です。
 「様々な1次元2次元バーコード情報」+「顔」を認識した時に、このイベントがよばれます。

この2つの組み合わせて顔認識された瞬間に画像を取得しています。
そして取得した画像を非同期通信(NSURLConnection)にてサーバーにPOST送信しています。
 
 ※注意点1 取得した画像をそのままのサイズで送信するととてもサイズが大きく送信に時間がかかるのでサイズを小さくしましょう!
 ※注意点2 上記delegateイベント内で非同期通信がうまくできない可能性があるので、別の箇所で実装してみるといいと思います。

サーバー側(php)

サーバー側では$_FILESより送信された画像情報を取得し、move_uploaded_fileにてphpファイルが置かれているフォルダと同じ箇所に随時画像を上書きしています。

たった2行ですがこんな感じです。

拡張例

 ・サーバーに画像を送信した同時に、手元にある端末にプッシュ通知を送ることですぐに侵入者の発見/通報をすることができますね!(メールでも可)

 ・アプリ側では侵入者が発見されたタイミングでビープ音を鳴らすことで侵入者を驚かすこともできます。

最後に

 今回はiPhone1台のみで作ってみましたが、これが複数あれば玄関/窓/寝室 いろんなところに設置して安心して旅行に出かけることができそうですね。

 普通の監視カメラをわざわざ買うのは高いですし、身の回りにあるiPhoneをリサイクルしてみてはいかがでしょうか?

 使わなくなったiPhoneによるIoTを私は「IoI(Internet of iPhone iPhoneのインターネット化)
→そのままですね。

 「IoT(Internet of Trash 廃棄物のインターネット化)
→「ゴミ」としたかったのですが、iPhoneは私の財産ですので言い方を変えて廃棄物とさせていただきました。

 などと名付けたいと思います。

■最新のiPhoneの購入・機種変更なら店頭より得で、予約しやすいオンラインショップ。
機種の頭金や使わないオプションパックをつけて年間何万円も損していませんか?
オンラインショップなら故障のサポートもしっかりしていて最低限の費用。待たされることもありません。
 → ドコモオンラインショップ
 → auオンラインショップ
 → ソフトバンクオンラインショップ

最新のiPhoneを得して乗り換えるなら、最大6万円のキャッシュバックがある
→ SMARTPHONE STORE
がお得です。