공부
-
[BOJ] 16236번 아기 상어공부/Algorithm 2021. 8. 16. 21:08
처음 DFS로 접근했다가 갈아엎게 됐다... 역시 문제 해석에 많은 시간을 투자해서 가닥을 잘 잡아야 함을 뼈저리게 느꼈다. 본 문제를 풀면서 BFS로 방향 탐색조건을 단순히 상, 좌, 우, 하 로 하여 탐색된 물고기 후보들 중 첫번째 것을 선택하면 되리라 생각하고 풀었지만 그런 단순한 조건으로 풀리는 문제는 아니었다. 주의할 점 해당 문제는 최소 거리가 가장 우선순위 조건인 문제로, DFS보다는 BFS가 적합하다. 상어로부터 동일한 거리를 갖는 물고기들에 대해 아래를 주의해야 한다. 문제에서 언급한 조건은 단순히 행 인덱스가 가장 낮은, 그 중에서도 열 인덱스가 가장 낮은 물고기를 의미하므로, BFS로 탐색한 물고기 순서를 그대로 사용하면 안됨! (BFS로 탐색한 순서는, 상어로부터 출발한 물고기들의 ..
-
C - strncat() 함수 제대로 사용하기 (버퍼 오버플로우 방지)공부/Algorithm 2021. 7. 22. 12:25
Dependency #include 내용 설명 실무에서 strncat() 함수는 strcat()의 사용으로부터 발생할 수 있는 버퍼오버플로우를 방지하여 안전하게 사용하기 위해 사용한다. 배경 지식 char a[32] = "Hello" char b[32] = "World!" a는 1바이트씩 다음과 같이 저장되어 있다. -> H, e, l, l, o, \0(Null terminator) b는 1바이트씩 다음과 같이 저장되어 있다. -> W, o, r, l, d, \0(Null terminator) 예를 들어 printf나 sprintf와 같은 문자열 출력 함수를 이용해 아래와 같은 구문으로 문자열을 출력한다고 하였을 때 printf(a) // Hello printf(b) // World! 컴파일러는 a, b..
-
[논문 리뷰] (CycleGAN) Unpaired Image-to-Image Translationusing Cycle-Consistent Adversarial Networks공부/CV & DL 논문 리뷰 2021. 6. 19. 16:39
본 논문은 unpaired dataset을 다뤄야하는 많은 NN 문제들에 적용해볼 수 있는 cycle-consistency loss에 대해 다룬다. https://www.youtube.com/watch?v=Fkqf3dS9Cqw CycleGAN의 저자이신 Taesung Park 님의 네이버 발표 영상이다. 핵심에 대해 넘나 친절하고 자세히 설명해 주셨는데, GAN이 신기하고 잘 되는 핵심은 loss가 고정된 것이 아닌 유동적이기 때문일 수 있다 -> adversarial loss의 계산에 활용되는 discriminator 또한 학습과정에서 변화함. 본 연구에서는 Unpaired dataset 으로 translation 하는 방법에 대해 연구한다. 그렇다면, 입력 x에 대한 타겟 y가 정해지지 않았다는 말인..
-
Non local means 알고리즘, MATLAB 구현 코드 포함공부/Digital Image Processing 2020. 7. 16. 23:55
Non local means algorithm은 노이즈 제거에 강력한 성능을 보여주는 denoising 알고리즘이다. 일반적으로, gaussian smoothing과 같은 노이즈 제거 알고리즘을 많이 사용하는데 이러한 smoothing 방식은 local한 데이터들, 즉 해당 픽셀 주변의 정보들만을 이용한다는데에 그 한계가 있다. 그렇기 때문에 edge등이 소실되기 마련이고, 텍스쳐가 뭉개지는등의 단점이 있다. 이를 통해 노이즈가 제거되기도 하지만, 영상의 디테일 또한 소실되는 문제점이 있다. NL means 알고리즘은 다음과같은 아이디어에서 시작된다. 해당 픽셀의 gaussian kernel에 해당하는 local 영역의 픽셀값 대신, 영상내에서 해당 픽셀 주변 영역과 비슷한 패턴을 갖는 영역들을 찾아내 ..
-
Hash, Hash function는 무엇일까? (해시 값 및 해시 함수 설명)공부/Algorithm 2020. 5. 30. 20:44
우선 위키피디아에 검색하면 다음처럼 설명한다. 해시 함수란, '임의의 길이의 데이터'를 '고정된 길이의 데이터'로 매핑하는 함수이다. 이렇게 매핑된 함수의 출력을 '해시'라고 부른다. 이러한 해시 함수는, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용된다. 즉, 예를 들어 32bit, 64bit, 128bit 등 임의의 N-bit 데이터를 갖고있을때, 이 데이터를 16bit와 같은 적은 bit의 데이터로 매핑하는 방법에 대한 설명이다. 64bit 데이터를 16bit의 데이터로 변환하는 간단한 해시 함수는 다음과 같다. int16 hashfunction( int64 i ) { int16 hash = (int16)(i & 0xFFFF); hash ^= (int16)((i >> 16) & 0xF..
-
(Remote Sensing) Multispectral, Hyperspectral image의 차이공부/Algorithm 2020. 5. 5. 15:06
인간의 눈은 가시광선 (380nm ~ 700nm) 스펙트럼내의 빛을 식별할 수 있다. 하지만, 인간이 아닌 다른 동물들은 저마다 다른 스펙트럼대의 빛을 식별할 수 있는데, 금붕어는 적외선 (700nm ~ 1mm) 스펙트럼내의 빛을 식별할 수 있으며 꿀벌은 자외선 (10nm ~ 380nm) 스펙트럼내의 빛을 식별할 수 있다. 그렇다면, 금붕어와 인간, 꿀벌의 눈을 합치면 적외선, 자외선, 가시광선 모두 볼 수 있다는 뜻이 되는데 인간들은 이를 sensor를 통해 해결하고자 한 것이다. 그렇게 시작된 개념이 Multispectral, Hyperspectral image 이다. Multispectral(MS)과 Hyperspectral(HS)의 차이는 스펙트럼을 나누는 밴드의 갯수와 그 밴드의 폭에 의해 차이..
-
(Remote Sensing) Pansharpening, Pansharpened image 는 무엇일까?공부/Algorithm 2020. 5. 5. 13:19
대학원 전공강의로 Remote sensing 강의를 수강중인데 Pansharpening에 대해 공부하게되어 글을 남긴다. Remote sensing에서 많이 사용되는 Pansharpening이란, wikipedia에서 다음과같이 설명한다. Low-res color bands (MS image) + High-res grayscale band (Pancromatic image(PAN)) = Hi-res color image 예를 들어, SPOT 6, 7 위성은 각각 1.5m와 6m의 공간해상도를 갖는 single-band panchromatic 이미지와 4-band multispectral 이미지를 촬영할 수 있으며, WorldView-4 위성은 각각 0.31m와 1.24m의 공간해상도를 갖는 single-..
-
[논문리뷰] (EfficientNet) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks / ICML 2019공부/Image Classification 논문리뷰 2020. 4. 28. 18:07
Image classification 분야에서 매우 월등한 성능으로 큰 이목을 집중시킨 논문이다. 2019년 5월에 발표되었던 이 논문은 2020년 4월 현재, 1년도 지나지않아 인용수 300회를 돌파했을정도로 인기가 뜨겁다. ABSTRACT CNN은 한정된 자원(하드웨어 자원을 말하는듯?)내에서 개발되어왔으며, 자원이 추가적으로 지원되는 한도 내에서 더 높은 정확도를 위해서 그 크기를 키워가는 방향으로 발전되어왔다. 이 논문에서는, model scaling에 대해 더 명확히 밝혀내기 위해 연구하게 되며, network의 depth, width, 그리고 resolution사이의 관계에 대한 균형을 맞춰야 더 나은 성능을 보인다는것을 체계적으로 밝혀낸다. 저자는 이 논문에서 모든 depth, width, ..