善司さんGT-Rお披露目オフ会動画はこちら
#BSMAC2022 BMPCC4Kで顔AFしたい!アプリsmafocus作成記
2022/12/21

#BSMAC2022 BMPCC4Kで顔AFしたい!アプリsmafocus作成記

BSM Advent Team 2022/12/21

#BSMAC2022の記事になります。

BSMアドベントカレンダーは、BSMメンバーがクリスマスまでの期間中、毎日マガジン記事を投稿する企画です。BSMメンバーでない方も全て読むことができますので、クリスマスまで一緒に盛り上がりましょう!
詳細についてはこちらをお読みください。


はじめに

こんにちは!Naoki Akiba(@naonaorange)と申します。

仕事は組み込みソフトウェアエンジニアをしていますが、プライベートでは自分がふと思いついたアイディアを形にするべく色々なものを作ったりしています。
これまでBSMの記事を書いたことはないですが、アドベントカレンダーということでチャレンジしてみようと思いました。

さて、今回は私が作成中の Blackmagic Designのカメラで顔AFができるスマホアプリ”smafocus” の話をさせてください!
(執筆時点ではまだアプリは公開していません。現在公開に向けて作成を頑張っています。)

アプリ開発のきっかけ

私が初めてBMPCC4Kを知ったのはもちろんドリキンさんのYoutubeでした。
元々写真撮影が好きでドリキンさんのBlackmagic Designネタも見ていたのですが、初めは 「AFもない玄人向けのカメラで自分が購入することはないだろう」 と思っていました。

そんなある日、職業がエンジニアということもあり「様々な設定をAPIで制御できるカメラってあるのかな?」と興味本位で探したところ、Blackmagic Designカメラのデベロッパーサイトを見つけたのです。
https://www.blackmagicdesign.com/jp/developer/product/camera

ドキュメントを見ると、Bluetooth経由で撮影時の設定から色温度、フォーカスまで様々な設定ができるようです!!
このドキュメントを見て カメラ自体にAFがないのであれば、AFができるアプリを作れば良いのでは?? というアイディアが浮かび、気づいたらBMPCC4Kをポチっていました笑。

そうです。私はアプリ開発きっかけでBMPCC4Kを買ってしまったのです笑。

製品のコンセプト

私のアイディアに似た既存製品にAFXというものがあり、ドリキンさんのYoutubeでも既に紹介されています。 (恐れ多いですが、リンク貼らせて頂きます)

これはLiDARを用いて1点の奥行きを計測し、その情報からAFを行うものです。
しかし、この製品では顔AFを行うことはできません。
自分がVlogをとるなら顔AFが必須だと思い、 この製品との差別化として顔AFを搭載することをコンセプトとしました。

また、せっかく作るならみなさんが使えるようなものを作りたいと考え、想定するユーザーやシステムのコンセプトが決まりました。

想定するユーザー

  • Blackmagic DesignのカメラでVlogを取りたい人 (私がVlogを撮りたいので、笑)

システムのコンセプト

  1. Vlogに便利な顔AFができること

  2. みなさんが使えるように、導入コストができるだけ低いこと

  3. みなさんが手軽に使えるように、使用時の作業ができるだけ少ないこと

システム構成

顔AFを行うには顔の画像が必要です。初めはIntelのRealSenseという距離画像センサを使おうと考えました。しかし、製品の入手性などを考慮して断念。。。
https://www.intelrealsense.com/depth-camera-d435/

どんな構成が良いのか悩んでいた所、ふと iPhoneにもLiDARがあるじゃないか! と思い、構成が決まりました。

Blackmagic DesignのカメラでVlogを撮りたいというようなコアな方は、もれなくLiDAR付きiPhoneはお持ちだと思うので追加投資なく使ってもらえます笑。
(iPhoneは複数のカメラ画像からも奥行きを計算することができるので、将来的には複数カメラが搭載されていれば使えるようにしたいと考えています。)

アプリ作成中に分かった問題

実際にアプリを作ると様々な問題が発生しました。

Blackmagic DesignのカメラにBluetooth経由でフォーカスを設定する必要があるのですが、ドキュメントには 「フォーカスは0〜1の範囲で設定してください。0は広角側で1は望遠側です」 とあります。
単位はメートルではありません。

つまり、例えばiPhoneで顔の奥行きは1mですと分かったとしても、フォーカスに何の値を設定すれば良いかわからないのです!!

この問題への解決策としてキャリブレーション作業を行うことにしました。
作業が増えるためコンセプトに反しますが、やりたいことを実現できなければ意味がありません。

今思えば、ドリキンさんのYoutubeでも「AFXのキャリブレーションは大変」って仰っていましたね。AFXもLiDARで検出した距離[m]をフォーカス情報に変換するためにキャリブレーションをしているのだと思います。

キャリブレーションは行いますが、極力ユーザーの負担にならないよう簡単なものにします。
ここでは詳細は省きますが、印刷したQRコードをカメラから見える場所に置くという操作を何回か繰り返しただけで終わるようにしたいと考えています。

動作確認

さあ、いよいよ動作確認です!

BMPCC4Kで撮影した動画をアップしましたが、顔AFの動きはいかがでしょうか?
レンズはこちらも衝動買いした「 LEICA DG SUMMILUX 9mm / F1.7 ASPH. 」。
顔AFが分かりやすいようF1.7開放で撮影しています。

私としてはそこそこ上手く動いているかなと思っています。まだ動いたばかりで最適化もできていないため、これからもっと良くしていきたいです。

(ちなみにBMPCC4Kでの動画撮影、DaVinci Resolveでの動画編集は初なので、動画の品質についてはご容赦ください。。。これから頑張って勉強します!!)

おわりに

実際に書いてみると長文になってしまい、内容も難しくなってしまいました。。。
全て見て頂いた方には本当に感謝です。

iPhoneアプリを作るのは今回が初めてなので開発速度が遅いのですが、ストアで公開できるまで頑張っていく予定です。
また、定期的に開発状況をYoutubeにアップしても良いかなと思っています。

Blackmagic DesignのカメラはAPIでできることがとても多く無限の可能性があると思っています。
「あんなことができそう」「こんなことはできないの?」というアイディアがあればぜひ教えてください!!


最後までお読みいただきありがとうございます!
アドベントカレンダー期間中の記事一覧はこちらからご覧いただけます。

backspace.fm

この部分は購読者のみ表示されます。