としおの読書生活

田舎に住む社会人の読書記録を綴ります。 主に小説や新書の内容紹介と感想を書きます。 読書の他にもワイン、紅茶、パソコン関係などの趣味を詰め込んだブログにしたいです。

カテゴリ: PC

本記事ではVSCodeでターミナル起動時に自動的にconda activateを行う方法を紹介していきます。




ターミナル起動時にconda activateさせる


VSCodeを起動して左下にある歯車アイコン→設定の順でクリックしていきます。

キャプチャ

キャプチャ2

設定画面が開けたらユーザの検索ボックスにterminal.integrated.profiles.windowsと入力して検索を行います。

見つかったらsetting.jsonで編集をクリックします。

キャプチャ

Command Promptのargsを以下のように設定してください。

Anaconda3までのパスは各自の環境によって合わせましょう。

"terminal.integrated.profiles.windows": {

        "PowerShell": {
            "source""PowerShell",
            "icon""terminal-powershell",
        },
        "Command Prompt": {
            "path": [
                "${env:windir}\\Sysnative\\cmd.exe",
                "${env:windir}\\System32\\cmd.exe"
            ],
            "args": [
                "/K",
                "~\\Anaconda3\\Scripts\\activate.bat",
                "\\Anaconda3"
            ],
            "icon""terminal-cmd"
        },
        "Git Bash": {
            "source""Git Bash"
        }
    },

書き換えれたら、settings.jsonを保存してVSCodeを再起動します。

これでPythonコードを開いている状態で新しいターミナルを起動すれば自動的にActivateされるようになります。





livedoorブログにソースコードを載せるときに途中でソースコードが見切れてしまうことがあります。

そこで今回はpreタグにoverflowプロパティを設定して、ソースコードが見切れた時にスクロールバーを表示させるようにしていきます。

livedoorブログのマイページから「プログ設定」を選択します。

キャプチャ

デザイン/ブログパーツ設定から「PC」を選択します。

キャプチャ

カスタマイズを選択します。

キャプチャ

/* 記事本文
----------------------------------------------- */

というコメントがある部分の下に以下のコードを追加します。

.article-body-inner  blockquote
, .article-body-inner  pre {
    white-space: nowrap;
    overflow: auto;
    background-color: #303030;
    padding: 5px 15px;
    margin: 5px 0;
    color: #595d68;
}

このコードは以下の記事を参考に作成したのですが、white-space: nowrap;という記述が抜けているとスクロールバーが正しく表示されないようです。



cssが記述できたら保存をクリックしてください。

これで設定完了です。

「<pre><code>ソースコード</code></pre>」といった感じに記述すると以下のようにソースコードが見切れているときにスクロールバーが表示されるようになります。

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa


Raspberry Piを使って定点カメラを作ってみました。

コマンドで定点カメラを使っても良かったのですが今後Pythonを使って色々やっていきたいと思っていたので今回はPythonを使って定点カメラを作っています。

カメラモジュールは『Raspberry Pi カメラモジュール v2』を使用しています。





Pythonで写真を撮る


ラズパイでPythonを使って写真を撮るのにはPiCameraというライブラリを使用します。

以下のコードでは5秒間カメラのプレビュー画面が表示されます。

from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.start_preview()
sleep(5)
camera.stop_preview()

実際に写真を撮るのにはPiCamera().caputureメソッドをコールします

また、とりたい写真のサイズをPiCamera().resolutionメソッドで設定することができます。

以下のコードの場合、プログラム起動して5秒後に写真が撮影されデスクトップにimage.pngという1920×1080のファイルが保存されます。

from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.resolution = (19201080)
camera.start_preview()
sleep(5)
camera.capture("/home/pi/Desktop/image.png")
camera.stop_preview()






定点カメラを作成する


写真の撮り方が分かったところで定点カメラを作成していきましょう。

今回は、5分に1回写真を撮るようにしていきます。

from picamera import PiCamera
from time import sleep
import datetime

camera = PiCamera()
camera.resolution = (19201080)
camera.start_preview()

