🌱 최신 토이 프로젝트

닉네임 아맞지아맞지
마찌의 일상생활 소리 분류 및 알림 앱

마찌의 일상생활 소리 분류 및 알림 앱

소리를 보다 Soundee 청각 장애인을 위한 딥러닝을 이용한 일상생활 소리 분류 및 알림 애플리케이션 > 💻 2020 IT Media Engineering CapstoneDesign Project 👋 Introduction 기획의도 사물 인터넷이 활성화되어 생활에 많은 부분들이 편리해졌지만, 청각장애인은 이 편리함에 소외된 것이 현실이다. 소리를 듣지 못하는 농인들은 냉장고를 오래 열어놨을 시 발생하는 경보음, 잊어버리고 끄지 못한 드라이기, 물소리 등의 소리를 인지하지 못한다. 농인에게도 이를 감지하고 인식할 수 있는 시스템이 필요하다. 이를 해결하기 위해 본 프로젝트는 가정에서 발생하는 소리를 인지하여 분류하여 현재 발생한 소리에 대한 정보를 알려주며 소리 정보에 대한 통계 서비스를 제공하는 애플리케이션을 기획하였다. 이를 통해 농인이 인지하지 못하는 위험과 낭비를 미리 예방하여, 농인에게 좀 더 안전하고 편리한 생활을 제공하고자 한다. 작품소개 무지향성 마이크를 통해 일상 소리를 감지한다. PC에 연결한 마이크로 수집한 음향 데이터를 서버에 송신하고, 서버는 수신한 소리를 딥러닝을 기반으로 한 음향 예측 알고리즘을 통해 예측 결과를 안드로이드 요청에 따라 기기에 송신한다. 안드로이드 기기는 수신한 데이터를 푸시알림과 통계 등 다양한 방법으로 제공하여 청각장애인을 위한 서비스를 제공한다. 본 프로젝트로 사회가 생각해보지 못한 청각장애인의 일상생활의 불편함에 대한 문제를 제기하여 이에 대한 관심과 해결방안의 마련을 도모한다. 더불어 앞으로의 4차 산업 기술의 발전이 비장애인의 편리함뿐만이 아닌, 장애인의 접근성을 고려해야한다는 사회적 인식을 확산시키는데 도움이 될 것이라 예상한다. 🧱 Server Architecture ✔️ Android - Server soundee 프로젝트 구조 최종 003 ✔️ PC - Server - Android for Real-time Sound Classification soundee 프로젝트 구조 최종 002 녹음 프로그램 Soundee Recorder와 어플리케이션을 동시에 실행 시킬 때, 어플리케이션에서는 5초 마다 서버에 요청을 보낸다. 서버는 요청받은 시간부터 5초 전까지의 데이터를 조회하여 데이터가 있는 경우, 현재 소리가 추론하는 class에 대하여 유의미한 소리임을 판단한다. 데이터가 없는 경우, 현재 소리가 추론하는 class에 대하여 무의미한 소리임을 나타낸다. 이에 어플리케이션에서는 실시간으로 나는 소리 class를 파악할 수 있다. 클라이언트는 해당 소리를 받아 class 별로 팝업 알림을 띄워 사용자에게 소리를 알려준다. Soundee Recorder와 어플리케이션 각각 5초 단위로 데이터 삽입과 조회가 이루어지기 때문에 실시간으로 발생하는 소리 정보를 얻어낼 수 있다. 🗄 Table Doc Sound는 녹음 프로그램에서 얻은 현재 소리에 대한 인덱스, 소리 종류, 발생 시각, 소리에 대한 사용자 정보에 대한 데이터베이스 테이블 구성이다. Sound_Class는 소리 종류에 대한 인덱스, 소리 종류명에 대한 데이터베이스 테이블 구성이다. User는 사용자에 대한 인덱스, 이메일, 비밀번호, 솔트 값, 이름에 대한 데이터베이스 테이블 구성이다. 🔖 ERD (Entity-Relationship Diagram) image 📃 API Doc WIKI 🧲 Dependencies "dependencies": { "clean-css": "^4.2.3", "constantinople": "^4.0.1", "cookie-parser": "~1.4.4", "crypto": "^1.0.1", "debug": "~2.6.9", "dotenv": "^8.2.0", "express": "~4.16.1", "express-session": "^1.17.1", "http-errors": "~1.6.3", "jade": "~1.11.0", "jsonwebtoken": "^8.5.1", "morgan": "~1.9.1", "nodemailer": "^6.4.11", "passport": "^0.4.1", "passport-jwt": "^4.0.0", "passport-local": "^1.0.0", "promise-mysql": "^4.1.3", "rand-token": "^1.0.1" }

