Skip to content

pcrmcw0486/dataflood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

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

Repository files navigation

Data Flood

๋ฐ์ดํ„ฐ์ฒญ๋…„ ์บ ํผ์Šค ๋ถ€์‚ฐ๋Œ€ํ•™๊ต ํ”„๋กœ์ ํŠธ
2020๋…„ 07์›” ๋ฐœ์ƒํ•œ ์ดˆ๋Ÿ‰ ์ œ1์ง€ํ•˜์ฐจ๋„ ์นจ์ˆ˜์‚ฌ๊ฑด์œผ๋กœ ์ธ๋ช…ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค
์ด์— Data Flood ํŒ€์€ ์นจ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๋‹ค.
์˜ˆ์ธก ๋ฐฉ๋ฒ•์€ ๊ฑฐ์‹œ์ ์œผ๋กœ ๊ฐ•์ˆ˜๋Ÿ‰, ์ง€ํ˜• ์ •๋ณด, ํŽŒํ”„ ๋ฐ ๋ถˆํˆฌ์ˆ˜๋ฉด, ์นจ์ˆ˜ ์ด๋ ฅ์„ ํ†ตํ•ด
์บ ํผ์Šค ๊ธฐ๊ฐ„ ๋™์•ˆ ํ•™์Šตํ•œ ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ†ตํ•ด ์˜ˆ์ธกํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๊ณ 
๋ฏธ์‹œ์ ์œผ๋กœ cctv ์˜์ƒ์„ ํ•™์Šต์‹œ์ผœ ํ™•์‹คํ•˜๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์˜ˆ์ธกํ•˜๊ณ ์ž ํ•˜์˜€๋‹ค
๋‘ ๋ฐฉ๋ฒ•์€ ์„œ๋กœ ์ƒํ˜ธ๋ณด์™„์ ์œผ๋กœ ์นจ์ˆ˜ ์˜ˆ๋ฐฉ์— ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •๊ณผ ํ•™์Šต ๋ฐฉ๋ฒ• ๊ทธ๋ฆฌ๊ณ  ์›น(django)์— ๋Œ€ํ•ด ์„ค๋ช….
์‹คํ–‰๋ฐฉ๋ฒ•์€ 7.์‹คํ–‰๋ฐฉ๋ฒ•์ฐธ์กฐ


python 3.7.6 ๊ฐ€์ƒํ™˜๊ฒฝ virtualenv 20.0.31

https://github.com/pcrmcw0486/dataflood

๋ชฉ์ฐจ

  1. ๋””๋ ‰ํ† ๋ฆฌ ์„ค๋ช…
  2. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
  3. ์ „์ฒ˜๋ฆฌ ๊ณผ์ • ๋ฐ ๋ฐ์ดํ„ฐ flow
  4. Machine Learning
  5. ์˜์ƒ Machine Learning
  6. Django
  7. ์‹คํ–‰ ๋ฐฉ๋ฒ•

1. ๋””๋ ‰ํ† ๋ฆฌ ์„ค๋ช…

dataflood

โ”œโ”€Data : ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ์Œ
โ”‚ โ”œโ”€final_data : ์ตœ์ข…์ ์œผ๋กœ ์‚ฌ์šฉ ์šฉ๋„์— ๋”ฐ๋ผ์„œ ์‘์šฉ๋  ๋ฐ์ดํ„ฐ
โ”‚ โ”‚ โ”œโ”€DB : for Django
โ”‚ โ”‚ โ”œโ”€model : ์ถ”ํ›„ ๋ชจ๋ธ์ด ํ•„์š”ํ•  ์‹œ ์‚ฌ์šฉ
โ”‚ โ”‚ โ”‚ โ”œโ”€geo_model
โ”‚ โ”‚ โ”‚ โ””โ”€video_model
โ”‚ โ”‚ โ””โ”€training : ํ•™์Šต์— ์‚ฌ์šฉ ๋  ๋ฐ์ดํ„ฐ
โ”‚ โ”‚ โ”œโ”€cctv_data : ์˜์ƒ ํ•™์Šต ์šฉ ๋ฐ์ดํ„ฐ
โ”‚ โ”‚ โ”‚ โ”œโ”€flood
โ”‚ โ”‚ โ”‚ โ”œโ”€flood_clahe
โ”‚ โ”‚ โ”‚ โ”œโ”€no_flood_new
โ”‚ โ”‚ โ”‚ โ”œโ”€no_flood_new_clahe
โ”‚ โ”‚ โ”‚ โ””โ”€video
โ”‚ โ”‚ โ””โ”€geo_data : ๋จธ์‹  ๋Ÿฌ๋‹ ํ•™์Šต ์šฉ ๋ฐ์ดํ„ฐ
โ”‚ โ”œโ”€processing_data : ์ „์ฒ˜๋ฆฌ ๋˜๋ฉด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฐ์ดํ„ฐ
โ”‚ โ”‚ โ”œโ”€1st : 1์ฐจ ๊ฐ€๊ณต
โ”‚ โ”‚ โ””โ”€2nd : 2์ฐจ ๊ฐ€๊ณต( ์ถ”ํ›„ ํ™œ์šฉ๋˜์–ด final_data ๋˜๋Š” training_data๋กœ ๋ณ€๊ฒฝ)
โ”‚ โ””โ”€rawdata
โ”‚
โ”œโ”€ML_model_code : ๋ชจ๋ธ ํ•™์Šต ์ฝ”๋“œ
| |
โ”‚ โ”œโ”€Geo_Model
โ”‚ โ”‚
โ”‚ โ””โ”€Video_Model
โ”‚
โ”œโ”€Processing_code : ์ „์ฒ˜๋ฆฌ ๋ฐ django DB data ์ƒ์„ฑ์šฉ ์ฝ”๋“œ
โ”‚
โ””โ”€Web : Django ์ฝ”๋“œ

2. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

๋ชจ๋ธ ํ•™์Šต์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์€ ์•„๋ž˜์˜ ์ฃผ์†Œ์—์„œ ๋‹ค์šด ๋ฐ›์•„ ํŽธ์˜์ƒ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋“ค์€ Data/raw_data ์— ์ €์žฅํ•œ๋‹ค.

  1. ๋ถ€์‚ฐ ์ฝ”๋“œ https://www.code.go.kr/stdcode/regCodeL.do ์ ‘์† > ๋ถ€์‚ฐ ์กฐํšŒ ํ›„ ๋‹ค์šด๋กœ๋“œ ๋ฒ•์ •๋™์ฝ”๋“œ ์กฐํšŒ์ž๋ฃŒ.zip โ†’ busan_code_data.xls

Readme%20md%2099629370fe664b84b98f21911af9cff2/Untitled.png

  1. ์นจ์ˆ˜ํ”์ ์ •๋ณด : ํƒœํ’,ํ˜ธ์šฐ,ํ•ด์ผ ๋“ฑ์œผ๋กœ ์ธํ•œ ์นจ์ˆ˜๋ฐœ์ƒ์ผ์‹œ, ๋ฉด์  ๋“ฑ ์นจ์ˆ˜์ง€์—ญ์— ๋Œ€ํ•œ ์ •๋ณด https://www.data.go.kr/data/15048634/fileData.do FL_DATAUPMNG.csv

  2. ์นจ์ˆ˜ํ”์ ์ •๋ณด_๊ธฐ์ƒ๋ณ„ ๊ฐ•์šฐ๋Ÿ‰ FL_DATAUPMNG์— ์นจ์ˆ˜๋œ ์œ„์น˜์— ๋”ฐ๋ฅธ ์นจ์ˆ˜ ๊ธฐ๊ฐ„ ๋™์•ˆ์˜ ๊ธฐ์ƒ๋ณ„ ๊ฐ•์šฐ๋Ÿ‰(์‹œ๊ฐ„๋ณ„) https://www.data.go.kr/data/15048637/fileData.do FL_TIMERAIN.csv

  3. ๋ถˆํˆฌ์ˆ˜๋ฉด ๋น„์œจ(ํ™˜๊ฒฝ๋ถ€)) http://egis.me.go.kr/atlas/view.do?id=64&section=02&pageNo=13&keyword= ๋ถˆํˆฌ์ˆ˜๋ฉด ๋น„์œจ.xlsx(์ „๊ตญ ๋ฐ์ดํ„ฐ) โ†’ imper_ratio_data.xlsx

