4.최종 보고

                    종합설계 프로젝트 최종보고서 요약

팀명

 파인 애플

제출일

2014 11 27

프로젝트 제목

 vSlide

설계 프로젝트 개요

프로젝트 수행 내용 및 최종 결과

프로젝트 요약문

본 프로젝트 <vSlide>는 Video + Slide의 합성어로써 동영상에 포함된 슬라이드 쇼의 내용을 사용자가 파악하기 쉽도록 슬라이드 부분을 선명하게 처리하여 새로운 동영상으로 제공해 주는 것이다. 본 프로젝트에서는 다음과 같은 두 가지 경우에 활용 할 수 있다 

1) 슬라이드 파일을 따로 제공하는 동영상의 경우: 제공받은 슬라이드를 동영상에 합성하여 사용자에게 다시 제공한다. 이 경우 가장 이상적인 형태로 사용자들에게 선명한 슬라이드가 포함된 동영상을 제공할 수 있다. 

2) 슬라이드 파일을 따로 제공하지 않는 동영상의 경우: 동영상에서 슬라이드 부분을 이미지로 추출하여 선명하게 처리한 뒤 슬라이드 부분에 다시 덧씌워 사용자에게 제공한다. 

현재까지 이런 기능을 수행하는 프로그램을 시중에서는 거의 찾아보기 힘들고, YouTube나 EBS, 메가스터디 등을 통해 인터넷 강의를 시청하는 사용자들이 점점 증가하는 추세이기 때문에 많은 수요가 있을 것으로 기대하고 있다. 또한 강의를 시청하는 사용자 뿐만이 아니라 강의를 제공하는 업체 측에도 유용할 것으로 예상된다.

마일스톤 수행 내용

  • 슬라이드 to 이
    미지


    문제인식
    동영상 속 슬라이드를 선명하게 하기 위해서 이미지 합성이 필수적이다. 본 프로젝트에서 합성될 이미지를 C#을 이용하여 슬라이드 이미지를 추출한다.

    해결방법
    C#으로 미리 컴파일한 파일을 binary 방식으로 슬라이드 이미지를 추출한다.

  • 선택 영역 이미지 추출 
      
    문제인식
    슬라이드 부분의 이미지가 추출이 가능해야 시간정보 획득, 이미지 합성이 가능하다.
    해결방법 및 결과
    직접선택으로 붉은 부분을 선택 후 사각형 내부의 이미지를 추출하였다.
  • 슬라이드 이미지 합성
      

    문제인식
    슬라이드 부분을 선명하게 하기 위해서 슬라이드 이미지를 동영상위에 합성한다.
    합성될 이미지를 한 픽셀마다 그려주어 합성하게 한다.

    해결방법 및 결과
    OpenCV를 이용하여 합성될 슬라이드 이미지를 한 픽셀마다 그려주어 합성하게 된다.












  • 동영상 프레임 이미지 추출

    문제인식
    슬라이드가 넘어가는 시간을 Detect해야 하기 때문에 프레임 별로 이미지를 추출해야한다.

    해결방법
    각 프레임별로 이미지 추출을 하여 많은 수의 슬라이드 프레임 이미지를 저장한다. 
    기본적으로 동영상은 1초에 30프레임이므로 30개의 이미지는 1초동안 진행된 프레임이란 것을
    알 수 있다.
  • 슬라이드 페이지 이동 시간 추출
     
    문제인식
    동영상 속 슬라이드가 다음 페이지로 넘어가는 시간 정보가 있어야 적절한 시간에 알맞는 슬라이드 이미지가 합성되어야 한다. 그래서 이미지 비교와 Optical Flow를 통해 시간 정보를 획득한다.

    해결방법 및 결과
    OpenCV Optical Flow를 이용하여 프레임 별 Motion 변화를 확인한다. 변화가 생겼다면 그 시점으로부터 10프레임 동안 아무 변화가 없는 '안정화 프레임'을 추출 하여 기존에 있던 프레임과 비교한다. 이미지 유사성이 높으면 사람이 지나갔다는 의미, 낮으면 다음 페이지로 넘어갔다는 의미이다.

    좌측 그림은 페이지가 넘어갔을 때 빨간선 다수 발생, 우측 그림은 사람이 지나가는 부분 Detect

  • 선택영역 이미지 Rectification(사각화)

    문제인식

    이미지 비교를 위해서 직사각형의 이미지가 필요하다. 그러나 동영상을 촬영하는 각도에 따라 슬라이드 부분이 직사각형이 나오지 않기 때문에 직사각형화(Rectification)가 필요하다.

    해결방법 및 결과
    이미지 추출한 것으로 행렬값을 적절히 조절하여 직사각형화 시킨다. 이미지 비교시는 Rectification 이미지 합성시는 이전에 했던 행렬정보를 이용하여 Inverse-Rectification 한다.
     이미지 비교를 위해 사각의 이미지를 영상처리를 통해 슬라이드 부분을 Rectification 하였다.

  • 슬라이드 가림 물체 처리(Matting)

    문제인식

    단순히 슬라이드 합성만 한다면 지나가는 물체가 있을 때 이미지에 의해 가려질 수 있다. 어색함을 줄 수 있기 때문에 Matting을 통해 물체의 모습을 보존 시킨다


    해결방법 및 결과
    슬라이드가 다음 페이지로 넘어가는 시간 추출 시 저장해놓은 '안정화 프레임'과 슬라이드 부분의 지속적인 비교를 통해 RGB 값이 일정 수치 이상 차이가 나는 픽셀에 대해 합성한 슬라이드 위에 재합성해준다. 


    합성된 이미지 위에 사람이 지나가도 어색함이 없다.

  • 슬라이드 부분 자동 선택(Recognition)
     
    문제인식
    사용자가 수동으로 슬라이드 부분을 선택할 수 있지만 사용자 입장에서 불편해 할 수 있기 때문에 사용자를 위해 자동선택 기능을 추가해야한다.

    해결방법 및 결과
    OpenCV의 SIFT를 이용하여 원본 슬라이드 이미지와 최초 세번째 프레임들의 특징점을 비교하여 슬라이드 영역을 자동 선택하게 해준다. 

    특징점을 매칭하는 선과 점을 이용하여 사각영역이 그려지면서 선택된 화면이다

  • 동영상 속 슬라이드 to PDF

    문제인식
    이미지 합성을 제외한 이전의 MileStone을 모두 합성하고 얻어진 시간정보를 통해 이미지 파일들을 추출할 수 있다. 하나의 파일로 교안처럼 보기위해 pdf로의 합성이 필요하다

    해결방법
    추출한 각 슬라이드 프레임 이미지를 이용하여 Sharpening(선명화) 한 후 그 이미지들을 모아 pdf로 변환하여 사용자가 편하게 볼 수 있게 한다.
