Skip to content
/ Noti Public
forked from MinukLee1/Notichair

This app corrects your sitting posture and provides feedback in real time in conjunction with the app. A sensor of 31 cells detects your posture to get better life-wellness

Notifications You must be signed in to change notification settings

JuRyunn/Noti

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

102 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Notichair

์‹ค์‹œ๊ฐ„ ์ž์„ธ๋ถ„์„ ๋ฐ ๊ต์ • ์Šค๋งˆํŠธ์ฒด์–ด

๐Ÿ† ์ƒ๋ช…๋Œ€ํ•™๊ต PRIME ๊ฒฝ์ง„๋Œ€ํšŒ ์ˆ˜์ƒ ๐Ÿ†


์š”๊ตฌ์‚ฌํ•ญ

๋ฐฉ์„์„ผ์„œ1
31-cell sensor (mdxs-16-5610)

๋ชฉ์ฐจ

1. ์†Œ๊ฐœ

  • ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ ์†Œ๊ฐœ

2. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • ์‚ฌ์ „ ์„ค์ • ๋ฐ ํ™˜๊ฒฝ ๊ตฌ์ถ•

3. ๊ธฐ๋Šฅ

  • Sensors
  • App & Server

4. ๊ฒฐ๋ก 

  • ๊ฒฐ๋ก 

1. ์†Œ๊ฐœ

image

31๊ฐœ์˜ ์ฐฉ์„๊ตฌ์กฐ๋กœ ๋ฐฐ์—ด๋œ cell-sensor์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์ž์„ธ๋ถ„์„ ๋ฐ ๊ต์ •์„ ์ œ๊ณตํ•œ๋‹ค.

๋Œ€ํ•œ๋ฏผ๊ตญ ์„ฑ์ธ๊ธฐ์ค€ ํ•˜๋ฃจ ํ‰๊ท  ์˜์ž์— ์•‰์•„์„œ ๋ณด๋‚ด๋Š” ์‹œ๊ฐ„์ด 8.5์‹œ๊ฐ„, ์ด์™€ ๋”๋ถˆ์–ด ์ฝ”๋กœ๋‚˜์‚ฌํšŒ์— ๋งž๋ฌผ๋ ค ๋Š˜์–ด๋‚˜๋Š” ์žฌํƒ๊ทผ๋ฌด ๋ฐ ๋‹จ์ˆœ ์—ฌ๊ฐ€์ƒํ™œ ๋“ฑ ์šฐ๋ฆฌ์˜ ์ผ์ƒ์ƒํ™œ์€ ์˜์ž์™€ ๋”์šฑ ๊ฐ€๊นŒ์›Œ์ง€๋Š” ์ถ”์„ธ์ด๋‹ค.

์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ ์ฐฉ์„์ž์„ธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ธก์ •ํ•˜๊ณ  ๋ถ„์„ํ•ด์ฃผ์–ด ํ˜„๋Œ€์ธ๋“ค์˜ ์ฒ™์ถ”๊ฑด๊ฐ•์„ ๊ฐœ์„ ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค.



2. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

๋ฒ„์ „ ํ™•์ธ์‚ฌํ•ญ

  • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค 3.4.0 ์ด์ƒ์˜ ๋ฒ„์ „

Android Studio Download

  • API: 21์ด์ƒ
  • ํ•„์ˆ˜ ์กฐ๊ฑด
    minSdkVersion 18
    ext.kotlin_version = "1.5.0"

Firebase ์—ฐ๋™

Firebase์— ์ ‘์†ํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ์ดํ›„ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ์ž‘ํ•œ๋‹ค.

fireabase1

Firebase Authentication ์„ค์ •ํ•˜๊ธฐ


Google ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉ ํ•˜๋ฏ€๋กœ '๋””๋ฒ„๊ทธ ์„œ๋ช… ์ธ์ฆ์„œ SHA-1'์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

'SHA-1' ์ถ”์ถœ๋ฒ• : ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๋‚ด Gradle->Tasks->android->signInReport

image

๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•œ ๋’ค, ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ-> app ํด๋”์— ์ €์žฅํ•œ๋‹ค.

image

build.gradle (moudle :app )์— ์ž‘์„ฑํ•œ๋‹ค.

