KR102651797B1 - Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템 - Google Patents

Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템 Download PDF

Info

Publication number
KR102651797B1
KR102651797B1 KR1020230123871A KR20230123871A KR102651797B1 KR 102651797 B1 KR102651797 B1 KR 102651797B1 KR 1020230123871 A KR1020230123871 A KR 1020230123871A KR 20230123871 A KR20230123871 A KR 20230123871A KR 102651797 B1 KR102651797 B1 KR 102651797B1
Authority
KR
South Korea
Prior art keywords
block
model
software
learning
data
Prior art date
Application number
KR1020230123871A
Other languages
English (en)
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 KR1020230123871A priority Critical patent/KR102651797B1/ko
Application granted granted Critical
Publication of KR102651797B1 publication Critical patent/KR102651797B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41875Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by quality surveillance of production
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

AI 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템이 개시된다. 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템은, 제품을 생산하는 제조 공정을 소프트웨어로 정의하여 가상화하고 생산 프로세스와 인공지능(AI) 모듈을 노코드(no-code) 방식으로 정의하는 플랫폼을 제공하고, 상기 플랫폼을 통해 상기 제조 공정과 관련된 기능으로 구성된 모듈을 DAG(Directed Acyclic Graph) 형태로 연결하여 소프트웨어 정의 기반의 제조 환경을 구성할 수 있다.

Description

