// 1. 페이지의 에서 최대한 위에 이 코드를 붙여넣으세요. // 아래의 메타 태그를 복사해 사이트 홈페이지의 섹션에 붙여 넣어주세요. //2. 여는 태그 바로 뒤에 코드를 붙여넣으세요.

새소식

반응형
AI/ML*DL 시작하기

KNN(K-Nearest Neighbor)과 색상 분류(2)

  • -
반응형

저번 포스팅에서는 KNN알고리즘의 이론에 대해 알아보았습니다. 

 

오늘은 깃허브에서 KNN알고리즘을 활용해서 색상 분류를 적용시킨 알고리즘에 대해 알아보도록 하겠습니다.

(출처:https://github.com/ahmetozlu/color_recognition)

 

GitHub - ahmetozlu/color_recognition: Color recognition & classification & detection on webcam stream / on video / on single ima

:art: Color recognition & classification & detection on webcam stream / on video / on single image using K-Nearest Neighbors (KNN) is trained with color histogram features by OpenCV. - GitH...

github.com

 

색상을 분류하기 위한 알고리즘은 아래와 같습니다.

 

컬러 히스토그램을 통해 색상 특징점들을 추출하고 KNN알고리즘을 분류 알고리즘으로 사용하고 있습니다.

 

https://github.com/ahmetozlu/color_recognition

 

컬러 이미지의 경우 RGB, HSV, HSI 등 다양한 색상공간으로 나타낼 수 있습니다. 

 

RGB의 경우 Red,Green,Blue 3가지 색상을 조합하여 모든 색을 표현하게 됩니다. 그래서 이미지 한장을 N x N 매트릭스로 보게 될 경우 

 

흑백 이미지의 경우 N x N 1개의 매트릭스, 컬러 이미지의 경우  R,G,B 각각 한개의 매트릭스를 가지고 있어서 NxNx3으로 보통 되어 있습니다.  

 

 

먼저 컬러 히스토그램을 사용해 이미지의 색상 특징점들을 추출하게 됩니다. (Feature Extraction -> Color Histogram)

 

예시로, 아래 빨간색 이미지의 컬러 히스토그램 값을 보겠습니다.

 

빨간색 이미지의 경우 R,G,B값중 R값이 굉장히 높게 나올 것을 볼 수 있습니다.

 

벡터화하여 추출해낸다면 [254,0,2] 와 같은 값이 나오는것을 확인할 수 있습니다.

 

 

추출 된 특징점들을 KNN알고리즘을 활용하여 색상을 분류하게 됩니다. 색상은 빨간색, 검은색, 초록색, 주황색 등 총 8가지를 분류가 가능한 코드입니다. 

 

 

결과를 한번 볼까요? 아래 검은 고양이 이미지를 검은색으로 분류하고 있습니다. 

 

 

바나나 이미지로 테스트를 해보겠습니다.

 

 

노란색이 많다보니 색상을 노란색으로 잘 분류를 하고 있는 것을 확인할 수 있습니다. 

 

그러면 또 다른 이미지로 테스트를 해보겠습니다.  다양한 색상들의 과일들이 모여있는 이미지입니다. 

 

 

아래 같은 이미지로 테스트 했을 경우 검은색이라고 분류를 하고 있습니다.  다양한 색상들의 과일들이 있는데 왜 검은색으로 분류하였을까요?

 

KNN알고리즘의 이론을 다시 한번 생각해보시면서 유추해보시면 좋을 것 같습니다

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.