OCI VisionとOracle Autonomous Databaseを使用したリアルタイムのオブジェクト識別子の構築
Oracle Cloud Infrastructure (OCI) Vision、Oracle Functions、API GatewayおよびOracle Autonomous Database (ADB)を使用して、リアルタイムのオブジェクト識別ビジョン・モデルを構築する方法について学習します。このリファレンス・アーキテクチャでは、OCI Visionトレーニング済モデルをフロントエンドWebアプリケーションと統合して、携帯電話のカメラでリアルタイムのオブジェクト識別を実行する方法について説明します。
アーキテクチャ
OCI Visionは、大規模なディープラーニングベースのイメージ分析を実行するための人工知能(AI)サービスです。事前に構築されたモデルを利用できるため、開発者は機械学習の専門知識がなくても、アプリケーションにイメージ認識をすばやく組み込むことができます。
Visionモデルは、人工知能を使用してコンピュータがイメージから情報を導出できるようにします。このアーキテクチャでは、terraformスクリプトを使用して、OCI Visionモデルを使用するWebアプリケーションを作成し、携帯電話のカメラを使用してリアルタイムのオブジェクト識別を実行します。
このアーキテクチャには、開発者がリアルタイムのオブジェクト識別を実行するために使用できるオプションのWebアプリケーションが含まれています。Webアプリケーションの設定が完了すると、ユーザーは自分の携帯電話でWebアプリケーションを開き、カメラをアクティブ化してスナップショットを取得できます。アプリケーションはイメージを分析し、イメージの詳細を返します。
サーバーレス機能にリクエストが送信され、OCI Visionサービスおよびデータベースがコールされます(python OCI SDKを使用)。その後、Visionサービスは信頼度スコアを含むラベルのリストを返し、データベースは使用可能なラベルのリストの詳細を保存するのに役立ちます。ファンクション・サービスは、常にサービスをアクティブにする必要がないシナリオ、またはレスポンス時間に対する制限が緩いシナリオ(ファンクション・サービスにウォームアップ時間が必要なため)で役立ちます。ただし、ファンクションがアクティブである計算時間に対してのみ課金されるため、コスト効率が非常に高い可能性があります。
アーキテクチャは、迅速なテストのためにWebアプリケーションと同様に使用でき、リポジトリで使用可能なすべてのリソースを使用できます。また、ビジョン・モデルを独自のテナントに組み込んで、フロントエンドで提案されたアーキテクチャ(ロード・バランサおよびWebサーバー)を削除するようにスクリプトを変更し、独自のバックエンド・サービスから必要なときにAPIゲートウェイを使用して関数をコールすることもできます。
ビジョン・サービスは、イメージ分類、オブジェクト検出およびドキュメント分析に使用できます。ビジョン・サービスには、一般的な目的で事前トレーニングされたモデルが含まれていますが、データ・ラベリング・サービスとともに使用して、所有する特定のデータのカスタム・モデルを作成することもできます。terraformスクリプトを使用すると、Visionサービスを使用するための一般的なアーキテクチャを作成できます。
次の図は、このリファレンス・アーキテクチャを示しています。
aivision- realtime- deployment.zip
このアーキテクチャには、次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含むローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、巨大な距離は(複数の国または大陸にわたって)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各アベイラビリティ・ドメインの物理リソースは、他のアベイラビリティ・ドメインのリソースから分離されるため、フォルト・トレランスが提供されます。可用性ドメインは、電源や冷却、内部の可用性ドメイン・ネットワークなどのインフラストラクチャを共有しません。そのため、1つの可用性ドメインでの障害が、リージョン内の他の可用性ドメインに影響しない可能性があります。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメイン(独立した電源およびハードウェア)があります。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害に耐えることができます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用してネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる重複しない複数のCIDRブロックを含めることができます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCNの他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。パブリックまたはプライベートにできます。
- インターネット・ゲートウェイ
インターネット・ゲートウェイでは、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- ネットワーク・アドレス変換(NAT)ゲートウェイ
NATゲートウェイを使用すると、VCN内のプライベート・リソースは、受信インターネット接続にこれらのリソースを公開することなく、インターネット上のホストにアクセスできます。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバック・エンドの複数のサーバーへの自動トラフィック分散を提供します。
- ルート表
仮想ルート表には、サブネットからVCN外の宛先(通常はゲートウェイを介)にトラフィックをルーティングするルールが含まれます。
- APIゲートウェイ
Oracle API Gatewayでは、ネットワーク内からアクセスでき、必要に応じてパブリック・インターネットに公開できるプライベート・エンドポイントでAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可および制限をサポートします。
- Autonomous Database
Oracle Cloud Infrastructure Autonomous Databaseは、トランザクション処理およびデータ・ウェアハウス・ワークロードに使用できる、完全に管理された事前構成済のデータベース環境です。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureは、データベースの作成、データベースのバックアップ、パッチ適用、アップグレードおよびチューニングを処理します。
- 関数
Oracle Functionsは、完全に管理された、マルチテナントでスケーラビリティが高いオンデマンドのFunctions- as- a- Service (FaaS)プラットフォームです。これは、Fn Projectのオープン・ソース・エンジンによって機能します。関数を使用すると、コードをデプロイして直接コールするか、イベントに応じてトリガーできます。Oracle Functionsは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナを使用します。
- オブジェクト・ストレージ
オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージ、ビデオなどのリッチ・コンテンツなど、すべてのコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。ストレージは、パフォーマンスやサービスの信頼性を低下させることなく、シームレスに拡張できます。迅速、即時および頻繁にアクセスする必要があるホット・ストレージには標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージにアーカイブ・ストレージを使用します。
- ボールト
Oracle Cloud Infrastructure Vaultでは、データを保護する暗号化キーと、クラウド内のリソースへのアクセスを保護するために使用するシークレット資格証明を集中管理できます。
- ビジョン
Oracle Cloud Infrastructure Visionは、ディープ・ラーニング・ベースのイメージ分析を大規模に実行するためのAIサービスです。すぐに利用できる事前構築済みモデルにより、開発者は、機械学習(ML)の専門知識がなくても、アプリケーションにイメージ認識とテキスト認識を簡単に組み込むことができます。
- OCIデータ・ラベリング
OCIネイティブ・サービスはOCIネイティブ・サービスであり、顧客はこれを使用して、データセットを作成および参照し、データ・レコード(テキスト、イメージ)を表示し、AI/MLモデルの構築目的でラベルを適用できます。また、このサービスでは、ラベル付けプロセスを支援するように設計された対話型ユーザー・インタフェースも提供されます。開発者は、RAWイメージをアップロードし、ラベルを追加して、イメージの領域を強調表示できます。これらのラベルをイメージに追加することで、結果のデータセットを使用してカスタム・イメージ分類およびオブジェクト検出モデルをトレーニングできます。
レコードにラベルを付けると、AI/MLモデルの開発で使用するために、データセットをライン区切りJSONとしてエクスポートできます。OCIデータ・ラベリングは、カスタム・モデル・トレーニング・ワークフローの一環として、OCI VisionやOCI Languageなどの他のサービスから直接アクセスすることもできます。独自のディープ・ラーニング・モデルまたは自然言語処理モデルを構築およびトレーニングすることを希望するデータ・サイエンティストは、OCI Data Scienceを介してラベル付きデータセットを使用できます。
デプロイ
この参照アーキテクチャをデプロイするために必要なコードは、GitHubにあります。GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズし、Terraform CLIを使用してアーキテクチャをデプロイできます。
- GitHubにアクセスします。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
READMEドキュメントの手順に従います。