Readme%20md%2099629370fe664b84b98f21911af9cff2/Untitled%201.png

  1. API_xycode.csv https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15057682 ์ดˆ๋‹จ๊ธฐ์˜ˆ๋ณด์กฐํšŒ๋ฅผ ์‚ฌ์šฉ ๊ธฐ์ƒ์ฒญ18_๋™๋„ค์˜ˆ๋ณด ์กฐํšŒ์„œ๋น„์Šค_์˜คํ”ˆAPIํ™œ์šฉ๊ฐ€์ด๋“œ_๊ฒฉ์ž_์œ„๊ฒฝ๋„(20200706) โ†’ API_xycode.xlsx

  2. simulation_rain.csv ๋ชจ๋ธ ํ•™์Šต ์ดํ›„ ์ดˆ๋Ÿ‰ ์ œ1์ง€ํ•˜์ฐจ๋„ ์นจ์ˆ˜์‚ฌ๊ฑด ๋‹น์ผ์˜ ์นจ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋‚ ์งœ์˜ ๊ฐ•์ˆ˜๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ ๊ธฐ์ƒ์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์ˆ˜์ž‘์—…

3. ์ „์ฒ˜๋ฆฌ ๊ณผ์ • ๋ฐ ๋ฐ์ดํ„ฐ flow

์ „์ฒ˜๋ฆฌ ๊ณผ์ • ๋ฐ ๋ฐ์ดํ„ฐ flow์˜ ๊ฐœ์š”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค ์œ„์˜ Raw, Processing Data( 1st, 2nd ) , Final Data( DB, training, model ) ๊ฐ๊ฐ ํŒŒ์ผ๋ช…์ด๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์€ 1์„ ์ฐธ์กฐํ•œ๋‹ค.

Readme%20md%2099629370fe664b84b98f21911af9cff2/file.png

์ „์ฒ˜๋ฆฌ : Processing_code ๋‚ด๋ถ€ 1, 2, 3, 4 ์ฐธ์กฐ
ํ•™์Šต์ฝ”๋“œ : ML_model_code > GeoModel > Geo_ML ์ฐธ์กฐ
ใ€€ใ€€ใ€€ใ€€ ใ€€ใ€€ใ€€ใ€€ ใ€€ใ€€ใ€€ใ€€> VideoModel > video_ML ์ฐธ์กฐ
Django DB์šฉ ์ฝ”๋“œ : Processing_code ๋‚ด๋ถ€ for_Django_DB ์ฐธ์กฐ

