OpenCVでiPhone6sのカメラをキャリブレーションする

世間ではiPhone7が発売されていますが、オイラは引き続きiPhone6sを使います(笑)

1年前にiPhone6Sへ機種変更してからiPhone6sのカメラで結構たくさん写真や動画を撮ったので、画像・動画がだいぶ溜まった。
それらの画像・動画のレンズの歪みを補正したいんだけど、良い方法が他に思いつかないので、OpenCVでやってみることにする。(最新のPhotoshopとかだとできたりするんだろうか)

例のごとく、OpenCV 3.1に同梱のサンプルコードでできてしまう。

opencv/samples/cpp/calibration.cpp

OpenCVに実装されているのはZhangのキャリブレーション手法(A Flexible New Technique for Camera Calibration)
Zhangのキャリブレーション手法では、既知の幾何形状として平面のチェッカーパターンを3枚以上撮影する必要がある。(OpenCV3.1公式のサンプルの方にはチェッカーパターンだけでなく、円形のパターンを使用した例も入っている)

こちらの書籍にもっとシンプルなサンプルが載っている。↓

OpenCV 3 プログラミングブック

どうでも良いですが、書籍97ページの出典論文の記載箇所、何故か論文タイトルの”Fl”が抜けて”exible”という謎の単語になってますね。


スポンサーリンク


で、まあ、iPhoneでチェッカーパターンを撮ってやってみることにした。チェッカーパターンはOpenCVで生成しても良いし、ネットで拾っても良い。オイラはここにある10×7のチェッカーパターンを使わせてもらった。
印刷したチェッカーパターンをとりあえず4K(3840×2160)解像度の動画で色んな角度から撮影した。ところで、気になっているのが、iPhoneだと静止画と動画で撮影画角が変わること。何で動画撮影時は狭くなるんだろうな。

cv::calibrateCamera関数を使ってカメラの内部パラメータと歪み係数を求めた。
その結果を使って動画の歪みを補正してやる。
http://qiita.com/tunepolo/items/76058121238be386bb21

また例の動画で試してみた。


スポンサーリンク
OpenCVでレンズの歪み補正

って、これキャリブレーション失敗なのか?しかもファイル書き出しミスって動画の尺が半分になった。。。


スポンサーリンク

関連記事

Paul Debevec
takminさんが機械学習・画像認識の便利ツールを公開しています
インタラクティブにComputer Visionコーディングができるツール『Live CV』
OpenCV 3.1とopencv_contribモジュールをVisual Studio 2015で...
Unityの各コンポーネント間でのやり取り
Math.NET Numerics:Unityで使える数値計算ライブラリ
Raspberry PiでIoTごっこ
Google App Engine上のWordPressでAmazonJSを利用する
WordPressのサーバ引っ越し方法を考える
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
機械学習に役立つPythonライブラリ一覧
ニューラルネットワークで画像分類
SSD (Single Shot Multibox Detector):ディープラーニングによる一般...
プログラムによる景観の自動生成
python-twitterで自分のお気に入りを取得する
SegNet:ディープラーニングによるSemantic Segmentation手法
Mayaのシェーディングノードの区分
フォトンの放射から格納までを可視化した動画
Windows10でPyTorchをインストールしてVSCodeで使う
まだ続くブログの不調
openMVGをWindows10 Visual Studio 2015環境でビルドする
オーバーロードとオーバーライド
OpenCVで平均顔を作るチュートリアル
UnityのTransformクラスについて調べてみた
OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』
OpenCVベースのマーカーARライブラリ『OpenAR』
「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作ったのか
ROSの薄い本
UnityでPoint Cloudを表示する方法
3分の動画でプログラミングを学習できるサイト『ドットインストール』
Twitter APIのPythonラッパー『python-twitter』
UnrealCLR:Unreal Engineで.NET Coreを利用できるプラグイン
スクレイピング
機械学習で遊ぶ
3Dボリュームデータ処理ライブラリ『OpenVDB』
OpenCVの三角測量関数『cv::triangulatepoints』
画像からカメラの3次元位置・姿勢を推定するライブラリ『OpenGV』
マルコフ連鎖モンテカルロ法
統計的な顔モデル
Multi-View Stereoによる3次元復元ライブラリ『OpenMVS』
Unity ARKitプラグインサンプルのドキュメントを読む
Webスクレイピングの勉強会に行ってきた

コメント