AI 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템{MACHINE LEARNING PLATFORM SYSTEM BASED ON SOFTWARE-DEFINED MANUFACTURING FOR AI NON-TECHNICAL}
아래의 설명은 소프트웨어 정의 제조(software-defined manufacturing) 환경을 제공하는 기술에 관한 것이다.
제조 산업의 패러다임이 변화하는 시장에 빠른 대처가 가능하도록 변하고 있다. 고전 제조산업과 달리 고객의 니즈가 다양해지며 그에 따른 제품 생산에 대한 제조의 생산 환경에서도 더 나은 리소스 공유와 협업을 가능하게 하며 기존 제조 부문을 혁신할 수 있는 소프트웨어 정의 제조의 개념이 대두되고 있다.
소프트웨어 정의 개념은 인더스트리 4.0과 같은 비전에 의해 주도되었으며, 스마트 팩토리와 스마트 제조의 표준화를 위해 보다 유연한 시스템 구축과 추상화를 통해 저비용 고효율의 시스템 운영을 보장한다. 급변하는 제조 산업의 생산 방식은 고객의 요구에 따라 제조 기업의 경쟁력을 유지하며, 니즈에 맞는 개별화된 제품을 제공한다.
하지만 이는 생산 과정의 복잡성 증가를 야기하고 높은 비효율을 가져올 수밖에 없다. 이를 보완하기 위해 소프트웨어 정의 제조 환경은 소프트웨어를 통해 시스템 기능을 구성하고 가상의 시뮬레이션에 따라 제조 생산과정을 재구현 및 자동화하여 의사결정과 수익성 개선을 보장한다.
소프트웨어 정의 제조환경을 구축하기 위한 일 연구[Yang, C., Lan, S., Wang, L., Shen, W., & Huang, G. G., "Big data driven edge-cloud collaboration architecture for cloud manufacturing: a software defined perspective," IEEE access, 8, pp. 45938-45950 2020.]에서는 클라우드를 통해 빅데이터를 이관하고 생산 과정의 엣지(edge) 단에서 발생하는 IoT 센서 정보를 계층적 게이트웨이 구성을 통해 실시간 통신한다.
다른 연구[Nayak, N. G., Durr, F., & Rothermel, K., "Software-defined environment for reconfigurable manufacturing systems." In 2015 5th International Conference on the Internet of Things, pp. 122-129. 2015.]에서는 사이버 물리시스템의 구성을 중심으로 제조 조립 라인의 소프트웨어 정의 환경(software-defined environment)을 제안한다.
소프트웨어 정의 환경에 대한 기존 연구는 센서 네트워크의 실시간성과 제조 환경의 데이터 수집을 위한 실시간 통신을 위한 접근이 대부분이다.
실제 생산과정에서 나오는 제품생산 장비와의 네트워크뿐만 아니라 생산된 제품의 품질을 예측하고 생산 프로세스를 시뮬레이션하는 인공지능 기술의 접목이 제조 기업에 부족한 인공지능이나 IT 인력에 대응할 수 있는 실효성 있는 방법이 될 수 있다.
본 발명은 인공지능이나 IT의 비전문가를 대상으로 소프트웨어 정의 기반 제조 환경을 구축하고 생산 프로세스와 인공지능 모듈을 노코드(no-code) 방식으로 정의하는 방법을 제안한다.
컴퓨터로 구현되는 소프트웨어 정의 제조 구성 시스템에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 제품을 생산하는 제조 공정을 소프트웨어로 정의하여 가상화하고 생산 프로세스와 인공지능(AI) 모듈을 노코드(no-code) 방식으로 정의하는 플랫폼을 제공하고, 상기 플랫폼을 통해 상기 제조 공정과 관련된 기능으로 구성된 모듈을 DAG(Directed Acyclic Graph) 형태로 연결하여 소프트웨어 정의 기반의 제조 환경을 구성하는 것을 특징으로 하는 소프트웨어 정의 제조 구성 시스템을 제공한다.
일 측면에 따르면, 상기 소프트웨어 정의 기반의 제조 환경은, 별도의 코드 없이 각 모듈에 해당하는 블록의 배치만으로 실제 제조 공정에 대응되는 생산 공정을 구성 및 제어하는 것으로, 최초 데이터를 수신하는 종말점(EndPoint) 블록을 시작으로 실시간 카메라 장치의 스트림 영상을 받아 처리하는 블록, 그리고 결과를 반환하는 응답(Response) 블록으로 연결되어 구성될 수 있다.
다른 측면에 따르면, 상기 소프트웨어 정의 기반의 제조 환경은, 블록과 블록 사이에 위한 액션(action) 블록으로 MES(manufacturing execution system)나 OPC(OLE for process control) 또는 IoT 장비에서 실시간 생산 정보를 읽어 처리하기 위한 블록, 또는 IF(조건문) 블록으로 데이터베이스에서 주기적으로 쿼리를 가져오거나 특정 데이터를 기준으로 설정 조건에 대한 결과를 다음 블록에 전달하기 위한 블록이 포함될 수 있다.
또 다른 측면에 따르면, 상기 소프트웨어 정의 기반의 제조 환경은, 블록과 블록 사이에 위한 액션(action) 블록으로 MES(manufacturing execution system)나 OPC(OLE for process control) 또는 IoT 장비에서 실시간 생산 정보를 읽어 처리하기 위한 블록, 및 인공지능 모델을 지원하는 연산(operation) 블록으로 상기 액션 블록과 조합하여 데이터를 입력받아 학습된 인공지능의 예측 결과를 다음 블록으로 전달하기 위한 블록이 포함될 수 있다.
또 다른 측면에 따르면, 상기 소프트웨어 정의 기반의 제조 환경은, 마지막 출력(output) 블록으로 생산 파이프라인의 결과를 REST(Representational State Transfer) API를 통해 별도 장비에 전송하거나 데이터베이스에 저장하기 위한 블록이 포함될 수 있다.
또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 실제 제조환경에서 수집된 데이터를 기초로 상기 소프트웨어 정의 기반의 제조 환경에 대한 제품 품질을 사전에 예측하는 실증 분석을 수행하고, 노코드 기반의 인공지능 생성 도구를 사용하여 상기 실증 분석을 위한 사전 품질 예측 모델이 학습될 수 있다.
또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 상기 데이터를 업로드하거나 데이터베이스를 통해 입력하면 상기 데이터에 대한 특징을 분석하고, 상기 데이터의 특징 분석 결과를 기초로 EDA(Exploratory Data Analysis)를 자동으로 수행함으로써 불필요한 인자 또는 아웃라이어(outlier)를 제거하거나 클래스의 불균형을 해소하기 위한 클래스 밸런스(Class balance) 기능을 제공할 수 있다.
본 발명의 실시예들에 따르면, 소프트웨어 정의 제조 기반의 머신러닝 플랫폼을 통해 소프트웨어 정의 제조 환경 구축을 위해 제조공정을 시뮬레이션 하는 DAG(Directed Acyclic Graph) 기반의 자유도 높은 운영환경 구성 기술을 제공할 수 있고 인공지능 모델 블록을 넣어 실제 생산 공정에서 작업자의 노하우에 의존하는 장치의 설정과 품질 관리 등을 인공지능 기술로 학습하고 처리할 수 있다.
본 발명의 실시예들에 따르면, 제조 환경의 생산 공정을 소프트웨어 정의 기반으로 구축 가능한 플랫폼을 통해 고객의 니즈에 기민한 생산과 품질을 보장하기 위해 공정을 가상화 하고 가상화 된 공정의 프로세스가 실제 공정과 통신하고 제어 가능하도록 구성할 수 있다. 따라서, 소프트웨어 정의 제조 환경은 빠르게 변화하는 제조 시장에서 높은 효율과 낮은 비용을 보장할 수 있으며, 인공지능 모델의 다양화와 제조 장비의 통신, 제어 기술을 통해 보다 다양한 제조 산업에 적용될 수 있다.
도 1은 본 발명의 일실시예에 있어서 컴퓨터 장치의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 2는 본 발명의 일실시예에 있어서 소프트웨어 정의 제조 운영 환경 구성 예시를 도시한 것이다.
도 3 내지 도 23은 본 발명의 일실시예에 있어서 소프트웨어 정의 제조 환경을 위한 플랫폼 인터페이스 화면 예시를 도시한 것이다.
도 24 내지 도 27은 본 발명의 일실시예에 있어서 소프트웨어 정의 제조 실증 분석을 위한 플랫폼 인터페이스 화면 예시를 도시한 것이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들은 소프트웨어 정의 제조 환경을 제공하는 기술에 관한 것이다.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 인공지능, IT 전문가가 부족한 제조 기업을 대상으로 비전문가가 생산 공정을 구성하고 노코드 기반으로 인공지능을 생성하고 서비스 가능한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼을 제공할 수 있다.
본 발명의 실시예들에 따른 소프트웨어 정의 제조 구성 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 소프트웨어 정의 제조 구성 방법은 소프트웨어 정의 제조 구성 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 소프트웨어 정의 제조 구성 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 소프트웨어 정의 제조 구성 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 예를 들어, 본 발명의 실시예들에 따른 소프트웨어 정의 제조 구성 시스템은 도 1을 통해 도시된 컴퓨터 장치(100)에 의해 구현될 수 있다.
도 1에 도시된 바와 같이 컴퓨터 장치(100)는 본 발명의 실시예들에 따른 소프트웨어 정의 제조 구성 방법을 실행하기 위한 구성요소로서, 메모리(110), 프로세서(120), 통신 인터페이스(130) 그리고 입출력 인터페이스(140)를 포함할 수 있다.
메모리(110)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(110)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(100)에 포함될 수도 있다. 또한, 메모리(110)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(110)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(110)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(130)를 통해 메모리(110)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(160)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(100)의 메모리(110)에 로딩될 수 있다.
프로세서(120)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(110) 또는 통신 인터페이스(130)에 의해 프로세서(120)로 제공될 수 있다. 예를 들어, 프로세서(120)는 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(130)는 네트워크(160)를 통해 컴퓨터 장치(100)가 다른 장치와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(100)의 프로세서(120)가 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(130)의 제어에 따라 네트워크(160)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(160)를 거쳐 컴퓨터 장치(100)의 통신 인터페이스(130)를 통해 컴퓨터 장치(100)로 수신될 수 있다. 통신 인터페이스(130)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(120)나 메모리(110)로 전달될 수 있고, 파일 등은 컴퓨터 장치(100)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
통신 방식은 제한되지 않으며, 네트워크(160)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들 간의 근거리 유선/무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(160)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(160)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
입출력 인터페이스(140)는 입출력 장치(150)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드, 카메라 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(140)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(150)는 컴퓨터 장치(100)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(100)는 도 1의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(100)는 상술한 입출력 장치(150) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이하에서는 AI 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템의 구체적인 실시예를 설명하기로 한다.
제조 산업의 패러다임이 변화하는 시장에 빠른 대처가 가능하도록 변하고 있어, 이를 위해 소프트웨어 정의 제조 환경이 필요하다. 소프트웨어 정의 제조는 제품을 생산하는 공정을 소프트웨어로 정의하여 가상화하고 운영 결과가 실제 생산 공정에 대응되어야 한다. 이를 위해 다양한 제조 데이터, 장치와 통신하고 현재 작업자의 노하우에 의존되어 진행되는 작업의 전산화가 필요하다.
본 발명은 인공지능이나 IT 전문가가 부족한 제조 기업을 대상으로 비전문가가 생산 공정을 구성하고 노코드 기반으로 인공지능을 생성하고 서비스 가능한 플랫폼을 제공할 수 있다.
본 발명의 AI 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템은 소프트웨어 정의를 제조에 적용할 수 있으며, 제조 생산 프로세스에서 작업자가 개입해야 하는 부분을 AI로 대체할 수 있다.
이를 위해 소프트웨어 정의 기반의 제조 환경을 구성하는 DAG 기반의 운영환경 구성 방법을 설명하고 실제 제조환경에서 수집된 데이터를 통해 제품의 품질을 사전에 예측하는 실증 분석을 수행한다.
소프트웨어 정의 제조 환경
본 발명에 따른 소프트웨어 정의 제조 환경은 쿠버네티스(Kubernetes) 기반으로 각각의 모듈이 컨테이너로 동작하며 장애 발생 시 안정성을 보장한다.
도 2는 본 발명의 일실시예에 있어서 소프트웨어 정의 제조 운영 환경 구성 예시를 도시한 것이다.
도 2는 본 발명에 따른 소프트웨어 정의 제조 환경을 구성하기 위한 운영 환경 구성을 나타내고 있다. DAG 형태로 컨테이너 기반의 각각의 모듈을 연결하여 자유도 높은 운영 환경을 구성할 수 있다.
도면 오른편의 블록 패널 영역 내 블록들은 각각 하나의 소프트웨어이며 제조 환경을 제어, 통신하기 위한 기능들로 구성되어 있다. 최초 데이터를 수신하는 EndPoint 블록을 시작으로 실시간 Camera 장치의 스트림 영상을 받고 처리하는 블록, 결과를 반환하는 Response 블록으로 연결된다. 시작과 끝 블록 사이는 여러 Action 블록들이 위치할 수 있으며, MES(manufacturing execution system), OPC(OLE for process control), 그리고 IoT 장비에서 실시간으로 생산 정보를 읽어 처리할 수 있다. 그 외에도 외부 데이터베이스에서 주기적으로 쿼리를 가져오거나 특정 데이터를 기준으로 IF 분기를 태우는 등 입력되는 데이터에 따라 발생할 수 있는 다양한 이벤트에 대응 가능하다. 세 번째, Operation 블록은 인공지능 모델을 지원한다. 본 발명에 따른 플랫폼은 영상 기반의 Vision 모델과 센서, 생산데이터 기반의 테이블 형식(Tabular) 모델을 지원한다.
Operation 블록은 Action 블록과 조합하여 데이터를 입력 받고 학습된 인공지능의 예측 결과를 다음 블록으로 전송한다. 마지막 Output 블록은 생산 파이프라인의 결과를 별도의 장비에 REST(Representational State Transfer) API로 전송하거나 데이터베이스에 저장하는 기능을 한다. 이를 통해 사용자는 별도의 코드 없이 블록의 배치만으로 실제 제조 공정에 대응되는 생산 공정을 구성하고 제어할 수 있다.
나아가, 본 발명에 따른 플랫폼은 인공지능 블록을 이용하여 생산 과정에서 기존 제조 현업이 노하우로 처리하던 제어 요소와 품질 관리 요소를 학습하여 높은 작업 효율과 오차의 최소화를 기대할 수 있다.
본 발명 플랫폼에서는 운영 환경 앱인 Operation-Routine을 통하여 학습된 인공지능 모델을 운영하고 실시간 추론 서비스를 사용하기 위한 환경을 제공한다.
Operation-Routine의 세부 내용은 다음과 같다.
Operation-Routine은 학습 모델을 이용하여 실시간 예측에 사용하기 위한 운영 환경을 제공하는 것으로, DAG 형태의 인터페이스 화면을 제공하고, 마우스 휠을 이용하여 화면 확대/축소 및 마우스 왼쪽 버튼을 이용하여 화면 이동 기능을 제공한다.
도 2를 참조하면, Operation-Routine 인터페이스 화면은 기본적으로 운영 환경에 대한 동작/정지, 레이아웃의 업로드/다운로드 기능을 제공하는 Controller 필드(210)를 포함할 수 있다. 그리고, Operation-Routine 인터페이스 화면은 각 블록 간의 공통 키워드 및 공유 변수 공간을 나타내는 글로벌 변수(Global Variables) 영역(220), 입력 및 출력 정의 및 동작 구성을 위한 독립된 기능 블록(230), 블록 모음 패널을 나타내는 Block Panel(240), 블록을 구성하고 연결하는 패널을 나타내는 Main Panel(250), 화면의 확대 및 축소, 화면 맞춤, 화면 이동 등을 위한 Navigation Panel(260) 등을 포함할 수 있다.
Block Panel(240)에는 Operation-Routine을 구성할 수 있는 다양한 블록들(230)을 제공하고 있으며, 해당 블록 아이콘을 드래그앤드롭(Drag&Drop)으로 Main Panel(250)에 작업 흐름을 구성할 수 있다.
Main Panel(250) 상의 블록(230) 간의 연결은 도 3에 도시한 바와 같이 블록의 왼쪽이나 오른쪽에 구성된 포트를 통하여 선을 연결하여 동작에 대한 흐름을 설정할 수 있다. 각 블록은 형태에 따라 연결할 수 있는 블록에 제한이 있다. Operation-Routine을 구성하는 블록은 선/후행 블록에 모두 연결 가능한 블록, 선/후행 블록에 모두 연결 불가한 블록, 설정 및 Endpoint 구성에 따라 연결 가능한 블록으로 구분될 수 있다.
Operation-Routine의 Controller 필드(210)에서는 해당 작업 흐름의 저장, 실행, 정지, Import, Export의 기능을 제공한다. Operation-Routine 구성 후 Controller 필드(210)에서 실행 버튼을 통해 Operation-Routine을 실행할 수 있고, 실행 후에는 정지 버튼을 통해 서비스를 정지할 수 있다.
실행 중에는 Controller 필드(210)의 실행 버튼이 정지 버튼으로 변경되고, 저장을 제외한 나머지 버튼은 비활성화된다. 도 4를 참조하면, 실행 중인 블록 간의 연결선은 점선으로 표시되고, 작업 흐름의 정지시에는 블록 간의 연결이 실선으로 표시된다.
그리고, Controller 필드(210)를 이용한 Import 또는 Export 기능을 통해서 생성된 Operation Routine 정보를 내보내거나 가져올 수 있다. Import의 경우 Operation Routine에서 Export 한 json 파일을 Import하고, Export의 경우 Export 버튼을 클릭하면 Operation Routine 정보를 json 파일로 다운로드 받을 수 있다.
글로벌 변수는 Operation-Routine 블록들 간에 공유할 수 있는 변수들의 집합이다. 글로벌 변수 영역(220)에 연계된 설정 버튼을 클릭하여 추가 및 삭제할 수 있다. 글로벌 변수 영역(220)에 포함된 각 변수의 값은 변수 설정(Set Variable) 블록을 통하여 값을 입력할 수 있으며, 등록된 변수의 값은 각 블록의 Input 패널에서 활용할 수 있다. 글로벌 변수에 저장된 값은 Operation-Routine 안에서 하나의 작업 흐름이 시작부터 종료되는 시점까지 무결성을 보장한다. 즉, 작업 흐름이 시작된 이후에 변경된 글로벌 변수는 이후의 작업 흐름에 반영된다. 글로벌 변수는 데이터의 공유를 위한 변수로도 사용되지만, 모니터링 항목에서는 해당 운영 서비스의 데이터를 추적하는 중요 키(KEY)로 사용될 수 있다. 추론 결과를 글로벌 변수로 등록된 변수 이름과 값을 통하여 조회할 수 있다.
Operation-Routine의 모든 블록들(230)은 각각의 입력 및 출력 형태를 가진다. 블록 내부에서 사용할 데이터는 입력에서 설정하고 블록에 실행된 결과값은 출력으로 표현된다.
도 5는 블록의 입력과 출력 형태를 설명하기 위한 예시 도면이다.
도 5를 참조하면, 각 블록의 입력 형태를 설정할 수 있으며, 이때 블록의 종류에 따라 입력 변수를 추가할 수 있는 블록과 추가할 수 없는 블록이 있다. 기본적으로 각 블록들의 입력 변수는 연결선에 따라 이전 블록에 같은 이름의 출력 변수가 있다면 자동으로 설정된다. 마찬가지로, 각 블록의 출력 형태를 설정할 수 있으며, 기본적으로 각 블록의 출력 변수 값은 정해져 있고 출력 변수는 연결선에 의한 다음 블록의 입력 변수로 사용된다.
Operation-Routine의 블록 중 EndPoint는 RESTful API를 사용하는 블록으로 Endpoint 블록과 연계된 수정 버튼을 눌러 입력 형식, 입/출력 변수 설정을 할 수 있다. Endpoint 블록은 운영서비스를 위한 데이터를 전달받기 위한 주소를 생성하며, 이미지나 텍스트 등의 Json 데이터를 처리한다. EndPoint 블록은 rest의 입력 형식을 제공하고, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정할 수 있다. Endpoint 블록 생성 후 주소 복사 버튼을 통하여 Endpoint 주소를 확인할 수 있다. Endpoint 블록의 입력은 RESTful API를 통해 입력되는 Json Key들을 추가할 수 있고, 이때 설정된 입력 Key는 다음 블록에서 사용할 수 있다. Endpoint 블록의 출력은 입력과 동일한 데이터가 출력된다.
Response 블록은 RESTful API에 응답 값을 보내주는 블록으로, Endpoint 블록과 쌍을 이루는 블록이다. Endpoint 블록을 사용하는 경우 작업 흐름에 대한 결과값을 응답받기 위해서는 Response 블록을 필수적으로 사용해야 한다. Response 블록과 연계된 수정 버튼을 눌러 설정을 할 수 있다. Response 블록의 입력은 응답을 보낼 데이터의 Key-Value를 설정할 수 있고, 이때 해당 블록을 포함한 연결된 모든 블록의 데이터 또는 글로벌 변수의 데이터를 설정할 수 있다. Response 블록의 출력은 입력과 동일한 데이터가 출력된다.
Camera 블록은 카메라를 연결하는 블록으로, URL 스트리밍 방식과 ONVIF 프로토콜을 이용한 RTSP 방식을 지원하며, Camera 블록과 연계된 수정 버튼을 눌러 설정을 할 수 있다. URL 스트리밍 방식을 사용하는 Camera 블록 설정 화면은 도 6에 도시된 바와 같고, 카메라명을 통해 블록의 이름을 설정할 수 있고, 설정된 정보를 통해 실시간 영상을 확인하기 위한 카메라 테스트 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다. 한편, ONVIF 인터페이스를 사용하는 Camera 블록 설정 화면은 도 7에 도시된 바와 같고, 블록의 이름을 나타내는 카메라명, 카메라 주소를 나타내는 host ip, 카메라 접속 아이디와 카메라 접속 비밀번호 등을 설정할 수 있다. 또한, ONVIF 인터페이스를 사용하는 Camera 블록 설정 화면은 onvif 검색을 위한 카메라 설정 검색 버튼, 카메라 설정 프로파일인 profile 명을 선택하기 위한 버튼, 설정된 정보를 통해 실시간 영상을 확인하기 위한 카메라 테스트 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다.
Video Save 블록은 카메라 영상을 파일로 저장할 때 사용되는 블록으로, 해당 블록과 연계된 수정 버튼을 눌러 설정을 할 수 있다. Video Save 블록 설정 화면은 도 8에 도시된 바와 같고, 블록의 이름과 저장 파일명, 파일 저장 주기 등을 설정할 수 있다. 파일명으로는 ${} 형식의 예약어를 사용할 수 있으며, 이때 예약어는 date, time, 글로벌 변수들을 사용될 수 있다. Video Save 블록 설정 화면은 영상을 저장할 Camera 블록을 선택하기 위한 버튼, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다.
Operation-Routine에서 TCP 블록은 TCP 클라이언트(Client)로 동작한다. TCP 블록은 외부의 TCP 서버에 연결하여 주기적으로 데이터를 가져오거나 블록 연결을 통하여 작업 흐름 시마다 데이터를 가져오는 역할을 한다. TCP 블록 설정 화면은 도 9에 도시된 바와 같고, TCP 연결 유형의 경우 간격을 설정하여 주기적으로 TCP 블록을 실행하는 Interval 유형과 블록 연결 흐름에 따라 한번만 실행하는 Flow 유형으로 구별될 수 있다. TCP 블록 설정 화면은 TCP ip, TCP port, 전송 데이터 인코딩, TCP에 전송할 데이터, 응답 데이터 인코딩 등을 설정할 수 있다. TCP 블록 설정 화면은 TCP에서 응답 온 데이터로 출력의 output으로 저장하기 위한 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다.
Operation-Routine에서 변수 설정(Set Variable) 블록은 글로벌 변수로 등록된 변수에 값을 저장하는 블록으로 해당 블록과 연계된 수정 버튼을 눌러 설정을 할 수 있다. 변수 설정 블록 설정 화면은 도 10에 도시된 바와 같고, 블록의 이름을 설정하는 기능, 저장할 글로벌 변수를 선택하는 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다. 변수 설정 블록의 입력은 특정 글로벌 변수에 저장할 값으로 설정될 수 있고, 출력은 특정 글로벌 변수에 저장한 값이 된다.
Operation-Routine에서 IF(조건문) 블록에서는 특정 조건(Global Variables, 연결된 블록의 출력 변수)을 설정하여 조건이 일치하면 True, 불일치하면 False로 다음 블록을 연결하는 역할을 한다. IF 블록과 연계된 수정 버튼을 눌러 설정을 할 수 있다. IF 블록 설정 화면은 도 11에 도시된 바와 같고, 블록의 이름을 설정하는 기능, 조건 목록의 연산(예를 들어, AND, OR 등)을 설정하는 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다. 조건 목록은 설정 변수 선택에 따른 입력, 조건(예를 들어, ==, !=, <, > 등), 입력 값과 비교하기 위한 value 등이 포함될 수 있다. IF 블록에서 사용할 값이 입력이 되고, IF 블록의 결과 값(True 또는 False)이 출력이 된다.
Operation-Routine에서 GetQuery 블록은 DBMS(데이터베이스 관리 시스템)에 연결하여 데이터를 조회하고 조회된 데이터를 출력의 변수로 저장하는 블록이다. 외부의 DBMS에 연결하여 주기적으로 데이터를 가져오거나 블록 연결을 통하여 작업 흐름 시마다 데이터를 가져올 수 있다. GetQuery 블록과 연계된 수정 버튼을 눌러 설정할 수 있다. GetQuery 블록 설정 화면은 도 12에 도시된 바와 같고, GetQuery 연결 유형의 경우 간격을 설정하여 주기적으로 GetQuery 블록을 실행하는 Interval 유형과 블록 연결 흐름에 따라 한번만 실행하는 Flow 유형으로 구별될 수 있다. GetQuery 블록 설정 화면은 블록의 이름, 데이터베이스 유형(예를 들어, Oracle, MySQL, PostgreSQL, MsSQL 지원 등), 데이터베이스 host(서버 host) 주소, 데이터베이스 포트, 데이터베이스 이름, 데이터베이스 연결 계정 아이디와 패스워드 등을 설정하기 위한 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다. GetQuery 블록의 입력은 설정할 수 없으며, 쿼리 결과의 컬럼 리스트가 출력으로 설정된다.
Operation-Routine에서 CameraControl 블록은 ONVIF 프로토콜을 지원하는 카메라의 동작을 제어하는 블록으로, 카메라에 지정된 프리셋으로 카메라를 설정할 수 있다. CameraControl 블록과 연계된 수정 버튼을 눌러 설정할 수 있다. CameraControl 블록 설정 화면은 도 13에 도시된 바와 같고, 블록의 이름, 카메라, 변경할 프리셋 등을 설정하기 위한 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다.
Operation-Routine에서 Mapper 블록은 입력으로 전달받은 데이터를 변환하여 새로운 출력 변수로 변경하는 블록으로, 해당 블록과 연계된 수정 버튼을 눌러 설정을 할 수 있다. Mapper 블록 설정 화면은 도 14에 도시된 바와 같고, 블록의 이름, 입력 변수, 출력 변수 등을 설정하기 위한 기능, 변환할 데이터를 추가하고 변환에 대한 상세 조건을 설정하기 위한 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다. Mapper 블록 설정 화면의 추가 기능을 통해 입력과 출력 변수를 설정하고 변환하고자 하는 함수를 선택할 수 있다. 변환 함수 중 Substring은 시작인덱스(indexStart)와 종료인덱스(indexEnd) 위치를 입력하고, padStart는 데이터 앞의 최대 길이(maxLength)와 채울 문자(fillString)를 입력하고, padEnd는 데이터 뒤의 최대 길이(maxLength)와 채울 문자(fillString)를 입력한다. Mapper 블록을 통해 값을 변경할 입력 값을 지정하고, Mapper 블록에서 설정된 출력 값이 출력으로 자동 입력된다.
Operation-Routine에서 Result 블록은 동작 시작 시점부터 정지 시점까지의 데이터 집계 결과를 출력하는 블록이다. 도 15를 참조하면, Method에서는 Result 블록에 대한 동작을 제어할 수 있다. IF 블록을 통하여 특정 조건에 만족하는 경우 Run/Stop에 연결하여 AI 모델의 추론을 동작시키거나 정지할 수 있다. Result 블록 설정 화면은 도 16에 도시된 바와 같고, 블록의 이름, 로그 집계 후 동작하는 함수(예를 들어, Count의 경우 집계한 로그의 개수를 계산), 조건에 맞지 않았을 경우 기본적으로 내보내는 출력 값, 조건 목록(condition, value, 출력 값) 등을 설정하기 위한 기능이 포함될 수 있다. 집계할 블록의 출력이 Result 블록의 입력이 되고, 조건의 결과가 Result 블록의 출력이 된다.
Operation-Routine에서 Vision 블록과 Tabular 블록은 학습된 모델을 통하여 추론 환경을 구성하는 블록이다. 이미지를 추론하는 Vision 모델과 텍스트를 데이터로 추론하는 Tabular 모델로 구분된다. 도 17을 참조하면, Method에서는 Tabular 블록과 Vision 블록에 대한 동작을 제어할 수 있다. IF 블록을 통하여 특정 조건에 만족하는 경우 Run/Stop에 연결하여 AI 모델의 추론을 동작시키거나 정지한다. Vision/Tabular 블록 설정 화면은 도 18에 도시된 바와 같고, 블록의 이름, 모델명과 모델 버전, 요청 후 응답 시간까지의 최대 허용 시간 등을 설정하기 위한 기능, 블록에서 생성되는 로그 저장 유무를 선택적으로 설정하기 위한 로그 저장 기능 등이 포함될 수 있다. Vision/Tabular 블록 설정 화면은 전처리와 후처리 조건을 설정할 수 있다. 전처리의 경우 EndPoint 블록으로 들어온 데이터의 전처리를 담당할 Python 코드를 직접 입력할 수 있다. 모델 분석결과를 후처리 하여 사용자가 쉽게 확인할 수 있게 결과값을 치환하게 되는데, Script 타입에서는 전처리와 동일하게 후처리를 담당할 python 코드를 직접 입력하며, Condition 타입에서는 AI 모델의 클래스를 기준으로 후처리 조건을 설정할 수 있다. 도 19에 도시한 바와 같이, Condition 타입의 후처리 조건 설정 화면에서는 분석 예측 결과 값이 해당 Condition의 범위에 포함되면 표시하게 될 색을 선택할 수 있고, condition 이름, 분석 예측 결과값(Class), 클래스를 예측할 때 기준이 되는 항목 등을 설정할 수 있다. 클래스 예측 기준 항목은 예측 정확도(accuracy)를 기준으로 평가하는 항목, 예측 값(value)을 기준으로 평가하는 항목, 예측 개수(count)를 기준으로 평가하는 항목 등이 포함될 수 있다. 타겟에 입력된 항목의 조건을 부여하여 조건에 부합되면 Class Condition이 발생할 수 있다. 모델 블록에서 사용하는 입력 값과 출력 결과 값은 도 20에 도시한 바와 같다.
Operation-Routine에서 Database 블록은 Tabular/Vision 블록을 통해 추론된 결과를 DBMS에 저장하는 블록이다. Database 블록 설정 화면은 도 21에 도시된 바와 같다. Database 블록 동작 유형은 Insert, Update, Delete를 포함할 수 있다. Database 블록 설정 화면에서는 Block 이름, 데이터베이스 종류(Oracle, MySQL, PostgreSQL, MsSQL 지원 등), 데이터베이스 접속 IP(서버 host), 데이터베이스 포트, 데이터베이스 이름, 데이터베이스 접속 계정(사용자명)과 패스워드, 예측 결과를 저장할 테이블, 저장할 테이블의 컬럼 이름, 저장할 예측 결과 이름(source) 등을 설정하기 위한 기능이 포함될 수 있다. Database 블록을 통해 입력할 값을 설정하고, Database 블록은 항상 True를 출력한다.
Operation-Routine에서 RestApi 블록은 입력 데이터를 RESTful API를 이용하여 데이터를 전송하는 블록이다. RestApi 블록 설정 화면은 도 22에 도시된 바와 같다. RestApi 연결 유형은 간격을 설정하여 주기적으로 RestApi 블록을 실행하는 Interval 유형과 블록 연결 흐름에 따라 한번만 실행하는 Flow 유형으로 구별될 수 있다. RestApi 블록 설정 화면은 Block 이름, RestAPI Method(GET, POST, PUT, DELETE), RestAPI url, 추가로 설정할 http header, RestAPI Body로 전송할 데이터 등을 설정하기 위한 기능이 포함될 수 있다. RestApi 블록의 입력은 설정할 수 없으며, RestAPI의 결과값이 RestApi 블록의 출력이 된다.
Operation-Routine의 Main Panel(250)에서 작업 흐름으로 구성된 각각의 블록을 클릭하면 도 23에 도시한 바와 같이 해당 블록의 상세 동작 로그(2301)를 제공할 수 있다.
소프트웨어 정의 제조 실증 분석
본 발명에 따른 소프트웨어 정의 제조 구성 시스템의 실효성을 검증하기 위해 자동차 방진 부품을 생산하는 기업의 생산 공정을 소프트웨어 정의 제조 기반으로 시뮬레이션하고 제품이 생산되기 전 사전에 품질을 예측하도록 구성할 수 있다.
사전 품질 예측 모델을 학습하기 위해 사용한 노코드 기반의 인공지능 생성 도구는 데이터셋, 특징 분석, 학습, 평가로 구성되어 있으며, 각각의 단계가 별도의 코드 없이 비전문가도 사용할 수 있도록 제공된다. 데이터셋 도구는 데이터셋 구성을 위해 데이터를 가져오는 작업을 진행한다(Data Ingestion). 특징분석 도구는 데이터셋을 구성하는 데이터의 기술통계 결과, 차트 시각자료를 통해 학습에 필요한 데이터를 분석하는 작업을 진행(Feature Engineering). 학습 도구는 분석 완료된 특징을 이용해 인공지능 모델을 생성하는 작업을 진행한다(Training). 평가 도구는 학습된 인공지능 모델을 통해 임의의 예측결과를 실험해 모델의 정합성을 평가하는 작업을 진행한다(Evaluation).
데이터를 업로드하거나 데이터베이스를 통해 입력하면 자동으로 데이터에 대한 특징을 분석한다. 데이터 전문가가 수행하는 EDA(Exploratory Data Analysis)를 자동으로 진행해 불필요한 인자를 제거하도록 추천하거나 아웃라이어(outlier)를 제거, 클래스의 불균형을 해소하는 Class balance 기능을 제공할 수 있다.
자동차 방진 부품의 생산 데이터는 생산 공정에서 약 150개의 인자를 포함하고 있으며 모델의 영향도 분석을 통해 50개의 인자로 축소하여 노코드 기반의 인공지능 생성 도구를 통해 학습한다.
학습은 Xgboost, K-NN, LightGBM, HistgradientBoosting, LinearSupportVector 모델을 AutoML로 수행한다. 내부적으로 AutoML은 Bayesian Optimization를이용해 최적화하며 각각의 트라이얼에서 10-fold 교차 검증(Cross Validation)을 수행할 수 있다.
표 1은 자동차 방진 부품 사전예측 모델 성능을 나타낸 것이다.
자동차 방진부품의 품질은 240~370 사이의 특성값을 예측하는 것으로 XGBoost가 RMSE 1.46으로 가장 높은 성능을 보임을 알 수 있다.
본 실시예에서는 분석 완료된 특징을 이용해 인공지능 모델을 생성하는 작업을 진행할 수 있으며, 이때 구체적인 모델 학습 과정(training)은 다음과 같다.
데이터의 특징 분석과 편집이 완료되면 해당 데이터로 모델을 학습할 수 있다. 본 발명 플랫폼에서는 학습가능한 모델 목록과, 모델 별 학습 결과, 그리고, 학습 모델의 상세 설정을 확인할 수 있다.
도 24는 모델 학습 인터페이스 화면 예시를 도시한 것이다.
도 24를 참조하면, 모델 학습 인터페이스 화면에는 학습 가능한 모델 목록(2410)이 표시될 수 있다. 모델 목록(2410)에는 모델 허브에 등록된 모델들이 표시되며, 각각의 모델은 버전으로 관리되어 구버전, 신버전의 모델을 사용자가 직접 선택해 학습할 수 있다. 모델 학습 인터페이스 화면에서는 Auto ML 버튼을 통해 자동으로 데이터 셋에 대한 최적의 모델과 최적의 Hyper Parameter를 탐색할 수 있다. 이 방법은 동시에 여러 모델의 학습과 테스트를 진행하기 때문에 데이터의 크기에 따라 많은 시간이 소요될 수 있다. 모델 학습 인터페이스 화면에는 학습 데이터의 전체적인 설정을 위한 설정 버튼이 포함될 수 있다. 학습 설정 화면을 통해 학습하려는 모델의 평가 기준, 학습과 검증에 사용되는 데이터의 비율을 설정할 수 있다.
모델 학습 인터페이스 화면은 모델 학습의 결과와 히스토리가 표시되는 학습 결과 패널(2420), 학습 결과 패널(2420)에서 선택한 모델의 상세 정보가 표시되는 학습 결과 상세 영역(2430) 등이 포함될 수 있다. 모델 목록(2410)에 포함된 특정 모델의 실행 버튼을 선택하거나 Hyper Parameter 설정 화면에서 실행 버튼을 선택하면 해당 모델의 학습이 시작된다. 학습이 종료되면 사용자가 설정한, 혹은 목적 타입에 따라 기본적으로 설정 되어있는 평가 기준에 따라 학습 결과가 순서대로 정렬된다. 정렬 목록에 포함된 각 학습 결과에 대해 분석 가능한 기능의 목록을 제공할 수 있으며, 이때 분석 기능으로 설명 가능한(Explainable) AI 버튼, 학습 결과 분석 버튼, 하이퍼 파라미터 버튼, 로그 버튼, 배포 버튼, 학습 결과 삭제 버튼 등이 포함될 수 있다.
(1) 설명 가능한 AI
Explainable AI 버튼이 입력되면 모델 기반 영향도(Feature Effect)(도 25) 및 인자 설명 분석 자료(Prediction Explanation)(도 26)를 제공할 수 있다.
도 25에 도시한 바와 같이, 모델 기반 영향도 화면에는 모델을 학습할 때 모델이 주요하게 참고한 변수들과 각 영향도를 표시할 수 있으며, 특정 변수를 선택하면 영향도 차트가 출력될 수 있다. 영향도는 해당 컬럼이 학습에 포함되지 않았다면 모델이 예측했을 값을 나타내는 의존도, 모델 학습 시 TEST SET에 포함된 실제 변수의 값을 나타내는 실제 값, 학습 완료된 모델이 실제로 예측한 값을 나타내는 예측 값, 선택 변수의 분포를 나타내는 히스토그램으로 표현될 수 있다. 일반적으로 실제 값과 예측 값이 비례하거나 일치할수록 모델에 영향력이 크다. 실제 값과 예측 값이 가까울 때 의존도가 반비례하거나 차트 상 동떨어져 있다면 해당 변수가 모델에 주는 영향도가 크다는 것을 의미한다.
도 26에 도시한 바와 같이, 인자 설명 분석 자료 화면에는 모델을 학습할 때 사용한 TEST SET의 예측 결과가 표시될 수 있으며, 이때 리스트에서 하나의 예측 값을 선택하면 해당 예측에 기여한 컬럼들의 정보가 출력될 수 있다. 차트의 상단에 표시된 수치(예를 들어, 98.47490030930564)는 예측 값에 해당된다. 차트에 표시된 두 개의 기준선(점선)은 각각 E[f(X)], 그리고 f(X)를 나타낸다. E[f(X)]는 예측의 기대 값으로 해당 예측의 예측 결과로 기대했던 값을 의미한다. f(x)는 실제 예측 값으로, 차트를 보면 두 개의 기준선 사이에 여러 변수들이 +, -로 영향을 주고 있다. 인자 설명 분석 자료 화면은 기대한 예측 값과 실제 예측 값 사이에 각 변수들이 기여한 정도를 분석하는 기능을 제공한다. 예측 범위에 따라 (예측 값이 낮거나, 높거나) 서로 다른 변수 별 기여도를 확인할 수 있으며, 이를 통해 특정 변수 값의 크기에 따라 예측 결과가 높게 나올지, 낮게 나올지 등 예측 패턴 별 주요 인자와 기여도를 확인할 수 있다.
(2) 학습 결과 분석
학습 결과 분석 버튼이 입력되면 해당 모델의 학습 정보를 제공할 수 있다. 도 27을 참조하면, 학습 결과 분석 화면에는 학습/검증 셋으로 예측한 분류 결과가 표시되는 Bar Chart, 민감도/특이도로 구성된 학습 그래프가 표시되는 ROC Curve(그래프의 기울기가 왼쪽 상단에 가까울수록 좋은 결과임), 정밀도(Precision)와 재현율(Recall)로 구성된 학습 그래프가 표시되는 Precision Recall Curve(기울기가 오른쪽 상단에 가까울수록 좋은 결과임), TP, TN, FP, FN으로 구성된 표가 표시되는 Confusion Matrix, 모델이 학습할 때 가장 많은 영향을 준 컬럼 정보가 표시되는 Feature Importance 등이 포함될 수 있다. 이외에, 데이터의 분포와 데이터를 선형으로 표현하는 회귀선을 동시에 표현하는 그래프(Reg Plot), 예측한 값과 실제 정답 값을 비교한 차트(Distribution Plot) 등이 표시될 수 있으며, 모델의 학습 상태가 표시됨에 따라 Running, Fail, Complete으로 모델의 학습이 완료되었는지 확인할 수 있다. 또한, 모델의 Score가 표시될 수 있고, 기본적으로 Regression 목적의 경우 R2 스코어가, Classification 목적의 경우 Accuracy가 설정되어 있다. 사용자가 전체 설정으로 변경할 경우 해당 값을 기준으로 정렬되며, 사용한 모델의 이름, 사용한 모델의 버전 등이 표시되고, 모델이 학습한 지표들이 함께 평가되어 표시될 수 있다.
(3) 하이퍼 파라미터
하이퍼 파라미터 버튼이 입력되면 모델의 Hyper Parameter를 직접 설정할 수 있다. Hyper Parameter는 모델마다 가지고 있는 특정 설정 값들을 포함하고 있어 해당 모델에 대한 특징이나 공식 문서를 참고해 값을 수정할 수 있다.
(4) 로그, 배포, 학습 결과 삭제
로그 버튼이 입력되면 모델의 학습 로그를 제공할 수 있고, 배포 버튼이 입력되면 모델 허브에 해당 모델을 배포할 수 있으며, 학습 결과 삭제 버튼이 입력되면 해당 학습 결과를 삭제할 수 있다.
본 실시예에서는 소프트웨어 정의 제조 기반의 머신러닝 플랫폼을 제공할 수 있다. 소프트웨어 정의 제조 환경 구축을 위해 제조 공정을 시뮬레이션 하는 DAG 기반의 자유도 높은 운영환경 구성 기술을 제공하고 인공지능 모델 블록을 넣어 실제 생산 공정에서 작업자의 노하우에 의존하는 장치의 설정과 품질관리 등을 인공지능 기술로 학습하고 처리할 수 있도록 구성한다. 또한, 본 발명에 따른 플랫폼의 실효성을 검증하기 위해 자동차 방진 부품을 생산하는 공정의 실제 데이터를 이용해 공정의 구성과 인공지능 모델을 통한 사전 품질 예측에 대한 분석을 진행한다. 그 결과 공정에서 수집되는 정보를 통해 제품을 생산하기 전 사전에 예측한 품질이 실제 품질과 3% 미만의 차이를 보이는 성과를 확인한 바 있다.
본 실시예에 따르면, 첫째 제조 환경의 생산 공정을 소프트웨어 정의 기반으로 구축 가능한 플랫폼을 통해 고객의 니즈에 기민한 생산과 품질을 보장하기 위해 공정을 가상화 하고 가상화 된 공정의 프로세스가 실제 공정과 통신하고 제어 가능하도록 구성할 수 있다. 둘째, 기존 작업자의 노하우를 인공지능으로 이관할 수 있는 소프트웨어 정의 제조 환경을 구축함으로써 빠르게 변화하는 제조 시장에서 높은 효율과 낮은 비용을 보장할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (7)

  1. 컴퓨터로 구현되는 소프트웨어 정의 제조 구성 시스템에 있어서,
    메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    제품을 생산하는 제조 공정에 대해 생산 프로세스와 인공지능(AI) 모듈을 노코드(no-code) 방식으로 정의하는 플랫폼을 제공하고,
    상기 플랫폼을 통해 상기 제조 공정과 관련된 기능으로 구성된 모듈을 DAG(Directed Acyclic Graph) 형태로 연결하여 소프트웨어 정의 기반의 제조 환경을 구성하고,
    상기 적어도 하나의 프로세서는,
    실제 제조환경에서 수집된 데이터를 기초로 상기 소프트웨어 정의 기반의 제조 환경에 대한 제품 품질을 사전에 예측하는 실증 분석을 수행하고,
    노코드 기반의 인공지능 생성 도구를 사용하여 상기 실증 분석을 위한 사전 품질 예측 모델이 학습되고,
    상기 노코드 기반의 인공지능 생성 도구는,
    데이터셋 구성을 위해 데이터를 가져오는 작업을 위한 데이터셋 도구, 데이터셋을 구성하는 데이터의 기술통계 결과와 차트 시각자료를 통해 학습에 필요한 데이터를 분석하는 작업을 위한 특징분석 도구, 분석 완료된 특징을 이용하여 인공지능 모델을 생성하는 작업을 위한 학습 도구, 및 학습된 인공지능 모델을 통해 임의의 예측결과를 실험해 해당 모델의 정합성을 평가하는 작업을 위한 평가 도구로 구성되고,
    상기 적어도 하나의 프로세서는,
    상기 데이터를 업로드하거나 데이터베이스를 통해 입력하면 상기 데이터에 대한 특징을 분석하고,
    상기 데이터의 특징 분석 결과를 기초로 EDA(Exploratory Data Analysis)를 자동으로 수행함으로써 불필요한 인자 또는 아웃라이어(outlier)를 제거하거나 클래스의 불균형을 해소하기 위한 클래스 밸런스(Class balance) 기능을 제공하고,
    특징 분석이 완료된 상기 데이터로 모델을 학습함으로써 인공지능 모델을 생성하는 작업을 수행하고,
    학습 가능한 모델 목록과, 모델 별 학습 결과, 그리고 학습 모델의 상세 설정을 확인하기 위한 모델 학습 인터페이스 화면을 제공하고,
    상기 모델 학습 인터페이스 화면을 통해 상기 학습 결과에 대한 분석 기능의 목록을 제공하고,
    상기 분석 기능의 목록에는 모델 학습 시 모델이 참고한 변수와 변수 별 영향도 및 모델 학습 시 사용한 테스트 셋의 예측 결과를 제공하는 기능, 모델의 학습 및 검증 셋으로 예측한 분류 결과, 민감도와 특이도로 구성된 학습 그래프, 정밀도(Precision)와 재현율(Recall)로 구성된 학습 그래프. 혼동 행렬(confusion matrix), 피처 중요도(Feature Importance)를 포함하는 학습 정보를 제공하는 기능, 모델의 하이퍼 파라미터(Hyper Parameter)를 설정하는 기능, 모델의 학습 로그를 제공하는 기능, 모델을 모델 허브에 배포하는 기능, 및 모델의 학습 결과를 삭제하는 기능이 포함되는 것
    을 특징으로 하는 소프트웨어 정의 제조 구성 시스템.
  2. 제1항에 있어서,
    상기 소프트웨어 정의 기반의 제조 환경은,
    별도의 코드 없이 각 모듈에 해당하는 블록의 배치만으로 실제 제조 공정에 대응되는 생산 공정을 구성 및 제어하는 것으로,
    최초 데이터를 수신하는 종말점(EndPoint) 블록을 시작으로 실시간 카메라 장치의 스트림 영상을 받아 처리하는 블록, 그리고 결과를 반환하는 응답(Response) 블록으로 연결되어 구성되는 것
    을 특징으로 하는 소프트웨어 정의 제조 구성 시스템.
  3. 제2항에 있어서,
    상기 소프트웨어 정의 기반의 제조 환경은,
    블록과 블록 사이에 위한 액션(action) 블록으로 MES(manufacturing execution system)나 OPC(OLE for process control) 또는 IoT 장비에서 실시간 생산 정보를 읽어 처리하기 위한 블록, 또는 IF(조건문) 블록으로 데이터베이스에서 주기적으로 쿼리를 가져오거나 특정 데이터를 기준으로 설정 조건에 대한 결과를 다음 블록에 전달하기 위한 블록이 포함되는 것
    을 특징으로 하는 소프트웨어 정의 제조 구성 시스템.
  4. 제2항에 있어서,
    상기 소프트웨어 정의 기반의 제조 환경은,
    블록과 블록 사이에 위한 액션(action) 블록으로 MES(manufacturing execution system)나 OPC(OLE for process control) 또는 IoT 장비에서 실시간 생산 정보를 읽어 처리하기 위한 블록, 및 인공지능 모델을 지원하는 연산(operation) 블록으로 상기 액션 블록과 조합하여 데이터를 입력받아 학습된 인공지능의 예측 결과를 다음 블록으로 전달하기 위한 블록이 포함되는 것
    을 특징으로 하는 소프트웨어 정의 제조 구성 시스템.
  5. 제2항에 있어서,
    상기 소프트웨어 정의 기반의 제조 환경은,
    마지막 출력(output) 블록으로 생산 파이프라인의 결과를 REST(Representational State Transfer) API를 통해 별도 장비에 전송하거나 데이터베이스에 저장하기 위한 블록이 포함되는 것
    을 특징으로 하는 소프트웨어 정의 제조 구성 시스템.
  6. 삭제
  7. 삭제
