AI駆動型テクノロジーが進化するにつれて、画像分析はますます高度になり、ビジュアル・データからより深い洞察を得られるようになっています。機械学習モデルの進歩により、AIはアップロードされた画像を処理し、メタデータを抽出し、大規模なコンテンツ・モダナイゼーションをサポートします。これらの分析ツールは、料金体系、ビジュアル最適化、画像生成などのアプリケーションの予測モデリングにも貢献し、ワークフローのコスト効果と効率を高めます。データ駆動型のアプローチを統合することで、AIはオートメーションと意思決定を強化し、インテリジェントな視覚的解釈の新たな可能性を提供します。
コンピューター・ビジョンと高度なAIの急速な進歩に伴い、企業や研究者は幅広いアプリケーションにテクノロジーを活用しています。画像分類やOCR(光学式文字認識)からセグメンテーションや動画解析まで、AI搭載ツールは視覚情報の抽出と分析の方法を変革しています。
ソーシャル・メディアなどの業界では、AIがピクセル・レベルで画像を分析することでコンテンツのモダナイゼーションを強化し、コンプライアンスを確保し、エンゲージメントを向上させます。また、企業はVision APIを利用して自動文書処理を行い、スキャンされたファイル、Excel、レポートを構造化データに変換することもできます。これらのアプリケーションは、ワークフローを合理化し、効率を向上させ、組織が大規模なビジュアル・データセットから有意義な洞察を抽出できるようにします。
これらのユースケースは、AIを活用した画像分析の役割がさまざまな業界で高まっていることを浮き彫りにしています。このチュートリアルでは、これらの機能をPowerPointプレゼンテーションに適用することに焦点を当て、高度なコンピューター・ビジョンとAIモデルを使用してテキストと画像に関するインタラクティブなQ&Aを可能にします。
大規模言語モデル(LLM)は、非構造化テキストの膨大なデータセットからインテリジェントな洞察を可能にすることで、機械学習に革命をもたらしました。しかし、従来のLLMは画像分析に苦労することが多く、プレゼンテーションのチャート、図表、視覚的要素から洞察を抽出することが困難です。
IBM Granite Vision 3.2大規模言語モデル(LLM)は、AIツールと高度なオブジェクト検知アルゴリズムを統合することで、マルチモーダル解析の自動化を可能にしています。このチュートリアルでは、AIを使用してPowerPoint(.pptx)ファイルからテキストと画像を抽出および分析し、インタラクティブなQ&Aを可能にしてプレゼンテーションの洞察を強化することで、ワークフローを効率化する方法を説明します。
このチュートリアルでは、テキストと画像の両方をコンテキストとして使用して、PowerPointスライドからユーザーのクエリーにリアルタイムで応答できるAI駆動型システムの構築方法を学習します。このチュートリアルでは、次の手順について説明します。
PowerPoint処理:AIベースの分析用に、テキストと画像を.pptxファイルから抽出します。
テキスト・ベースのQ&A:Granite Visionを使用して、抽出されたスライド・テキストに基づいて回答を生成します。
画像ベースのQ&A:AIにスライドの画像、チャート、図表の分析を依頼します。
最適化された質問の作成:正確で関連性の高いAI応答を作成するための効果的な質問の作成方法をご覧ください。
このチュートリアルでは、次の最先端のAIテクノロジーを活用します。
1. IBM Granite Vision:テキストと画像の両方を処理する強力なビジョン言語モデル(VLM)。
2. Python-PPTX:PowerPointファイルからテキストと画像を抽出するためのライブラリー。
3. Transformers:AIモデルのインプットを効率的に処理するためのフレームワーク。
このチュートリアルを完了することで、以下のことが可能になります。
1. PowerPointコンテンツ(テキストと画像)を抽出して処理する。
2. スライドコンテンツのAI駆動型Q&AにGranite 3.2モデルを使用する。
3. テキストと画像についてAIに賢明な質問をする。
4. AIを活用した説明を使用して、ユーザーのプレゼンテーションにおけるインタラクションを改善する。
このチュートリアルは、AI駆動型の洞察を使用してプレゼンテーションを強化したいAI開発者、研究者、コンテンツ作成者、およびビジネス・プロフェッショナル向けに設計されています。
watsonx.aiプロジェクトを作成するには、 IBM® Cloudのアカウントが必要です。
いくつかあるツールの中から選択することもできますが、このチュートリアルでは、Jupyter Notebookを使用するためにIBMアカウントを設定する方法について説明します。
1. IBM Cloudアカウントを使用して、watsonx.aiにログインします。
2. watsonx.aiプロジェクトを作成します。プロジェクトIDはプロジェクト内から取得できます。[管理]タブをクリックし、[全般]ページの[詳細]セクションからプロジェクトIDをコピーします。このチュートリアルではこのIDが必要になります。
3. Jupyter Notebookを作成します。
4. PPTXファイルをwatsonx.aiにアセットとしてアップロードします
このステップでは、このチュートリアルのコードをコピーできるノートブック環境を開きます。あるいは、このノートブックをローカル・システムにダウンロードし、watsonx.aiプロジェクトにアセットとしてアップロードすることもできます。このチュートリアルは、GitHubでも公開されています。
注:このチュートリアルでは、コードを実行するためにGPUインフラストラクチャーが必要なため、このチュートリアルで説明しているように、watsonx.aiを使用することをお勧めします。
PowerPointコンテンツの抽出と処理を開始する前に、必要なPythonライブラリーをインストールする必要があります。
transformers:IBM Granite Visionとその他のAIモデルへのアクセスを提供。
torch:モデルを効率的に実行するために必要なディープラーニング(深層学習)フレームワーク。
python-pptx:PowerPoint(.pptx)ファイルからテキストと画像を抽出するためのライブラリー。
次のコマンドを実行して、これらのパッケージをインストールおよびアップグレードします。
このステップでは、PowerPointファイルの処理、画像の処理、IBM Granite Visionモデルとの対話に必要なライブラリーをインポートします。
このステップでは、IBM Cloud Object Storageへの接続を確立し、クラウドに保存されているPowerPointファイルにアクセスして取得します。
IBM Cloud Object Storageを最大限に活用するための機能を備えたboto3ライブラリーのフォークを通じて提供されるpythonサポートを活用できます。これらの認証情報を取得するには、公式ドキュメントを参照してください。
ibm_boto3.client:IBM Cloud Object Storageと対話するクライアントを作成します。
ibm_api_key_id:認証用のIBM Cloud APIキー。
ibm_auth_endpoint:IBM Cloudの認証エンドポイント。
endpoint_url:特定のCloud Object Storage(COS)のストレージ・エンドポイント。
注:watsonx.aiで資産としてファイルをアップロードすると、自動的にIBM Cloud Object Storageに保管されます。後でファイルをJupyter Notebookにインポートすると、watsonx.aiが必要な認証情報(APIキー、認証エンドポイント、ストレージ・エンドポイント)を生成し、ノートブックに挿入します。提供されるIBM Cloud Object Storageの認証情報を使用すると、セキュアにアクセスしてストレージからファイルを取得できるため、watsonx.ai資産とノートブック環境をシームレスに統合し、さらなる処理が可能になります。
この接続を設定することで、IBM Cloudに保存されているPowerPointプレゼンテーションをシームレスにインポートして処理し、AI搭載の分析を行うことができます。
このステップでは、IBM Cloud Object Storage バケットとファイルの詳細を指定し、処理するためのPowerPoint プレゼンテーション(.pptx)を見つけて取得します。
IBM Cloud UIからバケット設定の詳細を取得するには、この公式ドキュメントをチェックしてください。
bucket:ファイルが保管されているIBM Cloud Object Storageバケットの名前。
object_key:アクセスするPowerPointプレゼンテーションの正確なファイル名
このステップでは、IBM Cloud Object StorageからPowerPoint(.pptx)ファイルをダウンロードし、ローカルで処理します。
cos_client.get_object(): 指定されたバケットとオブジェクト・キーからファイルを取得します。
streaming_body_read():ファイルの内容をバイト・ストリームに読み取り、さらに処理します。
このステップでは、ダウンロードされたPowerPointファイル(.pptx)をローカルに保管し、処理できるようにします。
pptx_path:プレゼンテーションが保存されるローカル・ファイル名を定義します。
open(pptx_path, 'wb'):ファイルを書き込みバイナリ・モードで開き、取得したバイトを保管します。
f.write(pptx_bytes):ダウンロードされたファイルの内容を新しく作成された.pptxファイルに書き込みます。
このステップでは、PowerPointファイルが正常に保存されたことを確認するための確認メッセージを印刷します。「print」関数は、.pptxファイルがローカル保存されているファイル・パスを表示します。
このステップでは、PowerPointファイル(.pptx)を処理してその内容を抽出する関数を定義します。
slide_texts:各スライドから抽出されたテキストを保管します。
slide_images:抽出された画像をPythonイメージング・ライブラリー(PIL)の画像オブジェクトとして保管し、対応するスライド番号とともに保管します。
スライドを反復処理して、テキスト・コンテンツとスライド内に埋め込まれた画像を含む図形からテキストを抽出します。
この関数では、PPTからテキストと画像を分離し、チャット・エージェントは抽出されたコンテンツに基づいてユーザーの質問に簡単に回答できるようになります。
このステップでは、関数を呼び出して、保存したPowerPointファイルからテキストと画像を抽出します。
pptx_path:ダウンロードされたPowerPointファイルのローカル・パスを指定します。
Extract_text_and_images_from_pptx(pptx_path):スライドからテキストと画像を抽出します。
slide_texts:すべてのスライドから抽出されたテキストを保管します。
slide_images:抽出した画像を保管します。
このステップでは、各スライドから抽出されたテキストを表示して、PowerPointコンテンツが正しく処理されたことを確認します。
enumerate(slide_texts):抽出されたテキストを反復処理し、各テキストをそれぞれのスライド番号に関連付けます。
セパレーター ('-' * 40):コンテンツをさまざまなスライドから視覚的に区別するのに役立ちます。
このステップでは、PowerPointスライドから抽出された画像を確認し、視覚化します。
len:抽出された画像の総数。
img.show():抽出された各画像をレビューするために開きます。
「.show()」を「.save('filename.png')」に置き換えることで、画像をローカルに保管できます。
このステップでは、AIによるテキストと画像処理のために、IBM Granite-Vision-3.2-2Bモデルを初期化します。
MODEL_NAMEは、使用する事前トレーニング済みのGranite Visionモデルを指定し、 torch.cuda.is_available()は、GPU(CUDA)がより高速な処理ができるかどうかを確認し、処理ができない場合は、デフォルトでCPUが使用されます。
このステップでは、IBM Granite Visionモデルとそれに対応するプロセッサーをロードして、テキストと画像の両方の入力を処理します。
AutoProcessor.from_pretrained(MODEL_NAME, trust_remote_code=True):事前トレーニング済みプロセッサーをロードして、モデルのインプット(テキストと画像)をフォーマットします。
AutoModelForVision2Seq.from_pretrained(MODEL_NAME, trust_remote_code=True, ignore_mismatched_sizes=True).to(device):Granite Visionモデルをロードし、利用可能なデバイス(GPUまたはCPU)に転送します。
次の場合、
Trust_remote_code=True:カスタム・モデル実装との互換性を確保します。
ignore_mismatched_sizes=True:モデル・サイズに軽微な不一致がある場合にエラーを防止します。
注:読み込みに時間がかかる場合があります。
このステップでは、ユーザーがPowerPointスライドから抽出したテキストに基づいて質問できるチャット機能を作成します。
要項
このステップでは、PowerPointスライドから抽出された個々の画像についてユーザーが質問できるチャット機能を作成します。
要項
このステップでは、chat_with_text関数を呼び出し、ユーザーがPowerPointスライドから抽出したテキストについて質問できるようにします。
要項
アウトプット
質問:統合は組織にとって競争上の優位性ですか?
<|assistant|>
はい、統合は組織にとって競争上の優位性をもたらします。これは、より迅速に行動し、課題を克服するのに役立ちますが、コストの増加、非効率性、セキュリティー・リスク、ユーザー・エクスペリエンスの低下につながる可能性があり、最終的には、急速に進化するビジネス・ランドスケープの中で成功する組織の競争力と能力を危険にさらす可能性があります。
プレゼンテーション・テキストに基づいて質問する(または「exit」と入力して終了する):exit
ユーザーが「統合は組織にとって競争上の優位性ですか?」と尋ねると、Granite Visionモデルは、抽出されたPowerPointスライド・テキストを使用してクエリを処理し、応答を生成しました。
このモデルは「統合」をビジネス・コンセプトとして認識し、そのメリットとリスクの両方を説明する「 スライド番号7」の構造化された回答を提供しました。統合によってスピードと問題解決能力が向上することを強調しましたが、効果的に管理しないと、コストの増加、非効率性、セキュリティー・リスク、ユーザー・エクスペリエンスの低下などの潜在的な欠点についても指摘しています。
この応答は、抽出されたスライド・テキストを解釈し、状況に応じてバランスの取れた回答を生成するモデルの能力を示しています
このステップでは、chat_with_images関数を呼び出し、ユーザーがPowerPointスライドから抽出した画像について質問できるようにします。
要項
アウトプット
プレゼンテーションの画像に基づいて質問します(または終了するには「exit」と入力):これは何の画像ですか?
スライド番号(1~41)を入力して、画像について質問します:2
モデルの応答:<|system|>
好奇心旺盛なユーザーと人工知能アシスタントとの間のチャット。アシスタントは、ユーザーの質問に対して、役に立ち、詳しく、丁寧な回答を提供します。
<|user|>
これは何の画像ですか?
<|assistant|>
3Dモデル
プレゼンテーションの画像に基づいて質問します(または終了するには「exit」と入力):この画像を説明してください
スライド番号(1~41)を入力して、画像について質問します:2
モデルの応答:<|system|>
好奇心旺盛なユーザーと人工知能アシスタントとの間のチャット。アシスタントは、ユーザーの質問に対して、役に立ち、詳しく、丁寧な回答を提供します。
<|user|>
この画像を説明してください
<|assistant|>
画像は立方体の3Dモデルです
プレゼンテーションの画像に基づいて質問します(または終了するには「exit」と入力):このチャートについて説明してもらえますか?
スライド番号(1~41)を入力して、画像について質問してください:1
モデルの応答:<|system|>
好奇心旺盛なユーザーと人工知能アシスタントとの間のチャット。アシスタントは、ユーザーの質問に対して、役に立ち、詳しく、丁寧な回答を提供します。
<|user|>
このチャートについて説明してもらえますか?
<|assistant|>
ここには、第1世代から第4世代までのエンタープライズ・クラウド市場の成熟度の変化というタイトルの棒グラフがあります。x軸は世代の進歩を示し、y軸は長年にわたる成熟度の進歩を示します。図は、世代が進むにつれてエンタープライズ・クラウド市場の成熟度が高まることを示しています。
プレゼンテーションの画像に基づいて質問します(または終了するには「exit」と入力):exit
ユーザーが画像関連の質問をすると、Granite Visionモデルは選択された画像を処理し、視覚的なコンテンツの理解に基づいて回答を生成しました。
「この画像は何ですか?」という質問には(スライド2)、モデルは画像を「3Dモデル」として識別しましたが、最小限の説明を行いました。
「この画像を説明してください」(スライド2)については、モデルは応答を改良し、「立方体の3Dモデル」であると識別しました。
「このチャートについて説明していただけますか?」(スライド1)に対して、このモデルでは、棒グラフについて詳しく説明し、そのタイトル、x軸、y軸、全体的な傾向について説明し、エンタープライズ・クラウドの成熟度が世代間でどのように進行しているかを示しました。
このステップでは、ユーザーは、インテリジェントな分析と説明のためにIBM Granite Visionモデルを活用することで、チャート、図表、インフォグラフィックなどの視覚要素を操作できます。
このチュートリアルでは、IBM Granite Visionの画像解釈機能を紹介します。