SenbayKitをオープンソースとして公開

January 17, 2019 Yuuki Nishiyama 0 Comments

2018年のMobileHCIで発表した、Senbayのライブラリ版(SenbayKit)をApache License, Version 2.0 でGitHubに公開しました!

SenbayKit について

Senbayは、動画と同期した任意のデータ(QRコード)を動画内にリアルタイムに保存し、後から再利用可能にするプラットフォームです。詳しは以下のデモ動画をご覧下さい。

SenbayKitは、SenbayのCameraやReader、Player、Liver Streaming機能をまとめたライブラリで、SwiftやObjective-C、Python、JavaScriptに対応しています。2019年1月時点での対応機能は以下の表の通りです。

Senbayのホームページより

なんと、Swift版はiOS端末からRTMPを使ってライブ配信を行うことも可能です。サンプルアプリケーション(SenbayLive)も公開しているので、是非ご利用ください!各ライブラリの詳細は、各ライブラリのREADMEで説明しているので、今回は概要だけ説明しようと思います。

Swift & Objective-C

Swift(Objective-C)版は、iOS(SenbayKit)とmacOS(SenbayKit-macOS)で動作するライブラリです。CocoaPodsで公開しているので、数行でSenbayをiOSまたはmacOSアプリに組み込めます。詳しくはREADMEを参照ください。iOSでは、Camera、Reader、Player そして Live Streaming をサポートしており、スマートフォンから YouTube Live でSenbayビデオのライブ配信も可能です。

添付画像は、iOS上でのCameraとReader、macOS上でのReaderの動作サンプル。

Python

Python版は、SenbayKit-CLIとして公開しており、pipを使ってインストールできます。macOSやWindows、UbuntuなどOSで動作します。Raspberry Pi上で動かしても監視カメラにしても面白いかも。Arduinoと繋げて、映像に合わせてアクチュエーターを操作すること簡単にできます。

添付画像は、Readerの動作サンプル。

JavaScript

JavaScript版は、SenbayKit-Browserとして公開しています。FirefoxやGoogle Chrome、SafariなどのブラウザからSenbay Videoに埋め込まれたデータを読み取ることができます。

仕組みは単純で、html5のcanvasに動画フレームをコピーして、その画像からQRコードを解析しています。別ドメインに動画ファイルがある場合は、canvasにコピーできない課題があったが、WebRTCの機能(スクリーン共有)を組みわせてブラウザだけでQRコード解析を可能にしています。(Google Chromeでは、Extensionのインストールが必要です。)

添付画像は、Readerの動作サンプル。

最後に

SenbayKit が皆さんの研究やシステム・サービス開発の助けになれば幸いです。何か問題があればGitHubやメールでお知らせ下さい。Pull Request、Issue、ForkいつでもWelcomeです。

もし論文内に引用される場合は、以下の文献をお使いください。

@inproceedings{Nishiyama:2018:SPI:3236112.3236154,
    author = {Nishiyama, Yuuki and Dey, Anind K. and Ferreira, Denzil and Yonezawa, Takuro and Nakazawa, Jin},
    title = {Senbay: A Platform for Instantly Capturing, Integrating, and Restreaming of Synchronized Multiple Sensor-data Stream},
    booktitle = {Proceedings of the 20th International Conference on Human-Computer Interaction with Mobile Devices and Services Adjunct},
    series = {MobileHCI '18},
    year = {2018},
    location = {Barcelona, Spain},
    publisher = {ACM},
} 

Leave a Reply:

Your email address will not be published. Required fields are marked *