image image image

Android Studio์— Firebase ์ถ”๊ฐ€ ์™„๋ฃŒ

Firebase Authentication ์„ค์ •ํ•˜๊ธฐ ์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ๊ณผ , ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ , ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉ ํ•˜๋Š”๋ฐ, Authentication์˜ Sign-in method์˜ 3๊ฐ€์ง€ ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ•์„ ํ™œ์„ฑํ™” ์‹œํ‚จ๋‹ค. ์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ, ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ์€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์‚ฌ์ดํŠธ์—์„œ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ์€ ํŽ˜์ด์Šค๋ถ ๊ฐœ๋ฐœ์ž ์‚ฌ์ดํŠธ์— ์ ‘์†์„ ํ•ด์„œ ์—ฐ๊ฒฐ์‹œ์ผœ์•ผ ํ•œ๋‹ค.

ํŽ˜์ด์Šค๋ถ ์—ฐ๋™ํ•˜๊ธฐ

ํŽ˜์ด์Šค๋ถ ๊ฐœ๋ฐœ์ž ์‚ฌ์ดํŠธ ์ ‘์†ํ•ด์„œ ๋กœ๊ทธ์ธ์„ ํ•œ ๋’ค '์ƒˆ ์•ฑ ์ถ”๊ฐ€'๋ฅผ ํ•œ๋‹ค. ์ œํ’ˆ ์ถ”๊ฐ€์—์„œ ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ์„ ์„ ํƒํ•œ๋‹ค. ๋กœ๊ทธ์ธ ํ”Œ๋žซํผ ์„ ํƒ์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ํด๋ฆญํ•œ๋‹ค.


builde.gralde(Module:app)

implementation 'com.facebook.android: facebook-android-sdk:[4,5)')
์ปดํŒŒ์ผ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ตœ์‹  ๋ฒ„์ „์˜ SDK๋ฅผ ์ปดํŒŒ์ผํ•œ๋‹ค.



์ฃผ์š” ๊ธฐ์ˆ  ๋ฐ ๊ธฐ๋Šฅ ์„ค๋ช…

1. ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…

//๋กœ๊ทธ์ธ๋‹จ ์ด๋ฏธ์ง€

  • ๊ตฌ๊ธ€๊ณผ ํŽ˜์ด์Šค๋ถ ์—ฐ๋™์„ ํ†ตํ•œ ๋กœ๊ทธ์ธ
  • ์ด๋ฉ”์ผ์„ ํ†ตํ•œ ํšŒ์›๊ฐ€์ž…
  • Firebase ์—ฐ๋™

2. ๋ฉ”์ธํ™”๋ฉด

//์„ผ์„œ๋ทฐ๋‹จ ์ด๋ฏธ์ง€

  • ์‚ฌ์šฉ์ž์˜ ์ž์„ธ ๋ฐ ์ฐฉ์„ํ˜•ํƒœ์— ๋”ฐ๋ฅธ real-time data๋ฅผ 31๊ฐœ์˜ cell-sensor๋ฅผ ํ†ตํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ›์•„๋“ค์ด๊ณ  ์ด๋ฅผ ์••๋ ฅ๊ฐ’์— ๋”ฐ๋ผ ์ƒ‰์ƒ์˜ ๊ฐ€์‹œํ™”๋œ ํ˜•ํƒœ๋กœ ํ”ผ๋“œ๋ฐฑ์„ ์ค€๋‹ค.
  • ์‚ฌ์šฉ์ž์˜ ์ฐฉ์„๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ฐฉ์„ํ˜•ํƒœ๋ฅผ ํŒ๋‹จํ•˜์—ฌ ํ˜„์žฌ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•ด์ค€๋‹ค.
  • ์ฐฉ์„ํ˜•ํƒœ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์˜ ์ฐฉ์„ํŒจํ„ด์„ ๊ต์ •ํ• ์ˆ˜์žˆ๋„๋ก ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ”ผ๋“œ๋ฐฑ์„ ์คŒ์œผ๋กœ์„œ ์ฆ‰๊ฐ์ ์ธ ์ž์„ธ๊ต์ •ํšจ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ• ์ˆ˜์žˆ๋‹ค.

