KR20220071480A - 강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법 - Google Patents

강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법 Download PDF

Info

Publication number
KR20220071480A
KR20220071480A KR1020200158648A KR20200158648A KR20220071480A KR 20220071480 A KR20220071480 A KR 20220071480A KR 1020200158648 A KR1020200158648 A KR 1020200158648A KR 20200158648 A KR20200158648 A KR 20200158648A KR 20220071480 A KR20220071480 A KR 20220071480A
Authority
KR
South Korea
Prior art keywords
training
steel
character
image
cnn
Prior art date
Application number
KR1020200158648A
Other languages
English (en)
Other versions
KR102462665B1 (ko
Inventor
조기영
Original Assignee
(주)포스텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)포스텍 filed Critical (주)포스텍
Priority to KR1020200158648A priority Critical patent/KR102462665B1/ko
Publication of KR20220071480A publication Critical patent/KR20220071480A/ko
Application granted granted Critical
Publication of KR102462665B1 publication Critical patent/KR102462665B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Character Discrimination (AREA)

Abstract

광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법이 제공된다. 이 방법은 학습 데이터로 제공될 강재 표시 문자에 대한 이미지 세트를 생성하는 것, 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델을 생성하는 것 및 강재 표시 문자에 대해 생성된 모델의 정확도를 평가하는 것을 포함한다.

Description