KR1020230123871A 2023-09-18 2023-09-18 Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템 KR102651797B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230123871A KR102651797B1 (ko) 2023-09-18 2023-09-18 Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230123871A KR102651797B1 (ko) 2023-09-18 2023-09-18 Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템

Publications (1)

Publication Number Publication Date
KR102651797B1 true KR102651797B1 (ko) 2024-03-28

Family

ID=90482630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230123871A KR102651797B1 (ko) 2023-09-18 2023-09-18 Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템

Country Status (1)

Country Link
KR (1) KR102651797B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802255A (en) * 1995-06-23 1998-09-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration System and method for creating expert systems
JP2019091513A (ja) * 2013-03-15 2019-06-13 フィッシャー−ローズマウント システムズ,インコーポレ データモデリングスタジオ、コンピュータシステム、及びコンピュータで実装される方法
KR20190076122A (ko) * 2017-12-22 2019-07-02 가톨릭관동대학교산학협력단 빅데이터 탐색적 자료 분석 기반 시각화 시스템
US20200249920A1 (en) * 2016-03-23 2020-08-06 FogHorn Systems, Inc. Development Environment for Real-Time Dataflow Programming Language
KR20220094827A (ko) * 2020-12-29 2022-07-06 재단법인차세대융합기술연구원 데이터 분석 장치 및 방법, 이상 예측 장치 및 방법, 컴퓨터 프로그램
US20230108774A1 (en) * 2020-02-27 2023-04-06 Andrew J. Archer AI Augmented Digital Platform And User Interface
KR102543064B1 (ko) * 2022-11-15 2023-06-13 주식회사 디엑스솔루션즈 Rpa 기반 제조환경 모니터링 서비스 제공 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802255A (en) * 1995-06-23 1998-09-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration System and method for creating expert systems
JP2019091513A (ja) * 2013-03-15 2019-06-13 フィッシャー−ローズマウント システムズ,インコーポレ データモデリングスタジオ、コンピュータシステム、及びコンピュータで実装される方法
US20200249920A1 (en) * 2016-03-23 2020-08-06 FogHorn Systems, Inc. Development Environment for Real-Time Dataflow Programming Language
KR20190076122A (ko) * 2017-12-22 2019-07-02 가톨릭관동대학교산학협력단 빅데이터 탐색적 자료 분석 기반 시각화 시스템
US20230108774A1 (en) * 2020-02-27 2023-04-06 Andrew J. Archer AI Augmented Digital Platform And User Interface
KR20220094827A (ko) * 2020-12-29 2022-07-06 재단법인차세대융합기술연구원 데이터 분석 장치 및 방법, 이상 예측 장치 및 방법, 컴퓨터 프로그램
KR102543064B1 (ko) * 2022-11-15 2023-06-13 주식회사 디엑스솔루션즈 Rpa 기반 제조환경 모니터링 서비스 제공 시스템

