SlideShare una empresa de Scribd logo
1 de 120
포트폴리오 목차
지원자 : 권기훈
1
프로젝트 1 : 저시력 장애인들을 위한 상품 인식 서비스
프로젝트 2 : 결빙 사고 예측 서비스
프로젝트 I
2
저시력 장애인을 위한 상품 인식 서비스
목차
4
Ⅰ. About bombom
1. bombom이란?
2. 주제 선정 배경
3. 프로젝트 목표
4. 프로젝트 구상
5. 팀원 소개
6. WBS
7. Flow chart
Ⅲ.모델링
1. 사용한 모델
2. 실제 학습에 사용한 데이터
3. CNN
4. VGG16
5. ResNet50V2
6. DenseNet201
Ⅱ. 데이터 수집 & 전처리
1. 데이터 수집
2. 데이터 전처리
3. 최종 데이터 구조
Ⅳ. 최종 모델 선정
1. 모델 별 결과 비교
2. 성능 테스트 및 최종선정
Ⅵ. 이슈사항
1. 데이터 수집 이슈 & 해결방법
2. 모델링 이슈 & 해결방법
3. 서비스 구현 이슈 & 해결방법
4. 서비스 배포 이슈 & 해결방법
Ⅴ. 서비스 구현
1. DB 설계
2. 구현 프로세스
3. 서비스 화면 디자인
4. 서비스 개발
1) Flask
2) Django
Ⅶ.결론 및 후기
1. 주요 개선사항
2. 추가 개선사항
3. 기대효과
4. 활용도구 및 환경
5. 소감
6. Github Link
Ⅰ. About bombom
1. bombom이란?
6
저시력 장애인을 위한 상품 인식 서비스
출처: https://youtu.be/woiF52DQHc4
저시력 장애인을 대신하여
‘상품을 본다’는 의미를 담은 상품명
‘눈’을 닮기도 하고 ‘스피커’를 닮기도 한 모양으로
인식한 상품을 소리로 전달한다는 의미를 담은 로고.
2. 주제 선정 배경
7
시각장애란?
눈과 관련된 여러 가지 장애나 질병으로 인한 손상이나 불능으로 인해
지적·심리적·사회적·직업적 제 분야에서 개인이 불리하게 됨을 의미
67%
33%
시각장애 유형별 분포 형태
6급 기타
6급: 나쁜 눈의 시력이 0.02 이하인 사람
→ 저시력 장애인
총 인원 252,957명 중 6급은 169,698명
1) 저시력 장애인이란?
8
출처 : https://nax.naver.com/lowvision/intro
2. 주제 선정 배경
1) 저시력 장애인이란?
9
출처 : https://youtu.be/fq5xQaWaMO0
2. 주제 선정 배경
2) 저시력 장애인의 물건 구매하기(영상 clip)
2. 주제 선정 배경
10
2) 저시력 장애인의 물건 구매하기
설리번플러스
2. 주제 선정 배경
11
3) 유사 서비스
한계점
정확하게 상품 전체의 글자를 찍을 수 없음
설리번플러스
문자인식 기반 시스템
출처 : https://youtu.be/woiF52DQHc4
3. 프로젝트 목표
12
사용자가 저시력자임을 감안한 서비스를 구상하였고, 모델 학습에 반영되었음
→ 주 사용자가 저시력 장애인임을 감안한 프로젝트 목표 설정
일부 잘린 사진만으로도 상품을 정확하게
인식할 수 있어야 한다.
저시력 장애인들이 사진을 명확하게 찍기
어려우므로 이 부분에 대한 성능 보장이
되어야 한다.
3. 프로젝트 목표
13
단순하고 직관적인 화면 구성으로 이용 편의성 향상, 웹서비스 구현에 반영되었음
→ 주 사용자가 저시력 장애인임을 감안한 프로젝트 목표 설정
잘못된 예시
화면 구성이 저시력자들에게 부적합
올바른 예시
화면 구성이 단순하고 직관적이다
4. 프로젝트 구상
14
사용자 마트 방문 메인 페이지 접속 이미지 업로드 상품인식 상품정보 표기
상품정보
음성안내
포카칩
가격 ...
상품정보 ...
5. 팀원 소개
15
권기훈 [DE] 장민준 [DE] 정지은 [DE]
김해니 [DS] 손정우 [DS] 차나래 [DS]
▪ Django 웹사이트 생성
▪ 딥러닝 모델 적용
▪ 음성 서비스 구현(TTS)
▪ ‘메인’, ‘결과’ 페이지 제작
▪ DB 설계
▪ DS 파트장
▪ AI Hub 데이터 수집
▪ 모델링, 전이학습 - CNN, VGG16,
ResNet50V2, DenseNet201
▪ Figma 웹 디자인
▪ ‘만든 사람들’ 페이지 제작
▪ Notion 관리
▪ Django 웹사이트 생성
▪ 딥러닝 모델 적용
▪ 웹 카메라 연동 기능 구현
▪ ‘결과’ 페이지 제작
▪ 주간일지 작성
▪ DE 파트장
▪ DB 설계
▪ Flask 웹사이트 생성
▪ 딥러닝 모델 적용
▪ ‘메인’,’조회 가능한 상품’ 페이지 제작
▪ 모델링, 전이학습
– CNN, DenseNet201
▪ ‘조회 가능한 상품’ 페이지 제작
▪ 메인 로고 제작
▪ 주간일지 작성
▪ 팀장
▪ 모델링, 전이학습 – CNN, VGG16
▪ Figma 웹 디자인
▪ ‘영양정보’ 페이지 제작 및 음성 파일 연동
▪ Notion 관리
6. WBS
16
항목 세부
11.07~12.16(총 6주)
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6
데이터 수집
학습시킬 과자 종류 논의하기
Ai-hub 과자 이미지 데이터셋 수집
웹 크롤링으로 추가 데이터 수집
모델링
1차 모델링(ai-hub 이미지만 적용)
2차 모델링(추가 데이터까지 적용)
3차 모델링(이미지 증강)
전이학습을 통한 최적화 작업
최종 모델 선정
서비스 구현
Django 웹서버 구축
Frontend 개발(HTML, css, JS)
모델 예측결과 웹서비스에 적용
예측결과 음성으로 변환하기
DB에 필요한 데이터 저장 후 연동
과자 상세 정보 서비스 추가
URL 주소 확보 후 웹캠 기능 추가
프로젝트 마무리
최종 점검 및 마무리
프로젝트 ppt 및 보고서 작성
프로젝트 발표
7. Flow Chart
17
Ⅱ. 데이터 수집 & 전처리
18
1. 데이터 수집
19
AI Hub에서 과자 상품 데이터 수집
네이버 검색 이미지 크롤링
직접 과자 상품 촬영하여 수집
검색만으론 이미지가 부족한 과자가
있어 따로 직접 촬영하여 데이터화
직접 생성
과자 10종 (봉지형 6개, 상자형 4개)
바나나킥 포카칩 양파링
벌집핏자
새우깡 꼬북칩
화이트하임
오레오 빼빼로
후렌치파이
1) 수집한 데이터
1. 데이터 수집
20
2) 데이터 크롤링
Auto-crawling 코드를 활용.
Keywords.txt 파일에 네이버에서 검색을 원하는 키워드 입력시
Main.py 프로그램이 실행되어 네이버에서 이미지 검색 후
약 200여개의 이미지들이 한번에 수집되도록 진행.
2. 데이터 전처리
21
이미지 데이터가 모두 일정하지 않아 직접 수정
예
시)
3. 최종 데이터 구조
22
• AI-Hub+크롤링+직접수집 데이터
• 1개의 카테고리당 250개
• 총 2500개의 이미지 데이터
• AI-Hub 데이터만 포함
• 1개의 카테고리당 129개
• 총 1290개 의 이미지 데이터
1차 데이터 2차 데이터
Ⅲ.모델링
23
1. 사용 모델
24
CNN 전이학습
1. VGG16
2. ResNet50V2
3. DenseNet201
선택이유
1. CNN은 이미지를 인식하기 위해 패턴을 찾는데 특히 유용한 모델
2. 자율주행자동차, 얼굴 인식과 같은 객체인식 분야에 많이 사용되고 있음
▶ 과자 상품을 인식하는 시스템에 가장 적합한 모델이라고 판단되어 사용
선택이유
1. VGG16은 간단하고 ImageNet 데이터에 널리 사용되는 구조
2. ResNet은 VGG 모델을 뼈대로 사용하여 더 깊은 신경망을 확보하는 모델
3. DenseNet은 ResNet의 깊은 layer로 데이터가 희석되는 것을 데이터 결합으로
방지하며 ResNet 보다 더 많은 layer을 쌓아 성능을 향상시킬 수 있는 모델
▶ 층이 많은 기존의 모델 중 3개의 모델이 모두 연관성 있다고 판단되어 사용
CNN을 층을 하나하나 설계하고 , 파라미터 값을 조정해서
성능을 향상시키기에는 시간이 많이 필요한 것으로 보여 전이학습 선택.
기존에 있는 다른 모델들 중에서 층이 많아
좀 더 미세한 학습한 가능하다고 보여지는 모델을 선택하여 추가 학습 진행함.
2. 실제 학습에 사용한 데이터
25
1차 2차 3차
사용 데이터 Ai Hub 데이터 크롤링 + 직접 수집 데이터 증강
데이터 수 1290개 2500개 2500개 + 증강
데이터 이미지
15% 확대, 좌우/상하 20% 이동,
좌우반전, 반시계방향으로 15% 회전
26
Ⅲ.모델링
CNN
3. CNN
27
보다 정확한 비교를 위해 학습에 적용되는
데이터 형태, 학습방법은 모두 같은 값으로 설정
3차
1차
2차
각 모델에 적용되는
데이터 수에 맞추어 학습량 설정
1) CNN 설정값
3. CNN
28
2) 1차 모델링 ( Ai Hub 데이터 )
Accuracy = 1.00000
Loss = 0.00009
노이즈가 없는 깔끔한 이미지로 학습시켰기 때문에
테스트 데이터로 확인시에는 매우 높은 정확도가 나왔지만
이후 실제 사용 이미지로 성능 검증에서 정확도가 떨어지는 것을 볼 수 있음
실제 사용될 것으로 예상되는 이미지로 테스트
3. CNN
29
3) 2차 모델링 ( Ai Hub 데이터 + 크롤링 + 직접수집 )
Accuracy = 0.98000
Loss = 0.17198
실제 사용될 것으로 예상되는 이미지로 테스트
1차 데이터보다 노이즈가 생성된 이미지로 학습하여
테스트 데이터로 확인시에는 정확보다 1차보다 떨어지는 결과가 나옴.
하지만 실제 사용될 것으로 예상되는 이미지로 성능 확인시에는
비교적 높은 정확도를 보였음.
3. CNN
30
4) 3차 모델링 ( Ai Hub 데이터 + 크롤링 + 직접수집 + 데이터증강)
Accuracy = 0.99200
Loss = 0.01571
실제 사용될 것으로 예상되는 이미지로 테스트
노이즈가 생성되어 있던 2차 데이터에 증강까지 진행하여
3차에는 보다 더 높은 정확도를 보였음.
성능 확인시에도 높은 정확도가 나옴.
31
Ⅲ.모델링 – 전이학습
VGG 16
4. VGG16
학습 방법
1. 부분 재학습
2. 전체 재학습
3차
1차
2차
각 모델에 적용되는
데이터 수에 맞추어 학습량 설정
모델별 정확한 비교를 위해 학습에 적용되는
데이터 형태, 학습방법은 모두 같은 값으로 설정
학습이 잘 되도록 Learning rate 조절
1) 설정값
4. VGG16
2) 부분 재학습
2차 데이터 3차 데이터
1차 데이터
테스트 데이터로 확인 시 1차 데이터가 가장 높은 정확도를 보였고,
2차보다는 증강까지 적용한 3차 데이터가 더 높은 정확도를 나타냄.
성능 테스트시에는 cnn 모델과 같은 이유로 3차 데이터가 가장 정확도가 높다는 것을 알 수 있었음
Loss = 0.06344
Accuracy = 0.97600
Loss = 0.04189
Accuracy = 0.99200
Loss = 0.01313
Accuracy = 1.00000
4. VGG16
3) 전체 재학습
2차 데이터 3차 데이터
Loss = 0.02526
Accuracy = 0.99375
Loss = 0.05503
Accuracy = 0.99600
※1차 데이터는 성능 테스트에서 저조한 결과를 보여
VGG16 전체 재학습 부터 학습 제외함.
VGG16 모델 중에서 3차 데이터를 활용한
전체 재학습한 모델이 가장 높은 정화도 값을 보임
35
Ⅲ.모델링 – 전이학습
ResNet50V2
5. ResNet50V2
36
모델별 정확한 비교를 위해 학습에 적용되는
데이터 형태, 학습방법은 모두 같은 값으로 설정
학습이 잘 되도록 Learning rate 조절
3차
1차
2차
각 모델에 적용되는
데이터 수에 맞추어 학습량 설정
테스트 데이터 사용시 정확도는 높지만
성능 평가에서는 낮은 성능을 보여 학습 생략
학습 방법
1. 전체 재학습
1) 설정값
5. ResNet50V2
2차 데이터 3차 데이터
Loss = 0.17232
Accuracy = 0.96400
Loss = 0.04970
Accuracy = 0.99200
2) 결과값
2차 데이터 보다 데이터 증강을 적용한 3차 데이터에서
더 낮은 loss값을 보였고, 정확도는 더 높은 값을 나타냄.
Ⅲ.모델링 – 전이학습
DenseNet201
38
6. DenseNet201
39
모델별 정확한 비교를 위해 학습에 적용되는
데이터 형태, 학습방법은 모두 같은 값으로 설정
학습이 잘 되도록 Learning rate 조절
학습 방법
1. 합성곱 기반층 동결
3차
1차
2차
각 모델에 적용되는
데이터 수에 맞추어 학습량 설정
테스트 데이터 사용시 정확도는 높지만
성능 평가에서는 낮은 성능을 보여 학습 생략
1) 설정값
6. DenseNet201
40
Loss = 0.06542
Accuracy = 0.98000
Loss = 0.06088
Accuracy = 0.98800
2차 데이터 3차 데이터
2) 결과
데이터 증강을 적용한 3차 데이터가
Epoch 마다 Validation 데이터에 변화가 있는 것을 보였지만
2차 데이터를 활용한 학습보다는 약간 높은 정확도를 보임.
Ⅳ. 최종 모델 선정
41
1. 모델별 결과 비교
42
모델명 데이터 모델 epoch Loss Accuracy
1 1st_cnn_1 1차 CNN 100 0.00009 1.00000
2 2nd_cnn_1 2차 CNN 50 0.17198 0.98000
3 2nd_cnn_2 2차 CNN 50 0.03634 0.99600
4 3rd_cnn_1 3차 CNN 50 0.01571 0.99200
5 1st_vgg16_1 1차 VGG16 30 0.01313 1.00000
6 2nd_vgg16_1 2차 VGG16 30 0.06344 0.97600
7 2nd_vgg16_2 2차 VGG16 30 0.02526 0.99375
8 3rd_vgg16_1 3차 VGG16 30 0.04189 0.99200
9 3rd_vgg16_2 3차 VGG16 30 0.05503 0.99600
10 2nd_ResNet50v2_1 2차 ResNet50V2 30 0.77296 0.88000
11 2nd_ResNet50v2_2 2차 ResNet50V2 30 0.17232 0.96400
12 3rd_ResNet50v2_1 3차 ResNet50V2 30 0.04970 0.99200
13 2nd_densenet201_1 2차 DenseNet201 30 0.06542 0.98000
14 3rd_densenet201_1 3차 DenseNet201 30 0.06088 0.98800
2. 성능 테스트 및 최종 선정
43
선정된 모델들의 실제 성능을 비교하기 위해
이용자들이 사용할 것으로 예상되는
과자 이미지 50장을 추가 수집하여 성능 테스트 진행
순위 모델명 데이터 모델 Loss Accuracy
1 3rd_cnn_1 3차 CNN 0.41865 94.00%
2 3rd_vgg16_2 3차 VGG16 0.45652 92.00%
3 3rd_ResNet50v2_1 3차 ResNet50V2 0.53271 86.00%
4 3rd_densenet201_1 3차 Densenet201 0.72306 84.00%
가장 많은 개수의
이미지를 인식한
CNN 모델로 최종 선정
44
Ⅴ.서비스 구현
DB & 프로세스 & 개발 도구
1. DB 설계
45
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을 각각 저장 후
서비스 구현 시 필요한 데이터 호출
서비스
구현
1. DB 설계
46
※ 데이터는 AI-hub의 상품 이미지와 함께 각 과자 별 상세정보가 xml 형식으로 다음과 같이 제공된다
(영양정보는 총 내용량, 에너지, 단백질, 지방, 탄수화물까지만 활용하였음)
영양 정보 추출 후 csv로 저장
이후 데이터 MySQL에 삽입
+
추후 수정사항이 있을 땐 shell
환경에서 수정 작업
2. 구현 프로세스
주요 기능 추가 기능
사용자 마트 방문 메인 페이지 접속 이미지 업로드 상품인식 상품정보 표기
상품정보
음성안내
영양정보 안내 만든 사람들
• index.html
• 안내 음성 서비스
• 만든 사람들 &
전체 상품 조회
페이지 접근 가능
• index.html
• 사용자가 조회
원하는 상품의
이미지를 업로드
할 수 있도록 구현
• 딥러닝 구동
• 최종 선정된
CNN 모델 연동
• pred.html
• MY SQL의
테이블 값 연동
• 상품 인식 결과에
맞는 상품 이름,
가격, 정보 확인
가능
• pred.html
• 음성 서비스 제공
• MY SQL의
테이블 값 연동
• 상품 인식 결과에
맞는 상품 이름,
가격, 정보 확인
가능
• (과자이름).html
• 총 용량, 칼로리,
영양정보 확인
가능
• 음성 서비스 제공
• (과자이름).mp3
• aboutUs.html
• 팀 R&R 소개
47
포 카 칩
가격 ...
상품정보 ...
포 카 칩
총 용량
칼로리
탄수화물
단백질
지방-
3. 서비스 화면디자인
48
1. 시각장애인을 고려한 단순하고 직관적인 디자인으로 구성
2. 시각장애인을 고려한 명도 (4.5 : 1 이상) 준수
49
Ⅴ.서비스 구현
Flask
4. 서비스 개발
50
1) Flask
메인 페이지에서 상품 이미지를 업로드할 수 있도록 구현
4. 서비스 개발
51
조회 원하는 이미지를 업로드 하면
해당 상품에 대한 상품명, 정확도가 표시되도록 구현
My SQL 연동 과정에서
TTS 구현 오류 발생
1) Flask
52
Ⅴ.서비스 구현
Django
4. 서비스 개발
53
2) Django
메인 페이지에서 상품 이미지를 업로드할 수 있도록 구현
동일한 시간 내에 Flask와 Django에서 구현한 서비스 퀄리티를 비교 시
Django가 음성 구현까지 빠르게 완료되어 최종 서비스 구현은 Django에서 진행하기로 결정
과자 이미지 업로드에 대한 설명을 음성으로 구현
만든 사람들, 조회가능한 상품 페이지와 연동
조회를 원하는 상품 이미지를 업로드 할 수 있도록 구현
4. 서비스 개발
54
2) Django
조회 원하는 이미지를 업로드 하면
해당 상품에 대한 상품명, 가격, 정확도가 표시되도록 구현
상품 정보를 음성으로 구현
My SQL에 저장된 DB를 호출하여
예측결과에 맞는 DB 정보를 가져옴
(views.py)
예측 결과를 html에 반영
4. 서비스 개발
55
2) Django
조회된 상품과 연결되는 영양정보 표시 및 음성 구현
(결과 화면의 영양성분보기 버튼 통해서 연결)
• My SQL Nutrition_DB에 저장된 영양정보 호출
• 조회되는 상품명에 해당하는 DB 호출되도록 설정
호출된 영양정보를 화면에 반영
영양정보 음성으로 구현
(파파고 음성합성 기능 활용)
시연 영상
56
출처 : https://www.screencast.com/t/GhGMQPQXS
Ⅵ. 이슈사항
57
1. 데이터 수집 이슈 & 해결방법
58
1. Ai Hub에서 수집된 데이터는 노이즈가 많이 없는
깔끔한 이미지의 데이터였음.
2. 높은 성능을 구현하는 모델을 만들기 위해서는
실제 사용될 것으로 보이는 이미지 데이터가 필요하다 생각되어
네이버 크롤링을 통해 수집
3. 크롤링을 완료하였으나 일부 과자 이미지 중 학습에 사용하기 어려
운 이미지를 제외하니 필요한 만큼의 데이터 수 확보 불가
4. 팀원 각자 분담하여 직접 과자를 구매하였고, 다양한 각도에서 이미
지 촬영 후 이를 학습에 사용
활용 불가 활용 가능
2. 모델링 이슈 & 해결방법
59
1. 기존에 설계한 CNN 모델링 코드는 이미지 데이터를 모델에
적용시 Train, Validation, Test 파일로 나뉘어져
디렉토리 형식으로 적용함.
2. AI-hub에서 제공된 데이터는 과자 카테고리에 따라 분리된
형태라서 기존의 코드를 적용하기 어려워 파일 경로를 재설정하는
번거로움이 있었음.
3. 이미지 데이터를 데이터 프레임 형식으로 불러와 모델이 적용하는
방식으로 진행하기로 함.
4. 코드 구글링 및 실제 모델에 적용하는 과정까지 긴 시간이 소요
3. 서비스 구현 이슈 & 해결방법
60
1) Django 딥러닝 모델 연동 오류
1. 텍스트를 음성으로 변환하여 읽어주는 기능은 구현하였지만,
적용한 모델의 예측 성공률이 지나치게 떨어지는 문제가 발생
2. 원인을 분석한 결과, 이미지를 numpy 배열로 변환하는 기법이 모델
학습 시 사용하였던 기법과 달라 이러한 문제가 발생하였던 것
3. 모델 학습에 사용한 배열 변환 방식으로 다시 코딩한 결과, 문제 없이
상품을 잘 인식하는 것을 확인
3. 서비스 구현 이슈 & 해결방법
61
2) 기존 gTTS 방식의 문제점
1. Audio Player의 사이즈 조절에 제약이 있어 저시력 장애인들이
사용하기에 적합한 사이즈의 버튼 크기를 지원하지 않음
2. 서버 재시작 시 간혹 예측 결과에 맞지 않는 음성 결과를 내보내는
상황이 발생하여 기존 mp3 파일을 지우고 다시 실행해야 하는
번거로움 발생
3. 음성 구현에 적용되는 방식을 Javascript의 speechSynthesis
TTS API 음성 합성 방식으로 변경하여 해결.
3. 서비스 구현 이슈 & 해결방법
62
2) 기존 gTTS 방식의 문제점(화면 비교)
gTTS 방식의 audio player
오디오 플레이어의 사이즈가 너무 작음
이 사이즈 이상의 플레이어를 지원하지 않아서 수정에 제약
SpeechSynthesis API 방식의 audio player
버튼의 사이즈와 색상을 눈에 잘 들어오도록 조정
Before After
4. 서비스 배포 이슈 & 해결방법
63
1. AWS를 통해 사이트를 배포하려고 하였으나
tensorflow, conda 등 사용 도구의 버전 오류 메시지 확인됨.
2. 배포하려는 환경에 설치된 사용도구들의 버전을 변경하였으나
오류가 해결되지 않음
3. 모델링과 서비스 구현을 했던 각각의 라이브러리 버전이 모두 달
라 발생하는 오류로 예상됨.
4. 추후 이러한 문제사항들을 해결하면 배포도 진행해 볼 예정
Ⅶ.결론 및 후기
64
1. 주요 개선사항
65
실시간으로 카메라에 상품을 비추면 100% 정확도를 보이는 시점에
상품 인식을 하여 상품 정보를 알려주는 기능 구현함.
현재는 이 기능만 포함한 웹 페이지를 따로 만들어 봄봄 서비스에서 접속할 수 있도록 조치
1. 주요 개선사항(웹카메라 시연 영상)
66
아직 웹 카메라가 버퍼링이 걸리는 등 세부적으로 기능이 많이 부족한 상태이다.
해당 기능을 보완하여 상품 정보를 알려줄 수 있도록 한다면
사진을 찍어서 업로드하는 번거로움을 덜 수 있다는 장점이 있다.
출처 : https://www.screencast.com/t/YIUyhPbi
2. 추가 개선사항
1. 학습시킨 10개의 과자 이외에도 더 많은 과자의 상품 인식이 가능하도록 성능 개선
2. 과자 이외에도 다른 상품군들 또한 학습을 통해 다양한 상품 인식이 가능하도록 서비스 확장
3. 상품 인식 뿐 아니라 상품의 위치도 알려줄 수 있도록 기능 추가
4. 실제 서비스를 배포하여 사용자들이 유용하게 서비스를 사용할 수 있도록 함.
67
3. 기대효과
68
기업
사용자
1. 기업의 긍정적 이미지 향상
2. 충성도 높은 고객 확보
1. 저시력 장애인들이 보다 신속하게
물건을 구입할 수 있음
2. 저시력 장애인들이 편하게 상품정보,
가격, 영양정보를 획득할 수 있음
4. 활용도구 및 환경
69
모델링 서비스구현 웹디자인 협업툴
5. 소감
💬 권기훈
이번 최종 프로젝트를 통해 DS 파트와 협업하여 딥러닝 모델을 적용시켜 서비스 구현을 성공적으로 잘 마쳤습니다. 모든 팀원들이 각자의 위치에서 자신
이 맡은 바 최선을 다해 큰 문제 없이 유의미한 결과물을 산출할 수 있었던 것 같습니다. 데이터 엔지니어로서 아직은 많이 부족하지만 저 또한 최선을
다했고 최대한 팀원들과 소통하려고 노력하였으며, 필요하다 싶은 부분은 독학하여 프로젝트에 반영하는 등 언제나 도전하는 마음가짐으로 후회 없이 한
것 같습니다. 다시 한 번 우리 팀원들에게 감사합니다.
70
💬 김해니
초반에는 6주라는 기간이 많이 넉넉하다고 생각했는데 막상 프로젝트를 진행해보니 처음 시도하는 것들이 많아 추가적으로 찾아보고,배우고 진행하며
시간을 거의 딱 맞게 쓴 것 같습니다. 기존에는 딥러닝 모델을 만들어보는 것에 그쳤었는데 엔지니어링 파트와 협업하여 실제 서비스로 사용되도록 구현하
는 부분이 정말 흥미로웠습니다. 그 과정에서 현업의 프로젝트와는 차이가 있겠지만 이러한 흐름으로 진행이 되는구나 느끼며 서비스 기획에 대한 관심도
생겼습니다. 혼자서는 하지 못했을 부분들을 같이 하나의 서비스로 만들어내는 과정에서 서로 도움을 주고 받으며 문제 상황을 해결해 나가면서 소통과 협
업의 중요성을 느꼈습니다. 다들 열심히 해 주어서 이러한 결과물이 나온 것 같아 팀원들에게 고맙습니다😊
💬 손정우
DS파트와 DE파트가 모여 협업하는 이번 최종 프로젝트에서 정말 많은 배움이 있었습니다. 공공데이터 사이트의 클린 데이터로는 실성능이 확보되지
않아 크롤링을 시도하였으나, 실사용 이미지 확보에는 부족함이 있었고 이를 직접 촬영하여 채워 나가는 과정은 모델링과 구현 이전에 목적에 맞는 데이터
를 확보하는 것이 정말 어렵고 중요한 과정임을 깨닫게 했습니다. 많은 시간과 공을 들인 모델이 한 줄의 코드 실수로 인해 무효화되는 경험을 해보고, 모델
링 시 코드의 마무리 검토가 얼마나 중요하지 절실히 체감했습니다. 팀원들과 작업을 공유하는 과정에서 OS가 달라서, 혹은 파이썬 버전 마지막 한 자리가
달라 작업물이 열리지 않거나 에러를 뿜어 시간을 소비한 수많은 경험을 통해 협업 시 환경관리, 버전관리가 얼마나 중요한지 느꼈습니다. 마지막으로 상술
한 어려움을 서로 보완하고 도우며 함께 달려온 팀원들에게 정말 감사하다는 말씀 드리고 싶습니다:)
5. 소감
71
💬 장민준
이번 프로젝트를 통해 일의 순서를 배운 것 같습니다. 프로젝트를 시작하기 전에는 뭐부터 해야 하나 고민이 많았는데,프로젝트를 진행하면서 ‘이것을 진행
하기전에는 이것을 해야 하는구나’ 를 알게 되었습니다. 또한 좋은 팀원 분들을 만나서 성공적으로 프로젝트를 마친 것 같습니다. 모두 고생하셨습니다.
💬 정지은
기간이 길었던 만큼 프로젝트와 결과물에 애착이 생기고 마무리하는 데 있어 아쉬움이 많이 남는 것 같습니다. 좋은 팀원 분들을 만나 여러 어려움이 발생
해도 서로 독려하며 함께 해결해 나갈 수 있었기에 마지막까지 힘낼 수 있었다고 생각합니다. 데이터 엔지니어 파트를 소화하는 과정에서 그때그때 생겨나
는 이슈를 주체적으로 해결하고, 그 과정에서 배워가는 것과 앞으로 배워가야 할 부분을 정리할 수 있어 더욱 유의미한 6주가 되었습니다. 이 자리를 빌려서
다시 한번 모두에게 진심으로 감사하고 그동안 고생하셨다고 말씀드리고 싶습니다.
💬 차나래
아직 배워야 할 부분이 많은데 6주 간의 긴 프로젝트에 조장을 맡게 되면서 프로젝트를 잘 진행할 수 있을까 걱정이 많았었습니다. 하지만 팀원분들 모두가
각자 맡은 부분을 열심히 진행해 주셔서 덕분에 프로젝트를 잘 진행할 수 있었습니다. 무엇보다 프로젝트를 진행하면서 가장 중요한 것은 협업이라는 것을
알게 되었습니다. 의사소통하는 방법, 프로젝트를 진행하는 과정을 공유하는 것, 특히 어려운 부분, 문제가 발생했을 때 상황을 바로 공유해 같이 해결하는
과정이 잘 흘러가야 프로젝트도 잘 진행된다고 느꼈습니다. 그 부분에 있어서 저희 조는 모든 과정에 있어서 항상 이야기와 토론을 통해 문제를 해결하는
것이 최우선이었으며 그 덕분에 무사히 프로젝트를 마칠 수 있었다고 생각합니다. 제가 조장으로서 이야기했던 부분이 어렵고, 힘들었던 부분이 있어도
항상 좋은 의견과 어려워도 해보겠다고 하며 좋은 답변만 주었던 우리 팀원 분들 모두에게 가장 감사한 마음을 전합니다.
6. Github Link
72
https://github.com/Kihoon-Kwon/snack_classification.git
프로젝트 II
73
74
Contents
75
01 프로젝트 개요
● 프로젝트 수립 배경
● 목표
● 팀원 소개
● WBS
● Flow chart
03 서비스 구현
● 개발 환경
● DB & 웹크롤링
● 웹사이트 소개
04 개발 후기
● 기대 효과
● 개선 사항
● 후기
● Github Link
02 프로세싱
● 데이터 소개
● 데이터 전처리
● 모델링
01 프로젝트 개요
Chapter
76
프로젝트 수립 배경
Part 1
빙판길에서
넘어진 경험이
있나요?
77
프로젝트 수립 배경
Part 1
78
프로젝트 수립 배경
Part 1
블랙 아이스
온도가 갑자기 떨어져 생기는 도로 위의 살얼음
일반 도로보다 최대 14배, 눈길보다는 6배 더
미끄러움
79
프로젝트 수립 배경
최근 5년 동안 시간대별 교통사고 현황. 도로교통공단 교통사고분석시스템(TAAS)
Part 1
겨울철 결빙사고는 오전 6시~10시 사이에 빈번히 발생
80
염화칼슘
제설제
제설 시스템
자동화
친환경
제설제
도로열선
차량, 교량 부식
환경오염
제설 인력 부족
시공 비용
차량, 교량 부식
환경오염
높은 생산 비용
제설 인력 부족
시공 비용
유지 관리 비용
국내에서 실시 중인 도로 결빙 예방책
프로젝트 수립 배경
Part 1
81
결빙사고 예방 서비스
“기상정보를 활용한 실시간 결빙사고
위험 지역 예측 구간을 표시한
위치 정보맵 웹서비스”
사용자가 이동중인 곳의
결빙사고 위험 지역 정보 제공
목표
Part 1
운전자의 사고 예방에 도움
결빙 방지 작업에 이용
경기도 지역 한정 서비스
82
지역 선택 (시/군) 일자 선택 결빙사고 위험지역
표시 지도
서비스 대상 : 경기 지역의 운전자 및 도로 이용자
목표
Part 1
83
팀원 소개
Part 1
조장
김현지
일정 계획
데이터 수집
데이터 관리 및 전처리
모델링
PPT, 기획안 관리
조원1
권기훈
데이터 수집
데이터 전처리
모델링
DB 설계
웹크롤링
조원2
김윤철
데이터 수집
html 설계
웹크롤링
api 구현
조원3
김지훈
데이터 수집
웹 서버 설계
웹크롤링
api 구현
DB 구축
84
WBS
Part 1
85
10.18 10.19 10.20 10.21 10.24 10.25 10.26 10.27 10.28 11.2 11.3 11.4
프로젝트
관리
프로젝트 계획 수립
프로젝트 착수 보고
중간보고
종료보고
프로젝트
수행
주제 탐색
기상 데이터 수집
사고 데이터 수집
데이터 모델링
실시간 기상데이터 수집
웹서비스 구현
결빙지역 예측구현
프로젝트 발표
Flow chart
Part 1
86
02 프로세싱
Chapter
87
필요한 데이터
Part 2
1
2
지도에 표시해 줄 좌표
결빙사고 위험도 예측모델 데이터
시간 : 결빙사고는 오전 6~10시에 주로 일어남
기온
습도
날씨 : 기상 상황은 결빙 형성에 영향을 줌
88
: 보통 결빙사고는 11~3월 사이에 자주 발생
: 습도가 높을수록 이슬, 서리 발생 빈도가 높다
1시간 간격의
기온, 습도 정보
상습 결빙 구간
위도, 경도
모델링 데이터
(2020-2021)
정보맵 표시
좌표(2022)
결빙사고
데이터
데이터 소개
Part 2
89
데이터 전처리 – 상습결빙구간 데이터
Part 2
90
데이터 전처리 – 결빙사고 데이터 + 기상 데이터 매칭시키기
Part 2
91
데이터 전처리 – 결빙사고 데이터 + 기상 데이터 매칭시키기
Part 2
결빙사고 위험도 예측 모델링에 사고가 나지 않은 시간대의 데이터도 필요하다
92
데이터 전처리 – “피해 없음” 데이터 만들기
Part 2
사고가 발생하지 않은 시간대의 사고내용 및 기상상태를 추가하였다
93
데이터 전처리 – “피해 없음” 데이터 만들기
Part 2
사고 날짜의
다른 시간대의
사고 내용
결측치를 전부
“피해 없음” 으로 치환
같은 날의 기상 상태는
같은 값으로 치환
94
데이터 전처리 – 문자열 수치화
Part 2
피해 없음
부상 신고
경상 사고
중상 사고
사망 사고
0
1
2
날씨 수치
맑음 1
흐림 1
기타 1
비 1.342
눈 1.342
안개 2
1. 사고내용에 따른
사고 위험도 3단계로 나눔
2. 기상상태 사고
영향도에 따른 수치화
3. 전처리 완료
95
• 다항 로지스틱 회귀분석
• 랜덤 포레스트
모델링
Part 2
종속 변수 Y
위험도 0 1 2
독립 변수 X
시간(hour)
기온(°C)
습도(%)
분류
모델
96
모델링 – 알고리즘 성능 비교
Part 2
다항 로지스틱 회귀분석 성능 랜덤 포레스트 성능
랜덤 포레스트 알고리즘의 예측 성능이 더 좋게 나옴
97
모델링 – 하이퍼파라미터 값 조정
Part 2
디폴트 설정 값 파라미터 값 조정 결과
정확도 약 3% 증가
98
모델링 – 변수 중요도
Part 2
기온, 습도, 기상상태의 중요도가 비슷하게 나옴
99
03 서비스 구현
Chapter
100
개발 환경
Part 3
Web, DB Modeling
Language
101
mysql과 goormide
연동
실시간 기상데이터
웹크롤링
데이터 전처리 후
DB에 저장
DB & 웹크롤링
Part 3
102
현재 포트 입력 등록
IP 주소와 외부 포트번호 부여
DB & 웹크롤링 - mysql과 goormide 연동
Part 3
103
※ Selenium 활용
Part 3
웹크롤링 후 기상데이터를 DB에 저장
DB & 웹크롤링
104
Part 3 DB & 웹크롤링
크롤링하는 웹서버에 문제가 생겨도
서비스에는 문제가 없도록 DB 구축
105
Part 3 DB & 웹크롤링
106
Part 3 DB & 웹크롤링
107
지도 API
Part 3
108
카카오맵 API를 이용하여 화면에 표시
웹사이트 소개 – 메인 화면
Part 3
109
웹사이트 소개 – 메인 화면
Part 3
110
웹사이트 소개 – 평택시(11.03 19시)
Part 3
111
웹사이트 소개 – 용인시(11.03 19시)
Part 3
112
웹사이트 소개 – 성남시(11.03 19시)
Part 3
113
04 개발 후기
Chapter
114
기대 효과
Part 4
기상 정보에 따른 사고
위험도를 예측함으로써
더 정확한 결빙구간
주의 정보를 받을 수 있음
1
정확한 정보 알림
예측 정보를 DB에 기록하여
결빙사고 위험구간을
재검토 하는 데 활용
2 예측 데이터 활용
예측 정보를 활용하여
결빙예방 및 제설 작업을
효율적으로 진행
3
제설 관련 기관
115
개선 사항
Part 4
예측모델 추가 변수
결빙사고에 영향을 주는
다른 요인(이슬점온도, 도로형태 등)을
추가로 고려해
더 정확한 예측모델 구현
실시간 정보 반영
실시간 서버 구동 환경을 구축해
서비스 이용 시간에 맞는 정보와
내일, 모레 예보 서비스도
추가 제공
지역 확대
전국 단위로
데이터를 수집하여
서비스 범위를 확대
116
김현지
조장
권기훈
조원
김윤철
조원
김지훈
조원
001 002 003 004
첫 프로젝트 보다 본격적으로
이루어지는 프로젝트였으며 처음
조장을 맡으면서 부족한 부분을
채워가야 했기 때문에 정신없이
지나간 것 같습니다. 다시
돌이켜보면서 미흡했던 점들을
반성하게 되고 다음 프로젝트에
참고하여 더 나은 결과를 내자는
다짐도 하게 되었습니다. 본
프로젝트를 진행하면서 새로
익힌 것들은 분명히 이 다음에
도움이 될 것입니다.
주제 선정부터 서비스 구현까지
하는 데 있어 생각보다 많은 것을
신경써야 했습니다. 그리고 저에게
주어진 역할들을 수행하는 데 있어
그동안 배웠던 부분들을 복습하고
추가 공부도 해야하는 등 신경 써야
할 부분이 참 많았던 것 같습니다.
그럼에도 조원 모두가 주어진
역할에 최선을 다해줘서
프로젝트가 무사히 잘 마무리된 것
같습니다. 개선해야 할 사항도
분명히 있었지만, 추후엔 저에게
부족한 부분을 보완해서 다음
프로젝트에 보다 많이 기여할 수
있도록 노력할 것입니다.
각자의 위치에서 최선을 다해준
조원들에게 감사합니다.
두번째 프로젝트를 진행을
하게되었는데 첫번재 프로젝트 보다
시간도 길어서
좀 더 수월할것 같았지만
데이터 모델링,서비스 구현이 처음이라
시간이 부족할거라고 생각을
못했습니다.
그동안 배운 부분을 접목할려고 했는데
그 부분도 쉽지 않았다고 생각합니다.
서비스의 에로 사항이 많았는데
조장이신 현지님을 필두로
지훈님,기훈님이 많은 부분을
도와주셔서 이 프로젝트를
마칠수 있었던것 같습니다.
다음 프로젝트는 좀더 많은 보완을
통해 모델링과 서비스구현을 잘하고
싶습니다.
프로젝트를 저와 함께 해주신
현지님,지훈님,기훈님에게 감사합니다.
처음 프로젝트를 진행하다 보니
주제 선정부터 쉽지 않았습니다.
그렇지만 모델링, 기획, 서비스
구현 모두 좋은 경험이었습니다.
정확도가 우수하다거나 서비스
구현 모든게 미흡하지만
앞으로 부족한 부분을 채워갈 수
있도록 노력할 것입니다.
프로젝트 조장을 맡아서
진두지휘해주신 조장님,
그리고 각자 역활을 충실히
수행해준 팀원분들께
감사합니다.
개발 후기
Part 4
117
Github Link
Part 4
https://github.com/Kihoon-Kwon/Black-Ice-project.git
118
참고 자료
Part 4
1
2
3
4
5
6
상습결빙구간(행정안전부)
기상청 기상자료개방포털
교통사고분석시스템
sbs뉴스리포트.송욱기자(17.12.10)
경향신문.김기범기자(21.12.09)
조선일보.최효정기자(22.10.20)
119
Thank you
120