프로젝트 결과
 
        System Architecture

        실행 화면
          사용자가 이용하기 편리하도록 장식을 배제하고 최대한 직관적으로 보이도록 디자인하였다
          GUI 프로그램인 QT를 이용하여 구성하였다.
          슬라이드가 있는 경우와 슬라이드가 없는 경우를 선택할 수 있으며, 화면에 나타나는 대로 사용가능하다



        실행 결과
          
사람이 지나가도 합성이 되어 변환된 동영상이 어색하지않다

 
슬라이드 페이지가 14초에 정확하게 넘어감을 알 수 있다 

발전 방향 및 향후 계획

        웹으로의 확장 
        PC프로그램으로는 제한된 이용자만 사용 가능하기 때문에 웹으로 확장을 하면 더 많은 사용자들이 이용           할 수 있고, 공유가 가능하다. 또 서버에서 변환하므로 동영상 처리 시간이 빨라진다. 이를 토대로 수익성           을 기대해 볼 수 있다.

        Tracking 문제
          현재 vSlide 프로그램은 카메라가 고정된 상태에서 촬영된 동영상만 처리가 가능하다. 
           ->카메라가 이동하거나 슬라이드의 화면크기가 변할 경우 모두 Tracking하여 
                부드럽게 처리하는 방법을 구상하고 있다.

        Animation효과
          현재의 vSlide프로그램으로는 애니메이션효과까지 추출하지 못한다는 문제가 있다.
           ->Optical flow를 통해 움직임 처리를 하여 애니메이션 효과를 구현하는 방향을 계획 중이다.

        폰트 인식을 통한 재구성
          현재 단계에서 슬라이드를 PDF파일로 추출한 것은 단순히 이미지 파일을 PDF화 한 것이다.
           -> 이미지파일을 영상처리하여 폰트를 인식한다. 또한 폰트의 색상과 스타일을 살려 
                슬라이드파일을 재구성하는 방향을 계획 중이다.

        레이저 포인터 인식
          vSlide로 처리된 슬라이드 화면은 강의자가 레이저로 가리킨 부분까지는 처리하지 못한다. 
          실제동영상에서도 레이저 포인트 부분을 파악하기 힘들다.
           ->강의자를 인식하고 손과 레이저의 각도 및 방향을 분석하여 예상되는 지점에 포인트를 찍어
               표현해 주는 방법을 구상하고있다.

동영상

        최종 프로젝트 소스 파일 링크
            https://github.com/psstjdtn/capstone12

첨부화일 (아래 안내는 첨부 후에 삭제할 것)


ć
12조 캡스톤,
2014. 11. 26. 오전 8:39
Ċ
12조 캡스톤,
2014. 11. 26. 오전 8:34
Comments