OCI Visionを使用して、イメージおよびスキャンした文書からデータを抽出します。

Oracle Cloud Infrastructure (OCI) Visionは、Oracle Cloud Infrastructureで使用可能ないくつかのAIサービスの1つです。

OCI Visionは、データ・サイエンスの専門知識を必要とせずに機械学習および人工知能を適用する機能を提供します。ここには、OCR、イメージ分類とオブジェクト検出、ドキュメント分類、異常検出などを迅速に行える事前トレーニング・モデルがあります。

転送学習を使用して、カスタム・データで事前トレーニング済モデルをチューニングできます。既存のラベル付きデータセットをチューニングに使用することも、データがすでにラベル付けされていない場合は、Oracle Data Labelingサービスを使用してタスクを簡素化できます。

アーキテクチャ

このアーキテクチャは、コアにOCI Visionを持つ一般的なシステム内の様々なコンポーネント間の関係を示しています。

このシステムでは、エンド・ユーザーはWebアプリケーションを使用して、写真またはビジネス文書のイメージをアップロードします。アプリケーションはファイルをオブジェクト・ストレージに格納します。Oracle Eventsは、新しいファイルを検出し、VisionサービスへのREST APIコールを生成するサーバーレス・ファンクションをトリガーします。Visionは、Object Storageからファイルを取得し、イメージを分析します。結果は、アプリケーションで使用できるデータベースに格納されます。

次の図は、このリファレンス・アーキテクチャを示しています。

Architecture-ai-vision.pngの説明が続きます
図Architecture-ai-vision.pngの説明

Architecture-ai-vision-oracle.zip

このアーキテクチャには次のコンポーネントがあります。

  • リージョン

    Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立し、広大な距離(国または大陸間)を分離できます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインでは、電源や冷却、内部の可用性ドメイン・ネットワークなどのインフラストラクチャは共有されません。そのため、ある可用性ドメインでの障害が、リージョン内の他の可用性ドメインに影響することはほとんどありません。

  • フォルト・ドメイン

    フォルト・ドメインは、アベイラビリティ・ドメイン内のハードウェアおよびインフラストラクチャのグループ。各可用性ドメインには、独立した電源とハードウェアを備えた3つのフォルト・ドメインがあります。複数のフォルト・ドメインにリソースを分散すると、アプリケーションは物理サーバーの障害、システム・メンテナンスおよびフォルト・ドメイン内の電源障害を許容できます。

  • 仮想クラウド・ネットワーク(VCN)とサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。VCNは、従来のデータ・センター・ネットワークと同様に、ネットワーク環境を完全に制御できます。VCNには複数の重複しないCIDRブロックを含めることができ、VCNの作成後に変更できます。VCNをサブネットに分割できます。サブネットは、リージョンまたは可用性ドメインにスコープ指定できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレスの範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。

  • コンパートメント

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間の論理パーティションです。コンパートメントを使用してOracle Cloud内のリソースを編成し、リソースへのアクセスを制御して、使用量の割当て制限を設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、リソースにアクセスできるユーザーおよび実行できるアクションを指定するポリシーを定義します。

  • ロード・バランサ

    Oracle Cloud Infrastructure Load Balancingサービスは、バックエンド内の単一のエントリ・ポイントから複数のサーバーへの自動トラフィック分散を提供します。

    ロード・バランサは、様々なアプリケーションへのアクセスを提供します。

  • セキュリティ・リスト

    サブネットごとに、サブネット内外で許可されるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。

  • オブジェクト・ストレージ

    オブジェクト・ストレージを使用すると、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データと非構造化データにすばやくアクセスできます。インターネットまたはクラウド・プラットフォーム内部から、安全かつセキュアにデータを直接格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージをシームレスにスケーリングできます。標準ストレージは、迅速、即時、頻繁にアクセスするために必要な「ホット」ストレージに使用します。長期間保持し、ほとんどアクセスしない「コールド」ストレージにはアーカイブストレージを使用します。

  • FastConnect

    Oracle Cloud Infrastructure FastConnectは、データ・センターとOracle Cloud Infrastructureとの専用のプライベート接続を簡単に作成する方法を提供します。FastConnectは、高帯域幅オプションを提供し、インターネットベースの接続と比較してより信頼性の高いネットワーク・エクスペリエンスを提供します。

  • Oracle Infrastructure Cloudのビジョン

    OCI Visionは、PDFおよびイメージから情報を抽出するために使用します。Visionは、OCR、ドキュメントの理解、表分類、オブジェクト検出およびイメージ分類をサポートしています。

  • アプリケーション

    このアーキテクチャのアプリケーションを使用すると、ユーザーはイメージをアップロードでき、イメージのメタデータを使用して検索およびコンテキストを改善できます。