강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법{Method of Machine Learning of Marking Character of Steel Material of Optical Character Reading System for Monitoring Place of Piling Up Steel Material}
본 발명은 광학적 문자 판독 시스템의 기계 학습 방법에 관한 것으로, 더 구체적으로 강재 표시 문자의 기계 학습을 통해 강재 적치장을 모니터링할 수 있는 광학적 문자 판독 시스템의 기계 학습 방법에 관한 것이다.
조선소 내의 강재 적치장에서 강재에 인쇄된 문자를 인식하여 강재를 개별 인식하는 기능이 필요하나, 현재 제공되는 광학적 문자 판독기(Optical Character Reader : OCR)로는 강재 표시 문자에 대한 인식률이 낮아 바로 적용할 수가 없다.
이에 강재 적치장에 맞는 문자 인식 기능을 가지도록 기계 학습을 기반으로 하는 광학적 문자 판독 시스템(system)의 개발이 필요한 실정이다.
본 발명이 해결하고자 하는 과제는 조선소에 납품되는 강재를 대상으로 강재의 표면에 표시된 문자 촬영을 통해 문자를 저장하고, 그리고 저장된 문자의 기계 학습을 통해 강재 적치장을 모니터링(monitoring)할 수 있는 광학적 문자 판독 시스템의 기계 학습 방법을 제공하는 데 있다.
본 발명이 해결하고자 하는 과제는 이상에 언급한 과제들에 제한되지 않으며, 언급되지 않는 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기한 과제를 달성하기 위하여, 본 발명은 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법을 제공한다. 이 학습 방법은 학습 데이터로 제공될 강재 표시 문자에 대한 이미지 세트를 생성하는 것, 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델을 생성하는 것 및 강재 표시 문자에 대해 생성된 모델의 정확도를 평가하는 것을 포함할 수 있다.
강재 표시 문자에 대한 이미지 세트를 생성하는 것은 강재 표시 문자에 대한 코드 이미지를 확보하는 것, 코드 이미지의 스캔 이미지에서 글자 영역 및 분류 라벨을 지정하고 xml 파일을 생성하는 것, xml 파일을 기계 학습을 위한 tfrecord 파일로 변환하는 것 및 tfrecord 파일로부터 글자 영역 및 분류 라벨을 추출하고 크기 변환, 흑백 변환 및 회전 변환하여 글자별 이미지 전처리 작업을 수행하는 것을 포함할 수 있다.
강재 표시 문자에 대한 모델을 생성하는 것은 훈련 모델을 생성하는 것 및 훈련 모델로 강재 표시 문자에 대한 훈련을 수행하는 것을 포함할 수 있다.
훈련 모델을 생성하는 것은 글자별 이미지 전처리 작업이 수행된 글자들 각각에 대한 모델로부터 CNN convolution 레이어를 생성하는 것, CNN convolution 레이어로부터 CNN Maxpooling 레이어를 생성하는 것, CNN Maxpooling 레이어로부터 CNN Fully connected 레이어를 생성하는 것, CNN Fully connected 레이어에 대한 탈락률을 설정하는 것, 탈락률이 설정된 CNN Fully connected 레이어에 대한 학습률을 설정하는 것, 학습률이 설정된 CNN Fully connected 레이어에 대한 최적화 알고리즘을 설정하는 것 및 최적화 알고리즘이 설정된 CNN Fully connected 레이어에 대한 손실 함수를 설정하는 것을 포함할 수 있다.
강재 표시 문자에 대한 훈련을 수행하는 것은 훈련 모델로부터 훈련 이미지 세트를 지정하는 것, 훈련 이미지 세트에 대한 훈련 반복 횟수를 지정하는 것, 훈련 이미지 세트로 훈련 반복 횟수로 훈련을 수행하는 것 및 훈련에 대한 정확도를 확인하는 것을 포함할 수 있다.
훈련에 대한 정확도를 확인하는 것은 강재 표시 문자로부터 시험 이미지 세트를 지정하는 것 및 시험 이미지 세트에 대한 훈련으로 강재 표시 문자에 대한 모델을 평가하는 것을 포함할 수 있다.
상술한 바와 같이, 본 발명의 과제의 해결 수단에 따르면 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법은 오픈 소스(open source)를 기반으로 학습 데이터(data)로 제공될 강재 표시 문자에 대한 이미지 세트(image set)로 학습한 강재 표시 문자에 대한 모델(model)을 생성하고, 그리고 이의 정확도를 평가하는 것을 포함함으로써, 강재 표시 문자에 대한 인식률이 높아질 수 있다. 이에 따라, 조선소 내의 강재 적치장에 맞는 문자 인식 기능을 가져 이를 모니터링할 수 있는 광학적 문자 판독 시스템의 기계 학습 방법이 제공될 수 있다.
도 1은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 학습 데이터로 제공된 강재 표시 문자에 대한 이미지 세트를 생성하는 것을 설명하기 위한 블록 흐름도이다.
도 2는 본 발명의 일 실시예들에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법에 학습 데이터로 사용될 강재 표시 문자의 기본 이미지이다.
도 3a 및 도 3b는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법에서 사용되는 강재 표시 문자의 스캔 이미지별로 지정된 글자 영역 및 분류 라벨 각각의 예시이다.
도 4는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법에서 글자별 이미지 전처리 작업 중 흑백 변환의 예시이다.
도 5는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델을 생성하는 것을 설명하기 위한 블록 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 글자별 이미지 전처리 작업이 수행된 글자들 각각에 대한 모델로부터 CNN convolution 레이어를 생성하는 것의 예시이다.
도 7은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 CNN convolution 레이어로부터 CNN Maxpooling 레이러를 생성하는 것의 예시이다.
도 8은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 CNN Maxpooling 레이어로부터 CNN Fully connected 레이어를 생성하는 것의 예시이다.
도 9는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델 레이어를 생성하는 것을 설명하기 위한 프로그램 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 훈련을 수행하는 것의 예시이다.
도 11은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 훈련에 대한 정확도를 확인하는 것을 설명하기 위한 블록 흐름도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면들과 함께 상세하게 후술 되어 있는 실시예를 참조하면 명확해질 것이다. 그러나 본 발명은 여기서 설명되는 실시예에 한정되는 것이 아니라 서로 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예는 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
명세서 전문에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 따라서, 동일한 참조 부호 또는 유사한 참조 부호들은 해당 도면에서 언급 또는 설명되지 않았더라도, 다른 도면을 참조하여 설명될 수 있다. 또한, 참조 부호가 표시되지 않았더라도, 다른 도면들을 참조하여 설명될 수 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소, 단계, 동작 및/또는 장치는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 장치의 존재 또는 추가를 배제하지 않는다. 또한, 바람직한 실시예에 따른 것이기 때문에, 설명의 순서에 따라 제시되는 참조 부호는 그 순서에 반드시 한정되지는 않는다.
하나의 구성 요소(element)가 다른 구성 요소와 '접속된(connected to)' 또는 '결합한(coupled to)'이라고 지칭되는 것은, 다른 구성 요소와 직접적으로 연결된 또는 결합한 경우, 또는 중간에 다른 구성 요소를 개재한 경우를 모두 포함한다. 반면, 하나의 구성 요소가 다른 구성 요소와 '직접적으로 접속된(directly connected to)' 또는 '직접적으로 결합한(directly coupled to)'으로 지칭되는 것은 중간에 다른 구성 요소를 개재하지 않은 것을 나타낸다. '및/또는'은 언급된 아이템(item)들의 각각 및 하나 이상의 모든 조합을 포함한다.
도 1은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 학습 데이터로 제공된 강재 표시 문자에 대한 이미지 세트를 생성하는 것을 설명하기 위한 블록 흐름도이고, 도 2는 본 발명의 일 실시예들에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법에 학습 데이터로 사용될 강재 표시 문자의 기본 이미지이고, 도 3a 및 도 3b는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법에서 사용되는 강재 표시 문자의 스캔 이미지별로 지정된 글자 영역 및 분류 라벨 각각의 예시이고, 도 4는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법에서 글자별 이미지 전처리 작업 중 흑백 변환의 예시이고, 도 5는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델을 생성하는 것을 설명하기 위한 블록 흐름도이고, 도 6은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 글자별 이미지 전처리 작업이 수행된 글자들 각각에 대한 모델로부터 CNN convolution 레이어를 생성하는 것의 예시이고, 도 7은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 CNN convolution 레이어로부터 CNN Maxpooling 레이어를 생성하는 것의 예시이고, 도 8은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 CNN Maxpooling 레이어로부터 CNN Fully connected 레이어를 생성하는 것의 예시이고, 도 9는 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델 레이어를 생성하는 것을 설명하기 위한 프로그램 흐름도이고, 도 10은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 훈련을 수행하는 것의 예시이고, 그리고 도 11은 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법의 일 구성인 강재 표시 문자에 대한 훈련에 대한 정확도를 확인하는 것을 설명하기 위한 블록 흐름도이다.
도 1 내지 도 11을 참조하면, 본 발명의 일 실시예에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법이 설명된다.
광학적 문자 판독 시스템은 Tensorflow, OpenCV 등의 오픈 소스를 기반으로 강재 표시 문자에 대한 기계 학습을 수행할 수 있다.
광학적 문자 판독 시스템의 하드웨어(hardware) 시스템은 운영 체제로 Windows 10 Pro를, 프로세서(processor)로 Intel® CoreTM i7-9700F CPU @ 3.00GHz를, 시스템 종류로는 64비트(bit) 운영 체제, x64 기반 프로세서를, RAM으로 32GB를, 그리고 그래픽 카드(graphic card)로 NVIDIA GeForce GT 710을 사용한다.
광학적 문자 판독 시스템의 드라이버(driver)는 NVIDIA 드라이버로 GeForce Game Ready Driver 446.14를, Cuda로 Release 10.1 V10.1.243을, 그리고 CuDnn으로 cudnn-10.1-windows10-x64-v7.6.5.32를 사용한다.
광학적 문자 판독 시스템의 그래픽 사용자 인터페이스(Graphical User Interface : GUI) 프로그램(program)은 PyCharm으로 Community 2020.1을, Anaconda로 Anaconda Navigator 1.9.12를, 그리고 labelImg로 V1.8.1을 사용한다.
광학적 문자 판독 시스템의 언어 및 총서(language and library)는 python로 3.7.2를, conda로 4.8.3을, tensorflow로 2.1.0을, Jupyterlab으로 2.1.5를 opencv-python으로 4.2.0.34를, pillow로 7.1.2를, matplotlib으로 3.2.1을, 그리고 numpy로 1.18.1을 사용한다.
광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법은 모두 3가지로 간추릴 수 있다. 이 학습 방법은 학습 데이터로 제공될 강재 표시 문자에 대한 이미지 세트를 생성하는 것, 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델을 생성하는 것 및 강재 표시 문자에 대해 생성된 모델의 정확도를 평가하는 것을 포함할 수 있다.
강재 표시 문자에 대한 기계 학습을 진행하기 위해서 이미지 세트를 글자와 맵핑(mapping)하여 학습할 수 있도록, 자료를 정리하여 주는 방식을 통해 문자의 패턴(pattern)을 인식하도록 구성하는 방식인 이미지 분류(classification)로 기계 학습을 진행하였으며, 기계 학습을 시험했을 때에 약 92%의 정확도를 달성하였다.
이미지 분류란 하나의 이미지를 특정 대상으로 분류하는 것을 일컫는다. 이때, 이미지 하나당 반드시 하나의 대상으로만 분류하여야 한다. 예를 들어, 입력한 자동차 이미지를 스캔(scan)하여 이 이미지가 자동차라는 문구를 출력해 내는 기능은 이미지 분류라 할 수 있겠지만, 자동차에 탄 사람까지 분류하여 결과를 출력한다면 이미지 분류 기능으로 보지 않는다.
강재 표시 문자에 대한 이미지 세트를 생성하는 것은 강재 표시 문자에 대한 코드(code) 이미지를 확보하는 것, 코드 이미지의 스캔 이미지에서 글자 영역 및 분류 라벨(label)을 지정하고 xml 파일(file)을 생성하는 것, xml 파일을 기계 학습을 위한 tfrecord 파일로 변환하는 것 및 tfrecord 파일로부터 글자 영역 및 분류 라벨을 추출하고 크기 변환, 흑백 변환 및 회전 변환하여 글자별 이미지 전처리 작업을 수행하는 것을 포함할 수 있다.
강재 표시 문자에 대한 기계 학습을 위해서는 학습 데이터가 필요하다. 현장에서 강재에 인쇄된 문자를 스캔한 이미지 파일 79장을 제공받았다. 받은 이미지는 원활한 학습을 위해 가급적 정면에서 보는 각도로 코드를 찍은 이미지를 이용하였다.
글자 이미지 하나당 하나의 글자를 분류하도록 구현하는 것이 목표이기 때문에, 원본 이미지만으로는 기계 학습이 불가능하다. 원본 이미지에서 대상 글자 이미지 영역과 분류 정보가 추가로 필요하다. 이를 위해서 labelImg 프로그램을 이용하였다. labelImg 프로그램은 이미지를 불러와 지정한 영역(원본 영역을 기준으로 xmin(x축 최소), xmax(x축 최대), ymin(y축 최소) 및 ymax(y축 최대) 값들)과 분류 정보(클래스(class) 또는 라벨이라 일컬음)를 입력할 수 있고, 그리고 이를 xml 파일로 저장하는 기능을 제공하는 프로그램이다.
이제 원본 이미지와 xml 파일을 이용하여 tfrecord 파일을 생성할 수 있다. tfrecord 파일은 tensorflow의 학습 데이터를 저장하기 위한 바이너리(binary) 데이터 포맷(format)이다. 구글(Google)에서 개발한 구조화된 데이터를 직렬화하는 방식 중의 하나인 Protocol Buffers 형식으로 데이터를 직렬화한다. 하나의 파일로 직렬화한 형태이기 때문에, 여러 이미지 파일들과 분류 정보 파일들을 다루는 것보다 편의성이 좋고, JPG나 PNG 등의 이미지 포맷에 따라 매번 읽는 수고를 덜 수 있어 성능면에서도 효율적이다.
tfrecord 파일로 변환하기 위해 github에 douglasrizzo 명의로 오픈 소스로 등재된 detection_util_scripts를 이용하였다. 이 중에서 labelImg를 이용한 xml 파일을 csv 파일로 변환하는 generate_csv.py, csv 파일을 pb.txt 파일(분류 정보. 즉 라벨 목록을 텍스트(text) 형태로 저장된 데이터 포맷)로 변환해주는 generate_pbtxt.py, pb.txt 파일을 tfrecord로 변환해주는 generate_tfrecord.py를 이용하였다. 이렇게 변환된 tfrecord 파일엔 맵(map) 형태로 아래 표 1과 같은 데이터가 저장된다.
Key Value
image/height 원본 이미지 높이
image/width 원본 이미지 너비
image/filename 원본 이미지 파일명
image/encoded 원본 이미지 바이너리 데이터
image/format 원본 이미지 확장자
image/object/bbox/xmin 지정 글자영역 xmin 리스트(배열)
image/object/bbox/xmax 지정 글자영역 xmax 리스트(배열)
image/object/bbox/ymin 지정 글자영역 ymin 리스트(배열)
image/object/bbox/ymax 지정 글자영역 ymax 리스트(배열)
image/object/class/text 지정 글자영역 name(글자명)
image/object/class/label 지정 글자영역 id(구분 숫자. 0-n)
tfrecord 파일은 원본 이미지 파일과 지정 글자 영역 및 글자명을 바이너리 형태로 저장한 파일이다. 따라서, 글자 이미지별로 학습을 진행하기 위해서는 tfrecord 파일에서 각 글자 이미지와 글자명을 추출해야 한다. tfrecord 파일을 로드(load)한 후, generate_tfrecord.py에서 지정된 키(key) 값을 이용하여 지정 영역과 분류 정보를 추출한다.
강재 표시 문자에 대한 기계 학습을 진행할 수 있도록 일정한 크기로 변환하는 작업이 필요하다. Python에서 제공하는 이미지 처리 총서(Pillow, opencv 등)를 이용하여 작업이 가능하다. 기계 학습에 투입되는 이미지 크기가 클수록 그만큼 많은 데이터를 기계 학습에 반영한다는 이점이 있지만, 연산 작업이 증대하여 학습 진행이 더딜 수 있으며, 오히려 학습에 필요하지 않은 데이터까지 반영되어 정확도가 떨어질 수 있다. 이미지 세트가 아주 많지 않기 때문에, 사전에 투입되는 이미지 크기를 줄이는 방안으로 나아간다.
학습 시간 및 효율성 증대를 위하여 글자를 구분할 정도로 작은 28x28 크기로 변환한다. 또한, 글자 학습에 색상 값은 필요하지 않다고 판단하여 8bit 흑백 이미지로 변환한다. 그럼에도, 글자를 구분하는 데에는 별다른 어려움이 없다는 것을 확인할 수 있다. 그리고 여러 각도에서 스캔할 것을 고려하여 0°, 90°, 180°, 270°로 회전시킨 글자 이미지를 새로 생성한다.
강재 표시 문자에 대한 모델을 생성하는 것은 훈련 모델을 생성하는 것 및 훈련 모델로 강재 표시 문자에 대한 훈련을 수행하는 것을 포함할 수 있다.
훈련 모델을 생성하는 것은 글자별 이미지 전처리 작업이 수행된 글자들 각각에 대한 모델로부터 CNN convolution 레이어를 생성하는 것, CNN convolution 레이어로부터 CNN Maxpooling 레이어를 생성하는 것, CNN Maxpooling 레이어로부터 CNN Fully connected 레이어를 생성하는 것, CNN Fully connected 레이어에 대한 탈락률을 설정하는 것, 탈락률이 설정된 CNN Fully connected 레이어에 대한 학습률을 설정하는 것, 학습률이 설정된 CNN Fully connected 레이어에 대한 최적화 알고리즘을 설정하는 것 및 최적화 알고리즘이 설정된 CNN Fully connected 레이어에 대한 손실 함수를 설정하는 것을 포함할 수 있다.
강재 표시 문자에 대한 기계 학습에서 모델은 데이터를 입력하면 해당 값을 반환하는 학습된 함수이다. 모델은 하나 이상의 레이어(layer)로 구성되어 있는데, 이 레이어 역시 입력을 받고 값을 출력하는 학습된 함수이다. 레이어는 계층 구조로 연결되어 있으며, 상위 레이어의 반환값을 하위 레이어의 입력값으로 받으며 연산을 진행한다. 각 레이어에는 학습을 위한 변수들이 있으며, 이 변수값을 재지정하면서 출력값의 정확도를 향상시킨다.
레이어의 변수값을 재지정할 때, 반환값에 적은 값을 주어 하위 레이어의 영향을 줄여주는 활성화 함수, 훈련이 원만히 이루어지는지 확인하는 손실 함수, 손실 함수에 따라 실제로 변수값에 영향을 주는 최적화 알고리즘(algorithm)을 지정해야 한다.
모델은 CNN(Convolutional Neural Networks) 기반으로 구성하였는데, CNN이란 이미지의 부분마다 특징값을 추려내고, 그 값들을 이용하여 학습하는 구조이다. 1959년 David H. Hubel과 Torsten Wiesel이 시각 피질의 구조에 대한 고양이 실험을 통해 사물을 볼 때, 시각 뉴런(neuron)들이 자기들이 담당한 시각 영역에서 물체가 인식될 때만 반응한다는 사실에서 착안되었다.
CNN convolution 레이어는 이미지 데이터(혹은 추려낸 3차원 배열)에서 특징들을 추리기 위한 레이어이다. 추릴 영역의 크기와 이동 간격을 지정하는데 이를 필터(filter)라 한다. 필터를 통해 얻은 데이터의 특징들을 추린 데이터라 해서 특징 맵(feature map)이라고 하며, 필터는 여러 개를 사용할 수 있으며, 필터의 개수만큼 반환 데이터가 중첩된다. 필터값을 재조정하여 모델 학습을 진행한다.
도 6에서 입력 데이터는 8x8 2차원 배열이며, 필터는 3x3 2차원 배열이다. 입력 데이터와 필터를 맞대어 각각 맞댄 값을 곱한 값들을 모두 더한 값을 산출한다. 필터를 움직이며 산출한 값들의 모임이 특징 맵이다. 필터의 크기가 작을수록, 이동 간격이 작을 수록 특징 맵의 크기가 증대한다.
CNN Maxpooling 레이어는 이미지 데이터(혹은 추려낸 3차원 배열)의 크기를 줄이기 위한 레이어이다. 부분 영역의 크기와 이동 간격을 지정하고, 각 영역에서 가장 큰 값을 산출하면서 반환값을 얻는다. CNN convolution 레이어를 통해 증대한 데이터들로 인해 훈련용 데이터에서 정확도는 높으나, 실제 데이터로 평가를 할 때에는 정확도가 떨어지는 과적합(overfitting)을 방지하기 위한 레이어이다.
도 7에서 입력 데이터는 4x4 2차원 배열이며, 이 중에서 필터의 부분 영역은 2x2 2차원 배열이다. 입력 데이터에서 2x2 영역의 값들을 확인하고 가장 큰 값을 산출한다. 확인할 영역을 2(이 값을 stride라고 함)만큼 이동시키며 산출 작업을 진행한다. 이렇게 산출한 2x2 2차원 배열은 입력 데이터보다 크기가 작아지는 특징이 있다.
CNN Fully connected 레이어는 실제 분류 결과값을 반환하는 레이어이다. 각 분류 아이디(id)를 인덱스(index)로 한 1차원 배열을 반환한다. 배열은 각 분류 대상에 대한 일치율을 값으로 가진다.
이를 기반으로 구축한 모델의 구조는 도 8과 같다.
도 8을 참조하면, InputLayer는 Input 데이터로 28x28x1(너비 28픽셀(pixel), 높이 28픽셀, 흑백(0-1))의 3차원 배열로 제공한다. 여기서, 흑백(0-1) 값은 활성화 함수를 통한 레이어의 활성 정도를 용이하게 제어하기 위해, 0~1 사이의 값으로 설정된다.
Conv2D는 필터의 크기를 3x3x1로, 이동 거리를 1로 설정한다. 필터의 수는 16으로 정한다. 반환되는 데이터는 26x26x16의 3차원 배열이 된다. 활성화 함수로 Relu(값을 0 이하일 때 0으로, 0 초과일 때 값을 그대로 두어 가공하며, 0에 가까울수록 해당 레이어가 학습에 기여하는 정도가 낮아짐)를 지정한다.
MaxPooling2D는 Maxpooling을 2x2로 정한다. 반환되는 데이터는 13x13x16의 3차원 배열이 된다.
Conv2D는 필터의 크기를 3x3x16으로, 이동 거리를 1로 설정한다. 필터의 수는 32로 정한다. 반환되는 데이터는 11x11x32의 3차원 배열이 된다. 활성화 함수를 Relu로 지정한다.
MaxPooling2D는 Maxpooling을 2x2로 정한다. 반환되는 데이터는 5x5x32의 3차원 배열이 된다.
Flatten은 실제 분류값을 계산하기 위해 5x5x32의 3차원 배열을 크기 800의 1차원 배열로 변환한다.
Dense는 총 인식 글자 개수가 66개이므로 크기 66개의 1차원 배열을 반환하는 레이아웃(layout)을 연결한다. 활성화 함수로 Softmax(값을 0~1 사이의 값으로 모두 정규화하여 가공하며, 가공한 값을 모두 더하면 항상 1이 되는 특성이 있어 대상과의 일치도를 측정할 때 많이 적용함)로 변환한다.
Dropout은 모델 학습을 할 때에 계층별로 일정 비율의 레이아웃 학습을 방지하는 기법이다. 훈련 데이터에 지나치게 최적 학습하여 과적합되는 결과를 방지하는 것이 주된 목적이다. 여기서는 30%의 레이어가 학습에 참여하지 않는다.
강재 표시 문자에 대한 훈련을 수행하는 것은 훈련 모델로부터 훈련 이미지 세트를 지정하는 것, 훈련 이미지 세트에 대한 훈련 반복 횟수를 지정하는 것, 훈련 이미지 세트로 훈련 반복 횟수로 훈련을 수행하는 것 및 훈련에 대한 정확도를 확인하는 것을 포함할 수 있다.
모델 훈련은 가중치(각 레이어의 반환값에 영향을 끼치는 변수로, 이 변수들을 변경하면서 기계 학습에 적합한 반환값을 찾아냄) 계수를 갱신하면서 진행한다. 계수를 갱신할 때 최적화 알고리즘과 학습률을 이용하여 가중치를 찾아가며 손실 함수를 통해서 실제 결과값과 얼마나 일치하는지 확인한다.
모델 훈련을 할 때, 최적화 알고리즘은 손실 함수의 결과값을 참고하여 가중치를 반환한다. 이때, 학습률이 낮을수록 학습 시간이 길어지며, 클수록 기계 학습을 지속하여도 정확도가 정체되는 현상인 미적합(underfitting) 가능성이 커진다.
모델 훈련을 할 때, 탈락률(dropout rate)은 0.3, 학습률은 0.0001, 최적화 알고리즘은 adam(2014년에 Diederik P. Kingma, Jimmy Ba가 제안하였으며, 기계 학습에 많이 사용함), 손실 함수는 categorical crossentropy(분류 대상이 3개 이상일 때 사용되는 손실 함수로 분류 대상에 대해서만 1을 반환하는 배열을 사용함)를 적용하였다. 이미지 세트의 90%를 학습용, 10%를 시험용으로 분류하여 기계 학습을 진행하였다. 10번 훈련 시 정확도를 체크(check)하여 총 500회 반복 훈련 진행하였다.
훈련에 대한 정확도를 확인하는 것은 강재 표시 문자로부터 시험 이미지 세트를 지정하는 것 및 시험 이미지 세트에 대한 훈련으로 강재 표시 문자에 대한 모델을 평가하는 것을 포함할 수 있다.
모델 훈련이 10번 될 때마다, 정확도를 체크하여 과적합이 발생하는지 확인한 결과 학습용에서 정확도 약 93%, 시험용에서 정확도 약 92%로 과적합이 발생하지 않았다.
모델 훈련 및 이에 대해 평가를 한 결과, 학습률과 정확도 모두 93%에서 정체되었다. 이 둘을 모두 높이기 위해서 모델 훈련에 필요한 이미지 세트가 추가로 필요할 것으로 예상되었다. 레이아웃의 계층 및 구조의 변경으로 향상될 가능성이 있으며, 추가적인 이미지 세트를 모아 기계 학습을 진행할 필요가 있어 보인다.
본 발명의 일 실시예들에 따른 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법은 오픈 소스를 기반으로 학습 데이터로 제공될 강재 표시 문자에 대한 이미지 세트로 학습한 강재 표시 문자에 대한 모델을 생성하고, 그리고 이의 정확도를 평가하는 것을 포함함으로써, 강재 표시 문자에 대한 인식률이 높아질 수 있다. 이에 따라, 조선소 내의 강재 적치장에 맞는 문자 인식 기능을 가져 이를 모니터링할 수 있는 광학적 문자 판독 시스템의 기계 학습 방법이 제공될 수 있다.
이상, 첨부된 도면들을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들에는 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (5)

  1. 학습 데이터로 제공될 강재 표시 문자에 대한 이미지 세트를 생성하는 것;
    상기 강재 표시 문자에 대한 상기 이미지 세트로 학습한 상기 강재 표시 문자에 대한 모델을 생성하는 것; 및
    상기 강재 표시 문자에 대해 생성된 상기 모델의 정확도를 평가하는 것을 포함하는 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법.
  2. 제 1항에 있어서,
    상기 강재 표시 문자에 대한 상기 이미지 세트를 생성하는 것은:
    상기 강재 표시 문자에 대한 코드 이미지를 확보하는 것;
    상기 코드 이미지의 스캔 이미지에서 글자 영역 및 분류 라벨을 지정하고 xml 파일을 생성하는 것;
    상기 xml 파일을 기계 학습을 위한 tfrecord 파일로 변환하는 것; 및
    상기 tfrecord 파일로부터 상기 글자 영역 및 상기 분류 라벨을 추출하고 크기 변환, 흑백 변환 및 회전 변환하여 글자별 이미지 전처리 작업을 수행하는 것을 포함하는 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법.
  3. 제 1항에 있어서,
    상기 강재 표시 문자에 대한 상기 모델을 생성하는 것은:
    훈련 모델을 생성하는 것; 및
    상기 훈련 모델로 상기 강재 표시 문자에 대한 훈련을 수행하는 것을 포함하는 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법.
  4. 제 3항에 있어서,
    상기 훈련 모델을 생성하는 것은:
    상기 글자별 이미지 전처리 작업이 수행된 글자들 각각에 대한 상기 모델로부터 CNN convolution 레이어를 생성하는 것;
    상기 CNN convolution 레이어로부터 CNN Maxpooling 레이어를 생성하는 것;
    상기 CNN Maxpooling 레이어로부터 CNN Fully connected 레이어를 생성하는 것;
    상기 CNN Fully connected 레이어에 대한 탈락률을 설정하는 것;
    상기 탈락률이 설정된 상기 CNN Fully connected 레이어에 대한 학습률을 설정하는 것;
    상기 학습률이 설정된 상기 CNN Fully connected 레이어에 대한 최적화 알고리즘을 설정하는 것; 및
    상기 최적화 알고리즘이 설정된 상기 CNN Fully connected 레이어에 대한 손실 함수를 설정하는 것을 포함하는 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법.
  5. 제 3항에 있어서,
    상기 강재 표시 문자에 대한 상기 훈련을 수행하는 것은:
    상기 훈련 모델로부터 훈련 이미지 세트를 지정하는 것;
    상기 훈련 이미지 세트에 대한 훈련 반복 횟수를 지정하는 것;
    상기 훈련 이미지 세트로 상기 훈련 반복 횟수로 훈련을 수행하는 것; 및
    상기 훈련에 대한 정확도를 확인하는 것을 포함하는 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법.
