やること
洗濯槽内に混入したティッシュを機械学習で検出するシリーズ、前回は学習を行いました。
今回は学習済みモデルを使ってティッシュのリアルタイム検出を行います。
リアルタイム検出
学習済みモデルのうち「last.pt」をローカルにダウンロードしました。Pythonでカメラキャプチャと検出の無限ループを回します。
import cv2
from ultralytics import YOLO
#学習済みモデル
model = YOLO('last.pt')
#カメラ起動
cap = cv2.VideoCapture(0)
if not cap.isOpened():
    print("Don't open camera")
    exit()
while True:
    #キャプチャ
    ret, frame = cap.read()
    if not ret:
        print("Don't get frame. exit")
        break
    #モデルで検出
    result = model(frame)
    #結果の画像を表示
    img_annotated = result[0].plot()
    cv2.imshow('Camera', img_annotated)
    #qを押すと終了
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()キーボードのqを押すと終了します。ティッシュをPCのカメラ前でプラプラさせるとこのように検出されました。

次は洗濯槽内に置いたティッシュの検出ができるか試します。強引ですがPCをひっくり返して内蔵カメラを洗濯槽内に向けました。

PCをぶつけまくってそれどころではないですが一応検出できているようです!(USBカメラ買います泣)
さいごに
一旦ここで区切りたいと思います。洗濯槽内に混入しているティッシュをYOLOv8で検出できそうなことが分かりました。課題としてはカメラがぶれないように設置することと、洗濯槽内の暗さをどう克服するかです。
これからRaspberry Piと赤外線カメラを購入し、洗濯槽内の暗い環境に対応できるように学習をやり直す予定です。ポケットに入っているティッシュの検出を目指します。
応援はリツイートなどを実行する形でお願いします!また、Qiitaとnoteもやっていますのでフォローお願いします!
Qiita

@Suzuka22のマイページ - Qiita
ロボット開発の仕事をやっています.担当はソフトウェア開発です.Iotやプログラミングが好きです.プライベートではアニメを題材に記事を書いていますアプリ開発もやっています好きなウマ娘:キタサンブラック
note

Suzuka22|note
アプリ開発のプロ。ココナラでアプリ開発サポート出品中。本業はUnity×WPFでロボットシミュレーターを開発。メーカー勤務。ROS/AIの学習歴5年。開発した予約投稿アプリの販売実績あり。Python...

