본문 바로가기

전체 글116

[Paper] 논문 쉽게 검색 및 파악하기 다시 블로그를 시작하면서 첫번째 목표는 논문 리뷰를 꾸준히 블로깅 하는 것이다. 꾸준히 논문들을 읽으면서 정리를 하고 리뷰를 해 볼 예정이다.그 첫번째 기록으로 논문을 어떻게 검색하고, 논문의 내용을 어떻게 파악을 할 것인지에 대한 내용을 정리해 보았다. 그동안 논문을 조금씩이라도 계속 읽어오고 있었는데,논문을 찾는 것도, 내용을 파악하는 것도 주먹구구식으로 해왔던 것 같아서 제대로 찾아보고자 하였다.오늘 리뷰하는 내용은 유튜브 '김포닥 podockim' 님의 정리 영상을 참고하였다. 더 자세한 내용이 궁금하신 분들은 해당 영상을 보시길 추천한다. 내용이 길지 않고 잘 설명해주신다!'논문 검색 꿀팁! 손쉽게 논문 찾는 방법'  : https://www.youtube.com/watch?v=HWBBLRjFI.. 2024. 6. 15.
[Growth Log 1기] Chapter 1. 시작하며올해 3월 방송통신대학 컴퓨터 과학과에 진학을 하였다.일도 하면서 학업도 병행하는 것이 쉽지는 않았지만 목표로 하던 컴퓨터 과학과에서 잘 몰랐던 컴퓨터 전공지식에 대한 공부는 꽤나 재미가 있는 내용들이었다. 방송통신대학 학업을 진행하면서 개발자들의 커뮤티니인 'Growth Log' 에 가입을 하고 활동을 하고 있다.이름에 포함되어 있는 것처럼 서로 동기부여가 되고 으쌰으쌰 하여 성장을 하고 기록을 하는 것을 목표로 한다. 이번이 1기로 나 역시도 꾸준한 성장하는 것을 목표로 성장일지를 써보려고 한다. 1기 목표약 1년동안 쉬고있던 블로그를 다시 살리는 첫번째 게시글로앞으로 어떤 것들을 공부하고 기록할지에 대한 목표를 작성 해볼 것이다. 우선 이번 1기 활동 기간은 5월 ~ 8월의 4개월의 여정이다.. 2024. 5. 25.
[OpenCV] 21. 영상의 특징과 키 포인트 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 앞서 다룬 특징 추출과 매칭 방법은 영상 전체를 전역적으로 반영하는 방법이다. 전역적 매칭은 비교하려는 두 영상의 내용이 거의 대부분 비슷해야 하고, 다른 물체에 가려지거나 회전이나 방향, 크기 변화가 있으면 효과가 없다. 그래서 여러 개의 지역적 특징을 표현할 수 있는 방법이 필요하다. 21.1 코너 특징 검출 사람은 영상 속 내용을 판단할 때 주로 픽셀의 변화가 심한 곳에 중점적으로 관심을 두게 된다. 그 중에서도 엣지와 엣지가 만나는 코너(corner)에 가장 큰 관심을 둔다. 코너는 영상의 특징을 아주 잘.. 2023. 5. 3.
[OpenCV] 20. 비슷한 그림 찾기 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 영상 속 객체를 인식하는 방법 중 하나로 비슷한 그림을 찾아내는 방법 20.1 평균 해시 매칭 평균 해시 매칭(average hash matching) 은 영상을 동일한 크기의 하나의 숫자로 변환하는데, 이때 숫자를 얻기 위해서 평균값을 이용하는 방법이다. 평균을 얻기 위해서 영상을 특정한 크기로 축소하고, 픽셀 전체의 평균값을 구해서 각 픽셀의 값이 평균보다 작으면 0, 크면 1로 일괄 변환한다. 권총 이미지를 평균 해시를 통해 변환 import cv2 import numpy as np import matplo.. 2023. 4. 10.
[OpenCV] 19. 연속 영역 분할 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 외곽 경계를 이용해서 객체 영역을 분할하는 방법은 실생활에서 경계선이 분명하지 않아 문제를 해결하기 어려운 경우가 많다. 그래서 영상 분할에서는 연속된 영역을 찾아 분할하는 방법도 함께 사용한다. 19.1 거리 변환 영상에서 물체의 영역을 정확히 파악하기 위한 방법으로 물체의 최중심점을 찾는 것이 중요하다. 사람이나 동물의 뼈대 같은 것으로 흔히 **스켈레톤(skeleton)** 이라고 한다. 스켈레톤을 검출하는 방법 중 하나가 주변 경계로부터 가장 멀리 떨어진 곳을 찾는 거리 변환 이다. **거리 변환(dist.. 2023. 3. 29.
[OpenCV] 18. 허프 변환 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 허프 변환(Hough transform) 은 영상에서 직선과 원 같은 간단한 모양을 식별한다. 초기에는 직선을 찾는 방법으로 시작했다가 다양한 모양을 인식하게 확장하였다. 18.1 허프 선 변환 수많은 픽셀 속에서 직선 관계를 갖는 픽셀들만 골라내는 것이 허프 선 변환의 핵심이다. 각 점마다 여러 개의 가상의 선을 그어서 그 선들 중 평면 원점과 직각을 이루는 선을 찾아 각도와 거리를 구해서 모든 점에게 동일하게 나타나는 선을 찾아주면 된다. OpenCV는 이 선을 찾아주는 함수를 제공한다. lines = cv2.. 2023. 3. 29.
[OpenCV] 17. 컨투어 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 컨투어(contour)는 우리말로 등고선, 윤각선, 외곽선 등을 말한다. 영상에서는 같은 색상이나 밝기의 연속된 점을 찾아 잇는 곡선을 찾아내면 모양 분석과 객체 인식에 사용할 수 있다. contours, hierarchy = cv2.findContours(src, mode, method [, contours, hierarchy, offset])[-2:] src : 입력 이미지, 바이너리 스케일, 검은색 배경 흰색 전경 mode : 컨투어 제공 방식 선택 cv2.RETR_EXTERNAL : 가장 바깥쪽 라인만 제.. 2023. 3. 21.
[OpenCV] 16. 이미지 피라미드 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 이미지 피라미드(Image pyramides) 는 영상의 크기를 단계적으로 축소 또는 확대해서 피라미드처럼 쌓아놓는 것을 말한다. 영상을 분석할 때 작은 이미지로 빠르게 확인하고 다음 단계 크기의 영상으로 분석하는 식으로 정확도를 높이는 것이 효율적이고, 영상의 크기에 따라 분석하는 내용이 다를 수 있다. 16.1 가우시안 피라미드 가우시안 필터를 적용한 후에 이미지 피라미드를 구현하는 것을 말한다. dst = cv2.pyrDown(src [, dst, dstsize, borderType]) dst = cv2.p.. 2023. 3. 21.
[OpenCV] 15. 모폴로지 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 모폴로지(morphology) 는 영상 분야에서 노이즈 제거, 구멍 메꾸기, 연결되지 않은 경계 이어붙이기 등 형태학적 관점에서의 영상 연산을 말한다. 주로 형태를 다루는 연산이므로 바이너리 이미지를 대상으로 한다. 대표적인 연산은 침식과 팽창이며, 이 둘을 결합한 열림과 닫힘 연산 등이 있다. 15.1 침식 연산 침식(erosion) 은 원래 있던 객체의 영역을 깍아내는 연산이다. 연산을 위해서는 구조화 요소(structuring element) 라는 0과 1로 채워진 커널이 필요한데, 1이 채워진 모양에 따라.. 2023. 3. 17.
[OpenCV] 14. 경계 검출 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 영상에서 경계(edge)를 검출하는 것은 배경과 전경을 분리하는 데 가장 기본적인 작업이다. 경계 검출은 객체 인식과 추적에서 아주 중요한 작업이다. 영상의 경계를 검출해서 경계에 있는 픽셀만을 골라서 강조하면 경계를 선명하게 만들 수 있다. 14.1 기본 미분 필터 경계를 검출하려면 픽셀 값의 변화가 갑자기 크게 일어나는 지점을 찾아내야 한다. 연속된 픽셀값에 미분 연산을 통해 알 수 있다. 1차 미분 연산의 x축과 y축 방향에 대한 기본적인 커널은 다음과 같다. $$ G_x = \begin{bmatrix} -.. 2023. 3. 14.
[OpenCV] 13. 컨볼루션과 블러링 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 컨볼루션(convolution) 연산은 공간 영역 필터의 핵심이라고 할 수 있다. 블러링 실습을 통해 컨볼루션 연산이 어떻게 동작하는지 알아보자. 13.1 필터와 컨볼루션 공간 영역 필터는 연산 대상 픽셀과 그 주변 픽셀 값을 활용하는데, 주변 픽셀들 중 어디까지를 포함할 것인지 그리고 결과값을 어떻게 산출할 것인지를 결정하는 것이 커널(kernel)이다. n x n 크기 커널의 각 요소와 대응하는 입력 픽셀값을 곱해서 모두 합한 것을 결과 픽셀값으로 결정하고, 이것을 마지막 픽셀까지 반복하는 것을 컨볼루션 연산.. 2023. 3. 13.
[OpenCV] 12. 렌즈 왜곡 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 행렬식으로 표현할 수 없는 모양의 변환도 필요할 때가 있다. 투명한 물잔을 통해 비친 장면이나 일렁이는 물결에 반사된 모습 같은 것이 대표적이다. 이런 렌즈 왜곡 변환에 대해서 알아보자. 12.1 리매핑 OpenCV는 규칙성 없이 마음대로 모양을 변환해 주는 함수로 cv2.remap()을 제공한다. 이 함수는 기존 픽셀의 위치를 원하는 위치로 재배치한다. dst = cv2.remap(src, mapx, mapy, interpolation [, dst, borderMode, borderValue]) src : 입력.. 2023. 3. 9.