DOI QR코드

DOI QR Code

다시점 수어 데이터 획득 및 저장 시스템 설계 및 구현

Design and Implementation of Data Acquisition and Storage Systems for Multi-view Points Sign Language

  • 김근모 (충북대학교 전기.전자.정보.컴퓨터공학부) ;
  • 김봉재 (충북대학교 컴퓨터공학과)
  • 투고 : 2022.05.12
  • 심사 : 2022.06.10
  • 발행 : 2022.06.30

초록

한국장애인개발원의 2021 장애통계연보 자료에 따르면 대한민국에 청각 장애를 가지고 있는 사람은 395,789명이 있다. 이러한 사람들이 청각 장애를 통해 많은 불편을 겪고 있고, 이를 해결하기 위해 수어 인식 및 번역에 관련된 많은 연구가 진행되고 있다. 수어 인식 및 번역 연구에서는 수어 데이터를 수집하는 것이 중요한 부분을 차지하고 있지만 한국어 수어 데이터는 전문적으로 수어를 사용하는 사람의 수가 많지 않아 많은 어려움이 있다. 또한 구축된 기존의 데이터들도 발화자의 정면에서 촬영된 수어 데이터가 대부분이다. 이와 같은 문제점을 해결하기 위해 본 연구에서는 하나의 시점이 아닌 다시점에서 수어 데이터를 실시간으로 수집하고 보다 활용 편의성이 높게 저장 및 관리할 수 있는 저장 시스템을 설계하고 구현하였다.

There are 395,789 people with hearing impairment in Korea, according to the 2021 Disability Statistics Annual Report by the Korea Institute for the Development of Disabled Persons. These people are experiencing a lot of inconvenience through hearing impairment, and many studies related to recognition and translation of Korean sign language are being conducted to solve this problem. In sign language recognition and translation research, collecting sign language data has many difficulties because few people use sign language professionally. In addition, most of the existed data is sign language data taken from the front of the speaker. To solve this problem, in this paper, we designed and developed a storage system that can collect sign language data based on multi-view points in real-time, rather than a single point, and store and manage it with high usability.

키워드

Ⅰ. 서론

한국장애인개발원의 2021 장애통계연보 자료에 따르면 대한민국에 395,789명의 사람이 청각 장애를 가지고 있다. 이러한 청각 장애인들은 청각 장애를 가지고 있지 않은 비장애인과의 의사소통에 어려움을 겪고 있으며 사회에서 받을 수 있는 정보를 온전히 획득하는 어려움 또한 겪고 있다. 인공지능 기술의 발전[1]과 더불어 이를 해결하기 위한 수어 인식 및 번역에 관련된 많은 연구가 진행되고 있다[2][3][4]. 수어 인식 및 번역 정확도를 높이기 위해서는 풍부한 수어 데이터[5]의 확보와 관리가 매우 중요하다. 이에 한국어 수어 데이터 세트를 제안한 연구들이 있으며, 이러한 데이터 세트는 수어 전문가들의 자문을 받아 한국어-수어 1대 1 스크립트를 인공지능 기술에 최적화하여 재가공하였다[6][7]. 이러한 연구들이 있지만, 수어 데이터를 전문적으로 취득할 수 있도록 지원하는 소프트웨어나 도구의 지원은 미미한 실정이다. 또한 기구축된 한국어 수어 데이터가 많지 않으며 정면에서 취득된 수어 데이터가 대부분이고, 데이터 수집에 있어 많은 시간을 소비한다.

이에 본 연구에서는 하나의 시점이 아닌 다시 점에서 수어 데이터를 실시간으로 수집하고 보다 활용 편의성이 높게 저장 및 관리할 수 있는 저장 시스템을 설계하고 구현하였다. 수어 제공자는 제안된 시스템을 통해 자신의 수어 발화 장면을 실시간으로 촬영할 수 있다. 촬영된 다시 점 수어 데이터는 서버에 전송하여 저장된다. 또한 저장된 수어 데이터는 인공지능 기술에 기반한 수어 인식 및 번역 모델의 학습이나 서비스에 사용할 수 있도록 수어의 종류 등의 조건을 이용하여 검색할 수 있다. 마지막으로 저장된 수어 발화 데이터의 제 3자 제공을 위한 Restful API를 지원한다. 이를 통해 저장된 수어 데이터의 활용성을 높일 수 있다. 따라서 인공지능 기술에 기반한 수어 인식 및 번역 서비스의 인식 정확도나 서비스 효율을 향상시키는데 기여할 수 있을 것으로 기대한다.

