検索:
Thunderbird メールを外付けHDDにバックアップする方法

Thundbird にメールがたまってしまうと、PCのドライブ容量を圧迫してしまうため、メールを外付けHDDに退避して、必要な時にだけ読み出したくなります。ここでは ImportExportTools NG というアドインでThunderbird のメールを外付けHDDにバックアップする方法を紹介します。

■ 外付けHDDへのバックアップ方法

1.「ツール」メニューの「アドオンとテーマ」から、ImportExportTools NGを検索して、「Thunderbird」をクリックする。

2.バックアップしたいフォルダ上で右クリックし、ImportExportTools NG から「フォルダ内のすべてのメッセージをエクスポート」を選択。「EML」形式「メッセージとHTMLインデックス」を選択。

以上で、選択した外付けHDDフォルダ内にバックアップデータが保存されます。

■ 外付けHDDからの復元方法

1.復元したいフォルダ上で右クリックし、ImportExportTools NG から「EMLメッセージのインポート」を選択。「フォルダ内のすべてのEMLメッセージ」を選択し、復元したいフォルダを選択すればメッセージがフォルダごと復元されます。

終了したプロジェクトなどをフォルダごと外付けHDDバックアップし、Thunderbird 上からは削除してしまい、見返す必要が生じた際にバックアップデータを外付けHDDからインポートするなどの運用がおススメです。

Pyserialを使ってシリアル通信

Pythonでシリアル通信を実装する場合、Pyserialが便利でしたので、簡単に紹介します。


最初にPyserialをインストールします。

pip install pyserial

COMポートをデバイスマネージャーで確認して、シリアル通信のインスタンスを定義します。

serial.Serialの1つ目の引数がポート番号、2つ目がボーレート、3つ目がタイムアウトの設定です。

import serial

ser = serial.Serial('COM9', 307200, timeout=1)

.writeコマンドを使ってメッセージを送信します。

#任意のメッセージを記述
senddata = [0x55, 0x0D, 0x0A] 

#送信
send_binary = bytes(senddata)
ser.write(send_binary)

受信は.readコマンドを用います。

#受信
res = ser.read(4)
print(res)

readのカッコ内の数で受信するByte数を設定できます。

.readline () というコマンドを使えば、改行コードまでを受信してくれますが、今回試した機器は改行コードを返さない仕様だったため readline ではうまくいきませんでした。

硬貨認識AI ② ~YOLOを使って硬貨を認識する~

前回はCVATを使ったアノテーションを紹介しました。
今回は実際にYOLOを使って硬貨の認識までを実施してみます。

ここではGoogle Colaboratory のGPUを使って学習してみたいと思います。
まずはGoogle Colaboratoryのサイトに行き、右上の「Open Colab」をクリックし、その後 Googleアカウントでログインします。

① ノートブックの新規作成、Runtimeの変更

「ファイル」から「ノートブックを新規作成」をクリックします。

GPUを用いて学習を行いたいため、「ランタイム」から「ランタイムタイプを変更」をクリックし、 T4 GPUを選択します。

② 必要なライブラリのインストール

pip install コマンドを使って必要なライブラリをインストールします。

!pip install ultralytics

③ Googleドライブにアクセスするため、マウント処理を実行。

from google.colab import drive
drive.mount('/content/drive')

④ 学習データ、テストデータをフォルダに格納。

「train」「val」フォルダを用意して画像ファイルとアノテーションファイルを同ファイル名(ここでは.jpgファイルと.txtファイル)にして格納します。

アノテーションデータのCOCO 1.0 -> YOLO形式への変換は、こちらを参考にいたしました。

⑤ 学習の実行

下記のコマンドで学習を実行することができます。
学習回数(epochs=)やバッチサイズ(batch=)なども引数として変更可能です。

!yolo task=segment mode=train model=yolov8n-seg.pt data=/content/drive/MyDrive/COIN/YOLO/coin_config.yaml epochs=400 imgsz=640 batch=2 project=/content/drive/MyDrive/COIN/YOLO/output name=coin_detection

ここで指定している「coin_config.yami」内では、下記のようにフォルダパスとラベルの種類を指定しています。

train: /content/drive/MyDrive/ISSEI/COIN/train # train images (relative to 'path') 128 images
val: /content/drive/MyDrive/ISSEI/COIN/val # val images (relative to 'path') 128 images
# test:  # test images (optional)

# Classes
nc: 5  # number of classes
names: ['1yen','5yen','10yen','50yen','100yen']

⑥ 学習結果の確認。

学習した結果が⑤で指定したフォルダ(/content/drive/MyDrive/COIN/YOLO/output)に格納されるので確認してみます。

results.png を確認すると下記のように学習回数(epochs)とロス関数の推移やRecall(再現性), Precision(適合率) などの関係を確認することができます。

また、「train_batch*.jpg」で、実際のYOLOでの認識結果を確認することができます。

ちゃんとコインを種類ごとに識別できていることが確認できました!