KR102680717B1 - 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치 - Google Patents

멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102680717B1
KR102680717B1 KR1020230084278A KR20230084278A KR102680717B1 KR 102680717 B1 KR102680717 B1 KR 102680717B1 KR 1020230084278 A KR1020230084278 A KR 1020230084278A KR 20230084278 A KR20230084278 A KR 20230084278A KR 102680717 B1 KR102680717 B1 KR 102680717B1
Authority
KR
South Korea
Prior art keywords
interaction
user
terminal
layer
area
Prior art date
Application number
KR1020230084278A
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 KR1020230084278A priority Critical patent/KR102680717B1/ko
Application granted granted Critical
Publication of KR102680717B1 publication Critical patent/KR102680717B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 명세서는 사용자 단말이 멀티 레이어 구조에서 사용자와 상호작용을 하기 위한 방법에 있어서, 참고서의 각 페이지에 대응되는 이미지 파일들에 근거하여, 상기 멀티 레이어 구조를 생성하는 단계;로서, 상기 멀티 레이어 구조는 1) 컨텐츠 레이어(Contents Layer), 2) 상호작용 레이어(Interaction Layer), 및 3) 캔버스 레이어(Canvas Layer)를 포함함; 및 상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보에 근거하여, 상기 현재 페이지에 대응되는 상호작용 레이어에 상기 사용자와의 상호작용을 위한 상호작용 객체를 생성하는 단계;를 포함할 수 있다.

Description

멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치 { METHODS AND DEVICES FOR INTERACTING WITH USERS IN A MULTILAYER STRUCTURE }
본 명세서는 참고서의 컨텐츠를 표시하기 위한 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 이를 위한 장치에 관한 것이다.
종이 참고서는 대부분 인쇄된 형태로 제공되며, 사용자는 문제와 답을 직접 적고, 필요한 경우 지우개로 지워서 다시 풀수도 있다. 이러한 방식은 비교적 단순하지만, 종이와 연필만 있으면 언제 어디서나 문제를 풀 수 있다는 장점이 있다.
최근에는 전자기기의 발전으로 인해, Tablet PC나 스마트폰과 같은 기기를 사용하여 참고서를 디지털 형태로 제공하고, 사용자는 터치 스크린이나 스타일러스와 같은 디바이스를 사용하여 문제를 푸는 방식이 대중화되고 있다.
이러한 전자기기를 활용하여 참고서의 컨텐츠를 제공하는 기술은 사용자에게 여러 가지 장점을 제공할 수 있다. 예를 들어, 디지털 형태로 제공되는 참고서는 종이로 인쇄된 참고서와 달리 언제 어디서든지 쉽게 접근할 수 있다. 또한, 문제를 디지털 형태로 제공하면 답을 바로 확인할 수 있으므로, 문제를 풀면서 실시간으로 오답을 바로잡을 수 있어, 사용자는 보다 효율적으로 공부할 수 있다.
또한, Tablet PC나 스마트폰과 같은 기기에서는 터치 스크린이나 스타일러스와 같은 디바이스를 사용하여 문제를 푸는 방식이 가능하다. 이러한 방식은 종이와 연필을 사용하는 방식과 달리, 여러 가지 기능을 추가할 수 있으며, 문제푸는 과정을 더욱 편리하게 제공할 수 있다.
특히, 이러한 기술은 교육 분야에서도 많이 활용되고 있다. 학교나 학원에서는 전자기기를 활용한 참고서를 제공하거나, 전자기기를 사용한 학습 프로그램을 운영하여 학생들의 학습 효율을 높이고 있다. 또한, 스마트폰이나 태블릿 PC를 활용하여 언어학습, 외국어 학습, 수학학습 등 다양한 분야에서도 활용되고 있다.
본 명세서의 목적은, 참고서의 컨텐츠를 제공하기 위한 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법을 제안한다.
또한, 본 명세서의 목적은 멀티 레이어 구조의 Interaction Layer와 Canvas Layer 간에 중첩에 따른 이슈를 해결하기 위한 방법을 제안한다.
본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 명세서의 상세한 설명으로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 일 양상은, 사용자 단말이 멀티 레이어 구조에서 사용자와 상호작용을 하기 위한 방법에 있어서, 참고서의 각 페이지에 대응되는 이미지 파일들에 근거하여, 상기 멀티 레이어 구조를 생성하는 단계;로서, 상기 멀티 레이어 구조는 1) 컨텐츠 레이어(Contents Layer), 2) 상호작용 레이어(Interaction Layer), 및 3) 캔버스 레이어(Canvas Layer)를 포함함; 및 상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보에 근거하여, 상기 현재 페이지에 대응되는 상호작용 레이어에 상기 사용자와의 상호작용을 위한 상호작용 객체를 생성하는 단계;를 포함할 수 있다.또한, 상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계; 및 상기 탐지된 상호작용에 근거하여, 탐지된 이벤트를 상기 상호작용 레이어로 전달하여, 처리하는 단계; 를 포함할 수 있다.
또한, 상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는 상기 사용자로부터, 원숫자와 관련된 터치동작을 입력받는 단계; 및 상기 터치동작에 근거하여, 상기 원숫자와 대응되는 정답 입력 이벤트를 탐지하는 단계; 를 더 포함할 수 있다.
또한, 상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는 상기 사용자로부터, 원숫자와 관련된 스트로크(stroke)를 입력받는 단계; 및 상기 스트로크의 각도 및 길이에 근거하여, 상기 원숫자와 대응되는 정답 입력 이벤트를 탐지하는 단계; 를 더 포함할 수 있다.
또한, 상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는 상기 사용자로부터, 원숫자와 관련된 특정영역을 채우기 위한 동작을 입력받는 단계; 및 상기 동작이 상기 특정영역의 일정부분 이상을 채우는 것에 근거하여, 상기 원숫자와 대응되는 정답 입력 이벤트를 탐지하는 단계; 를 더 포함할 수 있다.
또한, 상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는 상기 사용자로부터, 펜슬을 통해, 원숫자와 관련된 특정영역과 연결되는 선을 입력받는 단계; 및 상기 선이 상기 특정영역을 벗어나는 것에 근거하여, 드로잉 이벤트를 탐지하는 단계; 를 더 포함할 수 있다.
또한, 상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는 상기 사용자로부터, 드래그 동작을 입력받는 단계; 및 상기 현재 페이지가 확대되어 표시되는 지에 근거하여, 이동 이벤트를 탐지하는 단계; 를 더 포함할 수 있다.
또한, 서버로부터, 상기 참고서의 각 페이지에 대응되는 이미지 파일들을 수신하고, 상기 서버로부터, 상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보를 수신할 수 있다.
본 명세서의 또 다른 일 양상은, 멀티 레이어 구조에서 사용자와 상호작용을 하기 위한 사용자 단말에 있어서, 통신모듈; 메모리; 및 상기 통신모듈 및 상기 메모리를 기능적으로 제어하는 프로세서; 를 포함하고, 상기 프로세서는 상기 통신모듈을 통해, 서버로부터, 참고서의 각 페이지에 대응되는 이미지 파일들을 수신하고, 상기 이미지 파일들에 대응되는 상기 멀티 레이어 구조를 생성하며, 상기 멀티 레이어 구조는 1) 컨텐츠 레이어(Contents Layer), 2) 상호작용 레이어(Interaction Layer), 및 3) 캔버스 레이어(Canvas Layer)를 포함하고, 상기 통신모듈을 통해, 상기 서버로부터, 상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보를 수신하며, 상기 영역정보에 근거하여, 상기 현재 페이지에 대응되는 상호작용 레이어에 상기 사용자와의 상호작용을 위한 상호작용 객체를 생성할 수 있다.
본 명세서의 실시예에 따르면, 참고서의 컨텐츠를 제공하기 위한 멀티 레이어 구조에서 사용자와의 상호작용을 효율적으로 할 수 있다.
또한, 본 명세서의 실시예에 따르면, 멀티 레이어 구조의 Interaction Layer와 Canvas Layer 간에 중첩에 따른 이슈를 해결할 수 있다.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
도 2는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.
도 3은 본 명세서에 적용될 수 있는 PDF 생성방법의 예시이다.
도 4 및 도 5는 본 명세서가 적용될 수 있는 PDF 파일의 HTML 형태로의 변환에 대한 예시이다.
도 6은 본 명세서가 적용될 수 있는 Semantic Box 모델의 적용 방법이다.
도 7은 본 명세서가 적용될 수 있는 사용자와의 상호작용 선언의 예시이다.
도 8은 본 명세서가 적용될 수 있는 Block OCR의 예시이다.
도 9는 본 명세서가 적용될 수 있는 해설 추출의 예시이다.
도 10은 본 명세서가 적용될 수 있는 해설지의 문항별 분해방법의 예시이다.
도 11은 본 명세서가 적용될 수 있는 구분자 선택의 예시이다.
도 12는 본 명세서가 적용될 수 있는 해설지의 문항 별 분해의 예시이다.
도 13은 본 명세서가 적용될 수 있는 데이터 바인딩의 예시이다.
도 14는 본 명세서가 적용될 수 있는 서버의 일 실시예이다.
도 15는 본 명세서가 적용될 수 있는 의미론적 HTML의 예시이다.
도 16은 본 명세서가 적용될 수 있는 멀티 레이어 구조를 예시한다.
도 17은 본 명세서가 적용될 수 있는 멀티 레이어의 문제점을 예시한다.
도 18은 Panel을 이용한 layer 중첩 문제 해결 방식의 예시이다.
도 19은 본 명세서가 적용될 수 있는 단말의 일 실시예이다.
도 20은 본 명세서가 적용될 수 있는 이벤트 탐지 방법의 예시이다.
도 21은 본 명세서가 적용될 수 있는 서비스의 일실시예이다.
도 22는 본 명세서가 적용될 수 있는 제1 정답 입력 이벤트를 예시한다.
도 23은 본 명세서가 적용될 수 있는 제2 정답 입력 이벤트를 예시한다.
도 24는 본 명세서가 적용될 수 있는 제3 정답 입력 이벤트를 예시한다.
도 25는 본 명세서가 적용될 수 있는 드로잉 이벤트를 예시한다.
도 26은 본 명세서가 적용될 수 있는 이동 이벤트의 예시이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
상기 전자 기기(100)는 무선 통신부(110), 입력부(120), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 제어부(180) 및 전원 공급부(190) 등을 포함할 수 있다. 도 1에 도시된 구성요소들은 전자 기기를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 기기는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
보다 구체적으로, 상기 구성요소들 중 무선 통신부(110)는, 전자 기기(100)와 무선 통신 시스템 사이, 전자 기기(100)와 다른 전자 기기(100) 사이, 또는 전자 기기(100)와 외부서버 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 무선 통신부(110)는, 전자 기기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
이러한 무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.
입력부(120)는, 영상 신호 입력을 위한 카메라(121) 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone, 122), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부(123, 예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다. 입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.
센싱부(140)는 전자 기기 내 정보, 전자 기기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 전자 기기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다. 디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 기기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 전자 기기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
인터페이스부(160)는 전자 기기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 전자 기기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
또한, 메모리(170)는 전자 기기(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 전자 기기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 전자 기기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 전자 기기(100)의 기본적인 기능(예를 들어, 전화 착신, 발신 기능, 메시지 수신, 발신 기능)을 위하여 출고 당시부터 전자 기기(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 전자 기기(100) 상에 설치되어, 제어부(180)에 의하여 상기 전자 기기의 동작(또는 기능)을 수행하도록 구동될 수 있다.
제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 전자 기기(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 전자 기기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.
전원공급부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 전자 기기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.
상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 전자 기기의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 전자 기기의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 전자 기기 상에서 구현될 수 있다.
본 명세서에서 전자기기(100)는 서버로 통칭될 수 있으며, 서버는 클라우드 서버를 포함할 수 있다. 또한, 단말은 전자기기(100)의 전체 또는 일부 구성을 포함할 수 있으며, 타블렛(tablet) PC를 포함할 수 있다.
도 2는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.
상기 AI 장치(20)는 AI 프로세싱을 수행할 수 있는 AI 모듈을 포함하는 전자 기기 또는 상기 AI 모듈을 포함하는 단말 등을 포함할 수 있다. 또한, 상기 AI 장치(20)는 도 1에 도시된 전자기기(100)의 적어도 일부의 구성으로 포함되어 AI 프로세싱 중 적어도 일부를 함께 수행하도록 구비될 수도 있다.
상기 AI 장치(20)는 AI 프로세서(21), 메모리(25) 및/또는 통신부(27)를 포함할 수 있다.
상기 AI 장치(20)는 신경망을 학습할 수 있는 컴퓨팅 장치로서, 단말, 데스크탑 PC, 노트북 PC, 태블릿 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.
AI 프로세서(21)는 메모리(25)에 저장된 프로그램을 이용하여 신경망을 학습할 수 있다. 특히, AI 프로세서(21)는 이미지에서 문제영역 검출, 원숫자(circle number), 문제영역 분해 등 다양한 이미지 분류 작업을 위한 인공지능 모델을 생성할 수 있다. 또한, 인공지능 모델은 Semantic HTML 생성을 위한 Semantic Box Model을 포함할 수 있다.
한편, 전술한 바와 같은 기능을 수행하는 AI 프로세서(21)는 범용 프로세서(예를 들어, CPU)일 수 있으나, 인공지능 학습을 위한 AI 전용 프로세서(예를 들어, GPU, graphics processing unit)일 수 있다.
메모리(25)는 AI 장치(20)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(25)는 비 휘발성 메모리, 휘발성 메모리, 플래시 메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SDD) 등으로 구현할 수 있다. 메모리(25)는 AI 프로세서(21)에 의해 액세스되며, AI 프로세서(21)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 또한, 메모리(25)는 본 명세서의 일 실시예에 따른 데이터 분류/인식을 위한 학습 알고리즘을 통해 생성된 신경망 모델(예를 들어, 딥 러닝 모델)을 저장할 수 있다.
한편, AI 프로세서(21)는 데이터 분류/인식을 위한 신경망을 학습하는 데이터 학습부를 포함할 수 있다. 예를 들어, 데이터 학습부는 학습에 이용될 학습 데이터를 획득하고, 획득된 학습데이터를 딥러닝 모델에 적용함으로써, 딥러닝 모델을 학습할 수 있다.
통신부(27)는 AI 프로세서(21)에 의한 AI 프로세싱 결과를 외부 전자 기기로 전송할 수 있다.
여기서 외부 전자 기기는 다른 단말, 단말을 포함할 수 있다.
한편, 도 2에 도시된 AI 장치(20)는 AI 프로세서(21)와 메모리(25), 통신부(27) 등으로 기능적으로 구분하여 설명하였지만, 전술한 구성요소들이 하나의 모듈로 통합되어 AI 모듈 또는 인공지능(AI) 모델로 호칭될 수도 있다.
도 3은 본 명세서에 적용될 수 있는 PDF 생성방법의 예시이다.
도 3을 참조하면, PDF는 생성방법에 따라서, Scanned, 또는 Structured로 구분될 수 있다. Scanned PDF(3010)는 특정 서책을 스캐너를 이용하여 이미지 형태로 스캔한 파일을 의미할 수 있고, Structured PDF(3020)는 컴퓨터 소프트웨어를 이용하여 전자적으로 PDF로 생성된 파일을 의미할 수 있다.
Scanned PDF(3010)와 Structured PDF(3020)의 큰 차이점으로는 페이지의 Element(예를 들어, Text, Image, Table)에 대해서 개별 요소에 대해서 컴퓨터에서 Drag가 가능한지 여부에 있다.
보다 자세하게, Structured PDF(3020)는 각 페이지에서 모든 Element들이 인식가능 한 형태로 구현되어 있어서, HTML 형태로 변환 시 각각 혹은 집합적으로 Class가 부여되어 있어서 특정 class javascript event 구현이 가능하다. 그러나, Scanned PDF(3010)의 경우에는 전체 페이지의 이미지가 하나의 Element로 conversion 되기 때문에 각 이미지에서 interaction이 필요한 부분을 발굴하여 overlay로 javascript event 구현이 필요한 point를 구현하는 작업이 선행되어야 한다.
도 4 및 도 5는 본 명세서가 적용될 수 있는 PDF 파일의 HTML 형태로의 변환에 대한 예시이다.
도 4 및 도 5를 참조하면, 예를 들어, 단말은 Structured PDF(3020)를 HTML 페이지로 변환하기 위해, Structured PDF(3020)에서 Embedded text object, Page Full image file, HTML, CSS, Font, 및 Background vector image 등이 포함된 요소를 추출할 수 있다.
또한, 단말은 Scanned PDF(3010)를 HTML 페이지로 변환하기 위해, OCR을 이용하여, Scanned PDF(3010)를 character 등의 추출이 가능한 형태로 Structure 복원 후, Embedded text object, Page Full image file, HTML, CSS, Font, 및 Background vector image 등이 포함된 요소를 추출할 수 있다.
이후, 단말은 각 HTML 페이지에서 identified element에 대해, class id 값을 부여할 수 있다.
도 5를 참조하면, 단말은 도 4의 PDF 파일을 HTML 형태로 변환할 수 있다.
다만, 이러한 변환된 HTML에 포함된 div의 class id 값은 PDF가 HTML 형태로 변환하는 과정에서 PDF 페이지 내의 상하좌우의 위치정보를 기반으로 생성된 것으로 문항의 영역정보 및 문항 내 구성요소에 대한 정보를 기반으로 생성되지 않아, 실제 디지털 서비스에서 즉시 사용하기 어려운 결과물이다.
보다 자세하게, 이러한 class id는 문제영역을 기반으로 semantic하게 부여된 id 값이 아니므로, 단말이 특정 값을 통해서 문제 단위별로 접근하기는 어렵다.
본 명세서에서 단말은 이러한 위치값 id를 의미단위(예를 들어, 페이지/문제/보기) 단위로 grouping 하기 위해 후술하는 절차를 수행할 수 있다.
도 6은 본 명세서가 적용될 수 있는 Semantic Box 모델의 적용 방법이다.
도 6을 참조하면, 단말은 Semantic Box 모델에 PDF 파일의 각 페이지에 포함된 문제영역의 이미지 파일을 입력할 수 있다.
단말은 Semantic Box 모델을 통해, 각 페이지별 이미지에서 문제영역을 둘러싼 바운딩 박스(bounding box)(6000)를 생성한다. 바운딩 박스는 객체의 위치와 경계를 나타내는 사각형일 수 있다. Semantic Box 모델은 PDF 이미지에 포함된 각 영역의 특징을 학습하여, 객체의 위치를 추출할 수 있다. 추출된 바운딩 박스는 객체의 위치 정보를 나타낼 수 있다.
예를 들어, 단말은 바운딩 박스(6000)를 제외한 나머지 영역에 대해 opencv를 이용하여, 인접한 픽셀끼리의 팽창화를 통해, 다른 문제영역이 존재하는 지 판단할 수 있다.
또한, 단말은 페이지의 가로축의 중간점 x, 좌표(x half)보다, 바운딩 박스(6000)의 최좌측점 x 좌표, (x1) 및 최우측점 x 좌표, (x2)의 값이 더 큰 경우, 페이지의 레이아웃이 2 열인 것으로 판단할 수 있다.
단말은 바운딩 박스(6000)에 근거하여, 사용자와의 상호작용(interaction)이 요구되는 영역(6100)을 추출할 수 있다. 예를 들어, 단말은 바운딩 박스(6000)에서 선택지 영역(6010)을 먼저 추출하고, 선택지 영역(6010)에 포함된 사용자와의 상호작용이 요구되는 영역(6100)을 추출할 수 있다.
이를 통해, 단말은 사용자와의 상호작용이 요구되는 영역(6100)을 선언하고, 사용자와의 상호작용이 요구되는 영역(6100)에서 상호작용 이벤트 영역(6300)를 선언할 수 있다.
예를 들어, 단말은 선택지 영역(6010)에서 원숫자를 검출하므로써, 사용자와의 상호작용이 요구되는 영역(6100)을 선언할 수 있다. 이후, 단말은 각 원숫자에 사용자가 당해 원숫자를 선택할 수 있는 상호작용 이벤트 영역 (6300)를 선언할 수 있다.
디지털 디바이스에서 제공될 수 있는 참고서에서 사용자로부터 답안을 입력받을 수 있는, 상호작용이 요구되는 영역(6100)은, 학습자의 지식의 평가나 확인 등의 목적으로 사용될 수 있다. 이를 통해 학습자의 지식의 정도나 수준을 파악할 수 있으며, 강사나 교육기관에서는 학습자의 성취도를 추적하고 관리할 수 있다.
또한, 상호작용이 요구되는 영역(6100)을 통해, 학습자는 직접 참고서를 통해 문제를 풀고 해답을 입력하면서 실제로 학습할 수 있는 기회를 제공받을 수 있다. 이는 학습자의 공부 효율을 높이는데 도움이 될 수 있다.
즉, 상호작용이 요구되는 영역(6100)은 학습자의 지식 평가 및 확인, 학습 효율 향상 등을 위해 필요한 기능이다.
또한, 단말은 상호작용이 요구되는 영역(6100)에 입력되는 학습자의 해답에 근거하여, 채점 이벤트(6400)를 발생시킬 수 있다.
보다 자세하게, 사용자와의 상호작용이 요구되는 영역(6100)은 문제의 질문에 따라, 사용자의 답변을 위한 선택지 요소들이 포함된 영역을 포함할 수 있다. 단말은 사용자의 답변에 따라, 당해 문제의 맞고 틀림을 나타나기 위한 채점 이벤트(6400)를 발생시킬 수 있다.
일 예로서, 단말은 일련의 연속된 원숫자 또는 괄호 숫자가 행의 최좌측에서 검출되고, 그 원숫자 또는 괄호 숫자의 열의 아랫방향으로 증가하는 연속된 원숫자 또는 괄호 숫자가 검출되는 경우, 원숫자 또는 괄호 숫자가 포함된 문장이 있는 영역을 사용자와의 상호작용이 요구되는 영역(6100)으로 추출할 수 있다.
Semantic Box 모델은 전술한 동작을 수행하기 위해 학습될 수 있으며, 단말은 바운딩 박스(6000) 및 사용자와의 상호작용이 요구되는 영역(6100)에 대한 위치정보(예를 들어, Location, Size 등)를 획득할 수 있다.
예를 들어, 추출된 바운딩 박스는 이미지 내의 상대적인 위치를 나타내기 때문에, 필요에 따라 절대적인 위치 정보로 변환되어야 할 수 있다. 예를 들어, 단말은 이미지의 좌측 상단을 (0, 0)으로 기준으로 하여 바운딩 박스의 좌표를 계산할 수 있다.
이후, 단말은 PDF를 html로 산출하는 절차를 통해서 산출된 semantic하지 않은 html 파일을 위의 위치정보와 결합하여 각 영역 내 포함된 Div를 semantic한 의미 단위로 wrap 할 수 있다.
또는, 전술한 절차는 단독으로 수행되어, 단말은 PDF의 이미지 기반 파일에서 상호작용 이벤트 영역(6300)과 관련된 객체를 생성할 수 있다.
도 7은 본 명세서가 적용될 수 있는 사용자와의 상호작용 선언의 예시이다.
도 7을 참조하면, 단말은 참고서의 문제 유형으로서, 객관식, 단답형(7000), 주관식(서술형), 선잇기(7010), 빈칸채우기(7020), 및 O/X(7030)를 선언할 수 있다.
단말은 선언된 문제 유형에 근거하여, 문제영역에 포함된 문항의 유형을 판단할 수 있다. 예를 들어, Semantic Box 모델은 선언된 문제 유형을 판단하도록 학습될 수 있다.
단말은 문항의 유형에 근거하여, 답안이 입력되는 위치 및 사용자와의 상호작용을 선언할 수 있다.
표 1은 본 명세서가 적용될 수 있는 답안이 입력되는 위치 및 사용자와의 상호작용 선언의 예시이다.
구분 선언
객관식 원숫자에 Event 설정, 또는 Panel 형식의 객관식 답안 선택지를 구현
단답형 문제영역 내에 답안 입력 format 설정(예를 들어, text format)
주관식(서술형) 문제영역 내에 답안 입력 format 설정(예를 들어, text format)
선잇기 Column 별로 특정 row 간에 연결될 수 있도록 특정 점에서의 입력설정, 양 점 간의 matching으로 interaction 구현
빈칸채우기 괄호 ( )에 text data를 입력 받을 수 있도록 위치 설정, 예를 들어, 입력 포맷은 Text format
O/X 괄호 ( )에 text data를 입력 받을 수 있도록 위치 설정, 예를 들어, 입력 포맷은 Boolean format
단말은 표 1을 참조하여, 후술되는 상호작용 객체 및/또는 상호작용 지점을 설정할 수 있다.도 8은 본 명세서가 적용될 수 있는 Block OCR의 예시이다.
도 8을 참조하면, 단말은 Block OCR 기술을 이용하여, 의미론 단위에 근거하여, PDF 파일의 각 이미지 파일에서 추출한 text string data를 인접한 pixel에 따라 그루핑을 수행할 수 있다.
Block OCR은 OCR 기술 중에서도 특히 텍스트 블록(Text block)을 인식하는 기술이다. 텍스트 블록은 문서의 일정 부분이나 영역에 있는 텍스트 덩어리를 말하며, 일반적으로 문서 내에서의 위치나 레이아웃이 정해져 있을 수 있다.
예를 들어, Block OCR은 이러한 텍스트 블록의 위치와 크기를 먼저 인식한 다음, 그 안에 있는 텍스트를 인식할 수 있다. 이를 통해, 단말은 불필요한 영역이나 잡음을 제거하고, 텍스트 블록 내의 문자 인식 정확도를 높일 수 있다.
보다 자세하게, 단말은 주어진 이미지 파일에서 vision 기반에 기하학 정보를 이용하여, 인접 text끼리 병합하여 text를 산출할 수 있다. 예를 들어, 단말은 Semantic Box 모델을 이용하여, 의미론 단위로 text 들을 grouping 하여 Box 형태로 추론할 수 있다.
예를 들어, 단말은 Block OCR을 통해서, 참고서 내 개념 설명 페이지 내의 의미있는 Keyword를 추출할 수 있다. 이를 통해서, 단말은 Keyword간의 관계성을 구현할 수 있다. 페이지 내 추출된 Block들은 (i)그 크기가 클 수록 (ii) 상단에 있을수록 의미론적으로 상위에 위치할 수 있다.
예를 들어, "01 고대 국가의 지배체제"는 "국가의 형성" 보다 상위개념이다. 또한, "선사 문화의 발달" 및 "계급 발생과 국가의 출현"은 "국가의 형성"보다 하위 개념이다.
도 9는 본 명세서가 적용될 수 있는 해설 추출의 예시이다.
참고서의 문항들이 포함된 문제지 페이지는 일반적으로 Two column 형식으로 구성될 수 있다. 또한, 한 페이지 내에서 문항의 수는 4-8 문제를 포함할 수 있다. 또한, 대부분의 문항은 객관식 형태로 이루어지며, 단답형, 주관식 형태의 문항의 빈도는 많지 않다. 따라서, 문제지 페이지에서 중요한 요소는 문제영역으로서, [문제 번호 + 문제 타이틀 + 선택지] 로 구성될 수 있으며, 과목 종류에 무관하게 유사한 형태를 갖을 수 있다.
도 9를 참조하면, 해설지 페이지는 Two column 구조(9010) 또는 Two row 구조(9020), 및 이와 유사한 다양한 형태를 갖을 수 있다.
해설지 페이지는 문제지 페이지와 달리, 공유될 수 있는 기하학적 특징이 적지만 동일 서책에 포함된 해설지의 모든 페이지와 요소들은 같은 레이아웃 디자인과 요소 형태를 갖을 수 있다. 특히, 참고서의 시리즈 별로 특유의 폰트(font), 스타일링(styling), 레이아웃(layout)의 사용빈도가 높을 수 있다.
단말은 해설지 페이지에서 반복적으로 사용되는 폰트, 스타일링, 레이아웃에 근거하여, 해설지 페이지의 데이터를 분류할 수 있다.
도 10은 본 명세서가 적용될 수 있는 해설지의 문항별 분해방법의 예시이다.
도 10을 참조하면, 단말은 해설지의 전체 페이지를 구분선에 근거하여 병합한다(S1010). 예를 들어, 단말은 해설지 페이지가 Two column 구조(9010)를 갖는 경우, 좌/우 영역을 구분하는 중앙 세로선을 구분선으로 하여, 구분선의 좌측 페이지 영역의 하단에 구분선의 우측 페이지 영역을 병합할 수 있다.
만일, 해설지 페이지가 Two row 구조(9020)를 갖는 경우, 상/하 영역을 구분하는 중앙 가로선을 구분선으로 하여, 상단 페이지의 우측에 구분선의 하단 페이지 영역을 병합할 수 있다.
또한, 단말은 해설지의 각 페이지 또는 소단원 별로, 페이지를 병합하고 후술되는 절차를 진행할 수 있다.
이후, 단말은 전술한 문제영역 추출 방식과 유사하게, 병합된 페이지에서 해설영역을 추출할 수 있다.
단말은 병합된 페이지에서 구분자를 선택한다(S1020). 예를 들어, 구분자는 해설지의 요소에 따라 갖을 수 있는 특유의 폰트, 스타일링, 및 레이아웃등을 포함할 수 있다.
도 11은 본 명세서가 적용될 수 있는 구분자 선택의 예시이다.
도 11을 참조하면, 단말은 병합된 페이지에서 챕터를 구분하기 위한 제1 구분자(1110), 정답세트를 구분하기 위한 제2 구분자(1120), 문제해답을 구분하기 위한 제3 구분자(1130)를 선택할 수 있다.
다시, 도 10을 참조하면, 단말은 구분자의 영역에서 구분자 정보를 획득한다(S1030). 예를 들어, 구분자 정보는 당해 구분자와 관련된 폰트, 스타일링, 및 레이아웃 등의 정보를 포함할 수 있다.
단말은 구분자 정보에 근거하여, 해설지를 문항 별로 분해한다(S1040).
도 12는 본 명세서가 적용될 수 있는 해설지의 문항 별 분해의 예시이다.
도 12를 참조하면, 단말은 제1 구분자(1210)로부터 획득된 구분자 정보에 근거하여, 유사성을 갖는 다른 제1 구분자(1220)을 검출할 수 있다. 이를 위해, 단말은 computer vision 기술을 이용할 수 있다. 단말은 검출된 제1 구분자 들에 근거하여, 해설지를 챕터 별로 분해할 수 있다.
또한, 단말은 제2 구분자 및 제3 구분자 등에 대해서도, 각각의 구분자 정보에 근거하여, 다른 구분자 들을 검출할 수 있고, 이를 통해, 해설지를 문항 별로 분해(1230)할 수 있다.
도 13은 본 명세서가 적용될 수 있는 데이터 바인딩의 예시이다.
단말은 전술한 절차들을 통해, 문제영역의 각 문항들을 Semantic HTML 화하고, 이를 이용하여, 각 페이지/문항 단위로 관련된 요소들을 저장하고 사용할 수 있으며, 문항의 유형에 따라, 최적화된 사용자와의 상호작용을 매칭시킬 수 있다.
또는, 단말은 Semantic HTML 화하는 동작 없이, PDF의 이미지 기반 파일에서 Semantic Box 모델을 통해, 각 영역들을 추출하고, 각 영역들의 페이지/문항 단위로 관련된 요소들을 저장하고 문항의 유형에 따라, 최적화된 사용자와의 상호작용을 매칭시킬 수 있다.
예를 들어, 단말은 해설지를 문항 별로 분해하여, 문항 별 정답을 알 수 있으며, 각 문항 별 정답이 어떻게 도출되었는지를 나타내는 해설(예를 들어, Text, Image 등)을 문항 단위로 분해할 수 있다.
도 13을 참조하면, 단말은 각 문항과 이에 대응될 수 있는 해설과의 관계성 설정을 위한 데이터 바인딩(binding)을 수행할 수 있다.
예를 들어, 단말은 참고서 페이지의 문제영역에서 검출된 문항 수 및 해설지 페이지의 해설영역에서 검출된 문항 수가 동일한지 검사할 수 있다. 이를 위해, 단말은 해설영역에서 추출되는 해답들을 이용하여, 챕터 별로 포함된 문항 수를 검출하고, 이를 문제영역의 문항 수와 비교할 수 있다.
단말은 문제영역의 문항 수, 해설영역의 문항 수가 동일하다면 Sequential mapping 작업을 수행할 수 있다. 보다 자세하게, 단말은 문제영역의 ID와 해설영역의 ID 사이에 관계성을 부여할 수 있다.
예를 들어, 단말은 추출한 바운딩 박스(6000) 및 사용자와의 상호작용이 요구되는 영역(6100)에 대한 위치정보에 근거하여, 특정 문제영역 및 이와 매핑되는 해설영역을 특정값을 갖는 id로 Grouping할 수 있다.
이를 통해, 단말은 사용자로부터, 각 문항에 대응되는 정답 정보를 입력받을 수 있고, 각 문항에 대응되는 해답을 매칭할 수 있으며, 자동채점, 해설연동 기능을 구현할 수 있다.
또한, 단말은 묶음지문에 대응하여, 문제영역 및 해설영역에서 추출한 데이터를 binding 할 수 있고, 이에 대한 메타 데이터 정보를 입력할 수 있다.
예를 들어, 참고서 메타 데이터란 각 문항이 가지는 여러가지 속성값을 기록해둔 것으로, 문항의 과목, 평가항목, 난이도 등을 포함할 수 있다. 이를 통해서, 단말은 각 문항의 검색성을 향상시킬 수 있다.
또한, 단말은 참고서의 정보를 효율적으로 관리할 수 있으며, 사용자로부터 정확한 정보를 수신하고, 데이터 분석 및 활용에 효율적으로 사용할 수 있다.
도 14는 본 명세서가 적용될 수 있는 단말의 일 실시예이다.
도 14를 참조하면, 단말은 참고서의 PDF을 입력받아 각 페이지의 HTML파일을 생성할 수 있다. 예를 들어, 참고서의 각 페이지의 HTML 파일은 PDF를 클래스(Class) 정보에 기반한 격자형 HTML 형식일 수 있다.
보다 자세하게, 이러한 HTML 형태는 격자를 기반으로 생성된 Class를 포함할 수 있다. 예를 들어, 단말은 전술한 도 4 및/또는 도 5에 따라, 각 요소들의 위치값을 기반으로 하는 tag가 포함된 HTML 형태를 획득할 수 있다.
다만, 이러한 형태는, 사용자가 Web page에서 보는 화면의 구성과 동일한 화면을 나타내지만, 의미론(Semantic)으로 그룹핑이 되어 있지 않아, 채점/해답연결 등의 이벤트 구현이 어렵다는 문제점이 있을 수 있다.
따라서, 본 명세서에서 단말은 참고서의 PDF 파일이 변환된 이미지에서 바운딩 박스 정보를 추출하여, 이를 격자형 HTML 파일과 결합함으로써 의미론적 HTML 파일을 생성할 수 있다.
또는, 단말은 참고서의 PDF을 입력받아 바운딩 박스 정보를 추출하고, 이를 이용하여, 이미지 기반으로, 의미론적 HTML 파일을 생성할 수 있다.
단말은 참고서 PDF 파일에서 생성된 이미지 파일에 근거하여, 문제영역과 관련된 바운딩 박스를 생성한다(S1410). 예를 들어, 문제영역은 문항의 질문(문제) 및 답변 부분이 포함된 문항을 포함할 수 있다.
단말은 바운딩 박스에 근거하여, 사용자와의 상호작용(interaction)이 요구되는 영역을 추출한다(S1420). 예를 들어, 사용자와의 상호작용이 요구되는 영역은 문제영역의 질문에 따라, 사용자가 답변을 하기 위한 액션이 수행될 수 있는 요소를 포함할 수 있다. 또한, 단말은 바운딩 박스 및 사용자와의 상호작용이 요구되는 영역에 대한 위치정보를 획득할 수 있다.
단말은 상호작용이 요구되는 영역에 근거하여, 의미론적(Semantic) HTML 파일을 생성한다(S1430). 예를 들어, 의미론적 HTML 파일은 각 요소의 컨텐츠를 의미할 수 있는, 식별자를 포함할 수 있다. 요소들은 문제번호, 질문 text, 이미지, Sub 질문영역, Sub 영역 및 원숫자 등을 포함할 수 있다.
보다 자세하게, 단말은 선언된 문제 유형에 근거하여, 문제영역에 포함된 문항의 유형을 판단할 수 있다. 단말은 문항의 유형에 근거하여, 답안이 입력되는 위치 및/또는 사용자와의 상호작용을 선언할 수 있다.
단말은 상호작용이 요구되는 영역에 근거하여, 문제영역에 포함된 각 요소들을 분류할 수 있다. 보다 자세하게, 의미론적 HTML 파일에서 상호작용이 요구되는 영역의 콘텐츠(예를 들어, div 요소)들을 나타내는 ID(예를 들어, Class id)는 문제영역 및/또는 사용자와의 상호작용과 관련된 의미를 나타낼 수 있다.
도 15는 본 명세서가 적용될 수 있는 의미론적 HTML의 예시이다.
도 15(a)를 참조하면, 의미론적 HTML 파일에서 상호작용이 요구되는 영역의 콘텐츠들을 나타내는 class id는 사용자와의 상호작용과 관련된 의미를 나타낼 수 있다. 예를 들어, 첫번째 div의 class id는 답안영역을 의미하고, 두번째 div의 class id는 답안 박스를 의미하며, 세번째 div의 class id는 선택 항목을 의미할 수 있다.
단말은 분류된 요소들에 근거하여, 의미론적 HTML을 생성할 수 있다. 예를 들어, 단말은 위치정보에 근거하여, 각 요소들의 위치값을 기반으로 하는 tag가 포함된 HTML 형태에 바운딩 박스와 관련된 각 영역들(예를 들어, 상호작용이 요구되는 영역, 문제영역)과 관련된 정보들을 wrap하여, 의미론적 HTML을 생성할 수 있다.
또한, 도 15(b)를 참조하면, 의미론적 HTML 파일은 문제영역을 식별하기 위한 quiz id 를 포함하고, 당해 식별자와와 관련된 영역 정보는 JSON 등의 데이터 검색이 가능한 형태로 생성되어, 데이터 베이스에 저장될 수 있다.
전술한 절차를 통해, 단말은 PDF에 포함된 문제영역을 발굴하고 이에 매칭되는 해설을 연결할 수 있다.
도 16은 본 명세서가 적용될 수 있는 멀티 레이어 구조를 예시한다.
과거에는 참고서가 종이로 인쇄되어 있어 사용자가 문제를 풀 때는 종이와 연필을 사용하였다. 그러나, 최근에는 Tablet PC와 같은 전자기기를 사용하여 참고서의 컨텐츠가 제공되고 있다. 예를 들어, Tablet PC를 사용하면, 참고서의 컨텐츠가 디지털 형태로 제공되고, 사용자는 터치 스크린이나 스타일러스를 사용하여 문제를 풀 수 있다. 이러한 기술은 참고서를 보다 효율적이고 편리하게 활용할 수 있도록 해주며, 교육 분야에서 많이 활용되고 있다.
도 16을 참조하면, 일반적으로 tablet PC application은 다음과 같은 3가지 형태의 레이어가 중첩적으로 적재된 형태로 사용될 수 있다:
1) 컨텐츠 레이어(Contents Layer): 이 레이어는 앱에서 제공하는 컨텐츠를 사용자에게 시각적으로 제공하는 역할을 한다. 이 레이어에는 텍스트, 이미지, 등의 미디어 형식이 포함될 수 있다.
2) 상호작용 레이어(Interaction Layer): 이 레이어는 사용자와의 상호작용을 가능하게 한다. 이 레이어에는 터치, 스와이프, 드래그 등의 이벤트 처리를 위한 기능이 포함된다.
3) 캔버스 레이어(Canvas Layer): 이 레이어는 Pencil 디바이스를 통해 그림을 그리거나 작업을 할 수 있는 영역이다. 이 레이어는 주로 그림 앱, 스케치 앱, 디자인 앱 등에서 사용된다.
이러한 레이어들은 각각의 역할을 수행하면서 상호작용이 가능하게 중첩적으로 사용될 수 있다. 예를 들어, Contents Layer에 이미지를 표시하면 사용자는 Interaction Layer를 통해 이미지를 확대하거나 축소할 수 있고, Canvas Layer에서는 Pencil 디바이스를 사용하여 이미지를 수정하거나 그릴 수 있다.
도 17은 본 명세서가 적용될 수 있는 멀티 레이어의 문제점을 예시한다.
도 17을 참조하면, 전술한 멀티 레이어에서는 Canvas Layer와 Interaction Layer 간의 통신이 매우 제한적인 문제점이 발생할 수 있다.
일반적으로, tablet PC application는 구조적으로 Canvas layer를 가장 최상단에 배치하고 contents layer는 그 최하단에 Interaction layer는 그 중간에 배치할 수 있다. 따라서, 펜슬 및/또는 손가락을 이용하여 발생된 event는 가장 상위 layer에서 발생한 event를 귀속시키는 구조가 구현될 수 있다.
예를 들어, Pencil에서 발생하는 모든 event는 Canvas layer에 우선 할당되므로, tablet PC application은 Interaction event를 구현하는 것이 제한될 수 있다. 이로 인해 Interaction Layer와 Canvas Layer 간에 중첩에 따른 이슈가 발생할 수 있다.
예를 들어, Interaction Layer에서는 버튼을 누르는 이벤트를 감지하여 해당 이벤트에 따라 동작하는데, Canvas Layer에서 Pencil을 사용하는 경우, Interaction Layer에서는 버튼을 누르는 이벤트를 감지하지 못하고, 대신에 Canvas Layer에서 Pencil 이벤트를 처리하게 된다. 이 경우, 사용자가 버튼을 누르지 않아도 Pencil 이벤트로 인해 예상치 못한 동작이 발생될 수 있다. 즉, 단말은 layer간의 중첩으로 특정 이벤트가 Canvas layer 혹은 Interaction layer 어느쪽에 귀속되어야 하는지에 대한 사전판단이 어렵다는 문제점이 발생할 수 있다.
이러한 문제점을 해결하기 위해서, Interaction Layer와 Canvas Layer 간의 통신을 조정할 필요가 있다. 예를 들어, Interaction Layer에서 버튼을 누르는 이벤트를 감지할 때, Canvas Layer에서 Apple Pencil 이벤트를 무시하도록 처리될 수 있다. 또는, Canvas Layer에서는 Apple Pencil 이벤트를 처리하더라도 Interaction Layer에서 버튼을 누르는 이벤트를 우선적으로 처리할 수 있도록 구현될 수 있다.
통상적으로 Panel 형식(예를 들어, 필기영역, 저장영역)으로 별도의 구현을 통해, 이러한 layer 중첩 문제점이 회피될 수 있다.
도 18은 Panel을 이용한 layer 중첩 문제 해결 방식의 예시이다.
도 18을 참조하면, 개발자는 Canvas Layer와 Interaction Layer를 중첩하지 않고 별도의 Panel로 구현되어 layer 중첩 문제를 해결할 수 있다.
다만, 이러한 방법은 몇 가지 문제점을 가질 수 있다.
첫째로, 사용자가 입력하는 답안이 텍스트나 숫자 등의 간단한 형식일 경우에는 문제가 없겠지만, 그 외의 경우에는 답안을 입력하는 것이 어려울 수 있다. 예를 들어, 그래프를 그려야 하는 문제의 경우, 사용자는 스타일러스를 사용하여 Canvas Layer에 그림을 그려야 한다. 그러나, 별도 Panel로 Interaction Layer가 구현되는 경우, 종이와 연필처럼 자유롭게 그림을 그리기 어렵기 때문에, 정확도에 영향을 미칠 수 있다.
둘째로, 도 18의 방식에 경우, 디스플레이에 한 문항만 표시가 가능하기 때문에 서책 형태의 참고서의 레이아웃을 활용할 수 없는 치명적인 단점이 존재한다.
셋째로, 참고서의 문제를 푸는 것은 단순히 문제를 푸는 것 이상의 학습 경험을 사용자에게 제공할 수 있어야 한다. 따라서, 어플리케이션은 이러한 경험을 실제와 최대한 유사하게 제공할 필요가 있다. 그러나, 별도 Panel로 구현되는 형태는 실제와 다른 형태로서, 사용자에게 이러한 경험을 사실적으로 제공하기 어렵다.
도 19은 본 명세서가 적용될 수 있는 단말의 일 실시예이다.
도 19를 참조하면, 단말은 타블렛 PC를 포함할 수 있으며, 단말은 서버와 연결되어, 데이터를 송수신할 수 있다. 단말은 참고서와 관련된 어플리케이션이 탑재되어, 사용자에게 참고서 문제풀이를 위한 서비스를 제공할 수 있다.
단말은 멀티 레이어 구조를 구현할 수 있으며, 멀티 레이어 구조는 1) 컨텐츠 레이어(Contents Layer), 2) 상호작용 레이어(Interaction Layer), 및 3) 캔버스 레이어(Canvas Layer)를 포함할 수 있다. 단말은 컨텐츠 레이어를 통해, 참고서의 이미지 파일을 표시할 수 있다.
단말은 도 14의 절차를 통해, 생성된 의미론적 HTML 파일, 또는 참고서의 이미지 파일에 상호작용 지점(Interacion Point)을 설정한다(S1910).
예를 들어, 상호작용 지점은 의미론적 HTML 파일에 포함된 상호작용이 요구되는 영역에 대한 위치값에 근거하여, 설정될 수 있다. 또는, 참고서의 이미지 파일에 포함된 각 요소들을 분류하여, 상호작용이 요구되는 요소에 대한 위치값에 근거하여, 설정될 수 있다. 이러한 상호작용 지점은 후술되는 특정영역에 포함될 수 있다. 예를 들어, 특정영역은 상호작용이 요구되는 영역을 포함할 수 있다. 따라서, 본 명세서에서 상호작용 지점은 특정영역으로 대체될 수 있다.
단말은 상호작용 지점에 상호작용 객체(Interaction Object)를 생성한다(S1920).
예를 들어, 단말은 참고서의 이미지 파일에 근거하여, 도 15에서 예시하고 있는 형태와 같은 상호작용 객체를 생성할 수 있다.
여기서, 상호작용 객체는 사용자가 특정영역을 터치하거나 스타일러스나 마우스를 사용하여 상호작용할 수 있는 객체를 의미할 수 있다. 예를 들어, 수학 문제를 푸는 어플리케이션에서는 문제를 풀기 위한 정답 입력란이 Interaction object가 될 수 있다. 사용자는 이 입력란에 스타일러스를 이용하여 숫자나 수식을 입력하고, 단말은 이를 인식하여 적절한 처리를 수행할 수 있다.
또한, 문제의 해설을 보여주는 버튼도 상호작용 객체가 될 수 있다. 사용자가 이 버튼을 터치하면, 해당 문제의 해설이 표시되고, 다시 터치하면 해설이 사라지도록 구현될 수 있다.
예를 들어, 상호작용 객체는 문항별로 구분되어 ID 값이 부여되며, 해당 문항의 해설과 연관될 수 있다.
단말은 전술한 표 1에서의 상호작용 선언에 근거하여, 상호작용 객체를 생성할 수 있다. 단말은 상호작용 객체을 투명하게 생성하여, 사용자에게 표시할 수 있다.
보다 자세하게, 단말은 이미지 파일 위에 상호작용 객체를 생성할 수 있는 투명한 레이어(예를 들어, 상호작용 레이어)를 생성할 수 있다. 단말은 상호작용 레이어에 특정영역을 설정하고, 특정영역에 포함되도록 상호작용 객체(예를 들어, 버튼 입력객체)를 생성할 수 있다.
단말은 상호작용 객체에 근거하여, 상호작용을 탐지한다(S1930).
상호작용은 단말과 사용자와의 상호작용 동작일 수 있다. 예를 들어, 상호작용은 사용자가 손가락 및/또는 Pencil을 이용하여 Canvas Layer 상에 상호작용 객체와 관련된 상호작용 동작을 수행하는 것을 포함할 수 있다.
단말은 상호작용이 탐지된 것에 근거하여, 당해 특정영역과 관련한 이벤트가 발생한 것인지를 판단한다(S1940).
예를 들어, 특정영역과 관련한 이벤트는 사용자로부터 정답이 입력되는 정답 입력 이벤트, 사용자가 그림을 그리는 드로잉 이벤트 및/또는 사용자가 페이지 간 또는 페이지 내에서의 화면 이동을 요청하는 이동 이벤트를 포함할 수 있다.
도 20은 본 명세서가 적용될 수 있는 이벤트 탐지 방법의 예시이다.
도 20을 참조하면, 단말은 상호작용 동작이 연결되는 지점이 포함된 특정영역을 설정할 수 있다. 예를 들어, 단말은 인공지능 모델을 이용하여, 특정영역을 정의할 수 있다. 이러한 특정영역은 사용자로부터 상호작용 동작을 입력받을 수 있을 것으로 기대되는 범위일 수 있다.
보다 자세하게, 상호작용 레이어 내에서 "특정 영역"은 사용자 입력을 인식하기 위해 지정된 영역을 의미할 수 있다. 이러한 영역은 일반적으로 화면의 좌표로 표현되며, 사용자의 터치 또는 클릭과 같은 상호작용을 감지하기 위해 사용될 수 있다. 예를 들어, 화면에 표시된 버튼, 링크, 또는 원각 기호와 같은 요소는 각각 특정 영역에 해당하며, 사용자가 해당 영역을 선택하면 단말은 해당 상호작용을 감지하고 처리할 수 있다.
단말은 상호작용이 특정영역 내에서 발생하고 완료된 것인지를 판단한다(S2010).
단말은 상호작용이 특정영역 내에서 발생하고 완료된 경우, 상호작용이 터치동작인 것에 근거하여, 제1 정답 입력 이벤트를 탐지한다(S2100). 예를 들어, 단말은 100ms미만의 짧은 터치의 상호동작에 대해, 터치동작으로 인식할 수 있다. 이 경우, 단말은 정답 입력 이벤트를 탐지할 수 있고, 드로잉 이벤트는 없다고 판단할 수 있다.
도 22는 본 명세서가 적용될 수 있는 제1 정답 입력 이벤트를 예시한다.
도 22를 참조하면, 단말은 사용자로부터 터치동작을 입력받을 수 있다. 예를 들어, 단말은 상호작용 객체로서, 원숫자들에 대응되는 버튼 입력객체를 생성할 수 있고, 상호작용 객체는 특정영역(2200)에 포함될 수 있다.
단말이 사용자로부터 입력받은 터치동작(2210)이 특정영역(2200) 내에서 발생하고 완료된 경우(예를 들어, 사용자의 손가락(또는 펜슬)을 통한 터치가 특정영역에서 이루어지고, 손가락(또는 펜슬)의 이격이 특정영역 내에서 완료되는 경우), 단말은 제1 정답 입력 이벤트를 탐지할 수 있다.
단말은 정답 입력 이벤트가 탐지되는 경우, 정답이 입력되었다는 것을 나타내기 위해, 대응되는 원숫자 위에 체크표시를 디스플레이 할 수 있다.
다시 도 20을 참조하면, 단말은 상호작용이 터치동작 이외의 동작인 것에 근거하여, 스트로크(stroke)의 각도 및 길이에 따라, 제2 정답 입력 이벤트를 탐지한다(S2200)
예를 들어, stroke의 각도가 60도와 120도 사이이고, 길이가 특정길이보다 짧을 경우, 단말은 정답 입력 이벤트를 탐지할 수 있다.
도 23은 본 명세서가 적용될 수 있는 제2 정답 입력 이벤트를 예시한다.
도 23을 참조하면, 단말은 사용자로부터 터치동작 이외의 동작(예를 들어, 100ms 이상의 터치)을 입력받을 수 있다. 예를 들어, 단말은 상호작용 객체로서, 원숫자들에 대응되는 버튼 입력객체를 생성할 수 있고, 상호작용 객체는 특정영역(2300)에 포함될 수 있다.
사용자는 펜슬을 통해, 터치동작 이외의 동작을 입력받을 수 있다. 단말이 사용자로부터 입력받은 터치동작 이외의 동작(2310)이 특정영역(2300) 내에서 발생하고 완료된 경우(예를 들어, 펜슬을 통한 터치가 특정영역에서 이루어지고, 그려지는 스트로크가 특정영역 내에서 완료되는 경우), 단말은 스트로크의 각도 및 길이을 판단할 수 있고, 각도 및 길이가 특정범위 내라면, 제2 정답 입력 이벤트를 탐지할 수 있다.
다시 도 20을 참조하면, 단말은 상호작용이 터치동작 이외의 동작인 것에 근거하여, 상호작용이 특정영역의 일정부분 이상을 채우는 경우, 제3 정답 입력 이벤트를 탐지한다(S2300). 예를 들어, 단말은 상호작용과 관련된 동작의 형태가 모서리는 존재하지 않으나, 특정영역의 [60%]이상을 채우는 경우, 정답 입력 이벤트를 탐지하고, 드로잉 이벤트는 없다고 판단할 수 있다.
도 24는 본 명세서가 적용될 수 있는 제3 정답 입력 이벤트를 예시한다.
도 24를 참조하면, 단말은 사용자로부터 입력받은 터치동작 이외의 동작의 형태가 스트로크는 없으나 특정영역(2400)의 일정부분 이상을 채웠다고 판단하는 경우, 제3 정답 입력 이벤트를 탐지할 수 있다.
다시, 도 20을 참조하면, 단말은 상호작용이 특정영역 내에서 발생하고, 특정영역 내에서 완료되지 않은 경우, 상호작용이 펜슬을 통해 입력되고, 특정영역과 연결된 것에 근거하여, 드로잉 이벤트를 탐지한다(S2001). 예를 들어, 상호작용이 특정영역과 연결된 경우는 1) 상호작용이 특정영역의 밖에서 발생하여, 특정영역의 안에서 완료되는 경우, 2) 상호작용이 특정영역의 밖에서 발생하여, 특정영역을 통과하여, 특정영역의 밖에서 완료되는 경우, 및/또는 3) 상호작용이 특정영역의 안에서 발생하여, 특정영역의 밖에서 완료되는 경우를 포함할 수 있다.
도 25는 본 명세서가 적용될 수 있는 드로잉 이벤트를 예시한다.
도 25를 참조하면, 단말은 사용자로부터 펜슬을 통해 상호작용을 입력받을 수 있고, 상호작용은 특정영역과 연결될 수 있다.
예를 들어, 사용자가 펜슬을 통해, 그리는 선의 시작이 특정영역 밖에서 발생하여, 특정영역을 통과하여, 특정영역의 밖에서 완료될 수 있다(2510).
또는, 사용자가 펜슬을 통해, 그리는 선의 시작이 특정영역 밖에서 발생하여, 특정영역의 안에서 완료될 수 있다(2520).
다시 도20을 참조하면, 상호작용이 펜슬 이외의 도구(예를 들어, 손가락)를 통해 입력되고, 드래그 동작인 것에 근거하여, 단말은 이동 이벤트를 탐지한다(S2002). 예를 들어, 단말은 상호작용이 입력되는 페이지가 원래 비율을 유지하고 있는 경우, 드래그 동작을 페이지 간 이동(예를 들어, Swipe) 이벤트로 탐지할 수 있다. 또는, 단말은 상호작용이 입력되는 페이지가 원래 비율보다 확대된 경우, 드래그 동작을 페이지 내에서의 이동 이벤트로 탐지할 수 있다.
도 26은 본 명세서가 적용될 수 있는 이동 이벤트의 예시이다.
도 26을 참조하면, 사용자는 손가락을 통해, 단말에 드래그 동작을 입력할 수 있다. 단말은 펜슬 이외의 도구를 통해, 드래그 동작이 입력된 경우, 이동 이벤트를 탐지할 수 있다.
만일, 현재 페이지가 확대되어 있지 않은 경우, 단말은 드래그 동작을 페이지 간 이동 이벤트로 탐지할 수 있다(2610).
현재 페이지가 확대되어 있는 경우, 단말은 드래그 동작을 페이지 내에서의 이동 이벤트로 탐지할 수 있다(2620)
다시 도 19를 참조하면, 단말은 특정영역과 관련된 이벤트에 근거하여, 당해 이벤트를 Interaction Layer로 전달하여 처리한다(S1950).
예를 들어, 단말은 상호작용 객체에 근거하여, 당해 이벤트를 Interaction Layer로 전달하여 적합한 동작을 수행할 수 있다. 보다 자세하게, 정답 입력 이벤트의 경우, 단말은 사용자로부터 정답을 입력받을 수 있고, 정답을 체크(2320)하여, 사용자에게 디스플레이할 수 있다. 드로잉 이벤트의 경우, 단말은 사용자에게 드로잉 효과를 표시할 수 있다.
만일, 특정영역과 관련된 이벤트가 아닌 경우, 단말은 당해 이벤트를 Cnavas Layer에 전달하여 처리할 수 있다.
이를 통해, 사용자는 스타일러스 등을 이용하여 문제를 풀 수 있고, 단말은 Interaction Layer와 Canvas Layer의 적절한 상호작용을 통해, 사용자의 문제풀이를 도울 수 있다.
또한, 단말은 사용자가 문제를 푸는 과정에서 필요한 정보를 관리서버에 전송하고, 관리서버에서는 이를 저장하거나 분석하여 활용할 수 있다.
도 21은 본 명세서가 적용될 수 있는 서비스의 일실시예이다.
도 21을 참조하면, 사용자의 참고서 문제풀이를 위한 서비스의 실시예를 예시한다.
사용자는 제2 단말(사용자 단말, 예를 들어, 타블렛 PC)을 통해, 제1 단말(서버, 예를 들어, 클라우드 서버)과 연결되어, 도 19 및 도 20의 실시예와 관련된 참고서 문제풀이를 위한 서비스를 이용할 수 있다. 이를 위해, 제2 단말에는 참고서 문제풀이를 위한 서비스를 제공하는 별도의 어플리케이션이 설치될 수 있다. 또한, 제1 단말 및/또는 제2 단말은 본 명세서에서 전술하고 있는 단말의 기능 전부 또는 일부를 수행할 수 있다.
제2 단말은 제1 단말로 참고서의 이미지 파일을 전송한다(S2110). 예를 들어, 참고서의 이미지 파일은 참고서 내의 각 페이지의 컨텐츠를 포함하는 PDF 파일을 포함할 수 있다. 이후, 제1 단말은 이미지 파일로부터, 바운딩 박스 정보를 추출할 수 있다. 예를 들어, 제1 단말은 이미지 파일의 각 페이지로부터, 문제영역을 탐지하고 문제영역에서 상호작용이 요구되는 영역(예를 들어, 선택지 영역)을 추출하며, 상호작용이 요구되는 영역에서 각 요소(예를 들어, 선택지 요소)를 탐지할 수 있다.
예를 들어, 제1 단말은 추출된 바운딩 박스 정보와 관련된 영역정보들을 도 15(b)와 같은 형태로 DB(Data Base)에 저장할 수 있다.
또한, 제1 단말은 참고서의 이미지 파일의 해설 영역을 탐지하고, 해설 영역에서 해답 번호와 정답 요소들을 추출할 수 있다. 예를 들어, 제1 단말은 참고서의 해설지 페이지를 문항 별로 분해하여, 문항 별 해설 요소들을 문항 단위로 분해할 수 있다. 이를 통해, 제1 단말은 문항 단위의 해설 영역정보를 추출할 수 있고, 도 13에서 전술한 바와 같이, 해설 영역정보를 DB 내에 관련된 문항의 영역정보들과 바인딩하여 저장할 수 있다.
이후, 제1 단말은 문항의 영역정보 및/또는 해설 영역정보에 근거하여, 대응되는 영역의 문항 및/또는 해설의 이미지를 생성하고, 파일 스토리지에 저장할 수 있다. 또한, DB 및/또는 파일 스토리지는 제2 단말의 사용자만이 접근 가능하도록 설정될 수 있다.
제2 단말은 사용자로부터 참고서 문제풀이를 위한 서비스의 대상이 되는 참고서를 선택받는다(S2120). 예를 들어, 제2 단말은 제1 단말로부터 참고서 문제풀이를 위한 서비스가 가능한 참고서의 목록을 수신할 수 있다. 가능한 참고서의 목록은 제2 단말이 제1 단말로 전송한 참고서의 이미지 파일에 근거하여, 생성될 수 있다.
예를 들어, 제1 단말은 제2 단말로부터, 수신한 참고서의 이미지 파일에 근거하여, 가능한 참고서의 목록을 생성할 수 있다. 이를 위해, DB는 복수개의 참고서의 영역정보를 포함할 수 있고, 제1 단말은 제2 단말로부터 수신한 참고서의 이미지 파일에 근거하여, 수신한 참고서의 정보를 식별(예를 들어, 수신한 참고서의 제목, 발행연도)할 수 있다.
보다 자세하게, 제1 단말은 DB에 포함된 복수개의 참고서의 영역정보의 특징들을 제2 단말로부터 수신한 참고서의 이미지 파일로부터 생성되는 영역정보의 특징과 비교하여, 유사성에 근거하여, 수신한 참고서의 정보를 식별할 수 있다. 제1 단말은 수신한 참고서의 식별 정보에 따라, 제2 단말이 가능한 참고서의 목록을 생성하여, 제2 단말로 전달할 수 있고, 제2 단말은 가능한 참고서의 목록을 사용자에게 표시함으로써, 사용자로부터 서비스의 대상이 되는 참고서를 선택받을 수 있다.
제2 단말은 제1 단말로부터, 선택된 참고서의 각 페이지들의 이미지들을 수신한다(S2130). 예를 들어, 제2 단말은 파일 스토리지에 포함된 선택된 참고서의 문항 및/또는 해설의 이미지를 수신할 수 있다.
제2 단말은 각 페이지의 이미지에 대응되는 멀티 레이어를 생성한다(S2140). 예를 들어, 제2 단말은 사용자의 필기를 입력받기 위한 캔버스 레이어 및 사용자와 상호작용을 하기 위한 상호작용 레이어를 투명하게 생성할 수 있다. 또한, 제2 단말은 각 페이지의 이미지에 근거하여, 이를 표시하기 위한 컨텐츠 레이어를 생성할 수 있다.
추가적으로, 제2 단말은 특정영역과 관련한 이벤트가 발생한 것인지를 판단하기 위해, 모든 레이어보다 우선하여, 상호작용과 관련된 이벤트를 탐지할 수 있는 이벤트 리스너를 생성할 수 있다.
제2 단말은 제1 단말로부터, 현재 페이지의 영역정보 및 문항정보를 수신한다(S2150). 예를 들어, 제2 단말은 DB에 포함된 영역정보 및 각 문항들의 정보를 수신할 수 있다.
제2 단말은 영역정보 및 문항정보에 근거하여, 현재 페이지에 대응되는 상호작용 레이어에 상호작용 객체를 생성한다(S2160). 예를 들어, 제2 단말은 현재 페이지의 이미지 파일에 근거하여, 전술한 S1910 및/또는 1920의 동작을 수행할 수 있다. 현재 페이지는 제2 단말이 사용자의 문제풀이를 위해 사용자에게 표시하고 있는 참고서의 페이지를 의미할 수 있다.
이후, 제2 단말은 전술한 S1930 내지 S1950의 동작에 따라, 상호작용 객체에 근거하여, 상호작용을 탐지할 수 있다. 예를 들어, 제2 단말은 이벤트 리스너를 통해, 상호작용을 탐지할 수 있다. 이후, 제2 단말은 상호작용이 탐지된 것에 근거하여, 당해 특정영역과 관련한 이벤트가 발생한 것인지를 판단하며, 특정영역과 관련된 이벤트에 근거하여, 당해 이벤트를 Interaction Layer로 전달하여 처리할 수 있다.
또 다른 실시예로서, 제2 단말은 제1 단말로 참고서의 이미지 파일을 전송하지 않고, 직접 바운딩 박스 정보를 생성할 수 있다. 예를 들어, 제2 단말은 경량화된 인공지능 모델을 이용하여, 제1 단말에서 생성되는 영역정보 및 문항정보를 직접 생성할 수 있다. 이후, 제2 단말은 직접 생성한 영역정보 및 문항정보에 근거하여, 상호작용 레이어에 상호작용 객체를 생성할 수 있다.
이 경우, 제2 단말은 이미지를 제1 단말로 송수신하는 단계 없이 직접 처리할 수 있다. 또한, 제1 단말에, 참고서 페이지에 대응되는 이미지 파일을 송수신하는 단계가 필요하지 않으며, 생성된 영역 정보를 수신하는 단계도 필요하지 않을 수 있다. 또한, 제2 단말에서 모델을 실행하여 상호작용 레이어를 생성하므로 데이터 전송과 관련된 부하를 줄일 수 있고, 실시간으로 사용자에게 서비스를 제공할 수 있다.
전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.
또한, 이상에서 서비스 및 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 서비스 및 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (9)

  1. 사용자 단말이 멀티 레이어 구조에서 사용자와 상호작용을 하기 위한 방법에 있어서,
    참고서의 각 페이지에 대응되는 이미지 파일들에 근거하여, 상기 멀티 레이어 구조를 생성하는 단계; 로서, 상기 멀티 레이어 구조는 1) 컨텐츠 레이어(Contents Layer), 2) 상호작용 레이어(Interaction Layer), 및 3) 캔버스 레이어(Canvas Layer)를 포함함;
    상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보에 근거하여, 상기 현재 페이지에 대응되는 상호작용 레이어에 상기 사용자와의 상호작용을 위한 상호작용 객체를 생성하는 단계;
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계; 및
    상기 탐지된 상호작용에 근거하여, 탐지된 이벤트를 상기 상호작용 레이어로 전달하여, 처리하는 단계;
    를 포함하며,
    상기 캔버스 레이어는
    상기 상호작용 레이어와 연관되어, 상기 상호작용을 탐지하는, 구현방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는
    상기 사용자로부터, 원숫자와 관련된 터치동작을 입력받는 단계; 및
    상기 터치동작에 근거하여, 상기 원숫자와 대응되는 정답 입력 이벤트를 탐지하는 단계;
    를 더 포함하는, 구현방법.
  4. 제1항에 있어서,
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는
    상기 사용자로부터, 원숫자와 관련된 스트로크(stroke)를 입력받는 단계; 및
    상기 스트로크의 각도 및 길이에 근거하여, 상기 원숫자와 대응되는 정답 입력 이벤트를 탐지하는 단계;
    를 더 포함하는, 구현방법.
  5. 제1항에 있어서,
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는
    상기 사용자로부터, 원숫자와 관련된 특정영역을 채우기 위한 동작을 입력받는 단계; 및
    상기 동작이 상기 특정영역의 일정부분 이상을 채우는 것에 근거하여, 상기 원숫자와 대응되는 정답 입력 이벤트를 탐지하는 단계;
    를 더 포함하는, 구현방법.
  6. 제1항에 있어서,
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는
    상기 사용자로부터, 펜슬을 통해, 원숫자와 관련된 특정영역과 연결되는 선을 입력받는 단계; 및
    상기 선이 상기 특정영역을 벗어나는 것에 근거하여, 드로잉 이벤트를 탐지하는 단계;
    를 더 포함하는, 구현방법.
  7. 제1항에 있어서,
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하는 단계는
    상기 사용자로부터, 드래그 동작을 입력받는 단계; 및
    상기 현재 페이지가 확대되어 표시되는 지에 근거하여, 이동 이벤트를 탐지하는 단계;
    를 더 포함하는, 구현방법
  8. 제1항에 있어서,
    서버로부터, 상기 참고서의 각 페이지에 대응되는 이미지 파일들을 수신하는 단계; 및
    상기 서버로부터, 상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보를 수신하는 단계;
    를 포함하는, 구현방법.
  9. 멀티 레이어 구조에서 사용자와 상호작용을 하기 위한 사용자 단말에 있어서,
    통신모듈;
    메모리; 및
    상기 통신모듈 및 상기 메모리를 기능적으로 제어하는 프로세서; 를 포함하고,
    상기 프로세서는
    참고서의 각 페이지에 대응되는 이미지 파일들에 근거하여, 상기 멀티 레이어 구조를 생성하고, 상기 멀티 레이어 구조는 1) 컨텐츠 레이어(Contents Layer), 2) 상호작용 레이어(Interaction Layer), 및 3) 캔버스 레이어(Canvas Layer)를 포함하며,
    상기 사용자에게 표시되는 현재 페이지의 영역정보 및 문항정보에 근거하여, 상기 현재 페이지에 대응되는 상호작용 레이어에 상기 사용자와의 상호작용을 위한 상호작용 객체를 생성하고,
    상기 상호작용 객체에 근거하여, 상기 사용자와의 상호작용을 탐지하며,
    상기 탐지된 상호작용에 근거하여, 탐지된 이벤트를 상기 상호작용 레이어로 전달하여, 처리하고,
    상기 캔버스 레이어는
    상기 상호작용 레이어와 연관되어, 상기 상호작용을 탐지하는, 사용자 단말.

