ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #1 프로젝트에서 사용할 기술들과 웹캠과 Opencv 연결 in colab!
    졸업프로젝트(YOLOv3,Openpose) 2021. 2. 6. 18:26

    다니고 있는 대학교에서 졸업프로젝트를 진행하게 되었다!

    따라서 프로젝트의 진행상황 및 기술 구현을 블로그에 담을 예정이다 :)

     

    우선, 이번 포스팅에서는 1) 프로젝트의 기술구현에서 사용될 기술 및 라이브러리에 대해서 알아보고, 프로젝트의 기술 구현의 초기단계에 해당하는 2) Colab에서 웹캠과 opencv를 연결하는 것에 대해 이야기해보도록 하겠다! 

     

    1) 먼저, 졸업 프로젝트 구현에 사용할 기술들에 대해 알아보도록 하겠다!

    우리 프로젝트에서는 웹캠 기반 모션인식 웹 어플리케이션을 구현할 예정이기 때문에,

    개발 환경으로는 클라우드 서비스인 Google Colaboratory 을 사용하고,  

    라이브러리로는 실시간 이미지 처리 관련 라이브러리인 Opencv, 머신러닝 구현을 위한 Tensorflow, 데이터 분석 Pandas를 사용할 예정이다. 영상기기는 앞서 설명 했듯이 웹캠을 사용할 것이다. 

     

    또한 기술 검증을 위하여, 모션인식 오픈소스 라이브러리인 Openpose를 colab에서 테스트를 진행하였다. openpose를 사용한 이유는 openpose 에서 VGG이라는 신경망 모델을 사용하였는데, 이 모델이 이미지영역에서 사용하는 대표적인 CNN모델로 알려져있기 때문에, 해당 모델이 추후에 우리 프로젝트에서 자체적으로 구현할 CNN모델에 참고하기 좋을 것 같아 openpose를 사용하여 실습을 해보았다. 해당 부분에 대한 실습은 추후에 포스팅 하겠다 :)

     

    이미지 데이터의 경우에는, 기존의 데이터 셋을 활용하여 학습시킬 예정이었으나 생각보다 우리의 프로젝트에 적합한 데이터 셋이 없었다. 

     

    따라서 웹캠으로 직접 이미지 촬영을 진행한 후,  colab에서 Keras의 Image data preprocessing API를 활용하여 Data Augmentation을 진행할 계획이다. 

     



     

    2) 지금부터는 Colab에서 웹캠과 opencv를 연결하는 것에 대해서 알아보도록 하겠다. 

     

    우리 팀은 웹캠을 통한 실시간 영상처리가 이루어져야 하기 때문에, 처음에는 colab에서 웹캠과 opencv를 곧바로 연결시킬 계획을 하고 있었으나

    자료조사를 해보던 중 한 가지 문제점을 발견하게 된다. 

    그것은 바로 colab에서 opencv 실행 시, 웹캠을 사용하게 해주는 cv2.VideoCapture(0) 이라는 코드가 작동이 되지않는다는 것이다. 

    ( 찾아보니 해당 코드는 하드웨어에 연결된 것만을 가져올 수 있는데 , colab은 클라우드 서비스로 서버에 연결이 되어있기 때문이라고 한다. )

     

    그렇지만 colab에서 제공한 Javascript code를 활용하여 비디오를 저장하고, 저장된 영상을 opencv와 연결하는 방법이 있었다. (그렇지만 이 방법이 동영상이 아니라 캡쳐된 이미지로 frame 단위로 보여지기 때문에 조금 더 개선방안을 찾아봐야 할 것 같다)

     

    https://medium.com/@arvinakori/opencv-brief-note-on-how-you-can-access-webcam-in-google-colab-d4d84efc301f

     

    위의 링크에 있는 코드들을 활용하여 테스트를 진행하였다. 따라서 소스코드를 실행해보고 싶다면, 위의 링크를 참고하기를 바란다.

     



    위의 코드를 사용하여 opencv를 불러오고, 



     

     



    !pip install ffmpeg-python 으로 시작하는 소스코드를 실행하여

    웹캠과 colab을 연결해준다. 

     

     



    그리고 위의 코드를 실행시키면 이제 opencv에서 저장된 동영상을 사용할 준비가 다 되었다.  아래의 코드는 눈과 얼굴을 인식해주는 코드인데, 저장된 동영상에서 프레임 단위로 사진을 가져와서 인식해준다. 

     



     

     

     

     

     

     

     

     

     

     

    이번 포스팅에서는 colab에서 웹캠과 opencv 구현이 가능한지를 알아보고자 기존의 코드를 활용하여 실행해보았다. 

    다행히도 위의 링크를 따라 해보니 구현은 되었지만, 앞으로 우리의 프로젝트에 맞게 opencv 코드를 새로 구상할 것을 생각해보면 참 갈 길이 멀다. 그렇지만 차근차근 진행하다보면 분명 잘 될 것이라고 생각한다. :)

     

     

Designed by Tistory.