์ „์ฒ˜๋ฆฌ ๊ณผ์ •


  • โ‘  ๋ถ€์‚ฐ๋ฐ์ดํ„ฐ ์ถ”์ถœ : ์ „๊ตญ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” FL_DATAUPMNG(์นจ์ˆ˜ํ”์ ์ด๋ ฅ) ์—์„œ ๋ถ€์‚ฐ๊ณผ ๊ด€๋ จ๋œ ์นจ์ˆ˜์ด๋ ฅ์„ ์ถ”์ถœ.
    ๋˜ํ•œ ์ด์™€ ๊ฐ™์ด ์ œ๊ณต๋˜๊ณ  ์žˆ๋Š” FL_TIMERAIN(์นจ์ˆ˜ ๋‹น์ผ ์‹œ๊ฐ„๋‹น ๊ฐ•์ˆ˜๋Ÿ‰)์—์„œ ๋ถ€์‚ฐ๊ณผ ๊ด€๋ จ๋œ ์นจ์ˆ˜์ด๋ ฅ์„ ์ถ”์ถœ
    ์ด ๋•Œ๋Š” ๊ณผ๊ฑฐ ๋ถ€์‚ฐ ์นจ์ˆ˜์ด๋ ฅ ๋ฐ์ดํ„ฐ์— ์กด์žฌํ•˜๋Š” ์‚ฌ๊ฑด๋ฒˆํ˜ธ(SEQ)์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ์ถ”์ถœ
    ์ด ํ›„ busan_code๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋„๋ก ์ œ์ž‘.
  • โ‘ก์นจ์ˆ˜๋ฐ์ดํ„ฐwith ๊ฐ•์ˆ˜ ๋ฐ ์ง€ํ˜• : ๋ฝ‘์•„๋‚ธ ๋ถ€์‚ฐ ๊ณผ๊ฑฐ ์นจ์ˆ˜ ์ด๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ๋ถ€ํ„ฐ QGIS๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ์ง€์—ญ์˜ ์ง€์—ญ์ •๋ณด(๊ณ ๋„ ๋ฐ ๊ฒฝ์‚ฌ๋„)๋ฅผ ์ƒ์„ฑ.
    ๋˜ํ•œ ๊ทธ ์ฃผ๋ณ€์˜ ๋น„์นจ์ˆ˜ ์ง€์—ญ ๋ฐ์ดํ„ฐ๋„ ๊ฐ™์ด ์ด์šฉ
    ๋‘ ์ง€์—ญ์ •๋ณด์™€ ๊ฐ•์ˆ˜๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์—ญ ์ด๋ฆ„์œผ๋กœ ๋ฌถ์–ด merge ํ•œ ํ›„ ๊ฐ๊ฐ์˜ ์ง€์—ญ์ •๋ณด(๊ณ ๋„ ๋ฐ ๊ฒฝ์‚ฌ๋„)์— ๋Œ€ํ•ด ๊ฐ€์ค‘์น˜ ๋ถ€์—ฌ
  • โ‘ข์ง€์—ญ์ •๋ณด(๊ตฌ) : ๋ถ€์‚ฐ ํ–‰์ •๊ตฌ์—ญ์„ '๊ตฌ' ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ๊ฐ์˜ ๊ตฌ์— ํ•ด๋‹นํ•˜๋Š” ์ง€์—ญ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌ
    ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ถˆํˆฌ์ˆ˜๋ฉด ๋น„์œจ, ๊ตฌ์˜ ๊ณผ๊ฑฐ ์นจ์ˆ˜ ๋นˆ๋„ ๋น„์œจ, pump ๋น„์œจ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.
  • โ‘ฃํ•™์Šต์šฉ๋ฐ์ดํ„ฐ๋งŒ๋“ค๊ธฐ : ํ•™์Šต์— ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ ํ•™์Šต์šฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. (labeling ์ž‘์—…)
    ์šฐ์„  busan_flood_data์™€ busan_Uflood_data์™€ sig_info_weight์ง€์—ญ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์นœ๋‹ค.
    busan_flood_data๋กœ ๋ถ€ํ„ฐ ์นจ์ˆ˜์‹ฌ ๊ฒฐ์ธก์น˜๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ๋ณด์™„ํ•˜๊ณ  busan_Uflood_data์˜ ์นจ์ˆ˜์‹ฌ์„ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค . ์ดํ›„ ์นจ์ˆ˜์‹ฌ 0.2m ์ด์ƒ์ด ์นจ์ˆ˜์ด๋ฏ€๋กœ
    ์นจ์ˆ˜์‹ฌ์— ๋”ฐ๋ผ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ์— FLOOD ์—ด์„ ์ถ”๊ฐ€ํ•˜์—ฌ 1, 0์œผ๋กœ ๋ผ๋ฒจ๋งํ•œ๋‹ค.
    ์ดํ›„ ํ•™์Šต์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋น„์œจ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์นจ์ˆ˜ ์‹œ์ ์„ ๊ธฐ์ค€ busan_flood_data๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์ •ํ•˜๊ณ ,
    ์ดํ›„ ๊ฐ™์€ ์‹œ๊ฐ„๋Œ€์—์„œ busan_Ulood_data๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์ •ํ•˜์—ฌ training_data๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

data flow


๊ฐ๊ฐ ์ฃผํ”ผํ„ฐํŒŒ์ผ์„ ํ†ตํ•ด ์ „์ฒ˜๋ฆฌ๊ณผ์ • ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋˜์–ด ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉฐ, (๋‹จ, QGIS๋กœ ์ƒ์„ฑ๋œ busan_flood_geo ์™€ busan_Uflood_geo, busan_rain_data_mod๋Š” ์ œ์™ธ) ๋งˆ์ง€๋ง‰์— ๋„์ฐฉํ•œ Final data ํด๋”์— ์‚ฌ์šฉ ์šฉ๋„์— ๋”ฐ๋ผ ์ €์žฅ๋œ๋‹ค.
training_data : ๋ชจ๋ธ ํ•™์Šต์„ ์œ„ํ•ด ์‚ฌ์šฉ
DB : ์ดํ›„ Web ํŒŒํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
model : Web๋˜๋Š” ์ถ”ํ›„ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๋ชจ๋ธ์„ ๋”ฐ๋กœ ์ €์žฅ

4. Machine Learning