KR1020230084278A 2023-06-29 2023-06-29 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치 KR102680717B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230084278A KR102680717B1 (ko) 2023-06-29 2023-06-29 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230084278A KR102680717B1 (ko) 2023-06-29 2023-06-29 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102680717B1 true KR102680717B1 (ko) 2024-07-02

Family

ID=91932938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230084278A KR102680717B1 (ko) 2023-06-29 2023-06-29 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102680717B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101855250B1 (ko) * 2010-11-03 2018-05-09 삼성전자 주식회사 터치 제어 방법 및 이를 지원하는 휴대 단말기
KR101987446B1 (ko) * 2016-09-06 2019-06-12 이현주 다중 레이어 기반 다자 참여 저작 시스템 및 방법
KR20220162098A (ko) * 2021-05-31 2022-12-07 주식회사 파블로아트컴퍼니 상호작용 방식의 인터렉티브형 그림 제작환경을 제공하는 서비스 제공 시스템
KR102507466B1 (ko) * 2021-11-11 2023-03-08 콜라블 주식회사 스마트 학습 교재 제공 방법
KR102542174B1 (ko) * 2022-10-28 2023-06-13 주식회사 테스트뱅크 디지털 참고서 제공 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101855250B1 (ko) * 2010-11-03 2018-05-09 삼성전자 주식회사 터치 제어 방법 및 이를 지원하는 휴대 단말기
KR101987446B1 (ko) * 2016-09-06 2019-06-12 이현주 다중 레이어 기반 다자 참여 저작 시스템 및 방법
KR20220162098A (ko) * 2021-05-31 2022-12-07 주식회사 파블로아트컴퍼니 상호작용 방식의 인터렉티브형 그림 제작환경을 제공하는 서비스 제공 시스템
KR102507466B1 (ko) * 2021-11-11 2023-03-08 콜라블 주식회사 스마트 학습 교재 제공 방법
KR102542174B1 (ko) * 2022-10-28 2023-06-13 주식회사 테스트뱅크 디지털 참고서 제공 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
US8265382B2 (en) Electronic annotation of documents with preexisting content
CN112507806B (zh) 智慧课堂信息交互方法、装置及电子设备
US8768241B2 (en) System and method for representing digital assessments
CN103198502A (zh) 数字漫画编辑器及方法
CN113886567A (zh) 一种基于知识图谱的教学方法及系统
CN103198503A (zh) 数字漫画编辑器及方法
KR102699224B1 (ko) 테이블 인식 방법 및 시스템
Sluÿters et al. Consistent, continuous, and customizable mid-air gesture interaction for browsing multimedia objects on large displays
Margetis et al. Augmenting natural interaction with physical paper in ambient intelligence environments
KR101700317B1 (ko) 도트 코드 기반의 필기 인식 전자펜을 이용한 교육 관리 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR20130054116A (ko) 투명디스플레이를 통해 페이퍼문서를 전자화하고 활용하는 방법 및 시스템.
KR102680717B1 (ko) 멀티 레이어 구조에서 사용자와의 상호작용을 하기 위한 방법 및 장치
KR102618144B1 (ko) 멀티 레이어 구조에서 사용자와의 상호작용 구현을 위한 방법 및 장치
KR102542174B1 (ko) 디지털 참고서 제공 시스템 및 그 방법
KR20240093823A (ko) 수업 활동 코스웨어 제작 방법, 장치, 저장 매체 및 전자 기기
KR102591757B1 (ko) 디지털 참고서를 생산하기 위한 PDF 파일을 Semantic HTML 형태로 변환하기 위한 방법 및 장치
CN113486171B (zh) 一种图像处理方法及装置、电子设备
JP2020115175A (ja) 情報処理装置、情報処理方法及びプログラム
Karatzas et al. Human-Document Interaction Systems--A New Frontier for Document Image Analysis
Patel et al. Learning in the 21st century cyber-physical age
KR102610681B1 (ko) 참고서 내에 수록된 문항 컨텐츠에 대한 메타 데이터를 생성하기 위한 방법 및 장치
Li et al. Connecting Paper to Digitization: a Homework Data Processing System with Data Labeling and Visualization
KR20130135523A (ko) 투명디스플레이를 통해 페이퍼문서를 전자화하고 편집,활용하는 방법 및 시스템.
KR102207514B1 (ko) 맞춤형 필터링 기능이 구비된 스케치 검색 시스템, 사용자 장치, 서비스 제공 장치, 그 서비스 방법 및 컴퓨터 프로그램이 기록된 기록매체
KR102655430B1 (ko) 테이블 생성 방법 및 시스템