2022年5月11日水曜日

motion: 引き続きlightswitchネタ


色々と調整しているとボケてしまっていたようで、lightswitchを有効にすると反応が鈍くなると感じたのminimum_motion_frames20になっていたのが原因かも。環境としては10FPSなので時間にして2秒間動かないと検知されない状態。そりゃ鈍いw

早速これを2フレームとかにすると反応は良くなりました。

いつ変えたのか正直記憶に無いわけでログを見直す気もないのでさっさと先に進むことに。

再度lightswitchを有効にして…様子を見ることに。

部屋を暗くしてライトをつけてもちゃんと防御してくれてるっぽい。ログにも
[1:ml1:D] [NTC] [ALL] [ 5月 11 20:22:14] mlp_actions: イベント11の終了
[1:ml1:D] [INF] [ALL] [ 5月 11 20:27:58] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [NTC] [ALL] [ 5月 11 20:40:53] motion_detected: モーションが検出されました. - イベント12を開始中

となっているのですが、ちょっと違和感…ログレベルを下げたのでdebugログが出てないかもしれないのでソースを確認しましたが…

MOTION_LOG(INF, TYPE_ALL, NO_ERRNO, _("Lightswitch detected"));

と言うのが先に来なきゃいけないような?INFレベルだし多分処理が通過すればログに残るよね?

なんで

MOTION_LOG(INF, TYPE_ALL, NO_ERRNO, _("micro-lightswitch!"));

が先に出てしまってるのだろう?

ま、様子を見つつも…もっと強烈なのが来ました。

[1:ml1:D] [NTC] [ALL] [ 5月 11 21:46:06] motion_detected: モーションが検出されました. - イベント15を開始中
[1:ml1:D] [INF] [EVT] [ 5月 11 21:46:06] event_ffmpeg_newfile: ソースFPS 6
[1:ml1:D] [INF] [ENC] [ 5月 11 21:46:06] ffmpeg_set_quality: libx264 コーデック vbr/crf /ビットレート: 30
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:46:06] event_newfile: 動画ファイルを出力中です: /home/motion/tmp/OrbitAF_2/20220511214605D-15.mp4
[1:ml1:D] [INF] [ENC] [ 5月 11 21:46:06] ffmpeg_set_quality: libx264 コーデック vbr/crf /ビットレート: 30
[1:ml1:D] [INF] [EVT] [ 5月 11 21:46:06] event_create_extpipe: ソースFPS 6
[1:ml1:D] [NTC] [ALL] [ 5月 11 21:46:06] mycreate_path: ディレクトリ /home/motion/tmp/OrbitAF_2を作成しています
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:46:06] event_create_extpipe: パイプ: ffmpeg -y -f rawvideo -pix_fmt yuv420p -video_size 640x480 -framerate 6 -i pipe:0 -vcodec h264_v4l2m2m -b:v 4000k -f mp4 /home/motion/tmp/OrbitAF_2/20220511214605D-15.mp4
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:46:06] event_create_extpipe: cnt-> moviefps:6
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:46:06] event_newfile: 動画ファイルを出力中です: /home/motion/tmp/OrbitAF_2/20220511214605D-15
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:08] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:12] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:14] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:16] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:23] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:25] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:27] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:29] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:32] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:37] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:39] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:40] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:41] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:43] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:52] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:46:55] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:47:09] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:47:11] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:47:12] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:47:20] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:47:22] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [INF] [ALL] [ 5月 11 21:47:46] mlp_tuning: マイクロライトスイッチ!
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:48:19] event_newfile: 画像ファイルを出力中です: /home/motion/tmp/OrbitAF_2/20220511214725D-15-01.jpg
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:48:19] event_extpipe_end: クローズ中: extpipeファイルの説明 12、エラー状態 0
[1:ml1:D] [NTC] [EVT] [ 5月 11 21:48:19] event_extpipe_end: pcloseリターン値: -1
[1:ml1:D] [NTC] [ALL] [ 5月 11 21:48:19] mlp_actions: イベント15の終了


撮影された動画を見ると映像が出てこないw

ほかのも見てみると動画出力中にこの「マイクロライトスイッチ!」のログが混じっている場合はなんか動画が乱れて終わっていました。

なんだかコードの前後でthreshold_tuneとかnoise_tuneとか私は使ってないけど有望そうなパラメータも死んでそう…ま、置いといてw

やっぱりこの辺おかしくなってる感じですねぇ。


あとlightswtich関連の実装部分でやたらと範囲チェックして補正欠けてたりするんですが、ハッキング対策を考えるとありっちゃありだと思うんですが、理想論としてはやはり設定値を読み込んだり、外部から設定されるタイミングで範囲チェックして、補正するなら強制的に補正して取り込んで、処理中に設定値の範囲チェックなんてやってる場合じゃないと思うんですが。デバッグしてると疑心暗鬼になって不安に駆られて入れたくなるのは理解できるのですが。

0 件のコメント:

コメントを投稿