4.1 Geo_ML

  1. ๋จผ์ € ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ชจ๋‘ import ํ•ด์คŒ
  2. ๋ถ„๋ฅ˜๋ชจ๋ธ์ด๊ธฐ์— ๋…๋ฆฝ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์™€ ์ข…์†๋ณ€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ๋‚˜๋ˆ ์คŒ.
  3. minmaxscaler ๋ฅผ ์ด์šฉํ•ด data๋ฅผ 0~1์˜ ๊ฐ’์œผ๋กœ ์ „ํ™˜ -> ๋ฐ์ดํ„ฐ ํŠน์„ฑ์ƒ ์ด์ƒ์น˜๋ฅผ ์ œ๊ฑฐํ•ด์„œ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋จ
  4. ์ฃผ์„ฑ๋ถ„ ๋ถ„์„(PCA)๋ฅผ ํ†ตํ•ด ์ค‘์š” ์ฃผ์„ฑ๋ถ„(4๊ฐœ)๋ฅผ ์„ ํƒ ํ•™์Šต์— ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด 4๊ฐœ์˜ ์ฐจ์›์œผ๋กœ ์ค„์ธ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ˜•
  5. ๋ฐ์ดํ„ฐ๋ฅผ train ๊ณผ test ๋กœ ๊ตฌ๋ถ„ 8 : 2 ๋น„์œจ๋กœ ๋‚˜๋ˆ ์คŒ
  6. bayesianoptimization ์„ ์ด์šฉํ•ด ์‚ฌ์šฉํ•  ๋ชจ๋ธ๋“ค์˜ ์ตœ์ ๊ฐ’์„ ํƒ์ƒ‰ํ•จ -> ์‚ฌ์šฉ๋œ ๋ชจ๋ธ KNN, SVM, DT, RF ๊ฐ ๋ชจ๋ธ๋“ค์— ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์˜ ์ตœ์  ์กฐํ•ฉ์„ ํƒ์ƒ‰
  7. ์ฐพ์•„๋‚ธ ์ตœ์ ์˜ ์กฐํ•ฉ์œผ๋กœ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ  voting ์•™์ƒ๋ธ”์„ ํ†ตํ•ด ๊ทธ ๋ชจ๋ธ๋“ค์„ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•จ -> voting ์•™์ƒ๋ธ”์˜ ๊ฒฝ์šฐ soft ์˜ต์…˜์„ ์‚ฌ์šฉํ•จ ๊ฐ ๋ชจ๋ธ๋“ค์—์„œ ๋‚˜์˜ค๋Š” 1์ผ ํ™•๋ฅ ๊ณผ 0์ผ ํ™•๋ฅ ์„ ์ข…ํ•ฉํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ƒ„ -> ํ•œ ๋ชจ๋ธ์˜ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ ธ๋„ ๋‹ค๋ฅธ ๋ชจ๋ธ๋“ค๊ณผ์˜ ํ™•๋ฅ  ๊ณ„์‚ฐ์„ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•จ
  8. ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•˜๊ณ  ๊ต์ฐจ๊ฒ€์ฆ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์‹ค์‹œํ•˜์—ฌ ๊ฐ ๋ชจ๋ธ๋“ค์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•จ -> f1_score ๋ฅผ ํ™•์ธ
  9. ๊ต์ฐจ๊ฒ€์ฆ์„ ํ†ตํ•ด ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด boxplot ์œผ๋กœ ์‹œ๊ฐํ™”ํ•จ
  10. ์œ„์—์„œ ๊ตฌ๋ถ„ํ•œ test ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์˜ˆ์ธก ์ •ํ™•๋„๋ฅผ ํ™•์ธํ•จ -> 0.7์ •๋„๋กœ train ๋ฐ์ดํ„ฐ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋‚˜์˜ด
  11. ์‹ค์ œ ์‚ฌ๊ณ ์‚ฌ๋ก€๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๋Ÿ‰๋™ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•จ -> ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•œ ๊ฐ€์ค‘์น˜๋ฅผ ์ดˆ๋Ÿ‰๋™ ๋ฐ์ดํ„ฐ์—๋„ ์ ์šฉ

์ดํ›„ ๋ถˆํ•„์š”ํ•œ ๋ณ€์ˆ˜๋“ค ์ œ๊ฑฐ ํ›„ pca๋กœ ํ•™์Šต๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋ณ€ํ˜• -> ์˜ˆ์ธก ์‹ค์‹œ ๊ฒฐ๊ณผ -> 10์‹œ๋ฅผ ์นจ์ˆ˜๋กœ ์˜ˆ์ธกํ•จ

