店舗や施設の天井の360°カメラ(全方位カメラ)の位置と映る範囲を図面で確かめたい方、防犯カメラの設置業者、店舗の運営や設備の担当
天井の360°カメラの写真1枚から、カメラの位置と映る範囲を出す:魚眼レンズをAIで解く
天井の360°カメラ(魚眼レンズ)の静止画1枚から、カメラの位置と映る範囲を出す。ドラッグストアのモデルで、真下を向く魚眼のカメラが写す部屋の角や枠15点の画素から、AIがカメラを解いた。ふつうのカメラや広角レンズとして解くと、121.37 m離れた画角15.82°のカメラになる。lens: fisheye で解くと0.02 m、映る床の99.9%が重なる。人の頭の高さ(1.6 m)では、このカメラは413.13 m²を見る。隅の広角カメラは210.13 m²。
ドラッグストアのモデルから始める(無料登録)か、自分の店を描いてください。天井から真下を向く360°カメラ(全方位カメラ)は、魚眼レンズで売場をぐるりと写します。まっすぐな棚や壁が大きく曲がって写るので、ふつうのカメラとしては位置を出せません。この記事では、360°カメラの静止画1枚から、カメラの位置と、床のどこが映るかを、AIに出してもらいました。広角レンズの防犯カメラの記事の続きです。AIがMCPで呼ぶのと同じ道具を動かしました。以下の数字と図は、すべてその結果です。
1. やったこと
- モデルは、36 × 24 mのドラッグストアです。入口の前の通路の天井(高さ3.3 m)に、真下を向く360°カメラが付いている、とします。レンズは等距離射影の魚眼で、写真の高さの角度が180°、写真は2048 × 2048画素(レンズの曲がり方の大きさは仮定)。
- AIは、写真に写る部屋そのものの点(床と天井の角、入口と窓の枠、奥の扉の枠)を読み、モデルの同じ点と組にします。前の記事と同じ40点の候補のうち、棚や壁の陰にならず写真に入る15点です。天井の角はカメラより上にありますが、魚眼なので写真に入ります。
- この記事の写真は、モデルから作りました。 実際のカメラがそれぞれの点を写す画素に、読み取りの誤差(±2画素)を足したものを、AIが読んだ値としています。
- AIは
solve_photo_camera で、ふつうのカメラ(ピンホール)として、広角レンズのゆがみを合わせて(lens: radial)、魚眼として(lens: fisheye)解き、魚眼で解いたカメラをカメラの部品として置いて、get_visibility で映る床を実際のカメラと比べました。奥の扉は閉めて数えています(営業中の店として)。
2. 解いたカメラ
| 位置のずれ | 点の外れ(平均) | 写真の高さの角度 |
|---|
| 実際のカメラ | — | — | 180° |
| ふつうのカメラとして解く | 121.37 m | 200.3画素 | 15.82° |
lens: radial で解く | 121.37 m | 200.3画素 | 15.82° |
lens: fisheye で解く | 0.02 m | 1.5画素 | 178.76° |
- ふつうのカメラでも広角レンズでも、解けない。 写真の真ん中から端まで90°の広がりは、ふつうのカメラには写せません。道具は、点にいちばん近いカメラとして、121.37 m離れた所から画角15.82°で見るカメラを返し、点は平均200.3画素外れました。広角レンズのゆがみも合わず、ふつうのカメラのままでした。道具は「位置がゆるくしか決まらない」「点が外れる」と注意し、魚眼かもしれないと書きます。
lens: fisheye なら合う。 15点が平均1.5画素で合い、位置は0.02 m、写真の高さの角度は178.76°(実際は180°)、曲がりの係数 k1 は −0.024(実際は −0.02)。映る床は、実際のカメラの221 m²と解いたカメラが99.9%重なります。- カメラの部品は、真下を向いてぐるりと見る。 道具は、真下を向く魚眼を、真下を向いて水平の画角360°、真下から90°までを見るカメラの部品にします。部品が見るのは、写真に写る所だけです。
実際のカメラと解いたカメラの両方が映す床(床の高さ)
3. 360°カメラは売場のどこを見るか
| カメラ | 床が映る広さ | 人の頭の高さ(1.6 m)で見る広さ |
|---|
| 天井の360°カメラ(この記事) | 221 m² | 413.13 m² |
| 南東の隅の広角カメラ(前の記事) | 171.75 m² | 210.13 m² |
- 床は、棚の間の通路の奥が見えない。 真下から離れるほど、床を見る線は棚(高さ1.8 m)に当たります。映るのは、入口の前の通路と、カメラの近くの通路の床です。
- 人の頭の高さなら、隅の広角カメラの2倍。 天井から見下ろす線は、1.6 mの高さなら棚の上を越えやすく、棚の間の通路の奥まで届きます。
- 面積は、
get_visibility が25 cmおきの点で数えたものです。
天井の360°カメラと隅の広角カメラが、人の頭の高さ(1.6 m)で見る範囲
4. 使い方と、分からないこと
- 点の読み方。 魚眼の写真では線が曲がっても、部屋の角や扉の枠は1点ずつ読めます。真ん中の近くと、端に近い点の両方を読みます(8点以上なら、レンズの曲がり方も合わせます)。
- 魚眼の種類。 道具は等距離射影の魚眼と、その曲がりの2項を合わせます。ほかの射影の魚眼レンズで合うかは確かめていません。
- 写真が丸いとき。 360°カメラの写真は、丸い像のまわりが黒いことがあります。点は丸い像の中から読みます。
- 映る範囲は、形だけ。 部品の届く距離は仮定(30 m)で、顔や商品が見分けられるかは、カメラの画素数と距離で決まります。扉を開けると、奥の部屋やトイレの中まで見通すことがあります。
- 人の写らない写真を使う。 顔で個人を識別できる画像は個人情報です(カメラ画像利活用ガイドブック ver3.0)。開店前など人のいない時間の静止画を使ってください。
- この記事の写真はモデルから作ったもので、実際の写真では読み取りの誤差がもっと大きいことがあります。
使った道具
solve_photo_camera:写真の点からカメラを解く(lens: fisheye)、カメラの部品の入力(cameraPart)edit_space:解いたカメラを部品として置くget_visibility:映る床と、人の頭の高さで見る範囲get_view_image:平面図