見出し画像

ドローンで撮影した画像からA4用紙を見つけてみよう!(YOLOによる物体検出)

※はじめに

大学の講義の一貫として行った内容をメモ程度に残しておきます.
labelimgによる教師データの作成や,YOLOの解説や学習については他の方を参照してください.

YOLOでの物体検出

GPUの使用状況

まずはGoogleのGPUを使えるようにします.下の「ランタイムのタイプを変更」から「ハードウェア アクセラレータ」を「GPU」に変更して,保存してください.

ランタイムの変更

今回は既にドローンで撮影した画像をもとに,GoogleColableを用いて検出を行っていきます.

用いるデータは授業の際に配布いたします.解凍後,ご自身のGoolgeDriveの任意の場所にアップロードし,開いてください.

!nvidia-smi
!nvidia-smi -L

1行目は使うGPUを確認しています.これを実行(Shiftキー + Enter)してみて下さい.すると以下のような結果が出てくると思いますが特に気にせず眺めるだけにしてください.詳しい内容については,quiverさんの「nvidia-smiでNVIDIA GPU使用状況をモニタリングする」で確認してみて下さい.

GPU使用状況をモニタリングする

GoogleDriveのマウント

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

import cv2
import numpy as np
from google.colab.patches import cv2_imshow

次に2行目を実行してください.このコードは,GoogleDriveのマウントや使うメソッドのインポートを行っています.許可の画面が出ると思うので,指示に従ってご自身のアカウントで許可を行ってください.

YOLOのインストール

%cd /content/drive/MyDrive
%mkdir -p A4paperDetection
%cd /content/drive/MyDrive/A4paperDetection
!git clone https://github.com/ultralytics/yolov5  # clone
%cd yolov5
%pip install -qr requirements.txt  # install

import torch
import utils
display = utils.notebook_init()  # checks

次に3行目を実行してみて下さい.するとYOLOのモデルのダウンロードが始まり,GoogleDriveのマイドライブ直下に,「A4paperDetection」というフォルダが作られると思います.そして,その中に「yolov5」というフォルダも作られていると思います.

A4paperDetection」フォルダの中に,学習済みモデル「best.pt」をアップロードしてください.

フォルダ作成と推論実行

4行目は実際に学習を行う時のコードです.今回は時間の関係以上,学習は行いませんので無視してください.

%mkdir -p /content/drive/MyDrive/A4paperDetection/image
%mkdir -p /content/drive/MyDrive/A4paperDetection/output

5行目では「A4paperDetection」直下に,「image」と「output」の2つのフォルダを作成しています.

そして,「image」フォルダにドローンで撮影した画像をアップロードして,以下のコードを実行してみましょう!

%cd /content/drive/MyDrive/A4paperDetection/yolov5
!python detect.py --source /content/drive/MyDrive/A4paperDetection/image/ --weights /content/drive/MyDrive/A4paperDetection/best.pt --img 1280 --conf 0.3 --name /content/drive/MyDrive/A4paperDetection/output/ --exist-ok

すると推論が始まります.1枚当たり0.1秒前後で実行できると思います.YOLOではtifファイルでも推論を行うことが出来ます.
うまく検出できているのがわかりますね!

この記事が気に入ったらサポートをしてみませんか?