Raspberry Pi カメラモジュール V2
もう2ヶ月くらい前になりますが、Raspberry Pi Camera Module V2が発売されました。V1のカメラのセンサOmniVision OV5647のディスコンを受けてSony製センサのIMX219に変更となっています。画素数は500万画素から800万画素に向上していますし、ソニー製センサということで、性能向上も期待できそうというわけで、一度比較してみることにしました。
Raspberry Pi カメラモジュール V1 V2比較
外観
まずは外観から。V1の方はRev 1.3 V2の方はV2.1のシルクが印字されているので確実に見分けられますね。パッと見もレンズと基板の接続部がV1は黄色なのに対してV2は黒いです。ちなみにこの接続部がカメラの上側になります。
撮影比較
撮影対象としてミクさんを使いました。以下のような形で同じ箇所から撮影して比較しています。
ミクさんかわいい
今回はRaspistillというRaspbian標準のコマンドと、自作のpythonスクリプトの両方で試してみました。Raspistillのコマンドは以下。
$ raspistill -o test.jpg
pythonスクリプトのソースコードshutter.py
は以下。
# -*- coding: utf-8 -*- import subprocess import picamera import os from time import sleep shutter_numb = 0 photo_dir = os.path.expanduser('~/photo_data') def cameraLoad(): global shutter_numb filename = os.path.join(photo_dir, 'camera.set') try: fp = open(filename) tmp_shutter_numb = fp.readlines() tmp2_shutter_numb = tmp_shutter_numb[0].rstrip() shutter_numb = int(tmp2_shutter_numb) fp.close() except IOError: print 'no camera.set data, make set files' def cameraSave(): filename = os.path.join(photo_dir, 'camera.set') fp = open(filename, 'w') fp.write(str(shutter_numb)) fp.close() def shutter(): global shutter_numb shutter_numb +=1 filename = os.path.join(photo_dir, str("{0:06d}".format(shutter_numb)) + '.jpg') photofile = open(filename, 'wb') print(photofile) with picamera.PiCamera() as camera: camera.resolution = (2592,1944) camera.start_preview() sleep(1.000) camera.capture(photofile) photofile.close() if __name__ == '__main__': cameraLoad() shutter() cameraSave()
以下でファイルを保存するディレクトリ作成して
$ mkdir ~/photo_data
以下コマンドで撮影。
$ python shutter.py
カメラモジュール V1
Raspistill
pythonスクリプト
ふむ大体同じ感じ
カメラモジュール V2
Raspistill
pythonスクリプト
V1より広角気味ですね。そして、pythonスクリプトで撮影した方はなんか色が変です。ホワイトバランス?念のためホワイトバランス安定期間(Preview後のスリープ時間)を5sくらいまで長くしたり、解像度とV2カメラに合わせたりしてみたのですが効果無しでした。何故…
追記:原因ですが、以下サイトが参考になるかも
Flat-Field and Colour Correction for the Raspberry Pi Camera Module
画角確認
V1とV2で画角どの程度違うのか確認するため、OM-D E-M5とM.ZUIKO DIGITAL ED 9-18mm F4.0-5.6で同じ箇所から撮影して、同じ画角になる焦点距離を探ってみました。
15mmでV1の水平方向の画角に近くなりました
12mmでV2の水平方向の画角に近くなりました
OM-D E-M5はマイクロフォーサーズセンサなので、35mm換算だと焦点距離は2倍なのでV1は約30mm、V2は約24mmといったところでしょうか。V2の方がかなり広角ですね。ちなみにRaspberry Cameraモジュールのセンササイズは1/4インチらしいので3.67mmx2.74で35mmフルサイズセンサの約1/10。ExifデータによるとV1の焦点距離が3.6mm, V2が3mmのようなので、数字上は35mm換算だとV1は36mmでV2が30mm。V2の方が広角なのは同じですが、結構数字がOM-D E-M5での測定結果とずれますね。測定の仕方が悪いのか、何かデータに誤りがあるのか…
センササイズと画角の関係に関して、詳しく知りたい人は下記参照下さい。
追記(2016/08/23)
Interface誌 2016年9月号でラズパイ・カメラ2の特集記事がありました。特集の情報によると、レンズの画角はV1.3が35mm換算で35mm、V2.1が35mm換算で29mmがスペックでほぼ私がセンササイズから計算した理論値通りですね。実測の方法がいい加減過ぎるのかもしれませんね。
Interface誌の特集、カメラの性能評価やソニー技術者の裏話、フォーカスの調整方法等読み応えありましたので、興味ある方は購入してみてもよいかなと思います。
まとめ
気になっていたRaspberry PiカメラモジュールのV1とV2の比較しました。ただ、V2だとraspistill
とpythonのスクリプトで出てくる絵が全然違ったり、画角が計算と合わなかったりと色々謎が深まるばかりでした。
そして、以前V2のカメラだと何故か画像が反転してしまうという謎の現象に悩んでいたのですが、今回は再現しませんでした。どうも、どこかのソフトアップデートのタイミングで問題解消していたようです。もし画像反転している人は、sudo apt-get upgrade
やsudo rpi-upgrade
あたりを実行すればなおるのじゃないかなと思います。
参考リンク
Raspberry Pi Camera Module V2.1がリリース | Japanese Raspberry Pi Users Group
Raspberry Pi Documentation - Camera
Raspberry Pi メモ (23) - カメラモジュールの使い方