2021年9月30日木曜日

自動撮影カメラの検出プロセスをシミュレーションする

  改訂中の論文で必要になったので,自動撮影カメラの検出プロセスのシミュレーションに取り組んでいる.

 出来上がったアニメーションを先に示しておこう.扇形がカメラの検出エリア,正三角形が我々の「有効範囲」(ここを通過した動物だけデータ化する),青の白抜き〇が動物で灰色がその軌跡である.ここでは,カメラが撮影した動物の場所を赤で,2台目のそれを青で表現している(思った以上にGIFが重かったので2台目は削除).




 以下,一応解説(誰が読むか知らんけど).


 通常の自動撮影カメラには,受動型の赤外線センサーが搭載されていて,検出エリア内を動物が通過したら撮影される仕組みになっている.工学的な原理(というほど大層なものではないが)ここで紹介したとおりだ.


 検出エリア内に入った動物が撮影されるまでのプロセスは,生き物の一生に例えられるかもしれない.どんな生き物も,生まれた瞬間からある一定の確率で死亡するリスクにさらされる.ある瞬間における死亡リスクを「ハザード」と呼ぶが,若いうちはハザードが低く,だんだん年を追うごとにハザードが高くなるのが普通だろう(若齢個体の死亡リスクは高いとか,そういう話は置いておく).


 生き物の「死亡」を,自動撮影カメラによる「検出」に置き換えることが出来る.動物がカメラから離れた場所からだんだん近づいてくる場合,常に撮影される「リスク」にさらされている.そして,その瞬間リスクはカメラに近づくにつれてだんだん大きくなっていく(通常,カメラの検出確率は距離とともに減衰するので).リスクにさらされ続けた動物は,ある段階でリスクが現実のものになるだろう.生き物の一生との喩えとの相違点は,生物は必ずいつか死ぬのに対し,カメラによる撮影は逃れられる可能性があるということと,死ぬのはつらいがカメラに撮影されてもとくには困らないという点だ.


 つまり,撮影までのプロセスは,いわゆる生存時間解析の枠組みでとらえられることになる.この辺りについては,イギリスのRowcliffe大先生が2011年の論文でしっかりと整理している.


 今回やってみたのは,実際に撮影される様子をアニメーションにしてみるという作業だ.簡単に必要な作業を説明すると,①カメラによる瞬間撮影リスクを何らかの数式によって表現する(ハザード関数の定義).カメラによる動物の検知能力は,カメラからの距離と中心線からの角度とともに減衰するとする.②動物の1度の通過それぞれについて,累積ハザード(ハザードの積分値)を計算し,生存関数を求める.③一様乱数rを発生させ,y = rと生存関数との交点を求める.この交点が検出された場所ということになる(交点がない場合は検出されない).


 今回は,2台のカメラで同じ有効範囲を狙った場合,どのようにカメラ設置したら2台のカメラの検出を独立に近づけるかを検証する目的でこの課題に取り組んだ.同じ地点に置いたり,別の場所に置いたりしてみた(ここでは結果は示さない).軽い気持ちで取り組んだのだが,結構手を焼いた.


 積分計算が必要になるので大変そうにも見えるが,それはそんなに問題ではない.むしろ,「2台目のカメラを原点以外の別の地点において有効範囲を撮影する」という状況の実装が結構面倒だった.点や直線を回転させないといけなくなるのだが,その回転のさせ方が通常とは逆になる(ふつうはある点を中心に回転させるが,ここでは座標系の回転が必要だった).これにちょっと時間がかかってしまった(わかってしまったら当たり前のことだったけど).高校数学+αの知識で取り組めるので,Rの使い方に慣れたり高校数学の復習をするうえでは結構いい教材な気がする(とある東大の学部生は,あっさりと実装できてしまったけど).



0 件のコメント:

コメントを投稿