OpenCV 가족구성에 따른 TV 구매 방향 - Graphic Therapy : 도형 심리 검사 ( 사용자가 도형을 그리면, 그려진 도형의 위치와 크기 겹쳐진 형태에 따라 조건에 맞게 판별. 실제 검사와 근사한 결과가 나오도록 하는 데 중점을 둠.) - 도형의 판단을 위해 사용자가 입력하는 그림의 좌표를 모두 받아들여 수학적 연산을 거쳐, 도형의 종류와 형태를 구분한다. Graphic Therapy : 도형 심리 검사 ( 사용자가 도형을 그리면, 그려진 도형의 위치와 크기 겹쳐진 형태에 따라 조건에 맞게 판별. 실제 검사와 근사한 결과가 나오도록 하는 데 중점을 둠.) -도형의 판단을 위해 사용자가 입력하는 그림의 좌표를 모두 받아들여 수학적 연산을 거쳐, 도형의 종류와 형태를 구분한다. 사용된 알고리즘은 뒤에서 설명토록 하겠다. 피검사자의 주요한 기질을 크게 4가지로 분류하는 데. 다혈질, 담즙질, 점액질, 우울질로 구분한다. 이 4가지 기질론은 B.C 460~375년에 살았던 그리스의 유명한 철학자 히포크라테스에 의해 처음 언급되었다고 한다. -최근에 각광 받고 있는 기질검사 방법으로 DNA 기질검사를 들고 있는데. 도형 심리 검사 또한 간단한 방법으로 비교적 높은 신뢰도를 나타낸다고 한다.
- Edge Detection(모서리 감지) OpenCV 가족구성에 따른 TV 구매 방향 - Edge Detection(모서리 감지) Edge Detection(모서리 감지) 사용자가 입력한 그림의 모서리를 체크하는 데 가장 적합한 이론으로 Curvature 방식과 Strip Algorithm 방식 두 가지가 있다. Curvature 방식은 세 점의 사이 각의 크기를 구하여, 임계 값을 넘으면 모서리, 임계 값을 넘지 못하면 그 점을 일직선상에 포함시키거나 또는 제거함으로써, 모서리의 개수를 세는 방식이다. Strip Algorithm 방식은 첫 두 점이 이루는 직선과 일정 임계 값 이상의 수직거리 변화를 보인 점을 모서리로 받아들이는 방식이다. 이 외에, 도형에서 직선인 변들을 찾아 연장선을 그어 만나는 점들을 모서리로 감지하는 Hough Transform을 이용한 방식과 도형의 시작 점에서 가장 먼 점을 찾고, 그 두 점과 공통으로 가장 먼 또 다른 한 점, 그리고 그 구해진 점에서 가장 먼 마지막 점. 이런 식으로 서로 먼 점의 개수에 따라 도형의 종류를 판단하게 되는 Find Furthest Point Method 방식이 있다. 사용자가 직접 그린 도형은 형태의 변수가 매우 많으므로, 변을 직선화 하거나, 또는 최장거리 점을 찾거나 하는 방식은 매우 결과가 좋지 않았으며 따라서 실제 도형 인식을 위해 적용한 이론은 Curvature 방식이다. 그러나 실제로 적용함에 있어서, 오차가 너무 크게 발생하여, 약간 응용하여 도형을 구성하는 좌표들이 이루는 벡터들을 모두 구하여 변의 개수를 체크하는 쪽으로 해결하였다. 참고 문헌에서는 Curvature 방식이 인식률이 이들 중 상대적으로 좋다고 명시되어 있다.
- Edge Detection(모서리 감지) OpenCV 가족구성에 따른 TV 구매 방향 - Edge Detection(모서리 감지) Edge Detection(모서리 감지) 잘 그린 도형과 못 그린 도형의 중간 테스트 과정이다. 결과를 잘 볼 수 있기 위해 극단적으로 크게 그린 경우의 비교이다. 비교적 도형의 특성이 잘 나타남을 확인할 수 있다.
가족구성에 따른 TV 구매 방향 OpenCV - Convex Hull(최 외각 점 찾기) 도형의 면적, 무게중심. 도형의 내 외부 좌표를 구분할 수 있는 정보가 필요하였다. 이를 위해 선택한 이론은 Convex Hull. 이른바 최 외각 점 찾기 이론이다. 방향은 시계방향 또는 반 시계 방향. 시작 점 또한 임의의 점으로 정할 수 있으나 편의를 위해 도형이 그려진 시작 좌표를 첫 점으로 정하였다. 우측 상단의 그림을 보시면 쉽게 이해가 갈 것이다. 여기서는 첫 점을 가장 아래에 있는 점으로 시작하여 시계 방향으로 이동하였다. 내부에 있는 점은 제거 하고, 외각의 점은 연결하여 시작점으로 돌아올 때 까지 반복 수행한다.
가족구성에 따른 TV 구매 방향 OpenCV - Convex Hull(최 외각 점 찾기) 이에 내부 점들을 계산하여 무게 중심을 구하여 함께 표시하였다.
가족구성에 따른 TV 구매 방향 OpenCV - Convex Hull(최 외각 점 찾기) 이미지들을 표시한 그림이다.
가족구성에 따른 TV 구매 방향 세부 과제별 진행 사항 다음은 실제 검사 인터페이스를 표시한 화면이며 이미 검사가 진행 완료 된 상태를 나타내고 있다. 그림을 그릴 수 있는 메인 창과, 사용 방법을 안내한 설명 창 그리고 각 도형 별 처리 과정을 나타내는 작은 윈도우들로 구성 되어있다. 각각 입력된 도형들의 분석 결과가 하단의 작은 창들에 표시되며, 아래의 콘솔 창에서 도형의 종류, 도형의 면적, 무게 중심. 그리고 도형 분류 알고리즘에 따른 6개 항목의 결과를 함께 표시한다. 이에 따라 테이블화 되어 있는 성격 패턴이 텍스트 파일로 저장이 되며 결과 출력 시 불러올 수 있다.
가족구성에 따른 TV 구매 방향 세부 과제별 진행 사항 텍스트 파일을 이미지파일로 인쇄한 모습이다. 각각의 결과 테이블이 모여 사용자의 검사 결과를 구성한다.
OpenCV 가족구성에 따른 TV 구매 방향 - 진행 중 애로사항 : 도형의 입력 완료 여부 판단. : 그리다가 끊어진 도형, 또는 덧칠한 도형의 보정. : 해상도의 한계로 인한 Aliasing 문제 보정. : 도형의 크기가 작을 경우 발생하는 오판 보정. : 도형을 너무 빠르게 그린 경우의 오판 보정. 진행 중 애로사항 : 도형의 입력 완료 여부 판단. (한번에 도형을 모든 사람이 그릴 수 있다면, 마우스 버튼을 떼는 순간 입력 완료로 체크하면 되었지만 예를 들면, 네모를 그릴 때 미음 자처럼 그리는 경우 등의 애로사항이 있어서 도형 입력을 하나 당 완료할 때마다, 불편하지만 완료 버튼을 누르는 형태로 진행하였다.) : 그리다가 끊어진 도형, 또는 덧칠한 도형의 보정. (도형들의 입력 좌표를 모두 받아들였기 때문에, 덧칠했거나 끊어진 경우 오판이 발생하였다. 모서리를 체크하지 않고, 도형의 각 변을 구성하는 점들의 벡터를 구하여 해결.) : 해상도의 한계로 인한 Aliasing 문제 보정. (입력 받은 점 단위로 계산하지 않고, 인터벌을 두 점 내지 세 점을 두어 계단 현상을 어느 정도 보완.) : 도형의 크기가 작을 경우 발생하는 오판 보정. (도형의 크기가 작을 경우는 입력 받은 좌표의 수도 적을 뿐더러, 계단 현상이 심해짐에 이는 원활한 해결 방법을 찾지 못하였음. => 사용자에게 양해를 구하는 방향.) : 도형을 너무 빠르게 그린 경우의 오판 보정. (도형을 너무 빠르게 그린 경우는 변 쪽보다 모서리 쪽에 몰린 점이 많아지므로 벡터 방향 체크 방식으로 얻어지는 결과가 부정확하여 오판 가능성이 높다. 이 해결 역시 사용자에게 양해를 구하는 방향.)