Hyunjun

fix README

1 -1. 계획서 업로드 1 +Automatic Calculation System with Image Recognition deep running
2 +=================================================================================================================================
3 +Service introduce
4 +---------------------------------------------------------------------------------------------------------------------------------
5 +
6 +>편의점이나 대형마트에서는 바코드 스캐닝 시스템을 사용하고 있다. 이와 같은 방법으로는 바코드를 찾기 위한 시간이 지체되거나 바코드가 손상되어 인식이 어려운 경우등 바코드 스캐닝을 이용하는데에 문제점이 발생한다.
7 +따라서 본 논문에서는 이와 같은 기존의 바코드 계산 시스템의 문제들을 해결하기 위해 이미지 인식 딥러닝 기반의 자동 계산 시스템을 제시한다.
8 +
9 +
10 +Supported Platforms & Test Environments
11 +---------------------------------------------------------------------------------------------------------------------------------
12 +
13 +>Raspberry Pi 3 Model B
14 +Paspberry Pi Camera Rev. 1.3
15 +Ubuntu MATE 16.04.2
16 +C++ 컴파일러 버전 11이상
17 +
18 +
19 +Application Project Setup
20 +---------------------------------------------------------------------------------------------------------------------------------
21 +
22 +>1. 프로젝트 Clone
23 +
24 +>2. 쉘파일에 권한 부여
25 +~~~
26 +chmod +x ./predict.sh
27 +~~~
28 +
29 +>3. c++코드 컴파일
30 +~~~
31 +g++ -std=c++11 main.cpp
32 +~~~
33 +
34 +>4. 실행
35 +~~~
36 +./predict.sh
37 +~~~
38 +
39 +
40 +Detail
41 +---------------------------------------------------------------------------------------------------------------------------------
42 +
43 +>1. 계획서 업로드
2 [강현준, 권은진, 김효은, 하미르] 라즈베리파이에 이미지 프로세싱 딥러닝을 적용한 자동화 계산 시스템 44 [강현준, 권은진, 김효은, 하미르] 라즈베리파이에 이미지 프로세싱 딥러닝을 적용한 자동화 계산 시스템
3 45
4 46
5 -2. 중간보고서(논문) 업로드 47 +>2. 중간보고서(논문) 업로드
6 [강현준, 권은진, 김효은, 하미르] 이미지 인식 딥러닝을 적용한 자동화 계산 시스템_중간보고서(논문) 48 [강현준, 권은진, 김효은, 하미르] 이미지 인식 딥러닝을 적용한 자동화 계산 시스템_중간보고서(논문)
7 49
8 50
9 -3. simple_convnet 원본코드 업로드 51 +>3. simple_convnet 원본코드 업로드
10 52
11 53
12 -4. params.pkl->params.csv 54 +>4. params.pkl->params.csv
13 프로그램의 속도보장을 위해 python->c++ 컨버팅 작업이 필요함 55 프로그램의 속도보장을 위해 python->c++ 컨버팅 작업이 필요함
14 python 코드에서 가중치를 pickle 파일에 저장하는데 c++에서는 pickle 파일을 읽는 데에 어려움이 있음 56 python 코드에서 가중치를 pickle 파일에 저장하는데 c++에서는 pickle 파일을 읽는 데에 어려움이 있음
15 pickletools라는 라이브러리가 있지만 에러가 많고, 자바, 파이썬, C++ 여러 언어를 지원해 무겁기 때문에 속도를 올리기 위한 컨버팅 작업에는 적절하지 않음 57 pickletools라는 라이브러리가 있지만 에러가 많고, 자바, 파이썬, C++ 여러 언어를 지원해 무겁기 때문에 속도를 올리기 위한 컨버팅 작업에는 적절하지 않음
16 그래서, 파라미터를 저장하는 부분을 csv로 바꿔 C++에서 그 파일로 읽기위해 params.pkl을 params.csv로 바꾸는 코드를 추가함 58 그래서, 파라미터를 저장하는 부분을 csv로 바꿔 C++에서 그 파일로 읽기위해 params.pkl을 params.csv로 바꾸는 코드를 추가함
17 59
18 60
19 -5. params.pkl->params.txt 61 +>5. params.pkl->params.txt
20 입력처리할 때 csv파일로 읽으면 속도가 느림 62 입력처리할 때 csv파일로 읽으면 속도가 느림
21 이 또한 속도를 올리기 위한 컨버팅 작업의 목적에 맞지 않기 때문에 params.pkl 파일을 csv 파일이 아닌 txt 파일로 바꿈 63 이 또한 속도를 올리기 위한 컨버팅 작업의 목적에 맞지 않기 때문에 params.pkl 파일을 csv 파일이 아닌 txt 파일로 바꿈
22 64
23 65
24 -6. python test 코드 추가 66 +>6. python test 코드 추가
25 test하는 부분만 골라내기 위해 python test 코드를 추가(test.py), simple_convnet 내용 추가 67 test하는 부분만 골라내기 위해 python test 코드를 추가(test.py), simple_convnet 내용 추가
26 68
27 69
28 -7. python test 폴더 추가 70 +>7. python test 폴더 추가
29 python test 폴더에는 test에 필요하지 않은 train 부분을 삭제함 71 python test 폴더에는 test에 필요하지 않은 train 부분을 삭제함
30 72
31 73
32 -8. make_img.py 추가 74 +>8. make_img.py 추가
33 이미지를 불러와 (32,32,3)의 크기로 resize한 후 input.txt에 저장함 75 이미지를 불러와 (32,32,3)의 크기로 resize한 후 input.txt에 저장함
34 76
35 77
36 -9. simple_convnet_cpp 코드 추가 78 +>9. simple_convnet_cpp 코드 추가
37 1) layers.hpp : Convolution, ReLu, Normalization, Pooling, DW_Conv등 각 layer가 구현 79 1) layers.hpp : Convolution, ReLu, Normalization, Pooling, DW_Conv등 각 layer가 구현
38 2) SimpleConvNet.hpp : 딥러닝 모델이 구현 80 2) SimpleConvNet.hpp : 딥러닝 모델이 구현
39 3) input.txt : make_img.py코드로 만든 이미지를 (32,32,3)의 크기로 만들어 txt파일로 저장 81 3) input.txt : make_img.py코드로 만든 이미지를 (32,32,3)의 크기로 만들어 txt파일로 저장
...@@ -44,39 +86,39 @@ python test 폴더에는 test에 필요하지 않은 train 부분을 삭제함 ...@@ -44,39 +86,39 @@ python test 폴더에는 test에 필요하지 않은 train 부분을 삭제함
44 *프로젝트 생성 시 sdl 검사 체크 해제 86 *프로젝트 생성 시 sdl 검사 체크 해제
45 87
46 88
47 -10. google_image_crwaling 코드 추가 89 +>10. google_image_crwaling 코드 추가
48 필요한 데이터셋을 만들기 위한 google_image_crwaling 코드 추가 90 필요한 데이터셋을 만들기 위한 google_image_crwaling 코드 추가
49 91
50 92
51 -11. chrome_crwaling 확장프로그램 추가 93 +>11. chrome_crwaling 확장프로그램 추가
52 앞서 만든 코드는 1회에 20장의 사진만 다운로드 가능 94 앞서 만든 코드는 1회에 20장의 사진만 다운로드 가능
53 데이터셋을 만들기 위해서는 훨씬 더 방대한 양의 데이터가 필요함 95 데이터셋을 만들기 위해서는 훨씬 더 방대한 양의 데이터가 필요함
54 googel chrome의 확장프로그램을 활용한 구글 이미지 검색 결과 크롤링 프로그램 구현 96 googel chrome의 확장프로그램을 활용한 구글 이미지 검색 결과 크롤링 프로그램 구현
55 97
56 98
57 -12. simple_convnet_rasberryPi 코드 추가 99 +>12. simple_convnet_rasberryPi 코드 추가
58 라즈베리파이에서 구동되는 코드 추가 100 라즈베리파이에서 구동되는 코드 추가
59 make_img.py에서는 라즈베리파이에 연결된 카메라가 촬영을 하면 그 사진을 32*32*3 사이즈로 resize해준 후 input.txt파일로 변환해줌 101 make_img.py에서는 라즈베리파이에 연결된 카메라가 촬영을 하면 그 사진을 32*32*3 사이즈로 resize해준 후 input.txt파일로 변환해줌
60 main.cpp에서 convnet 코드 실행 102 main.cpp에서 convnet 코드 실행
61 predict.sh 쉘파일로 전체 실행 103 predict.sh 쉘파일로 전체 실행
62 104
63 105
64 -13. dataset 추가 106 +>13. dataset 추가
65 image_process.py : cropping을 통해 정사각형 형태를 만들고 32*32 크기로 resize, 사진 반전, 회전을 통해 사진 1개당 8개의 데이터를 생성 107 image_process.py : cropping을 통해 정사각형 형태를 만들고 32*32 크기로 resize, 사진 반전, 회전을 통해 사진 1개당 8개의 데이터를 생성
66 크롤링을 통해 휴지, 소주, 캔음료, 라면, 삼각김밥 각각 500개씩의 이미지를 다운받음 108 크롤링을 통해 휴지, 소주, 캔음료, 라면, 삼각김밥 각각 500개씩의 이미지를 다운받음
67 한 카테고리당 4000개의 데이터를 생성 109 한 카테고리당 4000개의 데이터를 생성
68 110
69 111
70 -14. data.bin.gz 112 +>14. data.bin.gz
71 직접 만든 데이터셋. 32*32의 이미지를 rgb로 분리하여 이미지 1개당 3072개의 데이터, 1개의 label을 포함하여 3073개의 데이터를 갖음 113 직접 만든 데이터셋. 32*32의 이미지를 rgb로 분리하여 이미지 1개당 3072개의 데이터, 1개의 label을 포함하여 3073개의 데이터를 갖음
72 114
73 115
74 -15. params.pkl 추가 116 +>15. params.pkl 추가
75 제작한 데이터셋을 트레이닝하고 나온 가중치를 저장한 params.pkl 파일 추가 117 제작한 데이터셋을 트레이닝하고 나온 가중치를 저장한 params.pkl 파일 추가
76 118
77 119
78 -16. simple_convnet_rasberryPi 코드 추가 120 +>16. simple_convnet_rasberryPi 코드 추가
79 인식한 결과에 따라 계산서가 나오도록 코드를 추가 121 인식한 결과에 따라 계산서가 나오도록 코드를 추가
80 122
81 123
82 -17. 최종 발표 ppt 및 데모 영상 추가
...\ No newline at end of file ...\ No newline at end of file
124 +>17. 최종 발표 ppt 및 데모 영상 추가
...\ No newline at end of file ...\ No newline at end of file
......