2021-04-03 2021-04-06

より高性能かつ高画質になった動画変換処理、導入しやすくなったサーバーサイドソフトウェアとビューワーアプリ、さらに動画配信ウェブアプリと、Picam360に関する環境を新しく構築しました。


本稿の英語版→English version is available here.

こんちには、Picam360開発コミュニティのGAKUと申します。

最近は新しいソフトウェアの開発に注力していたので、全く記事を更新していませんでした。ご覧になっていただいた方々、すみませんでした。
更新していなかった間何をしていたかというと、私たちは約2年をかけてPicam360の動画変換処理を改善し出力される動画を高画質にしました。また、サーバーサイドソフトウェアとビューワーアプリを一新し、さらに動画配信ウェブアプリの追加と、Picam360とその周辺環境を新しく構築していました。ソフトウェア達は既存のものから得た知見を活かした全く新しいバージョンにアップグレードされました。まだ予定しているソフトウェアの全てが揃ったわけではありませんが、おおよそ揃いました。まだ揃っていないものも、この1、2ヶ月の間にリリースする目処が立っています。これからそれらについて皆さんにご紹介していけることに興奮しています。
さて、これまでは不定期に更新していたこのブログですが、これからは毎週お届けしていきます。内容はPicam360に関するニュースと、技術的なものを中心に掲載していきます。
技術的に面白い、役に立つという内容であることを記事の基準として作成していきますので、楽しんでいただければと思います。ブログも新しいスタートを切るわけですが、これまでに掲載していながら中断状態だった記事があります(Jetbotなどの記事)。それらは古いソフトウェアを使用していて今回の新ソフトウェアのリリースによって、内容を継続できなくなってしまっため、申し訳ありませんが更新は終了します(いつか新しく書き直すことがあるかもしれません)。ご理解のほどよろしくお願いします。

新しくスタートするブログの第一段にあたる本稿は、まずPicam360がどういうものであるかという内容を新しいソフトウェアで変わった点も含めて紹介します。

Picam360とは?

まず、Picam360について説明します。これまではPimca360についての情報発信は、十分とは言えませんでしたのでこの説明はPicam360を初めて知った方はもちろん、既に知っていた方にも発見があるかもしれません。

USB接続タイプのパノラマカメラです

Picam360は360度(半天球)を画角に収める広角レンズを搭載したカメラです。コンピューターにはUSBで接続します。通信規格はUVC(USB Video Class)という汎用的な規格を採用しています。UVCカメラはOSが標準で持っているドライバーが使用されますので、特別なソフトウェアを必要としません。

USB接続して単純に写真を撮影する例をご紹介します。
コンピュータにはjetson nanoを使用しています。raspberry piも同様です。
コンソールで以下のコマンドを実行します:

// 撮影するためのソフトウェアfswebcamをインストールします。
// インストール済みの場合は不要です。
$sudo apt-get update
$sudo apt-get install fswebcam

// カメラが認識されているか確認。
// 他のカメラが接続されていなければ/dev/video0が存在します
// 他のカメラが接続されている場合は末尾の数字が変わります。
$ fswebcam --list-inputs

// 撮影します。
// 以下の例では画像サイズ640x480ピクセルに変更してtest.jpgという名前で保存します。
$ fswebcam -i 0 -d v4l2:/dev/video0 -r 640x480 --jpeg 85 test.jpg

// コンソールから画像を表示するためのソフトウェアfbiをインストールします。
// インストール済みの場合は不要です。
$ sudo apt-get update
$ sudo apt-get -y install fbi

// 撮影した画像を表示します。
$ fbi -a test.jpg

このようにWebカメラに対応したソフトウェアであれば、簡単に画像を取得できます。

しかし、ご覧の通り撮影した画像は魚眼画像そのものです。魚眼画像をそのまま使用する場面は少ないので、実際に利用する場面では何らかの処理によって人間が見て自然な画像に変換するはずです。ご自身で変換プログラムを構築して自由に使用したい方はそれで良いでしょう。一方で変換処理も含めて機能として提供して欲しい方もいるでしょう。

そこで私たちはPicam360ソフトウェアスイートを提供しています。Picam360ソフトウェアスイートは魚眼画像から人間が見て自然な画像に変換する機能だけではなく、視聴に必要な機能をセットで提供します。しかも、他にはない素晴らしい特徴を持っています。

オープンソースのソフトウェアスイート

前項で触れたようにPicam360に特別なソフトウェアは不要ですが、簡単に利用できる便利な機能をソフトウェアスイートとして提供しています。スイート(suite)とは、機能的に関連のあるソフトウェアを一まとめにしたものを意味します。Microsoft社のOfficeなどが代表的です。Picam360ソフトウェアスイートは実際には具体的に一つにまとめられたパッケージが存在するわけではなく、関連ソフトウェアを1つの呼称で呼ぶためにスイートという言葉を使用しています。

Picam360ソフトウェアスイートは以下を含みます:

  • 動画変換ソフトウェア
  • 動画ストリーミングウェブサーバーソフトウェア
  • ビューワーアプリケーション

さらに周辺機能としてもう1つソフトウェアがあります。Picam360を搭載したデバイス(例えばラジコン)をウェブ上で公開して、世界中の人たちにアクセスして遊んでもらえたら、もしくは他の人が作ったデバイスをリモートで遊べたら面白いと思いませんか?みんなでシェアして遊べる場所をウェブ上に作りました。これについてはまた別の記事で紹介したいと思います。

