<div>서론</div> <div>필기 인식을 하기 위해서 남긴 질문에</div> <div><br></div> <div>Q. 필기 인식에 관련한 API 는 없을까요?</div> <div>A. OCR 방식 또는 머신러닝에 넣을 문자데이터셋을 찾아서 해보세요.</div> <div><br></div> <div>라는 답변을 얻고 OCR 관련 찾아본 내용을 오유에 남겨둠.</div> <div><br></div> <div><br></div> <div><br></div> <div>본론(간단한 조사 및 사용경험에 대한 내용)</div> <div><br></div> <div>tesseract-ocr 라는 오픈소스 OCR을 찾게 됨. :: 구글에서 지원? 하는 대규모 오픈소스.</div> <div>설치및 사용에는 3.05 버전을 사용하려고 함. (2.xx, 4.00 버전등의 상/하위 버전이 존재하며, 3.04,3.05가 안정적인 버젼인것으로 보임.)</div> <div>설치후, 문제는 기본언어외의 언어팩을 설치파일에서 추가 할 경우 에러가 발생함. 이른 추가적인 언어의 설치파일이 4.00 버젼의 것을 받아오기 때문에 (설치 과정중에 네트워크를 통한 추가언어를 가져오기 때문) 이 문제는 해당 언어 훈련팩 (TrainedData) 을 따로 받아 프로그램의 폴더에 넣어야 함.</div> <div> <a target="_blank" href="https://github.com/tesseract-ocr/tesseract" target="_blank">Tesseract 깃저장소</a></div> <div> <a target="_blank" href="https://github.com/tesseract-ocr/tesseract/wiki/Data-Files" target="_blank">Tesseract 훈련팩</a></div> <div><br></div> <div>설치 후, 몇몇 간단한 소스를 테스트 및 기본적인 조사 (구글링) 하면서 알게 된 것들</div> <div>1. 사진 통째로 넣어도 인식함. (폭넓은 입력)</div> <div>2. 다양한 언어, 기호로 사용가능 (영어부터 한글,한자 및 숫자기호등 다양한 출력형태)</div> <div>3. 단일문자,단어처리도 가능. (추가적인 입력변수등으로) </div> <div>4. 출력단어의 유형이 많을수록, 인식률이 저하. <span style="font-size:9pt;">(한국어, 한자 같은 언어가 이에 해당) </span></div> <div> <div>5. <a target="_blank" href="http://sehyo88.tistory.com/entry/tesseractocr-%EC%97%90%EC%84%9C-%ED%95%9C%EA%B8%80-%EB%AC%B8%EC%9E%90%EC%9D%B8%EC%8B%9D%EC%9D%98-%EB%AC%B8%EC%A0%9C%EC%A0%90" target="_blank">상용프로그램에 비해 낮은 인식률</a> (4번의 영향이 매우 큰것으로 추정)</div></div> <div><span style="font-size:9pt;">6. <a target="_blank" href="https://groups.google.com/forum/#!topic/tesseract-ocr/i_102U2GONg" target="_blank">낮은 인식률에 대해서는 이미지보정 + 경험적&보정 적인 방법을 사용하면 상용프로그램을 이길 수 있음.</a> </span></div> <div><br></div> <div><br></div>OCR 방식 기본이론 <div>원래는 스캔 (스캐너) 에 이용되는 방식을 이용해 (TIFF 형식의 파일들) 그 양식을 문자로 치환하는 방식이나 알고리즘</div> <div>예전에는 바이너리파일형식 (2진데이터) 뿐이었기 때문에, 이를 문자로 치환 하는 방법.</div> <div><br></div> <div>가장 실제적인 례로 슈퍼, 편의점의 제품인식용 바코드기기가 가장 기본적인 OCR 하드웨어</div> <div>원리상의 이론은 QR 코드도 거의 같은 것으로 생각됨.</div> <div>바코드 기기는 1차원배열 (선의 굵기와 간격, 갯수조합) 로 소프트웨어에서 출력</div> <div>QR 코드는 2차원배열을 감식함에 있어, 대상의 정보를 기준점 (3개의 큰 기둥점) 과 그 내부정보를 입력받아, 소프트웨어에서 출력</div> <div> 3개의 기둥은 회전된 경우를 알아보기 위함이고, 내부의 도트들의 위치에 따라 정보를 표시하는것으로 추정된다.</div> <div><span style="font-size:9pt;"><br></span></div> <div><span style="font-size:9pt;">Tesseract 는 이러한 OCR기기에 있어서 소프트웨어 처리부분에 해당된다고 보여진다.</span></div> <div><span style="font-size:9pt;">tesseract 의 특징은</span></div> <div><span style="font-size:9pt;"> - </span><span style="font-size:9pt;">수평입력 (qr코드와 같은 회전된 경우에 대한 판정 X)</span></div> <div><span style="font-size:9pt;"> - 다양한 언어에 맞춰, 해당 훈련팩을 교체하면 된다. (숫자, 영어, 한글 등등 100여 가지의 훈련팩 존재) </span></div> <div><br></div> <div><br></div> <div><span style="font-size:9pt;">결과</span></div> <div><span style="font-size:9pt;"> 본인은 처음에 필기 (혹은 간단한 스캐치) 를 통해서 어떤 유형인지를 판단하기 위한 정도의 수준을 구현하기 위함이었으나, 그 기능 이상의 것들을 쉽게 제공하는 듯 하다.</span></div> <div><span style="font-size:9pt;"><br></span></div> <div><span style="font-size:9pt;"> tesseract 를 이용해서 필기를 인식 가능한가? 라는 부분에서 결과적으로 yes.</span></div> <div><span style="font-size:9pt;">but, 만약 사용자 유형의 스캐치 (ex ┘, ┐,┌ 등의 기호) 를 얻고자 한다면, 해당 훈련팩을 제작하여 사용해야 한다.</span></div> <div><span style="font-size:9pt;"> 이는 곧 제스처 입력 (ex 터치스크린 상에서의 처음 접촉 위치에서 드래그되고 떼어낸 위치 까지의 순서경로정보) 에 대한 프로그램 독자유형을 제작할수 있다고 보여진다. 이것은 기본적인 모션인식 기술의 부분이라고 보여진다.) </span></div> <div><br></div> <div> 추가적으로 생각된 한글의 입력에 있어서, 한글의 경우 조합형 언어이기 때문에, 글자를 적더라도 한획이 추가될때 마다 다른 글자로 바뀌는 유연성이 타 언어 보다 매우 크다. (그에 따른 혼동도 존재.) 만약 한글필기인식 + OCR 을 사용함에 있어서는 특별한 보정기법을 사용해야 할것으로 생각된다.</div> <div> 상용 제품(스마트폰) 에는 어느정도 고안된 방법들이 사용되어야 하지만, 실제로는 화면상의 그림을 그대로 문자와 대조-인식하는 OCR 의 기본기법만이 그대로 적용된 것으로 보이지만, 그래도 꽤 괜찮은 수준으로 보인다. 네이버한자검색등의 필기검색은, 한자 찾기가 매우 수월해 보이기도 한다.</div> <div><br></div> <div> 그러나, 필기는 본 의미는 검색용 임시조각이 아니라 말 그대로 "필기" 이다. 필기의 완성은 그것을 필기하고, 다른 사람들이 모두 똑같이 인식되는것으로 바꿔주는 것 (OCR기기의 인식으로 표현하고자 하는 대상의 행동수행) 이 가장 기본적인 목적이라고 생각한다.<span style="font-size:9pt;"> </span></div> <div><br></div> <div> 이 표현에 있어서 독자적인 표현 <strike>(중2병문자 인식)</strike> 도 가능하기 때문에, 넓은 분야에서 이 기법(도구) 는 즉시 활용 할 가치가 높은것으로 생각된다.</div> <div><br></div> <div><br></div> <div>이상으로 답변 받은 내용에 대한 짧은 조사내용와 개인적인 의견을 남기는 걸로 질문답변에 대한 감사를 표합니다.</div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.