Webマガジン Vol.38- Aug., 2020
Column: イメージセンサーのカメラモジュール化
初めに
Teledyne e2vのイメージセンサーは、汎用・高性能な産業用イメージセンサーとして、ご好評をいただいております。
イメージセンサーから、jpgやmp4などの画像データを出力する一連のハードウエアを、カメラモジュールと呼びます。カメラモジュールの作製には、レンズなどの光学部品や、画像処理プロセッサー、各種のコントローラーやインターフェースなどのハードウエア設計と、ファームウエアなどソフトウエアの適切な実装が必要です。
産業用カメラモジュールには目的に応じた開発が不可欠ですが、開発工数は増加の一途であり、当初から汎用カメラモジュールのご要望を頂くケースも増えています。そこで、今回、ミニマルなユースケースとして、VGAサイズのTe2vイメージセンサーを用いたUVCカメラモジュールを作製しました。
本稿では、イメージセンサーをモジュール化する際の手順と、その応用例について紹介します。
イメージセンサの概要
イメージセンサーの本体は、専用のプロセスで製造されたSiダイです。他のLSIと異なるのは、通常のICではSiダイはパッケージ内部に封入されますが、イメージセンサーは光を取り込むため、ダイを直接目視できる構造になっています。
イメージセンサーのパッケージには幾つかの種類があります。例えば、今回使用したTeledyne e2v Sapphire WVGAでは、リッドガラスつきのCLCC (Ceramic Leadless Chip Carrier) と、簡易的なWLCSP (Wafer Level Chip Size Package) の2種をお選びいただけます。
図1 イメージセンサーのパッケージ例(左:CLCC 右:WLCSP)
イメージセンサーの代表的なピン構成は、以下のようなものです。
- 入力 : 電源(複数) クロック トリガ など
- 入出力 : 設定ピン(インターフェースはI2C SPIなど)
- 出力 : ストロボ フレーム信号 画像データ(パラレル LVDS MIPIなど)
まず、これらのピンに、適切な配線/接続を行うことで、イメージセンサー基板を作製します。
※ Sapphire WVGAの概要はメーカーサイトをご参照下さい。⇒こちら
※ より詳細は、ページ下部のWEBマガジンからのお問い合わせフォームより、お問い合わせください。
イメージセンサーの基板化

図2 イメージセンサー周辺回路リファレンスデザイン例
イメージセンサーの周辺回路のリファレンスデザインは、Teledyne e2vから公開されています。電源周りのパスコンや、ADCゲイン調整用の抵抗といった周辺素子が、具体的なスペックと共に示されています。これに従って、基板への実装を行うことで、イメージセンサーを安定的に動作させることができます。
イメージセンサーに特徴的な基板設計の手順として、光学設計があります。通常の電子基板は、光の入射にさらされたり、光学部品が直接マウントされたりすることは稀ですが、イメージセンサー基板の場合は、設計の当初から、これらを考慮しておくことが必要です。 まず、撮像物の距離や大きさと、イメージセンサーのサイズから、焦点距離やF値などのレンズのスペックが決まります。市販の光学部品から、それに応じたレンズを選ぶと、付随するレンズマウント/ホルダーなどの寸法も決まります。レンズとイメージセンサーの中心線を合致させてレンズマウントを配置すれば、基板上のフットプリントがわかりますので、パスコンや抵抗などの周辺素子を、これを避けて配置します。この際、周囲の環境光の入射はもとより、基板に実装されたLEDの発光や、電子部品の表面での光の反射などの悪影響を避けるよう、レンズホルダーの遮光にも注意が必要です。

図3 イメージセンサーとレンズホルダーの配置の例
イメージセンサーの出力
イメージセンサーを基板に実装することで、出力をモニターできるようになります。
イメージセンサーの出力仕様を、今回使用のTeledyne e2v Sapphire WVGAを例に説明します。

図4 イメージセンサー上のpixel配置例
イメージセンサーのセンシングの単位回路をpixelと呼びます。カラーセンサーでは、検知用pixelはRGBベイヤーフィルタと共に配置され、周囲部をダミーpixelで囲われています。Sapphire WVGAの画素数は、752×480で、上図のように配置されています。
イメージセンサーは、各pixelで検知した輝度の値を、順番に出力します。
Sapphire WVGAの輝度出力は、以下のピンで構成されます。
FEN:フレームイネーブル
LEN:ラインイネーブル
DATA<9:0>:輝度データ(10bitバス)
輝度データの出力刻みは、最大でバス幅と同じ10bit(1024段階)です。
次に、イメージセンサーの出力を、波形に従って説明します。

