– 12. OpenCV에서 웹캠을 사용하는 인공지능을 시작하다 : 라즈베리파이

웹캠(WebCam)이란

웹캠이란 웹과 Camera의 합성어로 주로 PC와 접속하여 화상데이터를 네트워크상에 스트리밍할 목적으로 개발된 카메라를 말합니다.웹캠을 활용하여 라즈베리 파이에서 영상 데이터를 확인해 봅니다.

저희가 사용하는 제품은 Logitech C270 HD 입니다.

웹캠을 라즈베리 파이로 사용하려면 어떻게 프로그램을 작성해야 할까요? openCV 라이브러리를 사용하면 쉽게 웹캠을 이용할 수 있습니다.OpenCV란 OpenCV란 OpenSource Computer Vision의 약자로 이미지나 영상처리에 많이 사용하는 오픈소스 라이브러리입니다. C+, Python, 자바 등의 언어를 지원합니다.

Canny 함수를 이용한 윤곽선 검출 OpenCV는 이미지 처리 용도로 많이 사용되지만 윤곽선을 검출하거나 노이즈를 제거하거나 이미지를 연결하는 등의 작업을 할 수 있습니다.이러한 작업을 영상 처리(Image Processing), 컴퓨터 비전(Computer Vision) 등의 용어로 부릅니다.

뿐만 아니라 이번 포스팅처럼 카메라를 작동하는 함수도 openCV로 제공합니다.오늘은 이 함수를 이용해보겠습니다.

그 전에 설치부터 해볼까요?라즈베리파이에 OpenCV를 설치하는 http://bebutae.tistory.com/153OpenCV 설치는 상기 블로그를 참고했습니다.

라즈베리파이에서 OpenCV를 설치하는 데 시간이 걸립니다.사양에 따라 대략 1~2시간이나 그 이상의 시간이 소요되므로 여유롭게 진행해주세요.

먼저 라즈베리파이 설정에서 Camera 설정을 Enable로 변경해주세요.

그런 다음 Ctrl+Shift+T를 눌러 터미널을 열고 다음 명령을 순서대로 한 줄씩 실행합니다.

이번 명령은 한 줄씩 실행하지 말고 처음부터 끝까지 한 번에 실행하세요.

명령 실행이 끝나면 다음 명령을 입력합니다.

이후 표시된 창에서 CONF_SWAPSIZE를 찾아 CONF_SWAPSIZE=2048로 변경합니다.

Ctrl+X,Y,Enter를 순서대로 눌러 저장합니다.

이어서 다음 명령을 입력하세요.

명령 실행이 끝나면 다음 명령을 입력합니다.다시 CONF_SWAPSIZE=100으로 변경합니다.

Ctrl+X,Y,Enter를 순서대로 눌러 저장합니다.

마지막으로 다음 명령을 입력합니다.OpenCV 설치가 완료되었습니다.코드 webcam.py라는 이름의 파일을 만들어서 다음과 같이 코드를 작성해 주세요.하나씩 설명해 드릴게요.

cv2라는 이름으로 되어 있는 OpenCV 라이브러리를 Import해 오겠습니다.

그리고 카메라가 촬영하는 화상의 크기를 정해 줍니다.가로는 frameWidth 변수에 640, 세로는 frameHeight 변수에 480을 저장합니다.

cv2. Video Capture(0)로 cap 객체를 생성하고 set 함수를 이용하여 frameWidth, frameHeight 값을 넣어 윈도우 크기를 설정합니다.cap.set(property, value) 형식인데 property는 특성이고 value는 특성 값입니다.

cv2.CAP_PROP_FRAME_WIDTH는 이미지 가로 사이즈, cv2.CAP_PROP_FRAME_HEIGHT는 이미지 세로 사이즈로 각각 640, 480으로 설정하는 것입니다.

while 문으로 들어왔어요.cap.read( )는 카메라를 통해 찍은 사진을 하나 냅니다.여기서 받는 success는 성공 여부를 저장하는 변수로 img이 사진 데이터입니다.

cv2.imshow()를 이용하여 이미지를 화면에 출력합니다.이 함수의 첫 번째 인수는 표시할 창의 제목이고 두 번째가 사진 데이터입니다.

그리고 ifcv2.waitKey(1)&0xFF==ord(‘q’): 이미지 창에서 키보드 입력을 받는 부분입니다.키보드로 「q」를 누르면 촬영을 정지합니다.

촬영이 정지되면 cap.release( )를 이용하여 cap 객체를 제거합니다.그리고 cv2.destroyAlwindows() 함수를 이용하여 OpenCV에서 열린 모든 창을 제거하십시오.시연

이렇게 OpenCV 라이브러리를 통해 웹 카메라를 라즈베리 파이로 이용할 수 있습니다.

마무리 이번 포스팅에서는 OpenCV를 이용하여 라즈베리 파이로 웹캠을 다루는 방법에 대해 알아보았습니다.

앞으로 웹캠을 이용하여 인공지능을 활용한 물체 인식과 같은 재미있는 프로젝트를 보여드리오니 많은 기대 부탁드립니다!

error: Content is protected !!