はじめに
タイトルの通りなのですが、本来産業用カメラは、製造や流通など産業の現場で活躍する精密かつタフな高品質なカメラであり、現場の要望に応えて進化を繰り返してきたものなのですが、本記事は 本来の用途と違う 研究開発に使う場合の課題について触れてみたいと思います。
産業用カメラについてはこちらなどでも少し触れていますが、どんなものか知らない方もおられると思うので少し有名どころを紹介しておくと、iDSさん、Baslerさん、CISさん、東芝テリーさんとか、このあたりのページに飛ぶと、なんとなくこんなやつと言うのがわかるのではないかと思います。あと高速度カメラだとフォトロンさんなんかもあります。
手元に一個、大学からお借りしたUSBタイプの産業用カメラが手元にありますが、こんなやつです。

なぜ画像処理研究に産業用カメラを使うのか
ではなぜ研究開発で普通にパソコンに繋がる一般的な Zoomミーティングなどで使う Web カメラを使わずに産業用カメラを使うケースがあるのでしょうか。
実は Webカメラは本格的な画像処理の研究開発に使うには多くの課題があります。
- 露光時間/ゲイン/絞りなどの基本項目が設定できないことが多い
- センサーの緒元が不明、現像処理も不明、あまつさえ勝手に適応制御する
- 2つのカメラの同期シャッターや、照明との同期もままならない
- ローリングシャッター歪が課題で、グローバルシャッターが使いたい場合がある
- BAYER配列が邪魔でモノクロが使いたい場合、赤外が撮りたい場合などがある
- 高速度撮影/低遅延リアルタイム認識にUSBが遅すぎる
などなど、ちょっとしたアクティブセンシングでもしようものなら役に立たないケースが多数あります。
これらの課題を解決してくれるのが産業用カメラです。
UVCカメラと違い、メーカー専用のAPIを経由してイメージセンサーのかなり細かい設定を行う事が出来、外部トリガの入出力などの機能も有しているものが多いです。
(研究用途での)産業用カメラの課題
高性能な産業用カメラですが、そうはいっても研究用途目的に作られているわけでもないので、課題も残ります。
値段がお高い(笑)
本来の用途を考えれば妥当なのですが、一般的には 10~20万円ぐらい、安い物でも数万円以上、高いものだと100万円を軽く超えてきますので、弱小研究室や個人だと気軽には買えないケースもあるのではないかと思います。
上のお借りしたカメラもメーカー価格で 389ユーロ、日本円を探してみたらこちらで 67,800円でした。これでもかなり安い方だと思います。
FPGAに直結出来ない
こちらでも書きましたが、FPGAに直結できるカメラは少ないです。
アクティブセンシングなどのFPGA制御撮影がしたい場合、複数カメラや照明やロボットをFPGAで操りながら、タイミングを合わせて厳密な撮影制御したいわけですから、これらをFPGAで掌握できないといけません。
一方で、USBタイプ や GigE-Vision などは、ナノ秒オーダーどころかマイクロ秒オーダーの制御をするにはあまりも遅すぎますし、他のインターフェースも高価すぎたり、規格が古く帯域が細かったり、仕様が非公開であったりと課題は多いです。
そしてこうならざるを得ない理由が、次に述べる センサーメーカーのNDA構造にも関連してきます。
センサーメーカーのNDAの問題
このあたりから少し技術とは異なる話になってくるのですが、産業用カメラで使われるイメージセンサーの多くは仕様が一般に公開されていません(そうでないものも少しありますが)。
そこでカメラメーカーはセンサーメーカーとNDA(機密保持契約)を結んでデータを開示してもらいカメラを製造するわけですが、NDAで守られた範囲をユーザーに開示するわけにはいきません。
したがって、カメラメーカーはそれぞれセンサー固有の機能を、産業規格などの一般化されたものに、カメラ内のFPGAなりで変換して外部に出すことになります。この際、物理層や低レイヤーまでは各種産業規格に準じるのですが、カメラに必要な上位のプロトコルは各社ばらばらで、各社独自のAPIを提供しています。ゲイン一つ設定するにも各社で方式が異なり、これもまたベンダーロックになっています。
また、カメラインターフェースもオープンなものもあれど、クローズな規格もあり、中には一定の基準を満たした法人が規格団体の有料会員になって初めて規格書が閲覧できるようなものもあります。

結果的に、各社カメラメーカーが用意しているエコシステムを一式購入することになり、これも実質的にベンダーロックになっています。
もちろん、産業分野ではトラブルを起こさず適切なサポートを受けて産業活動を維持するには不可欠な事なのですが、こと研究用途に転用しようとすると困ることになります。特に下手にNDAに踏み込んでしまうと 論文に書けないこと やソースを GitHubに公開できない などの致命的なデメリットを受けかねません。また環境が高価なこと自体が他の人の研究の再現のハードルを上げてしまい研究の広がりを阻害してしまいます。
自作カメラの開発
また、上の絵を見てお気づきかもしれませんが、多くの産業用カメラがその内部にFPGAを内蔵しています。
ですので、当サイトのように「FPGAを活用してリアルタイム画像処理がやりたい」という用途ですと、高価なインターフェースボードとIPを使って、FPGA で変換された信号をまた FPGA でなるべく生の画像信号に戻すというなんとも無駄の多いことをする羽目になります。
信号用のIPも、商用の量産向けのライセンスを想定したものが多いですので、研究用に1個買うだけでも何百万円も払う例は少なくありません。
下記に絵を描きましたがもっとシンプルにやりたいと思ってしまうわけです。

そこで私がいま開発しているのが、こちらのグローバルシャッター高速度カメラです。
仕様がデータシートとして公開されているPYTHON300イメージセンサーを使って、KV260 や ZYBO に直結出来るカメラモジュールと言うわけです。このセンサーは Digikeyさんなどでも手に入り、サイズを絞った設定次第で1000fps 以上の高速度撮影もできるグローバルシャッターのカメラなので、研究開発には最適です。
物理層に安価なMIPIコネクタを選んでいるためセンサー側にも Spartan7 FPGA がいますが、こちらの回路図もRTLも公開しておりますので、Spartan-7 も研究対象の回路として扱ってしまえば、かなり理想に近いオープンハードウェアなカメラモジュールと言えます。
昨日、やっと LUT-Network による MNIST の認識が動き始めましたので記念記事として、この記事を書いた次第です。


おわりに
昨今AIの台頭で、画像処理に挑戦する学生さんや研究者の方も増えているんじゃないかと思います。 この時、普通のZoom会議などで使うUSBカメラで画像処理を行う人が多いのではないかと思います。
一方で、FPGA+カメラ の構成で、普通と違うちょっと違う撮影や制御を行うだけで、「他の誰もやっていない研究」に挑戦しやすくなります。 特にアクティブセンシングや認識結果をさらにフィードバックするようなインタラクションを伴う処理は、パソコン上で PyTorch だけ弄っているのでは絶対に出来ないアルゴリズム研究が次々生まれてきますので、ぜひともいろいろ考えてみて頂ければと思います。






 (トランジスタ技術SPECIAL) KiCad×LTspiceで始める本格プリント基板設計[DVD付き](TRSP No.142) (トランジスタ技術SPECIAL)](https://m.media-amazon.com/images/I/51ut8h-2iOL._SL500_.jpg)