5. ์˜์ƒ Machine Learning

  1. ์˜์ƒ ํŒŒ์ผ์„ ํ”„๋ ˆ์ž„ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์˜์ƒ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜
  2. ํ•„์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ import
  3. ์˜์ƒ ์ด๋ฏธ์ง€๋ฅผ ์ฝ์–ด์™€์„œ ์นจ์ˆ˜ ์ด๋ฏธ์ง€, ๋น„์นจ์ˆ˜ ์ด๋ฏธ์ง€๋กœ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
  4. ๊ฐ๊ฐ์˜ ์›๋ณธ ์ด๋ฏธ์ง€๋“ค์„ CLAHE์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํ™”์†Œ ์ „์ฒ˜๋ฆฌ๋œ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ›„ ์ €์žฅ
  5. CLAHE ์ด๋ฏธ์ง€๋ฅผ ์ฝ์–ด์˜ด
  6. ์˜์ƒ ํ•™์Šต์„ ์œ„ํ•ด ImageDataGenerator๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•™์Šต,๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ
  7. ์ „์ดํ•™์Šต์„ ์œ„ํ•ด ๊ธฐ์กด MobileNetV2๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์ด์ง„ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•œ Dense์ธต ๋…ธ๋“œ ์ˆ˜ ๋ณ€ํ™˜
  8. ํ•™์Šต ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜์—ฌ first_try.h5 ํŒŒ์ผ๋กœ ์ €์žฅ
  9. ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ์˜์ƒ์„ ์ž…๋ ฅ๋ฐ›๊ณ  opencv์˜ ์ฐจ๋Ÿ‰ ๋ถ„๋ฅ˜ ๋ชจ๋ธ์ธ cars.xmml์„ ์ž…๋ ฅ๋ฐ›์Œ.
  10. ์ž…๋ ฅ๋ฐ›์€ ์˜์ƒ์˜ ํ”„๋ ˆ์ž„์„ ํ•™์Šต ๋ชจ๋ธ์— ํˆฌ์ž…ํ•˜์—ฌ ๊ฒฐ๊ณผ์น˜๋ฅผ ์˜์ƒ์— ํ…์ŠคํŠธ๋กœ ๋ฎ์–ด์”Œ์›€
  11. ์ˆ˜์ •๋œ ์˜์ƒ ํ”„๋ ˆ์ž„์„ ๊ณง๋ฐ”๋กœ ๋ณด์—ฌ์ฃผ๊ฑฐ๋‚˜, ์ €์žฅํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

6. Web(Django)

6.1 Server

  • Framework : Django

6.2 Database

  • sqlite3

6.3 Frontend

โ‘  d3.js

  • ์ง€๋„ ์‹œ๊ฐํ™”
  • ๊ฐ ์ˆ˜์น˜๋ณ„ ์ง€๋„์— ํ‘œ์‹œ

โ‘ก chart.js

  • ๋ถ€์‚ฐ์ง€์—ญ ๊ตฌ๋‹จ์œ„ ์ •๋ณดํŽ˜์ด์ง€์—์„œ ๋ถˆํˆฌ์ˆ˜๋ฉด ๋น„์œจ & ์นจ์ˆ˜๋นˆ๋„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํ‘œํ˜„

โ‘ข ETC : Bootstrap, CSS

