Social-Media-Werbung wird für viele Marketingziele eingesetzt. Dennoch konzentrieren sie sich hauptsächlich auf visuelle Elemente, die den Visitors auf die Web site lenken und die Konversion erreichen könnten, die dem Geschäftsziel entspricht. Bei unserer Arbeit in einer mittelgroßen Medienagentur bearbeiten wir oft mehrere Aufgaben und tragen viele Rollen. Wir entwickeln Anzeigentexte und Schlagzeilen, die Kunden anziehen und manchmal ihren Einfluss auf die Anzeigenleistung untergraben.
Mein Ziel warfare es, Bildkopien mit einem zu extrahieren vorab trainiertes Modell und sehen Sie, wie intestine das Modell den Textual content extrahiert. Schließlich wollte ich die kreative Leistung durch die Kombination von Anzeigentiteln und extrahierten Bildkopien sehen.
Für die primären Metriken dieses kleinen Projekts ist die CTR (Klickrate) Und Wechselkurs werden die wichtigsten KPIs sein (Wichtige Leistungsindikatoren).
Um Kopien aus Anzeigenbildern zu extrahieren, habe ich die folgenden Schritte ausgeführt:
Suchen Sie nach einem vorab trainierten Modell und probieren Sie eine Beispielanzeige aus
Ich habe zunächst nach vorab trainierten Open-Supply-Modellen aus verschiedenen Quellen gesucht. Jede Ressource schlug eine Python-Bibliothek mit dem Namen vor: Tesserakt. Additionally habe ich den unten gezeigten Code heruntergeladen und ausgeführt.
pip set up pytesseract pillow
pip set up pillow
from PIL import Picture
from pytesseract import pytesseract# Defining paths to tesseract.exe
# and the picture we'd be utilizing
path_to_tesseract = r"C:Program FilesTesseract-OCRtesseract.exe"
image_path = r"1000x1500_165708-MTBL.jpg"
# Opening the picture & storing it in a picture object
img = Picture.open(image_path)
# Offering the tesseract executable
# location to pytesseract library
pytesseract.tesseract_cmd = path_to_tesseract
# Passing the picture object to image_to_string() perform
# This perform will extract the textual content from the picture
textual content = pytesseract.image_to_string(img, lang = 'eng')
# Displaying the extracted textual content
print(textual content)
img
Intestine. Aber es dauerte nur kurze Zeit, bis ich herausgefunden habe, dass es keine überfüllten Anzeigenkopien extrahieren kann. Daher konnte ich nicht nach den anderen Modellen suchen.
Verwenden Sie die Google Cloud Imaginative and prescient-API
Der Imaginative and prescient-API ist ein vorab trainiertes Modell für maschinelles Lernen, ein Pc-Imaginative and prescient-Produkt von Google Cloud. Obwohl die Nutzung der Google-API möglicherweise Geld kostet, warfare die Anmeldung kostenlos und ich erhielt 300 $ Guthaben zur Nutzung. Für dieses kleine Projekt könnte ich es genauso intestine versuchen.
Weitere Informationen zur Imaginative and prescient API und den Preisen finden Sie hier: https://cloud.google.com/vision?_ga=2.122620552.-2004423143.1686672475.
- Zuerst habe ich ein Dienstkonto von Google Cloud eingerichtet, mit dem ich die Imaginative and prescient API ausführen kann. Dann habe ich die Umgebung eingerichtet und die erforderlichen Python-Bibliotheken in VS Code heruntergeladen, wie unten gezeigt:
import io
import os
import pandas as pd
from google.cloud import imaginative and prescient# consumer autho and situations
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r"service_owner.json"
consumer = imaginative and prescient.ImageAnnotatorClient()
Sie können jeden Schritt des YouTube-Movies, das ich mir zum Einrichten der Umgebung angesehen habe, hier verfolgen: https://youtu.be/kZ3OL3AN_IA
2. Der YouTube-Ersteller hat auch eine geschrieben Python-Datei Enthält Funktionen und Klassen, die die Extraktion erleichtern würden. Additionally habe ich die Datei in das Verzeichnis importiert, an dem ich arbeite, wie unten gezeigt:
from google_vision_ai import VisionAI
from google_vision_ai import prepare_image_local, prepare_image_web, draw_boundary, draw_boundary_normalized, prepare_images_from_directory
3. Dann konnte ich durch Importieren der .py-Datei aus Nr. 2 ein einzelnes Bild extrahieren. Ich habe auch den Index angegeben, sodass das Ergebnis nur eine einzelne Zeile anzeigt.
# put together the picture (native supply from picture folder)
image_path = r".picture"
picture = prepare_images_from_directory(image_path)
# from the google_vision_ai.py
va = VisionAI(consumer, picture)
texts = va.text_detection()
df = pd.DataFrame(texts)
# single line end result
df = df.iloc[:, [0]].str.substitute('n', ' ')
print(df)
4. Der vollständige Code sieht so aus.
import io
import os
import pandas as pd
from google.cloud import imaginative and prescient
from google_vision_ai import VisionAI
from google_vision_ai import prepare_image_local, prepare_image_web, draw_boundary, draw_boundary_normalized, prepare_images_from_directory# consumer autho and situations
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r"service_owner.json"
consumer = imaginative and prescient.ImageAnnotatorClient()
# outline the basis listing
root_dir = r"your_directory_here"
all_text_detections = []
# loop over every folder within the root listing
for folder_name in os.listdir(root_dir):
# create the complete folder path
folder_path = os.path.be a part of(root_dir, folder_name)
# solely course of this folder if it is really a listing
if os.path.isdir(folder_path):
# loop over every picture file within the present listing
for image_file in os.listdir(folder_path):
# solely course of this file if it is a .jpg file
if image_file.endswith('.jpg'):
# create the complete picture path
image_path = os.path.be a part of(folder_path, image_file)
# put together the picture
picture = prepare_image_local(image_path)
va = VisionAI(consumer, picture)
texts = va.text_detection()
if texts:
# Create a DataFrame and get the primary cell
df = pd.DataFrame(texts)
first_cell = df.iloc[0, 0].substitute('n', ' ')
# Append the folder identify, picture file identify and the primary cell to the checklist as a tuple
all_text_detections.append((folder_name, image_file, first_cell))
# Create a DataFrame of all picture information and first cells
df_all_text_detections = pd.DataFrame(all_text_detections, columns=['folder_name', 'file_name', 'copy'])
print(df_all_text_detections)
# Save DataFrame to a CSV file
df_all_text_detections.to_csv('image_copy.csv', index=False)
print("CSV file has been saved.")
Das Ergebnis der gespeicherten CSV-Datei würde so aussehen:
Bitte beachten Sie, dass die Google API nicht auf die in Ihrem Namen bereitgestellte permalink_url zugreifen kann!
5. Um die Meta-Inventive-Leistungsdaten zusammenzuführen, habe ich permalink_url verwendet, um jedes Bild in das lokale Verzeichnis herunterzuladen, um die Google API auszuführen. – Manueller Prozess… Deshalb habe ich den Dateinamen als Hashing-Code nach „d=“ in der URL gespeichert, um sie eindeutig zu machen.
6. Dann habe ich den Code geändert, um das lokale Verzeichnis auszuführen, wie unten gezeigt:
import io
import os
import pandas as pd
from google.cloud import imaginative and prescient
from google_vision_ai import VisionAI
from google_vision_ai import prepare_image_local, prepare_image_web, draw_boundary, draw_boundary_normalized, prepare_images_from_directory# consumer autho and situations
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r"proprietor.json"
consumer = imaginative and prescient.ImageAnnotatorClient()
# put together the pictures (native supply)
image_dir = r".Ad_image"
image_files = os.listdir(image_dir)
all_text_detections = []
# loop over every picture and get the primary cell of textual content detection
for image_file in image_files:
image_path = os.path.be a part of(image_dir, image_file)
picture = prepare_image_local(image_path)
va = VisionAI(consumer, picture)
texts = va.text_detection()
if texts:
# Create a DataFrame and get the primary cell
df = pd.DataFrame(texts)
first_cell = df.iloc[0, 0].substitute('n', ' ')
# Append the picture file identify and the primary cell to the checklist as a tuple
all_text_detections.append((image_file, first_cell))
# Create a DataFrame of all picture information and first cells
df_all_text_detections = pd.DataFrame(all_text_detections, columns=['ImageFile', 'image_copy'])
df_all_text_detections.to_csv('fb_image_copy.csv', index=False)
Das Ergebnis würde etwa so aussehen:
Ordnen Sie die Anzeigenkopien der permalink_url zu
Ich habe eine Nachschlagetabelle erstellt, die ich dafür verwenden kann vlookup Formel in Excel. Sobald das erledigt ist, habe ich den Meta-Inventive-Datensatz mit der extrahierten Kopie zusammengeführt. Dann habe ich die CTR und die Conversion-Price berechnet (siehe unten).
Die erste Überschrift und der Bildtext haben intestine funktioniert!
Aus diesem Projekt konnte ich Kopien von Anzeigen extrahieren und sie mit Meta-Inventive-Daten zusammenstellen. Ich wünschte, andere automatisierte Methoden könnten jeden manuellen Prozess reduzieren. Für die Zukunft aircraft ich, mithilfe der Google Imaginative and prescient API kontinuierlich Kopien aus Anzeigen zu extrahieren. Erweiterung des Datensatzes Und Analyse der leistungsstärksten Kombination aus Anzeigentiteln und Kopien. Sobald das soweit ist, habe ich vor Feinabstimmung Übertragen Sie die Daten an das Giant Language Mannequin (LLM) und generieren Sie Anzeigenkopien!
Bitte machen Sie Vorschläge und Empfehlungen für meine Projekte!