반응형

Career/Barrier Free Application Development 6

총 정리 : 시작은 도전, 마무리는 성장

참여 참여의 시작은 친구의 권유였습니다. 당시 저는 프로그래밍을 시작한지 6개월 정도였고, 어떻게 해서든지 실력을 향상시키고 싶었습니다. 그런데 마침 친구가 어플 개발하는 대회가 있다면서 저에게 의견을 물었습니다. 어플 개발은 전혀 생각이 없었지만 machine learning을 활용한 object detection을 이용할 수 있다고 해서 얼른 참여했습니다. 또한, 사회적 배려 대상자들에게 유용한 어플리케이션을 제공할 수 있다고 생각했습니다. 나머지 한 명은 다른 공모전에 만나게 되었고 친해졌다고 합니다. 이렇게 저를 포함하여 3명이서 대회에 참가했습니다. 신청 수십 팀 중에서 15팀을 선출했습니다. 서류로 idea와 계획서를 제출하는 방식이었습니다. 저희는 시각장애인 보행에 도움이 되는 어플을 개발할..

기능: 근접 알림 센서 (4단계)

근접 알림 센서의 필요성 초기 설계에서 외부 무선 카메라와 핸드폰을 연결하기로 했습니다. 그래서 사용자가 보행할 때 핸드폰은 주머니에 넣고 카메라를 목걸이 또는 브로치 형태로 외부에 놓기로 했습니다. 그런데 구매한 여러 무선 카메라들이 각 회사마다 독립적인 모듈을 사용하여서 저희 어플로 이용할 수 없게 되었습니다. 그래서 근접 알림 센서를 도입했습니다. 근접 알림 센서로 근방 10미터의 볼라드 개수를 사용자에게 알려주면 핸드폰을 꺼내어서 카메라로 볼라드를 인식하는 과정으로 바꾸었습니다. 나중에 알게 된 사실이 있습니다. Raspberry PI camera 를 이용할 수 있다는 정보였습니다. 그러나, Raspberry PI Camera에 설정하고, 핸드폰과 통신하고, 어플에 탑재해야되는 많은 과정이 필요해..

기능: 낙상 감지(fall detector) - 낙상 알고리즘 (4단계)

낙상 감지 기능의 필요성 낙상 감지 기능이 필요했던 이유는 다음과 같습니다. 시각장애인분들이 거리에서 볼라드와 같은 물체에 부딪혀서 넘어지는 경우가 있고, 거리의 턱이나 무엇에 걸려서 넘어지는 경우가 있다고 합니다. 일반인의 경우 대처가 쉬울 수 있지만 시각장애인분들은 그렇지 못하는 경우가 있다고 합니다. 따라서 조금 더 편의를 제공하기 위해서 낙상 감지 기능을 추가하기로 했습니다. 낙상 감지 알고리즘 기계공학을 공부한 경험이 없고 Java로 수학 알고리즘을 작성해본 경험이 전무했습니다. 그래서 제가 손수 제작하기에는 엄청난 난이도가 있다는 것을 알고 검색을 한 결과 아래 사이트를 발견했습니다. 제가 원하는 소스코드의 90% 이상을 구현해 주셨고 공유해 놓으셨습니다. 저의 블로그에 그대로 사용하는 것은 ..

기능: 볼라드 인식하기 (Bollard Detector) - 인식 정확도 향상(3단계)

이미지 약 20,000장을 사용하여 Tiny-YOLO를 학습시켰습니다. 하지만 기대했던 만큼 성능이 나오지 않았습니다. 딥러닝에서 데이터의 양이 많으면 많을수록 성능이 올라가는 것은 알려진 사실입니다. 원인을 파악하기 위해서 학습된 Tiny-YOLO 모델이 어떤 물체를 볼라드라고 탐지하는 분류했습니다. 실제 볼라드는 볼라드라고 잘 탐지했습니다. 하지만 카메라 화면에 보이는 큰 사각형, 자동차 범퍼, 문 등을 볼라드라고 탐지하는 것을 알게 되었습니다. (아쉽게도, 이 당시 촬영한 영상과 사진이 없습니다.) 그래서 Dataset을 들여다 보니, Dataset에 문제가 있는 것으로 추정했습니다. 15,000장은 인터넷에서 크롤링한 dataset이었는데, 사진 속 볼라드는 카메라로 확대해서 촬영됬거나 근접 촬영..

기능: 볼라드 탐지하기 (Bollard Detector) - Tiny YOLO 앱에 탑재하기(2단계)

이 포스트는 YOLO 포스트와 이어지는 부분입니다. 이전 포스트에서 YOLO를 어떻게 학습시키는 알아보았습니다. 그리고 Tiny-YOLO로 학습을 시키시면, 결과물로 tiny-yolo-obj_final.weights 파일을 얻을 수 있습니다. 이 파일을 그대로 어플에 탑재할 수 없습니다. protobuff file(.pb) 형식으로 바꿔주어야 합니다. Darkflow 프로그램을 이용해서 weights를 pb로 변형시키겠습니다. 여기서 다운로드 합니다. Windows에서 cmd를 실행합니다. darkflow파일로 이동합니다. python flow --model cfg/tiny-yolo-obj.cfg --load weights/tiny-yolo-obj_final.weights --savepb 를 입력합니다...

베리어 프리 앱 개발 콘테스트 (1단계)

배리어프리 앱 개발 콘테스트는 현대오토에버와 서울사회복지공동모금회의 지원, 교육부 국립특수교육원의 후원으로 대학(원)생들이 사회취약계층의 실생활 편의 지원을 위한 앱을 개발하여 보급하도록 지원하는 사회공헌사업입니다. 제가 참여했던 공모 내용은 링크로 달아 놓겠습니다. http://www.grlight.kr/Board/Notice/BoardListView.aspx?PageNo=1&Search=&SearchString=&Seq=203 [모집공고] 현대오토에버 배리어프리 앱 개발 콘테스트 공고 배리어프리 앱 개발 콘테스트 공고배리어프리 앱 개발 콘테스트는 현대오토에버와 서울사회복지공동모금회의 지원,교육부 국립특수교육원의 후원으로 대학(원)생들이 사회취약계층의 실생활 편의 지원을 위한 앱을개발하여 보급하도록 지..

반응형