はじめに
360度カメラについて調べてみました。
2K→4Kの次は360度カメラが流行ると思っています。360度までいかなくても監視カメラなど180度カメラを使用すると魅力的です。カメラを導入するにはCMS側が対応していなければいけません。その前段として技術の先行投資をしようと思いました。
使用したカメラは RICOH THETA SC2(3.3万円)です。
カメラの種類
FFmpeg のフラグで equirect と dfisheye というものが登場します。今回使用するのは左の equirectangular です。
equirectangular
エクイレクタングラーは正距円筒図法と呼ばれています。
中心に前面カメラ、左右に分かれて背面カメラがあります。
つなぎ目はカメラ側できれいに補正されます。
double fisheye
主にカメラの前面に2つの魚眼レンズがあるタイプです。
カメラ画像
近所を撮影しました。下に映っている肌色の物体は私の指です。
中心に前面カメラがあり左右に分かれて背面のカメラがあります。つなぎ目の補正はメーカーのアプリを使用します。分からないくらいきれいに補正されます。
FFprobe 解析結果
撮影した動画を FFprobe で解析しました。spherical: equirectangular とあるのがポイントです。エクイレクタングラーは正距円筒図法と呼ばれています。
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42avc1
creation_time : 2023-01-29T06:52:28.000000Z
Duration: 00:00:07.00, start: 0.000000, bitrate: 51715 kb/s
Stream #0:0[0x1](eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive), 3840x1920, 51139 kb/s, SAR 1:1 DAR 2:1, 29.98 fps, 29.98 tbr, 48k tbn (default)
Metadata:
creation_time : 2023-01-29T06:52:28.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder :
Side data:
spherical: equirectangular (0.000000/0.000000/0.000000)
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 128 kb/s (default)
Metadata:
creation_time : 2023-01-29T06:52:28.000000Z
vendor_id : [0][0][0][0]
動画からサムネイルを出力
参考までに ffmpeg を使って動画からサムネイルを出力するコマンドです。
\ は改行です(Macは\ Winは^)
ffmpeg -i input.mp4\
-ss 1\
-vframes 1\
-vf scale=-1:360 -f image2\
-y output.jpg
360度画像から切り出し
ffmpeg を使って画像を切り出します。yaw と pitch に-180~180を入れます。
ffmpeg -i input.jpg\
-vf v360=input=equirect:output=flat:w=320:h=180:yaw=0:pitch=0\
-y output.jpg
オプション | 説明 |
---|---|
-i input.jpg | 入力画像 |
input=equirect | 入力はエクイレクタングラー |
output=flat | 出力はフラット |
w=320:h=180 | 出力の画像サイズ |
yaw=0:pitch=-0:roll=0 | -180~180 ヨー ピッチ ロール ※下記 |
-y output.jpg | 出力ファイル -y は上書き |
- yaw ヨー(左右)
- pitch ピッチ(上下)
- roll ロール(回転)
ヨーとピッチを指定します。ロールは今回使いません。
切り出し結果
上の画像が全天球画像。下の9枚が上下左右90度方向に切り出した結果です。分かりやすいよう吊り橋のフリー素材を使いました。ロープが水平、床板が垂直になっていることが分かります。
まとめ
360度カメラについて調べてみました。興味があったのは画像を切り出すところです。画像を切り出すことができれば、従来のMLを使った画像解析が使えそうです。
360度カメラ自体は古くからあります。Youtubeも対応しています。しかしやってるところはまだまだ少ないです。360度カメラに対応することでチャンスがあるかも知れません。