Más contenido relacionado

Similar a 권기훈_포트폴리오

빅데이터실습교육 소비분야 영남대_언론정보_20141117
빅데이터실습교육 소비분야 영남대_언론정보_20141117빅데이터실습교육 소비분야 영남대_언론정보_20141117
빅데이터실습교육 소비분야 영남대_언론정보_20141117
Han Woo PARK
 

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

제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크
 
산학 제출 PPT
산학 제출 PPT산학 제출 PPT
산학 제출 PPT
 
AnoGAN을 이용한 철강 소재 결함 검출 AI
AnoGAN을 이용한 철강 소재 결함 검출 AIAnoGAN을 이용한 철강 소재 결함 검출 AI
AnoGAN을 이용한 철강 소재 결함 검출 AI
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience
 
빅데이터실습교육 소비분야 영남대_언론정보_20141117
빅데이터실습교육 소비분야 영남대_언론정보_20141117빅데이터실습교육 소비분야 영남대_언론정보_20141117
빅데이터실습교육 소비분야 영남대_언론정보_20141117
 
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
 
100만 달러짜리 빠른앱 만드는 비법
100만 달러짜리 빠른앱 만드는 비법100만 달러짜리 빠른앱 만드는 비법
100만 달러짜리 빠른앱 만드는 비법
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
 