while(True):
    sleep(300# 300秒待機
    camera.capture("/home/pi/Desktop/Image.png")

上記のコードで5分に1回写真を撮るという要件は満たせたのですが、このままだと同じファイルに写真が上書きして保存されてしまいます。

そこでファイル名をユニークな名前にするために今回は、ファイル名に現在時刻を付けていきます。

sleepの後を以下のように改造してください。

now = datetime.datetime.now()
filename = '/home/pi/Desktop/Image/' + now.strftime('%Y%m%d_%H%M%S') + '.png'
camera.capture(filename)

これで写真を撮るたびに別のファイル名がつくようになりました。

定点カメラの完成です。



まとめ


今回はラズパイ + Pythonで簡単な定点カメラを作ってみました。

写真を撮る頻度など対象によって変えていったら面白そうですね。





Raspberry Piで定点カメラを作りたいと思いAmazonで『Raspberry Pi Camera V2』を買いました。

今回はこちらのカメラでコマンドを使って写真と動画を撮る方法を紹介していきます。


『Raspberry Pi Camera V2』のスペック


『Raspberry Pi Camera V2』のスペックは以下の通りです。

Raspberry Pi Camera Module V2
センサーソニー製IMX219PQ(1/4inch)
ピクセルサイズ1.12μm
画素数有効808万画素
静止画最大3280×2464ピクセル
動画1080p 60fps/720p 180fps
サイズ23.86 × 25 × 9 mm

4766円で購入できる小型カメラと考えればかなりスペックが高いです。

後ほどV2で撮った写真がどんなものなのかも紹介していきます。



カメラモジュールを接続する


写真や動画を撮る前にRaspberry Piにカメラモジュールを取り付けていきます。

今回はRaspberry Pi 4 Module Bを使っていきますが、他のモデルでも接続の方法などは基本的に同じです。

カメラモジュールは以下の画像の赤丸の部分に取り付けていきます。

PXL_20210907_133814272

カメラモジュールを取り付ける前に黒い部分を持ち上げてください。

カメラモジュールは以下の向きで取り付けます。

PXL_20210907_134414501

カメラモジュールが起動できたらRaspberry Piを起動して、カメラモジュールを認識させます。

Raspberry Piの設定画面を開き、

Screenshot_20210907_225708

カメラの設定を有効にして、OKをクリックします。

Screenshot_20210907_230138

その後再起動を求められるので再起動してください。



写真を撮る


カメラを取り付けられたところで写真を撮っていきましょう。

写真は以下のコマンドで撮ることができます。

raspistill -o ファイル名

ちなみにとれた画像は以下です。

test

カメラ固定せずに撮影したわりにはなかなかきれいです。

raspistillコマンドで個人的に覚えていたら便利だと思うコマンドを以下にのせておきます。

raspistill
-?ヘルプの表示
-w画像の幅の指定
-h画像の高さの指定
-qjpeg品質を設定(0 - 100)
-o出力ファイル名
-t撮影までの時間(ミリ秒)
-dデモモード
-eエンコード方式指定(jpg, bmp, gif, png)
-tlこま撮り(ミリ秒で指定した感覚で連続撮影)






動画を撮る


写真がとれたところで次に動画を撮影していきます。

動画は以下のコマンドで撮ることができます。

raspivid -o ファイル名 -t 撮影時間

ライブドアブログの仕様上撮影した動画を載せられないのですが、動画の方も思ったよりもきれいに撮れていて個人的には満足しています。

raspividコマンドで個人的に覚えていたら便利だと思うコマンドを以下にのせておきます。

raspivid
-?ヘルプの表示
-t撮影時間の指定(ミリ秒)
-fpsフレームレート
-kEnterキーでキャプチャと一時停止を切り替え
-o出力ファイル名
cdコーデック指定(H264, MJPEG)
-w動画の幅の指定
-h動画の高さの指定




まとめ


『Raspberry Pi カメラモジュール v2』の基本的な使い方についてまとめていきました。

次はPythonからカメラモジュールを使用する方法など調べていきたいです。






強化学習の勉強をしたいと思い強化学習学習がpythonで勉強できるようなツールを探していると『OpenAI Gym』というものを見つけたのでインストールしてみることにしました。

ただ、ATARIの環境構築をする際に手間取ったので本記事ではWindows10でOpenAI Gymをインストールする方法をまとめました。


動作環境


本記事における動作環境は下記の通りになります。
  • Windows10 Home
  • anaconda
  • Python 3.6.7
anacondaをまだインストールしていない人は下記の記事を参考にしてください。




OpenAI Gymのインストール

1. 仮想環境の作成


Anacondaでは "conda create -n 仮想環境の名前 python=x.x" というコマンドを使って仮想環境を作成することができます。

Python3.6でOpenAIという名前の仮想環境を作る場合は下記のコマンドを入力してください。

conda create -n OpenAI python=3.6


2. 仮想環境をActivateする


"activate 仮想環境の名前" で仮想環境をActivateすることができます。

activate OpenAI


3. gymのインストール


gymは下記のコマンドでインストールすることができます。

pip install gym


4. gymの動作確認


pipでgymを無事インストールすることができたら動作確認をしましょう。動作確認は下記のコードで行うことができます。

import gym

env = gym.make('CartPole-v0'# select game
observation = env.reset() # initialize

for i in range(100):
  env.render()
  observationrewarddoneinfo = env.step(1# go right
env.env.close()

上記のコードが実行できればCartPoleのゲーム画面が現れて台座が右に行き続けます。

本当はポールを倒さないようにするゲームですが今回はテストプログラムのためゲームができているかどうかは気にしない方向で。

無題






ATARIの環境構築


gymが無事インストールできたらここからはgymでATARIのゲーム(インベーダーゲームなど)をできるようにしていきます。

インストールの方法を調べているとpipで簡単にインストールできるという記述が多々あったのですが"pip install gym[atari]" "pip install gym[all]" などのコマンドを使ってもエラーがでてしまいインストールすることができませんでした。

エラー内容はMicrosoft Visual C++ 14.0が必要、cmakeがインストールされていない、zlibが必要などだったのですがそれらすべてをインストールしても上手くいかなかったため色々と調べていると下記のページがでてきました。



このページによるとATARIの環境構築はコマンド一つだけでできcmakeなども必要がないということだったので実際に書かれている通りのコマンドを入力すると環境構築することができました。

そのコマンドは下記になります。

pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py

また次のコマンドでもインストールできるみたいです。

pip install git+https://github.com/Kojoley/atari-py.git

インストールすることができたら動作確認をしてみましょう。動作確認は下記のコードで行うことができます。

import gym

env = gym.make('SpaceInvaders-v0'# sellect game
env.reset() # initialize
for _ in range(1000):
    env.step(env.action_space.sample())
    env.render('human')
env.close()

インベーダー



最後に


無事Gymの環境構築を行うことができたので今後、強化学習のプログラムを作成したときはそちらの方も記事にしていこうと思います。



↑このページのトップヘ