no image
[3D Reconstruction] 3차원 주석 데이터에 비의존적으로 3차원 모델을 재구성 하는 방법들
다양한 3차원 재구성(Reconstruction) 방법 중에서 3차원 주석이 달린 이미지에 의존적이지 않으면서 3차원 재구성을 수행할 수 있는 방법이 있다. SMPLify 와 같은 최적화 기반 방법은 파라메트릭 인간 모델(Parametric human models)에 의존하며, 몇가지 모델 매개 변수만 예측하면 된다. 이러한 방법들은 추정된 포즈가 2차원으로 투영 시키는데 일어나는 오차를 최소화 하는데만 신경을 쓰기 때문에 추정된 자세가 유효한지를 보장 할 수 없다. 실제로, output quality 는 초기화에 크게 의존하게 된다. 여기서 초기화란 2차원 자세에 body model 을 처음에 fit 하게 맞추는 작업을 의미하는 것 같다. 그렇기 때문에 비교적 까다로운 자세를 추정하지 못하는 문제점이 ..
2020.06.02
no image
[Pose Estimation] 단일 이미지에서 3차원 자세를 추정하는 방법 및 문제점
단일 이미지에서 3차원으로 사람의 자세를 재구성(Reconstruction) 하는 방법은 깊이(Depth) 정보를 고유하게 복구 시킬 수 없다는 문제를 가진다. 이러한 깊이 모호성(Depth ambiguity)을 극복하기 위하여 사전에 정의된 body shape 과 pose 정보들을 이용해야한다. 최적화(Optimization)기반 방법들은 SMPL(Skinned Multi-Person Linear model) 및 SCAPE(Shape Completion and Animation of People) 와 같은 3차원 바디 모델을 assume 하고 최적화 알고리즘을 사용하여 2차원 자세들을 맞춘다. 초기 접근 방식에는 수동으로 입력을 주었지만, SMPLify 연구 부터 프로세스가 완전히 자동화 된 다음, "..
2020.06.02
no image
[Object Detction] 3D Object Detection, Google Objectron
Object Detection 분야는 대부분 2차원 객체 탐지만을 다루고 있다. 2차원 객체를 탐지하는 것은 2차원 바운딩 박스만 있지만, 3차원 객체 탐지로 범위를 확장한다면, 물체의 크기 및 위치, 방향 등을 알 수 있으므로 자율 주행 및 이미지 검색, 증강 현실에서 다양한 분야에 응용 할 수 있다. 가령, 2D Human Pose Estimation 분야에서 3차원 정보가 아주 조금 필요한 도메인이라면, 3D Human Pose Estimation 까지 연구의 범위를 확장 안하고도 문제를 해결 할 수 있지 않을까 라는 생각을 했다. 즉, 사람에 대한 2차원 바운딩 박스 정보를 3차원으로 추출 할 수 있다면, 꽤 vanilla 적인 접근으로 여러가지 문제를 해결할 수 있지 않을까 ㅎㅎ 심지어 이건 모..
2020.05.27
[TensorRT] TensorRT GA vs RC => Use the GA version
TensorRT 다운로드 시 특별한 이유가 없는 경우, GA 버전을 다운 받는 것을 추천한다. GA is a production release, it stands for "General Availability". It is the version most people should be using, for most activities. It has gone through a full test cycle. RC is a "Release Candidate". It is a preproduction version, an early release version. In general, the recommendation would be to use a GA version, unless you have a specifi..
2020.05.18
[TensorRT] Assertion `size >= bsize && "Mismatch between allocated memory size and expected size of serialized engine."'
아래와 같은 에러는 TensorRT 7.0 버전에서 만든 Engine 을 TensorRT 7.0 미만의 버전에서 사용하였을 때 나는 에러이다. 해당하는 TensorRT 버전에 맞게 끔 다시 Engine 을 생성해서 Deserialization 을 시도해야한다. python3: engine.cpp:868: bool nvinfer1::rt::Engine::deserialize(const void*, std::size_t, nvinfer1::IGpuAllocator&, nvinfer1::IPluginFactory*): Assertion `size >= bsize && "Mismatch between allocated memory size and expected size of serialized engine."..
2020.05.18
no image
[Deep Learning] 딥러닝에서 사용되는 다양한 Convolution 기법들
기존 2차원 컨볼루션은 세가지 문제점이 존재한다. Expensive Cost Dead Channels Low Correlation between channels 또한, 영상 내의 객체에 대한 정확한 판단을 위해서는 Contextual Information 이 중요하다. 가령, 객체 주변의 배경은 어떠한 환경인지, 객체 주변의 다른 객체들은 어떤 종류인지 등. Object Detection 이나 Object Segmentation 에서는 충분한 Contextual Information을 확보하기 위해 상대적으로 넓은 Receptive Field 를 고려할 필요가 있다. 일반적으로 CNN에서 Receptive Field 를 확장하기 위해서는 커널 크기를 확장한다던지, 더 많은 컨볼루션 레이어를 쌓는 방법을 ..
2020.05.18
no image
[Deep Learning] Batch Normalization (배치 정규화)
사람은 역시 기본에 충실해야 하므로 ... 딥러닝의 기본중 기본인 배치 정규화(Batch Normalization)에 대해서 정리하고자 한다. 배치 정규화 (Batch Normalization) 란? 배치 정규화는 2015년 arXiv에 발표된 후 ICML 2015에 게재된 아래 논문에서 나온 개념이다. Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift https://arxiv.org/pdf/1502.03167.pdf Gradient Vanishing / Exploding 문제 신경망에서 학습시 Gradient 기반의 방법들은 파라미터 값의 작은 변화가 신경망 출력에 얼마나 영향을 미칠 ..
2020.05.16
no image
[Book Review] 이것이 리눅스다 with RedHat CentOS 8
학부 시절에 가장 싫어했던 과목을 뽑으라면 네트워크 과목이었다. 공부를 해도해도 머리에 잘 안들어오고, 전공과목중에 유일하게 C 학점을 내리 받았던 컴퓨터 네트워크 과목.... 그래서 서버 및 네트워크 분야는 들춰보기도 싫고 담쌓고 살았는데, 일을 하다보니 왜그랬지 라는 생각이 ... 네트워크 전공은 아니지만, 네트워크에 대한 기본 지식이 전무후무 하다 보니 다른 분야에도 영향을 적지않게 끼친다는 것을 느꼈다. 이 글을 보는 컴퓨터공학 학부생들은 전공 과목들을 소홀히 하지 않고 열심히 공부했으면 좋겠당. 아무튼 그래서 이제라도 열심히 공부하면 되겠지 라는 마음으로 한빛미디어에서 출간된 "이것이 리눅스다" 라는 책을 접하게 되었다. 이 책은 RedHat CentOS 8 기반으로 한 대의 컴퓨터로 여러 대의..
2020.05.16
[Linux] 리눅스 파티션 나누기
리눅스 디스크 파티션에 대해서 간단히 알아보았다. 리눅스 파티션은 루트 파티션이라고 부르는 '/' 파티션과 'swap' 파티션 2개만 있어도 운영이 가능하다. 왜냐하면 루트 파티션만 생성하면 나머지 파티션 들인 /bin /etc /boot /usr /tmp /var /home 들은 모두 루트 파티션 아래 종속되기 때문이다. 물론 실무에서 리눅스를 운영할 때는 지금과 같이 파티션을 두 개로 나누지 않고, 필요한 용도에 따라서 다양하게 분할한다. 하드디스크 80GB 기준으로 다음과 같이 나눌 수 있다. 마운트 포인트 권장 크기 비고 / 10GB 루트 파티션 /bin 기본 명령어가 들어가 있음 /sbin 시스템 관리용 명령어가 들어가 있음 /etc 시스템의 환경 설정과 관련된 파일이 들어가 있음 /boot 4..
2020.05.16
[PyCUDA] 정리중
https://documen.tician.de/pycuda/driver.html Device Interface — PyCUDA 2019.1.2 documentation Pagelocked Allocation pycuda.driver.pagelocked_empty(shape, dtype, order='C', mem_flags=0) Allocate a pagelocked numpy.ndarray of shape, dtype and order. mem_flags may be one of the values in host_alloc_flags. It may only be non-zero on CUDA 2.2 and newer. documen.tician.de https://documen.tician.de/pyc..
2020.05.14
[Onnx] Onnx Tutorials (정리중)
Onnx Tutorials https://github.com/onnx/tutorials onnx/tutorials Tutorials for creating and using ONNX models. Contribute to onnx/tutorials development by creating an account on GitHub. github.com https://github.com/onnx/onnx-tensorrt onnx/onnx-tensorrt ONNX-TensorRT: TensorRT backend for ONNX. Contribute to onnx/onnx-tensorrt development by creating an account on GitHub. github.com https://githu..
2020.05.14
no image
[Book Review] 파이썬으로 배우는 딥러닝 교과서
한빛미디어에서 "파이썬으로 배우는 딥러닝 교과서, 이미지 인식 모델을 만들면서 익히는 딥러닝" 이라는 책이 2020년 3월에 출간되었다 :) 예전부터 파이썬 언어 기반으로 된 총체적인 딥러닝 개념을 담은 책이 있었으면 좋겠다고 생각했었는데, 한빛 미디어에게 감사를 전한다. 이 책은 지은이인 이시카와 아키히코가 말하고 있듯, 파이썬 라이브러리를 이용하여 머신러닝과 딥러닝을 학습해 볼 수 있는 교과서 같은 책이다. 이 책의 최종적인 목표는 딥러닝 기술인 CNN(Convolutional Neural Network)를 이용하여 이미지 인식 프로젝트 구현까지 코딩하는 것을 목표로 한다. 불과 2~3년 전까지만 해도 CNN을 구현하여 이미지 인식을 한다는 것 자체가 어렵게 다가왔었으나, 딥러닝 기술이 무섭게 발전함..
2020.04.30