안녕하세요 여러분.
AI 기술을 사용하여 모자이크를 제거하는 것에 대해 생각해 본 적이 있나요?
이 문제를 신중하게 생각하는 것은 상당히 어렵습니다. 왜냐하면 우리가 이전에 사용했던 AI 기술은 얼굴 인식이든 OCR 인식이든 적어도 수동으로 인식할 수 있기 때문입니다. 그런데 모자이크 사진을 주면 복원할 수 있나요?
물론 어렵습니다. 인간이 회복할 수 없다면 어떻게 컴퓨터에게 회복을 가르칠 수 있을까요?
제가 며칠 전에 쓴 "AI를 활용한 아바타 생성"이라는 글을 아직도 기억하시나요? 해당 기사에서 우리는 임의의 난수로부터 이미지를 생성할 수 있는 DCGAN 모델을 훈련했습니다.
픽셀별로 생성된 노이즈 맵으로 난수를 사용합니다.
모델은 난수로부터 일반 아바타를 생성합니다.
DCGAN생성기 모델과 판별기 모델의 두 가지 모델이 포함되어 있습니다. 판별기 모델을 속이기 위해서는 그림이 훈련 샘플에 가까울수록 생성기 모델에서 생성된 그림을 방지하기 위해 식별 능력을 지속적으로 향상시켜야 합니다. 혼란스러워서.
위 생성기 모델의 입력을 난수에서 모자이크가 있는 그림으로 변경하면 출력은 모자이크가 없는 그림이 됩니다. 모자이크를 제거하는 모델을 훈련할 수 있나요?
다음으로 모자이크 제거 모델을 훈련시키는 방법을 공유하고, 다운로드하여 직접 효과를 시험해 볼 수 있는 기성 도구를 공유하겠습니다.
여기에서는 위에서 소개한 DCGAN을 사용하지 않고 Pix2pix와 CycleGAN이라는 두 가지 더 강력한 모델을 사용하여 별도로 훈련합니다.
Pix2pix는 GAN 기반의 이미지 번역 알고리즘으로, 모자이크 사진부터 일반 사진까지 기본적으로 한 언어에서 다른 언어로 변환하는 과정과 유사합니다.
Pix2pix 모델 번역
CycleGAN으로 얻은 효과는 모양 자체는 변경되지 않은 채 단순히 서로 다른 도메인 간에 이미지를 변환하는 것입니다.
CycleGAN 모델
이 기사에서는 더 저렴한 비용으로 모델을 훈련하는 데 도움이 될 수 있는 데이터 세트와 완전한 훈련 프로세스를 제공합니다.
먼저 데이터 세트
데이터 세트
를 다운로드합니다. 총 654M입니다.
그런 다음 Paddle 사전 학습된 모델을 다운로드합니다
사전 학습된 모델
마지막으로 Pix2pix 및 CycleGAN 모델을 각각 학습합니다.
Pix2pix 모델
python gan<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span>infer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.py</span> <br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--init_model output/pix2pix/checkpoints/110/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--dataset_dir /home/aistudio/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--image_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--n_samples 1 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--crop_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--model_net Pix2pix </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--net_G unet_256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--test_list /home/aistudio/test_list.txt </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--output ./infer_result/pix2pix/</span>
CycleGAN 모델
python gan<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span>infer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.py</span> <br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--init_model output/cyclegan/checkpoints/48/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--dataset_dir /home/aistudio/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--image_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--n_samples 1 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--crop_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--input_style A </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--test_list /home/aistudio/test_list.txt </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--model_net CycleGAN </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--net_G resnet_9block </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--g_base_dims 32 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--output ./infer_result/cyclegan/</span>
훈련 후 gan/infer.py 파일을 실행하여 이 두 모델의 모자이크 제거 효과를 비교할 수 있습니다.
모델을 직접 학습하고 싶지 않다면 다음을 참조하여 의미론적 분할 및 이미지 번역을 기반으로 하는 기성 프로젝트를 참조하세요. Pix2pix 및 CycleGAN.
프로젝트 주소: https://github.com/HypoX64/DeepMosaics/blob/master/README_CN.md
Windows 사용자를 위해 저자는 GUI 인터페이스가 포함된 설치가 필요 없는 소프트웨어 패키지를 제공합니다.
UI 인터페이스
앞서 말했듯이 이 기술은 아직 상대적으로 어렵기 때문에 너무 큰 기대는 하지 마세요. 실제 제거 효과는 다음과 같습니다.
Encoding
Decoding
효과는 아직 괜찮지만, 상상만큼 완벽하지는 않습니다. 다운로드해서 실행해 보세요.
위 내용은 AI가 모자이크를 제거할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!