KR1020200158648A 2020-11-24 2020-11-24 강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법 KR102462665B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200158648A KR102462665B1 (ko) 2020-11-24 2020-11-24 강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200158648A KR102462665B1 (ko) 2020-11-24 2020-11-24 강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법

Publications (2)

Publication Number Publication Date
KR20220071480A true KR20220071480A (ko) 2022-05-31
KR102462665B1 KR102462665B1 (ko) 2022-11-07

Family

ID=81779953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200158648A KR102462665B1 (ko) 2020-11-24 2020-11-24 강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법

Country Status (1)

Country Link
KR (1) KR102462665B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515359B1 (ko) * 2022-11-18 2023-03-29 써큘러스리더(주) 인공지능을 이용한 반전 글자 인식 장치 및 반전 글자 생성 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102043693B1 (ko) * 2018-09-28 2019-11-12 김지성 기계 학습 기반의 문서 관리 시스템
KR20200087340A (ko) * 2018-12-31 2020-07-21 아주대학교산학협력단 딥러닝을 이용한 객체 인식 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102043693B1 (ko) * 2018-09-28 2019-11-12 김지성 기계 학습 기반의 문서 관리 시스템
KR20200087340A (ko) * 2018-12-31 2020-07-21 아주대학교산학협력단 딥러닝을 이용한 객체 인식 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515359B1 (ko) * 2022-11-18 2023-03-29 써큘러스리더(주) 인공지능을 이용한 반전 글자 인식 장치 및 반전 글자 생성 장치

Also Published As

Publication number Publication date
KR102462665B1 (ko) 2022-11-07

Similar Documents

Publication Publication Date Title
Mujeeb et al. One class based feature learning approach for defect detection using deep autoencoders
CN111401372A (zh) 一种扫描文档图文信息提取与鉴别的方法
Sarika et al. CNN based optical character recognition and applications
Singh et al. Optical character recognition using template matching and back propagation algorithm
CN114898472B (zh) 基于孪生视觉Transformer网络的签名鉴定方法和系统
KR102462665B1 (ko) 강재 적치장 모니터링을 위한 광학적 문자 판독 시스템의 강재 표시 문자 기계 학습 방법
Jingyi et al. Image processing for enhanced omr answer matching precision
Ong et al. Using k-nearest neighbor in optical character recognition
Vinokurov Using a convolutional neural network to recognize text elements in poor quality scanned images
Gayathri et al. Optical Character Recognition in Banking Sectors Using Convolutional Neural Network
Verma et al. Enhanced character recognition using surf feature and neural network technique
Castillo et al. Object detection in digital documents based on machine learning algorithms
Shekar et al. Offline Signature verification using CNN and SVM classifier
Patel et al. Multiresolution technique to handwritten English character recognition using learning rule and Euclidean distance metric
Lincy et al. An Enhanced Deep Learning Model for Handwritten Tamil Character Identification
Velpuru et al. Comprehensive study of Deep learning based Telugu OCR
Rani et al. Quality assessment model for handwritten photo document images
Bappy et al. Bangla Handwritten Numeral Recognition using Deep Convolutional Neural Network
Gupta et al. World Coin Currency Detection Using Various Techniques and Their Comparative Analysis
Egorov et al. Using neural networks to recognize text labels of raster navigation maps
CN117291926B (zh) 字符缺陷检测方法、设备及计算机可读存储介质
Jasim et al. A fuzzy based feature extraction approach for handwritten characters
Gulati et al. Real time handwritten character recognition using ANN
Shruti et al. Automatic Marks Identification from Test Notes using Deep Learning Algorithm
Agbemuko et al. Automated Data Extraction and Character Recognition for Handwritten Test Scripts Using Image Processing and Convolutional Neural Networks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant