[PYTHON] [Titan Craft] Ich habe ein Werkzeug gemacht, um einen Riesen nach Minecraft zu rufen

Was ist TitanCraft?

Eine Minecraft .schematic-Datei wird aus einem einzelnen Ganzkörperbild generiert, das mit einem Smartphone usw. über ein 3D-Objekt aufgenommen wurde. Sie können einen Riesen beschwören, indem Sie die generierte ".schematic" -Datei mit "mod" wie WorldEdit in die Welt von Micra laden. Ich werde.

Der Quellcode ist [hier] verfügbar (https://github.com/takecx/TitanCraft)

Du kannst das

titan1.png

  • An diesem Tag erinnerte sich die Menschheit *

titan2.png

titans.png

Prozessablauf

Verfolgen wir den Prozessablauf anhand des folgenden Bildes. (Das Bild wurde von [hier] aufgenommen (https://publicdomainq.net/business-man-portrait-0040715/): pray_tone1 :) man_2.jpg

1. Extrahieren Sie den Vordergrund aus dem Eingabebild

Ich verwende ein Repository namens remove_bg, das ich erstellt habe, um den Vordergrund zu extrahieren. Zu diesem Zeitpunkt ist im nächsten Prozess ein Maskenbild für "PI Fu" erforderlich. Erstellen Sie es daher zusammen. Wenden Sie in remove_bg zuerst "Semantische Segmentierung" auf das Eingabebild an, um das Zielobjekt zu extrahieren. Danach wird ein ternäres Bild namens "Trimap" generiert und zusammen mit dem Eingabebild in FBA_Matting eingegeben, um den Vordergrund zu extrahieren.

** [Verarbeitungsergebnis] ** man_2_remove_bg.png

Es ist nicht sehr geeignet, da das Beispielbild fast keinen Hintergrund hat, aber Sie können sehen, dass die Person gut ausgeschnitten ist. (Es gibt einige Stellen, an denen der Hintergrund erhalten bleibt, z. B. in der Nähe von Schritt und Hals.) Ich dachte, es wäre genauer, wenn ich API von remove.bg verwenden würde, aber es gab eine Gebühr. Also habe ich es diesmal nicht benutzt.

2. Generieren Sie mit PIFu ein 3D-Objekt aus einem Bild

Erstellen Sie ein 3D-Objekt aus einem Bild mit einer Technik namens PIFu. Dieser Prozess leitet nicht nur die 3D-Form ab, sondern auch die Textur von Kleidung und Frisuren, die im Bild nicht angezeigt werden. Ich verstehe die Details von "PLFu" nicht wirklich, aber Sie können sie in diesem Artikel etwas detaillierter finden.

** [Verarbeitungsergebnis] ** man_1_obj.jpg (Visualisiert mit * meshlab * *)

Die Rücken- und Po-Teile, die im Eingabebild nicht angezeigt werden, werden ebenfalls gut reproduziert. Es ist wunderbar. Gegenwärtig mag es ein wenig schwierig sein, es als 3D-Objekt zu verwenden, aber es scheint nicht lange zu dauern, bis ein schönes 3D-Objekt aus einem Bild generiert werden kann, wenn die Technologie in Zukunft weiter voranschreitet: ok_hand_tone2:

3. Generieren Sie aus einem 3D-Objekt eine ".schematic" -Datei für Minecraft

Unter Verwendung des von mir erstellten Repositorys obj2schematic habe ich die von [2.](# 2.-Generieren eines 3D-Objekts aus einem Bild mit "PIFu") generierte ".obj" -Datei verwendet, um ein ".schematic" für Minecraft zu erstellen. `Erstellen Sie eine Datei. Es liest die von PIFu erzeugte .obj-Datei, analysiert den Inhalt und konvertiert ihn in einen Micra-Block. Sie können einen Riesen beschwören, indem Sie die generierte ".schematic" -Datei mit "mod" wie WorldEdit in die Welt laden!

** [Verarbeitungsergebnis] ** man_schematic.png

Wie wär es damit⁉ Ich denke, es ist gut gemacht: smile_cat:

Unten ist die Galerie der herbeigerufenen Riesen.

2020-08-03_16.53.29.png

2020-08-03_16.55.51.png

2020-08-03_16.56.12.png

2020-08-03_16.58.22.png

2020-08-03_17.01.51.png

2020-08-03_17.05.14.png

Zusammenfassung

Ich habe ein Werkzeug erstellt, um einen Riesen in Minecraft aus einem Bild zu beschwören. Ich habe es möglich gemacht, es auf Google Colab auszuführen. Bitte verwenden Sie es. Open In Colab

Wenn Sie es lokal ausführen möchten, benötigen Sie eine Python-Umgebung. Wenn Sie es jedoch löschen können, können Sie es sofort verwenden. Selbst in meiner Umgebung ohne GPU (MacBook Pro (2019)) kann ein Bild (512 x 512) in 2 bis 3 Minuten verarbeitet werden.

Ich habe es geschafft, weil ich wollte, dass mein Sohn "Wow!" Sagt, aber ich bin froh, dass ich es so machen konnte, wie ich es mir vorgestellt hatte: joy_cat: Dieses Mal habe ich ein 3D-Objekt aus einem Ganzkörperbild erstellt, aber ich denke, dass ich verschiedene andere Dinge tun kann, indem ich das zu verwendende Modell wechsle. Wenn Sie Ideen haben, teilen Sie uns dies bitte in den Kommentaren usw .: rolling_eyes:

Ich verwende auch öffentliche Modelle wie "PIFu" und "FBA_Matting", aber es ist erstaunlich, dass es sich in einem Zustand befindet, in dem es verwendet werden kann, ohne die Details jeder Methode zu verstehen. Ich fühlte es wieder.

Recommended Posts

[Titan Craft] Ich habe ein Werkzeug gemacht, um einen Riesen nach Minecraft zu rufen
Ich habe ein Tool erstellt, um Hy nativ zu kompilieren
Ich habe ein Tool erstellt, um neue Artikel zu erhalten
Ich habe ein Tool erstellt, um eine Wortwolke aus Wikipedia zu erstellen
Ich habe ein Skript erstellt, um Piktogramme anzuzeigen
Ich habe ein Tool zum automatischen Durchsuchen mehrerer Websites mit Selenium (Python) erstellt.
Ich habe ein CLI-Tool erstellt, um Bilder in jedem Verzeichnis in PDF zu konvertieren
Ich habe ein Tool erstellt, um Jupyter py mit VS Code in ipynb zu konvertieren
Ich habe ein nützliches Tool für Digital Ocean erstellt
Ich habe ein Router-Konfigurationssammlungstool Config Collecor erstellt
Ich habe ein Tool erstellt, um Slack über Connpass-Ereignisse zu informieren, und es zu Terraform gemacht
Ich habe gerade ein Tool erstellt, mit dem Daten mithilfe der GUI-Operation einfach als Diagramm angezeigt werden können
Ich habe ein Tool zum Generieren von Markdown aus der exportierten Scrapbox-JSON-Datei erstellt
Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt
〇✕ Ich habe ein Spiel gemacht
Lassen Sie uns Chat-Benutzerverwaltungstool gemacht
Ich habe eine Bibliothek erstellt, um japanische Sätze schön zu brechen
Ich habe ein Reinigungstool für Google Container Registry erstellt
Ich habe ein Skript erstellt, um ein Snippet in README.md einzufügen
Ich habe ein Python-Modul erstellt, um Kommentare zu übersetzen
Ich habe einen Code erstellt, um illustration2vec in ein Keras-Modell zu konvertieren
Ich habe einen Befehl zum Markieren des Tabellenclips gegeben
Ich habe eine Python-Bibliothek erstellt, die einen rollierenden Rang hat
Ich habe ein Tool zur Erzeugung sich wiederholender Textdaten "rpttxt" erstellt.
Erstellt einen Toolsver, der Betriebssystem, Python, Module und Toolversionen an Markdown ausspuckt
Ich habe ein Tool erstellt, mit dem das Erstellen und Installieren eines öffentlichen Schlüssels etwas einfacher ist.
Ich habe eine Schachtel gemacht, um mich auszuruhen, bevor Pepper müde wird
Ich habe einen Befehl zum Generieren eines Kommentars für eine Tabelle in Django eingegeben
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich habe einen Python-Text gemacht
Ich habe ein Tool erstellt, um automatisch ein einfaches ER-Diagramm aus der Anweisung CREATE TABLE zu generieren
Erstellt ein Tool, mit dem Sie bequem Parameter für Modelle des maschinellen Lernens festlegen können
Ich habe ein Plug-In erstellt, das "Daruma-san Fell" mit Minecraft ausführen kann
Ich habe Sie dazu gebracht, Befehle über einen WEB-Browser auszuführen
Ich habe ein Drehbuch gemacht, um bei meinem Koshien Hallo zu sagen
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, ein Programm zu erstellen, um die Fehlersuche von Saiseriya zu lösen (Hinweis)
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Erstelltes WebSocket Client / Server-CLI-Tool (wie WebSocket Version Netcat)
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe den Befehl gegeben, einen farbenfrohen Kalender im Terminal anzuzeigen
Ich habe ein CUI-basiertes Übersetzungsskript erstellt (2)
Ich habe einen Wikipedia Gacha Bot gemacht
Ich habe mit Python eine Lotterie gemacht.
Ich habe ein CUI-basiertes Übersetzungsskript erstellt
Tool zum Konvertieren der Juniper-Konfiguration
Ich habe mit Python einen Daemon erstellt
Ich habe einen Docker-Container erstellt, um JUMAN ++, KNP, Python (für pyKNP) zu verwenden.
Ich habe ein Plugin erstellt, um mit Vim eine Markdown-Tabelle aus CSV zu generieren
Ich habe einen Passwortgenerator erstellt, um Kindern Python3 beizubringen (Bonus) * Vollständig neu erstellt
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
[Django] Erstellt ein Feld zur Eingabe von Daten mit 4-stelligen Zahlen
Ich habe einen Küchentimer erstellt, der in der Statusleiste angezeigt wird!
Ich habe eine Art einfaches Bildverarbeitungswerkzeug in der Sprache Go erstellt.
Ich habe ein Programm erstellt, um Sie per LINE zu benachrichtigen, wenn Schalter eintreffen