レンズ Hack for Raspberry Pi
Camera

秘密結社オープンフォース総統

河野悦昌

はじめにRaspberry Pi のカメラモジュールは結構便利です。これを使うとIPCam だとか、映像処理コンテンツを結構簡単に作れてしまいます。スペックも割と使いでがあります。
これに、レンズを取り替える Hack をしようというのが今回の趣旨となります。

USB 接続の WebCam の限界
拙書「Raspberry Pi 電子工作レシピ」では、USB 接続のWebCam を使いました。この作例では UVC クラスの WebCamを使い、USB 接続でつなぎました。

この接続は USB2.0 を使いましたが、せっかくなので Full HD にしたいと考えると、USB2.0 ではかなり無理があります。ここで使った Logicool HD Webcam C270 は HD 画質720p（1280×720）となります。それ以上のものになるとWebCam から映像を圧縮して送るものを選ぶことが必要で、それが Raspberry Pi で使えるかどうかとか、値段が結構したりとかで結構めんどくさくなります。そして、残念ながら USB3 にはRaspberry Pi は対応していませんし、WebCam も USB3 のものはまだまだ少ないです。

Raspberry Pi のカメラモジュールは優秀
速い
カメラドライバは非オープンソースの箇所があり、そこでRaspberry Pi の CPU チップ内部のハードウェア機能を使っているというお話です。そのため、Full HD のものが使えます。
高解像度2592 x 1944、ビデオ最大解像度だと 1920x1080 すなわち1080p で 30fps
小さい！

タテ 24mm ヨコ 25mm 奥行き 9mm 質量 2.5g （実測・フィルムケーブル除く）
レンズの直径も 1mm ぐらいで小さいですね。
スマホの世界に見慣れた眼からすると当然のことですが、レンズの経が小さいということは絞り込んだ状態であり、被写界深度が深く取れるので固定焦点でシンプルな構造になり、撮影も失敗が少なくなります。
値段が安い

RS で￥2,740（税抜き）。

その他のスペックは以下の通り。

•

レンズ f=3.6 mm, f/2.9画角 54 x 41°•

内部の CCD•

CCD セルサイズ 1.4μmx1.4μm•

CCD イメージエリアサイズ 3673.6 x 2738.4 μm （1/4in CCD）

OmniVision OV5647

あと、接続は 15 ピンのフィルムケーブルで接続しますが、これは MIPI Camera Serial Interface (CSI-2)というのだそうです。

Automatic exposure control とありますが、どうやらこれはシャッタースピードを自動調節しているみたいです。

魚眼レンズを使おう
Raspberry Pi のカメラを使って監視カメラを作りたい。でも、左右上下首振りをするとなると、モーターやリンク機構やアプリやインターフェースや、結構あれこれ必要です。
メカを使わずに複数のカメラを使い、ソフト的に切り替えて使うやり方もありますが、折角高解像度のカメラが使えるので、魚眼レンズを使って広いエリアを監視できないでしょうか。
魚眼レンズの画像は円くなりますが、これを画像変換することで、全周の映像に変換できます。
監視カメラだけではなく、画像認識やロボットの眼などにも使いたいですね。

仕様を決めよう！
このようなことをするためには、画像の解像度が大きくないといけません。
魚眼レンズでとらえた画像は円形になりますから、Full HD で取得した画像も 1080x1080 の正方形で撮ってしまうと１メガピクセル分になってしまいます。これだと、切り出した時に VGA(640x480)程度の画像も怪しくなってきます。
静止画だと 2592 x 1944 で撮れるので、1944*1944 で 4 メガピクセル分となりますが、せっかくなので 30fps の動画にチャレンジしたいものです。調べていたら、動画を撮影するパラメータで 1440x1440 のサイズを明示的に指定すると、1440x1440 の動画が撮れることがわかりました。
>>> 1920*1080 = 2073600>>> 1440*1440 = 2073600

同じピクセル数になるので、この指定が通るのですね。

また、このようにして撮影した映像は、CCD の 2738.4 μm x 2738.4 μm のエリアとなっていることがわかりました。
この方法が使えるということで、以下のように仕様が決まりました。

•

1440 x 1440 30fps の動画を撮影•

2 メガピクセルクオリティ•

レンズ光像直径 2738.4 μm 以内に 180°ないしそれに近い画角を収める

これを実現する作戦として、以下の２つの方法を考えました。

•レンズを交換する•

コンバージョンレンズを追加する

それぞれについて、実験してみましょう。

レンズ交換編
レンズを探す！
巷にはいろんなレンズが売られているので、その中から選べないかと探してみました。
探しているうちに、結構難しいことがわかっていました。

