Doctor AI

Dr. Savath Saypadith

240 ບົດຄວາມ

ການສ້າງໂມເດວ 3 ມິຕິ ຂອງວັດລາວດ້ວຍ AI: ກໍລະນີສຶກສາວັດຊຽງທອງ

ໂພສເມື່ອ # Generative AI # Computer Vision # 3D Modeling # Deep Learning # NeRF

ການສ້າງໂມເດວ 3 ມິຕິ ຂອງວັດລາວດ້ວຍ AI: ຈາກພາບ 2 ມິຕິ ຂອງວັດຊຽງທອງ ສູ່ຊັບສິນດິຈິຕອນ 3 ມິຕິ

ວັດຊຽງທອງ, ແກ້ວປະເສີດແຫ່ງເມືອງຫຼວງພະບາງ ທີ່ເຕັມໄປດ້ວຍລວດລາຍສິລະປະກຳ, ຮູບປະດັບແກ້ວສີ “ຕົ້ນໄມ້ແຫ່ງຊີວິດ” (Tree of Life) ແລະ ສະຖາປັດຕະຍະກຳຫຼັງຄາຊ້ອນກັນອັນເປັນເອກະລັກ. ໃນອະດີດການສ້າງໂມເດວ 3 ມິຕິ ຂອງສະຖານທີ່ທາງປະຫວັດສາດແບບນີ້ (Photogrammetry ຫຼື 3D Modeling ດ້ວຍມື) ຕ້ອງໃຊ້ເວລາຫຼາຍເດືອນ ແລະ ເຄື່ອງມືລາຄາແພງ. ແຕ່ມື້ນີ້, ດ້ວຍເຕັກໂນໂລຊີ Generative AI ດ້ານ Computer Vision, ພວກເຮົາສາມາດປ່ຽນຮູບພາບ 2 ມິຕິ ທີ່ຖ່າຍຈາກກ້ອງທຳມະດາ ໃຫ້ກາຍເປັນໂມເດວ 3 ມິຕິ ທີ່ມີຄວາມລະອຽດສູງໄດ້ພາຍໃນບໍ່ເທົ່າໃດຊົ່ວໂມງ.

ໃນບົດຄວາມນີ້, ເຮົາຈະເຈາະເລິກເຖິງວິທີການທາງເຕັກນິກໃນການໃຊ້ໂມເດວ AI ຂັ້ນສູງເຊັ່ນ Neural Radiance Fields (NeRF) ແລະ 3D Gaussian Splatting (3DGS) ເພື່ອປະມວນຜົນຮູບພາບວັດຊຽງທອງ.

ສະຖາປັດຕະຍະກຳເບື້ອງຫຼັງ: NeRF ແລະ 3D Gaussian Splatting

ໃນຖານະນັກພັດທະນາ, ການເຂົ້າໃຈຄະນິດສາດ ແລະ ສະຖາປັດຕະຍະກຳເບື້ອງຫຼັງແມ່ນສິ່ງສຳຄັນ:

ຂັ້ນຕອນການກະກຽມຂໍ້ມູນ ແລະ ການປະມວນຜົນດ້ວຍ COLMAP

ກ່ອນທີ່ AI ຈະເຂົ້າໃຈໂຄງສ້າງ 3 ມິຕິ, ເຮົາຕ້ອງຫາຕຳແໜ່ງຂອງກ້ອງ (Camera Poses) ໃນທຸກໆຮູບພາບ. ເຮົາໃຊ້ເຕັກນິກ Structure from Motion (SfM) ຜ່ານໂປຣແກຣມທີ່ຊື່ວ່າ COLMAP.

ຖ້າທ່ານໄດ້ຖ່າຍຮູບຮອບໆວັດຊຽງທອງຫຼາຍຮ້ອຍຮູບ (ຕ້ອງມີ Overlap ກັນຢ່າງໜ້ອຍ 70%), ທ່ານສາມາດໃຊ້ Framework ຍອດຮິດຢ່າງ nerfstudio ໃນການຕຽມຂໍ້ມູນ:

# ຄຳສັ່ງປະມວນຜົນຮູບພາບວັດຊຽງທອງ ເພື່ອສະກັດເອົາ Camera Poses ແລະ Point Cloud ໜ້ອຍໜຶ່ງ
ns-process-data images --data data/wat_xieng_thong/images --output-dir data/wat_xieng_thong/processed_data

ການຂຽນໂຄດ ແລະ ການສ້າງ Rays (Coding & Ray Generation)

ລອງມາເບິ່ງການເຮັດວຽກເບື້ອງຫຼັງຂອງ NeRF ໃນ PyTorch. ຂັ້ນຕອນສຳຄັນແມ່ນການຍິງລັງສີ (Rays) ຈາກຕຳແໜ່ງກ້ອງຜ່ານພິກເຊວເທິງໜ້າຈໍໄປສູ່ໂລກ 3 ມິຕິ. ນີ້ຄື Code Snippet ສຳລັບການຄຳນວນ Ray Origin ແລະ Ray Direction:

import torch

