やること
洗濯槽内に混入したティッシュを機械学習で検出するシリーズ、前回は学習を行いました。
今回は学習済みモデルを使ってティッシュのリアルタイム検出を行います。
リアルタイム検出
学習済みモデルのうち「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
@Umamusume22のマイページ - Qiita
ロボット開発の仕事をやっています.担当はソフトウェア開発です.
Iotやプログラミングが好きです.
noteもやっています!:
好きなウマ娘:キタサンブラック
note
Umamusume22|note
メーカー勤務のロボットエンジニア.ソフトウェア開発担当.短大から国公立大学に編入した珍しい経歴の持ち主.情報工学専攻.ROS,ラズパイ,AI,画像処理などのスキルを所有.元ロボコニストで世界大会出場経験あり.普段はPythonとC+を活用.