텐서플로로 OCR 개발해보기: 문제점과 문제점과 문제점
- OCR 이란?
Optical character recognition
사람이 쓰거나 기계로 인쇄한 문자의 영상을 이미지 스캐너로 획득하여 기계가 읽을 수 있는 문자로 변환하는 것이다.
- 기본 모델을 만들 때
모델의 각 모듈들을 간단히 테스트 할 수 있는 테스트 케이스를 만들자
데이터셋을 작게 유지해서 실험
* 런타임 도중 오류가 나는 것은 tf.Print 로 찍어보자
- 기본 모델이 돌아가기 시작한다면
여러 모델 구조와 dataset 으로 실험을 하면서 최적의 set 을 찾자
물론 새로 만드는 모듈들은 테스트 케이스를 만들자
- 3가지 요소
1. Convolutional layer - 가중치와 바이어스로 구성
2. Recurrent layer - RNN
3. CTC algorithm
- LSTM : 병렬계산, 병목
Long Short Term Memory networks
특별한 종류의 RNN
* 모든 RNN 은 뉴럴 네트워크의 반복되는 체인으로 구성되어 있습니다.
- LSTM 도 마찬가지로 체인구조를 가지고 있습니다. 하지만 반복되는 모듈은 다른 구조를 가지고 있습니다.
- LSTM 은 단일 뉴럴 네트워크 레이어를 가지는 것 대신에, 4개의 상호작용 가능한 특별한 방식의 구조를 가지고 있습니다.
- CTC
* CTC 는 학습데이터에 클래스 라벨만 순서대로 있고 각 클래스의 위치는 어디있는지 모르는 unsegmented 시퀀스 데이터의 학습을 위해서 사용하는 알고리즘이다.
딥러닝을 이용한 얼굴인식
- MSCeleb-1M (ECCV 2016) - Challenge of Recognizing One Million Celebrities in the Real World
- VGGFace2 (FG 2018) -> 한국인 인식률이 떨어진다
- A dataset for recongnising faces across pose and age
Network : resnet-34
embeddin size : 256
Optimizer : Adam
Softmax
- kakao Database
모으고 GT 찍고, 성능 높이고, 또 모르고, 또 GT 찍고, 성능 높이고, (자동화 하고), 성능 높이자.
당연히... 자동화해서 자료모으고 성능 높이면 인식률이 올라가겠지
- LFW protocol 사용
- LFW2008 - Labeled Faces in the Wild
- 카카오 얼굴 인식 API 연내 API 오픈 계획
감상
- 효과적인 방법을 찾아다녔고 제일 성능 좋은 것을 활용했다 인 듯...
- 오전시간을 듣고 느낀 점 : 거의 데이터를 어떻게 가공해서 여기에 넣었어요! 느낌인 듯...
- 그리고 엄-청나게 구체적인 설명은 하지않는다. 발표자도 얘기하지만 회사내부 보안사항 (내부 자체기술? 정도로 이해하면 되려나...) 이기 때문
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드
- 일반적으로 사용하는 라이선스
MIT - MIT 에서 해당 대학의 SW 공학도들을 돕기 위해 개발한 라이선스 - iOS 는 MIT 라이선스 비율이 높음
Apache - 아파치 재단의 모든 SW 에 적용되는 라이선스
BSD 의무사항 + 특허권 (GPL2.0 으로 배포되는 코드와는 결합 불가능)
적용사례 : 안드로이드 (v2.0), 하둡(v2.0)
- 이걸 다루는 이유?
오픈소스 Compliance 이슈 증가
전 세계 공개 SW 단체에 의한 모니터링
- 단체에서 소송거는 경우 패소할 확률이 매우 높다고 한다.
- Google Oracle 자바 소송
Google 이 Android 에 java api 37개 사용
현재 구글이 소송에서 불리한 상태 안드로이드 소스 배포시 소스가 수정되어 광고등도 심어져서 배포가 되기 때문
* 구글이 소송에서 질 경우 삼성, LG 등 국내 제조업체도 타격이 있음
- GPL 알고 씁시다!
GPL 사용 = GPL 로 소스코드 공개 (상업용 목적의 프로그램에서는 거의 사용 불가)
GPL2.0 + Apache2.0 = 배포 불가능
* LGPL2.1 + Apache2.0 = 결합방식에 따라 배포 불가능 할 수 있음
- 카카오의 오픈소스 Guidance
회사의 오픈소스를 관리하는 별도 팀을 운영
팀을 운영하게 된 계기는 다음 + 카카오 합병이 컸다고 한다.
Hermes
Dependency 관리
고지문 발급 자동화
Protex 연동 -> 구매해서 사용
* OSS DB 구축을 통한 검증 데이타 고도화
액티브X 없는 블록체인 기반 PKI 시스템
- PKI
공개키 기반 암호화
전자서명
공인인증서
액티브X
금융결제원은 공인인증서의 발급건수에 따라 은행으로부터 운영 실비를 받는다.
금결원 감사 자리를 금융위원회, 기획재정부 출신들이 차례로 맡는다.
* 금결원 감사자리는 손쉽게 큰 이익을 얻을 수 있는 자리이다.
- BitCoin
비트코인 공개 네트워크 활용
카카오 페이 처음 개발당시에는 비트코인을 제외한 다른 대안이 없어서 비트코인을 이용해서 카카오 페이 개발을 했다고 함
블록생성 10분
Waiting for 6 Confirmations
블록포함 시점 불분명
6개의 확인을 받기 전까지 2주 동안 블록이 포함되지 못하는 경우도 발생했다.
- HYPERLEDGER FABRIC
Enterprise
리눅스 재단에서 엔터프라이즈 목적으로 개발한 블록체인
블록생성 2초
Immediate Finality
* 즉시 블록 포함
- 인상적이였던 질문 : BitCoin 방식을 사용하게 되면 카카오 서버에 사용자 정보가 올라가있는 시간이 긴 것이 아닌가... 결국 카카오 서버를 믿어야 되지 않느냐
- 답변 : BitCoin 방식을 썼을 땐 그럴 수 밖에 없었다. 하지만 지금은 하이퍼레저 패브릭 방식으로 바꿈으로써 카카오 서버에 사용자 정보가 올라가있는 시간을 줄였다.
하이퍼레저 패브릭도 만능은 아닐 텐데 단점을 덮으려는 느낌을 받았다.
카카오가 가지고 있는 음성처리 기술
- ECHO CANCELLATION : 주위 잡음을 제외하고 음성인식을 하는 기술
- Combi wake up : '헤이 카카오!' 라고 부르면 wake up
- Far-field, noisy audio : 넓은 공간에서 노이즈가 심해도 인식할 수 있는 기술에 대해서 설명하는게 아닐까...?
- Traning : 학습
- Speaker Verification : 화자를 구별하는 기술
- TTS
DNN
Seq2seq 기반 end-to-end 학습하여 더욱 자연스러운 합성음 생성
Generative 고품질 음성 합성 모델링
소용량 음성 DB로 저비용 음성합성
- Services that using Kakao Speech Engine
- 인상적이였던 질문 : G 사와 비교 테스트를 했을 때 G 사 보다 더 낫다는 결과가 나왔는데 테스트를 어떻게 하셨나요?
- 답변 : 사용자 경험기반 테스트 였다. 써보신 분들이 G 사 보다 더 낫다는 평을 했다.