Similar Documents

Publication Publication Date Title
US11900277B2 (en) AI extensions and intelligent model validation for an industrial digital twin
JP6978461B2 (ja) コンピュータで実装される方法
US20210397171A1 (en) Industrial automation hmi program file generation from computer-aided design
CN112579653B (zh) 工业数据的逐步情境化和分析
US10628145B2 (en) Scalable and secure analytic model integration and deployment platform
CN113820993B (zh) 生成工业控制编程的方法、系统和非暂态计算机可读介质
US11841699B2 (en) Artificial intelligence channel for industrial automation
US10459979B2 (en) Graphically managing data classification workflows in a social networking system with directed graphs
EP3944034A1 (en) Model-based design of linear synchronous motor transport systems
US20200334293A1 (en) Computation platform agnostic data classification workflows
EP4142427A1 (en) Distributed data nodes for flexible data mesh architectures
CN112580813B (zh) 工业数据在装置级处的情境化
US20180004835A1 (en) Data classification workflows implemented with dynamically modifiable directed graphs
US20220043431A1 (en) Industrial automation control program utilization in analytics model engine
US11481553B1 (en) Intelligent knowledge management-driven decision making model
US11675605B2 (en) Discovery, mapping, and scoring of machine learning models residing on an external application from within a data pipeline
Arantes et al. General architecture for data analysis in industry 4.0 using SysML and model based system engineering
WO2022193408A1 (zh) 一种数据自动分析与建模流程
Sanin et al. Manufacturing collective intelligence by the means of Decisional DNA and virtual engineering objects, process and factory
KR102651797B1 (ko) Ai 비전문가를 위한 소프트웨어 정의 제조 기반의 머신러닝 플랫폼 시스템
US11875238B2 (en) Feature storage manager
US11928325B1 (en) Systems, methods, and graphical user interfaces for configuring design of experiments
Vasumathi et al. Digital Twins—A Futuristic Trend in Data Science, Its Scope, Importance, and Applications
Salimbeni et al. Digital Twin in a Dairy Factory

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant