
안녕하세요. 푸딩샘입니다. 🍮
오늘은 파이썬의 영상 처리 라이브러리인 OpenCV(cv2)와 햄스터S를 연계한 저의 수업 사례를 공유하고자 합니다.
수업을 시작한 이유 햄스터봇을 활용한 수업을 준비하면서, 로봇에 내장된 센서와 기본 동작을 활용하는 활동에서 한 걸음 더 나아가 수업의 가능성을 넓혀 보고 싶었습니다. 학생들이 관심 있는 문제를 주제로 정하고 자신만의 아이디어를 구현하려면, 로봇이 실시간 영상 정보를 받아들이는 방식도 확장할 필요가 있다고 생각했습니다.
카메라와 로봇의 연결 이에 OpenCV(cv2)를 활용해 카메라 영상에서 필요한 정보를 실시간으로 인식하고, 그 결과에 따라 햄스터S가 반응하도록 수업을 구성했습니다. 색깔이나 얼굴의 위치, 움직임 등 카메라 영상에서 얻은 실시간 정보를 로봇 제어에 활용함으로써 학생들이 탐색하고 구현할 수 있는 프로젝트의 범위를 넓히고자 했습니다.
예를 들어 색깔을 인식해 출발하거나 멈추는 로봇, 사람의 동작에 따라 방향을 바꾸는 로봇, 주변의 움직임을 감지해 알림을 주는 로봇 등을 생각해 볼 수 있습니다. 여기에서 학생들이 실생활 속 상황이나 자신의 관심사를 더하면 각자의 목적을 가진 프로젝트로 발전시킬 수 있다고 생각했습니다.
공통 실습에서 개별 프로젝트로 개별 프로젝트에 앞서, 학생들이 영상 인식 결과를 햄스터S의 동작과 연결하는 기본 원리를 익힐 수 있도록 공통 실습을 구성했습니다. 이때 배운 내용을 자신의 주제에 맞게 바꾸고 확장할 수 있도록 하는 데 중점을 두었습니다. 인식 대상이나 판단 조건, 로봇의 동작을 바꾸어 보며 각자의 아이디어를 구체화하도록 했습니다.
또한 카메라로 입력받은 정보를 처리하고, 조건에 따라 햄스터S를 제어하는 과정에서 입력, 처리, 출력의 관계를 연결해 이해하도록 구성했습니다. 조건문과 반복문도 자신이 원하는 기능을 구현하는 데 필요한 도구로 활용하도록 했습니다.
OpenCV는 사진이나 동영상 등 영상 데이터를 처리하고 분석하는 데 사용하는 라이브러리입니다. 파이썬에서는 import cv2로 불러오기 때문에 수업에서 ‘cv2’라고 설명하기도 합니다.
OpenCV를 활용하면 카메라 영상을 화면에 띄우거나, 특정 색깔을 구분하거나, 얼굴의 위치나 움직임을 감지하는 프로그램을 만들 수 있습니다. 이러한 인식 결과를 햄스터S의 제어 명령과 연결하면 카메라에 보이는 상황에 따라 로봇이 움직이도록 구현할 수 있습니다.
OpenCV를 처음 사용하는 환경이라면 터미널에서 아래 명령어로 설치합니다.
pip install opencv-python
파이썬 설치 경로와 실행 환경에 따라 설치 명령어가 달라질 수 있습니다. 수업 코드를 실행하는 파이썬 환경에 OpenCV를 설치해 주세요.

이 예제는 카메라에서 영상을 받아 화면에 표시하는 가장 기본적인 프로그램입니다. 카메라 영상은 여러 장의 이미지가 연속해서 들어오는 형태이며, 이때 이미지 한 장을 ‘프레임’이라고 합니다. 프로그램은 반복문을 통해 프레임을 계속 읽어 화면에 표시하고, 소문자 q 키를 누르면 반복을 종료합니다.
이 예제에서는 카메라 연결 → 프레임 읽기 → 화면 출력 → 종료 조건 확인 → 카메라 자원 해제의 흐름을 살펴볼 수 있습니다. 이후 예제에서는 프레임을 읽는 단계와 화면에 출력하는 단계 사이에 색깔 인식이나 로봇 제어 기능을 추가합니다.