Showing
2 changed files
with
59 additions
and
17 deletions
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 | ... | ... |
No preview for this file type
-
Please register or login to post a comment