본문 바로가기

문자인식

Hand-written Recognizer with BP : 도형인식 데모 BP 학습 알고리즘 테스트 용으로 만든 Hand-written Recognizer. 마우스를 사용하더라도, 붓으로 쓰는 것 처럼 획의 굵기를 조절하는 알고리즘을 구현해 봤는데 괜찮은지 모르겠다. 세모(△), 네모(□), 점(●), 곱표(X) 등 네 개의 모양에 대해 테스트 한 결과, 만족할만한 성능을 발휘. 몇몇가지 버그들을 수정한 다음 본격적으로 다양한 모양, 문자 등에 대한 학습도 진행해 보아야 겠다.
BP를 이용한 문자 학습 및 인식 부제 : BP를 이용한 ㄱ, ㄴ, ㄷ 학습 및 인식 이전 글에 이어, 알고리즘을 수정하고 BPNET 클래스를 만들어서 테스트. 주요 추가/수정 내용으로, 1) 초기 연결 강도를 자동으로 설정 2) 일반 BP 학습법과 모멘텀 BP 알고리즘 선택 가능 3) 출력값이 1차원이던 것을 다차원 가능한 형태로 수정 4) 기타 잡다한 버그 수정 수정된 BP 알고리즘을 이용하여, 아래 그림의 문자들을 학습 입력벡터 : x1 = { 1, 1, 1, 0, 0, 1, 0, 0, 1} x2 = { 1, 0, 0, 1, 0, 0, 1, 1, 1} x3 = { 1, 1, 1, 1, 0, 0, 1, 1, 1} 목표 : t1 = { 0, 0 } t2 = { 0, 1 } t3 = { 1, 0 } 학습결과 아래와 같이 연결강도가 변경됨..
문자인식 강좌 02. 문자영역 추출기법 - 1 첫 번째 소개할 문자 영역 추출 기법은 가장 고전적인 방법으로, 모폴로지 연산을 이용하여 문자 영역을 추출하는 방법이다. 모폴로지란 영상을 형태학적 관점에서 보고 접근하는 방법으로, 연산 결과를 눈으로 볼 수 있어서 이해가 쉽다는 장점이 있으며, 대표적인 모폴로지 연산의 예로는 침식(erosion)연산과 팽창(dilation)연산이 있다. 가. 침식(erosion)연산 침식연산은 연산의 이름에서 보듯 깍아나간다는 뜻으로, 정해진 영역(window) 내에서 가장 작은 값을 픽셀 중심부의 값으로 바꾸는 최소값(min)필터의 역할을 한다. 이진영상에서는 객체(object)영역을 흰색으로 볼 때 이들 영역이 줄고 검은색 영역이 늘어나며, 그레이영상(또는 컬러영상)에서는 밝은 영역이 줄고 어두운 영역이 늘어나는 ..
문자인식 강좌 01. 문자 인식 개론 안녕하세요 마틴입니다. 문자인식이라는 광범위한 주제의 강좌를 본격적으로 진행해 보고자 합니다. 사실, 문자인식 분야를 제법 오~래 공부해온 저 나름의 자존심 문제도 있고 해서, 어려운 논문들을 참조해가며 체계적이고 또한 학문적인 강좌를 진행하고 싶은 욕심이 컸지만, 금새 바닥을 보일 실력... 거짓말은 하지 말자는 생각에, 이야기 하기 쉽고 많은 사람들이 공감할 수 있는 내용들을 이곳에 정리해 가는 것이 원래 강좌를 시작한 취지에도 맞고 훨씬 바람직하다는 생각이 들었습니다. 역시 그러한 과정에서 저 스스로도 많이 배우고 또 깨달을 수 있는 계기가 될 수 있을 것도 같구요. 두산중공업의 출입문을 지나는 차량의 번호판을 인식하는 일을 시작으로, 삼성테크윈의 불법주정차 차량 번호판 인식, 신선대부두의 컨테이너..
자동차 번호판 인식기 교수님께서는 늘 말씀하셨지. "돈이 되는 프로그램을 만들어야 한다." 여기서 '돈이 되는'의 의미는 연구로 그치는 연구가 아닌, 진짜 팔아먹어도 될만한 '잘되는' 프로그램이고, 어디에 적용해서도 사용할 수 있는 '범용'의 프로그램이고, 당장 쓸 수 있을만한 '완성된' 프로그램이어야 한다. 그도 그럴것이 연구실에서 연구를 하다보면, 연구를 위한 연구를 하다가 지쳐, '실용화'에는 소홀해지기 쉽기 때문이다. (애석하게도 내가 그랬다는 이야기다.) 프로그램 같은 프로그램을 만들기 위해 노력한지 한 달. 틈나는 대로 작업한 작품. 작품이 제품이 되길 기대하며, 조금씩 수정보완 중이다. 아래는 가장 기본 기능인 차량번호(일련번호) 인식 기능과 저장된 영상의 검색 기능 데모이다. 남은 미션들 ] 1. 일련번호 외의..
OpenCV로 구현한 자동차 번호판 인식기 OpenCV를 만지기 시작한지 석달째. 조금 무거운 감이 없지 않지만, 역시 꽤나 괜찮은 라이브러리임은 확실한 것 같다. 예전부터 공부/일해오던 분야인 자동차 번호판 인식을 시작으로, 프로그래밍감을 살려보려 하다보니, 석사논문 쓸 때와는 또 다른 환경(번호판 종류, 카메라의 변화)들이 나를 맞이한다. 덕분에 새로운 알고리즘의 개발은 필수가 되어버렸다. - 번호판 인식기의 껍데기 - 번호판 추출부와 번호판 인식부를 따로 떼어둔 것은, 추출부와 인식부의 알고리즘을 따로/동시에 개발했기때문이기도 하거니와, 추출된 후보영역 중 실제 번호판 영역을 선택하는 알고리즘이 명확하지 않음이 그 이유이다. 현재는 추출된 번호판 후보영역 모두에서 문자들을 추출해 내도록 하며, 일련번호 4자리에 대해서만 인식하도록 프로그램 ..