1. Photo OCR Pipeline
1) 이미지를 받는다
2) Text Detection : 글자가 있는 영역을 찾는다
3) Character Segmentation : 문자의 구역을 나눈다 ex. 안녕 -> 안/녕
4) Character Recognition : 글자를 인식한다
** Pipeline 뜻 : "전체적인 문제 해결 틀" 이라고 생각하자. 이 문제를 어떤 단계를 거쳐서 해결할 것인가?
2. Sliding Windows
- 이미지에서 사람 찾아내기 예시
1) 특정 크기의 사람 사진 데이터들을 수집한다
2) 사람이 맞을 경우, y=1 을 feed 하고, 아니면 y=0 을 feed한다
3) 2번 과정을 통해서 계속 학습을 한다
--------------------------------------------- 학습 완료
4) 사진에서, detecting하는 사이즈를 조금씩 늘리면서 사진을 훑는다
5) 이떄, detecting하는 부위는, 마치 window를 sliding 하듯이 아래쪽, 오른쪽으로
움직인다
- 이미지에서 글자 찾아내기 예시 (1단계) - 찾아내기만 함. 아직 인식하진 못함
1) 특정 크기의 글자 사진 데이터를 수집한다
2) 글자가 맞으면 y=1, 아니면 y=0을 feed 한다 -> 학습
--------------------------------------------- 학습 완료
3) 사진에서, 특정 size로 detection을 실시한다
4) 글자로 의심될 경우, 흰색 pixel로 칠하고
글자가 아니라고 생각될 경우, 검은색 pixel로 칠한다
5) Expansion을 한다 : 흰색 pixel 부분의 크기를 넓혀서, 주변에 다른 글자들과 연결되는게
있는지 확인한다. 연결될 경우, 그 글자들은 유효하다
** 연결되지 않는 글자들의 경우, 문자로 인식하기엔 부족하다고 판단한다
- 이미지에서 글자 구분하기 (2단계) - Character Segmentation
1) 문자를 구분하는 사진 데이터들을 수집한다
2) 글자를 구분할 경우 y=1, 못할 경우 y=0
** ex. AB 가 있을경우, y=1 (why? A|B 이런식으로 구분이 가능한 사진 데이터이므로)
------------------------------------------------- 학습 완료
3) Sliding window 하듯이, Segmentation을 한다
(단, 얘는 1D 과정이라는게 독특. 즉, 한줄만 관찰하면 된다. 아래위로 움직일 필요 없음)
3. 추가 데이터를 얻는 방법
- 큰 틀에서의 방법 :
1) 아예 새로운 데이터를 만들기 (직접, 노가다)
2) 갖고 있는 trainning set 을 변형해서 새 데이터 만들기 (짝퉁 만들기)
- 데이터 얻는 방법 예시 (1) : 폰트
1) 아예 새로운 데이터 만들기 : 인터넷에 널린 폰트들을 직접 뗴와서 데이터셋을 만든다 (쌩노가다)
2) 갖고있는 자료 변형하기 :
- 갖고 있는 폰트에다가 그림자를 넣든,
- 얼룩을 묻히든
- 글자를 구부리는 등. 변형을 가한다
- 데이터 얻는 방법 예시 (2) : 목소리
1) 아예 새로운 데이터 만들기 : 일일이 사람들 모아서 음성 얻어야 됨 (쌩노가다)
2) 갖고있는 자료 변형 :
- 음성에다가 자동차소리를 넣든
- 별의 별 쓸데없는 소리를 넣는다
- 데이터 얻을때 주의점 :
1) 데이터셋을 확장시키기 전에, 제대로 된 low bias classifier를 만들었는지를 확인해야 한다
2) 현재의 데이터의 10배의 데이터를 얻으려면 얼마나 더 많은 시간이 필요한지 먼저 확인하자
-> 생각보다 적은 시간이 들수도 있고, 생각보다 너무 많은 시간이 걸릴수도 있다
3) 여러가지 방법의 데이터 수집 방식을 활용한다
- 새로운 데이터를 만들거나 갖고 있는 자료를 변형 (위에서 언급)
- crowd source를 활용 (돈 주고 사이트에서 데이터를 얻어옴)
4. Ceiling Analysis : 어떤 곳에 시간을 투자해서 학습할것인가?
- 방식 : 전체의 accuracy를 기준으로 판단한다
- pipeline 중 특정 단계를 수행했을때, accuracy 상승도가 매우 적거나, 상대적으로 적은지 확인한다
- 그런 경우가 있다면, skip 하거나, 좀 더 accuracy를 크게 상승시키는 pipeline 단계가
있다면, 그 단계에 더 시간을 투자한다
'기계학습 > 코세라 - 기계학습 (Andrew Ng)' 카테고리의 다른 글
(개념별 정리) 오버피팅, 회귀 (0) | 2019.08.17 |
---|---|
(개념별 정리) Regularization (0) | 2019.08.17 |
week10 (0) | 2019.08.14 |
week9 (0) | 2019.08.14 |
week8 (2) (0) | 2019.08.14 |