6.4 pandas

  • pandas ์ด์šฉํ•˜์—ฌ sqlite3์˜ ๋ฐ์ดํ„ฐ๋ฅผ dataframe์œผ๋กœ ์‚ฌ์šฉ
    ex)pd.read_sql_query("SELECT * FROM ํ…Œ์ด๋ธ”๋ช…", db)
  • 6.5 ์ฃผ์š” ๊ธฐ๋Šฅ

    โ‘  ๋ถ€์‚ฐ์ง€์—ญ ๊ตฌ๋‹จ์œ„ ์ •๋ณด

    • URL : ./busanmap/
    • busanmap/map.py > busan_gu_info :๋ถ€์‚ฐ์ง€์—ญ ๊ตฌ๋‹จ์œ„ ์ •๋ณด ํŽ˜์ด์ง€ ๋ถ€์‚ฐ ๊ฐ ๊ตฌ๋ณ„ ๋ถˆํˆฌ์ˆ˜๋ฉด, ํŽŒํ”„, ์นจ์ˆ˜๋นˆ๋„๋ฅผ ๊ทธ๋ž˜ํ”„์™€ ์ง€๋„์— ํ‘œ์‹œ
    • ๋ถ€์‚ฐ ๊ฐ ๊ตฌ๋ณ„ ํ†ต๊ณ„ (๋ถˆํˆฌ์ˆ˜๋ฉด ๋น„์œจ, ์นจ์ˆ˜๋นˆ๋„) ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ - chart.js ์‚ฌ์šฉ
    • ๊ตฌ๋ณ„ ์ง€๋„ & ๋ถˆํˆฌ์ˆ˜๋ฉด ๋น„์œจ, ์นจ์ˆ˜๋นˆ๋„๋ณ„ ์ง€๋„ ์‹œ๊ฐํ™” - d3.js ์‚ฌ์šฉ

    โ‘ก Simulation ๊ฒฐ๊ณผ ๋ณด๊ธฐ

    • URL : ./busanmap/model/
    • busanmap/map.py > simulation_result : ๋ถ€์‚ฐ์ง€์—ญ์—์„œ ์นจ์ˆ˜ ์‚ฌ๊ณ ๊ฐ€ ์žˆ๋˜ 7์›” 23-24์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ ์‹œ๊ฐ„๋Œ€์˜ ์นจ์ˆ˜์œ„ํ—˜๋„๋ฅผ simulation
    • 2020๋…„ 7์›” 23 - 24์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜ˆ์ธก๋ชจ๋ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

    โ‘ข CCTV ์˜์ƒ ๋ถ„์„

    • URL : ./busanmap/cctv/
    • busanmap/views.py > cctv : cctv ํ‘œ์‹œ
    • ์นจ์ˆ˜๋˜์—ˆ๋˜ CCTV๋ฅผ ํ†ตํ•ด ์นจ์ˆ˜์˜ˆ์ธก๋ชจ๋ธ ํ™•์ธ

    โ‘ฃ ์‹ค์‹œ๊ฐ„ ์นจ์ˆ˜ ์œ„ํ—˜๋„

    • URL : ./busanmap/apitest/
    • busanmap/map.py > apitest : ์‹ค์‹œ๊ฐ„ ์นจ์ˆ˜ ์œ„ํ—˜๋„ ๋ณด๊ธฐ ํŽ˜์ด์ง€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ธฐ์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ ๋’ค ํ˜„์žฌ์‹œ๊ฐ„, +1, 2, 3์‹œ๊ฐ„ ํ›„์˜ ๊ฐ ๋™๋ณ„ ์นจ์ˆ˜ ์˜ˆ์ธก
    • ๊ธฐ์ƒ์ฒญ api๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ˜„์žฌ ๋‚ ์”จ๋ฅผ ๊ฐ€์ ธ์˜จ ๋’ค ํ˜„์žฌ, +1, +2, +3 ์นจ์ˆ˜์˜ˆ์ƒ ๋ถ„ํฌ ํ‘œ์‹œ

    7. ์‹คํ–‰๋ฐฉ๋ฒ•

    python 3.7.6์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
    ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฟ ์กด์žฌํ•˜๋‚˜ virtualenv์™€ conda๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค
    conda ํ™˜๊ฒฝ์„ ์ถ”์ฒœํ•œ๋‹ค.

    ( ๊ฐ€์ƒํ™˜๊ฒฝ ๋‚ด์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๊ตฌ์ถ• )

    1. ์ž‘์—…ํ•  ํด๋” ์ƒ์„ฑ ๋ฐ ํด๋”๋กœ ์ด๋™(ํด๋”๋ช… project)
    C:/.... > mkdir project
    C:/.... > cd project
    
    # git clone(ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜จ๋‹ค.), ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™
    C:/..../project > git clone https://github.com/pcrmcw0486/dataflood.git
    C:/..../project > cd dataflood
    
    2. ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์น˜ - python virtualenv ์‚ฌ์šฉ ๋˜๋Š” conda ๊ฐ€์ƒํ™˜๊ฒฝ ๋‘˜ ์ค‘ ํ•˜๋‚˜ ์‚ฌ์šฉ
     โ‘  python virtualenv ์‚ฌ์šฉ
        # virtualenv๊ฐ€ ๊น”๋ ค ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ
        C:/..../project/dataflood> pip install virtualenv
    
        # ๊ฐ€์ƒํ™˜๊ฒฝ venv ์ƒ์„ฑ (python version 3.7.6 ์— ๋งž์ถ”์–ด์•ผํ•จ.) => (tesnsorflow๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด)
        C:/..../project/dataflood> virtualenv --python=python3.7.6 venv
        
        # ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” (in Windows)
        C:/..../dataflood/dataflood> venv\Scripts\activate 
        (venv) C:/..../project/dataflood>
    
     โ‘ก conda ๊ฐ€์ƒํ™˜๊ฒฝ
        (venv) C:/..../project/dataflood>
        # ๊ฐ€์ƒํ™˜๊ฒฝ venv ์ƒ์„ฑ (python version 3.7.6 ์— ๋งž์ถ”์–ด์•ผํ•จ.) => (tesnsorflow๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด)
        C:/..../project/dataflood> conda create -n venv python=3.7.6
            ...
            ...
            Proceed ([y]/n)? y
            
        # ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™”
        C:/..../project/dataflood> conda activate venv
    
     
    3. ๊ฐ€์ƒํ™˜๊ฒฝ ๋‚ด์— requirements.txt ์„ค์น˜ ( ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ๋ชจ์•„๋†“์€ ๋ฐ์ดํ„ฐ )
       ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ requirements๋ฅผ ํ•œ๋ฒˆ์— ์„ค์น˜ ๊ฐ€๋Šฅ
    (venv) C:/..../project/dataflood> pip install -r requirements.txt
    
    
    4. ํ™ˆํŽ˜์ด์ง€ ํ™•์ธ
       # Web ํด๋”๋กœ ์ด๋™ ํ›„ django runserver
    (venv) C:/..../project/dataflood> cd Web
    (venv) C:/..../project/dataflood/Web> python manage.py runserver
    Watching for file changes with StatReloader
    Performing system checks...
    
    System check identified no issues (0 silenced).
    September 18, 2020 - 16:19:18
    Django version 3.0.3, using settings 'Web.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    
    5. ctrl + c๋กœ django ์„œ๋ฒ„ ์ข…๋ฃŒ ํ›„ ์ „์ฒ˜๋ฆฌ ์ฝ”๋“œ ๋ฐ ML ์ฝ”๋“œ๋ณด๊ธฐ
    (venv) C:/..../project/dataflood/Web> cd ..
    (venv) C:/..../project/dataflood> jupyter lab ๋˜๋Š” jupyter notebook
    

    URL : http://127.0.0.1:8000/

    -----------------ํ•„๋…-----------------

    ๊ฐ ํŽ˜์ด์ง€ ๋ณ„๋กœ ์ง€๋„ ์œ„์— ์žˆ๋Š” circle์„ ํด๋ฆญํ•จ์œผ๋กœ์จ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ง€๋„์— ํ‘œ์‹œ

    • ๋ถ€์‚ฐ์ง€์—ญ ๊ตฌ๋‹จ์œ„ ์ •๋ณด : ์™ผ์ชฝ์— ์žˆ๋Š” ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„ ์œ„์˜ ๊ฐ ์ •๋ณด๋ฅผ ํด๋ฆญํ•  ๋•Œ ๊ทธ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œ ์ง€๋„์œ„์˜ circle์„ ๋ˆ„๋ฅด๋ฉด ๊ฐ๊ฐ ๋ถˆํˆฌ์ˆ˜๋ฉด, ํŽŒํ”„๋น„, ์นจ์ˆ˜๋นˆ๋„๋ฅผ ์ง€๋„์œ„์— ํ‘œ์‹œ.

    • Simulation ๊ฒฐ๊ณผ ๋ณด๊ธฐ : ์นจ์ˆ˜ํ”ผํ•ด๊ฐ€ ์ผ์–ด๋‚ฌ๋˜ 2020๋…„ 7์›” 23์ผ-24์ผ 3์‹œ๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ๋ฅผ ์ถ”์ถœ, ๊ฐ ์‹œ๊ฐ„์ด ํ‘œ์‹œ๋œ circle์„ ๋ˆŒ๋ €์„ ๋•Œ, ๊ทธ ์‹œ๊ฐ„์˜ ์นจ์ˆ˜ ์˜ˆ์ƒ ์ง€์—ญ์„ ์ง€๋„์— ํ‘œ์‹œ

    • ์‹ค์‹œ๊ฐ„ ์นจ์ˆ˜ ์œ„ํ—˜๋„ ๋ณด๊ธฐ : ์‹ค์‹œ๊ฐ„ api๋ฅผ ์ด์šฉํ•˜์—ฌ, ํ˜„์žฌ ๊ฐ•์šฐ๋Ÿ‰์„ ๋ฐ›์•„์™€์„œ ๋ชจ๋ธ์— ์‚ฝ์ž…ํ•˜์—ฌ ํ˜„์žฌ, +1, +2, +3 ์‹œ๊ฐ„ ๋’ค์˜ ์นจ์ˆ˜ ์˜ˆ์ƒ ์ง€์—ญ์„ ์ง€๋„์— ํ‘œ์‹œ

    About

    datacampus

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

     
     
     

    Contributors

    Languages