見出し画像

yolo v5で学習モデルを作成

目次


はじめに

皆さんこんにちは。名古屋文理大学3年の長濱充です。旧Twitterでは文理の僕(ぶんりのぼく)という名前で日常的なツイートをしています。

ここでは、今年の稲友祭でアプリ開発プロジェクトが、HOPTER TECH SCHOOLの方々と協力して開催した、リアル脱出ゲーム「教授の無くしものを探せ!」において、僕が担当した画像認識のための学習モデルの作成について、色々と書いていきたいと思います。

ちなみに、僕が一人称として使っている「僕」は一般的に一人称の単語として用いられているもので、自分のことを自分の旧Twitterの名前で呼んでいるわけではないです(笑)

何をしたのか

「B」という文字(画像)を認識するための学習モデルを作成しました。この「B」という文字は脱出ゲームにおいて、ある仕掛けを解くと現れるもので、それを学習モデルを用いて認識することで、脱出ゲームの挑戦者がその仕掛けをクリアしたかどうかを判定しようとしました。

学習モデルというのは、コンピュータに入力をするとその入力に応じて出力をする仕組みのことです。今回の場合は「B」という文字をカメラで撮る(入力する)と仕掛けをクリアしたという判定を出します(出力します)。

この仕組みを作るためには何枚かの画像が必要で、今回は学習用100枚, 検証用10枚, 合計110枚の画像用いて作成しました。

参考にした記事

学習モデルを作成するにあたり以下の記事を参考にしました。とてもわかりやすかったので助かりました。

正直、僕はここに書いてある通りに作業していっただけなので、詳しいことはよくわかってないです(汗)

学習モデルの作成

yolo v5とは

今回学習モデルを作成するためにyolo v5というものを使いましたが、正直自分でもよくわかっていなかったので改めて調べてみました。

すると、以下のようなものだということがわかりました。

YOLOv5 とは YOLO(You Only Look Once)とは処理速度が他のモデルより高速な物体検出アルゴリズムの1つです。 本コンテンツで使用するYOLOv5は、処理速度、精度が高くバランスの良いモデルで、Pythonのオープンソース機械学習ライブラリのPyTorchを使用しています。

https://avinton.com/academy/object-detection-using-yolov5/

処理速度と精度が高いからリアルタイムでの検出が可能なんですね。

リサイズ

今回用意した画像で学習を行うためには、このリサイズという作業が必要だったみたいです。

Ralphaというソフトをダウンロードして、フォルダーごとまとめて変換するだけだったので、比較的楽な作業でした。

リサイズしてる時の画面

ラベリング

作成する学習モデルに、「この文字は『B』だよ。」っていうことを学習させたいので、画像に「B」というラベルを貼っていきます。

これもツールをダウンロードして、範囲を選択して「B」というラベルを貼るだけだったので、難しいことは何もありませんでしたが、110枚の画像を1枚ずつラベリングしないといけなかったので疲れました。

ラベリングしてる時の画面

PyTorchのインストール

前述の「yolo v5とは」にある通り、yolo v5にはPythonのオープンソース機械学習ライブラリであるPyTorchが必要だったので、PyTorchをインストールしました。

やることは「インストールをするだけ」だったのですが、実はここが一番苦戦したところで、何度インストールしようとしてもエラーが出ていました。それでもPyTorchをインストールする以外に道がなかったので、調べながら色々試していきました。そうしていたら、いつの間にかインストールできてました。

環境構築って大変なんだなと思いつつも、自分の力で困難を乗り越えることができて嬉しかったです。

でも、攻略法がわからないボスをゴリ押しで倒したみたいな感じなので、もう一度やれって言われたらできるかわかりません(笑)

記事にあるコードを適宜書き換えて実行

ここまできたら、あとは参考記事に書いてあったコードを実行していくだけなのですが、そのままではうまくいかない部分があったので、そこは書き換えて実行していきました。また、GoogleColaboratory上で実行していると途中でエラーが出てしまっていたので、最終的にはコマンドプロンプトで実行していました。

この作業で一番難しいところは、実行が終わるまでに10時間ほどかかるので、途中で何かあった場合は、実行し直さなければいけませんでした。実行中は電源が切れないか心配でしたが、特に何もできることがないので充電器を挿した状態で放置していました。

実行が終わり学習モデルができた時の達成感はすごかったです。

最後に

ここまであえて触れてこなかったのですが、この学習モデルを作成するためのほぼ全ての工程において、4年生の山田先輩にサポートしていただいていました。先輩がいなかったら、稲友祭までに学習モデルを作成することはできなかったと思います。もちろん山田先輩だけでなく、稲友祭でリアル脱出ゲームを開催するためには、他のアプリ開発プロジェクトのメンバーとHOPTER TECH SCHOOLの方々の力も欠かせないものであったと思います。だから、僕は皆さんに感謝しています。そして、これからもアプリ開発プロジェクトのメンバーとして、様々なことに挑戦していきたいと思います。

ご精読ありがとうございました。

なんかもうちょっと書きたい

本当はもっと楽しい記事書きたかったのに真面目に書いちゃったな
3年だから実はHOPTERの人たちとほとんど同い年だけど今さらタメ口使いにくいまあ敬語でもいいか
来年度のアプリ開発って、プログラマ枠はゆちゃんとか服部くんがいるから、僕は川上先輩みたいな感じを目指したほうがよかったり…しないか

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