Anzeige

Más contenido relacionado

Similar a 권기훈_개인포트폴리오(20)

Último(20)

Anzeige

권기훈_개인포트폴리오

  1. 포트폴리오 IT Developer Made by Kwon Kihoon
  2. 목차 2 About me 01 Certification 02 Career 03 Skill set 04 Project 05
  3. About me 3 Email: khpoptop@naver.com Name: 권기훈 / Kwon Kihoon Career: 신입 Age(생년월일): 만 27세(1995.07.12) Address: 서울시 서초구 방배로 18길 67 Github: https://github.com/Kihoon-Kwon
  4. Certification 4 취득일자 자격명 발행기관 점수(등급) 2021.02 ITQ 아래한글 한국생산성본부 A등급 2021.04 ITQ 한글액셀 한국생산성본부 A등급 2021.06 ITQ 한글파워포인트 한국생산성본부 B등급 2021.06 TOEIC YBM 880 2021.07 Office Excel 2016 Expert YBMIT Pass 2021.09 OPIc 영어 ACTFL IM1
  5. Career 5 • 서울고등학교 졸업(2014.02) • 전자정보공학부 공학설계입문 팀 프로젝트 참여(2016.9~2016.11) • 졸업작품 CNN 이미지 분류 모델 제작 프로젝트 참여(2021.2~2021.11) • 숭실대학교 전자정보공학부 IT융합학과 졸업(2022.02) • 멀티캠퍼스 데이터 사이언스/엔지니어링 전문가 과정 교육 수료 (2022.06~2022.12)
  6. Skill set 6 Language Python Javascript SQL HTML css R Framework Django Flask Bootstrap Spark Infra & DB MySQL SQLite Shell Linux Bash AWS Tool Git VScode Jupyter notebook Google colab Teamwork Notion Github
  7. Project 1 프로젝트명 : bombom 프로젝트 저시력자 대상 상품 구매 보조 시스템
  8. 저시력 장애인들이 마트에서 물건을 구매하는데 겪는 여러가지 애로사항들을 조사하였고, 이를 해소하기 위한 편의기능 제공이 이 프로젝트의 목적이다. 딥러닝 모델을 학습시킨 후 이를 이용하여 상품 이미지 업로드 시 상품 예측 후 상품명, 영양정보, 과자 상세정보 페이지, 그리고 이에 맞는 음성을 제공한다. 개요 저시력 장애인을 대신하여 ‘상품을 본다’는 의미를 담았음
  9. 개요 ▪ Django 웹프레임워크 구축 ▪ 딥러닝 모델 적용 ▪ 음성 서비스 구현(TTS) ▪ 초기 화면, 결과 화면 구현 ▪ DB 설계 역할 인원 6명(DS 3명, DE 3명) 사용 도구 서비스구현 웹 설계 협업툴 그 외 개발 기간 22.11.07~22.12.16(총 6주)
  10. Flow chart 10
  11. DB 설계 11 Nutrition Column Name Datatype Constraint name (상품명) VARCHAR NOT NULL total_content (총 용량) INT NOT NULL calories (칼로리) INT NOT NULL protein (단백질) FLOAT NOT NULL fat (지방) FLOAT NOT NULL carbohydrate (탄수화물) FLOAT NOT NULL Snack Column Name Datatype Constraint name (상품명) VARCHAR NOT NULL info (설명) VARCHAR NOT NULL price (가격) INT NOT NULL Models.py를 이용하여 MySQL에 과자 상품 정보, 영양정보 Table을 각각 저장 후 서비스 구현 시 필요한 데이터 호출 서비스 구현
  12. 서비스 주요 특징 12 바나나킥 포카칩 양파링 벌집핏자 새우깡 꼬북칩 화이트하임 오레오 아몬드빼빼로 후렌치파이 과자 10종에 대한 상품 이미지 분류 저시력자 대상 서비스이므로 버튼이나 이미지는 최대한 크고 직관적으로 + 색상은 고대비로 구상하였음
  13. UI / 기능 13 과자 이미지 업로드에 대한 설명을 음성으로 구 현 - Javascript Speechsynthesis API를 활용하여 텍 스트를 음성으로 합성하였음 - 기존엔 파이썬 gTTS 라이브러리를 활용하였지만, audio player 모양 및 크기 조절이 제한적이었음 - 재생 시 bombom 서비스에 대한 간략한 이용방법을 안내받을 수 있다. 만든 사람들, 조회가능한 상품 페이지와 연동 - 만든 사람들 페이지는 팀원들과 각각의 R&R이 간 략하게 소개되어 있는 페이지이다. - 조회 가능한 상품 페이지는 서비스를 제공하는 과 자의 목록을 확인할 수 있는 페이지이다. 조회를 원하는 상품 이미지를 업로드 - 지원하는 과자 10종류 중 하나의 과자 이미지를 업 로드하면 업로드한 딥러닝 모델이 어떤 과자인지 예 측한다. - 이미지가 입력되면 이것을 3차원 배열로 변환하고 이를 기반으로 모델이 상품명을 예측하는 원리이다. - Jpg, jpeg, png와 같이 이미지 파일만 업로드할 수 있도록 설정하였음(업로드 창에서 타 형식의 파일은 숨김) 과자 이미지를 업로드하는 초기 페이지
  14. UI / 기능 14 만든 사람들 페이지 이 프로젝트에 함께한 팀원들의 이름과 간단하게 R&R 소개 상품 목록 페이지 - 서비스하는 과자 목록들을 확인할 수 있는 페이지 - 과자 이미지나 영양 정보 버튼을 누르면 과자 각각의 상 세 정보를 텍스트 및 음성으로 제공받을 수 있다. Bombom 로고나 home 버튼을 누르면 초기 화면으로 돌아간다
  15. UI / 기능 15 각 과자에 대한 상세 정보 페이지 - MySQL의 Nutrition 테이블에 과자 각각의 영양 정보가 저 장되어 있고 웹에 호출할 수 있도록 연동하였다. - 각 페이지에서 과자 이름에 맞게 데이터를 호출하였다. 영양 정보를 음성으로 변환하여 제공한다(파파고 음성변환기 사용)
  16. UI / 기능 16 조회 원하는 이미지를 업로드 하면 해당 상품에 대한 상품명, 가격, 정확도가 표시되도록 구현 예측 결과에 맞게 텍스트를 음성으로 합성하여 재생하는 기능 구현 - 텍스트의 visibility를 hidden으로 설정하여 웹 화면 상에는 보이지 않도록 설정 - 초기 화면의 안내버튼과 마찬가지로 Speechsynthesis API 활용 - 사용자가 가장 궁금해할 상품명, 가격, 칼로리, 그리고 상품에 대한 간략한 설명 제공 MySQL에 저장된 DB를 호출하여 예측결과에 맞는 DB 정보를 가져옴 - 예측결과에 맞게 각각 번호를 부여하고, 번호에 맞게 예측결과 호출 (DB에 각 상품에 맞는 id가 1~10까지 번호로 지정되어 있으므로 이 에 맞춰서 호출하는 원리) - 상품명, 예측 정확도, 가격을 출력한다 상품 이미지 예측 후 결과 페이지 예측된 과자에 맞게 과자 상세 정보 페이지 연동 - 링크 일부를 prediction 변수에 맞게 변하도록 설정하여 예측 결과에 맞게 해당 페이지로 연동된다.
  17. 프로젝트 소감(좋았던 점) 서비스 메인 기능인 이미지 예측이 잘 구현되었다. 배경 노이즈가 심하거나, 과자 이미지가 확대되거 나 잘려 있어도 90% 이상은 상품명을 올바르게 인식한다. 아래의 이미지들 모두 올바르게 예측된 상품 이미지이다. 17 잘린 이미지 확대된 이미지 노이즈 심한 이미지
  18. 프로젝트 소감(주요 개선사항) 18 실시간으로 카메라에 상품을 비추면 100% 정확도를 보이는 시점에 상품 인식을 하여 상품 정보를 알려주는 기능 구현함. 사진을 찍어서 업로드하는 번거로움을 덜 수 있다는 장점이 있다. 그러나 아직 웹 카메라에 버퍼링이 걸리는 등 기능적으로 불완전하여 최종 서비스에는 제외하였음 출처 : https://www.screencast.com/t/YIUyhPbi 시연 영상(start 버튼 누른 이후의 시점)
  19. 프로젝트 소감(추가 개선사항) 1. 학습시킨 10개의 과자 이외에도 더 많은 과자의 상품 인식이 가능하도록 성능 개선 2. 과자 이외에도 다른 상품군들 또한 학습을 통해 다양한 상품 인식이 가능하도록 서비스 확장 3. 상품 인식 뿐 아니라 상품의 위치도 알려줄 수 있도록 기능 추가 4. 할인 정보, 각 상품의 알레르기 정보들을 알려주는 서비스 등을 추가하면 좋을 듯 19
  20. 프로젝트 자료 20 1. 프로젝트 github link → https://github.com/Kihoon-Kwon/snack_classification.git 2. 서비스 전체 시연 영상 → https://www.screencast.com/t/GhGMQPQXS 3. 웹 카메라 기능 시연 영상 → https://www.screencast.com/t/YIUyhPbi
  21. Project 2 프로젝트명 : Blackice 프로젝트 결빙사고 예방 서비스
  22. 국내에서 도로 결빙 예방책으로 염화칼슘 제설제, 제설 시스템 자동화, 친환경 제설제, 도로열선 등이 있지만 각각 인력 부족, 환경오염, 높은 비용 등의 제약 사항이 있다. 아직 완전하지 않은 결빙사고 예방책을 보다 보완할 수 있는 결빙 사고 위험 지역을 예측하여 운전자 결빙 사고를 예방하는 시스템을 개발하였음. 개요 온도가 갑자기 떨어져 생기는 도로 위의 살얼음 일반 도로보다 최대 14배, 눈길보다는 6배 더 미끄러움 Blackice의 의미란?
  23. 개요 ▪ 데이터 수집 ▪ 데이터 전처리 ▪ 모델링 ▪ DB 설계 ▪ 웹크롤링 역할 인원 4명(모델링 담당 2명, 웹서비스 담당 2명) 사용 도구 데이터 수집&전처리, 모델링 DB 설계 웹크롤링 개발 기간 22.10.18~22.11.04(총 3주)
  24. Flow chart 24
  25. 서비스 주요 특징 25 지역 선택 (시/군) 일자 선택 결빙사고 위험지역 표시 지도 1. 서비스 대상은 경기 지역의 운전자 및 도로 이용자 대상이다. 2. 경기도 시군구 중 하나를 선택하고, 3일 중 하루를 선택하면 해당 구의 상습결빙구간에 대한 현재 위험도를 예측 3. 웹 서비스 구현은 goormide 서버를 활용하여 구축하였다.
  26. 데이터 탐색 26 1 2 지도에 표시해 줄 좌표 데이터 결빙사고 위험도 예측모델 데이터 시간 : 결빙사고는 오전 6~10시에 주로 일어남 기온 습도 날씨 : 기상 상황은 결빙 형성에 영향을 줌 : 보통 결빙사고는 11~3월 사이에 자주 발생 : 습도가 높을수록 이슬, 서리 발생 빈도가 높다
  27. 수집한 데이터 27 1시간 간격의 기온, 습도 정보 상습 결빙 구간 위도, 경도 모델링 데이터 (2020-2021) 정보맵 표시 좌표(2022) 과거 결빙사고 데이터
  28. 데이터 전처리 – 결빙사고 데이터+기상 데이터 필요한 데이터 병합하기 28 두 데이터의 일시 데이터 형식을 통일하는 전처리 작업 진행
  29. 사고나지 않은 시간대의 기상데이터+사고 데이터 추가 29 사고 날짜의 다른 시간대의 사고 내용 결측치를 전부 “피해 없음” 으로 치환 같은 날의 기상 상태는 같은 값으로 치환 모델 학습에 사고가 발생하지 않은 시간대의 기상데이터도 필요하다고 판단하여 데이터 병합 과정에서 추가하였다.
  30. 데이터 전처리 – 사고내용 및 기상상태 수치화 30 피해 없음 부상 신고 경상 사고 중상 사고 사망 사고 0 1 2 날씨 수치 맑음 1 흐림 1 기타 1 비 1.342 눈 1.342 안개 2 1. 사고내용에 따른 사고 위험도 3단계로 나눔 2. 기상상태 사고 영향도에 따른 수치화 3. 전처리 완료 참고자료: 결빙구간의 교통사고 심각도 영향 요인 연구, 2017, 이상준 (위험도에 따라 지도에 표시할 마커의 색깔이 달라진다)
  31. 모델링 31 • 다항 로지스틱 회귀분석 • 랜덤 포레스트 종속 변수 Y 위험도 0 1 2 독립 변수 X 시간(hour) 기온(°C) 습도(%) 분류 모델
  32. 모델링 – 성능 비교 32 다항 로지스틱 회귀분석 성능 랜덤 포레스트 성능 랜덤 포레스트 알고리즘의 예측 성능이 더 좋게 나옴
  33. 모델링 – 파라미터 값 조정으로 성능 개선 33 디폴트 설정 값 파라미터 값 조정 결과 정확도 약 3% 증가
  34. DB 설계 프로세스 34 MySQL과 goormide 연동 실시간 기상데이터 웹크롤링 데이터 전처리 후 DB에 저장 1. 구름ide에 MySQL의 기존 port번호와 ip주소를 입력하면 구름ide 서버와 연동이 가능한 외부 port번호와 ip주소가 발급된다. 2. 네이버 검색창에 경기도 시군구별로 날씨를 자동으로 검색하고 기온, 습도, 기상상태 정보를 크롤링한다(당일 기준 모레 날씨까지) 3. 날씨를 정해진 위험도에 맞게 수치화시키고, 시간 양식을 변경하는 전처리 작업 이후 DB에 저장
  35. MySQL과 goormide 연동 35 현재 포트 입력 등록 IP 주소와 외부 포트번호 부여
  36. 실시간 기상데이터 웹크롤링 36 기상 서버에 문제가 생겨도 서비스에는 문제가 없도록 DB에 3일치 데이터 구축
  37. 데이터 전처리 후 DB 저장 37 Before 날씨 위험도 맑음 1 흐림 1 기타 1 비 1.342 눈 1.342 안개 2 After
  38. UI / 기능(22.11.03 19시 기준) 38
  39. 프로젝트 소감(기대 효과) 39 1. 정확한 정보 알림  기상 정보에 따른 사고 위험도를 예측함으로써 더 정확한 결빙구간 주의 정보를 받을 수 있음 2. 예측 데이터 활용  예측 정보를 DB에 기록하여 결빙사고 위험구간을 재검토하는데 활용할 수 있음 3. 제설 관련 기관  예측 정보를 활용하여 결빙예방 및 제설 작업을 보다 효율적으로 진행 가능
  40. 프로젝트 소감(개선해야할 점) 40 1. 예측 모델 추가 변수  결빙사고에 영향을 주는 다른 요인(이슬점 온도, 도로 형태 등)을 추가로 고려해 더 정확한 예측모델 구현 2. 실시간 정보 반영  정해진 시간에 자동으로 웹 크롤러가 실행되어 실시간으로 기상 데이터를 받을 수 있도록 개선 3. 제설 관련 기관  전국 단위로 데이터를 수집하여 서비스 범위를 확대하면 더 좋을 것 같다
  41. 프로젝트 자료 프로젝트 github link → https://github.com/Kihoon-Kwon/Black-Ice-project.git 41
  42. The end 끝까지 봐주셔서 감사합니다 42
Anzeige