Ⅰ. 서론
시각장애인들의 일상생활을 돕기 위한 여러 제도적 장치들이 마련되어 왔지만 여전히 많은 어려움을 겪고 있어 개선이 요구된다. 2022년 보건복지부 자료에 따르면 전국 지방자치단체 청사조차 점형 블록, 점자 표지판, 점자 안내판 등 시각장애인 편의 시설의 절정설치율은 28.1%이고, 미설치율은 52.9%에 달한다[1]. 매장에서 판매하는 상품에는 점자가 표기된 제품이 거의 없거나, 표기되어 있어도 상당수는 내용이 구체적이지 못하거나 가독성이 떨어진다. 음료, 컵라면, 우유를 마트와 같은 오프라인에서 구매한 경험이 있는 시각장애인 192명을 대상으로 식품의 점자 표시와 관련되어 불편 경험 여부를설문한 결과, 캔·페트병 음료류는 83.3%, 컵라면은 74.0%, 우유류는 67.7%가 불편을 경험한 것으로 응답하였다[2].
음료수 캔의 경우 점자가 있는 상품 중 점자를 통해 구분할 수 있는 음료수 종류는 '음료' '탄산' 그리고 '모름(점자 없음)' 4개뿐이다[3,4]. 그나마도 표기가 정확하지 않아 음료 종류를 제대로 구분하긴 쉽지 않으며, 탄산음료를 ‘탄산’이 아닌 ‘음료’로 표기하는 경우도 있다[5]. 이에 따라 음료업계에서는 시각장애인이 제품을 선택할 때 불편함을 덜 느끼도록 점자 표기 개선에 힘쓰고 있다. 팔도, 롯데칠성음료, 현대약품은 각각 비락식혜, 아이시스 및 칠성사이드, 미에로화이바에 점자 표기를 도입하였으며, 향후 다양한 제품군으로 확대할 예정이다[6]. 하지만 점자 표기를 다양화한 업체는 일부일뿐더러 그마저도 현재 주력으로 하는 일부 제품만 표기하는 실정이다.
또한, 점자는 시간이 지나면서 훼손되는 경우도 다수 존재한다. 그리고 캔 음료에 점자가 있더라도 점과 점 사이의 간격이 매우 좁아 읽기 어려우며 점자를 아주 작게 축소해놔 어디서부터 점자가 시작되는지도 구분하기 힘들 정도라고 한다[3]. 뿐만아니라 국립국어원이 출간한 ‘2021년 점자 출판물 실태 조사’에 따르면 2020년 기준 우리나라의 등록 시각장애인 수는 총 25만 2703명으로 이들 중 약 9.7% 정도만 점자 사용이 가능하다[7].
최근에는 시각장애인들의 일상생활을 돕기 위한 여러 제도적 장치들 및 서비스 개발에 있어 딥러닝이 활용되고 있다[8-11]. 즉, 이미지 혹은 영상 정보를 딥러닝을 활용하여 분석한 뒤 청각 정보로 변환해 주는 것이다. 본 연구에서는 딥러닝을 사용하여 실시간으로 음료 캔을 인식한 뒤 스피커를 통해 소리로 음료캔의 이름을 알려주는 시스템을 제안한다.
기존 시각장애인 대상 객체 인식 서비스는 무분별하게 텍스트를 인식한다는 점과 상품 정보를 얻기 위해 카메라로 상품을 하나씩 찍어야 한다는 한계점이 있다[8]. 본 연구에서는 이와 같은 문제점을 해결하여 사용자가 상품을 하나씩 찍지 않아도 물체를 구분할 수 있도록 하였다. 또한, 사용자가 원할 때만 정보를 출력하도록 하였다.
2장에서는 제안한 시스템의 전체적인 구성과 음료수 캔 인식 및 분류 모델을 설명한 뒤 실험 결과를 제시하겠다. 이후 결론을 내리겠다.
Ⅱ. 음료수 캔 분류 모델
<그림 1>은 음료수 캔 인식 시스템에 대한 전체적인 동작 순서도이다. 음료수 캔 인식 모델은 음료수 캔 이미지 수집, 라벨링, 전처리 후 학습을 통하여 개발한다. 시스템 카메라를 통하여 음료수 캔 영상이 입력되면 실시간으로 객체를 인식, 캔 종류를 구분하여 음료수 이름을 소리로 출력한다.
<그림 1> 음료수 캔 인식 시스템의 동작 순서도
2.1 데이터 수집
본 연구에서는 시중에 판매되고 있는 음료수 중‘스프라이트’ ‘갈아 만든 배’, ‘펩시’, ‘포카리 스웨트’, ‘환타’ 총 5개를 선택하였다. 실제 시스템 사용 환경과 유사한 환경을 구축하기 위해 음료수 캔을 카메라로 직접 찍어서 수집하였다. 음료별로 차례대로 743, 540, 382, 948, 481장씩 카메라로 찍어서, 총 3094장의 이미지 데이터를 수집하였다. 각 이미지는 RGB 데이터이며 너비는 3024 픽셀이고, 높이는 3024 픽셀이다.
학습 시간과 모델 사이즈를 줄이기 위하여 맥스 풀링(max pooling) 방식으로 입력 이미지 크기를 줄여서 94 × 94 사이즈로 다시 저장하였다.
각각의 이미지에 대하여 Labelimg 프로그램을 이용하여 라벨링 과정을 진행하였다. 이미지 데이터에서 원하는 객체(object)의 영역을 지정하고 해당되는 클래스를 입력함으로써, 객체 영역에 대한 경계 정보를 얻어낼 수 있다[8]. 모든 객체에 대하여 라벨링 과정을 마친 후 이미지 데이터와 함께 훈련 데이터(training set), 검증 데이터(validation set), 그리고 테스트 데이터(testing set)로 분류하였으며, 각각 70%, 20%, 10%의 비율로 분류하였다.
2.2 음료수 캔 분류 모델 설계
2.2.1 데이터 증강과 객체 분류 모델
첫 번째로 음료수 캔 구분을 위하여 CNN을 사용하였다. CNN은 인공신경망을 이루는 은닉 계층으로 합성곱 계층을 사용하는 인공신경망이다[12]. 합성곱 계층과 풀링 계층, 완전 연결 계층(fully connected layer)이 결합된 형태이며 이미지 데이터의 특징을 추출하고 분류하는데 특화되어 있어 이미지 인식 분야에서 널리 사용되고 있다.
<그림 2>는 음료수 캔 구분을 위하여 제안한 첫 번째 CNN 모델이다. 합성곱 계층과 풀링 계층이 3번 번갈아 나온다. 합성곱 계층의 커널 크기는 모두 3 × 3이며, 각 계층별로 32, 64, 그리고 128개의 필터로 구성된다. 활성 함수는 모두 ReLU 함수이다. 평탄화 계층(flatten layer)을 이용하여 특징맵을 1차원으로 바꾸고, 밀집 결합 계층(dense layer)을 한 번 거치고 드롭아웃(dropout) 40%를 적용한다. 마지막 밀집 결합계층(dense layer)에서는 소프트맥스(softmax)를 통해 출력값을 얻는다.
<그림 2> 합성 곱 신경망 모델
TensorFlow를 사용하여 모델을 학습하였다. <표 1>과 같이 배치 사이즈(Batch size)는 10으로 정하였고, 에폭(Epoch)은 15, 학습률(Learning rate)은 0.001로 설정하였다. 훈련/검증 데이터 및 테스트 데이터에 대하여 모두 약 99%의 정확도를 나타내었다. 하지만, 카메라로 다시 촬영을 하여 추가로 획득한 이미지에 대하여 인식 테스트를 해 보았을 때는 약 84%의 정확도를 나타내었다.
<표 1> 실험 파라미터
앞서 설명하였듯이 수집한 음료수 캔 이미지 데이터는 실제 시스템 활용 상황과 유사하도록 다양한 상황에서 카메라로 직접 찍은 데이터이다. 하지만, 데이터 수집이 동일 환경(주변 밝기, 배경 등)에서 이루어졌기 때문에 훈련 및 테스트 데이터에 대해서는 둘다 높은 정확도를 나타내었지만, 이후 추가로 수집된 이미지 데이터 테스트에서는 정확도가 낮아진 것이다. 따라서, 본 논문에서는 다양한 환경에서 입력되는 이미지에 대응하고 판단 정확도를 높이기 위하여 이미지 데이터에 대하여 처리 과정을 거쳐 데이터 증강 후 다시 모델을 설계하였다.
전체 이미지의 약 20% 의 데이터 셋을 사용하여 블러처리, 노이즈 추가, 회전 변경, 밝기 변경, 명암 조절 등의 과정을 거쳤다. <그림 3>에서 데이터 증강 결과를 확인할 수 있다.
<그림 3> 이미지 처리를 통한 이미지 데이터 증강. (a) 흑백처리 및 블러처리, (b) 블러처리, (c) 모폴로지 침식 연산, (d) 노이즈 추가 및 회전
데이터 증강 후 다시 모델을 설계하였다. 동일한 파라미터에 대하여 훈련을 실시하였을 때, 훈련/검증 데이터 및 테스트 데이터에 대하여 각각 약 99%와 약 97%의 정확도를 나타내었다. 앞서 추가로 획득한 이미지에 대하여 테스트를 해 보았을 때는 약 92%의 정확도를 나타내었다. 추가 이미지 데이터에 대한 테스트의 정확도가 테스트 데이터에 대한 정확도보다는 낮지만 정확도 차이가 감소된 것을 확인할 수 있다. 즉 데이터 증강에 의하여 모델 성능이 개선되었음을 알 수 있다.
모델 경량화를 위하여 CNN 모델의 계층 수를 감소시키며 성능을 확인하였다. 모델 A는 앞서 설계한 모델로 합성곱 계층과 풀링 계층이 3번 반복된다. 모델 B는 합성곱 계층과 풀링 계층이 2번 반복된다. 모델 A의 세 번째 합성곱 계층과 풀링 계층이 삭제된 형태이다. 모델 C는 다시 모델 A의 두 번째와 세 번째 합성곱 계층과 풀링 계층이 삭제된 형태이다. 즉, 합성곱 계층과 풀링 계층이 1 계층만 존재한다. 마지막 모델 D는 모델 C처럼 1 계층의 합성곱 계층과 풀링 계층만 존재하며, 이 때 합성곱 계층에는 커널이 16개 있다. 즉 모델 D보다 커널의 수가 반으로 감소되었다. 이 때 모든 모델의 모든 커널의 사이즈는 3 × 3으로 동일하다. 각 모델에 대한 정확도 평가 결과는 <표 2>에 정리되어 있다. 모델 A, B, C, D에 대한 실시간 테스트 결과는 각각 92.5%, 90.3%, 91.2% 그리고 89.7%의 정확도를 나타내었다. 모델 A, B, C는 필터의 수 감소로 복잡도가 급격히 낮아지는데 비하여 실시간 테스트 결과 정확도는 차이는 비슷한 수준이었다. 오히려 모델 C가 모델 B보다 정확도가 높았다. 따라서 본 논문에서는 음료수 캔 인식 CNN 모델로 <그림 4>와 같은 모델 C를 제안한다.
<표 2> 모델 A, B, C, D에 대한 테스트 결과
<그림 4> 합성 곱 신경망 모델
2.2.2 객체 검출 기법 활용 모델
객체 검출 기법에는 R-CNN(Region with Convolutional Neural Network), Faster R-CNN, YOLO 등이 있다. 그중 YOLO(You Only Look Once)는 하나의 이미지 데이터를 여러 개의 이미지 데이터로 나누어 분석하는 것이 아니라 객체 탐지의 분리된 요소들을 하나의 신경망으로 통합하여 Bounding Box를 예측하는 동시에 물체의 클래스를 분류하기 때문에 R-CNN보다 1000배, Faster R-CNN보다 100배 이상 빠르다[13-15].
<그림 5>은 YOLO의 객체 검출 과정을 보여준다. <그림 5>의 ⓐ에서 입력 이미지를 고정된 크기와 위치를 가진 영역 SxS의 그리드 셀로 나눈다. 그리고 ⓑ Bounding Box 처리와 ⓒ 클래스 구분 과정이 동시에 진행된다. 각각의 그리드 셀에 대하여 B개의 Bounding Box를 계산하며 각각의 Bounding Box에 대하여 신뢰도를 계산한다. 신뢰도는 box 안에 객체가 포함될 확률과 정확도를 반영한다. 클래스 구분도 각각의 그리드 셀에 대하여 수행된다. 객체가 인식되었을 때 그 객체에 대하여 각각의 클래스에 해당될 조건부 클래스 확률을 계산한다. 최종적으로 ⓓ 조건부 클래스 확률과 신뢰도 점수를 곱하여 최종적으로 남길 Bounding Box를 결정한다[11,16,17].
<그림 5> YOLO의 객체 검출 과정
현재 YOLO는 v1부터 v8까지 개발되었으며, 본 연구에서는 YOLOv5를 사용하였다[18,19]. 모델 설계를 위하여 카메라로 수집한 데이터와 이미지 처리를 통하여 증강된 데이터를 모두 사용하였다.
<그림 6>은 테스트 데이터에 대하여 해당 음료의 라벨명이 바르게 출력되는 것을 보여준다. <그림 7>는 훈련 진행에 따른 정확도를 보여준다. 훈련 후 정확도는 약 98%이다.
<그림 6> 음료별 인식 결과 확인. (a) 펩시, (b) 포카리스웨트, (c) 스프라이트, (d) 환타, (e) 갈아 만든 배
<그림 7> 학습 후의 정확도
<그림 8>은 클래스 별로 정확도를 보여준다. 클래스 별로 보았을 때 ‘환타’의 정확도가 가장 높고 ‘갈아 만든 배’의 정확도가 가장 낮다. 각 클래스마다 정확도가 다른 이유는 복합적이겠지만, 무엇보다 음료수 캔마다 상품명 글씨 크기 및 글꼴, 색상 수, 배경모양 등이 다르기 때문으로 예측된다.
<그림 8> 음료별 정확도
2.3 모델 성능 비교
<표 3>에 CNN 모델 C와 YOLO를 사용하여 실험한 결과를 정리하였다. 모델 경량화를 위하여 입력 이미지 사이즈를 <표5>와 같이 96 × 96 뿐 아니라 64 × 64에 대해서도 테스트해 보았다. 모델 C에서는 입력 사이즈가 감소되어도 정확도는 0.2% 차이 밖에 안났지만 YOLO에서는 약 15% 차이가 발생하였다. 따라서, 본 연구에서는 96 × 96 사이즈를 최종적으로 선택하였다.
<표 3> CNN 모델3과 YOLO 결과 비교
Ⅲ. 음료수 캔 구분 시스템
3.1 시스템 구현
<그림 9>과 <그림 10>는 구현된 음료수 캔 구분 시스템과 시스템에서 음료수 캔이 인식되어 해당 음료수 캔의 라벨 명과 라벨 박스가 형성된 모습을 보여준다. 라즈베리파이 4B+를 사용하였으며, 카메라와 버튼, 그리고 스피커가 설치되어 있다. 라즈비안 리눅스를 설치하였으며, 음료수 캔 인식은 YOLO 모델을 사용하였다. 시스템은 카메라로 입력된 이미지 데이터에 대하여 실시간으로 객체 인식을 한다. 그리고 사용자가 버튼을 누르면 인식된 음료수 캔의 이름을 소리로 출력하게 함으로써 불필요한 소리 발생을 방지한다.
<그림 9> 구현된 음료수 캔 구분 시스템 (a) 위에서 바라본 모습, (b) 앞에서 바라본 모습
<그림 10> 라즈베리 파이에서 음료를 인식한 모습
소리 출력은 구글에서 제공하는 gTTS를 이용하였다. gTTS는 text를 음성 파일로 변환시키는 모듈이다. 본 연구에서 사용된 음료수 캔 ‘갈아 만든 배’, ‘펩시’, ‘스프라이트’, ‘포카리스웨이트’, 그리고 ‘환타’에 대하여 각각 ‘galbel’, ‘Pepsi’, ‘sprite’, ‘pocari’, 그리고 ‘Fanti’로 지정하였다.
3.2 시스템 테스트 및 결과
카메라를 통하여 획득되는 이미지의 실시간 판별의 경우 주변 광량에 따라 성능이 달라질 수 있다. 또한 시각장애인의 경우 카메라에 음료수 캔을 정확하게 비추기 어려울 수 있다. 본 논문에서는 실험자가 여러 개의 캔이 놓여져 있을 때 눈을 감고 한 손으로 임의의 캔을 선택하고 다른 손으로 시스템을 구동시키며 카메라로 음료수 캔 이미지를 획득하였다.
<그림 11>에서 보는 바와 같이 캔이 기울어져 있을 때, 캔의 일부분만 카메라로 찍혔을 때, 빛 반사가 있거나 어두운 환경일 때 등의 상황에서 실험이 진행되었다. 캔 인식 정확도는 약 30-90%까지 폭넓게 나타났다. <그림 11> (d)와 같이 조도가 낮은 경우라고 하더라도 캔의 모양이 바른 경우에는 정확도가 70% 이상이 나타났으며, 같은 조도 상황에서 캔의 일부만 비추는 경우에는 정확도가 약 30%까지 낮아졌다. 이는 <그림 11> (a), (b), (c)와 같은 일반 실내 환경에서의 실험 결과와 유사한 정확도이다. 즉, 음료수 캔 인식 정확도는 조도에 의한 영향보다 카메라에 잡히는 음료수 캔 이미지의 특정 패턴(예를 들면 <그림 11>에서 보는 바와 같이 “pepsi” 문구와 마크)의 온전함 정도에 따라 정확도가 달라졌다.
<그림 11> 다양한 상황에서의 음료수 캔 인식. (a) 캔이 기울어져 있을 때, (b) 캔의 일부분만 입력되었을 때, (c) 빛 반사가 있을 때, (d) 어두울 때
<그림 12>는 여러 개의 캔이 진열되어 있을 때, 동시에 여러 개의 캔이 인식되는 경우에 대한 실험이다. 캔을 2-5개까지 한 화면에 나타나도록 나열하였으며, 그 중 1개를 다른 것보다 앞에 배치하여, 앞에 있는 캔이 구분하기를 원하는 캔으로 설정하였다. 시스템에서는 2개 이상의 음료수 캔이 인식되는 경우에 그중 가장 정확도가 높은 음료수 캔에 대하여 음성출력을 한다.
<그림 12> 여러 개의 캔이 동시 인식되었을 경우
실험 결과, 하나의 캔에 대한 실험에서와 마찬가지로 정확도의 폭은 넓었다. 하지만, 앞에 있는 음료수 캔의 정확도와 뒤에 있는 음료수 캔들의 정확도 차이를 계산하면 평균 약 8% 차이가 있었으며, 모든 경우에 대하여 앞에 있는 음료수 캔의 정확도가 높았다. 따라서 음성으로 출력되는 음료수 캔의 이름은 앞에 있는 음료수 캔의 이름이었다. 여러 개의 캔이 하나의 이미지로 카메라에 찍히는 경우에도 사용자 가까이 있는 음료수 캔에 대하여 구분해 냄으로써 편의성을 높일 것으로 예상된다.
Ⅳ. 결론
본 논문에서는 시각장애인이 음료수 캔을 손쉽게 구분할 수 있도록 음료수명을 소리로 출력해 주는 음료수 캔 인식 시스템을 설계하였다. 시중에서 판매하는 5 종류의 음료수 캔을 선정한 뒤 CNN과 YOLO를 사용하여 음료수 캔 분류 모델을 설계하였다. CNN 모델은 3x3 32개 커널 합성곱 계층과 풀링 계층, 평탄화 계층, 밀집 결합 계층으로 구성된다. 이미지 데이터 증강 과정을 통하여 데이터를 다양화한 뒤 모델을 훈련하여, CNN 모델과 YOLO 모델 각각에 대하여 91.2%, 90.8% 의 정확도를 얻었다. 라즈베리파이 4B+에 YOLO 모델을 적용하여 음료수 캔 인식 시스템을 구현하였다. 빛에 의한 주변 환경의 영향 및 음료수 캔이 온전하지 찍히지 않은 경우 등에도 음료수 캔 분류가 되는 것을 확인하였다. 본 연구에서는 음료수 5종으로 한정되기는 하였지만, 추후 음료수 뿐 아니라 다양한 상품으로 확대하여 시스템을 구성한다면 상점에서 시각장애인들이 더욱 손쉽게 물건을 구분, 소비할 수 있을 것으로 기대된다.
References
- 보건복지부, 시각장애인 편의시설 실태조사 후속조치, 2022.1.26., https://www.mohw.go.kr/react/al/sal0301vw.jsp?PAR_MENU_ID=04&MENU_ID=0403&CONT_SEQ=369913&page=70
- YTN, 유통기한 확인 못하는 시각장애인, 식품 점자 표시 실태조사, 2022., https://www.ytn.co.kr/_ln/0102_202209161556059880
- 조선비즈, 시각장애인 두 번 울리는 점자 표기, 2022.6.15., https://biz.chosun.com/topics/topics_social/2022/06/15/FX3JYYBMP5AMRGYRG35GR4YXYQ
- 한국일보, 시각장애인에겐 요만큼만...점자 정보 인색한 사회, 2019.6.13, https://n.news.naver.com/article/469/0000396493
- 박정태, 시각장애인 식품 점자 표기 소비자문제 실태조사, 한국소비자원, 조사보고서, 2022.
- 뉴시스, 착한 식품 기업, 시각장애인 위한 점자 패키지 선봬, 2022.11.05., https://www.newsis. com/view/?id=NISX 20221104_0002073889
- 일간경기, 시각장애인 10명 중 9명은 점자 문맹, 2022.10.20., http://www.1gan.co.kr/news/article View.html?idxno=219771
- 박영웅.서준혁.정시현.이재훈.심미경,"딥러닝 기반의 실시간 영상 처리 기술을 활용한 시각장애인 대상 상품 음성안내 서비스," 한국통신학회, 학술대회논문집, 2021, pp.126-127.
- 윤다연.이경진.윤상일.노가은.이희범.김선형.강병권, "CNN 기반 실시간 영상처리를 통한 시각장애인 스마트 보조기구,"한국정보기술학회, 종합학술발표논문집, 2021, pp.665-669.
- 양호준, 장석우, 박준수, 김종구, & 권장우, "시각장애인을 위한 딥러닝 기반의 실시간 임베디드보조 시스템 개발에 관한 연구," 재활복지공학회논문지, 제16권, 제1호, 2022, pp.27-36. https://doi.org/10.21288/resko.2022.16.1.27
- 오세랑.배영철, "YOLO V3 기반의 시각장애인을 위한 유도 블록 인식 알고리즘," 한국지능시스템학회 논문지, Vol.31, No.1, 2021, pp.60-67. https://doi.org/10.5391/JKIIS.2021.31.1.060
- 이동구.선영규.김수현.심이삭.이계산.송명남.김진영,"이미지 인식률 개선을 위한 CNN 기반 이미지 회전 보정 알고리즘," 한국인터넷방송통신학회논문지, 제20권, 제1호, 2020, pp.225-229. https://doi.org/10.7236/JIIBC.2020.20.1.225
- 배선영, "시각장애인을 위한 인공지능 관련 연구동향 : 1993-2020년 국내.외 연구를 중심으로,"한국콘텐츠학회논문지, 제20권, 제10호, 2020, pp.688-701. https://doi.org/10.5392/JKCA.2020.20.10.688
- 이용환.김영섭, "객체 검출을 위한 CNN과 YOLO 성능 비교 실험," 반도체디스플레이기술학회지, 제19권, 제1호, 2020, pp.85-92.
- 김익수.이문구.전용호, "결함검출 적용을 위한 YOLO 딥러닝 알고리즘 비교," 한국생산제조학회지, 제30권, 제6호, 2021, pp.514-519. https://doi.org/10.7735/ksmte.2021.30.6.513
- 백석영.박정인.윤준용.성우석,"YOLO를 활용한 실시간 교통표지 검출,"한국자동차공학회 춘계학술대회, 2019, pp.833-837.
- 이정환, "YOLOv4 알고리즘을 이용한 저품질 자동차 번호판 영상의 숫자 및 문자영역 검출," 디지털산업정보학회 논문지, 제18권 제4호, 2022, pp.1-11.
- 김진호, "노상 주차 차량 탐지를 위한 YOLOv4 그리드 셀 조정 알고리즘,"디지털산업정보학회논문지, 제18권, 제4호, 2022, pp.31-40 https://doi.org/10.17662/KSDIM.2022.18.4.031
- Jacob Solawetz, Francesco, What is YOLOv8? The Ultimate Guide,2023.1.11., https://blog.roboflow.com/whats-new-in-yolov8