Image 2 Torrent 발표자료
Image 2 Torrent 발표자료Image 2 Torrent 발표자료
Image 2 Torrent 발표자료
 
Deep Learning for AI (1)
Deep Learning for AI (1)Deep Learning for AI (1)
Deep Learning for AI (1)
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
 
Tiny ml study 20201031
Tiny ml study 20201031Tiny ml study 20201031
Tiny ml study 20201031
 
Case Study를 통해 본 데이터사이언스 협업 플랫폼의 필요성 (옥주영 컨설턴트, Hancom MDS) :: AWS Techforum ...
Case Study를 통해 본 데이터사이언스 협업 플랫폼의 필요성 (옥주영 컨설턴트, Hancom MDS) :: AWS Techforum ...Case Study를 통해 본 데이터사이언스 협업 플랫폼의 필요성 (옥주영 컨설턴트, Hancom MDS) :: AWS Techforum ...
Case Study를 통해 본 데이터사이언스 협업 플랫폼의 필요성 (옥주영 컨설턴트, Hancom MDS) :: AWS Techforum ...
 
좌충우돌 Data Engineering 학습기
좌충우돌 Data Engineering 학습기좌충우돌 Data Engineering 학습기
좌충우돌 Data Engineering 학습기
 
A.I.S팀_산학프로젝트챌린지 (2).pptx
A.I.S팀_산학프로젝트챌린지 (2).pptxA.I.S팀_산학프로젝트챌린지 (2).pptx
A.I.S팀_산학프로젝트챌린지 (2).pptx
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhlee
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 

