개발 : 2022.04
DCGAN을 활용하여 자동으로 NFT(Non-Fungible Token) 이미지를 생성하는 서비스입니다. 인공지능이 사람의 개입 없이 스스로 독특한 NFT 작품을 생성할 수 있도록 구현했습니다.
AI Expo KOREA 2022 부스 운영 및 COEX 전시 참가
- 자동 NFT 생성: DCGAN을 활용한 독창적인 PFP(Profile Picture) NFT 이미지 생성
- 이미지 배치 생성: 다양한 스타일과 특성을 가진 NFT 이미지 일괄 생성
- 고품질 출력: 64x64 해상도의 선명한 이미지 생성
- 학습 모델 저장 및 로드: 학습된 모델 가중치 저장 및 불러오기 기능
- 프로그래밍 언어: Python
- 딥러닝 프레임워크: PyTorch
- 생성 모델: DCGAN (Deep Convolutional Generative Adversarial Network)
- 데이터 처리: torchvision
NFT AI는 다음과 같은 주요 구성 요소로 이루어져 있습니다:
- 데이터 로더: 학습 데이터셋 로드 및 전처리
- 생성자(Generator): 랜덤 노이즈로부터 이미지 생성
- 판별자(Discriminator): 생성된 이미지와 실제 이미지 구분
- 학습 모듈: GAN 네트워크 학습 및 최적화
- 이미지 생성 모듈: 학습된 모델을 통한 NFT 이미지 생성
- DCGAN 논문 기반 아키텍처 구현
- 생성자와 판별자 네트워크 설계 및 구현
- BCE(Binary Cross Entropy) 손실 함수 활용
- 이미지 데이터셋 로드 및 전처리
- 정규화 및 텐서 변환 적용
- 배치 처리를 통한 효율적인 학습 구현
- Adam 옵티마이저를 활용한 모델 최적화
- 생성자와 판별자의 균형 있는 학습을 위한 전략 구현
- 학습 진행 상황 모니터링 및 중간 결과 시각화
- 학습된 생성자 모델을 활용한 NFT 이미지 생성
- Matplotlib을 활용한 생성 이미지 시각화
- 생성된 이미지 저장 및 관리 기능 구현
- Python 3.6+
- CUDA 지원 GPU (선택사항, CPU에서도 동작 가능)
- 저장소 클론
git clone https://github.com/teraha-dev/international-ai-competition-2022.git
cd international-ai-competition-2022/nft
- 의존성 패키지 설치
pip install -r requirements.txt
- 필요한 디렉토리 생성
mkdir -p datasets weights result
- 모델 학습
python train.py
- 이미지 생성
python generate_image.py
- 생성된 이미지 슬라이드쇼 보기
python show_image.py
nft/DCGAN/
│
├── model.py # DCGAN 모델 구현 (생성자, 판별자)
├── dataloader.py # 데이터 로딩 및 전처리
├── loss.py # 손실 함수 구현
├── train.py # 모델 학습 스크립트
├── load_train.py # 저장된 모델 로드 및 추가 학습
├── generate_image.py # 학습된 모델로 이미지 생성
├── show_image.py # 생성된 이미지 슬라이드쇼
│
├── datasets/ # 학습 데이터셋 저장 디렉토리
├── weights/ # 학습된 모델 가중치 저장 디렉토리
└── result/ # 생성된 NFT 이미지 저장 디렉토리
- 데이터셋을
datasets/
디렉토리에 준비 train.py
를 실행하여 모델 학습- 학습 진행 상황 및 중간 생성 이미지 확인
- 학습 완료 후
generate_image.py
로 다양한 NFT 이미지 생성 show_image.py
로 생성된 이미지 슬라이드쇼 감상
- AI Expo KOREA 2022 COEX 전시 참가
- 한덕수 국무총리에게 AI NFT 프로젝트 발표 및 관련 기사 보도
- 인공지능이 자동으로 생성하는 NFT 개념 증명
- 더 높은 해상도(128x128, 256x256)의 NFT 이미지 생성 기능 추가
- 다양한 스타일의 NFT 생성을 위한 CGAN 구현
- 블록체인 연동을 통한 자동 NFT 발행 및 판매 시스템 구현
- 사용자 선호도 학습을 통한 맞춤형 NFT 생성 기능 개발