>  기사  >  기술 주변기기  >  AI 기술을 활용한 DIY 디지털 콘텐츠 제작

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

WBOY
WBOY앞으로
2023-06-15 19:03:111517검색

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

Background

올해 chatgpt로 대표되는 대형 모델들의 눈부신 활약으로 AICG 현장에 완전히 불이 붙었습니다. 비가 내린 뒤 버섯처럼 다양한 gpt와 AI 매핑 제품이 쑥쑥 솟아오르고 있습니다. 모든 성공적인 제품 뒤에는 정교한 알고리즘이 있습니다. 이 기사에서는 휴대폰을 사용하여 동일한 장면을 여러 장 촬영한 다음 새로운 관점을 합성하고 비디오를 생성하는 방법에 대한 프로세스와 코드를 자세히 소개합니다. 본 글에서 사용된 기술은 2020년부터 등장한 딥러닝 기반의 3차원 재구성 방법인 NeRF(Neural Radiance Fields)입니다. 장면과 3D 모델. 원리와 문헌에 관해 모든 사람이 배울 수 있도록 마지막에 참고 목록이 있습니다. 이 글에서는 주로 코드 사용법과 환경 구축이라는 새로운 관점에서 이를 소개합니다.

환경 설정

environment.yml 수정

본 글에서 사용된 하드웨어 환경은 GPU RTX3090, 운영체제는 Windows 10입니다. 사용된 소프트웨어는 오픈소스 NeRF 구현(https://github.com)입니다. /cjw531/nerf_tf2) . RTX 3090은 CUDA 11.0 이상의 지원이 필요하고 TensorFlow-gpu는 2.4.0 이상의 지원이 필요하므로 bmild 환경은 tensorflow를 사용하기 때문에 공식 https://github.com/bmild/nerf를 선택하지 않았습니다. gpu==1.15, 버전이 너무 오래되었습니다. https://github.com/bmild/nerf/issues/174#issue-1553410900을 실행하면 다음과 같은 문제가 발생합니다. 2.8로 업그레이드해야 한다고 이 tt에서도 답변했습니다. 하지만 https://github.com/cjw531/nerf_tf2를 이용하더라도 그 환경은 다소 문제가 있습니다. 우선 외부 콘다 채널로 연결되어 있기 때문에 속도가 매우 느립니다. 둘째, 해당 환경은 tensorflow==2.8을 사용하며 tensorflow-gpu 버전을 지정하지 않습니다. 이 두 가지 질문에 대해. Environment.yml을 수정했습니다.

# To run: conda env create -f environment.ymlname: nerf_tf2channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- conda-forgedependencies:- python=3.7- pip- cudatoolkit=11.0- cudnn=8.0- numpy- matplotlib- imageio- imageio-ffmpeg- configargparse- ipywidgets- tqdm- pip:- tensorflow==2.8- tensorflow-gpu==2.8- protobuf==3.19.0- -i https://pypi.tuna.tsinghua.edu.cn/simple

conda 환경을 시작하세요

cmd를 열고 다음 명령을 입력하세요.

conda env create -f environment.yml

jupyter에 nerf_tf2를 추가하면 jupyter를 사용하여 시스템의 실행 결과를 쉽게 볼 수 있습니다.

// 安装ipykernelconda install ipykernel
//是该conda环境在jupyter中显示python -m ipykernel install --user --name 环境名称 --python -m ipykernel install --user --name 环境名称 --display-name "jupyter中显示名称"display-name "jupyter中显示名称"
//切换到项目目录cd 到项目目录//激活conda环境activate nerf_tf2//在cmd启动jupyterjupyter notebook

이제 콘다 환경과 주피터가 준비되었습니다.

데이터 준비

  1. colmap을 다운로드하고 설치합니다. 제 환경은 windows입니다 (https://demuc.de/colmap/#download)
  2. https://github.com/fyusion/llff에서 제공하는 imgs2poses.py를 사용하세요 Realize 자신의 카메라로 촬영한 사진의 내부 및 외부 카메라 매개변수를 수집합니다. 예를 들어, 사진 10장을 촬영한 경우 해당 사진이 있는 디렉터리 위치는 매우 구체적입니다. D:/LanJing/AI/LLFF/data/images 이는 이미지 하위 디렉터리에 배치되어야 함을 의미합니다. 전달한 매개변수는 python imgs2poses.py D:/LanJing/AI/LLFF/data입니다. 코드에 있는 Images_path는 이렇게 적혀있으니까 (https://github.com/Fyusion/LLFF/blob/master/llff/poses/colmap_wrapper.py#L28)

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

휴대폰으로 찍은 사진들 예시

feature_extractor_args = ['colmap', 'feature_extractor','--database_path', os.path.join(basedir, 'database.db'),'--image_path', os.path.join(basedir, 'images'),'--ImageReader.single_camera', '1',# '--SiftExtraction.use_gpu', '0',]

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

python imgs2poses.py

imgs2poses.py 파일을 실행한 후 sparse 디렉터리인 colmap_out.txt, Database.db,poses_bounds.npy를 생성한 후 새로 생성했습니다. nerf_tf2 프로젝트 디렉토리 data/nerf_llff_data/ll 아래에서 위의 sparse 디렉토리와poses_bounds.npy를 이 디렉토리에 복사하세요. 마지막으로 새 파일 config_ll.txt를 구성합니다. 이 시점에서 데이터 준비 작업이 완료되었습니다.

expname = ll_testbasedir = ./logsdatadir = ./data/nerf_llff_data/lldataset_type = llfffactor = 8llffhold = 8N_rand = 1024N_samples = 64N_importance = 64use_viewdirs = Trueraw_noise_std = 1e0

Training

오픈 소스 소프트웨어를 Windows 플랫폼으로 마이그레이션하세요.

이 오픈소스 소프트웨어는 주로 Mac과 Linux를 지원하기 때문에 Windows에서는 실행할 수 없으며 load_llff.py의 수정이 필요합니다.

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

load_llff 코드 마이그레이션

300000개의 일괄 학습을 실행하세요.

activate nerf_tf2python run_nerf.py --config config_ll.txt

Test

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

render_demo running

Effect

몇 개의 입력 이미지를 사용하기 때문에 10개만 사용하기 때문에 실행 효과는 그다지 좋지 않지만 전체적인 프로세스는 동일합니다. 팁: 공식 코드 중 절반은 30장 또는 심지어 100장의 사진을 사용합니다.

우리의 결과


AI 기술을 활용한 DIY 디지털 콘텐츠 제작

새로운 관점에서 본 렌더링

공식 효과

AI 기술을 활용한 DIY 디지털 콘텐츠 제작

fern 공식적으로 합성된 새로운 관점 효과

References

https://zhuanlan.zhihu.com/p/554093703.

https://arxiv.org/pdf/2003.08934.pdf.

https://zhuanlan.zhihu.com/p/593204605.

https://inst.eecs.berkeley.edu/~cs194-26/fa22/Lectures/nerf_lecture1.pdf.

위 내용은 AI 기술을 활용한 DIY 디지털 콘텐츠 제작의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제