일본에서 제작된 성인용 일러스트 콘텐츠는 법적 검열을 받아야 합니다. 검열의 두 가지 일반적인 유형에는 검열 막대와 모자이크 흐림이 포함됩니다. 일본 밖에서 살고 있는 우리 타락한 사람들에게 이는 우리도 바와 모자이크의 대상이 된다는 것을 의미합니다. 검열 장치가 어디에 있는지 알려준다면 검열 장치를 덮어쓸 수 있는 deeppomf의 DeepCreamPy라는 솔루션이 있습니다. 이는 길고 힘든 과정이므로 이번 프로젝트를 통해 그 과정을 자동화하고 싶습니다. 이 프로젝트에서는 자율주행차와 컴퓨터 비전 작업에 일반적으로 사용되는 기술인 딥 러닝과 이미지 분할을 활용합니다. 1.6.3의 새로운 기능인 DeepCreamPy의 대안으로 ESRGAN을 추가했습니다. 이는 탐지 후 모자이크 이미지/비디오의 검열도 제거합니다.
이는 Matterport의 Mask R-CNN 위에 구축되었으며 비디오 검열은 ESRGAN을 사용합니다.
다음은 이전 모델 161에서 이 프로젝트의 기능을 더 잘 보여주는 NSFW 비디오입니다.
트위터(NSFW).
당신이 보는 것과 같습니까? 이 프로젝트에 자금을 지원해 주세요:
Discord 채널(https://discord.gg/j4dPZ7W)에서 개발 및 뉴스 토론에 참여할 수 있습니다.
모델 226의 막대 감지 예:
모델 236의 모자이크 감지 예:
두 가지 예 모두에서 최신 모델 161은 훨씬 더 정확한 마스크와 감지 기능을 제공합니다.
Mattport의 Mask RCNN 구현과 동일한 요구 사항이 모두 필요합니다. 저는 tensorflow 1.8.0, tensorflow-gpu 1.9.0, torch 0.4.1, keras 2.2.0을 사용하고 있습니다. 새로운 조합의 안정성을 완전히 테스트하지 않았습니다. 저는 명령줄에 Anaconda3을 사용합니다.
실행 파일에는 Windows만 지원됩니다. Linux용으로 이 코드를 가져올 수 있습니다.
main.py 기본 오류 감지와 함께 GUI, 모든 I/O 처리, 파일 구문 분석이 포함되어 있습니다. 감지기 클래스를 인스턴스화합니다.
detector.py 신경망 불러오기, 추론 감지 시작, DCP용 마스크에서 오버레이 생성을 담당하는 감지기 클래스가 포함되어 있습니다. 더 이상 hentai.py가 필요하지 않으며 자체적으로 탐지를 실행할 수 있습니다. ESRGAN 기능도 처리합니다.
hentai.py 내 감지기와 모델 간의 인터페이스입니다. Mask RCNN 구현의 Balloon.py를 기반으로 합니다. 훈련에만 필요합니다.
Inspection_h_model.ipynb 이 노트북은 풍선 노트북과 동일합니다. 대신 이 프로젝트에서 작동하도록 수정했으며 모델을 검사하는 데 가장 적합합니다. 자세한 로깅을 위해서는 Tensorboard를 사용하세요(tensorflow가 있는 경우 설치해야 함).
Inspection_h_data.ipynb 이 노트북이 데이터 세트의 유효성을 검사하는 데 사용된다는 점을 제외하면 위와 동일합니다. 또한 MaskRcnn의 몇 가지 단점과 기능을 보여주는 멋진 정보도 있습니다.
test_combined_generator.py 막대 검열 및 주석을 자동화하는 스크립트. 자세한 내용은 아래에 설명되어 있습니다. 이는 별도의 폴더에 배치하기 위한 것이며 "decensored_input"이라는 폴더에 검열되지 않은 이미지가 있을 것으로 예상하고 금지된 이미지를 "decensored_input_original"로 출력하고 주석으로 csv를 채웁니다. 데이터 세트 확장에 도움을 주려는 경우가 아니면 이 스크립트를 사용할 필요가 없습니다. 그렇다면 디스코드에 참여하고 저에게 연락해주세요.
hent_AI_COLAB_1.ipynb ESRGAN 비디오 검열에 대한 지침이 포함된 Google Colab 노트북입니다. 이는 클라우드에서 Google의 GPU를 무료로 사용하며 모든 소비자 GPU는 아니더라도 대부분의 GPU보다 빠릅니다. 하지만 유휴 상태가 30분 또는 12시간이 지나면 세션이 삭제됩니다. 나는 모든 종류의 비디오 검열에 대해 이 옵션을 권장합니다. 시각적으로 충분하고 속도가 매우 빠릅니다.
green_mask_project_mosaic_solution.py ESRGAN 검열 제거에 사용할 모자이크의 세분성(모자이크 상자 크기)을 추정하는 GMP의 스크립트입니다.
hconfig.ini 디렉토리 정보를 보유하는 구성 파일입니다.
데이터 세트에는 손으로 작성한 일부 주석과 대부분 test_combined_generator를 사용하여 손으로 작성한 주석이 달린 이미지가 혼합되어 있습니다. 이 스크립트는 검열되지 않은 이미지를 입력으로 사용하고, 누드넷을 사용하여 모자이크 및 무작위 막대 검열기를 사용하여 이미지의 복제본을 만들 수 있습니다. 이 데이터세트는 여기에 제공되지 않습니다. 관심이 있으시면 Discord에서 저에게 연락하실 수 있습니다.
데이터 세트 주석은 다각형 모양으로 만들어졌습니다. 막대 및 모자이크 영역 속성의 형식은 다음과 같습니다.
"region_attributes":{"censor":"bar"}} OR "region_attributes":{"censor":"mosaic"}}
다음은 vgg 편집기와 함께 내 데이터 세트 주석의 (NSFW) 샘플입니다.
더 나은 정확성을 위해서는 최신 모델이 필요할 것입니다.
모델 161(더 이상 사용되지 않음)
모델 226
모델 236 *v1.5와 함께 패키지됨
(최신) 모델 268
현재 Weights.h5 파일을 삭제하고 새 파일로 바꾸세요. 모델 이름을 Weights.h5로 유지하세요.
ESRGAN(코드에서만)은 4배 슈퍼스케일링을 위해 Twittman의 치명적인 픽셀 모델을 사용하고 있습니다. MPL-2.0에 의해 보호되므로 이 저장소에는 없습니다. 그의 저장소에서 모델 340000을 다운로드하세요. 이 모델을 기본 디렉터리에 배치하세요.
소개에 링크되어 있는 DeepCreamPy를 다운로드하여 설치해야 합니다.
비디오에 사운드를 전달하려면 실행 파일에 ffmpeg가 필요합니다. ffmpeg.exe를 기본 디렉터리나 PATH 또는 환경 변수에 정의된 위치에 배치합니다. Linux의 경우 저장소를 복제하고 요구 사항을 얻으려면 제공된 지침을 따르세요. Linux 또는 Colab에서 ffmpeg를 얻으려면 다음을 사용하십시오.
!sudo add-apt-repository ppa:jon-severinsson/ffmpeg
!sudo apt-get update
!sudo apt-get install ffmpeg
(Windows의 소스 코드) Anaconda3을 사용하여 가상 환경에서 실행하는 것이 좋습니다. Python 3.5.2, TensorFlow 1.8, Keras 2.2, tensorflow-gpu 1.9.0, torch 0.4.1 및 requirements.txt
에 나열된 기타 일반 패키지.
현재로서는 나만의 대안을 만들 수 있을 때까지 DCP가 필요합니다. 이 프로젝트에서는 DCP 디렉터리를 사용할 것으로 예상합니다. 실행 파일이나 소스 코드를 설치할 수 있습니다. 둘 중 하나가 작동해야 합니다.
DCP는 jpg 이미지가 아닌 .png 이미지하고만 호환됩니다. png만 사용하거나 제공된 jpg 변환기(jpg 강제 버튼)를 사용해 보세요. jpg2png와 같은 온라인 도구를 사용할 수 있습니다. 다시 말하지만, 이 작업은 다른 작업보다 먼저 수행되어야 합니다.
DCP는 스크린톤이나 인쇄 작품의 특징인 점선 효과와 호환되지 않습니다(아래 참조). 디지털 신호 처리 기술을 사용하여 스크린톤을 일괄 제거하는 다른 프로젝트인 Screentone Remover를 참조하세요. 이는 인쇄된 무색 이미지의 검열을 제거할 수 있는 유일한 방법입니다.
다음은 스크린톤 이미지의 예와 스크린톤 리무버 앱으로 제거했을 때의 모습입니다.
ESRGAN을 통한 전체 비디오 검열을 취소하려면 여기에서 Twittman의 모델을 다운로드하여 ColabESRGAN/models 폴더에 넣어야 합니다.
Nvidia GPU 소유자는 CUDA 9.0 및 cuDNN 7.6.4를 설치해야 합니다. RTX 카드와 ESRGAN에는 문제가 있으므로 이를 사용하고 싶다면 대신 Colab 노트북을 다시 추천합니다.
예를 들어 한 번에 하나의 동인 또는 몇 개의 동인을 배치로 실행하는 것이 좋습니다. hent-AI에서 가장 느린 부분은 초기화이므로 첫 번째 추론에는 시간이 걸리지만 나머지는 더 빨라집니다.
현재 모델은 완벽하지 않습니다. 아직. 흰색 검열 막대, 작은 검열 막대, 부분적으로 투명한 검열 막대, 하나의 큰 검열 막대로 융합되어 있는 검열 막대로 인해 약간의 문제가 발생할 수 있습니다. 터무니없는 양의 검열은 hent-AI에 문제를 일으킬 수 있습니다.
이 모델은 일반 검열이 전혀 그려지지 않는 완전 검열을 인식하도록 훈련되지 않았습니다. 비표준 검열도 지원되지 않습니다.
이 모델은 모자이크와 바를 지원하지만 두 가지를 같은 위치에 사용하면 정말 어려움을 겪습니다. 또한 DCP는 막대 또는 모자이크에 대해서만 생성할 수 있으므로 모자이크 검열 작업을 막대 검열 작업과 별도로 유지해야 합니다. 두 가지 모두를 사용하여 이미지를 검열해야 하는 경우 한 번 실행하여 막대를 검열한 다음 두 번째 실행에서 모자이크를 검열하는 것이 좋습니다.
대용량 이미지 또는 비디오에는 CUDA 호환 Nvidia GPU가 권장됩니다. 없으시면 colab 노트북을 참고하세요.
Video Maker 버튼은 Decensored_output의 DCP 출력에서 비디오를 생성합니다. DCP가 완료된 후 이를 실행합니다. 소스 비디오의 디렉터리와 DCP 설치 디렉터리를 선택해야 합니다.
비디오 감지를 통해 전체 클립을 넣지 마십시오. 이는 매우 느린 작업입니다. 가능하다면 모자이크가 보이는 짧은 클립만 편집하고, 수정되지 않은 출력을 얻은 다음, 비디오의 나머지 부분에서 편집하세요.
컴파일된 exe 릴리스는 ESRGAN을 지원하지 않습니다. 이를 사용하려면 colab 노트북을 참고하세요.
v1.0.0: 2020 HackIllinois 데모의 최초 릴리스
v1.1.0: 코드 정리, 불필요한 라이브러리 가져오기 제거, 설치 지침 및 튜토리얼 추가. 오류 감지가 추가되었습니다.
v1.2.0: 감지 전용 분기를 기반으로 하는 실행 가능한 릴리스입니다. 교육 및 중복 라이브러리가 제거되거나 재배치되었습니다. 전체 이미지가 녹색으로 반환되는 버그가 수정되었습니다. 감지 임계값이 낮아졌습니다.
v1.3.0: (exe는 아직 출시되지 않음) 유니코드가 아닌 오류가 제거되었습니다. 로딩 화면 팝업이 추가되었습니다. 감지 임계값이 낮아졌습니다. 사소한 UI 변경.
v1.4.0: 비디오 감지기가 파일 이름을 잘못 지정하는 문제를 수정했습니다. 로딩 팝업이 추가되었습니다. UI가 수정되었습니다. 감지 임계값이 낮아졌습니다.
v1.5.0: 회색조 모양 오류가 수정되었습니다. 비디오가 DCP 폴더에 복사되는 버그가 수정되었습니다. jpg를 png로 변환하는 옵션으로 jpg에 대한 지원이 추가되었습니다. 더 나은 예외 잡기 기능이 추가되었습니다. 모델 236으로 가중치를 업데이트했습니다.
v1.5.2: 향후 비디오 감지 기능을 준비하기 위해 tensorflow를 1.8로 업그레이드했습니다. 이미지 오류가 더 이상 프로그램을 중지하거나 건너뛰지 않습니다. 터미널 인쇄가 더 유익합니다. UI 조정.
1.6.3: 비디오 검열을 위해 ESRGAN을 추가했습니다. 이에 대해서는 DCP가 필요하지 않습니다. 유니코드가 아닌 파일 이름에 대한 추가 지원.
1.6.5: rekaXua의 GMP를 통해 적응형 모자이크 세분성 검사가 추가되었습니다. 무료 클라우드 기반 ESRGAN 비디오 검열을 위해 colab 파일을 추가했습니다.
1.6.7: ESRGAN 프로세스가 2단계(ESRGAN 크기 조정 후 마스크 감지)로 실행되도록 변경되었습니다. 느리지만 더 많은 메모리를 용서합니다. ESRGAN에 이음새를 줄이기 위해 마스크 블러링을 추가했습니다. ESRGAN이 아닌 경우 마스크를 확장하기 위해 사용자 정의 확장을 추가했습니다. jpg에 대한 옵션이 제거되었습니다. 자동으로 사용됩니다. 향상된 파일 정리.
1.6.8: 이제 비디오는 ffmpeg를 사용하여 소스 비디오에서 오디오를 가져옵니다. 가변 비디오 비트 전송률은 아직 사용할 수 없으므로 파일 크기가 소스와 일치하지 않을 수 있습니다. ESRGAN은 이제 Colab에 도움이 되도록 소스 비디오와 동일한 디렉터리에 비디오를 저장합니다.
1.6.9: 사소한 UI 조정. 이제 시작 시 이전에 사용한 디렉터리와 설정을 저장하는 hconfig.ini가 있습니다. 이미지와 비디오를 감지하는 동안 총 이미지/프레임 수가 표시됩니다.
1.6.9b: ESRGAN 및 ESRGAN 비디오용 핫픽스. .ini 관련 버그를 수정했습니다. 참고: .exe는 영향을 받지 않으므로 다른 버전이 필요하지 않습니다.
1.6.9c: Colab의 이미지 및 모자이크 검열을 위한 핫픽스입니다. 참고: .exe는 영향을 받지 않으므로 다른 버전이 필요하지 않습니다.
자세한 지침을 보려면 Install_and_Tutorial.txt를 따르세요.
실행 파일:
위 링크에서 설치하세요
일부 폴더에 추출
자세한 내용은 Install_and _tutorial을 따르세요.
암호:
pip install -r requirements.txt
python setup.py install
python main.py
기본 디렉토리에 있습니다. 거기에서 UI 지침을 따르십시오.
python sampleshentaihentai.py train --dataset=dataset_img/ --weights=path/to/weights
또는 --weights=last를 사용하여 훈련을 재개할 수 있습니다.
이 저장소에 대한 기여와 개선을 환영하므로 Discord에 가입하는 것이 좋습니다.
DeepCreamPy에서 영감
Matterport의 Mask Rcnn 구현
mattya의 chainer-DCGAN에서 가중치를 얻었습니다.
styler00dollar에서 제공하는 이전 아키텍처를 사용하여 이 문서의 ESRGAN 구현
Twittman의 훈련된 모델 치명적 픽셀을 사용합니다.
VGG 주석자로 주석이 달린 데이터세트
아티스트 @ao_beni, 落書kicolor々まとめ 및 @paxiti의 샘플 자산 이미지. Screentone Girl은 아티스트 soranosuzume 출신입니다.
Pixiv의 海ぱ西まり子 및 bibimbub에서 가져온 현재 자산 이미지입니다.