概要
- 工業用リニアスキャンカメラを使い、鉄道やフェリーから超ワイド写真を撮影する試み
- 列車やフェリーの移動を利用し、スリットスキャン技術で画像を生成
- センサー、加速度計、GPSなど複数の技術的課題に直面
- 撮影から画像処理、色補正までの詳細な技術的工夫
- 今後の課題や展望、協力者への感謝
鉄道ネットワークをフラットベッドスキャナーとして活用
- 工業用リニアスキャンカメラ を使い、列車やフェリーの窓から 超ワイドな写真 を撮影するプロジェクト
- カメラは 移動する車両の窓外に向けて設置 し、 1本の垂直ライン を連続で撮影
- 撮影したライン画像を 高速で取得・合成 し、 全体写真 として再構成
- 画像生成には 被写体の動きや速度の計測・補正 が不可欠
- San Francisco~Oaklandフェリー や MBTA Orange Line などで実践
背景と既存技術
- 1990年代、 大型フィルムカメラ向けにデジタルスキャンバック が開発
- Gigawipf や Scannoramic Project などの先行事例を調査
- 「 被写体が静止しカメラが動く」という逆転発想を採用
- 既存のスキャンバックは高価かつ古いPC環境が必要なため、自作を決意
スリットスキャンの初期実験
- 最初は スマートフォンを椅子に載せてソファをスキャン する簡易実験から開始
- フレームから左端のコラムだけを抽出して合成 するコードを作成
- 速度の不均一さ が画像の歪みや不鮮明さの原因となることを発見
- 速度計測の重要性 を認識し、加速度計や動画のフレームレート調整を試行
工業用リニアカメラの導入
- Basler ruL2048-19gm (1x2048ピクセル、秒間19,000ライン)をeBayで格安入手
- 高照度環境 が必須(最低露光時間1/100秒)、 昼間撮影限定
- Gigabit Ethernet接続 とSDKでPCと連携、 自作プログラムで画像取得
- 三脚マウント用ケース を3Dプリンターで自作し、 各種センサー&マイコン を搭載
- 6軸加速度・ジャイロセンサー
- GPS(鉄道内では受信困難)
- SAMD21マイコン
センサーと画像補正
- 加速度センサーによる速度補正 で画像の伸縮や歪みを大幅に改善
- GPSは鉄道内で受信困難&サンプリングレート低すぎ で補正には不向き
- パララックス(視差)補正 も必要で、 距離ごとのピクセル変換値を手動調整
- 手動で距離/速度パラメータを調整し、画像をセグメントごとに合成
ソフトウェアと画像処理
- Basler純正ソフトPylon でプレビューしつつ、自作プログラムで本撮影
- OpenCVのGUIは高速カメラに不向き だったため、 Dear ImGUI + OpenGL3 で独自GUIを構築
- 加速度データのPC側変換・同期 でバグ多発、シリアル通信のタイミングも課題
- grindstone という自作ポストプロセッサで、数千ラインの生データから画像を生成
- NumPyによる高速化 や パイプライン化 で処理効率と実験性を向上
カラー化と色補正
- Basler ruL2098-10gc (3x2098ピクセル、カラー対応)を追加導入
- 赤・緑・青の各ラインが分離しているため色ズレ(フリンジ)が発生
- IR(赤外線)カットフィルター で葉や景色の色ズレを軽減
- 各色チャンネルの手動シフト で主被写体の色ズレを補正
- 赤外線専用フィルターによる実験的撮影 も実施
画像の表示・共有
- 画像サイズが巨大 で一般的な画像ビューワやSNSでは閲覧困難
- OpenSeadragon を活用し、ブラウザ上で ズーム・スクロール可能なギャラリー を構築
- vipsユーティリティで巨大TIFFをJPEGタイルに分割 し配信
今後の課題・展望
- ノートPC不要のスタンドアロン型カメラ化 に挑戦予定
- 加速度データ取得・UIの改善
- ポストプロセッサの機能拡張 (スプレッドシート連携、GUIでのセグメント指定など)
- GPS+カールマンフィルタによる速度補正 や 赤外線写真の拡充 も検討中
- カメラのゲインとISOの関係を定量化し、ロケハンを効率化 したい
コードと謝辞
- 撮影用コード および ポストプロセッサ(grindstone) を公開
- 協力者(Meadow, Brooke, Ari, nyanotech, cat, Maddie, kim) への感謝を表明
- このプロジェクトの完成度向上に貢献した全ての関係者に謝意
このプロジェクトは、 移動体の速度と位置情報をリアルタイムで補正しながら、工業用リニアスキャンカメラで非日常的な超ワイド画像を生成する という、写真・プログラミング・電子工作が融合した先進的な試みです。