분류 전체보기

Programming/Linux

[Vim/03] Vim 명령어 정리 - 이동

Intro Vim에서 커서 이동은 어떻게 할까? 단, 마우스는 사용할 수 없다. 너무나 허무하게도 Vim 역시 일반적인 에디터와 같이 화살표 방향키를 사용하면 된다. 그러나 Vim만의 특별한 Mapping이 있으며, 마우스를 사용할 수 없는 환경을 위해 다양한 이동 명령어가 준비되어 있다. 하나씩 짚어보도록 하자. Navigation Command 우선 일반적인 이동 명령어를 살펴보자. 일반적인 에디터에서 사용하는 화살표 방향키와 어떤 명령어가 매핑되는지 정리했다. Command Description h ⬅ j ⬇ k ⬆ l ➡ 신기한 매핑이다. 일반적으로 윈도우에 익숙한 사용자는 새로운 키배열에 적응하기 쉽지 않다. 꼭 저 배열을 사용할 필요는 없다. Vim도 화살표 방향키를 지원한다. 그러나 Vim만..

Programming/Linux

[Vim/02] Vim 명령어 정리 - 입력

Intro Vim이 에디터로서 기능을 하려면 Command를 통해 입력 모드로 들어가야 한다. 이때 매우 많은 방법이 있는데 이번 포스트에서 소개할 예정이다. 너무 많은 종류의 명령어에 겁먹지 않아도 된다. 미리 하나만 기억하도록 하자. Vim 초보자는 i(insert) 키만 기억하자! Insert Mode Command Vim의 가장 큰 장점은 키보드로 모든 걸 할 수 있는 것이다. 즉, 마우스가 없는 상황을 가정해야 왜 이렇게 많은 명령어가 존재하는지 이해할 수 있다. 그 말은 다르게 표현하면 일반적인 에디터에서는 상상할 수 없는 명령어들이 Vim에서는 존재한다. 우선 살펴보도록 하자. Command Description a 커서 위치 다음 칸부터 입력 A 커서 행의 맨 마지막부터 입력 i 커서의 위..

Programming/Linux

[Vim/01] Vim 명령어 정리 - 파일 열기, 저장, 종료

Intro Vim에는 여러 종류의 명령어가 있다. 이전 포스트에서 다룬 세 가지 모드마다 다른 명령어가 있어서 어떤 걸 사용해야 하는지 혼란스러울 것이다. 이번 포스트를 시작으로 각각의 모드에서 사용되는 명령어를 정리할 것이다. 모든 명령어를 알 필요는 없다. 한 번씩 사용해보고 자신에게 편한 명령어들을 기억하자. 우선 ex 모드에서 이용하는 명령어들을 알아보자. Ex 모드에서는 파일 열기, 저장, 종료 등의 기능을 할 수 있다. Open file with Vim vi [filename] or vim [filename] 명령어로 Vim을 조작하기 앞서, Vim을 이용해 파일을 열어야 한다. 위 명령어들을 통해 파일을 열 수 있다. Vi는 Vim 이전 버전의 에디터라고 생각하면 된다. Embedded/Fi..

Programming/Linux

[Vim/00] Vim의 3가지 모드

Intro 필자는 Vim을 처음 접했을 때 터미널을 강제 종료한 기억이 있다. 'vi hello.c'로 Vim에 진입을 했는데 문서가 작성이 안 되는 문제가 있었다. 아무 키나 누르다 보니 엉겁결에 문서 수정에는 성공했지만, 그다음 문제는 탈출을 못했었다. 대충 Esc를 눌러 탈출하면 되겠지? 이런 안일한 생각이 꽤 오랜 시간 같은 화면을 보게 만들었다. Vim에는 세 가지 모드가 존재하고 상황에 맞게 사용해야 한다. 3 Modes of Vim 명령 모드(Normal Mode) Vim을 들어가면 수행되는 Default Mode. Vim의 뉴비 절단기이다. 아무리 타이핑해도 글자가 입력되지 않는 마법을 보여주며, 문서 편집 대신 키 입력을 통해 삭제, 복사, 붙이기 등의 작업을 수행할 수 있다. 입력 모드..

