손 제스처와 음성으로 디스플레이를 제어
PC, 노트북 모니터, 키오스크 등 여러 디스플레이를 멀리 떨어진 곳에서도 손과 음성으로 디스플레이를 제어합니다.
모션 인식 및 음성 인식 기술 활용을 통한 마우스, 키보드 조작 구현
본 프로젝트는 2가지 방법의 환경이 존재합니다.
- 라즈베리 파이와 노트북 연동
- 노트북에서만 동작
라즈베리 파이 코드는 실습 환경을 구축하기 어렵기 때문에, 모든 동작은 노트북에서 실행하는 것으로 가정합니다. 라즈베리 파이 세팅방법은 "보드 코드" 폴더 내 README를 참고해주세요.
control_keyboard.py에서 필요한 FFmpeg 프로그램은 별도로 설치해야합니다. FFmpeg는 영상과 음성을 변환 및 편집할 수 있는 커맨드라인 프로그램입니다.
OS X & 리눅스:
sudo apt install ffmpeg
윈도우:
- https://ffmpeg.org/download.html 에서 Essentials 의 zip을 다운로드
- 3과 4중 원하는 방식으로 환경변수 추가
- 설치한 폴더의 \ffmpeg\bin를 윈도우 환경변수에 추가
- 아래과 같은 코드를 control_keyboard.py의 main 함수 처음에 추가
# FFmpeg 경로 설정
ffmpeg_path = r"C:\ffmpeg\bin\ffmpeg.exe"
# 환경 변수에 FFmpeg 경로 추가
os.environ["PATH"] += os.pathsep + os.path.dirname(ffmpeg_path)
pip 명령어를 사용하여 필요 패키지를 다운로드
pip install -r requirements.txt
상시 wake word를 듣는 프로그램을 실행시킵니다.
python open_wake_word.py
만약 라즈베리파이 보드 환경에서 사용중이라면, socket 통신을 위한 server, client 프로그램을 실행시킵니다.
# 보드 환경에서 server 실행 python server.py # pc 환경에서 client 실행 python client.py
이후 원하는 동작을 실행시키는 wake word 를 말합니다.
# 제어 프로그램 실행 (마우스 제어 프로그램)
"hi gram"
# 키보드 제어 프로그램 실행
"type gram"
# 제어 프로그램 종료
"bye bye"
이 프로젝트는 음성 명령과 손 동작을 인식하여 다양한 작업을 수행할 수 있도록 돕습니다. 아래는 사용 방법의 예제입니다.
-
시작 준비
- "hi gram"이라고 말하여 시스템을 활성화합니다.
-
손 동작 인식
- 캠을 향해 손을 움직이며 마우스를 조작합니다.
- [손 동작 예시 이미지 삽입 예정]
-
텍스트 입력 준비
- "type gram"이라고 말하여 텍스트 입력 모드를 활성화합니다.
-
브라우저 탭 전환
- "브라우저 2번째 탭으로 가줘"라고 말하여 브라우저의 두 번째 탭으로 이동합니다.
-
검색 준비
- 다시 "type gram"이라고 말하여 텍스트 입력 모드를 준비합니다.
-
검색 수행
- "역삼역 맛집 검색해"라고 말하여 검색을 수행합니다.
-
마우스 클릭
- 손을 움직이며 마우스를 조작하여 버튼을 클릭합니다.
- [마우스 클릭 예시 이미지 삽입 예정]
이러한 과정을 통해 음성과 손 동작을 활용하여 직관적으로 시스템을 제어할 수 있습니다.