//์ฐฉ์„ฑ์ƒํƒœ์— ๋”ฐ๋ฅธ ๋ณ€ํ™” ์ด๋ฏธ์ง€
### 3. ๋งˆ์ดํŽ˜์ด์ง€
### 4. ์šด๋„์˜์ƒ

ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ

![๋ฐฉ์„์„ผ์„œ34](https://user-images.githubusercontent.com/74412438/148797607-0f518d6c-9bb3-47d4-9348-aca511603b3c.png)

์˜ˆ์‹œ

image


2. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

3. ๊ธฐ๋Šฅ

๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ• - Lableme

image

ํ•™์Šต ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€๋ฅผ Labelme์—์„œ Class๋งˆ๋‹ค ์˜์—ญ์„ ๋‚˜๋ˆ„์–ด Label์„ ์ง€์ •ํ•ด์ค€๋‹ค. Class๋Š” Background, Roadway, Sidewalk, Crosswalk๋กœ ์ด 4๊ฐœ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.




๋„๋กœ ๊ตฌ๋ถ„ - Semantic Segmentation

์–ด๋ฆฐ์ด์˜ ๊ตํ†ต์•ˆ์ „์˜์‹ ํ–ฅ์ƒ๊ณผ ๋ฌด๋‹จํšก๋‹จ์„ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Semantic Segmentation ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ FCN(Fully Convolutional Networks) ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

์นด๋ฉ”๋ผ ๋ชจ๋“ˆ๋กœ ์ •๋ฉด์„ ์ดฌ์˜ํ•˜์—ฌ ๋“ค์–ด์˜ค๋Š” Input data๋กœ Semantic Segmentation ๊ธฐ์ˆ ์„ ํ†ตํ•˜์—ฌ ๊ฐ ํ”ฝ์…€์˜ Class๋“ค์„ ์•Œ ์ˆ˜ ์žˆ๊ณ , ํŒ๋‹จ ์˜์—ญ์„ ์žก์•„ ํ•ด๋‹น ์˜์—ญ์— ๊ฐ€์žฅ ๋งŽ์ด ์žˆ๋Š” Class๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ณ„์‚ฐํ•˜์—ฌ ํ•ด๋‹น Class๋กœ ์–ด๋ฆฐ์ด๊ฐ€ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ๋„๋กœ์˜ ์œ ํ˜•์„ ํŒ๋‹จํ•œ๋‹ค.

์–ด๋ฆฐ์ด๊ฐ€ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ๋„๋กœ์˜ ์œ ํ˜•์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•œ ์˜์—ญ์€ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Input data์˜ ๊ฐ€๋กœ์™€ ๋†’์ด๋ฅผ ํฌ๊ฒŒ 5x5๋กœ ๋‚˜๋ˆ„์–ด (5, 3) ์œ„์น˜๋ฅผ ํŒ๋‹จ ์˜์—ญ์œผ๋กœ ์„ค์ •ํ•˜์˜€๋‹ค. Semantic Segmentation์„ ํ†ตํ•˜์—ฌ ์•Œ ์ˆ˜ ์žˆ๋Š” ํ”ฝ์…€ ๋‹น Class๋Š” ํ–‰๋ ฌ๋กœ ์ €์žฅ์ด ๋˜๊ณ , (5, 3) ๊ตฌ์—ญ ์•ˆ์— ํ–‰๋ ฌ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” Class ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋Š” Class๋กœ ์–ด๋ฆฐ์ด๊ฐ€ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ๊ณณ์˜ ๋„๋กœ ์œ ํ˜•์„ ํŒ๋‹จํ•œ๋‹ค.


๋„๋กœ์˜ ์œ ํ˜•์— ๋”ฐ๋ฅธ ์•Œ๋ฆผ

๋„๋กœ ์œ ํ˜• ์‚ฌ์ง„ ์„ค๋ช…
์ธ๋„ image ํŒ๋‹จ ์˜์—ญ์ด ์ธ๋„๋กœ ํŒ๋‹จ๋  ๊ฒฝ์šฐ ์–ด๋ฆฐ์ด๊ฐ€ ์ธ๋„ ์œ„์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉฐ ๋ณ„๋„์˜ ์•Œ๋ฆผ์ด ์šธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
ํšก๋‹จ๋ณด๋„ image ํŒ๋‹จ ์˜์—ญ์ด ํšก๋‹จ๋ณด๋„๋กœ ํŒ๋‹จ๋  ๊ฒฝ์šฐ ์–ด๋ฆฐ์ด๊ฐ€ ํšก๋‹จ๋ณด๋„ ์•ž์— ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉฐ ๋ณดํ˜ธ์ž์˜ ์Œ์„ฑ ์•Œ๋ฆผ( ์˜ˆ์‹œ: โ€œ00์•„ ์ดˆ๋ก๋ถˆ ์ผ ๋• ์–‘์˜†์„ ์‚ดํ”ผ๊ณ  ๋นจ๊ฐ„๋ถˆ์—๋Š” ๋ฉˆ์ถฐ!โ€ )์ด ์šธ๋ฆฐ๋‹ค.
๋„๋กœ image ํŒ๋‹จ ์˜์—ญ์ด ์ฐจ๋„๋กœ ํŒ๋‹จ๋  ๊ฒฝ์šฐ ์–ด๋ฆฐ์ด๊ฐ€ ์ฐจ๋„๋ฅผ ํ–ฅํ•ด์„œ ๋ณดํ–‰ํ•˜๊ณ  ์žˆ์–ด ์œ„ํ—˜ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉฐ ๋ณดํ˜ธ์ž์˜ ์Œ์„ฑ ์•Œ๋ฆผ(์˜ˆ์‹œ: โ€œ00์•„ ๋„๋กœ์—์„œ ๋›ฐ๋ฉด ์œ„ํ—˜ํ•ด ํšก๋‹จ๋ณด๋„๋กœ ๊ฑด๋„ˆโ€)์ด ์šธ๋ฆฐ๋‹ค.
๋ฌด๋‹จํšก๋‹จ์˜ ๊ฒฝ์šฐ ํŒ๋‹จ ์˜์—ญ์ด ์ฐจ๋„๋กœ ํŒ๋‹จ๋œ ํ›„ ๊ฐ€์†๋„ ์„ผ์„œ์˜ ๋ณ€ํ™”๊ฐ€ ์ผ์ •๋Ÿ‰ ๊ฐ์ง€๋˜๋ฉด ์–ด๋ฆฐ์ด๊ฐ€ ์ฐจ๋„ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฌด๋‹จํšก๋‹จ์„ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋˜์–ด ๋ณดํ˜ธ์ž์˜ ์Œ์„ฑ ์•Œ๋ฆผ(์˜ˆ์‹œ: โ€œ00์•„ ๋ฌด๋‹จํšก๋‹จ์€ ์•ˆ๋ผ! ํšก๋‹จ๋ณด๋„๋กœ ๊ฑด๋„ˆโ€)์ด ์šธ๋ฆฐ๋‹ค.





Application & Server

Application Repository
Server Repository

Application

๋ณดํ˜ธ์ž์šฉ App ๋ฉ”์ธํ™”๋ฉด๊ณผ ์•ˆ์‹ฌ ๊ตฌ์—ญ ๊ด€๋ฆฌ

๋ณดํ˜ธ์ž์šฉ App์˜ ๋ฉ”์ธํ™”๋ฉด(์ขŒ)๊ณผ ์•„์ด๊ฐ€ ์ด๋™ํ•œ ์˜์—ญ์— ๋Œ€ํ•ด ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์„ค์ •ํ•œ ํ™”๋ฉด(์šฐ)์ด๋‹ค. ๋ฉ”์ธํ™”๋ฉด์˜ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” ์•ˆ์‹ฌ ๊ตฌ์—ญ ๊ด€๋ฆฌ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์•„์ด์˜ ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์ถ”๊ฐ€, ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ์•„์ด์˜ ๋ฌด๋‹จํšก๋‹จ ๊ธฐ๋ก์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๋‹ค.


์•ˆ์‹ฌ ๊ตฌ์—ญ ์ดํƒˆ ๋ฐ ์ถ”๊ฐ€

์•„์ด๊ฐ€ ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์ดํƒˆํ–ˆ์„ ๊ฒฝ์šฐ ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์ถ”๊ฐ€, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด๋‹ค. ์•„์ด๊ฐ€ ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์ดํƒˆํ•˜๋ฉด ๋ณดํ˜ธ์ž์šฉ App์„ ํ†ตํ•˜์—ฌ ๋ณดํ˜ธ์ž์—๊ฒŒ ์•Œ๋ฆผ์ด ๊ฐ€๊ณ , ์ดํƒˆํ•œ ๊ฒฝ๋กœ๊ฐ€ ๋นจ๊ฐ„์ƒ‰ ์„ ์œผ๋กœ ํ‘œ์‹œ๊ฐ€ ๋œ๋‹ค. ์ด ๊ฒฝ๋กœ๋ฅผ ์•ˆ์‹ฌ ๊ตฌ์—ญ์œผ๋กœ ์ถ”๊ฐ€๋ฅผ ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ฌด๋‹จํšก๋‹จ ๊ธฐ๋ก ์—ด๋žŒ & ์ƒํ™ฉ๋ณ„ ๋ณดํ˜ธ์ž ์Œ์„ฑ ์•Œ๋ฆผ ๋…น์Œ

์•„์ด์˜ ๋ฌด๋‹จํšก๋‹จ ๊ธฐ๋ก์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด๋‹ค. ์•„์ด๊ฐ€ ๋ฌด๋‹จํšก๋‹จ์„ ํ•  ์‹œ, ๊ทธ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์„œ๋ฒ„์— ์ €์žฅ๋˜๊ณ  ๋ณดํ˜ธ์ž์šฉ App์—์„œ ๋ณดํ˜ธ์ž๊ฐ€ ๋ฌด๋‹จํšก๋‹จ ์œ„์น˜์™€ ๋‹น์‹œ ์‹œ๊ฐ„๋Œ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€์—์„œ ์šธ๋ฆฌ๊ฒŒ ๋  ์•Œ๋ฆผ์„ ๋…น์Œํ•˜๋Š” ํ™”๋ฉด์ด๋‹ค. ์ฐจ๋„์ผ ๋•Œ, ํšก๋‹จ๋ณด๋„์ผ ๋•Œ, ๋ฌด๋‹จํšก๋‹จํ•  ๋•Œ๋กœ ์„ธ ๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๋ณดํ˜ธ์ž์šฉ App์—์„œ ์•Œ๋ฆผ์„ ๋…น์Œํ•˜๋ฉด ์„œ๋ฒ„์— ๋…น์Œ ํŒŒ์ผ์ด ์ €์žฅ๋˜๊ณ  ์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€์—์„œ ๋ณดํ˜ธ์ž ์Œ์„ฑ ์•Œ๋ฆผ์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.



Server

WAS ์„œ๋ฒ„ ๊ตฌ์กฐ

์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€๋กœ HTTP ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์›น ์„œ๋ฒ„๋Š” Nginx๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€์—์„œ ์‹ค์‹œ๊ฐ„ ์œ„์น˜ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— REST ๋ฐฉ์‹์˜ ์„œ๋ฒ„๋ฅผ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ Django restframework๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋ฏธ๋“ค์›จ์–ด๋กœ๋Š” Nginx์™€ Django์˜ ํ˜ธํ™˜์„ฑ์ด ๋†’์€ Gunicorn WSGI๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. Gunicorn์€ Nginx์™€ ํ•จ๊ป˜ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ ๊ตฌ์„ฑ์œผ๋กœ ๋ฐฐํฌ๋˜๋ฉฐ Nginx์™€ Django framework์˜ ์‚ฌ์ด์—์„œ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ „๋‹ฌํ•œ๋‹ค.


Server DB Table

์„œ๋ฒ„์˜ DB(Data Base)๋Š” MySQL DB๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์„œ๋ฒ„์˜ DB Table์€ ์œ„ <๊ทธ๋ฆผ 10>๊ณผ ๊ฐ™๋‹ค. DB์—๋Š” ์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€ ๊ตฌ๋™์„ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” users table์— ์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€์˜ ์ผ๋ จ๋ฒˆํ˜ธ, ์‚ฌ์šฉ์ž ๊ณ ์œ  ID ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ์ €์žฅ๋œ ์‚ฌ์šฉ์ž ์ •๋ณด๋Š” Application์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ธ์ฆ ์ ˆ์ฐจ์— ์‚ฌ์šฉ๋œ๋‹ค. voicefile table์€ ๋ณดํ˜ธ์ž๊ฐ€ Application์—์„œ ์ƒํ™ฉ๋ณ„ ์•Œ๋ฆผ์„ ๋…น์Œํ•œ ํŒŒ์ผ์ด ์ €์žฅ๋œ๋‹ค. gpsroute, jaywalking, newroute table์˜ ๊ฒฝ์šฐ ์–ด๋ฆฐ์ด ๋ณดํ–‰ ์•ˆ์ „ ํ™•๋ณด์™€ ์‹ค์ข… ์‚ฌ๊ณ ๋ฅผ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด์„œ GPS ์ •๋ณด ์ €์žฅ์˜ ๋ชฉ์ ์œผ๋กœ ํ™œ์šฉ๋œ๋‹ค.


GPS์ •๋ณด ๋ถ„์„ ๋ฐ ์•ˆ์‹ฌ ๊ตฌ์—ญ ์ดํƒˆ ๊ฐ์ง€

์•ˆ์‹ฌ๊ตฌ์—ญ PolyLine ์ƒ์„ฑ


์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ GPS ์ •๋ณด๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค. ์„œ๋ฒ„๋กœ ์ „์†ก๋œ GPS ์ •๋ณด๋Š” ์•ˆ์‹ฌ ๊ตฌ์—ญ์ด ์ƒ์„ฑ๋˜์–ด ์žˆ์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ์ดˆ๊ธฐ ์•ˆ์‹ฌ ๊ตฌ์—ญ ์„ค์ •์— ํ•„์š”ํ•จ์œผ๋กœ ํ•ด๋‹น GPS ์ •๋ณด๋ฅผ ๋ณ„๋„์˜ DB์— ์ €์žฅํ•œ๋‹ค.

์•ˆ์‹ฌ ๊ตฌ์—ญ์€ ์ƒ์„ฑ ์‹œ์— ๋ณ„๋„๋กœ ์ €์žฅ๋œ GPS ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ค‘๋ณต๋˜๋Š” ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ œ๊ฑฐํ•œ ํ›„์— PolyLine ๊ฐ์ฒด๋กœ ์ €์žฅํ•œ๋‹ค. PolyLine์œผ๋กœ ์ €์žฅ๋œ ์•ˆ์‹ฌ ๊ตฌ์—ญ์€ ๋ณดํ˜ธ์ž์šฉ Application์—์„œ ์‹œ๊ฐํ™”ํ•˜์—ฌ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค.


Ray Casting ์•Œ๊ณ ๋ฆฌ์ฆ˜


์•ˆ์‹ฌ ๊ตฌ์—ญ ์ดํƒˆ ๊ฐ์ง€์˜ ๊ฒฝ์šฐ ์ €์žฅ๋œ ์•ˆ์‹ฌ ๊ตฌ์—ญ PolyLine๊ฐ์ฒด๋ฅผ ์ผ์ • ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Polygon๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์šฐ์„  ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ดํ›„ ์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€์˜ ์‹ค์‹œ๊ฐ„ GPS ์ •๋ณด๊ฐ€ ์„œ๋ฒ„๋กœ ๋“ค์–ด์˜ค๋ฉด Ray Casting ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ต์ฐจ์ ์˜ ์ˆ˜๊ฐ€ ํ™€์ˆ˜ ๊ฐœ์ผ ๋•Œ ํ•ด๋‹น GPS ์ •๋ณด๊ฐ€ ์•ˆ์‹ฌ ๊ตฌ์—ญ ๋‚ด๋ถ€์— ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ Safe State๋ฅผ True๋กœ, ๊ต์ฐจ์ ์˜ ์ˆ˜๊ฐ€ 0 ๋˜๋Š” ์ง์ˆ˜ ๊ฐœ์ผ ๋•Œ ์™ธ๋ถ€์— ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ False๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์•ˆ์‹ฌ ๊ตฌ์—ญ ์ดํƒˆ์„ ๊ฐ์ง€ํ•œ๋‹ค. ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์ดํƒˆํ•˜์˜€์„ ๊ฒฝ์šฐ ์ดํƒˆํ•˜๋Š” ์ง€์ ๋ถ€ํ„ฐ GPS ์ •๋ณด๋ฅผ DB์— ์ €์žฅํ•œ๋‹ค. ์ดํ›„ ์ดํƒˆํ•œ GPS ์ •๋ณด์— ๋Œ€ํ•ด์„œ ๊ธฐ์กด ์•ˆ์‹ฌ ๊ตฌ์—ญ์— ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ถ”๊ฐ€์˜ ๊ฒฝ์šฐ ๊ธฐ์กด ์•ˆ์‹ฌ ๊ตฌ์—ญ์˜ PolyLine๊ฐ์ฒด์— ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ์ง€์ ์„ ์ฐพ์€ ํ›„ ์•ˆ์‹ฌ ๊ตฌ์—ญ ์ƒ์„ฑ๊ณผ ๋™์ผํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ๊ฐฑ์‹ ํ•œ๋‹ค.


Sensors

Accelerometer_ADXL345
GPS_NEO-7m


4. ๊ฒฐ๋ก 

์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€๋Š” Jetson nano์— ์นด๋ฉ”๋ผ์™€ GPS ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋ฆฐ์ด์˜ ์‹œ์•ผ์—์„œ ๋„๋กœ ์œ ํ˜• ํŒ๋ณ„์— ๋”ฐ๋ฅธ ์•Œ๋ฆผ ๋ฐ ์•ˆ์‹ฌ ๊ตฌ์—ญ ์ƒ์„ฑ๊ณผ ์ดํƒˆ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

Semantic Segmentation์„ ํ†ตํ•ด ๋„๋กœ์˜ ์œ ํ˜•์„ ๊ตฌ๋ถ„ํ•˜๊ณ  ์–ด๋ฆฐ์ด์—๊ฒŒ ๋„๋กœ์˜ ์œ„ํ—˜์„ฑ์„ ์‚ฌ์ „์— ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์œผ๋ฉฐ, ์–ด๋ฆฐ์ด์˜ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” GPS ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์•ˆ์‹ฌ ๊ตฌ์—ญ์„ ์Šค์Šค๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ดํƒˆ์„ ๊ฐ์ง€ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. ๋ณดํ˜ธ์ž์šฉ App๊ณผ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์–ด๋ฆฐ์ด ์Šค๋งˆํŠธ ๋ฐฐ์ง€์™€ ํ†ต์‹ ํ•˜๋ฉฐ ๊ฐ์ข… ์•Œ๋ฆผ์— ๋Œ€ํ•œ ๋ณดํ˜ธ์ž์˜ ๋ชฉ์†Œ๋ฆฌ ๋…น์Œ๊ณผ ์ดํƒˆ ์‹œ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค.

์‹คํ—˜์„ ํ†ตํ•ด ์ œ์•ˆ ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ํ™•์ธํ•˜์˜€๊ณ  ์–ด๋ฆฐ์ด ๋ณดํ–‰ ์•ˆ์ „ ๋ฐ ์•ˆ์‹ฌ ๊ตฌ์—ญ ์ดํƒˆ ๊ฐ์ง€๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์˜€๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์–ด๋ฆฐ์ด ์‚ฌ๊ณ  ์˜ˆ๋ฐฉ์„ ์œ„ํ•œ ์‹œ์Šคํ…œ์œผ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.

๋” ๋งŽ์€ ์˜์ƒ ๋ฐ์ดํ„ฐ ์…‹์„ ๊ตฌ์ถ•ํ•˜์—ฌ Semantic Segmentation ์ •ํ™•๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ์ง์ ‘์ ์œผ๋กœ ๋ฌด๋‹จํšก๋‹จ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๊ณผ ์–ด๋ฆฐ์ด์˜ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ •ํ•˜์—ฌ ์ด์ƒ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์œ„ํ—˜์„ฑ์„ ์‚ฌ์ „์— ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์—ฐ๊ตฌ๋ฅผ ์ง€์†์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์˜ˆ์ •์ด๋‹ค.

About

This app corrects your sitting posture and provides feedback in real time in conjunction with the app. A sensor of 31 cells detects your posture to get better life-wellness

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 78.0%
  • Kotlin 22.0%