Computer Vision/Optical Flow

[CV/Optical Flow] Lucas-Kanade Algorithm(1)

Intro 앞서 구했던 Optical Flow Constraint Equation(OFC)는 실제로 Optical Flow를 구하기에는 식이 부족했다. 미지수 2개, 식 1개로 방정식의 해를 특정할 수 없다. 그래서 우리는 가정을 추가해야 하는데 첫 번째 방법은 Lucas-Kanade Method이다. 추가된 Assumption, Optical Flow 계산, 장단점 순으로 글을 전개하겠다. Assumption Lucas-Kanade Method에서 추가한 가정은 이 알고리즘의 특징을 잘 보여준다. 픽셀 (y, x)를 중심으로 생성한 nXn의 윈도우 N(y, x)의 Optical Flow는 같다. 즉, 윈도우 내부의 픽셀은 모두 같은 방향으로 움직이며, 이에 따라 Motion Vector 값이 같다. 이..

Computer Vision/Optical Flow

[CV/Optical Flow] Optical Flow Constraint Equation / OFC

Intro 이전 포스트에서 Optical Flow가 무엇인지 알아봤다. 또한, 3차원에서 2차원으로 압축이 되며 발생한 많은 정보 손실에 대해서도 이야기했다. 이러한 문제를 극복하기 위해 Optical Flow는 몇 가지 가정을 하게 된다. 처음 포스트에서 다루었던 Coherence 개념이 여기서 이름만 바꿔서 다시 등장하게 된다. Assumptions 2차원으로 압축된 이미지에서 3차원의 움직임을 계산하기 위해서 우리는 가정을 해야만 한다. 이는 현실을 훼손하지 않는 범위 내에서 이뤄져야 하며, 문제를 풀기 위해 중요한 단서가 되어야만 한다. Brightness is constant Bright Constancy는 첫 포스트에서 다뤘던 Image Coherence와 매칭 되는 가정이다. 이는 이미지의 ..

Computer Vision/Optical Flow

[CV/Optical Flow] Motion Field vs Optical Flow

Intro 이전 포스트에서 Optical Flow의 단서를 찾았다. 정확히 말하면 컴퓨터가 사람처럼 물체의 움직임을 인지하도록 만들 단서를 찾았다. 그러면 Optical Flow 계산만 남은 것일까? 진정 Computer는 사람처럼 물체의 움직임을 인지할 수 있을까? 이번 포스트에서는 이름부터 직접적으로 물체의 움직임을 나타내는 Motion Field와 Optical Flow를 비교한다. 즉, 놀랍게도 Optical Flow는 물체의 움직임을 나타내는 게 아니다. 그렇다면 도대체 무엇인가? 물체의 움직임을 나타낸 Motion Field를 먼저 살펴보도록 하자. Motion Field 우리들의 친절한 이웃 Wikipedia는 Motion Field에 대해 다음과 같이 정의하고 있다. In computer ..

Computer Vision/Optical Flow

[CV/Optical Flow] Coherence

Intro 인간은 어떻게 물체의 움직임을 예측할까? 많은 Computer Vision 분야가 그러듯 Optical Flow 역시 인간의 사고 흐름을 분석하며 발전해왔다. 눈치가 빠른 사람들은 이미 감을 잡았겠지만, Optical Flow는 물체의 움직임을 예측하는데 큰 역할을 한다. 그렇다면 그 이름이 Motion Flow, Object Flow 등이 아니라 왜 하필이면 Optical Flow인가? 이 질문에 답하기 앞서 다시 처음 질문으로 돌아가자. 인간은 어떻게 물체의 움직임을 예측할까? 근육의 움직임을 볼 수도 있고, 경험론적일 수도 있다. 그러다 곰곰이 생각해보면 관성에 의거함을 알 수 있다. 가만히 있는 물체는 가만히 있을 것이라 생각하고, 움직이는 물체는 그 방향으로 나아갈 것을 예상한다. 그..

YoungJ
'분류 전체보기' 카테고리의 글 목록 (9 Page)