닉네임 아맞지아맞지
플랭크 어플 클론코딩

플랭크 어플 클론코딩

Frank_application 2019 모바일 프로그래밍 기말 프로젝트 : 플랭크 어플따라하기 기존 어플과 비교 activity_intro image activity_main image 메인화면 기획 인트로 화면이 넘어가고 운동 계획을 선택하면 나오는 화면이 메인이 되게 하도록 기획하였다. 메뉴버튼을 만들어서 운동계획, 보고서, 계획 선택 등등 다른 기능을 가진 화면으로 전환하기 쉽게 만들고자 하였다. 구현 기획한 대로 흰 박스로 표시해 놓은 메뉴 버튼 누르면 네비게이션 드로어를 구현해 메뉴가 보이도록 하였다. activitymain에서 appbar를 include하고 appbar에서 화면 상단에는 toolbar를 띄우고 contentmain은 fragment로 구현하여 메뉴를 누를 때마다 content_main이 바뀌도록 하였다. 초기 화면은 기획한 것 대로 [운동계획]으로 한다. 메뉴의 레이아웃은 activitymaindrawer에서 구현하였다. 네비바의 헤더는 navheadermain에서 구현하였다. 네비게이션뷰에서 app:menu=“@menu/activitymaindrawer”를 통해 메뉴의 레이아웃을 불러온다. 네비게이션 드로어인 메뉴에서 각 항목(운동 계획, 보고서, 계획 선택 등)을 클릭 시 각 항목에 해당하는 fragment로 화면이 바뀐다. content_main image image image 메뉴 각 항목 구현 구현 기획한 대로 메뉴에서 각 항목을 누를 시 바뀌는 화면을 기획하였다. Fragment를 사용해서 메인에서 fragment 부분이 바뀌도록 하였다. 운동계획 (뒷 부분에서 자세히 설명) 보고서 총 운동 횟수, 소비한 칼로리, 운동한 시간을 볼 수 있게 텍스트 뷰를 설정하였다. 라인차트로 나타낸 체중 그래프는 MpAndroidChart를 implement해서 구현하였다. 화면을 실행하면 그래프가 움직이면서 나타나는 애니메이션을 추가하였다. 계획선택 초급,중급, 고급 계획들 중 하나를 선택하여 ‘시작’버튼을 누르면 선택한 레벨의 운동계획 화면으로 넘어간다. 스크롤 뷰로 초급,중급,고급 레벨을 담아 스크롤로 해서 볼 수 있게 구현하였다. 언어설정 영어/한국어 항목을 만들었다. 알람 알람을 끄고 켜는 switc를 만들고 ‘+추가’ 버튼을 구현하였다. 설정 기획한 설정 화면과 항목을 비슷하게 구현하였다. Preferencescreen 레이아웃을 사용하여서 구현하였다. 진행 재설정 현재까지 운동하면서 설정해 놓았던 레벨이나 일자를 리셋 하는 화면. ‘예‘,’아니요‘ 버튼을 구현하였다. Level 간 이동 / fragment_level1,2,3 image image ‘’ 버튼 클릭 시 구현 기존의 플랭크 어플 처럼 좌 우 표시의 버튼을 클릭했을 때 전 단계, 혹은 다음 단계 레벨의 화면으로 이동하도록 하였다. 1일째부터 30일째 버튼을 구현하였고 스크롤 뷰로 내려서 30일째 버튼까지 볼 수 있도록 하였다. ()일째 버튼을 누르면 MainActivity에서 LevelMainActivity로 새로운 액티비티가 열리면서 해당 날짜의 운동 루틴을 보여주도록 하였다. 화면의 이미지 밑의 회색 줄(노란 박스)은 몇일 째 까지 했는지 진행을 알려주는 프로그레스 바를 구현하였다. 상단의 이미지 부분은 부모 레이아웃으로 ReleativeLayout을 사용해서 이미지 위에 텍스트와 이미지 버튼을 구현 하였다. level()main image level()start image image level()finish image

Sejin Kwon | Jieun Song | YeongSang Jo

Minyoung Park | Jihye Shin | Eunsori Park

© 2021 nolto