사회적약자
해결완료
시각장애인을 위한 캔음료 인식 및 음성안내 앱
1. openCV
초기 인공지능 모델의 구상은 캔 부분을 contuor와 캔의 비율을 이용하여 openCV로 잘라오고, 이를 CNN을 이용하여 학습시켜 캔 음료의 종류를 판별할 수 있도록 만들고자 하였다. 그러나, openCV를 이용하여 캔의 이미지를 잘라오도록 하는 경우, 배경색과 캔의 색이 유사한 경우 명확하게 캔을 구분하여 잘라올 수 없는 문제가 있었다.
이 문제를 해결하기 위하여 openCV로 캔 음료의 이미지를 추출하는 대신, object detection AI를 활용하여 캔의 종류를 인식하는 방향으로 방법을 전환하게 되었다.
2. 학습에 맞는 모델 선정하기
처음에는 faster RCNN 모델을 활용하여 캔을 인식할 수 있도록 인공지능 모델을 알아보았지만, 스마트폰 카메라를 활용한 실시간 처리와 스마트폰의 성능의 한계로 인해 원활하게 사용할 수 없을 것이라는 결론에 도달하게 되었다. 2 stage object detection보다 1 stage object detection 모델을 사용하는 것이 장면 당 처리 시간이 훨씬 짧아 모바일 환경에서 활용이 더욱 유리할 것이라 생각하게 되어 faster RCNN 대신 1 stage object detection 모델을 사용하게 되었다.
3. 양질의 학습데이터
a. 한 장소에서 캔을 여러 면으로 돌려가며 한 캔 당 총 100장의 사진을 찍은 후, 이미지를 라벨링하여 학습시켰지만 카메라에 매우 가까이 보이는 것이 아니면 인식을 잘 하지 못하였고 그마저도 움직이면 인식을 잘 하지 못하였다.
b. 여러 시행착오와 공부를 한 결과 캔의 각도와 캔의 배경이 다양하게 찍힌 사진과 이미지가 ai가 학습하기 좋은 양질의 데이터라는 것을 알게 되었다. 이후 한 장소에서 여러 면, 여러 각도로 총 10장씩, 10개의 장소에서 사진을 찍었으며, 한 캔 당 총 100장의 학습 데이터를 모으게 되었다. 결과적으로 학습 모델은 이전과 비교도 할 수 없을 정도로 매우 좋은 성능을 보여주었다.
4. 인공지능 모델을 애플리케이션으로 이식
초기에는 android와 웹페이지를 각자 개발하였으나, android와 iOS 애플리케이션을 개발할 때 빠르게 개발을 할 수 있으며, 오픈소스로 코드를 공개했을 때 많은 사람들이 시각 장애인 분들을 위한 object detection 애플리케이션을 개발할 수 있는 platform으로써 활용할 수 있도록 하기 위해 웹페이지 개발에 집중하였다. 그 결과 javascript를 이용하여 학습된 모델을 웹페이지에서 사용할 수 있도록 개발을 진행하였고, 이후 webview를 이용하여 안드로이드 애플리케이션을 개발하게 되었다. iOS 앱은 개발중이며, 지금도 크롬과 Safari 브라우저로 접속하면 서비스를 이용할 수 있다.
5. iOS 운영체제, Safari 브라우저 등 호환성 이슈
초기 개발 환경 및 테스트는 안드로이드 및 크롬 브라우저, 네이버 브라우저에서 진행하였다. 하지만 여러 사용자를 고려하기 위해 iOS 및 Safari 브라우저에서 확인한 결과 캔이 인식되지만 음성 안내가 되지 않는 이슈가 있었다. 원래 만들어진 애플리케이션은 별다른 동작을 할 필요 없이 카메라 앞에 캔을 보여주면 자동으로 음성 안내를 해주는 방식이었다. 하지만 Safari 브라우저 자체에서 보안을 위해 소리를 자동으로 재생하는 것을 차단하였고, iOS에서는 자동 재생 및 javascript 코드와 호환성에 문제가 있었다. 이걸 해결하기 위해 기존에 자동으로 읽어주는 방식에서 핸드폰 화면 하단을 눌러주면 음료 음성 안내를 해주는 형식으로 변경하였다.
6. TalkBack 사용 편의성 개선
a. 애플리케이션 이름 수정
초기 애플리케이션 이름을 팀명인 YCSI으로 설정한 후 시각장애인 분들이 사용하시는 TalkBack으로 실행시켜보니 애플리케이션 이름을 "크시"라고 읽어주어 어떤 애플리케이션인지 직관적으로 알기에 어려움이 있었다. 결과적으로 원래 팀명의 원래 뜻인 You can see it으로 다시 바꾸게 되었다.
b. 텍스트 위치 조절
음료 인식 버튼을 도입하고 난 후 음료 인식 버튼을 TalkBack으로 접근하여 사용하는 과정을 가정하여 사용하니 일반 사용자의 편의에 맞춰 UI를 구성할 경우 오히려 TalkBack으로 접근할 때마다 같은 텍스트를 들어야 해 방해가 될 것이라는 생각이 들어 시연용 페이지와 구분하여 음료 인식 버튼을 최상단으로 옮긴 새로운 데모 페이지를 개발하게 되었다.
초기 인공지능 모델의 구상은 캔 부분을 contuor와 캔의 비율을 이용하여 openCV로 잘라오고, 이를 CNN을 이용하여 학습시켜 캔 음료의 종류를 판별할 수 있도록 만들고자 하였다. 그러나, openCV를 이용하여 캔의 이미지를 잘라오도록 하는 경우, 배경색과 캔의 색이 유사한 경우 명확하게 캔을 구분하여 잘라올 수 없는 문제가 있었다.
이 문제를 해결하기 위하여 openCV로 캔 음료의 이미지를 추출하는 대신, object detection AI를 활용하여 캔의 종류를 인식하는 방향으로 방법을 전환하게 되었다.
2. 학습에 맞는 모델 선정하기
처음에는 faster RCNN 모델을 활용하여 캔을 인식할 수 있도록 인공지능 모델을 알아보았지만, 스마트폰 카메라를 활용한 실시간 처리와 스마트폰의 성능의 한계로 인해 원활하게 사용할 수 없을 것이라는 결론에 도달하게 되었다. 2 stage object detection보다 1 stage object detection 모델을 사용하는 것이 장면 당 처리 시간이 훨씬 짧아 모바일 환경에서 활용이 더욱 유리할 것이라 생각하게 되어 faster RCNN 대신 1 stage object detection 모델을 사용하게 되었다.
3. 양질의 학습데이터
a. 한 장소에서 캔을 여러 면으로 돌려가며 한 캔 당 총 100장의 사진을 찍은 후, 이미지를 라벨링하여 학습시켰지만 카메라에 매우 가까이 보이는 것이 아니면 인식을 잘 하지 못하였고 그마저도 움직이면 인식을 잘 하지 못하였다.
b. 여러 시행착오와 공부를 한 결과 캔의 각도와 캔의 배경이 다양하게 찍힌 사진과 이미지가 ai가 학습하기 좋은 양질의 데이터라는 것을 알게 되었다. 이후 한 장소에서 여러 면, 여러 각도로 총 10장씩, 10개의 장소에서 사진을 찍었으며, 한 캔 당 총 100장의 학습 데이터를 모으게 되었다. 결과적으로 학습 모델은 이전과 비교도 할 수 없을 정도로 매우 좋은 성능을 보여주었다.
4. 인공지능 모델을 애플리케이션으로 이식
초기에는 android와 웹페이지를 각자 개발하였으나, android와 iOS 애플리케이션을 개발할 때 빠르게 개발을 할 수 있으며, 오픈소스로 코드를 공개했을 때 많은 사람들이 시각 장애인 분들을 위한 object detection 애플리케이션을 개발할 수 있는 platform으로써 활용할 수 있도록 하기 위해 웹페이지 개발에 집중하였다. 그 결과 javascript를 이용하여 학습된 모델을 웹페이지에서 사용할 수 있도록 개발을 진행하였고, 이후 webview를 이용하여 안드로이드 애플리케이션을 개발하게 되었다. iOS 앱은 개발중이며, 지금도 크롬과 Safari 브라우저로 접속하면 서비스를 이용할 수 있다.
5. iOS 운영체제, Safari 브라우저 등 호환성 이슈
초기 개발 환경 및 테스트는 안드로이드 및 크롬 브라우저, 네이버 브라우저에서 진행하였다. 하지만 여러 사용자를 고려하기 위해 iOS 및 Safari 브라우저에서 확인한 결과 캔이 인식되지만 음성 안내가 되지 않는 이슈가 있었다. 원래 만들어진 애플리케이션은 별다른 동작을 할 필요 없이 카메라 앞에 캔을 보여주면 자동으로 음성 안내를 해주는 방식이었다. 하지만 Safari 브라우저 자체에서 보안을 위해 소리를 자동으로 재생하는 것을 차단하였고, iOS에서는 자동 재생 및 javascript 코드와 호환성에 문제가 있었다. 이걸 해결하기 위해 기존에 자동으로 읽어주는 방식에서 핸드폰 화면 하단을 눌러주면 음료 음성 안내를 해주는 형식으로 변경하였다.
6. TalkBack 사용 편의성 개선
a. 애플리케이션 이름 수정
초기 애플리케이션 이름을 팀명인 YCSI으로 설정한 후 시각장애인 분들이 사용하시는 TalkBack으로 실행시켜보니 애플리케이션 이름을 "크시"라고 읽어주어 어떤 애플리케이션인지 직관적으로 알기에 어려움이 있었다. 결과적으로 원래 팀명의 원래 뜻인 You can see it으로 다시 바꾸게 되었다.
b. 텍스트 위치 조절
음료 인식 버튼을 도입하고 난 후 음료 인식 버튼을 TalkBack으로 접근하여 사용하는 과정을 가정하여 사용하니 일반 사용자의 편의에 맞춰 UI를 구성할 경우 오히려 TalkBack으로 접근할 때마다 같은 텍스트를 들어야 해 방해가 될 것이라는 생각이 들어 시연용 페이지와 구분하여 음료 인식 버튼을 최상단으로 옮긴 새로운 데모 페이지를 개발하게 되었다.
과제 해결 과정을 작성하여 파일을 올려 현황을 공유하세요.
기능 구현을 하는데 많은 시간을 써버려 저희가 직접 테스트 하였지만 앞으로 전문기관의 많은 조언을 받고 싶습니다.
현재 0명이 공감했습니다.
공감하기