DesignSpark Electrical Logo

Innovation for Every Engineer

  • Brought to you by
  • RS Components
  • Allied Electronics
mkobayashi05

May 20, 2013 04:07

Raspberry Piカメラによる微速撮影

title

新型のRaspberry Piカメラ・Raspberry Pi(モデルA)・充電池を用いた微速撮影プロジェクト

長い間自分で微速撮影をやってみたいと思っていたものの、様々な理由から手を出さずにいました。しかし、Raspberry Piカメラの試作品を手に入れるという幸運に恵まれた今、やらないことに対する言い訳をする余地はありません!

Raspbianの設定

ソフトウェアの設定にネットワークアクセスが必要なため、このプロジェクトではUSBのネットワークアダプターを用いるモデルAではなく、モデルBのRaspberry Piを用いて行われました。

まず、32GB のSDカードにインストールされたRaspbian上で、パッケージファームウェアの最新版へのアップグレードを行いました。

カメラのサポートを有効にするために、/boot/config.txtに以下の二行を加える必要があります。

start_file=start_x.elf

fixup_file=fixup_x.dat

充電池を使ってRaspberry Piとカメラに電源を供給する計画だったため、消費電力を抑えるために、以下のコードを加えてRaspberry Piのアンダークロックを試みました。

arm_freq=300

しかし、この作業を行っても消費電力の抑制にはあまり効果がないようです。ARMコアの周波数を減少させてもあまり大きな効果は得られないという報告もいくつかなされています。

ハードウェアの設定

title

このRaspberry Piカメラは、携帯端末に使われているような固定焦点の5メガピクセルのカメラで、柔らかいフラットケーブルを介してRaspberry PiのCSIポートに接続することができます。

消費電力がモデルBと比較して低いことから、撮影用のRaspberry PiにはモデルAを用いました。このRaspberry Piを小さな箱に格納し、RJ45ソケット用の穴を介してカメラのケーブルを外部に出します。

title

撮影用のスクリプト

画像を撮影する際は、/opt/vc/bin/raspistill というコマンドを使います。デフォルトの設定では、撮影が完了するまでに約6秒ほどかかります。

Raspistillを起動するために簡単なスクリプトが使われています。

ROLL=$(cat /var/tlcam/series)

SAVEDIR=/var/tlcam/stills

while [ true ]; do

filename=$ROLL-$(date -u +"%d%m%Y_%H%M-%S").jpg

/opt/vc/bin/raspistill -o $SAVEDIR/$filename

sleep 4;

done;

Raspberry Piがブートされるたびに、起動スクリプトが/var/tlcam/seriesの中に格納されている数字を読み込み、1つずつ増加させていきます。上のスクリプトが完了すると、10秒ごとに画像が保存されます。

画像のファイル名には、どういう順番で撮影されたかがわかるように、様々な$ROLLによって定められた数字と、日付と時刻が含まれています。モデルAはリアルタイムクロックを搭載していないため、時刻と日時はあまり正確ではありませんが、特に問題はありません。

消費電力

title

アイドル状態では117ミリアンペアほどでしたが、カメラが起動している状態では278ミリアンペア近くまで電流が上昇しました。

1時間当たり3200ミリアンペアの充電池を使えば、最低約12時間は動作し続けると考えられます。

始動

ここまでで、スクリプトのテスト・消費電力測定・充電池の充電が完了し、カメラを始動させる準備が整いました。窓のそばにRaspberry Piと充電池を設置し、テープでカメラを窓に固定しました。

title

次の日の朝に、画像が記録されたSDカードから、5518枚のjpegファイルをコンピュータへと移しました。

静止画像からの動画の生成

撮影された画像を確認してみると、最後の3つのファイルは空であることが判明しました。これは、恐らく充電池が切れて、ファイルシステムのキャッシュ(RAM)から画像が生成されなかったことが原因であると考えられます。

一連の画像から、空である3つのファイルを削除したことによって、画像は全部で5515枚となりました。

$ls *.jpg > stills.txt

Youtubeにアップロードするための、HD (1080p) MPEG-4形式の動画ファイルの作成には、MEncoderというソフトを用いました。

$mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o tlcam.avi -mf type=jpeg:fps=24 mf://@stills.txt

結果

動画を見るとわかるように、朝(動画の最初の部分)はかなりどんよりとした天気になっています!午後(動画でいう二分あたり)は、晴れているのがわかります。

このカメラは15時間以上動作し続けました。この充電地は今回初めて使用したため、完全に充電されていなかったと考えられます。

改善点

改善点としては、撮影頻度を色々と変えてみたり、以下のようなraspistillのオプションが考えられます。

  • 画像の大きさ(例: 最終的な動画の大きさに画像サイズを合わせる)
  • jpegの画質
  • カメラの露光モード(夜景など)
  • 微速撮影機能の組み込み

これらによって、画質が向上したり、消費電力が低下する可能性があります。

動画を変換する際のmencoderのオプションや、動画を変換する前の画像処理に関しても、多くの改善の余地があります(例: ImageMagickを使用する)。

まとめ

Raspberry Piとカメラを同時に利用することによって、微速撮影を行うためのかなり柔軟なプラットフォームを生み出すことができました。このRaspberry Piと新型カメラを組み合わせて実現できる、楽しくて新しい、創造的な使い方を、近いうちに網羅できると信じています!

 

mkobayashi05

none