Mit der Weiterentwicklung von KI-gestützten Technologien wird die Bildanalyse immer ausgefeilter und ermöglicht tiefere Erkenntnisse aus visuellen Daten. Dank Fortschritten bei Modellen des maschinellen Lernens kann KI hochgeladene Bilder verarbeiten, Metadaten extrahieren und die Inhaltsmoderation in großem Umfang unterstützen. Diese Analysetools tragen auch zur prädiktiven Modellierung für Anwendungen wie Preisgestaltung, visuelle Optimierung und Bilderzeugung bei und machen Workflows kostengünstiger und effizienter. Durch die Integration datengestützter Ansätze verbessert KI die Automatisierung und Entscheidungsfindung und bietet neue Möglichkeiten für intelligente visuelle Interpretation.
Angesichts der rasanten Fortschritte in Computer Vision und fortschrittlicher KI nutzen Unternehmen und Forscher bildbasierte Technologien für eine Vielzahl von Anwendungen. Von Bildklassifizierung und OCR (optischer Zeichenerkennung) bis hin zur Segmentierung und Videoanalyse verändern KI-gestützte Werkzeuge die Art und Weise, wie wir visuelle Informationen extrahieren und analysieren.
In Branchen wie den sozialen Medien verbessert KI die Inhaltsmoderation durch die Analyse von Bildern auf Pixelebene, wodurch die Einhaltung von Richtlinien sichergestellt und die Interaktion gesteigert wird. Unternehmen können die Vision API auch zur automatisierten Dokumentenverarbeitung nutzen und gescannte Dateien, Excel-Tabellen und Berichte in strukturierte Daten umwandeln. Diese Anwendungen optimieren Workflows, verbessern die Effizienz und ermöglichen Unternehmen, sinnvolle Erkenntnisse aus groß angelegten visuellen Datensätzen zu gewinnen.
Diese Anwendungsfälle unterstreichen die wachsende Rolle der KI-gestützten Bildanalyse in verschiedenen Branchen. In diesem Tutorial konzentrieren wir uns auf die Anwendung dieser Funktionen auf PowerPoint-Präsentationen und ermöglichen interaktive Fragen und Antworten zu Texten und Bildern mithilfe fortschrittlicher Computer-Vision- und KI-Modelle
Große Sprachmodelle (LLMs) haben maschinelles Lernen revolutioniert, indem sie intelligente Erkenntnisse aus riesigen Datensätzen unstrukturierter Texte ermöglichen. Herkömmliche LLMs haben jedoch oft Schwierigkeiten mit der Bildanalyse, was es schwierig macht, Erkenntnisse aus Diagrammen, Schaubildern und visuellen Elementen in Präsentationen zu gewinnen.
IBM Granite® Vision 3.2 Large Language Models (LLM) überbrückt diese Lücke, indem es KI-Tools mit fortschrittlichen Objekterkennungsalgorithmen integriert und es den Nutzern ermöglicht, multimodale Analysen zu automatisieren. Dieses Tutorial zeigt, wie Sie Ihren Workflow optimieren können, indem Sie KI verwenden, um Text und Bilder aus PowerPoint-Dateien (.pptx) zu extrahieren und zu analysieren. Dies ermöglicht interaktive Fragen und Antworten für bessere Einblicke in die Präsentation.
In diesem Tutorial lernen Sie, ein KI-gestütztes System zu erstellen, das Benutzeranfragen in Echtzeit anhand von PowerPoint-Folien beantworten kann, indem es sowohl Text als auch Bilder als Kontext verwendet. Dieses Tutorial führt Sie durch folgende Schritte:
PowerPoint-Verarbeitung: Text und Bilder aus .pptx-Dateien für KI-basierte Analysen extrahieren.
Textbasierte Fragen und Antworten: Granite Vision nutzen, um Antworten auf Basis des extrahierten Folientextes zu generieren.
Bildbasierte Q&A: Die KI auffordern, Bilder, Diagramme und Grafiken von Folien zu analysieren.
Optimierte Fragenformulierung: Lernen, wie effektive Fragen für genaue und relevante KI-Antworten erstell werden.
Dieses Tutorial nutzt modernste KI-Technologien, darunter:
1. IBM Granite Vision: Ein leistungsstarkes Vision Language Model (VLM), das sowohl Text als auch Bilder verarbeitet.
2. Python-PPTX: Eine Bibliothek zum Extrahieren von Text und Bildern aus PowerPoint-Dateien.
3. Transformers: Ein Framework zur effizienten Verarbeitung von KI-Modelleingaben.
Am Ende dieses Tutorials werden Sie Folgendes können:
1. PowerPoint-Inhalte (Text und Bilder). extrahieren und verarbeiten.
2. Das Modell Granite Vision 3.2 für KI-gestützte Fragen und Antworten auf Folieninhalten anwenden.
3. Der KI aufschlussreiche Fragen zu Text und Bildern stellen.
4. Die Benutzerinteraktion mit Präsentationen durch KI-gestützte Erklärungen verbessern.
Dieses Tutorial richtet sich an KI-Entwickler, Forscher, Inhaltsersteller und Geschäftsleute, die ihre Präsentationen um KI-gestützte Erkenntnisse erweitern möchten.
Sie benötigen ein IBM Cloud-Konto, um ein watsonx.ai-Projekt zu erstellen.
Sie können zwar aus mehreren Tools wählen, aber dieses Tutorial führt Sie durch die Einrichtung eines IBM Kontos für die Verwendung eines Jupyter Notebook.
1. Melden Sie sich mit Ihrem IBM Cloud-Konto bei watsonx.ai an.
2. Erstellen Sie ein watsonx.ai-Projekt. Sie können Ihre Projekt-ID in Ihrem Projekt abrufen. Klicken Sie auf die Registerkarte Verwalten. Kopieren Sie dann die Projekt-ID aus dem Abschnitt Details der Seite Allgemein. Sie benötigen diese ID für dieses Tutorial.
3. Erstellen Sie ein Jupyter Notebook.
4. Laden Sie die PPTX-Datei als Asset in watsonx.ai hoch
Dieser Schritt öffnet eine Notebook-Umgebung, in die Sie den Code aus diesem Tutorial kopieren können. Alternativ können Sie dieses Notebook auf Ihr lokales System herunterladen und als Asset in Ihr watsonx.ai-Projekt hochladen. Dieses Tutorial ist auch auf GitHub verfügbar.
Hinweis: Für die Ausführung des Codes wird eine GPU-Infrastruktur benötigt. Daher wird empfohlen, watsonx.ai wie in diesem Tutorial zu verwenden.
Bevor wir mit dem Extrahieren und Verarbeiten von PowerPoint-Inhalten beginnen, müssen wir die notwendigen Python-Bibliotheken installieren:
transformers: Bietet Zugang zu IBM Granite Vision und anderen KI-Modellen.
torch: ein Deep-Learning-Framework, das für die effiziente Ausführung des Modells erforderlich ist.
python-pptx: Eine Bibliothek zum Extrahieren von Text und Bildern aus PowerPoint-Dateien (.pptx).
Führen Sie die folgenden Befehle aus, um diese Pakete zu installieren und zu aktualisieren:
In diesem Schritt importieren wir die erforderlichen Bibliotheken für die Verarbeitung von PowerPoint-Dateien, die Behandlung von Bildern und die Interaktion mit dem IBM Granite Vision-Modell:
In diesem Schritt stellen wir eine Verbindung zu IBM Cloud Object Storage her, um auf die im Cloud gespeicherten PowerPoint-Dateien zuzugreifen und sie abzurufen.
Sie können die Python-Unterstützung nutzen, die durch einen Fork der boto3-Bibliothek mit Funktionen bereitgestellt wird, um IBM Cloud Object Storage optimal auszunutzen. Ziehen Sie die offizielle Dokumentation heran, um diese Zugangsdaten zu erhalten.
ibm_boto3.Client: Erstellt einen Client, der mit IBM Cloud Object Storage interagiert.
ibm_api_key_id: Ihr IBM Cloud API-Schlüssel zur Authentifizierung.
ibm_auth_endpoint: Der Authentifizierungsendpunkt für IBM Cloud.
endpoint_url: Der spezifische Cloud Object Storage (COS) Speicherendpunkt.
Hinweis: Wenn Sie eine Datei als Asset in watsonx.ai hochladen, wird sie automatisch im IBM Cloud Object Storage gespeichert. Wenn Sie die Datei später in ein Jupyter Notebook importieren, generiert und fügt watsonx.ai die notwendigen Anmeldedaten (API-Schlüssel, Authentifizierungsendpunkt und Speicherendpunkt) in Ihr Jupyter Notebook ein. Die bereitgestellten IBM Cloud Object Storage Zugangsdaten ermöglichen einen sicheren Zugriff zum Abrufen von Dateien aus dem Speicher, was eine nahtlose Integration zwischen watsonx.ai Assets und der Notebook-Umgebung für weitere Verarbeitung ermöglicht.
Durch die Konfiguration dieser Verbindung können wir PowerPoint-Präsentationen, die in der IBM Cloud gespeichert sind, nahtlos importieren und für KI-gestützte Analysen verarbeiten
In diesem Schritt geben wir den IBM Cloud Object Storage Bucket und die Dateidetails an, um die PowerPoint-Präsentation (.pptx) zur Verarbeitung zu finden und abzurufen.
Sehen Sie sich dieses offizielle Dokument an, um die Details zur Bucket-Konfiguration über die IBM Cloud Benutzeroberfläche zu erhalten.
bucket: Der Name des IBM Cloud Object Storage Buckets, in dem die Datei gespeichert wird.
object_key: Der genaue Dateiname der PowerPoint-Präsentation, auf die zugegriffen werden soll
In diesem Schritt laden wir die PowerPoint-Datei (.pptx) aus IBM Cloud Object Storage herunter, um sie lokal zu verarbeiten.
cos_client.get_object(): Ruft die Datei aus dem angegebenen Bucket und Objektschlüssel ab.
streaming_body.read(): Liest den Dateiinhalt in einen Bytestrom ein, um ihn weiterzuverarbeiten.
In diesem Schritt speichern wir die heruntergeladene PowerPoint-Datei (.pptx) lokal, damit sie verarbeitet werden kann.
pptx_path: Legt den lokalen Dateinamen fest, unter dem die Präsentation gespeichert werden soll.
open (pptx_path, 'wb'): Öffnet die Datei im Schreib-Binärmodus, um die abgerufenen Bytes zu speichern.
f.write(pptx_bytes): Schreibt den Inhalt der heruntergeladenen Datei in die neu erstellte .pptx-Datei.
In diesem Schritt drucken wir eine Bestätigungsmeldung, um sicherzustellen, dass die PowerPoint-Datei erfolgreich gespeichert wurde. Die Funktion `print` zeigt den Dateipfad an, unter dem die .pptx-Datei lokal gespeichert ist.
In diesem Schritt definieren wir eine Funktion, um die PowerPoint-Datei (.pptx) zu verarbeiten und ihren Inhalt zu extrahieren:
slide_texts: Speichert extrahierten Text von jeder Folie.
slide_images: Speichert extrahierte Bilder als Python Imaging Library (PIL) Bildobjekte zusammen mit den entsprechenden Foliennummern.
Durchläuft die Folien, um Text aus Formen mit Textinhalt und Bilder aus in die Folien eingebetteten Objekten zu extrahieren.
Diese Funktion trennt Text und Bilder aus der PPT-Datei, sodass der Chat-Agent die Fragen der Nutzer anhand der extrahierten Inhalte leicht beantworten kann.
In diesem Schritt rufen wir die Funktion auf, um Text und Bilder aus der gespeicherten PowerPoint-Datei zu extrahieren.
pptx_path: Gibt den lokalen Pfad der heruntergeladenen PowerPoint-Datei an.
extract_text_and_images_from_pptx (pptx_path): Extrahiert Text und Bilder von den Folien.
slide_texts: Speichert den extrahierten Text aus allen Folien.
slide_images: Speichert die extrahierten Bilder.
In diesem Schritt drucken wir den extrahierten Text jeder Folie aus, um zu überprüfen, dass der PowerPoint-Inhalt korrekt verarbeitet wurde.
enumerate (slide_texts): Durchläuft den extrahierten Text und ordnet jedem die entsprechende Foliennummer zu.
Separator ('-' * 40): Hilft, Inhalte von verschiedenen Folien visuell zu unterscheiden.
In diesem Schritt bestätigen und visualisieren wir die extrahierten Bilder aus den PowerPoint-Folien.
len: Zählt die Gesamtzahl der extrahierten Bilder.
img.show(): Öffnet jedes extrahierte Bild zur Ansicht.
Sie können `.show() `durch `.save('filename.png')` ersetzen, um die Bilder lokal zu speichern.
In diesem Schritt initialisieren wir das IBM Granite-Vision-3.2-2B Modell für KI-gestützte Text- und Bildverarbeitung.
MODEL_NAME gibt das vorab trainierte Granite Vision-Modell an, das verwendet werden soll, und torch.cuda.is_available() prüft, ob eine GPU (CUDA) für schnellere Verarbeitung verfügbar ist; andernfalls wird standardmäßig die CPU verwendet.
In diesem Schritt laden wir das IBM Granite Vision-Modell und den entsprechenden Prozessor, um sowohl Text- als auch Bild-Eingaben zu verarbeiten.
AutoProcessor.from_pretrained(MODEL_NAME, trust_remote_code=True): Lädt den vortrainierten Prozessor, um Eingaben (Text und Bilder) für das Modell zu formatieren.
AutoModelForVision2Seq.from_pretrained(MODEL_NAME, trust_remote_code=True, ignore_mismatched_sizes=True).to(device): Lädt das Granite Vision-Modell und überträgt es auf das verfügbare Gerät (GPU oder CPU).
wobei gilt:
trust_remote_code=True: Gewährleistet Kompatibilität mit benutzerdefinierten Modellimplementierungen.
ignore_mismatched_sizes=True: Verhindert Fehler bei geringfügigen Inkonsistenzen in der Modellgröße.
Hinweis: Das Laden kann eine Weile dauern.
In diesem Schritt erstellen wir eine Chatfunktion, mit der Nutzer Fragen auf Basis des extrahierten Textes aus den PowerPoint-Folien stellen können.
Funktionsweise:
In diesem Schritt erstellen wir eine Chatfunktion, mit der Nutzer Fragen zu einzelnen Bildern aus den PowerPoint-Folien stellen können.
Funktionsweise:
In diesem Schritt rufen wir die Funktion chat_with_text auf, die es dem Benutzer ermöglicht, Fragen zum extrahierten Text aus den PowerPoint-Folien zu stellen.
Funktionsweise:
AUSGABE
Frage: Ist Integration ein Wettbewerbsvorteil für Ihr Unternehmen?
<|assistant|>
Ja, die Integration ist ein Wettbewerbsvorteil für Ihr Unternehmen. Sie hilft Ihnen, schneller voranzukommen und Herausforderungen zu meistern. Sie kann aber auch zu erhöhten Kosten, Ineffizienzen, Sicherheitsrisiken und einer schlechten Erfahrung führen, was letztendlich die Wettbewerbsfähigkeit eines Unternehmens und seine Fähigkeit, in einer sich schnell entwickelnden Geschäftswelt zu bestehen, gefährdet.
Stellen Sie eine Frage auf der Grundlage des Präsentationstextes (oder geben Sie 'exit' ein, um zu beenden): exit
Auf die Frage des Benutzers: „Ist die Integration ein Wettbewerbsvorteil für Ihr Unternehmen?“ verarbeitete das Granite Vision-Modell die Anfrage anhand des extrahierten PowerPoint-Folientextes und generierte eine Antwort.
Das Modell erkannte "Integration" als Geschäftskonzept an und lieferte eine strukturierte Antwort ab Folie Nummer 7, in der sowohl die Vorteile als auch die Risiken erläutert wurden. Darin wurde hervorgehoben, dass die Integration die Geschwindigkeit und Problemlösung verbessert, aber auch auf mögliche Nachteile wie erhöhte Kosten, Ineffizienzen, Sicherheitsrisiken und eine schlechte Benutzererfahrung hingewiesen, wenn sie nicht effektiv gemanagt wird.
Diese Antwort zeigt die Fähigkeit des Modells, den extrahierten Folientext zu interpretieren und eine kontextrelevante und ausgewogene Antwort zu generieren
In diesem Schritt rufen wir die Funktion chat_with_images auf, die es dem Nutzer ermöglicht, Fragen zu den aus den PowerPoint-Folien extrahierten Bildern zu stellen.
Funktionsweise:
AUSGABE
Stellen Sie eine Frage anhand der Präsentationsbilder (oder geben Sie 'exit' ein, um die Präsentation zu beenden): Was ist das für ein Bild?
Geben Sie die Foliennummer ein (1 bis 41), um nach dem Bild zu fragen: 2
Modellantwort: <|system|>
Ein Chat zwischen einem neugierigen Benutzer und einem Assistenten mit künstlicher Intelligenz. Der Assistent gibt hilfreiche, detaillierte und höfliche Antworten auf die Fragen des Nutzers.
<|user|>
Was ist das für ein Bild?
<|assistant|>
3D-Modell
Stellen Sie eine Frage zu den Präsentationsbildern (oder geben Sie „exit“ ein, um den Vorgang zu beenden): Erkläre dieses Bild
Geben Sie die Foliennummer ein (1 bis 41), um nach dem Bild zu fragen: 2
Modellantwort: <|system|>
Ein Chat zwischen einem neugierigen Benutzer und einem Assistenten mit künstlicher Intelligenz. Der Assistent gibt hilfreiche, detaillierte und höfliche Antworten auf die Fragen des Nutzers.
<|user|>
Erkläre dieses Bild
<|assistant|>
Das Bild zeigt ein 3D-Modell eines Würfels
Stellen Sie eine Frage anhand der Präsentationsbilder (oder geben Sie „exit“ ein, um den Vorgang zu beenden): Kannst du diese Tabelle erklären?
Geben Sie die Foliennummer ein (1 bis 41), um nach dem Bild zu fragen: 1
Modellantwort: <|system|>
Ein Chat zwischen einem neugierigen Benutzer und einem Assistenten mit künstlicher Intelligenz. Der Assistent gibt hilfreiche, detaillierte und höfliche Antworten auf die Fragen des Nutzers.
<|user|>
Kannst du dieses Diagramm erklären?
<|assistant|>
Hier ist ein Balkendiagramm mit dem Titel Reifegradentwicklung des Enterprise-Cloud-Marktes von der ersten bis zur vierten Generation. Die x-Achse misst den Generationenfortschritt, während die y-Achse den Reifegrad über die Jahre darstellt. Die Grafik zeigt, dass mit dem Fortschreiten der Generationen der Reifegrad des Cloud-Marktes für Unternehmen zunimmt.
Stellen Sie eine Frage anhand der Präsentationsbilder (oder geben Sie „exit“ ein, um den Vorgang zu beenden): exit
Wenn der Nutzer bildbezogene Fragen stellte, verarbeitete das Granite Vision-Modell die ausgewählten Bilder und generierte Antworten basierend auf seinem Verständnis des visuellen Inhalts.
Auf die Frage „Was ist das für ein Bild?“ (Folie 2) bezeichnete das Modell das Bild als „3D-Modell“, lieferte aber nur eine minimale Beschreibung.
Bei der Aufgabe „Erkläre dieses Bild“ (Folie 2) verfeinerte das Modell seine Antwort und identifizierte es als „ein 3D-Modell eines Würfels“.
Für „Kannst du dieses Diagramm erklären?“ (Folie 1) lieferte das Modell eine detaillierte Beschreibung des Balkendiagramms, erläuterte den Titel, die x-Achse, die y-Achse und den Gesamttrend und zeigte auf, wie sich der Reifegrad des Cloud-Marktes für Unternehmen über die Generationen hinweg weiterentwickelt.
Dieser Schritt ermöglicht Benutzern die Interaktion mit visuellen Elementen wie Tabellen, Schaubildern und Infografiken, indem sie das IBM Granite Vision-Modell für intelligente Analysen und Erklärungen nutzen
Dieses Tutorial demonstriert die Fähigkeit von IBM Granite Vision, Bilder zu interpretieren.