이후 2장에서는 제안한 수어 획득 및 저장 시스템의 설계 및 동작 방식에 대하여 자세하게 설명한다. 마지막으로 3장에서 결론을 서술하는 것으로 본 논문을 마친다.

Ⅱ. 시스템 설계 및 동작 방식

1. 수어 데이터 획득 및 저장 시스템의 구조

본 연구에서 제안하고 구현한 수어 데이터 획득 및 저장 시스템의 구조도는 그림 1과 같으며 크게 프론트엔드와 백엔드로 나뉜다. 프론트엔드는 수어 제공자에게 보여지는 UI와 이를 기반으로 다중 카메라 제어를 통해 다시 점 수어 발화 영상을 촬영할 수 있는 기능을 제공한다. 백엔드는 프론트엔드와 연계하여 촬영된 영상을 저장하고 관리하며, Restful API[8][9]를 통하여 취득된 수어 데이터가 향후 활용할 수 있도록 편의성을 제공한다. 

그림 1. 시스템 구조

Fig. 1. System architecture

가. 프론트엔드

프론트엔드는 수어 제공자가 다시점 카메라를 이용하여 수어 발화 영상을 촬영할 때 보여지는 기능을 제공한다. GUI 형태로 관련 기능을 제공하기 위하여 PyQt5를사용하였다. 프론트엔드 UI는 mainUI (메인 윈도우 관련), registerUI (수어 제공자 정보 등록 관련), uploadUI (수어 데이터 업로드 관련), listUI (수어 데이터 확인 기능) 모듈로 구성된다. mainUI는 사전 등록된 수어 제공자의 정보를 확인할 수 있는 기능과 수어 발화 영상을 촬영할 수 있는 기능을 제공한다. 또한 mainUI 는 Register_user (사용자 등록 기능), Upload_file (수어 데이터 업로드 기능), View_file (수어 데이터 확인기능) 버튼을 클릭하여 registerUI, uploadUI, listUI 모듈을 실행할 수 있다. registerUI 모듈은 수어 제공자의 정보를 저장하는 기능을 제공한다. uploadUI 모듈은 수어 제공자 자신의 PC에 저장된 수어 발화 영상 목록을 확인할 수 있고 각 다시점 수어 발화 영상을 개별적, 일괄적으로 서버에 업로드하는 기능을 제공한다. 마지막으로 listUI 모듈은 서버에 저장된 수어 발화 영상을 종류별(전체, 단어, 문장 단위)로 목록 형태로 확인할 수 있고, 서버에 저장된 다시점 수어 데이터를 다운로드 및 삭제할 수 있는 기능을 제공한다.

나. 백엔드

백엔드는 서버 컴퓨팅 환경 구축이 쉽고 간결한 파이썬 기반의 Flask 프레임워크를 사용하였다. 프론트엔드와 Flask 서버가 동작하는 벡엔드는 Restful API 방식을 통해 연동된다[10]. MySQL이 데이터베이스로 사용되었으며 Flask 서버와 MySQL의 연동에는 PyMySQL[11]을사용하였다. Flask 서버 내에는 userController, fileController 모듈이 존재한다. userController는 수어 제공자의 상세 정보(이름, 나이, 성별, 출신지(지역명), 출신 학교(수어 교육을 받은 최종 학교))를 데이터베이스에 저장하는 기능을 제공한다. 또한 다시점 수어 발화 영상 촬영 시 mainUI에서 기 등록된 수어 제공자를 조회하여 선택하면 수어 제공자의 상세 정보를 제공하는 기능을 수행한다. fileController는 프론트엔드에서 제공하는 기능을 통해 촬영한 다시점 수어 데이터를 서버로 업로드하고 추가, 삭제, 조회 등 관리 기능을 담당한다.

(1) Restful API

Restful API는 HTTP의 GET, POST, DELETE, UPDATE를 사용하여 서버의 특정 URI (Uniform Resource Identifier)에 대한 CRUD (Create, Read, Update, Delete) 연산의 수행을 지원할 수 있다. 본 논문에서 제안한 다시점 수어 데이터 획득 및 저장 시스템은 다음과 같은 Restful API 기능을 지원한다.

표 1은 사용자 관리 기능을 위한 Rest API를 세부적으로 명시한 것이다. 수어 제공자는 데이터베이스에 자신의 이름, 나이, 성별, 출신지(고향), 출신 학교(수어 교육을 받은 최종 학교) 정보를 등록할 수 있다. 또한 수어발화 영상을 촬영하고 저장하는 데 필요한 정보를 자신의 이름 정보를 통해 가져올 수 있다.

표 1. 사용자 관리 API

Table 1. User management API

