In Japan erstellte illustrierte Inhalte für Erwachsene müssen gesetzlich zensiert werden. Zwei gängige Arten der Zensur sind Zensurstreifen und Mosaikunschärfen. Für uns Degenerierte, die außerhalb Japans leben, bedeutet das, dass wir auch den Gittern und Mosaiken ausgesetzt sind. Es gibt eine Lösung, DeepCreamPy von deeppomf, die die Zensoren überlisten kann, vorausgesetzt, Sie sagen ihr, wo sich die Zensoren befinden. Das ist ein langer und mühsamer Prozess, daher hoffe ich, diesen Prozess mit diesem Projekt zu automatisieren. Dieses Projekt wird Deep Learning und Bildsegmentierung nutzen, Techniken, die typischerweise in autonomen Fahrzeugen und Computer-Vision-Aufgaben verwendet werden. Neu für 1.6.3 ist, dass wir ESRGAN als Alternative zu DeepCreamPy hinzugefügt haben, das nach der Erkennung auch ein Mosaikbild/-video dezensiert.
Dies basiert auf Matterports Mask R-CNN und die Videodezensierung verwendet ESRGAN.
Hier ist ein NSFW-Video, das besser zeigt, was dieses Projekt am alten Modell 161 leistet.
Twitter (NSFW).
Gefällt Ihnen, was Sie sehen? Helfen Sie mit, dieses Projekt zu finanzieren:
Sie können an Entwicklungs- und Neuigkeitendiskussionen auf dem Discord-Kanal teilnehmen: https://discord.gg/j4dPZ7W
Beispiel einer Balkenerkennung beim Modell 226:
Beispiele für die Mosaikerkennung beim Modell 236:
Für beide Beispiele bietet das neueste Modell 161 weitaus genauere Masken und Erkennung.
Sie benötigen dieselben Anforderungen wie für die Mask RCNN-Implementierung von Matterport, mehr nicht. Beachten Sie, dass ich Tensorflow 1.8.0, Tensorflow-GPU 1.9.0, Torch 0.4.1 und Keras 2.2.0 verwende. Ich habe die Stabilität neuerer Kombinationen nicht vollständig getestet. Ich verwende Anaconda3 für meine Befehlszeile.
Für die ausführbare Datei wird nur Windows unterstützt. Sie können diesen Code für Linux abrufen.
main.py Enthält die grafische Benutzeroberfläche und die gesamte E/A-Verarbeitung und Dateianalyse sowie die grundlegende Fehlererkennung. Instanziiert die Detektorklasse.
detector.py Enthält meine Detektorklasse, die für den Aufbau des neuronalen Netzwerks, das Starten der Inferenzerkennung und die Erstellung einer Überlagerung aus der Maske für DCP verantwortlich ist. Benötigt hentai.py nicht mehr und kann Erkennungen selbstständig durchführen. Verwaltet auch die ESRGAN-Funktionalität.
hentai.py Schnittstellen zwischen meinem Detektor und dem Modell. Basierend auf Balloon.py der Mask RCNN-Implementierung. Wird nur zum Training benötigt.
inspect_h_model.ipynb Dieses Notizbuch ist identisch mit dem Ballon-Notizbuch. Ich habe es stattdessen so geändert, dass es mit diesem Projekt funktioniert, und es eignet sich am besten zur Inspektion eines Modells. Für eine detaillierte Protokollierung verwenden Sie Tensorboard (das installiert werden sollte, wenn Sie über Tensorflow verfügen).
inspect_h_data.ipynb Dasselbe wie oben, außer dass dieses Notizbuch zur Validierung des Datensatzes verwendet wird. Enthält außerdem coole Informationen, die einige der Besonderheiten und Funktionen von MaskRcnn zeigen
test_combined_generator.py Skript, das die Taktzensur und Annotation automatisiert, mehr erklärt weiter unten. Dies soll in einem separaten Ordner abgelegt werden und erwartet unzensierte Bilder in einem Ordner namens „decensored_input“, gibt das gesperrte Bild in „decensored_input_original“ aus und füllt eine CSV-Datei mit den Anmerkungen. Sie müssen dieses Skript nicht verwenden, es sei denn, Sie möchten beim Erweitern des Datensatzes helfen. Treten Sie in diesem Fall dem Discord bei und kontaktieren Sie mich.
hent_AI_COLAB_1.ipynb Google Colab-Notizbuch mit Anweisungen für die ESRGAN-Videodezensierung. Dadurch werden die GPUs von Google in der Cloud kostenlos genutzt und sollten schneller sein als die meisten, wenn nicht alle Consumer-GPUs. Sitzungen werden jedoch nach 30 Minuten Inaktivität oder 12 Stunden gelöscht. Ich empfehle diese Option für jede Art von Video-Dezensierung, sie ist optisch gut genug und wirklich schnell.
green_mask_project_mosaic_resolution.py Skript von GMP, das die Granularität eines Mosaiks (Größe der Mosaikkästen) zur Verwendung bei der ESRGAN-Dezensierung schätzt.
hconfig.ini Konfigurationsdatei, die Verzeichnisinformationen enthält.
Der Datensatz enthält eine Mischung aus einigen manuellen Anmerkungen und größtenteils manuell mit Anmerkungen versehenen Bildern, die mit unserem test_combined_generator erstellt wurden. Dieses Skript verwendet unzensierte Bilder als Eingabe und kann mithilfe von NudeNet einen Klon des Bildes mit einem Mosaik und zufälligen Balkenzensuren erstellen. Dieser Datensatz wird hier nicht bereitgestellt. Bei Interesse könnt ihr mich auf Discord kontaktieren.
Datensatzanmerkungen wurden mit der Polygonform erstellt. Die Attribute der Balken- und Mosaikbereiche sind wie folgt formatiert:
"region_attributes":{"censor":"bar"}} OR "region_attributes":{"censor":"mosaic"}}
Hier ist ein (NSFW)-Beispiel meiner Datensatzanmerkungen zusammen mit dem VGG-Editor.
Für eine bessere Genauigkeit benötigen Sie das neueste Modell.
Modell 161 (veraltet)
Modell 226
Modell 236 *Im Lieferumfang von v1.5 enthalten
(Neuestes) Modell 268
Löschen Sie einfach Ihre aktuelle Datei „weights.h5“ und ersetzen Sie sie durch die neue. Bitte behalten Sie den Modellnamen „weights.h5“ bei
ESRGAN (nur im Code) verwendet Twittmans fatales Pixelmodell für die 4-fache Superskalierung. Es ist nicht in diesem Repo enthalten, da es durch MPL-2.0 geschützt ist. Laden Sie das Modell 340000 hier aus seinem Repo herunter. Platzieren Sie dieses Modell im Hauptverzeichnis.
Sie müssen DeepCreamPy herunterladen und installieren, das im Intro verlinkt ist.
Die ausführbare Datei benötigt ffmpeg, wenn Sie möchten, dass der Ton auf Videos übertragen wird. Platzieren Sie ffmpeg.exe im Hauptverzeichnis oder an einem in Ihrem PATH oder in einer Umgebungsvariablen definierten Ort. Klonen Sie für Linux das Repo und befolgen Sie die bereitgestellten Anweisungen, um die Anforderungen zu erhalten. Um ffmpeg unter Linux oder Colab zu erhalten, verwenden Sie:
!sudo add-apt-repository ppa:jon-severinsson/ffmpeg
!sudo apt-get update
!sudo apt-get install ffmpeg
(Quellcode unter Windows) Ich würde empfehlen, diese in einer virtuellen Umgebung mit Anaconda3 auszuführen. Python 3.5.2, TensorFlow 1.8, Keras 2.2, tensorflow-gpu 1.9.0, Torch 0.4.1 und andere gängige Pakete, die in requirements.txt
aufgeführt sind.
Vorerst ist DCP erforderlich, bis ich meine eigene Alternative erstellen kann. Dieses Projekt erwartet die Verwendung des DCP-Verzeichnisses. Sie können die ausführbare Datei oder den Quellcode installieren, beides sollte funktionieren.
DCP ist NUR mit PNG-Bildern kompatibel, nicht mit JPG. Entweder verwenden Sie nur PNG oder probieren Sie den bereitgestellten JPG-Konverter aus (Schaltfläche „JPG erzwingen“). Sie können Online-Tools wie jpg2png verwenden. Auch dies sollte vor allem anderen erfolgen.
DCP ist NICHT mit Rastertönen oder dem für gedruckte Werke charakteristischen Punkteffekt kompatibel (siehe unten). Sehen Sie sich einfach mein anderes Projekt an, Screentone Remover, das Screentones mithilfe digitaler Signalverarbeitungstechniken stapelweise entfernt. Nur so können gedruckte, nicht farbige Bilder dezensiert werden.
Hier ist ein Beispiel für ein gerastertes Bild und wie es aussieht, wenn es von meiner Screentone Remover-App entfernt wird:
Für eine vollständige Video-Dezensierung über ESRGAN müssen Sie Twittmans Modell hier herunterladen und im Ordner ColabESRGAN/models ablegen.
Besitzer von Nvidia-GPUs sollten CUDA 9.0 und cuDNN 7.6.4 installieren. Beachten Sie, dass es Probleme mit RTX-Karten und ESRGAN gibt. Wenn Sie diese also verwenden möchten, empfehle ich stattdessen erneut das Colab-Notebook.
Ich empfehle dringend, Hent-AI stapelweise auszuführen, zum Beispiel einen Doujin oder mehrere Doujins auf einmal. Der langsamste Teil von Hent-AI ist die Initialisierung, daher dauert die erste Schlussfolgerung einige Zeit, der Rest wird jedoch schneller sein.
Das aktuelle Modell ist nicht perfekt. Noch. Erwarten Sie einige Probleme mit weißen Zensurstäben, kleinen Zensurstäben, teilweise transparenten Zensurstäben und Zensurstäben, die zu einem großen Zensurstab verschmolzen sind. Jedes absurde Maß an Zensur kann Probleme für Hen-AI verursachen.
Dieses Modell ist nicht darauf trainiert, eine vollständige Zensur zu erkennen, bei der Genetalia überhaupt nicht gezeichnet werden. Eine nicht standardmäßige Zensur wird ebenfalls nicht unterstützt.
Das Modell unterstützt Mosaike und Balken, allerdings hat es große Probleme, wenn beide an derselben Stelle verwendet werden. Außerdem kann DCP nur für Balken oder Mosaike generieren, daher müssen Sie Mosaik-zensierte Werke von balkenzensierten Werken trennen. Wenn Sie Bilder mit beiden dezensieren müssen, empfehle ich, die Balken in einem Durchlauf und dann die Mosaike in einem zweiten Durchlauf zu dezensieren.
CUDA-kompatible Nvidia-GPUs werden für große Mengen an Bildern oder Videos empfohlen. Wenn Sie keins haben, schauen Sie im Colab-Notizbuch nach.
Die Schaltfläche „Video Maker“ erstellt ein Video aus der Ausgabe von DCP in decensored_output. Führen Sie dies aus, nachdem DCP abgeschlossen ist. Beachten Sie, dass Sie noch die Verzeichnisse für das Quellvideo und das DCP-Installationsverzeichnis auswählen müssen.
Lassen Sie nicht ganze Clips die Videoerkennung durchlaufen, da dies eine sehr langsame Aufgabe ist. Wenn möglich, bearbeiten Sie nur die kurzen Clips mit sichtbaren Mosaiken, erhalten Sie die dezensierte Ausgabe und bearbeiten Sie sie dann im Rest des Videos.
Die kompilierte EXE-Version unterstützt ESRGAN nicht. Wenn Sie dies verwenden möchten, lesen Sie das Colab-Notizbuch.
v1.0.0: Erstveröffentlichung für die HackIllinois-Demo 2020
v1.1.0: Code bereinigt, nicht benötigte Bibliotheksimporte entfernt, Installationsanweisungen und Tutorial hinzugefügt. Fehlererkennung hinzugefügt.
v1.2.0: Ausführbare Version basierend auf dem Nur-Erkennen-Zweig. Schulungs- und überflüssige Bibliotheken wurden entfernt oder verlegt. Fehler behoben, bei dem das gesamte Bild grün zurückgegeben wurde. Niedrigere Erkennungsschwelle.
v1.3.0: (exe noch nicht veröffentlicht) Nicht-Unicode-Fehler entfernt. Ladebildschirm-Popup hinzugefügt. Niedrigere Erkennungsschwelle. Kleinere Änderungen an der Benutzeroberfläche.
v1.4.0: Der Videodetektor hat Dateien falsch benannt. Lade-Popup hinzugefügt. UI-Optimierungen. Niedrigere Erkennungsschwelle.
v1.5.0: Graustufenformfehler behoben. Fehler behoben, bei dem Videos in den DCP-Ordner kopiert wurden. Unterstützung für JPG als Option für die Konvertierung von JPG in PNG hinzugefügt. Verbessertes Abfangen von Ausnahmen hinzugefügt. Gewichte auf Modell 236 aktualisiert.
v1.5.2: Tensorflow auf 1.8 aktualisiert, um zukünftige Videoerkennungsfunktionen vorzubereiten. Bildfehler stoppen das Programm nicht mehr und werden übersprungen. Der Terminaldruck ist informativer. UI-Optimierungen.
1.6.3: ESRGAN für Video-Dezensierung hinzugefügt, DCP ist hierfür nicht erforderlich. Weitere Unterstützung für Nicht-Unicode-Dateinamen.
1.6.5: Adaptive Mosaik-Granularitätsprüfung über GMP von rekaXua hinzugefügt. Colab-Datei für kostenlose cloudbasierte ESRGAN-Videodezensierung hinzugefügt.
1.6.7: ESRGAN-Prozesse wurden so geändert, dass sie in zwei Phasen ausgeführt werden: ESRGAN-Größenänderung, dann Maskenerkennung. Langsamer, aber speicherfreudiger. Maskenunschärfe für weniger Nähte bei ESRGAN hinzugefügt. Für Nicht-ESRGAN wurde eine benutzerdefinierte Erweiterung hinzugefügt, um Masken zu erweitern. Option für JPG entfernt, sie wird automatisch verwendet. Verbesserte Dateibereinigung.
1.6.8: Videos übernehmen jetzt mithilfe von ffmpeg Audio vom Quellvideo. Eine variable Videobitrate ist noch nicht verfügbar, daher stimmen die Dateigrößen möglicherweise nicht mit der Quelle überein. ESRGAN speichert Videos jetzt im selben Verzeichnis wie das Quellvideo, hauptsächlich um Colab zu unterstützen.
1.6.9: Kleinere UI-Änderungen. Es gibt jetzt eine hconfig.ini, die Ihre bisher verwendeten Verzeichnisse und Einstellungen beim Start speichert. Während des Erkennungsprozesses für Bilder und Videos wird die Gesamtzahl der Bilder/Frames angezeigt.
1.6.9b: Hotfix für ESRGAN und ESRGAN-Video. Fehler mit der .ini behoben. Hinweis: .exe ist nicht betroffen, daher ist keine weitere Version erforderlich.
1.6.9c: Hotfix für Bild- und Mosaik-Dezensierung für Colab. Hinweis: .exe ist nicht betroffen, daher ist keine weitere Version erforderlich.
Detaillierte Anweisungen finden Sie unter Install_and_Tutorial.txt
Ausführbar:
Installieren Sie über die obigen Links
In einen Ordner extrahieren
Folgen Sie Install_and _tutorial für mehr
Code:
pip install -r requirements.txt
python setup.py install
python main.py
Im Hauptverzeichnis. Befolgen Sie von dort aus die Anweisungen der Benutzeroberfläche.
python sampleshentaihentai.py train --dataset=dataset_img/ --weights=path/to/weights
Alternativ können Sie das Training mit --weights=last fortsetzen
Beiträge und Verbesserungen zu diesem Repo sind willkommen, daher würde ich dazu ermutigen, dem Discord beizutreten.
Inspiration von DeepCreamPy
Mask Rcnn-Implementierung von Matterport
Gewichte von Mattyas Chainer-DCGAN erhalten
ESRGAN-Implementierung aus diesem Artikel unter Verwendung der alten Architektur von styler00dollar
Mit Twittmans trainiertem Modell werden fatale Pixel erzeugt.
Mit dem VGG-Annotator annotierter Datensatz
Beispielbilder von den Künstlern @ao_beni, 落書き色々まとめ und @paxiti. Screentone Girl ist vom Künstler Soranosuzume.
Aktuelle Asset-Bilder von うぱ西まり子 und Bibimbub auf Pixiv.