Picam360を多くの人に使ってもらいたいので、基本的にオープンソースかつ無料で提供します。

オープンソース

  • 動画ストリーミングウェブサーバーソフトウェア
  • ビューワーアプリケーション

プロプライエタリ

  • 動画変換ソフトウェア

オープンソースではない範囲は、カメラの魚眼画像から動画を圧縮する動画変換ソフトウェアです。動画圧縮技術は360度動画に最適化した独自の技術を開発して組み込んでいます。この部分については非公開ですが、それ以外の動画ストリーミングウェブサーバーソフトウェアと動画を視聴するためのビューワーアプリはオープンソースです。自由に変更してあなたのプロダクトに組み込んでください。ソースコード以外の情報(解説など)はまだ無いので、ブログ記事で少しづつ紹介していきたいと考えています。

ソフトウェアの特徴

超軽量ストリーミング

360度を綺麗に表示するためには広い範囲を高解像度に撮影する必要があり、通常の動画と比較してデータ量が非常に大きくなります。一般的なスマホ動画の水平画角は60°程度です。そのカメラで360度をカバーすると360°÷60°でなんとカメラ6個分!
Picam360ソフトウェアは360°動画を高品位に保ちつつもデータ量をとことん軽量化する技術を突き詰めました。一般的に360動画は正距円筒図法というフォーマットで保存されています。その既存の方法と比較してPicam360ソフトウェアはデータサイズを10分の1に圧縮します。少し技術的な表現を含みますが、例として、解像度8Kの360°動画を既存の方法で配信する場合のビットレートは約20Mbpsですが、Picam360ソフトウェアでは2Mbpsにまで圧縮します。

data size comparison

最大16Kの超高解像度対応

全周最大16Kの超高解像度まで対応しています。超高解像度動画なら離れた被写体も拡大することで細部まで確認できます。

2カメラによる3D360°動画(近日リリース予定)

パノラマカメラを2つ接続して3D立体視360度映像のライブストリーミングが可能です。

クロスプラットフォーム

サーバーデバイス、ビューワーアプリ共に広い環境で利用できます。

サーバーデバイスOS
Windows, Mac, Linux, Raspberry Pi

ビューワーアプリ

  • デスクトップアプリ:Windows, Mac, Linux,
  • モバイルアプリ:iOSアプリ, Androidアプリ
  • VRアプリ:Oculusアプリ(公開準備中)
  • ブラウザアプリ

picam360 apps

最大解像度、FPS、接続可能なカメラ数などのスペックはハードウェアによって異なります。今後ブログ記事でスペック情報や設定方法について1つづつ紹介していく予定です。第一段はサーバーデバイスとしてJetson Nanoを設定しリアルタイムストリーミングする手順の紹介を予定しています。

オープンソース

ソフトウェアを自由に変更してあなたのプロダクトに組み込みこむことができます。ライセンス形態はGPLです。商用利用可能で、再配布時のソースコード公開などの厳しい制限は入れていません。主に著作権の保持と明示について制約があります。詳しくはこちらでご確認ください。

ソフトウェアはPicam360カメラに限定したものではありません

ここまでの内容で「もしかして?」と思った方がいるかもしれません。

カメラはUVCで、サーバーデバイスもマルチプラットフォーム、ということはPicam360ソフトウェアはPicam360カメラ以外でも利用できるのでは?

はい、できます。産業用に利用する場合などで超高解像度カメラや、より高速なコンピューター上で利用したいという要望もあると想定しています。自由に組み込んでいただけますが、無料版は最大15FPSの制限と、Picam360ブランド以外のカメラを利用する場合は接続カメラ数が1つという制限があります。それら制限を解除する有償ライセンスを販売しています。ご希望の方は、こちらにお問い合わせください。

新しいソフトウェアで何が変わったのか?

ここまででPicam360について新ソフトウェアベースで説明してきました。旧ソフトウェアと比較した場合の変更点は以下です:

  • 動画変換処理を最適化することにより、画質とフレームレート(FPS)を向上しました
  • サーバーサイドデバイスの対応OSにWindows, Mac, Linuxを追加しました
  • 以前のビュワーアプリはブラウザ版のみでしたが、Windows, Mac, Linux, iOSアプリ, Androidアプリ, Oculusアプリ(公開準備中)のモバイルアプリとデスクトップアプリを追加しました。専用アプリにすることでビューワーデバイスの性能をより引き出すことが可能になり、ビューワーのフレームレートが向上しました。
  • サーバーサイドソフトウェアとビューワーアプリのWindows, Mac, Linux版はNode.jsアプリとして作成しています。npmを使ってインストールすることができるので、依然と比べインストールが簡単になりました。

以上が今回のアップデート内容の概要です。他にも細かい部分での改善がありますが長くなってしまうので割愛します。実際の動画や設定手順について次回以降の記事で順に紹介していきます。


さて、以上で新スタートブログの第一回目は終了です。次回はJetson Nanoを設定してビューワーで視聴する手順をご紹介します。加えて、実際に撮影した保存動画を配信してご覧いただく予定です。みなさんに実際に手にとって試していただけることを期待しています。

Picam360リンク: