본문 바로가기

영상 화자 분리/개발

[데이터생성] 입 데이터 생성과 전처리(2)

1. 기본 데이터

  • 처리1 : 사이즈 조정(size up)

  • 처리 2 : 뚜렷하게(sharpening)

  • 처리 3-1 : 경계 표현 (canny-edge, contouring)

크기가 작은 이미지에 대해서는 어떤 처리의 결과물이 좋지 않았다. 대표적으로 영상 이어붙이기의 stitch 작업은 수행되지 않았다. 애시당초 내가 하려는 작업과 stitch 작업은 결과물이 같은 것이지 내포하는 의미는 전혀 맞지 않기도 했다. (Stitch는 연속성이 있는 이미지의 접합, 내가 원하는 동작은 단순한 이미지 나열 동작)

결론은, 처리3번에서 한계점이 있었음. "입술에 대하여 명확한 경계" 세밀한 표현canny-edge 가능하지만 주요 외곽선의 손실되는 량 많다. 반면, contouring 함수를 이용할 경우, 섬세한 결과는 나오지 않으나 만들어진 선의 손실은 없다.

따라서 최선으로, contouring을 사용한 뒤

  • 처리 4 : 이미지 병합(merging)

 

2. 처리 3 :  contouring 방식

처리 3 : contouring 방식 후 입술 영역 넓이 재조정됨.

 

이 상태에서 앞으로 더 할 일

  • 처리 3-2 : 저 상태에서 canny-edge

  • 별도 1 : 입술 20개 지점의 좌표

  • 별도 2 : 외곽선을 대표하는 대표선

(1 ) canny-edge 적용

min_treshhold=50(left), 150(right)

* 결과 : min_threshhold 값이 올라가면 외곽선 조차 함께 소실되었음

따라서, 캐니 에지보다 좀 더 정형화시키기 위해 검은 도화지에 내부 입술만 이미지 출력하도록 할 것임.

 

(2) 대표 외곽선(?) 도출

이 문제를 잠시 잠깐 '필기체'문제와 흡사하다고 생각을 해서 위와 같은 변형하였음. 그러나, 이 경우는 입모양은 'ㅇ'의 형태가 찌그러졌는지, 펴졌는 지, 'ㅡ'자 형태가 되었는 지 보기 때문에 특징점이 명확하지 않다는 한계가 있다. 그럼에도 불구하고하고, 만약 단모음만 구분할 때

  • [{ㅏ, ㅑ, ㅓ,ㅕ} ],
  • [{ㅡ, ㅣ}],
  • [ {ㅗ, ㅛ} {ㅜ, ㅠ} ]

 3개의 그룹 혹은 마지막을 두 개로 나눈다면 총 4개의 그룹.

이 4개의 그룹의 조합은 이중모음 이어진다고 가정. 동작만 봤을 때, 입은 "(1)위로 크게 벌리거나", "(2)옆으로 크게 벌리거나", "(3)동그랗게 벌리거나", "(4)다무는" 4개의 일련의 동작임. 따라서, 입모양 단 하나를 구분하는 게 아니라 한글 단어, 문장을 이루는 것들로서 연속된 문자열로부터 의미를 추론하는 것이 더 맞는 방식으로 생각되었음. 예를 들어, 123412312314123123123123 = 안녕하세요, 1231231 = 네, 예, 에, 엔, 넨,...

그렇지만 가능할까?

 

3. 최종 데이터 형식

(1) 입술 20개 좌표

입술 특징점 20개 * 총자료수 2,737 = 54,740 행

(2) 입술 내부 외곽선 

입술 내부 외곽선 (12~19 지점)에 대해서만 외곽선 도출 이후, 2250 * 2590 matrix에 연속 출력

2250x2590

입술 좌표 max_width=75, max_height=35 임을 연산으로 확인했고 적당히 가로는 30개 데이터 찍도록해서 출력함.