コンピューター ビジョンの分野では、You Only Look Once (YOLO) アルゴリズムが画期的なアルゴリズムとして登場しました。非常に高い精度でリアルタイムに物体を検出できるため、監視や自律走行車から画像やビデオの分析に至るまで、さまざまなアプリケーションで強力なツールとなります。しかし、YOLO の真の可能性は、実際の現実世界のシステムにシームレスに統合されたときにのみ実現されます。ここで、Python で API を構築するための最新の高速 Web フレームワークである FastAPI が登場し、YOLO モデルの展開におけるパートナーとして簡単に利用できるようになります。 YOLO モデルを Web アプリケーションにデプロイし、ユーザーが簡単な API 呼び出しでリアルタイムのオブジェクト検出を実行できるようになることを想像してみてください。スマート セキュリティ システム、野生生物監視アプリケーション、小売分析プラットフォームを構築する場合でも、このガイドでは、開発環境のセットアップから FastAPI を使用して完全に機能する YOLO モデルの展開までのプロセスを順を追って説明します。 このチュートリアルを詳しく読み進めていくと、YOLO の魔法、つまり瞬く間に画像やビデオ内のオブジェクトを識別できる仕組みがわかります。また、この強力なアルゴリズムを、スピードとシンプルさを重視する開発者向けに設計されたフレームワークである FastAPI と統合する技術も習得します。この旅の終わりまでに、クラウド、ローカル サーバー、さらにはエッジ デバイスに展開できる独自のリアルタイム オブジェクト検出 API を作成するためのツールと知識が身につきます。 したがって、経験豊富なコンピューター ビジョン エンジニアであっても、YOLO と FastAPI の世界を探求したい好奇心旺盛な開発者であっても、準備を整えてください。私たちは、YOLO モデルを段階的に展開する専門的な旅を始めます。物体検出の夢を現実にする準備はできていますか?さあ始めましょう! パート1: 環境の設定FastAPI を使用して YOLO モデルを展開する世界に飛び込む前に、開発環境が正しく設定されていることを確認する必要があります。このセクションでは、プロセスを段階的に説明します。 1. Pythonをインストールするまず、システムに Python がインストールされていることを確認します。 Python の最新バージョンは、公式 Web サイト (https://www.python.org/downloads/) からダウンロードするか、Anaconda などのパッケージ マネージャーを使用してダウンロードできます。 Python がインストールされているかどうかを確認するには、ターミナルまたはコマンド プロンプトを開いて次のコマンドを実行します。 2. 仮想環境を作成するプロジェクトの依存関係を分離しておくには、仮想環境を作成するのが最適です。こうすることで、異なるプロジェクト間の競合を回避できます。 Python の組み込み venv モジュールを使用して仮想環境を作成しましょう。ターミナルを開き、プロジェクトのルート ディレクトリに移動します。次のコマンドを実行します。 ターミナルプロンプトが変化し、仮想環境がアクティブであることが示されます。 注意: 'myenv' を、希望する仮想環境名に置き換えることを忘れないでください。 3. 依存関係をインストールする仮想環境で作業するようになったので、必要な依存関係をインストールします。これらには、FastAPI、Uvicorn (FastAPI アプリケーションを提供するためのツール)、YOLO 関連ライブラリ、およびプロジェクトに必要なその他のパッケージが含まれます。 pip を使用してこれらの依存関係をインストールします。 4. YOLOモデルの設定YOLO を使用するには、ultralytics から yolov8 ライブラリをインストールする必要があります。 開発環境がセットアップされたので、YOLO と FastAPI のエキサイティングな世界に飛び込む準備が整いました。次のセクションでは、YOLO のパワーを活用してリアルタイムのオブジェクト検出を行う方法と、それを提供する FastAPI アプリケーションを構築する方法について説明します。 パート2: FastAPIアプリケーションの作成さあ、モデルをデプロイするための FastAPI アプリケーションの構築を始めましょう。このセクションでは、オブジェクト検出 API の基本を設定するプロセスについて説明します。 1. プロジェクト構造まず、プロジェクト構造を整理することから始めましょう。 FastAPI プロジェクト用のディレクトリを作成し、そこに移動します。 このプロジェクト ディレクトリ内に、FastAPI アプリケーションのさまざまなコンポーネント用のファイルとフォルダーを作成します。 2. FastAPIアプリケーションを初期化するFastAPI を使用すると、Web アプリケーションの構築が非常に簡単になります。 FastAPI アプリケーション用の Python スクリプト (通常は main.py という名前) を作成します。 それでは、コードを書き始めましょう。お気に入りのテキスト エディターまたは IDE で main.py を開き、FastAPI をインポートします。これで、FastAPI アプリケーションが初期化されます。このアプリケーションは、オブジェクト検出 API の基盤として機能します。 3. 最初のルートを作成するFastAPI では、Python 関数を使用してルートを定義します。シンプルな「Hello, World!」ルートから始めましょう。 main.py に次のコードを追加します。 このコードは、ルート URL ("/") への GET リクエストに応答し、"message" フィールドを含む JSON 応答を返すルートを定義します。 4. FastAPIアプリケーションをローカルで実行するここで、FastAPI アプリケーションをローカルでテストします。ターミナルを開き、main.py を含むプロジェクト ディレクトリに移動します。まだ行っていない場合は、仮想環境をアクティブ化します。 次に、Uvicorn を使用して FastAPI アプリケーションを実行します。 このコマンドは、Uvicorn に main.py モジュールからアプリ オブジェクトを実行し、開発時に自動リロードを有効にするように指示します。 FastAPI アプリケーションがローカルで実行されていることを示す出力が表示されます。デフォルトでは http://127.0.0.1:8000 で実行されます。 5. Hello WorldルートにアクセスするWeb ブラウザを開くか、curl などのツールを使用して「Hello, World!」ルートにアクセスします。 「Hello, World!」メッセージを含む JSON 応答が返されるはずです。 FastAPI アプリケーションを実行したら、次は、オブジェクト検出用の YOLOv8 モデルを統合するという興味深い部分に進むことができます。次のセクションでは、YOLOv8 モデルを準備し、それを FastAPI とシームレスに統合する方法について説明します。 パート3: YOLOv8とFastAPIの統合FastAPI アプリケーションが完成したので、リアルタイムのオブジェクト検出のために YOLOv8 モデルを統合するプロセスを詳しく見ていきましょう。このセクションでは、YOLOv8 を FastAPI とシームレスに統合する手順について説明します。 1. YOLOv8モデルをロードするまず、FastAPI アプリケーションに YOLOv8 モデルをロードしてみましょう。 main.py を開き、ファイルの先頭に次のコードを追加して必要なモジュールをインポートします。 2. ターゲット検出ルートを作成するここで、オブジェクト検出用の画像を受け入れるルートを FastAPI で作成しましょう。新しいルーティング関数を次のように定義します。 ここでは、アップロードされた画像ファイルを受け入れる /detect/ というルートを作成しました。アップロードされた画像に対してオブジェクト検出を実行するために、model.predict() を使用します。 3. テストターゲット検出ルーティングYOLOv8 を統合したので、オブジェクト検出ルーティングをテストできます。 Uvicorn を使用して FastAPI アプリケーションを起動します。 次に、オブジェクト検出用の画像ファイルをアップロードするために、 オブジェクト検出結果を含む JSON 応答が届きます。おめでとう! YOLOv8 と FastAPI を統合して、リアルタイムのオブジェクト検出を実現しました。次のセクションでは、API を強化し、ドキュメントを追加し、デプロイメント オプションを検討します。 パート4: FastAPIアプリケーションをデプロイするFastAPI アプリケーションを構築したので、次はそれをデプロイし、オブジェクト検出 API をユーザーが利用できるようにします。このセクションでは、テスト用のローカル展開や本番環境用のクラウドベースの展開など、さまざまな展開オプションについて説明します。 1. テストのためのローカル展開本番環境にデプロイする前に、FastAPI アプリケーションがローカルで適切に動作するかどうかをテストすることが重要です。 FastAPI アプリケーションをローカルで実行するには、ターミナルを開き、main.py を含むプロジェクト ディレクトリに移動し、仮想環境がまだアクティブ化されていない場合はアクティブ化します。 次に、Uvicorn を使用して FastAPI アプリケーションを起動します。 これで、FastAPI アプリケーションに http://127.0.0.1:8000/ からアクセスできるようになります。 curl、Postman、または Web ブラウザを使用して API エンドポイントをテストできます。 2. クラウドベースの本番環境への導入FastAPI アプリケーションを本番環境にデプロイする準備ができたら、クラウドベースのデプロイ オプションをいくつか利用できます。人気のある選択肢としては、次のようなものがあります。
具体的な展開方法は、選択したクラウド プロバイダーによって異なる場合があります。通常、次のものが必要になります。
3. 適切なサーバーを選択するクラウドベースのサーバーにデプロイする場合は、サーバーの種類を柔軟に選択できます。一般的なオプションは次のとおりです。
4. 継続的インテグレーションと継続的デプロイメント (CI/CD)デプロイメント プロセスを自動化するには、CI/CD パイプラインを実装することを検討してください。 Jenkins、Travis CI、GitLab CI/CD、GitHub Actions などのツールを使用すると、コード リポジトリに変更がプッシュされたときにテストとデプロイメントを自動化できます。 CI/CD のベスト プラクティスに従うことで、スムーズで信頼性の高いデプロイメント プロセスを保証し、運用環境でのエラーのリスクを軽減できます。 |
<<: カナダ工学アカデミー会員のソン・リャン氏:将来の人工知能システムはネットワークの形で存在するだろう
>>: 5四半期連続で前年同期比で減少: AIはデルの危機を逆転できるか?
モバイル インターネットと人工知能の時代、新しい波が古い波を浜辺で打ちのめし続ける中、マイクロソフト...
今年3月、上海市経済情報化委員会は、同市の人工知能の革新と発展を支援する2018年特別プロジェクトの...
[[201516]]機械学習について学びたい、または機械学習に専念することを決心した場合、すぐにさま...
[[346344]] 「人類の技術発展の歴史を振り返ると、機械化、電化、情報化の時代を経験し、生産や...
異常検出タスクは、通常のデータ分布から大きく逸脱した外れ値を識別することを目的としており、産業検査、...
この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...
クルーズ社の自動運転意思決定計画および制御部門の責任者であるブランドン・バッソ氏は、コロンビア大学で...
ウォール・ストリート・ジャーナルによると、求人ウェブサイトIndeedの統計によると、生成AI関連の...
ジェイソン・ウェイを覚えていますか?思考連鎖の創始者は、命令チューニングに関する初期の研究を共同で主...
実際の運転シナリオでは、観察と相互作用を通じて、インテリジェント運転車は知識を蓄積し、予測できない状...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
GPT-4 は、詳細かつ正確な画像の説明を生成する強力で並外れた能力を実証しており、言語と視覚処理...
「大作 SF 映画」を見るのが好きな学生にとって、最も気に入っているのは、映画に遍在する人工知能か...
人工知能は新しい概念でもなければ、単なる仕掛けでもありません。何十年も前から提案されてきました。真の...