推奨

お客様の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。

  • VCN

    VCNを作成する際、VCNのサブネットにアタッチする予定のリソース数に基づいて、必要なCIDRブロックの数および各ブロックのサイズを決定します。標準プライベートIPアドレス領域内にあるCIDRブロックを使用します。

    プライベート接続を設定する予定のその他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。

    VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。

    サブネットを設計する際は、トラフィック・フローおよびセキュリティ要件を考慮してください。セキュリティ境界として機能する、特定の層またはロール内のすべてのリソースを同じサブネットにアタッチします。

    リージョナル・サブネットを使用します。

  • セキュリティ

    Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティをプロアクティブに監視および保守します。Cloud Guardは、セキュリティ上の弱点についてリソースを調査し、オペレータやユーザーにリスクのあるアクティビティを監視するために定義できるディテクタ・レシピを使用します。構成ミスや安全でないアクティビティが検出された場合、クラウド・ガードは是正措置を推奨し、定義できるレスポンダ・レシピに基づいてこれらのアクションの実行を支援します。

    最大限のセキュリティが必要なリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくOracle定義のセキュリティ・ポリシーのレシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースにパブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対する操作が検証され、ポリシーに違反する操作が拒否されます。

  • クラウド・ガード

    Oracleが提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプとその実行を許可するアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。

    テナンシ・レベルでCloud Guardを適用して、広範な範囲に対応し、複数の構成を維持する管理上の負担を減らします。

    管理対象リスト機能を使用して、特定の構成を検出者に適用することもできます。

  • セキュリティ・ゾーン

    Oracleが提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプとその実行を許可するアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。

    テナンシ・レベルでCloud Guardを適用して、広範な範囲に対応し、複数の構成を維持する管理上の負担を減らします。

    管理対象リスト機能を使用して、特定の構成を検出者に適用することもできます。

  • ロード・バランサ帯域幅

    ロード・バランサの作成時に、固定帯域幅を提供する事前定義済シェイプを選択するか、帯域幅範囲を設定したカスタム・フレキシブル・シェイプを指定して、トラフィック・パターンに基づいてサービスにより帯域幅を自動的にスケーリングできます。どちらの方法でも、ロード・バランサの作成後いつでもシェイプを変更できます。

  • Oracle Functions

    このアーキテクチャは、特定のイメージでOCI Vision REST APIをコールするファンクションを使用し、Visionによって返されるメタデータを格納します。この関数は、JavaまたはPython SDKを使用して作成できます。

  • イベント

    このアーキテクチャでは、Oracle Cloud Infrastructure Eventsサービスは、Object Storageの作成の変更をリスニングするよう構成されています。サービスは、オブジェクトがObject Storageにアップロードされた後、処理のためにファンクションをコールします。

注意事項

このアーキテクチャをデプロイする際には、次の点を考慮します。

  • パフォーマンス

    パフォーマンスおよびスケーラビリティの理由から、Vision REST APIをコールするためにファンクションを使用しています。別のソリューションは、Vision REST APIをアプリケーションから直接使用することです。これを行う場合は、REST APIコールをバックグラウンド・ジョブとして実行することを検討します。

  • アクセス

    OCI Visionでは、OCIコンソール、JavaおよびPython SDKクライアントおよびOCI CLIを介したアクセスをサポートしています。テスト時には、CLIツールまたはコンソールを使用することをお薦めします。

  • 可用性

    この例では、データベースは高可用性ではありません。クリティカル・アプリケーションでは、3つのレプリカでMySQL Database ServiceをHAモードで実行することを検討します。

  • 統合

    領収書やアプリケーション・フォームなどのビジネス・ドキュメントをPDF形式でスキャンする場合は、Oracle Integration Cloudを使用して電子メールなどのシステムからPDFを取得し、Vision AIを呼び出してコンテンツをERPやCRMシステムなどの宛先システムに最終的にプッシュすることを検討します。