イメージ
仕様
カメラの前に人が通ったら写真を撮影する。撮影した画像は自分のLINEに送信される。
背景
監視カメラを自作するにあたって、色々なセンサを試しました。
・人感センサ HC-SR501
→4つ買ったけど4つとも誤検知ありで使いものにならなかった。
・超音波センサ HC-SR04
→1つ試したけど誤検知ありで、使えないと判断した。
AIで人認識させたときだけ撮影する方法でうまく行ったのでやり方を記録します。
用意するもの 買うもの
ラズベリーパイ4B
ラズパイ用カメラモジュール(USBカメラでも良い
ラズベリーパイセットアップ環境(パソコン、マウス、キーボード、あればOK
ラズベリーパイの備品(マイクロSD、電源アダプタ、モニター接続用のHDMIなど
ラズパイセットアップ
セットアップ
IP固定
samba設定
Gitからプログラムダウンロード
CodeからDownloadしてください。
階層は↓参照
ライブラリインストール
sudo apt update
sudo apt full-upgrade -y
sudo apt install python3-pip python3-opencv libatlas-base-dev libjasper-dev libqtgui4 libqt4-test -y
sudo apt install libopenjp2-7 libtiff5 -y
sudo apt install python3-picamera2
sudo apt install python3-numpy python3-requests
sudo apt update
sudo apt install python3-opencv
sudo apt update
sudo apt install python3-opencv python3-picamera2 -y
git config --global http.postBuffer 524288000
git clone git@github.com:raspberrypi/picamera2.git
sudo apt install alsa-utils
sudo apt install open-jtalk hts-voice-nitech-jp-atr503-m001
プログラム説明
フォルダpicに撮影した写真が入る。
フォルダmodelは人検知用のモデル
フォルダscriptsに監視カメラ実行用のプログラム入っています。
→human_detection.py
写真のアクセストークンと、base_dirと、save_dirはあなたの環境に合わせてください。
↓LINEアクセストーク発行
https://poster.ooo/howto/check-access-token/
実行すると プレビュー画面が出てきて、カメラの前を人がとおると、バウンディングボックスで人が囲まれ、LINEに写真が送信されます。
ラズパイ起動時にプログラムを実行させる
ターミナル起動
cd /etc/systemd/system/
sudo apt update
sudo apt install nano
nanoを使えるようにする
sudo nano test.service
[Unit]
Description=Do test
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/arisa2/human_detection/scripts/human_detection.py
Restart=on-failure
[Install]
WantedBy=multi-user.target
これをtest.serviceに書きます。
Description:起動するコマンドの概要を書く(任意のテキスト)
ExecStart:起動するコマンドを書く(上記の例はデスクトップに置いたtest.pyを実行しています。コマンドも含めて絶対パスにする必要があります)
Ctrl + O 保存
Enter ファイル名決定
Ctrl + X 戻る
起動時に実行する設定
sudo systemctl enable test.service
起動時に実行をやめる設定
cd /etc/systemd/system/
sudo systemctl disable test.service