roboflowブログ

 roboflow製品情報
roboflowでYOLOv5モデルをデプロイする方法
roboflowでYOLOv5モデルをデプロイする方法
今月初め、 Roboflow でカスタム YOLOv8 モデルをデプロイして共有できることを発表しました。

カスタム YOLOv5 ウェイトを Roboflow にアップロードできるモデル展開機能の拡張機能をリリースできることを嬉しく思います。数行のコードで、トレーニング済みの YOLOv5 モデルから重みをアップロードし、無限にスケーラブルで堅牢なクラウド インフラストラクチャにモデルをデプロイできます。モデルは数分で使用できるようになります。

SDK、チュートリアル、オープン ソース ソフトウェアをすぐに活用して、Web ブラウザーでのモデルの使用から NVIDIA Jetson を使用したエッジでの作業まで、さまざまなデバイスにモデルを展開します。

このガイドでは、YOLOv5 ウェイトを Roboflow にデプロイする方法について説明します。それでは早速始めましょう!
YOLOv5 ウェイトのエクスポートとアップロード
モデルの重みを Roboflow にアップロードするには、 deploy() 関数を使用できます。この関数は、指定された重みを Roboflow クラウドに送信し、モデルを展開して、必要な展開デバイス (Luxonis OAK、Web ブラウザー、NVIDIA Jetson など) ですぐに使用できるようにします。

モデルの重みをアップロードするには、次のコード行を使用します。
project.version(dataset.version).deploy(model_type="yolov8", model_path=f"{HOME}/runs/detect/train/")
「dataset.version」をデータセットに関連付けられたバージョン番号に置き換え、HOME 値を作業中のホーム ディレクトリに置き換える必要があります。上記のノートブックに従っている場合、これらの値は既に設定されています。

このコード行を実行すると、Roboflow ダッシュボードが更新され、モデルの重みが読み込まれていることが示されます。しばらくすると、モデル ページが変更され、トレーニング済みのモデルが利用可能になったことが示されます。

「YOLOv5 MODEL UPLOAD」という文が表示されます。これは、アップロードしたカスタム ウェイトをモデルが使用していることを示しています。
roboflowでYOLOv5モデルをデプロイする方法
既にウェイトが用意されていて、前述のノートブックなしで作業している場合は、ウェイトを展開するために使用できる完全なコード スニペットを次に示します。
from roboflow import Roboflow

home = "/path/to/project/folder"

rf = Roboflow(api_key=os.environ["ROBOFLOW_API_KEY"])
project = rf.workspace().project("PROJECT_ID")

project.version(PROJECT_VERSION).deploy(model_type="yolov5", model_path=f"/{home}/yolov5/runs/train/")
このコード スニペットを使用するには、次のことを行う必要があります。
  1. 「home」変数の値を、作業中のルート ディレクトリと等しくなるように設定します。
  2. Roboflow API キーをROBOFLOW_API_KEYという環境変数にエクスポートします。
  3. 「PROJECT_ID」を、Roboflow ダッシュボードでプロジェクトに関連付けられた ID に置き換えます。これは、モデル ページの [トレーニング結果] セクションの下にあるテキストをコピーすることで取得できます。このテキストは、「construction-counter-xyzz」などの文字列になります。
  4. 「 PROJECT_VERSION」をデータセットのバージョン番号に置き換えます。これは、モデル ページの [詳細] セクションまで下にスクロールし、バージョン ID をコピーすることで見つけることができます。Python スクリプトでは、プロジェクトのバージョンは整数である必要があります。
YOLOv5 を本番環境にデプロイする
これで、トレーニング済みのモデルをプロジェクトで使用する準備が整いました! モデルを使用できる方法はたくさんあります。Roboflow ダッシュボードのプロジェクトのサイドバーにあるリンクを使用して、[デプロイ] タブに移動します。このページには、コード スニペットと参考資料を添えて、プロジェクトを展開するさまざまな方法がリストされています。

写真やビデオをアップロードするか、Web カメラのストリーミングへのアクセスを許可することで、ブラウザーでモデルを試すことができます。

アップロードされた画像で推論を実行するモデルの例を次に示します。
roboflowでYOLOv5モデルをデプロイする方法
Roboflow でプロジェクトを作成する
このチュートリアルでは、写真やビデオで建設機械と安全ガイダンスの違反を特定するモデルをトレーニングします。このモデルをトレーニングする前に、画像データを収集し、必要なクラスで画像に注釈を付ける必要があります。

