2024年1月24日水曜日

CPUだけで高速にAI画像を生成できるFastSD CPUをUbuntu22.04にインストールする

FastSD CPUでGPUを使用しなくても高速にAI画像を生成することができます。

インストール方法

Ubuntu22.04にFastSD CPUをインストールするには以下の手順を実行します。
sudo apt-get -y install python3.10-venv

wget https://github.com/rupeshs/fastsdcpu/archive/refs/tags/v1.0.0-beta.23.tar.gz

tar xvfz ./v1.0.0-beta.23.tar.gz

cd fastsdcpu-1.0.0-beta.23/

chmod +x install.sh

※server外からwebuiにアクセスしたい場合は以下のファイルを変更します。
vi src/frontend/webui/ui.py
以下の行を
webui.launch(share=share)
以下に変更
webui.launch(share=share, server_name='0.0.0.0')

./start-webui.sh

ブラウザから以下にアクセスします
http://{ubuntuのIP}:7860

サンプル画像

2024年1月8日月曜日

Ubuntu 22.04にOpenCVをインストールしてネットワークカメラの画像を保存する

Ubuntu 22.04にOpenCVをインストールしてネットワークカメラの画像を保存するには、以下の手順を実行します。

1.pipenvのインストール

sudo apt-get -y install python3-pip python3-distutils python3-dev python3-testresources

python3 -m pip install --user pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.profile

echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.profile

source ~/.profile

2. opencvをインストールした環境を作成

mkdir dev_opencv
※ディレクトリは適宜変更してください
cd dev_opencv

pipenv --python 3

pipenv install opencv-python

pipenv shell

3. RTSPプロトコルで配信されたカメラ画像を保存するプログラムの作成と実行

test.py
import cv2

# RTSPのURLは適宜適宜変更してください
RTSP_URL = 'rtsp://xxx.xxx.xxx.xxx:8554/cam'
cap = cv2.VideoCapture(RTSP_URL, cv2.CAP_FFMPEG)
result, image = cap.read()
if result:
    cv2.imwrite("camera.png", image)

実行
python test.py

2024年1月6日土曜日

Raspberry Pi(Bulseye 32bit)とCamera Module v3でMediaMTXを使用して配信を行う

MediaMTXでカメラで撮影した動画をRTSP配信することができます。

インストール方法

以下のコマンドでMediaMTXをインストールします。
sudo apt-get -y install ffmpeg

※適宜バージョンなどは変更してください
wget https://github.com/bluenviron/mediamtx/releases/download/v1.4.1/mediamtx_v1.4.1_linux_armv7.tar.gz

tar xvfz /mediamtx_v1.4.1_linux_armv7.tar.gz
mediamtx.ymlの後ろの方に以下を追加
paths:
  # example:
  # my_camera:
  #   source: rtsp://my_camera
  cam:
    source: rpiCamera
    rpiCameraWidth: 1024
    rpiCameraHeight: 768
※解像度は適宜変更して下さい

サービス化

サービス化を行うには以下を/etc/systemd/system/に保存します。パスは適宜変更してください。
mediamtx.service
[Unit]
Wants=network.target
[Service]
ExecStart=/opt/mediamtx/mediamtx /opt/mediamtx/mediamtx.yml
Restart=always
[Install]
WantedBy=multi-user.target

※有効化
sudo systemctl enable mediamtx.service

※サービス開始
sudo systemctl start mediamtx.service

再生確認

ffplayコマンドでRTSPの再生を行うことができます。xxx.xxx.xxx.xxxにRaspberry PiのIPアドレスを入れていください。
ffplay -flags low_delay rtsp://xxx.xxx.xxx.xxx:8554/cam