概要
在宅ワークが標準的な勤務形態になりますが、プライベート空間の中で最大限のパフォーマンスを発揮することはできているのでしょうか?
そんな疑問を抱いたので、男一人暮らしの部屋に定点カメラを設置して、日々の活動をログし続けることにしました。
取得された画像から行動推定アルゴリズムを用いて行動を分類し、時系列で何をやっていたのかを分析することで、日々の行動パターンの最適化ができるのではないか?と思い立ったわけです。
今回はその準備編として、カメラの構築と設置の記録を残したので、お付き合いください。
部材の購入
今回購入したものは以下になります.
- Pi4 B 4GB ベース キット V5
- Piカメラ HQ
- レンズ 広角 6mm for Piカメラ HQ
- Neewer 11inch/ 27.5cm デュアルフラッシュブラケット三脚マウント
- HAKUBA 自由雲台 BH-1 小型 高精度 日本製 ボールヘッド雲台 BH-1
- UTEBIT カメラマウント
あとは電源ケーブルやケーブル固定のためのモールなどを諸々. 1台につき合計2万弱. 2台作ったので10万円給付金の3分の1くらいを使ったことになります.
ただ、ラズパイは4GBもいらないしカメラも無駄にハイスペックなものを選んでしまったので、もっと原価は抑えることはできますね.
余談ですが特に買って良かったのは UTEBIT カメラマウント です.
どこへでも簡単に装着できるカメラマウントで、とても使いやすい. 休日には外干しの布団を固定するのにも利用できるため、正直買いです.
カメラの組み立て
完成形はこんな感じです.
クランプ -> ブラケット
-> ラズパイ
-> マウント -> カメラ
ラズパイの設定
定点カメラでやりたいことは非常にシンプルです.
- 10時から22時の間、1分に1回写真を撮影.
- 撮影時刻の文字列をファイル名にして保存.
- 週に2~3回たまった画像をローカルPCにダウンロード.
ラズパイの初期設定(OSインストールなど)は済んでいるとして、以下の設定を行いました.
ssh接続
ipを固定してssh接続します. 無線LANに接続しているので, dhcpcd.conf
の wlan0を編集します.
DHCPで被らないであろうIPを適当に当てておきます.
interface wlan0
static ip_address=xxxx.xxxx.xxxx.122/24
static routers=xxxx.xxxx.xxxx.1
sudo reboot
これで指定したIPへssh接続できるようになります.
画像取得コマンド
Piカメラを利用して画像を取得する際には, raspistill を利用します.
基本的には -o <file_name>
オプションをつけて実行すれば簡単に撮影できますが、回転や画像サイズの指定などの色々なオプションが用意されています.
https://www.raspberrypi.org/documentation/raspbian/applications/camera.md
今回はカメラを逆向きにして吊るすため180度回転の設定と、ストレージの圧迫を避けるためVGAサイズの設定を行いました. ちなみにこの設定で得られる画像サイズは 250kBくらいです.
実行スクリプトはこんな感じになりました.
fn=$(date +%Y%m%d%H%M%S)
now=$(date +%H%M%S)
sup=$(date --date "21:59:59" +%H%M%S)
inf=$(date --date "10:00:00" +%H%M%S)
if [ $now -lt $sup ] && [ $now -gt $inf ]; then
raspistill --rotation 180 --width 640 --height 480 -o /home/xxx/Pictures/surveillance/${fn}.png
else
echo " "
fi
cronの設定
定期実行のためにcronを利用します.
crontab -e
で開かれるエディタにおいて、以下を追記します.
*/1 * * * * /home/xxx/Pictures/camera.sh
これでラズパイ側の設定は終了です.
ピントの調節
Piカメラのピント調節に苦労したので、その記録も残しておきます.
RTSP配信
raspistill
で撮影した画像を確認しながらピントを調節するのは無理なので、RTSPで動画をローカルPCに配信することにしました.
以下の記事を参考にさせていただきました.
https://dev.classmethod.jp/articles/raspberry-pi-rtsp-server/
RTSP配信する際には -U
オプションでユーザ名とパスワードを設定しておくといいです.
v4l2rtspserver -U <user_name>:<password>
レンズについて
説明書に従ってカメラを組み立てて、RTSP配信してみたところ、全くピントがあっていない...。
公式のドキュメントを参照して、NEAR の限界までくるくる回したけど一向にピントが合わなかったのですが、解決法はあまりに単純でした.
https://static.raspberrypi.org/files/product-guides/Typical_CS-Mount_Lens_Guide.pdf
以下画像の黄色で囲った部分はHQカメラモジュールを購入すると最初から接続されているのですが、これが取れます. この部品のおかげで焦点距離が長くなっていて、いくらやってもピントが合わなかったのですね.
この部品を外してピントを調節して、カメラの準備は完了です.
所感
意図した通りに動作することが確認できたので、試運転として3日間弱撮影し続けてみました. 本日停止してストレージを確認したところ、私の部屋と私の画像が 1742枚 保存されていました.(ちなみにほとんどPCの前に座っていました笑)
まず、この3日間のストレスは半端じゃなかったです. 最終的にこの画像を見るのは自分以外いないのにもかかわらず、見られているという感覚が常に付き纏います。最も安全なプライベート空間であるはずの自宅がこの監視カメラによって侵食されてしまい、1つ1つの動作にストレスを感じてしまうようになりました.
おそらく継続的に運用すれば慣れていくのでしょうが、このようなカメラの導入には心理的ストレスが伴うということを身を以て体験できました.
巷ではワーカーの生産性の管理のために監視ソフトを導入しているケースも多々あるようですが(目蓋の動きを監視して眠気覚ましの冷風を出させるソリューションも一時話題になりましたね笑)、生産性の向上とワーカーの心理的安全性の担保のトレードオフはかなり重要な問題になるのではないかと思いました。そもそもカメラを使わないとか、使ったとしても情報の削減を行うとか、何らかの工夫は必須です。それでも解決できるのかな。。。
とはいえ実験としては非常に興味深く、例えば自分が1日の時間の何%を座って過ごしているのか、とか、基本的な生活習慣を記録するだけでも面白そうな解析はできそうな気がしています. 継続的にデータは取ってみようと思います.
今後
取得された画像のアノテーションとか行動推定のモデル設計とかなかなか骨が折れそうですが、進捗があり次第また記事を書きたいと思います. 「こんな解析してみたら?」というアイデアあれば、ぜひコメントに残していただけると幸いです.
お付き合いいただきありがとうございました.