def get_rays(H: int, W: int, K: torch.Tensor, c2w: torch.Tensor):
    """
    ຄຳນວນລະບົບລັງສີ (Rays) ສຳລັບກ້ອງຖ່າຍຮູບແຕ່ລະຕົວ.
    K: Camera Intrinsics Matrix
    c2w: Camera-to-World Transformation Matrix (Extrinsics)
    """
    # ສ້າງ Grid ຂອງພິກເຊວ
    i, j = torch.meshgrid(
        torch.linspace(0, W - 1, W), 
        torch.linspace(0, H - 1, H), 
        indexing='ij'
    )
    i = i.t()
    j = j.t()
    
    # ແປງຈາກ Pixel space ເປັນ Camera space
    dirs = torch.stack(
        [(i - K[0][2]) / K[0][0], -(j - K[1][2]) / K[1][1], -torch.ones_like(i)], -1
    )
    
    # ໝູນລັງສີຕາມທິດທາງກ້ອງໄປສູ່ໂລກ 3 ມິຕິ (Camera to World)
    rays_d = torch.sum(dirs[..., None, :] * c2w[:3, :3], -1) 
    
    # ກຳນົດຈຸດເລີ່ມຕົ້ນຂອງລັງສີ (Camera Origin)
    rays_o = c2w[:3, 3].expand(rays_d.shape)
    
    return rays_o, rays_d

# ຕົວຢ່າງການເອີ້ນໃຊ້: 
# rays_o, rays_d = get_rays(height, width, intrinsics, camera_pose)

ການປັບແຕ່ງ (Optimization) ສໍາລັບລາຍລະອຽດສະຖາປັດຕະຍະກຳລາວ

ວັດລາວມີຄວາມຊັບຊ້ອນສະເພາະຕົວ ຖ້າເຮົາ Train Model ທຳມະດາ ອາດຈະໄດ້ພາບທີ່ມົວ:

  1. ລາຍຮູບທອງ (Golden Stenciling) ເທິງພື້ນດຳ: ລາຍແຕ້ມສີທອງອັນລະອຽດອ່ອນຕາມເສົາ ແລະ ຝາດ້ານໜ້າຂອງວັດຊຽງທອງ ມີລັກສະນະເປັນຄວາມຖີ່ສູງ (High-frequency details). ເພື່ອເກັບລາຍລະອຽດນີ້ໃນ NeRF, ເຮົາຕ້ອງປັບຈູນ Positional Encoding ໂດຍການເພີ່ມ max_freq_log2 (ຄວາມຖີ່ສູງສຸດ). ສຳລັບ 3DGS, ຕ້ອງແນ່ໃຈວ່າການເຮັດ Adaptive Density Control ສາມາດແບ່ງ (Split) Gaussians ໃນບໍລິເວນລາຍທອງນີ້ໄດ້ຢ່າງພຽງພໍ.
  2. ແກ້ວປະດັບ “ຕົ້ນໄມ້ແຫ່ງຊີວິດ” (Specular Highlights): ແກ້ວສີສະທ້ອນແສງແດດຕ່າງກັນເມື່ອເຮົາຍ່າງເບິ່ງຈາກຊ້າຍໄປຂວາ. ເພື່ອໃຫ້ AI ເຂົ້າໃຈສິ່ງນີ້ໃນ 3DGS, ເຮົາຕ້ອງຝຶກສອນ Spherical Harmonics ໃຫ້ຮອດ Degree ທີ່ສູງຂຶ້ນ (ເຊັ່ນ SH degree = 3 ຫຼື 4). ສິ່ງນີ້ຈະຊ່ວຍໃຫ້ໂມເດວຈື່ຈຳຄ່າສີທີ່ປ່ຽນແປງຕາມມຸມມອງ (View-dependence) ໄດ້ເໝືອນຈິງ.

ຂໍ້ຄວນລະວັງ ແລະ ການແກ້ໄຂບັນຫາ (Troubleshooting)

ການເກັບຂໍ້ມູນໃນສະຖານທີ່ຈິງຢູ່ຫຼວງພະບາງ ມີສິ່ງທ້າທາຍດັ່ງນີ້:

ສິ່ງສຳຄັນທີ່ໄດ້ຮຽນຮູ້

ສະຫຼຸບ

ການຜະສົມຜະສານລະຫວ່າງ Generative AI ກັບວັດທະນະທຳທ້ອງຖິ່ນ ເປີດປະຕູສູ່ຄວາມເປັນໄປໄດ້ໃໝ່ໆ ໃນການອະນຸລັກມໍລະດົກຂອງຊາດ. ການປ່ຽນຈາກພາບຖ່າຍທຳມະດາຂອງທ່ານ ທີ່ໄປຢ້ຽມຢາມຫຼວງພະບາງ ໃຫ້ກາຍເປັນໂມເດວ 3 ມິຕິ ຂອງວັດຊຽງທອງ ທີ່ສາມາດໃຊ້ໃນການສຶກສາ, ວີດີໂອເກມ ຫຼື ໃນຈັກກະວານ Metaverse ບໍ່ແມ່ນເລື່ອງທີ່ໄກຕົວອີກຕໍ່ໄປ. ດ້ວຍຄະນິດສາດຂອງ Neural Networks ແລະ ເຄື່ອງມືເຊັ່ນ NeRF ຫຼື 3D Gaussian Splatting, ນັກພັດທະນາໃນລາວທຸກຄົນກໍສາມາດເປັນສ່ວນໜຶ່ງໃນການນຳເອົາຄວາມງົດງາມທາງປະຫວັດສາດຂອງເຮົາເຂົ້າສູ່ໂລກດິຈິຕອນຂັ້ນສູງໄດ້ຢ່າງສະຫງ່າງາມ.