전체 글(28)
-
[3DGS] 3D Gaussian Splatting
3DGS 사용 이유1. 효율적인 장면 표현: MLP(다층 퍼셉트론) 네트워크를 필요로 하지 않음.: 스파스 포인트 클라우드를 기반으로 초기화되며, SfM(Structure-from-Motion) 데이터를 통해 쉽게 시작# SfM은 여러 사진에서 장면의 3D 윤곽(스파스 포인트 클라우드)과 카메라의 위치/방향을 추출해 3D Gaussian을 설정하는 초기 데이터를 제공 -> 시간, 비용 절약 2. 최적화 속도와 품질의 균형: 학습 중 3D Gaussian의 밀도를 동적으로 조절하여 중요하지 않은 영역을 제거하고 필요한 영역을 세밀히 표현. 3. 실시간 렌더링 지원: 3D Gaussian은 2D 화면으로 쉽게 투영할 수 있어 GPU 기반의 빠른 래스터화(rasterization) 적합.: Anisotropi..
2024.12.24 -
NeRF: Neural Radiance Fields
NeRF: Neural Radiance Fields: 딥러닝 기반으로 3D 장면의 빛과 구조를 학습하여 새로운 시점 합성(novel view synthesis)을 제공객체의 3D 모델을 생성하는 기술이 아니라, 객체를 바라보는 모든 장면을 생성하는 Novel View Synthesis 기술실제로 존재하지 않는 시점에서의 새로운 이미지를 생성한다. => 3D 데이터를 미리 생성해 저장하지 않고, 필요할 때마다 계산해서 이미지를 만들어냄. 입력 데이터다양한 각도에서 객체를 촬영한 이미지 (RGB + Mask(물체와 배경 구분)의 4채널)카메라 파라미터 (카메라 위치 + 각도)출력 데이터 : 입력 이미지에 없던 새로운 view θ: 극각(polar angle), z축을 기준으로 방향과 이루는 각도.ϕ: 방..
2024.12.22 -
[배울랑교AI] 이미지 처리
이동 import cv2import numpy as npimg = cv2.imread('images/fish.jpg')rows, cols = img.shape[0:2]#2차원dx, dy = 100, 50# x로 100, y로 50만큼 이동mtrx = np.float32([[1, 0, dx], [0, 1, dy]])#행렬로 만들어줌move_basic = cv2.warpAffine(img, mtrx, (960, 540))# cv2.warpAffine(img, mtrx, dsize(화면 x축 길이, 화면 y축길이))move_constant = cv2.warpAffine(img, mtrx, (960, 540), None, None, cv2.BORDER_CONSTANT, (255,255,255)) # cv2.BO..
2024.11.27 -
[배울랑교AI] 영상 처리
명암도 영상 생성import cv2import numpy as npimage1 = np.zeros((50, 512), np.uint8)image2 = np.zeros((50, 512), np.uint8)image3 = np.zeros((50, 512), np.uint8)rows, cols = image1.shape[:2]for i in range(rows): for j in range(cols): image2.itemset((i, j), j // 2) image3.itemset((i, j), j // 20 * 10)cv2.imshow("image1", image1)cv2.imshow("image2", image2)cv2.imshow("image3", image3)cv2.waitKey(0)cv2.dest..
2024.11.27 -
[AI배울랑교] 컴퓨터 비전
영상 보여주기cap = cv2.VideoCapture(0)if not cap.isOpened(): print("Camera open failed!") exit()print('Frame width:', int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)))print('Frame height:', int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))print('Frame count:', int(cap.get(cv2.CAP_PROP_FRAME_COUNT)))print('FPS:', cap.get(cv2.CAP_PROP_FPS))cv2.namedWindow("frame", cv2.WINDOW_NORMAL)cv2.resizeWindow("frame", 640, 480)whi..
2024.11.27 -
[배울랑교 AI] 컴퓨터 비전 기능을 구현
윈도우 생성import numpy as np # numpy 라이브러리를 np라는 이름으로 사용import cv2 # opencv 라이브러리를 사용 image = np.zeros((300, 400), np.uint8) # 300 x 400 행렬생성, 8비트 부호없는 정수형image.fill(200) # 밝은 회색으로 바탕 채우기 cv2.imshow("Window title", image) # imshow(윈도우이름, 행렬영상), 영상보기 cv2.waitKey(0) # 키 입력시까지 윈도우 대기 cv2.destroyAllWindows() # 키 입력후에 윈도우 닫기 2. 윈도우 크기 변경image = np.zeros((200, 300), np.uint8) # 200 x 400 행렬생성, 8비트 부호없는..
2024.11.27