{"id":171236,"date":"2023-03-08T06:58:04","date_gmt":"2023-03-08T05:58:04","guid":{"rendered":"https:\/\/liora.io\/de\/?p=171236"},"modified":"2026-02-06T07:01:55","modified_gmt":"2026-02-06T06:01:55","slug":"style-transfer-deep-learning","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/style-transfer-deep-learning","title":{"rendered":"Style Transfer &#038; Deep Learning"},"content":{"rendered":"<p><strong>Style Transfer: Hast Du Dir jemals gew\u00fcnscht, wie Van Gogh malen zu k\u00f6nnen? Die \u00c4sthetik von Monet in modernen Landschaften wiederzugeben?<br \/>\nIn diesem Artikel stellen wir Dir eine Technik vor, die Deep Learning nutzt, um den Stil eines anderen Bildes auf ein Originalbild anzuwenden. Diese Optimierungstechnik ist als Neural Style Transfer bekannt und wurde erstmals in Leon A. Gatys Artikel &#8222;Neural Algorithmus&#8220; beschrieben: <a href=\"https:\/\/www.researchgate.net\/publication\/281312423_A_Neural_Algorithm_of_Artistic_Style\">Gatys, A Neural Algorithm of Artistic Style.<\/a><\/strong><\/p>\n<h3>Style Transfer, was ist das eigentlich ?<\/h3>\n<p><strong>Style Transfer<\/strong> ist eine der kreativsten Anwendungen von Convolutive Neuronal Networks (Du willst mehr \u00fcber CNNs erfahren? <a href=\"https:\/\/liora.io\/de\/deep-learning-oder-tiefes-lernen-was-ist-das-denn\">Wir haben k\u00fcrzlich einen Artikel zu diesem Thema ver\u00f6ffentlicht)<\/a><\/p>\n<p>Sie erm\u00f6glicht es, den <strong>Stil eines Bildes abzurufen<\/strong> und ihn in einem beliebigen anderen Bild wiederzugeben. Dies ist eine interessante Technik, die die internen F\u00e4higkeiten und Darstellungen neuronaler Netze aufzeigt. Sie kann sich auch in einigen wissenschaftlichen Bereichen als n\u00fctzlich erweisen, wenn es um die Augmentation oder Simulation von Bilddaten geht.<\/p>\n<p>Die fast unendlichen <strong>Kombinationen von m\u00f6glichen Inhalten und Stilen<\/strong> bringen unter den Anh\u00e4ngern neuronaler Netze einzigartige und immer kreativere Ergebnisse hervor, manchmal sogar echte Meisterwerke.<\/p>\n<p>Um zu funktionieren, muss ein Referenzbild f\u00fcr den Inhalt und ein Referenzbild f\u00fcr den Stil ausgew\u00e4hlt werden (z. B. das Kunstwerk eines ber\u00fchmten Malers). Ein drittes Bild, das mit dem Inhaltsbild initialisiert wird, wird dann nach und nach optimiert, bis es dem Inhaltsbild \u00e4hnelt, aber im Stil des zweiten Bildes &#8222;gemalt&#8220; ist.<\/p>\n<p>Das Prinzip der Stil\u00fcbertragung besteht haupts\u00e4chlich darin, zwei Abstandsfunktionen zu definieren:<\/p>\n<p><em>Die eine beschreibt den Unterschied zwischen den Inhalten zweier Bilder.<\/em><br \/>\n<em>Die andere beschreibt den Unterschied zwischen zwei Bildern in Bezug auf ihre Stile.<\/em><\/p>\n<p>Diese beiden Abst\u00e4nde m\u00fcssen dann mithilfe einer Backpropagation-Technik minimiert werden, um nach der Optimierung ein Bild zu erhalten, das dem Inhalt des Inhaltsbildes und dem Stil des Stilbildes entspricht.<\/p>\n<p>Die Abst\u00e4nde, die wir verwenden, werden weiter unten beschrieben und aus den Bildern berechnet, die aus den Zwischenschichten des neuronalen Netzes extrahiert werden.&nbsp;<\/p>\n<p>Ein beeindruckender Aspekt dieser Technik ist, dass kein neues Training von <a href=\"https:\/\/liora.io\/de\/neuronale-netze-einfach-erklaert\">neuronalen Netzen<\/a> erforderlich ist &#8211; die Verwendung von vortrainierten Netzen wie VGG19 ist ausreichend und funktioniert bestens. Wenn du dich fragst, wie das funktioniert, kannst du dir gerne unseren Artikel \u00fcber Transfer Learning ansehen.<\/p>\n<p><b>In diesem Artikel stelle ich Dir ein konkretes Beispiel f\u00fcr die Anwendung von Stil\u00fcbertragung vor, indem ich die Bibliothek <a href=\"\/?hl=fr\">Tensorflow<\/a> <\/b> verwende.<\/p>\n<p>Der hier verwendete Ansatz ahmt die Methoden des Originalpapiers so genau wie m\u00f6glich nach. Der vollst\u00e4ndige Code dieses Artikels ist unter <a href=\"https:\/\/github.com\/Liora\/blog\/blob\/master\/style_transfer\/style_transfer.ipynb\">dieser Adresse verf\u00fcgbar&nbsp;<\/a><\/p>\n<p>Indem wir jeweils nur zwei Basisbilder verwenden, k\u00f6nnen wir Meisterwerke wie diese Darstellung von Botticellis &#8222;Die Geburt der Venus&#8220; schaffen, wenn sie vier Jahrhunderte sp\u00e4ter von Marc Chagall gemalt worden w\u00e4re.<\/p>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"601\" height=\"395\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3.png 601w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3-300x197.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\"><figcaption><\/figcaption><\/figure>\n<p>F\u00fcr unser Beispiel brauchen wir zwei Grundbilder, die wir zusammen &#8222;mischen&#8220; wollen. Das erste steht f\u00fcr den Inhalt, den wir behalten m\u00f6chten. In meinem Fall werde ich das bekannte Gem\u00e4lde &#8222;Die Geburt der Venus&#8220; von Sandro Botticelli verwenden :<\/p>\n<figure>\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.kazoart.com\/blog\/loeuvre-a-la-loupe-la-naissance-de-venus-botticelli\/\"><br \/>\n<img decoding=\"async\" width=\"800\" height=\"502\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-1-1024x643.jpg\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-1-1024x643.jpg 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-1-300x188.jpg 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-1-768x482.jpg 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-1.jpg 1280w\" sizes=\"(max-width: 800px) 100vw, 800px\">\t\t\t\t\t\t\t\t<\/a><figcaption><\/figcaption><\/figure>\n<p>Das zweite Bild wird den Stil enthalten, den wir beibehalten und auf das erste Bild anwenden wollen.<\/p>\n<p>Nehmen wir als Beispiel ich den unvergleichlichen Stil des ikonischen <strong>Malers des 20. Jahrhunderts, Marc Chagall,<\/strong> durch eines seiner Werke mit dem Titel La vie.<\/p>\n<figure>\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/i.pinimg.com\/originals\/6f\/dc\/7b\/6fdc7b6ca8cd57e42dc09d46a23e12b1.jpg\"><br \/>\n<img decoding=\"async\" width=\"800\" height=\"608\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/1-2-1024x778.jpg\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/1-2-1024x778.jpg 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/1-2-300x228.jpg 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/1-2-768x584.jpg 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/1-2.jpg 1397w\" sizes=\"(max-width: 800px) 100vw, 800px\">\t\t\t\t\t\t\t\t<\/a><figcaption><\/figcaption><\/figure>\n<h3>Hochladen und Vorverarbeitung von Bildern<\/h3>\n<p>Zun\u00e4chst werden wir die <strong>Daten laden und vorbereiten,<\/strong> um sie demselben Vorverarbeitungsprozess zu unterziehen, der auch beim Training der <strong>VGG-Netze<\/strong> verwendet wird. Dann werden wir auch eine Funktion erstellen, die den umgekehrten Prozess durchf\u00fchrt, damit wir unser endg\u00fcltiges Bild anzeigen k\u00f6nnen.<\/p>\n<p>[]<\/p>\n<h4>Wie kann man den Stil und den Inhalt eines Bildes unterscheiden?<\/h4>\n<p>Wenn ein konvolutives neuronales Netz (wie VGG19) trainiert wird, um eine Bildklassifizierung durchzuf\u00fchren, muss es das Bild kennen und verstehen.<\/p>\n<p><a href=\"https:\/\/liora.io\/de\/deep-learning-vs-machine-learning\">Im Gegensatz zum klassischen Machine Learning<\/a> werden beim Deep Learning die Features w\u00e4hrend des <em>Backpropagation-Lernens vom Netzwerk selbst generiert.<\/em><\/p>\n<blockquote><p>Beim Training verwendet das<strong> neuronale Netz die Pixel der gelieferten Bilder,<\/strong> um durch verschiedene Transformationen eine interne Repr\u00e4sentation des Bildes zu erstellen.&nbsp; Nachdem das Netz trainiert wurde, wird das eingegebene Rohbild in eine Folge von komplexen Merkmalen umgewandelt, die im Bild vorhanden sind, um die Klasse, zu der das Bild geh\u00f6rt, vorherzusagen.<\/p><\/blockquote>\n<p>So k\u00f6nnen in den mittleren Schichten des Netzwerks einige der Merkmale eines Bildes extrahiert werden, um seinen Inhalt und seinen Stil zu beschreiben.<\/p>\n<p>Um sowohl den Inhalt als auch den Stil unserer Bilder zu erhalten, werden wir daher einige<strong> Zwischenschichten aus unserem Modell extrahieren.&nbsp;<\/strong> Ausgehend von der Eingangsschicht des Netzwerks repr\u00e4sentieren die ersten Schichtaktivierungen Merkmale auf niedrigerer Ebene wie Kanten und Texturen. Die letzten Schichten repr\u00e4sentieren Merkmale auf h\u00f6herer Ebene, wie Ohren oder Augen.<\/p>\n<p>Wir werden also eine der letzten Ebenen verwenden, um den Inhalt darzustellen, und einen Satz von 5 Ebenen (die ersten in jedem Block), um den Stil der Bilder darzustellen.<\/p>\n<p><b>Wir laden die vorab trainierte Vorlage mit ihren Gewichten und erstellen eine neue Vorlage, die als Eingabe ein Bild nimmt und die Zwischenschichten zur\u00fcckgibt, die dem Inhalt und dem Stil des Bildes entsprechen.interm\u00e9diaires<\/b> correspondant au <b>contenu <\/b>et au <b>style<\/b> de l\u2019image.<\/p>\n<h3>Style Transfer: Definition und Erstellung von Verlustfunktionen<\/h3>\n<p>Unsere<strong> Definition der Verlustfunktion<\/strong> f\u00fcr Inhalte ist recht einfach. Wir \u00fcbertragen sowohl das Bild des gew\u00fcnschten Inhalts als auch unser grundlegendes Eingangsbild an das<a href=\"https:\/\/liora.io\/de\/u-net-weiterbildungen-data-cn\"> Netzwerk<\/a>. Damit k\u00f6nnen wir die Ausgaben der mittleren Schichten unseres Modells zur\u00fcckgeben. Dann nehmen wir einfach den mittleren quadratischen Fehler zwischen den beiden Zwischendarstellungen dieser Bilder.<\/p>\n<p><em>Der Zweck dieser Verlustfunktion ist es, sicherzustellen, dass das erzeugte Bild einige der &#8222;globalen&#8220; Eigenschaften des Inhaltsbildes beibeh\u00e4lt.&nbsp;<\/em><\/p>\n<p>In unserem Beispiel wollen wir sicherstellen, dass das erzeugte Bild die Pose der G\u00f6ttin, die in einer Muschelschale steht, sowie die Figuren um sie herum wiedergibt. Das bedeutet, dass Formen wie K\u00f6rper, Haare und die Muschel erkennbar sein m\u00fcssen.<\/p>\n<p>Wir f\u00fchren die Backpropagation auf die \u00fcbliche Weise durch, um diesen Inhaltsverlust zu minimieren. Wir ver\u00e4ndern also das Ausgangsbild so lange, bis es am Ausgang der gew\u00e4hlten Zwischenebene eine \u00e4hnliche Antwort erzeugt wie das Bild mit dem urspr\u00fcnglichen Inhalt.<\/p>\n<p>F\u00fcr den Stil wird aufgrund der <strong>Anzahl der Ebenen die Verlustfunktion<\/strong> anders aussehen.<\/p>\n<p>Anstatt die Ausgaben der rohen Zwischenebenen des Basis-Eingabebildes und des Stilbildes zu vergleichen, verwenden die Autoren des Originalpapiers die <strong>Differenz zwischen den Gram-Matrizen<\/strong> der ausgew\u00e4hlten Ebenen.<\/p>\n<p>Die Gram-Matrix ist eine quadratische Matrix, die die Produkte der Punkte zwischen jedem vektorisierten Filter der Ebene enth\u00e4lt. Die Gram-Matrix kann daher als eine nicht-normalisierte Korrelationsmatrix f\u00fcr die Filter einer Ebene betrachtet werden.<\/p>\n<p>Um einen Stil f\u00fcr unser Eingabebild zu erzeugen, f\u00fchren wir einen <strong>Gram-Abstieg vom Inhaltsbild<\/strong> aus, um es in ein Bild umzuwandeln, das den Stil des Stilbildes kopiert.<\/p>\n<p>Jetzt m\u00fcssen wir nur noch eine Funktion erstellen, um unsere verschiedenen Bilder zu laden, sie durch unsere Vorlage laufen zu lassen, um die Inhalts- und Stildarstellungen zur\u00fcckzugeben, dann die Verlustfunktionen und den Gradienten zu berechnen, um mit der Optimierung fortzufahren.<\/p>\n<p>Und das war&#8217;s!<\/p>\n<p>Wir k\u00f6nnen die Methode dann auf eine Reihe von Bildern anwenden, um unseren Style Transfer zu testen. Hier sind einige Beispiele:<\/p>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"584\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/5-1-1024x747.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/5-1-1024x747.png 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/5-1-300x219.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/5-1-768x560.png 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/5-1.png 1480w\" sizes=\"(max-width: 800px) 100vw, 800px\"><figcaption><\/figcaption><\/figure>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"584\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/4-1-1024x747.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/4-1-1024x747.png 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/4-1-300x219.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/4-1-768x560.png 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/4-1.png 1480w\" sizes=\"(max-width: 800px) 100vw, 800px\"><figcaption><\/figcaption><\/figure>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"584\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3-2-1024x747.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3-2-1024x747.png 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3-2-300x219.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3-2-768x560.png 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/3-2.png 1480w\" sizes=\"(max-width: 800px) 100vw, 800px\"><figcaption><\/figcaption><\/figure>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"584\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-4-1024x747.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-4-1024x747.png 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-4-300x219.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-4-768x560.png 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/2-4.png 1480w\" sizes=\"(max-width: 800px) 100vw, 800px\"><figcaption><\/figcaption><\/figure>\n<p><strong>Du m\u00f6chtest gerne mehr \u00fcber Deep Learning lernen?<a href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\"> Starte bald einen unserer Data Scientist-Kurse!&nbsp;<\/a><\/strong><\/p>\n<p>?Auch interessant:<\/p>\n<table dir=\"ltr\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col width=\"268\"><\/colgroup>\n<tbody>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Deep Neural Network&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/deep-neural-network\"><a href=\"https:\/\/liora.io\/de\/deep-neural-network\" target=\"_blank\" rel=\"noopener\">Deep Neural Network<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Alphacode Deepminds&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/alphacode-deepminds-neues-ki-tool-zum-schreiben-von-computercode\"><a href=\"https:\/\/liora.io\/de\/alphacode-deepminds-neues-ki-tool-zum-schreiben-von-computercode\" target=\"_blank\" rel=\"noopener\">Alphacode Deepminds<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Deep Learning vs. Machine Learning&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/deep-learning-vs-machine-learning\"><a href=\"https:\/\/liora.io\/de\/deep-learning-vs-machine-learning\" target=\"_blank\" rel=\"noopener\">Deep Learning vs. Machine Learning<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Deep Learning - was ist das eigentlich ?&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/deep-learning-oder-tiefes-lernen-was-ist-das-denn\"><a href=\"https:\/\/liora.io\/de\/deep-learning-oder-tiefes-lernen-was-ist-das-denn\" target=\"_blank\" rel=\"noopener\">Deep Learning &#8211; was ist das eigentlich ?<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Deep Fake Gefahren&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/deep-fake-gefahren-massnahmen-und-rechtslage\"><a href=\"https:\/\/liora.io\/de\/deep-fake-gefahren-massnahmen-und-rechtslage\" target=\"_blank\" rel=\"noopener\">Deep Fake Gefahren<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Python Deep Learning Basics&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/python-deep-learning-die-basics\"><a href=\"https:\/\/liora.io\/de\/python-deep-learning-die-basics\" target=\"_blank\" rel=\"noopener\">Python Deep Learning Basics<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Style Transfer: Hast Du Dir jemals gew\u00fcnscht, wie Van Gogh malen zu k\u00f6nnen? Die \u00c4sthetik von Monet in modernen Landschaften wiederzugeben? In diesem Artikel stellen wir Dir eine Technik vor, die Deep Learning nutzt, um den Stil eines anderen Bildes auf ein Originalbild anzuwenden. Diese Optimierungstechnik ist als Neural Style Transfer bekannt und wurde erstmals [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":171241,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-171236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/171236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=171236"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/171236\/revisions"}],"predecessor-version":[{"id":217699,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/171236\/revisions\/217699"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/171241"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=171236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=171236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}