プロジェクトの作成プロセスをスピードアップするために、Roboflow Universeでオープンソースのデータセットを使用します。Universe は、コンピューター ビジョン プロジェクトで使用できる 110,000 を超える画像データセットのオープン リポジトリです。建設機械の画像と安全違反に注釈を付けた「建設現場の安全」というプロジェクトをすでに作成しています。

データセットからの注釈付き画像の例を次に示します。
roboflowでYOLOv5モデルをデプロイする方法
データセットを使用するには、まず Roboflow アカウントが必要です。無料で作成してから、建設現場の安全プロジェクト ページにアクセスしてください。[このデータセットをダウンロード] ボタンをクリックし、圧縮されたバージョンのデータセットをダウンロードすることを選択します。
コンピューターでデータセットを解凍し、Roboflow ダッシュボードに移動します。これを行うには、ナビゲーション バーの [プロジェクト] をクリックします。ボタンをクリックして新しいプロジェクトを作成し、プロジェクトに関する情報を入力します。この場合、プロジェクトを「Construction Safety」と呼びます。
roboflowでYOLOv5モデルをデプロイする方法
プロジェクトを作成したら、データをアップロードできます。ユニバース (または独自のカスタム データ) からダウンロードした解凍済みフォルダーを、Roboflow ダッシュボードにドラッグします。

データのアップロードにかかる時間は、アップロードするデータの量によって異なります。アップロードする画像や注釈が多いほど、処理に時間がかかります。
ファイルが処理されたら、[保存して続行] ボタンをクリックして、画像と注釈を保存します。
roboflowでYOLOv5モデルをデプロイする方法
画像に注釈が付けられていない場合は、ダッシュボードのサイドバーにある「注釈」機能を使用して画像に注釈を付けます。効果的に画像に注釈を付けるために必要な知識を提供する、画像注釈のベスト プラクティスに関するガイドがあります。

画像に注釈を付けたら、サイドバーの [生成] をクリックして新しいプロジェクト バージョンを作成します。この段階で、画像拡張と前処理ステップを追加できます。

プロジェクトに適した手順については、画像の増強と前処理に関するガイドをご覧ください。
roboflowでYOLOv5モデルをデプロイする方法
データセットのバージョンを構成したら、[生成] をクリックします。これにより、モデルの重みをアップロードできるデータのスナップショットが作成されます。
roboflowでYOLOv5モデルをデプロイする方法
YOLOv5 モデルのトレーニング
データセットのバージョンを作成したので、YOLOv5 モデルのトレーニングに取りかかることができます。私たちのチームは、YOLOv5 モデルをトレーニングする方法を説明するオープンソースの Google Colab ノートブックを用意しました。このノートブックには、ノートブックを活用するための解説と詳細なガイダンスを含むチュートリアルが付属しています。

トレーニング済みのモデルがまだない場合は、ノートブックに移動して、自分の Google アカウントにコピーを作成します。
次に、ノートブックに記載されている手順に従って、注釈付きデータを取得し、モデルを構成して、トレーニングを開始します。以下のビデオ チュートリアルでは、YOLOv5 ノートブックを使用してカスタム モデルをトレーニングする方法について説明します。
YOLOv5 ノートブックでは、モデルの構成を記述する YAML スクリプトを定義します。必要に応じてモデルの構成を調整すると、重みが Roboflow プラットフォームで機能します。
roboflowでYOLOv5モデルをデプロイする方法
ノートブックですべてのセルを実行し、重みのセットを取得したら、それらを Roboflow にアップロードして、モデルのバージョンをデプロイできます。
結論
YOLOv5 デプロイ機能の開始により、最小限の手間でカスタム YOLOv5 モデルをクラウドにデプロイできるようになりました。数行の Python コードで、重みをインフラストラクチャにアップロードし、推論を実行できるホストされた API を使用できます。
アノテーション・AI学習データ(教師データ)作成・AIモデル構築ツール「roboflow」

お問い合せ

お問い合せはこちら

AI活用の機械学習を自動化するツール「roboflow」についてのご質問・ご相談はこちら

お電話でのお問い合せも受け付けています。お気軽にご相談ください。

03-5821-9761