분류 전체보기 538

DockerFile로 효율적으로 이미지 빌드하기 (w/ tip)

DockerFile이 있을 때, 다음과 같이 한줄을 입력하면 도커 이미지를 빌드할 수 있다. docker build -t IMAGE_NAME:TAG . 여기서 IMAGE_NAME에 해당하는 부분은 말그대로 이미지 입력을 넣으면 되고, TAG 부분에는 버전 관리용으로 사용할 이름을 넣으면 된다. 지정하지 않을 시 :latest 가 기본값으로 들어간다.  Tip. DockerFile을 여러개로 나누어서 사용하는 방법DockerFile로 이미지를 빌드할 때, 이미지가 무거워질수록 빌드가 부담스러워진다. 한 번만 빌드하고 끝난다면 아무 상관없지만 혹 개발 단계에서 이것저것 여러번 변경하면서 빌드를 시도한다면 빌드 시간이 길어지므로 불편함이 커진다. 예를 들어, OpenCV, Ceres 등 묵직한 라이브러리들을 ..

Knowhow/Docker 2024.01.29

Docker 이미지 빌드 시, interactive 무한루프 벗어나기

DockerFile로 이미지를 직접 빌드할 때 가끔 중간에 무한 루프 걸리는 부분이 있다. 설치하려는 라이브러리 중 일부가 사용자의 입력을 받은 뒤 설치되도록 되어있다면 무한 루프가 걸린다. 대표적인 예로, ubuntu base image를 가져와서 시작하는 대부분은 다음과 같은 문제일 것이다. Preconfiguring packages ... Configuring tzdata ------------------ Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zo..

Trouble/Docker 2024.01.29

Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data

내 맘대로 Introduction 요즘 segment anything 이후로 anything을 붙이는 것이 유행이 돼버린 것 같다. 이 논문은 대규모 데이터를 먹여 monodepth 성능을 끌어올린 논문이다. MiDAS와 사실 거의 비슷한 논문이라고 할 수 있는데 6200만장에 달하는 unlabeled data를 먹여서 성능을 어떻게 끌어올릴 수 있을지 고민한 차이점이 있다. 핵심 아이디어는, DinoV2 + depth를 teacher로 두어서 unlabeled data를 pseudo labeled data로 만들어 사용하는 것과,feature가 DinoV2 feature를 닮도록 regularization을 가해서 semantic prior를 잃지 않도록 하는 내용이다. 새로운 loss나 이론적인 내용..

Paper/3D vision 2024.01.24

Street Gaussians for Modeling Dynamic Urban Scenes

내 맘대로 Introduction 논문보다 프로젝트 보고서에 가깝다. 그냥 주어진 데이터셋에서 gaussian splatting 돌려보았고, tracker 활용해서 차량 분리해보았다. 그럼에도 불구하고 기록하는 이유는, 후반부 time parameter를 넣어 4D 로 확장할 때 기존 논문들과 달리 fourier transform을 썼다는 점이 독특했기 때문이다. 메모하며 읽기 lidar point가 풍부하게 주어진 상황이다. sequence 충분히 촘촘하고 point density도 충분하다. 이 상황에서 3D bbox detector + tracker를 붙여 배경과 물체(차량)을 구분해서 GS로 복원한다. 이 때 물체는 움직이므로 time dimension까지 고려해서 4D로 구현하고 배경은 3D g..

Paper/3D vision 2024.01.23

UniSDF: Unifying Neural Representations for High-Fidelity 3D Reconstruction of Complex Scenes with Reflections

내 맘대로 Introduction ENVIDR, Neuralangelo 와 같이 반사 빛이 있는 물체의 복원을 어떻게 할 수 있을지 고민한 논문이다. 이름에서도 예측할 수 있다시피 VolSDF와 같은 NeRF 기반 아이디어이다. 핵심 아이디어는 기존 논문들이 specular,diffuse parameterization을 사용한 것과 달리, 그냥 아예 반사광만 따로 표현하는 MLP를 추가해버린 것이다. 어떻게 보면 수학 모델링이 들어가지 않았기 때문에 무식하다고 볼 수도 있지만, simple yet effective! 간단한 아이디어 하나로 훌륭한 결과를 냈기에 좋은 논문이라고 생각한다. 오히려 성능이 좋은 이유가, 모든 물체가 반사광 모델링이 필요한 것이 아닌데 일괄적으로 parameterization ..