•・Rasbperry Pi カメラに接続するレンズとなると、小さいマウントでなければいけない•

魚眼レンズの中でも、180°というのは割と少ない••

・メガピクセル対応のレンズはかなり少ない
・1/4in CCD 対応というのは日本には無いようだ
ここから、探してみます。
少し旧いリストになりますが、ここらへんを参照してみました。

http://www.uniel-denshi.co.jp/CCTV-LENSES/CCTV-LENSES-ALL.html

マウントを選ぶ！
上記のリストには、マウントとして C マウント、CS マウントなどがあります。
C マウントは従来よりよく知ってましたが、今回のような用途で使うにはより小型な CS マウントの方がいい感じです。
また、変換リングで CS マウントのボディに C マウントのレンズが取り付けられる（逆は難しい）などを考えると、CS マウントの方が適しています。
また、更に小さな M12 マウントもあります。一覧をあげてみると以下の通りです。

C マウント
内径 25.4mm (1in）、ピッチ 0.794mm（1/32in）、フランジバック 17.526mm。
CS マウント
内径 25.4mm (1in）、ピッチ 0.794mm（1/32in）、フランジバック 12.5mm
M12 マウント
内径 12mm、ピッチ 0.5mm、フランジバック 任意
このことから、CS マウント、M12 マウントを元に探してみることになりました。

レンズが高い！
いくつか、日本メーカーのものを探し当てました。

FujiFILM の YV2.2×1.4A
http://fujifilm.jp/business/material/cctv/fish_eye/pack/pdf/fish_eye_pdf_yv2214asa2.pdf
残念ながら円状のイメージが撮れるのは 1/3in の場合で、1/4in の場合は上下が切れてしまいます。
株式会社インタニヤの「小型円周魚眼レンズ」

http://panoramania.co.jp/diary/archives/2015/03/Entaniya-Fisheye-Lens.html（紹介記事）
こちらも残念ながら 1/2.3in 用です。
折角苦労して探しましたが、これらは結構お値段がしそうです。Raspberry Pi で遊ぶような用途にはとてもでないけど使えそうにない・・・ということで、海外に手を伸ばしてみました。

EBay へ！
海外には、以下のようなレンズ入れ替えのアイテムを作っている方々がおられます。

http://www.truetex.com/raspberrypi
ここらへんには、購入先として Amazon、また M12 のレンズの入手先として EBay なども紹介されていますね。
まずは EBay で、写真のような商品を購入してみました。

M12x P0.5 small Camera Lens Metal Mountwith Gasket

標準のカメラモジュールを分解しよう！
レンズ付替用のマウントを装着するために、標準の Raspberry Pi カメラモジュールを分解してみました。
まずは、カメラモジュールから CCD ユニットを取り外します。
次に、錆びたラジオペンチでレンズを外します。レンズはねじ込まれてますが、接着剤で固定してあるのでぐいぐいやります。

レンズが外れたところ。

次に、マウンタと CCD をカッターの刃を入れて外します。
マウンターには赤外線フィルタがついていました。

ついでにレンズ部も分解。

さて、M12 マウントに交換します。ところがこれがうまくいかない。

CCD と緑の基板をつなぐオレンジのフィルムケーブルがマウンタと干渉するのですね。これを行って映像を撮影しましたが隙間から入る赤外線だとかで満足できない画像になってしまいました。

壊れちゃった！！
このようにして３台チャレンジしましたが、１台は CCD にカッターの刃を入れるところでざくっといってしまいました。
２台は撮影していたら全然動かなくなってしまいました。この２台は静電気と推測します。大変壊れやすいので超注意です。

Arducam のカメラモジュールを使おう！
結局標準品のカメラモジュールではさんざんだったので、互換品を使いました。
http://www.arducam.com/

ここが作っているらしいものを、EBay で購入。

これは M12 マウントのもの。

OV5647 Camera Board /w M12x0.5 mount Lens fullycompatible with Raspberry Pi

LS-40136 というレンズがついていました。

こちらは CS マウントのもの。

OV5647 Camera Board /w CS mount Lens fullycompatible with Raspberry Pi

LS-2716CS というレンズがついてました。

レンズを外した状態。

標準品カメラと比べてみました。かなり大きいです。基板サイズは 36mm x36mm。

CS マウントレンズで撮影してみよう！
先の CS マウントカメラボードについていた、LS-2716CS レンズを使って撮影してみました。
元々、½.7inCCD 用らしいです。
焦点距離 4.0mm,f=1.4。視野角 81°ということですが、1/4nCCDにつなげた場合はそれなりに変わるでしょう。

M12 マウントレンズで撮影してみよう！
今度は、これは M12 マウントについてきた LS-40136 レンズ。
こちらは 1/4inCCD 用らしいです。
焦点距離 3.2mm,f=2.0。視野角 85°ということですが、正方形で撮影しているのでこの写真では狭くなっていると思います。

Raspberry Pi の標準カメラと比較したいですね。残念ながらこの時には同じ条件で撮影ができませんでした。

魚眼レンズをつけてみよう！
では、早速別に取り寄せた魚眼レンズをつけてみましょう。

まずは、これ。

LS-40180 Fish Eye Lens 1.05mm Focal Length for Raspberry Pi Camera Board

1/4inCCD 対応で、焦点距離 1.05mm,f=2.0。
206°（対角）194°（水平）142°（垂直）の画角らしいです。

フランジバックがとても短いのでレンズに専用の M12 マウントがついてくるのでそれに付け換えます。

中華魚眼レンズをつけてみよう！(1)
次に、ebay ではなく中国大陸ルートから取り寄せた魚眼レンズを試してみます。

1/2" CCTV Fisheye Lens forpanoramic camera with 1.58mmというタイトルの、FOCUSAFE の FS15830FEBMP
1/2inCCD 対応で、焦点距離 1.58mm,f=3.0。
185°の画角らしいです。赤外線レンズだそう。

中央の影は、ごみでもついたかな？ 撮影時には気が付きませんでした。

中心部分がずれていますが、これは M12 マウンタの位置を調整することでなんとかなりそうです。

中華魚眼レンズをつけてみよう！(2)中華なレンズをもうひとつ入手しました。
雄狮光电科技有限公司

Xiongshi (Xiangyang)
Photoelectric Technology Co. Ltd. の XS-6003 です。
1/4inCCD 対応で、焦点距離 1.05mm,f=2.0。
206°（対角）194°（水平）142°（垂直）の画角らしいです。

結構いいことづくめのスペックを書いてますが本当かな・・・

180° 135° 90°45°

2.7mm = 170°
2.94mm = 210°

撮影した画像を元に評価してみました。

うーん、240°というのはちょっと苦しい感じです。RaspberryPi カメラで撮影するとすると、170°角ということになります。
目的の魚眼レンズで撮った画像を展開してあれこれしようというのも、なんとかなりそうですね。

ズームレンズをつけてみよう！
こんなレンズも 入手してみました。魚眼レンズではないですが、これも撮影してみましょう。これは CS マウントです。

CS-M0550IR(3MP) 3 Megapixel CS mount Zoom
Lens for raspberry pi camera module½.7inCCD 用のものですが、1/4inCCD で使った場合は短焦点 36.5°（対角）29.2°（水平）21.9°（垂直）長焦点 4.6°（対角）3.7°（水平）2.8°（垂直）焦点距離 5~50mm f=1.4。

ワイド端とテレ端です。

コンバージョンレンズ編
さて、今度はコンバージョンレンズを使います。

スマホ用の中華レンズ DN-MCL20
コンバージョンレンズというのは、既存のレンズに被せて画角などを変えることができるもので、最近はスマホ用のこんなのがよく使われていますね。

これは、上海問屋で５年前に購入したものです。「携帯電話、デジカメ両用 ワイドマクロレンズ DN-MCL20 [エコ]」（エコ？）0.68X WIDE と刻印されています。
これを使った撮影です。
「CS マウントレンズで撮影してみよう！」でテストした、

LS-2716CS と組み合わせてみました。

イザワオプトの IDF-3
もうし本格的なコンバージョンレンズを入手しました。
イザワオプトのコンパクトデジタルカメラ用魚眼レンズ 「IDF-3」です。
このレンズは 185 °の画角があるそうで、レンズは特にマウントのためのねじ切りとあはないので手で押さえながら撮影します。

こちらも、LS-2716CS と組み合わせての撮影です。

割といい感じです。

あとがき
今回は、レンズをとりあえず交換してみたところまで紹介しました。実際の画質、および円い画像を一般の写真のように投影変換する方法については、次回につづく。
今回の撮影はこんな感じのモバイル環境を作成して行いました。

撮影移動要塞手持ちのシーンも多かったので、手ブレとか入っているものもあったと思います。ディティールの評価を行うには、三脚などで固定した撮影に変更する必要があるでしょう。今後に期待。
なお、今回紹介したレンズの一部は、Amazon などで販売の予定です。

2015.08.07 Ver1.0
This text is CC 0 ( Public Domain )