영상처리

· 영상처리
이번 포스팅은 OpenCV에서 Camshift를 이용한 Object Detection에 대해 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.2/d7/d00/tutorial_meanshift.html GOAL - Meanshift를 보완하여 만든 Camshift에 대해 이해하고 알아보겠습니다. Camshift - 앞서 Meanshift의 결과를 보시면 추적하는 윈도우의 크기가 고정되어 객체를 추적하여 물체의 크기와 상관없이 결과가 나오는 것을 볼 수 있었습니다. 대상의 크기와 위치에 따라 창을 조절해야 하는데 이것을 보완하기 위해 만든 것이 바로 Camshift입니다. - 그림을 먼저 보고 설명하겠습니다. - CAMshift란 C..
· 영상처리
이번 포스팅은 OpenCV에서 Meanshift를 이용한 Object Detection에 대해 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.2/d7/d00/tutorial_meanshift.html GOAL - 물체를 추적하는 Meanshift 알고리즘에 대해 공부할 것입니다. Meanshift - Meanshift는 말 그대로 Mean (평균) Shift (이동) 알고리즘입니다. Meanshift는 매우 직관적으로 이해할 수 있었는데 아래 그림처럼 어떤 데이터 포인트 셋이 있을 때 원 모양의 윈도를 그리고 가장 많은 데이터를 가지고 있는 원의 영역으로 이동합니다. - 그림을 보시면 초기 윈도우 창은 C1이며 중심은 C1_o입..
· 영상처리
이번 포스팅은 OpenCV에서 Haar Cascades을 이용한 얼굴 검출에 대해 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.0/db/d28/tutorial_cascade_classifier.html GOAL - Haar Cascade로 object detection을 어떻게 하는지 알아본다. - Haar Feature-based Cascade Classifiers를 사용하여 기본적인 얼굴 감지 및 눈 감지를 해본다. - OpenCV에서 Haar Cascade로 어떻게 detection 하는지 알아본다. Theory - Haar feature-based cascade classifiers (Haar feature을 기반으로 ..
· 영상처리
이번 포스팅은 Image Pyramid에 대해 알아보고 OpenCV에서 어떻게 사용되는지 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.1/d4/d1f/tutorial_pyramids.html GOAL - Image Pyramid? - OpenCV에서 Image Pyramid 사용 방법 Theory - 이미지 피라미드(Image Pyramid) - 위 그림처럼 이미지 피라미드란 이미지의 크기를 피라미드처럼 확대하거나 축소하는 작업을 말합니다. 가우시안 피라미드 ( Gaussian Pyramid ) - 가우시안 필터를 적용한 뒤 이미지 피라미드를 구성하는 것을 말합니다. downsampling 경우 이미지를 가우시안 블러 처리한 ..
· 영상처리
이번 포스팅은 SVM 알고리즘에 대해 알아보고 OpenCV에서 어떻게 사용하는지 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.4.0/d1/d73/tutorial_introduction_to_svm.html GOAL - SVM이 무엇인지? - OpenCV에서 SVM의 사용 방법 Theory - What is SVM? - SVM(Support Vector Machine)은 레이블이 지정된 훈련 데이터가 주어지면 최적으로 데이터들을 분류하게 만드는 초평면(hyperplane) 출력 알고리즘입니다. - 빨간색과 파란색 두 클래스를 선형으로 분리 가능한 직선을 구하는 문제가 있을 때 위 그림처럼 다양한 선이 있음을 알 수 있습니다. 저 선..
· 영상처리
이번 포스팅은 Watershed 알고리즘을 이용하여 Image segmentation을 하는 방법을 알아보고 OpenCV에서 어떻게 사용하는지 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.0.1/d3/db4/tutorial_py_watershed.html Goal - Watershed 알고리즘을 이용한 이미지 구분 - cv2.watershed() 사용 Theory - 밑의 예시처럼 grayscale 이미지를 픽셀 값 ( 0 ~ 255 )에 따른 분포도를 그려보면 값이 높은 부분과 낮은 부분으로 되어있습니다. - 여기서 값이 높은 부분을 봉우리로 값이 낮은 부분을 계곡이라 부르기로 하고 이렇게 만들어진 봉우리와 계곡에 물을 붓는다고..
· 영상처리
이번 포스팅은 제가 OpenCV를 사용하면서 cv2.imread에서 type을 gray로 주는 것과 cv2.cvtColor에서 cv2.COLOR_BGR2GRAY를 주어 grayscale을 만드는 이미지의 차이를 알기 위해 정리해보았습니다. 목표 1) imread(img, 0)와 cvtColor(img, cv2.COLOR_BGR2GRAY)의 픽셀 차이 확인 2) 연산 처리 속도 차이 확인 실험 - OpenCV를 사용하다 보면 grayscale을 많이 사용합니다. 노이즈를 없애고 연산 속도를 올리면서 정확도를 향상하기 위함인데 imread(img, 0)으로 받아오는 grayscale과 cvtColor(img, cv2.COLOR_BGR2GRAY)로 얻는 grayscale의 차이를 확인하기 위해 여러 가지로 해..
· 영상처리
앞서 thresholding 포스팅에 이어 Otsu's Binarization(오츠의 이진화)에 대해 알아보고 OpenCV에서 어떻게 사용하는지 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.2/d7/d4d/tutorial_py_thresholding.html Otsu's Binarization (오츠의 이진화) - 이전 thresholding 방법들은 임계값을 직접 설정해줘야 하며, 설정해주지 않더라도 계산하는 방법을 설정하였습니다. 하지만 영상은 조명에 따라 픽셀 값이 미세하게 변화합니다. 영상마다 사용할 수 있는 임계값을 자동으로 설정해주는 방법이 있는데 그중에 가장 유명한 Otsu's Binarization (오츠의 이진..
우준세
'영상처리' 카테고리의 글 목록