표 2는 파일 관리 기능을 위한 Rest API를 세부적으로 명시한 것이다. 수어 제공자가 촬영한 수어 발화 영상은 수어 제공자 자신의 PC에 svo 파일 형식으로 저장된다. 수어 제공자가 서버에 저장하기를 원하는 파일은 avi 파일 형식으로 변환되어 전송되며, 전송된 수어 발화 영상 파일은 사용자 이름, 항목(모든 항목, 단어, 문장), 분류 항목 내용에 따라 검색할 수 있다. 또한 원하는 파일을 다운로드 및 삭제할 수 있다.

표 2. 파일 관리 API

Table 2. File management API

(2) 데이터베이스

취득된 다시점 수어 데이터의 저장과 관리를 위하여 다음 그림 2와 같이 데이터베이스는 2개의 테이블로 구성된다. 그림 2는 User 테이블과 File 테이블 간의 상호관계에 대해서도 보여준다. User 테이블은 수어 제공자의 이름, 나이, 성별, 고향, 출신 학교 정보를 저장하기 위해 사용된다. File 테이블은 수어 제공자별로 수어 데이터를 관리하는데 필요한 정보를 저장한다. 그림 2에서 확인할 수 있듯이 User 테이블과 File 테이블은 1:N 관계를 가진다.

그림 2. 데이터베이스 테이블 관계도

Fig. 2. ERD of the database table

2. 시스템 내 SW 모듈간의 상호 동작 관계

그림 3은 전체적인 시스템 동작 과정을 시스템 내 SW 모듈 간의 상호 동작과 같이 표현한 그림이다. 수어 제공자가 mainUI를 실행시킨 후 ① Register_user 버튼을 클릭하면 registerUI가 실행된다. registerUI에서 수어 제공자는 자신의 이름, 나이, 성별, 출신지, 출신 학교 정보를 입력하고 Registration 버튼을 클릭하여 자신의 정보를 등록한다.

그림 3. 시스템 내 SW 모듈간의 상호 동작 관계

Fig. 3. Interaction between system modules

정보를 등록한 수어 제공자는 다시 mainUI로 돌아온 후, 촬영하고자 하는 수어 정보 단어, 문장 수준으로 입력하고 ② Start_recording 버튼을 통해 다시점 수어 발화 영상을 촬영한다. 이후 ③ Stop_recording 버튼을 통해 촬영을 종료하면 해당 영상은 다시점 수어 데이터 취득 소프트웨어 모듈이 동작하는 프론트엔드 PC에 저장된다. 수어 제공자 PC에 저장된 다시점 수어 데이터는 mainUI에 있는 ④ Upload_file 버튼을 클릭하면 나타나는 uploadUI를 통해 확인할 수 있으며 서버에 전송할 수 있다. 또한 mainUI에 있는 ⑤ View_file 버튼을 클릭하면 나타나는 listUI를 통해 서버에 저장된 수어 발화 영상 정보를 수어 제공자, 단어, 문장, 수어 내용을 이용하여 확인할 수 있으며 원하는 영상에 대해 다운로드, 삭제와 같은 관리 기능을 수행할 수 있다.

3. 시스템 구현 환경

표 3, 4는 다시점 수어 데이터 획득 및 저장 시스템이 구현된 컴퓨팅 환경 정보를 보여준다. 본 연구에서 다시 점 영상 획득을 위해서 ZED 스테레오(stereo) 3대가 사용되었다.

표 3. 백엔드 컴퓨팅 환경

Table 3. Back-end computing environment -66-

표 4. 프론트엔드 컴퓨팅 환경

Table 4. Front-end computing environment

4. 시스템 구현 결과

그림 4, 5, 6, 7은 본 연구에서 구현한 다시점 수어 데이터 획득 소프트웨어의 UI를 보여준다. 그림 4는 메인윈도우 화면이며 수어 제공자는 이를 통해 자신의 정보를 추가하거나 조회할 수 있다. 또한 다수의 ZED 카메라를 기반으로 다시점 수어 발화 영상을 촬영 및 저장, 확인할 수 있다.

그림 4. 메인 윈도우 UI

Fig. 4. Main window UI

그림 5는 메인 윈도우에서 Start_recording 버튼을 선택 시 실행되는 3개의 ZED 카메라를 통해 다시 점으로 수어 제공자의 수어 발화를 촬영하고 있는 예를 보여준다. 메인 윈도우의 Stop_recording 버튼을 선택 시, 그림 5와 같은 다시점 수어 발화가 촬영되고 있는 상황을 실시간으로 보여주는 UI는 종료된다.

그림 5. 다시점 수어 발화 영상 녹화 예

Fig. 5. An example of recording for an multi-view point sign language

