오늘날 설문지부터 시험지, 투표용지에 이르기까지 수백만 개의 종이 및 전자 양식이 사용되는 세상에서 이러한 양식을 빠르고 정확하게 처리해야 하는 요구 사항은 매년 증가하고 있습니다. 이러한 프로세스를 자동화하는 핵심 도구 중 하나가 광학 마크 인식(OMR)입니다.
OMR(광학 마크 인식)은 소프트웨어가 종이 또는 전자 문서의 미리 정해진 위치에 특수 마크(일반적으로 체크 표시, 채워진 사각형 또는 원)의 존재 여부를 기록하고 분석할 수 있도록 하는 기술입니다. 이를 통해 수동 입력 없이 대량의 데이터를 신속하게 처리할 수 있어 오류를 최소화하고 워크플로 속도를 높일 수 있습니다.
OMR의 등장과 발전 과정에 대한 간략한 역사
광학 마크 인식(OMR) 기술은 20세기 후반, 유사한 양식, 설문지, 시험지 등을 대량으로 자동화하여 처리해야 하는 필요성이 대두되면서 개발되기 시작했습니다. 최초의 산업용 시스템은 교육 기관의 요구에 맞춰 미국에서 등장했는데, 당시에는 학생들의 대규모 시험 결과를 신속하고 정확하게 계산해야 하는 필요성이 있었습니다.
OMR 개발 초기에는 특수 장비, 즉 용지의 음영 영역(채워진 원 또는 사각형)을 기록하는 대형 광센서가 장착된 스캐너가 사용되었습니다. 이를 통해 수동 검증에 비해 응답 검증에 필요한 시간을 크게 단축하고 데이터 분석을 더욱 객관적으로 만들 수 있었습니다.
이후 디지털 이미지 처리 기술로의 전환과 함께 OMR 기술은 발전했습니다. 개인용 컴퓨터와 소프트웨어의 등장으로 스캐너나 프린터 종류에 관계없이 OMR을 사용할 수 있게 되었습니다. 이는 기업, 교육 기관, 정부 기관 등 대량의 표준 문서를 빠르고 정확하게 처리해야 하는 모든 분야에서 OMR을 대규모로 활용할 수 있는 가능성을 열어주었습니다.
오늘날 최신 OMR 솔루션은 종이 문서뿐만 아니라 전자 문서 작업까지 자동화할 수 있도록 지원하며, OMR 기술을 통합 디지털 플랫폼에 통합함으로써 더욱 뛰어난 유연성, 생산성 및 최종 데이터 품질을 보장합니다.
OMR의 작동 방식 및 적용 분야
OMR은 설문지나 시험지 등 양식에서 채점 영역을 선택한 후 특수 소프트웨어를 사용하여 자동으로 스캔하는 원리입니다. 이를 통해 다음과 같은 작업을 수행할 수 있습니다.
- 시험 답안지, 설문 조사, 투표, 참가자 등록 및 기타 대규모 행사에 대한 통계를 자동으로 수집합니다.
- 빠르고 정확한 계산이 필요한 신청서, 설문지, 체크리스트를 처리합니다.
- 수동 오류 위험 없이 종이 문서 흐름을 디지털로 변환합니다.
OMR은 표시를 위한 지정된 영역이 있는 특수 양식 템플릿을 생성하는 것으로 시작됩니다. 양식을 작성하고 스캔(또는 전자적으로 수신)하면 소프트웨어가 이미지를 분석하여 각 OMR 영역의 위치와 경계를 파악하고 사용자가 표시한 내용을 기록합니다.
전체 과정은 여러 기술적 단계로 구성됩니다.
- 템플릿 생성 - 각 시험지마다, 가능한 답변 선택지가 제공되는 영역(OMR 필드)으로 구성된 템플릿이 사전에 개발됩니다. 예를 들어, 시험에는 문항 수에 따라 수백 개의 영역이 있을 수 있습니다.
- 양식 스캔 및 업로드 - 작성된 양식은 스캔 또는 사진으로 처리됩니다. 다양한 이미지 형식(TIFF, JPEG, PDF 등)이 지원됩니다.
- 문서 구조 인식 - 소프트웨어는 양식 유형을 자동으로 식별하고, 문서가 잘못된 위치에 있더라도 정렬한 다음 모든 OMR 필드를 찾습니다.
- 응답 분석 및 기록 - 시스템은 어두워진 부분을 기준으로 표시된 영역을 식별하고, 템플릿의 참조 값과 비교하여 인식 결과를 스프레드시트 또는 데이터베이스에 입력합니다.
- 데이터 전송 및 저장 - 분석이 완료되면 결과를 즉시 내보내 추가 분석, 보고, 저장 또는 회사 IT 인프라와의 통합에 사용할 수 있습니다.
활용 분야:
- 교육: 시험, 평가 양식 및 학생 설문지의 자동 채점.
- 공공 행정 및 선거: 종이 투표 용지 개표, 인구 조사 양식 또는 사회학 조사 자동화 처리.
- 기업: 인사, 마케팅 조사 설문지 신속 수집, 서비스 품질 설문지 처리, 이벤트 등록 양식 처리.
- 의료: 환자 설문지, 건강 평가 설문지 처리.
- 금융 및 보험 기관: 고객 신청서 입력 및 처리, 대량 메일 발송용 설문지 및 제안서 선정.
OMR은 유사한 종이 또는 전자 데이터의 대량 흐름을 빠르고 정확하게 디지털화해야 하는 모든 분야에서 사용됩니다.
VintaSoft Forms Processing .NET Plug-in for OMR의 기능은 무엇인가요?
최신 라벨 인식 솔루션은 빠를 뿐만 아니라 구성도 유연합니다. 이 분야의 기술 선도 기업 중 하나가
VintaSoft Forms Processing .NET Plug-in입니다.
이 SDK는 자동 양식 식별 및 정렬, 광학 마크 인식, 텍스트 및 바코드 필드 인식을 완벽하게 지원합니다. 주요 기능은 다음과 같습니다.
- 크로스 플랫폼: Windows, Linux, macOS 지원.
- .NET(C#, VB.NET 및 기타 .NET 언어) 완벽 지원.
- OMR 필드를 추가, 편집 및 삭제할 수 있는 양식 템플릿 편집기.
- 직사각형 및 원형 레이블 영역이 있는 양식과 OMR 필드가 있는 테이블 지원.
- 동기식, 비동기식 및 멀티스레드 인식 가능.
- 유연한 템플릿 사용자 지정, XML 직렬화 및 역직렬화.
- OCR(손글씨 또는 인쇄체 텍스트 인식) 및 바코드 SDK(바코드 인식)와의 통합을 통해 단일 솔루션의 기능을 확장합니다.
기업이 VintaSoft OMR을 선택하는 이유
기업에게 있어 대량의 설문지, 시험 또는 표준 양식을 처리하는 것은 정확성이 요구되는 작업일 뿐만 아니라 비즈니스 프로세스를 최적화해야 하는 이유이기도 합니다.
VintaSoft Forms Processing .NET Plug-in을 사용하면 다음과 같은 이점을 얻을 수 있습니다.
- 인적 요소를 줄이고 오류를 최소화하며 문서 처리 시간을 단축합니다.
- 종이 문서 흐름의 디지털화를 가속화합니다. 인식 결과를 즉시 확인할 수 있으며 기업 정보 시스템에 통합할 수 있습니다.
- 비즈니스 또는 정부에서 사용하는 모든 양식 표준에 맞게 템플릿을 유연하게 조정할 수 있습니다.
기술적 관점: VintaSoft에서 OMR이 작동하는 방식
실행 과정에서 소프트웨어는 먼저 수신된 도형 이미지가 어떤 템플릿에 속하는지 판별하고, 정렬한 다음 OMR 필드 분석을 시작합니다. 이러한 아키텍처를 통해 회전, 오프셋 또는 크기 변경이 있는 상태로 스캔된 도형도 처리할 수 있습니다.
양식 템플릿은 WinForms 또는 WPF 애플리케이션 내에서 코드 편집기와 시각적 편집기를 모두 사용하여 생성됩니다. 개발자는 OMR 필드의 유형과 모양을 사용자 지정하고, 자체 작업 및 문서 형식에 맞게 아키텍처를 확장할 수 있습니다.
광학 마크 인식(OMR)은 대량의 종이 및 전자 문서를 빠르고 안정적으로 처리하기 위한 최신 표준입니다.
VintaSoft Forms Processing .NET Plug-in을 사용하면 프로세스가 유연하고 정확하며 모든 기업 시스템에 통합 가능하고 디지털 비즈니스 전환 요구 사항을 완벽하게 준수하게 됩니다.
다음은 OMR 마크가 포함된 작성된 양식을 식별하고 인식하는 방법을 보여주는 C# 코드입니다.
/// <summary>
/// Recognizes the form with OMR fields.
/// </summary>
/// <param name="formRecognitionManager">The form recognition manager.</param>
/// <param name="image">The image.</param>
public static void RecognizeFormWithOmrFields(
Vintasoft.Imaging.FormsProcessing.FormRecognitionManager formRecognitionManager,
Vintasoft.Imaging.VintasoftImage image)
{
// if your form template contains OCR fields,
// make sure OCR engine manager is initialized before recognition
// (otherwise recognition will return null (Nothing)),
// see OCR field recognition examples
// recognize filled form in an image
Vintasoft.Imaging.FormsProcessing.FormRecognitionResult recognitionResult =
formRecognitionManager.Recognize(image);
// get the result of image comparison
Vintasoft.Imaging.FormsProcessing.TemplateMatching.ImageImprintCompareResult imageCompareResult =
recognitionResult.TemplateMatchingResult.ImageCompareResult;
// if result is not reliable
if (!imageCompareResult.IsReliable)
{
// matching template is not found
System.Console.WriteLine("Matching template is not found.");
}
else
{
// get recognized page
Vintasoft.Imaging.FormsProcessing.FormRecognition.FormPage recognizedPage =
recognitionResult.RecognizedPage;
// get form field count
if (recognizedPage.Items.Count == 0)
{
System.Console.WriteLine("No form fields were recognized.");
}
else
{
System.Console.WriteLine(string.Format(
"Recognized form field count: {0}",
recognizedPage.Items.Count));
// for each recognized form field
foreach (Vintasoft.Imaging.FormsProcessing.FormRecognition.FormField recognizedField in recognizedPage.Items)
{
if (recognizedField is Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField)
{
Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField omrField =
(Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField)recognizedField;
// write field info
System.Console.WriteLine(string.Format(
" OMR field: name: {0}; state: {1}; confidence: {2:F1}%",
omrField.Name,
omrField.State,
omrField.Confidence * 100));
}
}
}
}
}