권기훈_포트폴리오

  • 1. 포트폴리오 목차 지원자 : 권기훈 1 프로젝트 1 : 저시력 장애인들을 위한 상품 인식 서비스 프로젝트 2 : 결빙 사고 예측 서비스
  • 3. 저시력 장애인을 위한 상품 인식 서비스
  • 4. 목차 4 Ⅰ. About bombom 1. bombom이란? 2. 주제 선정 배경 3. 프로젝트 목표 4. 프로젝트 구상 5. 팀원 소개 6. WBS 7. Flow chart Ⅲ.모델링 1. 사용한 모델 2. 실제 학습에 사용한 데이터 3. CNN 4. VGG16 5. ResNet50V2 6. DenseNet201 Ⅱ. 데이터 수집 & 전처리 1. 데이터 수집 2. 데이터 전처리 3. 최종 데이터 구조 Ⅳ. 최종 모델 선정 1. 모델 별 결과 비교 2. 성능 테스트 및 최종선정 Ⅵ. 이슈사항 1. 데이터 수집 이슈 & 해결방법 2. 모델링 이슈 & 해결방법 3. 서비스 구현 이슈 & 해결방법 4. 서비스 배포 이슈 & 해결방법 Ⅴ. 서비스 구현 1. DB 설계 2. 구현 프로세스 3. 서비스 화면 디자인 4. 서비스 개발 1) Flask 2) Django Ⅶ.결론 및 후기 1. 주요 개선사항 2. 추가 개선사항 3. 기대효과 4. 활용도구 및 환경 5. 소감 6. Github Link
  • 6. 1. bombom이란? 6 저시력 장애인을 위한 상품 인식 서비스 출처: https://youtu.be/woiF52DQHc4 저시력 장애인을 대신하여 ‘상품을 본다’는 의미를 담은 상품명 ‘눈’을 닮기도 하고 ‘스피커’를 닮기도 한 모양으로 인식한 상품을 소리로 전달한다는 의미를 담은 로고.
  • 7. 2. 주제 선정 배경 7 시각장애란? 눈과 관련된 여러 가지 장애나 질병으로 인한 손상이나 불능으로 인해 지적·심리적·사회적·직업적 제 분야에서 개인이 불리하게 됨을 의미 67% 33% 시각장애 유형별 분포 형태 6급 기타 6급: 나쁜 눈의 시력이 0.02 이하인 사람 → 저시력 장애인 총 인원 252,957명 중 6급은 169,698명 1) 저시력 장애인이란?
  • 8. 8 출처 : https://nax.naver.com/lowvision/intro 2. 주제 선정 배경 1) 저시력 장애인이란?
  • 9. 9 출처 : https://youtu.be/fq5xQaWaMO0 2. 주제 선정 배경 2) 저시력 장애인의 물건 구매하기(영상 clip)
  • 10. 2. 주제 선정 배경 10 2) 저시력 장애인의 물건 구매하기 설리번플러스
  • 11. 2. 주제 선정 배경 11 3) 유사 서비스 한계점 정확하게 상품 전체의 글자를 찍을 수 없음 설리번플러스 문자인식 기반 시스템 출처 : https://youtu.be/woiF52DQHc4
  • 12. 3. 프로젝트 목표 12 사용자가 저시력자임을 감안한 서비스를 구상하였고, 모델 학습에 반영되었음 → 주 사용자가 저시력 장애인임을 감안한 프로젝트 목표 설정 일부 잘린 사진만으로도 상품을 정확하게 인식할 수 있어야 한다. 저시력 장애인들이 사진을 명확하게 찍기 어려우므로 이 부분에 대한 성능 보장이 되어야 한다.
  • 13. 3. 프로젝트 목표 13 단순하고 직관적인 화면 구성으로 이용 편의성 향상, 웹서비스 구현에 반영되었음 → 주 사용자가 저시력 장애인임을 감안한 프로젝트 목표 설정 잘못된 예시 화면 구성이 저시력자들에게 부적합 올바른 예시 화면 구성이 단순하고 직관적이다
  • 14. 4. 프로젝트 구상 14 사용자 마트 방문 메인 페이지 접속 이미지 업로드 상품인식 상품정보 표기 상품정보 음성안내 포카칩 가격 ... 상품정보 ...
  • 15. 5. 팀원 소개 15 권기훈 [DE] 장민준 [DE] 정지은 [DE] 김해니 [DS] 손정우 [DS] 차나래 [DS] ▪ Django 웹사이트 생성 ▪ 딥러닝 모델 적용 ▪ 음성 서비스 구현(TTS) ▪ ‘메인’, ‘결과’ 페이지 제작 ▪ DB 설계 ▪ DS 파트장 ▪ AI Hub 데이터 수집 ▪ 모델링, 전이학습 - CNN, VGG16, ResNet50V2, DenseNet201 ▪ Figma 웹 디자인 ▪ ‘만든 사람들’ 페이지 제작 ▪ Notion 관리 ▪ Django 웹사이트 생성 ▪ 딥러닝 모델 적용 ▪ 웹 카메라 연동 기능 구현 ▪ ‘결과’ 페이지 제작 ▪ 주간일지 작성 ▪ DE 파트장 ▪ DB 설계 ▪ Flask 웹사이트 생성 ▪ 딥러닝 모델 적용 ▪ ‘메인’,’조회 가능한 상품’ 페이지 제작 ▪ 모델링, 전이학습 – CNN, DenseNet201 ▪ ‘조회 가능한 상품’ 페이지 제작 ▪ 메인 로고 제작 ▪ 주간일지 작성 ▪ 팀장 ▪ 모델링, 전이학습 – CNN, VGG16 ▪ Figma 웹 디자인 ▪ ‘영양정보’ 페이지 제작 및 음성 파일 연동 ▪ Notion 관리
  • 16. 6. WBS 16 항목 세부 11.07~12.16(총 6주) Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 데이터 수집 학습시킬 과자 종류 논의하기 Ai-hub 과자 이미지 데이터셋 수집 웹 크롤링으로 추가 데이터 수집 모델링 1차 모델링(ai-hub 이미지만 적용) 2차 모델링(추가 데이터까지 적용) 3차 모델링(이미지 증강) 전이학습을 통한 최적화 작업 최종 모델 선정 서비스 구현 Django 웹서버 구축 Frontend 개발(HTML, css, JS) 모델 예측결과 웹서비스에 적용 예측결과 음성으로 변환하기 DB에 필요한 데이터 저장 후 연동 과자 상세 정보 서비스 추가 URL 주소 확보 후 웹캠 기능 추가 프로젝트 마무리 최종 점검 및 마무리 프로젝트 ppt 및 보고서 작성 프로젝트 발표
  • 18. Ⅱ. 데이터 수집 & 전처리 18
  • 19. 1. 데이터 수집 19 AI Hub에서 과자 상품 데이터 수집 네이버 검색 이미지 크롤링 직접 과자 상품 촬영하여 수집 검색만으론 이미지가 부족한 과자가 있어 따로 직접 촬영하여 데이터화 직접 생성 과자 10종 (봉지형 6개, 상자형 4개) 바나나킥 포카칩 양파링 벌집핏자 새우깡 꼬북칩 화이트하임 오레오 빼빼로 후렌치파이 1) 수집한 데이터
  • 20. 1. 데이터 수집 20 2) 데이터 크롤링 Auto-crawling 코드를 활용. Keywords.txt 파일에 네이버에서 검색을 원하는 키워드 입력시 Main.py 프로그램이 실행되어 네이버에서 이미지 검색 후 약 200여개의 이미지들이 한번에 수집되도록 진행.
  • 21. 2. 데이터 전처리 21 이미지 데이터가 모두 일정하지 않아 직접 수정 예 시)
  • 22. 3. 최종 데이터 구조 22 • AI-Hub+크롤링+직접수집 데이터 • 1개의 카테고리당 250개 • 총 2500개의 이미지 데이터 • AI-Hub 데이터만 포함 • 1개의 카테고리당 129개 • 총 1290개 의 이미지 데이터 1차 데이터 2차 데이터
  • 24. 1. 사용 모델 24 CNN 전이학습 1. VGG16 2. ResNet50V2 3. DenseNet201 선택이유 1. CNN은 이미지를 인식하기 위해 패턴을 찾는데 특히 유용한 모델 2. 자율주행자동차, 얼굴 인식과 같은 객체인식 분야에 많이 사용되고 있음 ▶ 과자 상품을 인식하는 시스템에 가장 적합한 모델이라고 판단되어 사용 선택이유 1. VGG16은 간단하고 ImageNet 데이터에 널리 사용되는 구조 2. ResNet은 VGG 모델을 뼈대로 사용하여 더 깊은 신경망을 확보하는 모델 3. DenseNet은 ResNet의 깊은 layer로 데이터가 희석되는 것을 데이터 결합으로 방지하며 ResNet 보다 더 많은 layer을 쌓아 성능을 향상시킬 수 있는 모델 ▶ 층이 많은 기존의 모델 중 3개의 모델이 모두 연관성 있다고 판단되어 사용 CNN을 층을 하나하나 설계하고 , 파라미터 값을 조정해서 성능을 향상시키기에는 시간이 많이 필요한 것으로 보여 전이학습 선택. 기존에 있는 다른 모델들 중에서 층이 많아 좀 더 미세한 학습한 가능하다고 보여지는 모델을 선택하여 추가 학습 진행함.
  • 25. 2. 실제 학습에 사용한 데이터 25 1차 2차 3차 사용 데이터 Ai Hub 데이터 크롤링 + 직접 수집 데이터 증강 데이터 수 1290개 2500개 2500개 + 증강 데이터 이미지 15% 확대, 좌우/상하 20% 이동, 좌우반전, 반시계방향으로 15% 회전
  • 27. 3. CNN 27 보다 정확한 비교를 위해 학습에 적용되는 데이터 형태, 학습방법은 모두 같은 값으로 설정 3차 1차 2차 각 모델에 적용되는 데이터 수에 맞추어 학습량 설정 1) CNN 설정값
  • 28. 3. CNN 28 2) 1차 모델링 ( Ai Hub 데이터 ) Accuracy = 1.00000 Loss = 0.00009 노이즈가 없는 깔끔한 이미지로 학습시켰기 때문에 테스트 데이터로 확인시에는 매우 높은 정확도가 나왔지만 이후 실제 사용 이미지로 성능 검증에서 정확도가 떨어지는 것을 볼 수 있음 실제 사용될 것으로 예상되는 이미지로 테스트
  • 29. 3. CNN 29 3) 2차 모델링 ( Ai Hub 데이터 + 크롤링 + 직접수집 ) Accuracy = 0.98000 Loss = 0.17198 실제 사용될 것으로 예상되는 이미지로 테스트 1차 데이터보다 노이즈가 생성된 이미지로 학습하여 테스트 데이터로 확인시에는 정확보다 1차보다 떨어지는 결과가 나옴. 하지만 실제 사용될 것으로 예상되는 이미지로 성능 확인시에는 비교적 높은 정확도를 보였음.
  • 30. 3. CNN 30 4) 3차 모델링 ( Ai Hub 데이터 + 크롤링 + 직접수집 + 데이터증강) Accuracy = 0.99200 Loss = 0.01571 실제 사용될 것으로 예상되는 이미지로 테스트 노이즈가 생성되어 있던 2차 데이터에 증강까지 진행하여 3차에는 보다 더 높은 정확도를 보였음. 성능 확인시에도 높은 정확도가 나옴.
  • 32. 4. VGG16 학습 방법 1. 부분 재학습 2. 전체 재학습 3차 1차 2차 각 모델에 적용되는 데이터 수에 맞추어 학습량 설정 모델별 정확한 비교를 위해 학습에 적용되는 데이터 형태, 학습방법은 모두 같은 값으로 설정 학습이 잘 되도록 Learning rate 조절 1) 설정값
  • 33. 4. VGG16 2) 부분 재학습 2차 데이터 3차 데이터 1차 데이터 테스트 데이터로 확인 시 1차 데이터가 가장 높은 정확도를 보였고, 2차보다는 증강까지 적용한 3차 데이터가 더 높은 정확도를 나타냄. 성능 테스트시에는 cnn 모델과 같은 이유로 3차 데이터가 가장 정확도가 높다는 것을 알 수 있었음 Loss = 0.06344 Accuracy = 0.97600 Loss = 0.04189 Accuracy = 0.99200 Loss = 0.01313 Accuracy = 1.00000
  • 34. 4. VGG16 3) 전체 재학습 2차 데이터 3차 데이터 Loss = 0.02526 Accuracy = 0.99375 Loss = 0.05503 Accuracy = 0.99600 ※1차 데이터는 성능 테스트에서 저조한 결과를 보여 VGG16 전체 재학습 부터 학습 제외함. VGG16 모델 중에서 3차 데이터를 활용한 전체 재학습한 모델이 가장 높은 정화도 값을 보임
  • 36. 5. ResNet50V2 36 모델별 정확한 비교를 위해 학습에 적용되는 데이터 형태, 학습방법은 모두 같은 값으로 설정 학습이 잘 되도록 Learning rate 조절 3차 1차 2차 각 모델에 적용되는 데이터 수에 맞추어 학습량 설정 테스트 데이터 사용시 정확도는 높지만 성능 평가에서는 낮은 성능을 보여 학습 생략 학습 방법 1. 전체 재학습 1) 설정값
  • 37. 5. ResNet50V2 2차 데이터 3차 데이터 Loss = 0.17232 Accuracy = 0.96400 Loss = 0.04970 Accuracy = 0.99200 2) 결과값 2차 데이터 보다 데이터 증강을 적용한 3차 데이터에서 더 낮은 loss값을 보였고, 정확도는 더 높은 값을 나타냄.
  • 39. 6. DenseNet201 39 모델별 정확한 비교를 위해 학습에 적용되는 데이터 형태, 학습방법은 모두 같은 값으로 설정 학습이 잘 되도록 Learning rate 조절 학습 방법 1. 합성곱 기반층 동결 3차 1차 2차 각 모델에 적용되는 데이터 수에 맞추어 학습량 설정 테스트 데이터 사용시 정확도는 높지만 성능 평가에서는 낮은 성능을 보여 학습 생략 1) 설정값
  • 40. 6. DenseNet201 40 Loss = 0.06542 Accuracy = 0.98000 Loss = 0.06088 Accuracy = 0.98800 2차 데이터 3차 데이터 2) 결과 데이터 증강을 적용한 3차 데이터가 Epoch 마다 Validation 데이터에 변화가 있는 것을 보였지만 2차 데이터를 활용한 학습보다는 약간 높은 정확도를 보임.
  • 41. Ⅳ. 최종 모델 선정 41
  • 42. 1. 모델별 결과 비교 42 모델명 데이터 모델 epoch Loss Accuracy 1 1st_cnn_1 1차 CNN 100 0.00009 1.00000 2 2nd_cnn_1 2차 CNN 50 0.17198 0.98000 3 2nd_cnn_2 2차 CNN 50 0.03634 0.99600 4 3rd_cnn_1 3차 CNN 50 0.01571 0.99200 5 1st_vgg16_1 1차 VGG16 30 0.01313 1.00000 6 2nd_vgg16_1 2차 VGG16 30 0.06344 0.97600 7 2nd_vgg16_2 2차 VGG16 30 0.02526 0.99375 8 3rd_vgg16_1 3차 VGG16 30 0.04189 0.99200 9 3rd_vgg16_2 3차 VGG16 30 0.05503 0.99600 10 2nd_ResNet50v2_1 2차 ResNet50V2 30 0.77296 0.88000 11 2nd_ResNet50v2_2 2차 ResNet50V2 30 0.17232 0.96400 12 3rd_ResNet50v2_1 3차 ResNet50V2 30 0.04970 0.99200 13 2nd_densenet201_1 2차 DenseNet201 30 0.06542 0.98000 14 3rd_densenet201_1 3차 DenseNet201 30 0.06088 0.98800
  • 43. 2. 성능 테스트 및 최종 선정 43 선정된 모델들의 실제 성능을 비교하기 위해 이용자들이 사용할 것으로 예상되는 과자 이미지 50장을 추가 수집하여 성능 테스트 진행 순위 모델명 데이터 모델 Loss Accuracy 1 3rd_cnn_1 3차 CNN 0.41865 94.00% 2 3rd_vgg16_2 3차 VGG16 0.45652 92.00% 3 3rd_ResNet50v2_1 3차 ResNet50V2 0.53271 86.00% 4 3rd_densenet201_1 3차 Densenet201 0.72306 84.00% 가장 많은 개수의 이미지를 인식한 CNN 모델로 최종 선정
  • 44. 44 Ⅴ.서비스 구현 DB & 프로세스 & 개발 도구
  • 45. 1. DB 설계 45 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을 각각 저장 후 서비스 구현 시 필요한 데이터 호출 서비스 구현
  • 46. 1. DB 설계 46 ※ 데이터는 AI-hub의 상품 이미지와 함께 각 과자 별 상세정보가 xml 형식으로 다음과 같이 제공된다 (영양정보는 총 내용량, 에너지, 단백질, 지방, 탄수화물까지만 활용하였음) 영양 정보 추출 후 csv로 저장 이후 데이터 MySQL에 삽입 + 추후 수정사항이 있을 땐 shell 환경에서 수정 작업
  • 47. 2. 구현 프로세스 주요 기능 추가 기능 사용자 마트 방문 메인 페이지 접속 이미지 업로드 상품인식 상품정보 표기 상품정보 음성안내 영양정보 안내 만든 사람들 • index.html • 안내 음성 서비스 • 만든 사람들 & 전체 상품 조회 페이지 접근 가능 • index.html • 사용자가 조회 원하는 상품의 이미지를 업로드 할 수 있도록 구현 • 딥러닝 구동 • 최종 선정된 CNN 모델 연동 • pred.html • MY SQL의 테이블 값 연동 • 상품 인식 결과에 맞는 상품 이름, 가격, 정보 확인 가능 • pred.html • 음성 서비스 제공 • MY SQL의 테이블 값 연동 • 상품 인식 결과에 맞는 상품 이름, 가격, 정보 확인 가능 • (과자이름).html • 총 용량, 칼로리, 영양정보 확인 가능 • 음성 서비스 제공 • (과자이름).mp3 • aboutUs.html • 팀 R&R 소개 47 포 카 칩 가격 ... 상품정보 ... 포 카 칩 총 용량 칼로리 탄수화물 단백질 지방-
  • 48. 3. 서비스 화면디자인 48 1. 시각장애인을 고려한 단순하고 직관적인 디자인으로 구성 2. 시각장애인을 고려한 명도 (4.5 : 1 이상) 준수
  • 50. 4. 서비스 개발 50 1) Flask 메인 페이지에서 상품 이미지를 업로드할 수 있도록 구현
  • 51. 4. 서비스 개발 51 조회 원하는 이미지를 업로드 하면 해당 상품에 대한 상품명, 정확도가 표시되도록 구현 My SQL 연동 과정에서 TTS 구현 오류 발생 1) Flask
  • 53. 4. 서비스 개발 53 2) Django 메인 페이지에서 상품 이미지를 업로드할 수 있도록 구현 동일한 시간 내에 Flask와 Django에서 구현한 서비스 퀄리티를 비교 시 Django가 음성 구현까지 빠르게 완료되어 최종 서비스 구현은 Django에서 진행하기로 결정 과자 이미지 업로드에 대한 설명을 음성으로 구현 만든 사람들, 조회가능한 상품 페이지와 연동 조회를 원하는 상품 이미지를 업로드 할 수 있도록 구현
  • 54. 4. 서비스 개발 54 2) Django 조회 원하는 이미지를 업로드 하면 해당 상품에 대한 상품명, 가격, 정확도가 표시되도록 구현 상품 정보를 음성으로 구현 My SQL에 저장된 DB를 호출하여 예측결과에 맞는 DB 정보를 가져옴 (views.py) 예측 결과를 html에 반영
  • 55. 4. 서비스 개발 55 2) Django 조회된 상품과 연결되는 영양정보 표시 및 음성 구현 (결과 화면의 영양성분보기 버튼 통해서 연결) • My SQL Nutrition_DB에 저장된 영양정보 호출 • 조회되는 상품명에 해당하는 DB 호출되도록 설정 호출된 영양정보를 화면에 반영 영양정보 음성으로 구현 (파파고 음성합성 기능 활용)
  • 56. 시연 영상 56 출처 : https://www.screencast.com/t/GhGMQPQXS
  • 58. 1. 데이터 수집 이슈 & 해결방법 58 1. Ai Hub에서 수집된 데이터는 노이즈가 많이 없는 깔끔한 이미지의 데이터였음. 2. 높은 성능을 구현하는 모델을 만들기 위해서는 실제 사용될 것으로 보이는 이미지 데이터가 필요하다 생각되어 네이버 크롤링을 통해 수집 3. 크롤링을 완료하였으나 일부 과자 이미지 중 학습에 사용하기 어려 운 이미지를 제외하니 필요한 만큼의 데이터 수 확보 불가 4. 팀원 각자 분담하여 직접 과자를 구매하였고, 다양한 각도에서 이미 지 촬영 후 이를 학습에 사용 활용 불가 활용 가능
  • 59. 2. 모델링 이슈 & 해결방법 59 1. 기존에 설계한 CNN 모델링 코드는 이미지 데이터를 모델에 적용시 Train, Validation, Test 파일로 나뉘어져 디렉토리 형식으로 적용함. 2. AI-hub에서 제공된 데이터는 과자 카테고리에 따라 분리된 형태라서 기존의 코드를 적용하기 어려워 파일 경로를 재설정하는 번거로움이 있었음. 3. 이미지 데이터를 데이터 프레임 형식으로 불러와 모델이 적용하는 방식으로 진행하기로 함. 4. 코드 구글링 및 실제 모델에 적용하는 과정까지 긴 시간이 소요
  • 60. 3. 서비스 구현 이슈 & 해결방법 60 1) Django 딥러닝 모델 연동 오류 1. 텍스트를 음성으로 변환하여 읽어주는 기능은 구현하였지만, 적용한 모델의 예측 성공률이 지나치게 떨어지는 문제가 발생 2. 원인을 분석한 결과, 이미지를 numpy 배열로 변환하는 기법이 모델 학습 시 사용하였던 기법과 달라 이러한 문제가 발생하였던 것 3. 모델 학습에 사용한 배열 변환 방식으로 다시 코딩한 결과, 문제 없이 상품을 잘 인식하는 것을 확인
  • 61. 3. 서비스 구현 이슈 & 해결방법 61 2) 기존 gTTS 방식의 문제점 1. Audio Player의 사이즈 조절에 제약이 있어 저시력 장애인들이 사용하기에 적합한 사이즈의 버튼 크기를 지원하지 않음 2. 서버 재시작 시 간혹 예측 결과에 맞지 않는 음성 결과를 내보내는 상황이 발생하여 기존 mp3 파일을 지우고 다시 실행해야 하는 번거로움 발생 3. 음성 구현에 적용되는 방식을 Javascript의 speechSynthesis TTS API 음성 합성 방식으로 변경하여 해결.
  • 62. 3. 서비스 구현 이슈 & 해결방법 62 2) 기존 gTTS 방식의 문제점(화면 비교) gTTS 방식의 audio player 오디오 플레이어의 사이즈가 너무 작음 이 사이즈 이상의 플레이어를 지원하지 않아서 수정에 제약 SpeechSynthesis API 방식의 audio player 버튼의 사이즈와 색상을 눈에 잘 들어오도록 조정 Before After
  • 63. 4. 서비스 배포 이슈 & 해결방법 63 1. AWS를 통해 사이트를 배포하려고 하였으나 tensorflow, conda 등 사용 도구의 버전 오류 메시지 확인됨. 2. 배포하려는 환경에 설치된 사용도구들의 버전을 변경하였으나 오류가 해결되지 않음 3. 모델링과 서비스 구현을 했던 각각의 라이브러리 버전이 모두 달 라 발생하는 오류로 예상됨. 4. 추후 이러한 문제사항들을 해결하면 배포도 진행해 볼 예정
  • 65. 1. 주요 개선사항 65 실시간으로 카메라에 상품을 비추면 100% 정확도를 보이는 시점에 상품 인식을 하여 상품 정보를 알려주는 기능 구현함. 현재는 이 기능만 포함한 웹 페이지를 따로 만들어 봄봄 서비스에서 접속할 수 있도록 조치
  • 66. 1. 주요 개선사항(웹카메라 시연 영상) 66 아직 웹 카메라가 버퍼링이 걸리는 등 세부적으로 기능이 많이 부족한 상태이다. 해당 기능을 보완하여 상품 정보를 알려줄 수 있도록 한다면 사진을 찍어서 업로드하는 번거로움을 덜 수 있다는 장점이 있다. 출처 : https://www.screencast.com/t/YIUyhPbi
  • 67. 2. 추가 개선사항 1. 학습시킨 10개의 과자 이외에도 더 많은 과자의 상품 인식이 가능하도록 성능 개선 2. 과자 이외에도 다른 상품군들 또한 학습을 통해 다양한 상품 인식이 가능하도록 서비스 확장 3. 상품 인식 뿐 아니라 상품의 위치도 알려줄 수 있도록 기능 추가 4. 실제 서비스를 배포하여 사용자들이 유용하게 서비스를 사용할 수 있도록 함. 67
  • 68. 3. 기대효과 68 기업 사용자 1. 기업의 긍정적 이미지 향상 2. 충성도 높은 고객 확보 1. 저시력 장애인들이 보다 신속하게 물건을 구입할 수 있음 2. 저시력 장애인들이 편하게 상품정보, 가격, 영양정보를 획득할 수 있음
  • 69. 4. 활용도구 및 환경 69 모델링 서비스구현 웹디자인 협업툴
  • 70. 5. 소감 💬 권기훈 이번 최종 프로젝트를 통해 DS 파트와 협업하여 딥러닝 모델을 적용시켜 서비스 구현을 성공적으로 잘 마쳤습니다. 모든 팀원들이 각자의 위치에서 자신 이 맡은 바 최선을 다해 큰 문제 없이 유의미한 결과물을 산출할 수 있었던 것 같습니다. 데이터 엔지니어로서 아직은 많이 부족하지만 저 또한 최선을 다했고 최대한 팀원들과 소통하려고 노력하였으며, 필요하다 싶은 부분은 독학하여 프로젝트에 반영하는 등 언제나 도전하는 마음가짐으로 후회 없이 한 것 같습니다. 다시 한 번 우리 팀원들에게 감사합니다. 70 💬 김해니 초반에는 6주라는 기간이 많이 넉넉하다고 생각했는데 막상 프로젝트를 진행해보니 처음 시도하는 것들이 많아 추가적으로 찾아보고,배우고 진행하며 시간을 거의 딱 맞게 쓴 것 같습니다. 기존에는 딥러닝 모델을 만들어보는 것에 그쳤었는데 엔지니어링 파트와 협업하여 실제 서비스로 사용되도록 구현하 는 부분이 정말 흥미로웠습니다. 그 과정에서 현업의 프로젝트와는 차이가 있겠지만 이러한 흐름으로 진행이 되는구나 느끼며 서비스 기획에 대한 관심도 생겼습니다. 혼자서는 하지 못했을 부분들을 같이 하나의 서비스로 만들어내는 과정에서 서로 도움을 주고 받으며 문제 상황을 해결해 나가면서 소통과 협 업의 중요성을 느꼈습니다. 다들 열심히 해 주어서 이러한 결과물이 나온 것 같아 팀원들에게 고맙습니다😊 💬 손정우 DS파트와 DE파트가 모여 협업하는 이번 최종 프로젝트에서 정말 많은 배움이 있었습니다. 공공데이터 사이트의 클린 데이터로는 실성능이 확보되지 않아 크롤링을 시도하였으나, 실사용 이미지 확보에는 부족함이 있었고 이를 직접 촬영하여 채워 나가는 과정은 모델링과 구현 이전에 목적에 맞는 데이터 를 확보하는 것이 정말 어렵고 중요한 과정임을 깨닫게 했습니다. 많은 시간과 공을 들인 모델이 한 줄의 코드 실수로 인해 무효화되는 경험을 해보고, 모델 링 시 코드의 마무리 검토가 얼마나 중요하지 절실히 체감했습니다. 팀원들과 작업을 공유하는 과정에서 OS가 달라서, 혹은 파이썬 버전 마지막 한 자리가 달라 작업물이 열리지 않거나 에러를 뿜어 시간을 소비한 수많은 경험을 통해 협업 시 환경관리, 버전관리가 얼마나 중요한지 느꼈습니다. 마지막으로 상술 한 어려움을 서로 보완하고 도우며 함께 달려온 팀원들에게 정말 감사하다는 말씀 드리고 싶습니다:)
  • 71. 5. 소감 71 💬 장민준 이번 프로젝트를 통해 일의 순서를 배운 것 같습니다. 프로젝트를 시작하기 전에는 뭐부터 해야 하나 고민이 많았는데,프로젝트를 진행하면서 ‘이것을 진행 하기전에는 이것을 해야 하는구나’ 를 알게 되었습니다. 또한 좋은 팀원 분들을 만나서 성공적으로 프로젝트를 마친 것 같습니다. 모두 고생하셨습니다. 💬 정지은 기간이 길었던 만큼 프로젝트와 결과물에 애착이 생기고 마무리하는 데 있어 아쉬움이 많이 남는 것 같습니다. 좋은 팀원 분들을 만나 여러 어려움이 발생 해도 서로 독려하며 함께 해결해 나갈 수 있었기에 마지막까지 힘낼 수 있었다고 생각합니다. 데이터 엔지니어 파트를 소화하는 과정에서 그때그때 생겨나 는 이슈를 주체적으로 해결하고, 그 과정에서 배워가는 것과 앞으로 배워가야 할 부분을 정리할 수 있어 더욱 유의미한 6주가 되었습니다. 이 자리를 빌려서 다시 한번 모두에게 진심으로 감사하고 그동안 고생하셨다고 말씀드리고 싶습니다. 💬 차나래 아직 배워야 할 부분이 많은데 6주 간의 긴 프로젝트에 조장을 맡게 되면서 프로젝트를 잘 진행할 수 있을까 걱정이 많았었습니다. 하지만 팀원분들 모두가 각자 맡은 부분을 열심히 진행해 주셔서 덕분에 프로젝트를 잘 진행할 수 있었습니다. 무엇보다 프로젝트를 진행하면서 가장 중요한 것은 협업이라는 것을 알게 되었습니다. 의사소통하는 방법, 프로젝트를 진행하는 과정을 공유하는 것, 특히 어려운 부분, 문제가 발생했을 때 상황을 바로 공유해 같이 해결하는 과정이 잘 흘러가야 프로젝트도 잘 진행된다고 느꼈습니다. 그 부분에 있어서 저희 조는 모든 과정에 있어서 항상 이야기와 토론을 통해 문제를 해결하는 것이 최우선이었으며 그 덕분에 무사히 프로젝트를 마칠 수 있었다고 생각합니다. 제가 조장으로서 이야기했던 부분이 어렵고, 힘들었던 부분이 있어도 항상 좋은 의견과 어려워도 해보겠다고 하며 좋은 답변만 주었던 우리 팀원 분들 모두에게 가장 감사한 마음을 전합니다.
  • 74. 74
  • 75. Contents 75 01 프로젝트 개요 ● 프로젝트 수립 배경 ● 목표 ● 팀원 소개 ● WBS ● Flow chart 03 서비스 구현 ● 개발 환경 ● DB & 웹크롤링 ● 웹사이트 소개 04 개발 후기 ● 기대 효과 ● 개선 사항 ● 후기 ● Github Link 02 프로세싱 ● 데이터 소개 ● 데이터 전처리 ● 모델링
  • 77. 프로젝트 수립 배경 Part 1 빙판길에서 넘어진 경험이 있나요? 77
  • 79. 프로젝트 수립 배경 Part 1 블랙 아이스 온도가 갑자기 떨어져 생기는 도로 위의 살얼음 일반 도로보다 최대 14배, 눈길보다는 6배 더 미끄러움 79
  • 80. 프로젝트 수립 배경 최근 5년 동안 시간대별 교통사고 현황. 도로교통공단 교통사고분석시스템(TAAS) Part 1 겨울철 결빙사고는 오전 6시~10시 사이에 빈번히 발생 80
  • 81. 염화칼슘 제설제 제설 시스템 자동화 친환경 제설제 도로열선 차량, 교량 부식 환경오염 제설 인력 부족 시공 비용 차량, 교량 부식 환경오염 높은 생산 비용 제설 인력 부족 시공 비용 유지 관리 비용 국내에서 실시 중인 도로 결빙 예방책 프로젝트 수립 배경 Part 1 81
  • 82. 결빙사고 예방 서비스 “기상정보를 활용한 실시간 결빙사고 위험 지역 예측 구간을 표시한 위치 정보맵 웹서비스” 사용자가 이동중인 곳의 결빙사고 위험 지역 정보 제공 목표 Part 1 운전자의 사고 예방에 도움 결빙 방지 작업에 이용 경기도 지역 한정 서비스 82
  • 83. 지역 선택 (시/군) 일자 선택 결빙사고 위험지역 표시 지도 서비스 대상 : 경기 지역의 운전자 및 도로 이용자 목표 Part 1 83
  • 84. 팀원 소개 Part 1 조장 김현지 일정 계획 데이터 수집 데이터 관리 및 전처리 모델링 PPT, 기획안 관리 조원1 권기훈 데이터 수집 데이터 전처리 모델링 DB 설계 웹크롤링 조원2 김윤철 데이터 수집 html 설계 웹크롤링 api 구현 조원3 김지훈 데이터 수집 웹 서버 설계 웹크롤링 api 구현 DB 구축 84
  • 85. WBS Part 1 85 10.18 10.19 10.20 10.21 10.24 10.25 10.26 10.27 10.28 11.2 11.3 11.4 프로젝트 관리 프로젝트 계획 수립 프로젝트 착수 보고 중간보고 종료보고 프로젝트 수행 주제 탐색 기상 데이터 수집 사고 데이터 수집 데이터 모델링 실시간 기상데이터 수집 웹서비스 구현 결빙지역 예측구현 프로젝트 발표
  • 88. 필요한 데이터 Part 2 1 2 지도에 표시해 줄 좌표 결빙사고 위험도 예측모델 데이터 시간 : 결빙사고는 오전 6~10시에 주로 일어남 기온 습도 날씨 : 기상 상황은 결빙 형성에 영향을 줌 88 : 보통 결빙사고는 11~3월 사이에 자주 발생 : 습도가 높을수록 이슬, 서리 발생 빈도가 높다
  • 89. 1시간 간격의 기온, 습도 정보 상습 결빙 구간 위도, 경도 모델링 데이터 (2020-2021) 정보맵 표시 좌표(2022) 결빙사고 데이터 데이터 소개 Part 2 89
  • 90. 데이터 전처리 – 상습결빙구간 데이터 Part 2 90
  • 91. 데이터 전처리 – 결빙사고 데이터 + 기상 데이터 매칭시키기 Part 2 91
  • 92. 데이터 전처리 – 결빙사고 데이터 + 기상 데이터 매칭시키기 Part 2 결빙사고 위험도 예측 모델링에 사고가 나지 않은 시간대의 데이터도 필요하다 92
  • 93. 데이터 전처리 – “피해 없음” 데이터 만들기 Part 2 사고가 발생하지 않은 시간대의 사고내용 및 기상상태를 추가하였다 93
  • 94. 데이터 전처리 – “피해 없음” 데이터 만들기 Part 2 사고 날짜의 다른 시간대의 사고 내용 결측치를 전부 “피해 없음” 으로 치환 같은 날의 기상 상태는 같은 값으로 치환 94
  • 95. 데이터 전처리 – 문자열 수치화 Part 2 피해 없음 부상 신고 경상 사고 중상 사고 사망 사고 0 1 2 날씨 수치 맑음 1 흐림 1 기타 1 비 1.342 눈 1.342 안개 2 1. 사고내용에 따른 사고 위험도 3단계로 나눔 2. 기상상태 사고 영향도에 따른 수치화 3. 전처리 완료 95
  • 96. • 다항 로지스틱 회귀분석 • 랜덤 포레스트 모델링 Part 2 종속 변수 Y 위험도 0 1 2 독립 변수 X 시간(hour) 기온(°C) 습도(%) 분류 모델 96
  • 97. 모델링 – 알고리즘 성능 비교 Part 2 다항 로지스틱 회귀분석 성능 랜덤 포레스트 성능 랜덤 포레스트 알고리즘의 예측 성능이 더 좋게 나옴 97
  • 98. 모델링 – 하이퍼파라미터 값 조정 Part 2 디폴트 설정 값 파라미터 값 조정 결과 정확도 약 3% 증가 98
  • 99. 모델링 – 변수 중요도 Part 2 기온, 습도, 기상상태의 중요도가 비슷하게 나옴 99
  • 101. 개발 환경 Part 3 Web, DB Modeling Language 101
  • 102. mysql과 goormide 연동 실시간 기상데이터 웹크롤링 데이터 전처리 후 DB에 저장 DB & 웹크롤링 Part 3 102
  • 103. 현재 포트 입력 등록 IP 주소와 외부 포트번호 부여 DB & 웹크롤링 - mysql과 goormide 연동 Part 3 103
  • 104. ※ Selenium 활용 Part 3 웹크롤링 후 기상데이터를 DB에 저장 DB & 웹크롤링 104
  • 105. Part 3 DB & 웹크롤링 크롤링하는 웹서버에 문제가 생겨도 서비스에는 문제가 없도록 DB 구축 105
  • 106. Part 3 DB & 웹크롤링 106
  • 107. Part 3 DB & 웹크롤링 107
  • 108. 지도 API Part 3 108 카카오맵 API를 이용하여 화면에 표시
  • 109. 웹사이트 소개 – 메인 화면 Part 3 109
  • 110. 웹사이트 소개 – 메인 화면 Part 3 110
  • 111. 웹사이트 소개 – 평택시(11.03 19시) Part 3 111
  • 112. 웹사이트 소개 – 용인시(11.03 19시) Part 3 112
  • 113. 웹사이트 소개 – 성남시(11.03 19시) Part 3 113
  • 115. 기대 효과 Part 4 기상 정보에 따른 사고 위험도를 예측함으로써 더 정확한 결빙구간 주의 정보를 받을 수 있음 1 정확한 정보 알림 예측 정보를 DB에 기록하여 결빙사고 위험구간을 재검토 하는 데 활용 2 예측 데이터 활용 예측 정보를 활용하여 결빙예방 및 제설 작업을 효율적으로 진행 3 제설 관련 기관 115
  • 116. 개선 사항 Part 4 예측모델 추가 변수 결빙사고에 영향을 주는 다른 요인(이슬점온도, 도로형태 등)을 추가로 고려해 더 정확한 예측모델 구현 실시간 정보 반영 실시간 서버 구동 환경을 구축해 서비스 이용 시간에 맞는 정보와 내일, 모레 예보 서비스도 추가 제공 지역 확대 전국 단위로 데이터를 수집하여 서비스 범위를 확대 116
  • 117. 김현지 조장 권기훈 조원 김윤철 조원 김지훈 조원 001 002 003 004 첫 프로젝트 보다 본격적으로 이루어지는 프로젝트였으며 처음 조장을 맡으면서 부족한 부분을 채워가야 했기 때문에 정신없이 지나간 것 같습니다. 다시 돌이켜보면서 미흡했던 점들을 반성하게 되고 다음 프로젝트에 참고하여 더 나은 결과를 내자는 다짐도 하게 되었습니다. 본 프로젝트를 진행하면서 새로 익힌 것들은 분명히 이 다음에 도움이 될 것입니다. 주제 선정부터 서비스 구현까지 하는 데 있어 생각보다 많은 것을 신경써야 했습니다. 그리고 저에게 주어진 역할들을 수행하는 데 있어 그동안 배웠던 부분들을 복습하고 추가 공부도 해야하는 등 신경 써야 할 부분이 참 많았던 것 같습니다. 그럼에도 조원 모두가 주어진 역할에 최선을 다해줘서 프로젝트가 무사히 잘 마무리된 것 같습니다. 개선해야 할 사항도 분명히 있었지만, 추후엔 저에게 부족한 부분을 보완해서 다음 프로젝트에 보다 많이 기여할 수 있도록 노력할 것입니다. 각자의 위치에서 최선을 다해준 조원들에게 감사합니다. 두번째 프로젝트를 진행을 하게되었는데 첫번재 프로젝트 보다 시간도 길어서 좀 더 수월할것 같았지만 데이터 모델링,서비스 구현이 처음이라 시간이 부족할거라고 생각을 못했습니다. 그동안 배운 부분을 접목할려고 했는데 그 부분도 쉽지 않았다고 생각합니다. 서비스의 에로 사항이 많았는데 조장이신 현지님을 필두로 지훈님,기훈님이 많은 부분을 도와주셔서 이 프로젝트를 마칠수 있었던것 같습니다. 다음 프로젝트는 좀더 많은 보완을 통해 모델링과 서비스구현을 잘하고 싶습니다. 프로젝트를 저와 함께 해주신 현지님,지훈님,기훈님에게 감사합니다. 처음 프로젝트를 진행하다 보니 주제 선정부터 쉽지 않았습니다. 그렇지만 모델링, 기획, 서비스 구현 모두 좋은 경험이었습니다. 정확도가 우수하다거나 서비스 구현 모든게 미흡하지만 앞으로 부족한 부분을 채워갈 수 있도록 노력할 것입니다. 프로젝트 조장을 맡아서 진두지휘해주신 조장님, 그리고 각자 역활을 충실히 수행해준 팀원분들께 감사합니다. 개발 후기 Part 4 117
  • 119. 참고 자료 Part 4 1 2 3 4 5 6 상습결빙구간(행정안전부) 기상청 기상자료개방포털 교통사고분석시스템 sbs뉴스리포트.송욱기자(17.12.10) 경향신문.김기범기자(21.12.09) 조선일보.최효정기자(22.10.20) 119