図5 イメージセンサーの画像データ出力フォーマット/タイミング
イメージセンサーは、露光、読み出し、待機(Wait時間、ない場合もあります)の動作を繰り返します。
イメージセンサーの出力は、読み出しの期間に行われますが、その期間は、フレームイネーブル信号で示されます。上図では、FEN=Lの期間が、フレームイネーブルです。
各フレームイネーブルの間に、各ラインのデータ出力期間を示すラインイネーブルが遷移します。上図では、LEN=Lがラインイネーブルです。ラインイネーブルは、フレーム期間内に、検出を行うpixelアレイの行と同じ回数、遷移します。
そして、各ラインイネーブル期間に、イメージセンサーのデータが順番に出力されます。出力は、クロック信号に同期して、検出を行うpixelアレイの列と同じ回数、行われます。
以上の動作を繰り返すことで、各フレームの輝度データが、ひとまとめに出力されます。
出力されたデータは、クロック信号を同期したISP(後述)に供されます。pixelの位置情報は、FENやLENに同期して識別されます。
※ データの出力仕様は、イメージセンサーにより異なります。詳細は、ご使用のイメージセンサーのデータシートをご確認下さい。
※ センサー入力(各種設定など)の詳細は煩雑なので、本稿では説明を割愛します。
次のページ
センサー出力のプロセッシング
イメージセンサーの出力は、画像処理プロセッシングにより、JPG(静止画)やMP4(動画)などのデータ形式に変換されます。
イメージセンサーの出力は、RGB輝度データの羅列(RAWデータ)です。これを画像データに変換するには、数値処理(RAW現像)を行います。同時に、以下のような様々な処理を行うことで、画質の向上や、各種の情報の抽出を行います。
- 露光量、色彩、明るさなどの補整
- 画素情報の欠落やエラー、ノイズキャンセルなどの補正
- HDR合成や、輪郭抽出、AI分析などの画像/数値処理
最後に、出力データを、所望のインターフェース規格に従って出力します。
これら一連の処理を行うLSIとして、ISP(Image Signal Processor)があります。各種のISPが市販されており、目的に応じて選択できます。多くは、センサーへの設定信号を出力する機能を持ち、センサーとのコミュニケーションを行いながら、ファームウエアによる設定/制御に従って、所望の動作を行います。
ISPは、特定の目的に特化/最適化したものが多く、用途が合えば高性能が期待できますが、コストパフォーマンスや、後々の仕様変更の際の機能拡張性に、考慮を要する場合があります。
また、OpenCVなどの各種のフリーライブラリや、AIを始めとした高次元の処理スキームも流通しており、FPGAやマイコン上に、自力で構成することも可能です。こちらは、拡張性を含めた高次元の設計自由度を確保できる一方、開発や検証にさらに工数が必要になります。
ISPメーカーの多くが、実装のリファレンスデザインを公開しています。パスコンや、不揮発メモリ、フレームメモリなどの周辺素子を、リファレンスデザインに準じて基板に配置することで、安定した動作が期待できます。
また、小型のISPであれば、両面実装などでセンサー基板と同一化することで、カメラモジュール全体の小型化や、コストダウンを行うことができます。

図6 システム構成の概要
今回、当社で作成したカメラモジュールは、小型のセンサーサイズに最適で使い勝手が良好なR5U8710(リコー電子デバイス)を採用しました。
- UVC出力に特化しており用途に適合
- AE、AG、AWBなど機能が充実
- 低照度撮影、高速fps出力などファームウエアで対応可能
- 小型でシステムサイズを圧迫しない
- 色味調整ツールなどのサポートがある
Sapphire WVGAカメラモジュールの特徴
小型センサーの機動性を生かした、あらゆる場面に使い勝手の良い、小型カメラモジュールを実現しました。

図7 カメラモジュール外観
表:カメラモジュール仕様一覧
イメージセンサー | TELEDYNE e2v SAPPHIRE WVGA 1/4″サイズ 4.5umピッチ36万画素 |
---|---|
シャッター形式 | グローバル/ローリングシャッター選択可能 |
ダイナミックレンジ | > 52dB |
SNR | ≦ 39dB |
画像処理チップ | リコー電子デバイス(株) R5U8710 |
動作温度 | ー40~85℃(0~65℃推奨) |
保存温度 | ー40~85℃ |
動作電圧 | 3.3V±5% |
コネクタ | FFC 0.5mmピッチ 10ピン(USBコネクタへ変更可能) |
インターフェース | USB2.0 |
出力形式 | UVC |
出力画像サイズ | WVGA、VGA、QVGAなど選択可能 |
圧縮形式 | YUY2、MJPEG |
フレームレート | ・標準30fps ・MJPEGの場合、最大120fpsが可能 ・27.5fps、55fpsへの設定も可能 |
レンズ | 固定焦点 F=2.68mm f=2.8 Distortion~-4.0% (レンズ変更可能:ホルダーや基板の設計変更を要する場合があります。) |
レンズマウント | M12 x p0.5 |
画角 | VFOV=44° HFOV=64° DFOV=73° |
モジュールサイズ | 31(W)x28(D)x19(H) mm |
固定穴 | センター位置26×23 Φ2.1 mm |
ファームウエア設定 | AE、AWBなど。 |
- IFはUVC規格なので、USB端子に接続することで自動的にUSBカメラとして認識されます。
- 暗い環境に特化したAE機能のオプションを選択可能です。(照度に応じてAEを広範囲に自動制御します。)
- linux環境からV4L2コマンドによる制御が可能です。
- インターフェースはFFC 10ピンです。
- 電源は3.3V単一です。
- PCなどのUSB端子に直接接続するには、5V→3.3VのDC-DC回路と変換コネクタが必要です。