Paper/3D vision 2024.01.23

[TensorRT 튜토리얼] 5. torch2trt

TensorRT를 사용하는 것은 어렵다. 아무리 ONNX, python API의 도움을 받아도 직접 conversion, deployment를 깔끔하게 해내긴 어렵다. https://github.com/NVIDIA-AI-IOT/torch2trt GitHub - NVIDIA-AI-IOT/torch2trt: An easy to use PyTorch to TensorRT converter An easy to use PyTorch to TensorRT converter. Contribute to NVIDIA-AI-IOT/torch2trt development by creating an account on GitHub. github.com torch2trt는 TensorRT 사용을 고민하는 사람들이 가장 흔하게 ..

[TensorRT 튜토리얼] 4. How TensorRT works

구현된 방식 TensorRT API는 class-based다. "class를 wrapping하는 class" 이런 식으로 전부 class로 구현되어 있다. 최상위 class (e.g. builder, runtime)가 존재하고 하위 class들이 member를 구성하고 있으며, 최상위 객체가 호출하면서 사용하는 방식이다. 그러므로 실제로 코드는 최상위 class (builder, runtime)에 단 2가지에 의해 동작하는 모양이다. 따라서 최상위 class를 먼저 생성하는 것으로 시작하고 최상위 class를 지우면서 종료된다. 구체적으로 최상위 클래스는 conversion 과정에서는 Builder, deployment 과정에서는 Runtime이 존재한다. Logging and error handling..

AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning

내 맘대로 Introduction 이 논문을 한마디로 표현하면, specific tuning이 아니라 general tuning을 하는 방법을 소개했다 생각한다. task가 motion인데 이렇게 표현하는 것이 좀 과장하는 것 같지만, 큰 그림에서 A도 motion을 갖게 하고, B도 motion을 갖게 하려면 기존에는 A,B 각각 별도로 tuning을 했어야 하는데 A, B에 둘 다 적용 가능한 tuner를 만드는 방법을 보여줬으니 general tuning 방법을 소개했다고 보인다. 간단히 말해 조금 크고 무거운 LoRA를 만들어서 여러 대상을 tuning하는 느낌이다. 개인적으로 task가 motion인데, motion을 자유롭게 컨트롤할 수 없다는 점은 아쉬웠다. 똑같은 생각을 한 사람이 있기 때..

Paper/Generation 2024.01.22

DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation

내 맘대로 Introduction 이 논문은 CVPR 2023에서 무려 best paper를 받은 google 논문이다. 한마디로 요약하면, 학습 완료된 text-to-image generation model을 fine-tuning하는 방법을 소개한다. 예를 들어, 위 사진처럼 내 웰시코기 애완견 이미지를 생성하는 모델로 fine tuning하고 싶을 때, 입력 이미지 3~5 장 정도 넣어 학습하는 방법이다. LoRA와 더불어 fine tuning 정석 기법 중 하나로 여겨지고 있다. 핵심 내용은 unique identifier를 넣어서 tuning 대상이 어떤 것인지 명확히 지정하는 방법, 그 와중에 다른 대상에 대한 생성 결과는 원래대로 유지되도록 하는 방법 2가지다. 메모하며 읽기 단순히 새로운 f..

Paper/Generation 2024.01.22

[TensorRT 튜토리얼] 3-2. TRT engine deployment (TBU)

ONNX를 거쳐 TRT engine으로 변환이 완료된 모델을 실제로 사용하는 방법이다. .trt 확장자로 저장된 파일을 열어 inferece하는 방법으로 각각 TensorRT python API, c++ API를 통해 python/c++ 코드 내에서 동작시킬 수 있다. Deplying to python API document 보면 onnx_helper 내 ONNXClassifierWrapper로 예제가 적혀있는데 이건 오로지 예제를 위한 것이다. imagenet classification에 맞추어진 것이라고 보면 됨. Pytorch to TensorRT through ONNX 튜토리얼 글을 참고하는 것이 옳다. import time import torch import numpy as np import t..