Biến ảnh 2D thành model 3D

Bài viết này hướng dẫn cách biến ảnh 2D thành model 3D trên Windows. Do source code được viết cho Ubuntu nên chúng ta phải sửa đổi lại chút ít để có thể chạy được trên windows.

Một số ví dụ mẫu

Input của thuật toán là ảnh model 2D kích thước 512×512 pixel, output là model 3D đuôi *.obj. Trên windows 10 có cài sẵn chương trình 3D viewer để xem kết quả, nếu bạn muốn chỉnh sửa có thể dùng Paint 3D.

Cài đặt các thư viện cần thiết

Download model pifuHD tại link: pifuhd.pt (1.44 GB). Sau đó tạo folder checkpoints rồi copy file pifuhd.pt vào.

Link dự phòng: Google Drive

Tiếp theo bạn cài các package Python theo lệnh
pip install -r requirements.txt

Có 1 điều rất quan trọng là pytorch không cài được trên Windows bằng lệnh vì khác tên package. Trên Ubuntu là pytorch còn trên Windows là torch, các bạn phải vào trang chủ Pytorch để download. Các bạn chọn như hình dưới để lấy câu lệnh cài đặt

pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

Cài đặt để chạy với GPU

Nếu máy bạn có GPU NVIDA thì GPU sẽ giúp tăng tốc xử lý gấp nhiều lần. Với 1 ảnh 512 pixel thì CPU Intel Core i5 2500 chạy mất 7 phút, còn GPU GTX 2070 8GB mất 37 giây. Nghĩa là GPU xử lý công việc chuyển ảnh 2D thành 3D nhanh gấp 11 lần CPU. Hiện tại CUDA 10.1 chạy ổn định với nhiều source code Deep Learning nên chúng tôi recomment CUDA 10.1.

Lưu ý: source code chỉ chạy được với GPU có 8GB vRAM trở lên

Các bạn cài đặt các thư viện cần thiết như bước trên, sau đó các bạn làm theo bài viết Tăng tốc Deep Learning bằng CUDA 10.1 . Restart máy là có thể chạy được GPU.

Cách sử dụng

Đầu tiên các bạn tách background từ ảnh bằng trang web remove.bg. Sau khi tách background xong các bạn resize thành ảnh có kích thước 512 x 512 pixel giống hình dưới.

Cách đơn giản nhất để tạo ảnh có background trong suốt với kích cỡ 512 pixel là dùng Photoshop. Sau khi download ảnh từ remove.bg thì vào menu Image -> Canvas size, sau đó chọn kích thước mong muốn.

Sau đó copy ảnh vào folder sample_images rồi tạo file txt với đuôi là _rect.txt. Ví dụ bạn có ảnh là abc.png thì tạo file abc_rect.txt với nội dung như sau:

0
0
512
512

Sau đó chạy lệnh
python -m apps.simple_test --use_rect --resolution 512

Sau khi chạy xong chương trình sẽ tạo kết quả tại folder results\pifuhd_final\recon, trong đó có 2 file: file png và obj.

Kết luận

– Bài này ở độ khó trung bình, không cần cài đặt hay chuẩn bị quá nhiều.
– Model được cung cấp sẵn chạy được với một số ảnh đơn giản, ảnh có tóc hay phức tạp dễ chạy sai.
– Có nhiều cách để sử dụng, tuy nhiên bài viết này chỉ hướng dẫn cách đơn giản nhất để làm quen.

Source code

https://github.com/facebookresearch/pifuhd

Chúng tôi đã fork ra 1 source code riêng và thêm các file sample: https://github.com/thigiacmaytinh/pifuhd

Facebook Comments

Leave a Reply