일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CoCo
- Poisson Distribution
- kakao map
- 영상처리
- gstreamer
- dataset
- detection
- probability
- vision
- MMrotate
- bernoulli distribution
- similarity
- matlab
- RANSAC
- AERIAL IMAGE
- measure
- Map
- LDU decomposition
- schur complement
- pytorch
- DataLorder
- OpenMMlab
- rotated RetinaNet
- woodbury matrix identity
- MSAC
- entropy
- binomial distribution
- Today
- Total
목록분류 전체보기 (12)
끊임없이 부단히
이번 포스팅에서는 자주 사용되는 확률 분포간 거리 척도(distance metric)들을 간략하게 정리하고자 합니다. 특히 확률 분포가 가우시안일 때 수식들을 정리하고자 합니다. 척도는 Kullback-Leibler divergence, Hellinger 입니다! 엔트로피(Entropy) 정보이론에서 사용되는 엔트로피는 어떤 확률 분포가 가지는 불확실성의 양을 의미합니다. 엔트로피는 아래와 같이 정의됩니다. $$ H(X) = -\sum_x p(x)logp(x) = \mathbb{E}[-logp(X)]$$ Kullback-Leibler divergence KLD도 두 확률분포간 유사도(similarity)를 측정하는데 자주 사용되는 척도 입니다. $$ D_{KL}(P||Q) = \sum_x p(x)log\..
이번 포스팅에서는 자주 사용되는 확률 분포들을 간략하게 정리하고자 합니다. 확률 분포는 푸아송 분포, 베르누이 분포, 이항 분포입니다! 푸아송(Poisson) 분포 푸아송 분포의 확률 질량 함수(Probability mass function)은 아래와 같습니다. $$ f(k;\lambda )=\frac{\lambda^ke^{-\lambda}}{k!} $$ 여기서 변수 λ는 단위 시간 당 사건이 발생할 기댓값을 의미합니다. 즉, 확률 질량 함수는 단위 시간 당 λ번 발생하길 기대하는 사건이 k번 발생할 확률을 의미합니다. 또한, 푸아송 분포에는 평균과 분산이 모두 λ라는 특징이 있습니다. $$ \mathbb{E}(X) = Var(X) = \lambda $$ 베르누이(Bernoulli) 분포 베르누이 분포는..
이번 포스팅에서는 자주 사용되는 행렬 관계식 중 하나(Woodbury matrix identity)를 정리하려고 합니다. Woodbury matrix identity는 아래와 같습니다. $$ (A+UCV)^{-1} = A^{-1} - A^{-1}U(C^{-1} + VA^{-1}U)^{-1}VA^{-1}$$ 양변에 (A+UCV)를 곱하면 쉽게 Identity matrix가 나옴을 알 수 있습니다. 하지만 schur complement 행렬을 이용해서도 도출할 수 있습니다. 아래와 같이 M이라는 큰 행렬을 A, B, C, D라는 작은 부분 행렬로 표현된다면 행렬 M의 블록 D or A의 schur complement 행렬은 아래와 같습니다. $$ \begin{bmatrix} A & B \\ C & D \\ ..
이번 포스팅에서는 이상치(outlier) 제거에 자주 사용되는 RANSAC 알고리즘을 구현하려고 합니다. 영상처리에서는 특히 뷰 포인트가 다른 두 영상을 매칭할 때 자주 사용됩니다. (정확히는 특징점을 추출하고 특징점들로 호모그래프를 도출할 때 이상치들을 제거합니다.) 하지만 본 글에서는 MATLAB을 이용하여 간단한 예제만 구현하려고 합니다. 본 코드는 MATLAB 예제 코드를 참고하였습니다. https://kr.mathworks.com/help/vision/ref/ransac.html 먼저, 임의의 데이터를 생성해줍니다. 기본적으로 y = 2x라는 관계를 같지만, 일부를 난수로 하여 이상치로 만듭니다. x = 1:0.5:20; y = 2*x; errIdx = 1:4:length(x); y(errIdx..
Kakao map API 이번 포스팅에서는 카카오 지도에서 제공하는 지도를 그리는 Javascipt API에 대해 소개합니다. 학습에 지도 데이터가 필요하여 찾아보던 중 카카오 지도 API가 설명도 잘되어 있어 사용하게 되었습니다. 자세한 내용은 아래 주소에서 확인할 수 있습니다. https://apis.map.kakao.com/web/guide/ API 키 발급 및 웹 서버 기동 해당 API를 사용하기 위해서는 우선 API 키를 발급받아야 합니다. 키를 발급받는 방법은 위 사이트('준비하기')에 자세히 소개되어 있어서 따로 언급하진 않겠습니다. 만약 발급을 받으셨다면 https://developers.kakao.com 에서 로그인 후 '내 애플리케이션'에 들어가시면 발급받으신 키를 확인할 수 있습니다...
이번 포스팅에서는 Window 10에 GStreamer를 설치합니다. GStreamer 파일은 아래 주소에서 받을 수 있습니다. https://gstreamer.freedesktop.org/download/ Download GStreamer Download GStreamer If you're on Linux or a BSD variant, you can install GStreamer using your package manager. For other platforms, specifically Windows, macOS, Android, and iOS, we provide binary releases in the form of official installers or tarballs main gstrea..
이번 포스팅에서는 mmrotate에서 제공하는 데이터 셋이 아닌 임의의 데이터 셋을 이용하여 모델을 학습하려 합니다. 새로운 데이터 셋으로는 앞선 포스팅에서 공부했던 COCO 데이터를 이용합니다. 1. DOTA 데이터 형태로 변환 먼저, COCO 데이터 셋을 DOTA 데이터 형태로 변환합니다. COCO는 bbox가 x, y, w, h 형태이므로 이를 x1, y1, x2, y2, x3, y3, x4, y4 형태로 바꾸는 함수를 작성합니다. 여기서 COCO의 x, y는 왼쪽 위(left-top)의 꼭지점 위치이며 이미지의 좌상단을 원점으로 합니다. DOTA도 x1, y1를 왼쪽 위로 하며 나머지들은 시계 방향으로 꼭지점들을 의미합니다. 추가로 category정보와 difficult정보(1: 어려움, 0: 쉬..
지난 포스팅에 이어서 mmrotate를 이용하여 rotated RetinaNet을 학습하려 합니다. 마찬가지로 아래의 DOTA 홈페이지에서 학습용 데이터를 다운받아 줍니다. 참고로, 버전 1, 1.5, 2가 있는데 버전 1을 다운받아야 합니다. (1.5이상을 쓸 경우 'container crane'이 없다는 오류가 납니다) 다운받은 데이터를 각각 data/DOTA/train & val 폴더 내의 images & labelTxt 폴더에 정리해줍니다. https://captain-whu.github.io/DOTA/dataset.html DOTA DOTA 2 --> DOTA A Large-Scale Benchmark and Challenges for Object Detection in Aerial Images..