図8 機器への接続図
※ FFC→USBコネクタへの変更など、各種のカスタマイゼーションも賜ります。ページ下部のWEBマガジンからのお問い合わせフォームより、お問い合わせください。
※本カメラモジュールの作製は、テラテクノス株式会社に依頼し、開発上のご協力を頂きました。
テラテクノス株式会社: https://www.terratechnos.com/
カメラモジュール応用例:手の平ネットワークカメラ
今回、本カメラモジュールと、小型のシングルボードコンピューター(SBC)を使って、画像のネットワーク配信環境を作製したので、応用事例として紹介します。
使用したSBCはNanoPi Neo2。手のひらサイズの小型サイズに、高速のLANポートと、複数のUSBポートを備えています。USBポートは、通常のコネクタだけでなく、ボードピン上にも出ており、3.3V電源も供給されているので、本カメラモジュールをそのまま接続できます。

図9 NanoPi Neo2のピン構成と接続ポート例(ピンクの追記部)
※ 図はhttp://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO2より引用
接続に関する設定は不要で、本カメラモジュールを有線接続するだけで、Video deviceとして認識されます。
前のページ
カメラ接続確認の例:
$v4l2-ctl ––list-devices
USB2.0 Camera: USB2.0 Camera (usb-1c1b000.usb-1):
/dev/video0 ← video0として認識している。
NanoPi Neo2には多数のポートがあり、複数のカメラモジュールを接続することも可能です。その場合は、一つのUSBポートにシリアル接続するのではなく、各々別のUSBポートに接続します。
NanoPi Neo2 のLANポートをWiFiルータに接続して、ネット環境を構築します。WiFiに接続したPCなどの端末から、所定のURLを通して、カメラ出力をモニターできます。この際、WiFiへのログイン設定により、ある程度のセキュリティを確保できます。

図10 システム構成の概要
画像の配信には、RTSPを用いました。RTSP(Real Time Streaming Protocol)は、メディアのストリーミング配信用のプロトコルで、システム上にRTSPサーバを構築することで利用できます。
RTSPサーバ用のライブラリとして、今回はv4l2rtspserverを使用しました。大まかには、以下のような手順で環境をビルドできます。
$ git clone https://github.com/mpromonet/h264_v4l2_rtspserver.git
$ cd h264_v4l2_rtspserver
$ sudo cmake .
$ sudo make install
RTSPサーバは、次のコマンドで起動されます。
・ユニキャストの場合
-P はポート番号です。
・マルチキャストの場合
-P はポート番号です。-mはマルチキャストの引数で、「multi」はURLに反映されます。
なお、コマンドの詳細は、以下のヘルプで参照できます。
配信URLは、モニター画面のLog中にも表示されますが、以下のようになります。
rtsp://195.826.0.21:8554/multi
ポート番号より前の 195.826.0.21は、NanoPi Neo2のIP addressです。
画像の受信は、RTSP対応ソフトから、このURLにアクセスすることで行います。 例えば、Windows PCでは、汎用ツールのVLC media playerが使用できます。

図11 メディア → ネットワークストリームを開く → 「ネットワーク」タブを選択→RTSP URLを入力
マルチキャストの場合、複数のPCから同時モニターすることも可能です。
NanoPi に複数のカメラを接続している場合は、各々にURLを設定することで、同時配信が可能です。受信側では、アクセスするURLを切り替えることで、カメラの切り替えができます。インターフェースにカメラ切り替えのハードを構築する必要がないのも利点です。
以上の方法で、複数のカメラの画像を、任意のデバイスで同時にモニターすることができます。煩雑なカメラインターフェースの構築も、カメラ切替えの機構も不要です。
Appendix
Teledyne e2vでは、センサーとレンズを基板に装着、入出力をFFCコネクタにまとめた、簡易モジュールのお取り扱いがございます。
※イメージセンサーはSnappy 2Mです。詳細は、メーカーサイトをご参照ください。
※ センサー出力を処理するためのISP基板が別途必要です。
※本モジュールに関する詳細は、ページ下部のWEBマガジンからのお問い合わせフォームより、お問い合わせください。
前のページ