그림 6은 메인 윈도우에서 Upload_file 버튼을 선택했을 때 실행되는 uploadUI이며, 수어 제공자 PC에 저장된 다시점 수어 영상 데이터의 목록 및 세부 내용을 제공한다. 그림 6에서 확인할 수 있듯이, 3대의 ZED 카메라를 이용하여 3개의 시점에서 수어 데이터를 취득한 상황이므로 3개씩 수어 데이터가 목록으로 표시된다. 수어 제공자는 Upload 버튼을 선택하여 PC에 저장된 수어 데이터를 서버에 전송할 수 있다.

그림 6. 파일 업로드 UI

Fig. 6. File upload UI

그림 7은 수어 제공자가 자신의 정보를 입력하는 registerUI이며, 메인 윈도우에서 Register_user 버튼을 선택하게 되면 실행된다. 또한, 메인 윈도우에서 View_file 버튼을 선택하게 되면 listUI가 실행되며, 수어 제공자는 서버에 저장된 수어 발화 영상을 확인, 삭제, 다운로드와 같은 관리 기능을 수행할 수 있다.

그림 7. 수어 제공자 정보 등록 UI

Fig. 7. Registration UI for sign language provider information

Ⅲ. 결론

수어 인식 및 번역 연구 및 서비스에서 수어 인식 및 번역의 정확도 향상을 위해서는 풍부한 수어 데이터의 확보가 필수적이다. 따라서 본 논문에서는 사용자 편이성을 높일 수 있는 다시점 수어 데이터 획득 및 저장 시스템을 설계하고 구현하였다. 제안 시스템을 이용하여 획득한 다시점 수어 데이터는 서버에 전송되어 저장된다. 저장된 다시점 수어 데이터는 제안 시스템이 제공하는 Restful API를 기반으로 제 3자가 활용할 수 있다. 따라서 다수의 수어 데이터를 기반으로 인공지능 기술을 적용한 수어 인식 및 번역 서비스의 인식 정확도나 서비스 효율을 향상시키는데 기여할 수 있을 것이다.

참고문헌

  1. Seokjin Kwon, Minsoo Kim, "Flaw Evaluation of Bogie connected Part for Railway Vehicle Based on Convolutional Neural Network", Journal of the Korea Academia-Industrial cooperation Society, Vol. 21, No. 11, 2020. DOI: http://dx.doi.org/10.5762/KAIS.2020.21.11.53
  2. Starner, Thad, and Alex Pentland, "Real-time american sign language recognition from video using hidden markov models", Motion-based recognition. Springer, Dordrecht, pp. 227-243, 1997. DOI: https://doi.org/10.1007/978-94-015-8935-2_10
  3. Pigou, Lionel, et al., "Sign language recognition using convolutional neural networks" European Conference on Computer Vision. Springer, Cham, 2014. DOI: https://doi.org/10.1007/978-3-319-16178-5_40
  4. Chung-Geun Kim, Eun-Su Kim, Jae-Wook Shin, Bum-Yong Park, "Real-time Robotic Arm Control Embedded System using Hand Gestures", The Journal of Korean Institute of Information Technology, Vol. 19, No. 11, pp. 45-53, 2021
  5. Sincan, Ozge Mercanoglu, and Hacer Yalim Keles, "Autsl: A large scale multi-modal turkish sign language dataset and baseline methods", IEEE Access 8, pp. 181340-181355, 2020. DOI: https://doi.org/10.1109/ACCESS.2020.3028072
  6. Hyo-Chul Bae, Kyoungro Yoon, Neungsoo Park, "Korean Sign Language Word Dataset for Deep learning", Information And Control Symposium, pp. 516-517, 2020.
  7. Jongwoo Seo, Jiyong Kim, Younghwan Park, Dohyeon Kim, Taewook Kim, Moongu Jeon, "A study on the method of making Korean-sign language one-to-one script dataset", Inspiring Insight in Business Society, pp. 191-198, 2021.
  8. Kyubaek Kim, "Integrated Service Framework for Naval Ship using REST Architecture", The journal of The Institute of Internet, Broadcasting and Communication, Vol. 17, No. 4, pp. 1-10, 2017. DOI: https://doi.org/10.7236/JIIBC.2017.17.4.1
  9. Fielding, Roy Thomas, "Architectural styles and the design of network-based software architectures" ,University of California, Irvine, Irvine, Vol. 7, 2000.
  10. Grinberg, Miguel, "Flask web development: developing web applications with python". O'Reilly Media, Inc., 2018.
  11. Hunt, John, "PyMySQL module.", Advanced Guide to Python 3 Programming. Springer, Cham, pp. 291-301, 2019. DOI: https://doi.org/10.1007/978-3-030-25943-3_25