コンピューター ビジョンの分野では、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はデルの危機を逆転できるか?
[[222276]]...
人工知能 (AI) システムは近年急速に普及しており、特に 2023 年には大規模言語モデル (LL...
[[283588]] [51CTO.comより]先日、「勢いの刷新と知能の統合」をテーマにした世界人...
人工知能の発展は人類の進化に似ていますが、そのプロセスはより短いものです。人間は自らの知恵を駆使して...
[[233047]]フィナンシャル・タイムズによると、シティグループは5年以内に投資銀行部門の技術・...
私たちは日常生活の中で、暗号化アルゴリズムによく遭遇します。今日は、これらの暗号化アルゴリズムの P...
ビッグデータダイジェスト制作編集:ダイジェスト近年、コンピュータービジョン(CV)の発展は止められず...
人工知能の急速な発展により、一連の新技術が誕生しました。ロボットはますます多くのことを人間に代わって...
今朝早く、毎年恒例の Meta Connect カンファレンスで、AI に焦点を当てた一連の発表が行...
トレードオフを最もよく反映するコンピュータ システムのテクノロジといえば、それはキャッシュです。高速...
現代の産業技術の発展により、私たちの生活は大きく改善されました。新しい家具が次々と登場しています。キ...
人工知能が両親の写真から子供の顔を合成、親族関係生成のためのディープラーニング 概要: この論文では...
[51CTO.comからのオリジナル記事] 現在、私たちの周りではデジタル変革が起こっています。デジ...