KR20250065411A - 개발 시스템, 방법 및 프로그램 - Google Patents

개발 시스템, 방법 및 프로그램 Download PDF

Info

Publication number
KR20250065411A
KR20250065411A KR1020257012131A KR20257012131A KR20250065411A KR 20250065411 A KR20250065411 A KR 20250065411A KR 1020257012131 A KR1020257012131 A KR 1020257012131A KR 20257012131 A KR20257012131 A KR 20257012131A KR 20250065411 A KR20250065411 A KR 20250065411A
Authority
KR
South Korea
Prior art keywords
block
processing
image
user
preview
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020257012131A
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 막셀 프론티어 가부시키가이샤
Publication of KR20250065411A publication Critical patent/KR20250065411A/ko
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

화상 검사 시스템 등의 시스템의 개발 난도나 유저에 의한 작업의 수고를 저감할 수 있는 기술을 제공한다. 개발 시스템인 컴퓨터 시스템은, 유저에 대해, 개발을 지원하기 위한 GUI 화면(30)을 생성해서 제공한다. GUI 화면(30)은, 화상 검사 시스템의 플로우라인을 구성하기 위한 부품인 처리 블록(BL)이 복수 배치되어 있는 블록 선택부(31)와, 블록 선택부(31)로부터 유저의 GUI 조작에 따라서 선택된 처리 블록(BL)이 배치되고, 배치된 처리 블록끼리 라인으로 연결됨으로써, 제작 중인 플로우라인(FL)이 구성되어 표시되는 블록 배치부(32)와, 블록 배치부(32)에 배치되어 있는 제작 중인 플로우라인(FL)에 대해서, 유저의 GUI 조작에 따라, 플로우라인(FL)의 동작 상태의 프리뷰 영상을 표시하는 프리뷰 표시부(33)를 구비한다.

Description

개발 시스템, 방법 및 프로그램
본 발명은, 화상 검사 시스템 등을 개발·제작하기 위한 컴퓨터 시스템(개발 시스템이라고 기재하는 경우가 있음) 등의 기술에 관한 것이다.
각종 화상 검사 시스템이 개발되어 있다. 예를 들어, 제조 라인을 갖는 공장 등의 현장에서, 화상 검사 시스템이 이용되고 있다. 화상 검사 시스템은, 제조 라인 상을 흐르는 부품이나 제품 등의 대상물을, 라인 센서나 에어리어 센서 등의 카메라·센서 디바이스에 의해 촬영한다. 화상 검사 시스템은, 촬영된 영상·화상에 대해서, 컴퓨터에 의한 화상 처리 등에 기초하여, 대상물의 검출·판정 등의 처리를 행한다. 이에 의해, 대상물에 대한 화상 검사가 실현된다. 화상 검사의 일례는, 화상에 찍혀 있는 대상물을 인식·검출하여, 대상물의 유무나 수, 외관의 품질 등을 판정하는 외관 검사를 들 수 있다.
종래, 화상 검사 시스템의 개발은, 전문 기술이나 지식을 갖는 엔지니어 등의 사람(개발자, 유저 등이라고 기재하는 경우도 있음)에 의해 행해지고 있어, 고도의 프로그래밍 기술 등(예를 들어 C 언어 등에 의한 코딩 등)을 필요로 하고 있다. 또한, 화상 검사 시스템은, 기계 학습(예를 들어 심층 학습) 등의 AI(인공 지능)를 사용한 화상 처리 기술에 의해 구성되는 경우도 있어, 그 경우, 개발자에게는, AI에 관한 지식 등이 요구된다.
상기와 같은 시스템 개발에 관한 선행 기술예로서는, 일본 특허 공개 제2009-141413호 공보(특허문헌 1)를 들 수 있다. 특허문헌 1에는, 오퍼레이터에 의한 작업을 능률적으로 행하는 화상 처리 장치를 구성하는 취지나, 미리 설정되어 있는 복수의 워크플로우의 하나를 지정하여, 그 워크플로우의 처리 스텝의 증감, 처리 스텝의 순서 변경 등의 편집을 워크플로우 편집 수단으로 행하고, 편집 후에 보존된 워크플로우를 워크플로우 선택 수단에 의해 인위적으로 선택해서 실행하는 취지 등이 기재되어 있다.
일본 특허 공개 제2009-141413호 공보
예를 들어 특허문헌 1은, 화상 검사 시스템의 개발과는 다른 기술이지만, 사진 프린트 장치에서의 화상 처리에 관한 워크플로우의 편집에 대해서, 예를 들어 도 5, 단락 0045 이후에 기재가 있다. 특허문헌 1에서는, 도 6과 같은 화면에서 편집 버튼이 조작되고, 도 10과 같은 워크플로우 편집 화면이 표시된다. 그 워크플로우 편집 화면에서는, 노멀 표시 영역에, 미리 설정되어 있는 워크플로우가 표시되고, 편집 영역에는, 워크플로우를 구성하는 처리 스텝이 아이콘으로서 표시된다. 워크플로우 편집 수단은, 노멀 표시 영역의 워크플로우 처리 스텝의 아이콘을 커서로 드래그&드롭해서 편집 영역에 표시할 수 있는 GUI를 구비한다. 편집 영역의 아이콘을 지정해서 조작하면, 그 처리 스텝에 관련지어진 처리 프로세스 정보가 표시되어, 실행하는 처리 프로세스를 선택할 수 있다. 보존 버튼이 조작되면, 편집된 워크플로우의 명칭이 입력되어 보존된다. 또한, 처리 프로세스의 시퀀스 설정을, 녹화 모드(도 11) 또는 아이콘의 드래그&드롭에 의해 행할 수 있는 취지가 기재되어 있다.
또한, 특허문헌 1에 기재된 「프리뷰 화면」(도 7)은, 사진 화상의 섬네일 화상 등을 표시하는 화면으로, 워크플로우의 일부의 처리 스텝을 구성하고 있는 요소이며, 본 명세서에서 기재하고 있는 「프리뷰」와는 다르다.
화상 검사 시스템과 같은 시스템(바꾸어 말하면 소프트웨어, 애플리케이션 등)의 개발·제작에는, 개발자인 사람에게 고도의 기술 지식 등이 요구되므로, 비교적 난도가 높아, 프로그래밍이나 디버그 등의 작업의 수고도 크다. 이러한 난도나 수고를 저감할 수 있도록, 시스템 개발을 지원해서 용이화나 효율화할 수 있는 시스템(개발 시스템이라고 기재하는 경우가 있음)이 요구된다.
종래 기술예의 개발 시스템에서는, 시스템 개발·제작 시, 유저는, 개발 대상 시스템에 대응하는 플로우라인 전체를 일단 제작하고, 그 후, 그 제작한 플로우라인 전체의 동작 확인 등을 행한다. 확인 결과, 유저는, 개발 대상 시스템의 일부에 대한 디버그나 변경 등이 있을 경우에는, 플로우라인의 일부 변경 등의 작업을 행한다. 그 후, 유저는, 다시, 그 플로우라인 전체의 동작 확인 등을 행한다. 이러한 작업의 반복을 포함하는 개발 작업은, 유저의 수고가 크고, 개발 시간이 길어져 버리는 경우가 있다.
본 개시의 목적은, 상기 화상 검사 시스템 등의 시스템 개발·제작을 위한 컴퓨터 시스템(개발 시스템) 등의 기술에 관해서, 시스템 개발의 난도나 유저에 의한 작업의 수고를 저감할 수 있는 기술을 제공하는 것이다.
본 개시 중 대표적인 실시 형태는 이하에 나타내는 구성을 갖는다. 실시 형태는, 화상 검사 시스템의 개발을 지원하는 개발 시스템이며, 프로세서 및 메모리를 갖는 컴퓨터 시스템을 구비하고, 상기 컴퓨터 시스템은, 상기 개발을 행하는 유저에 대해, 상기 개발을 지원하기 위한 그래피컬·유저·인터페이스(GUI)를 갖는 GUI 화면을 생성해서 제공하고, 상기 GUI 화면은, 상기 화상 검사 시스템의 플로우라인을 구성하기 위한 부품인 처리 블록이 복수 배치되어 있는 블록 선택부와, 상기 블록 선택부로부터 상기 유저의 GUI 조작에 따라서 선택된 처리 블록이 배치되고, 배치된 처리 블록끼리 라인으로 연결됨으로써, 제작 중인 상기 플로우라인이 구성되어 표시되는 블록 배치부와, 상기 블록 배치부에 배치되어 있는 제작 중인 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인의 동작 상태의 프리뷰 영상을 표시하는 프리뷰 표시부를 구비한다.
본 개시 중 대표적인 실시 형태에 의하면, 상기 화상 검사 시스템 등의 시스템 개발·제작을 위한 컴퓨터 시스템(개발 시스템) 등의 기술에 관해서, 시스템 개발의 난도나 유저에 의한 작업의 수고를 저감할 수 있다. 상기한 것 이외의 과제, 구성 및 효과 등에 대해서는, 발명을 실시하기 위한 형태에서 나타내진다.
도 1은 개발 대상인 화상 검사 시스템과, 실시 형태 1의 개발 시스템의 관계를 도시하는 도면이다.
도 2는 실시 형태 1의 개발 시스템의 제1 구성예를 도시하는 도면이다.
도 3은 실시 형태 1의 개발 시스템의 제2 구성예를 도시하는 도면이다.
도 4는 실시 형태 1의 개발 시스템의 컴퓨터 시스템으로서의 구성예를 도시하는 도면이다.
도 5는 실시 형태 1의 개발 시스템에서의 GUI 화면의 구성예를 도시하는 도면이다.
도 6은 실시 형태 1의 개발 시스템에서의 처리 플로를 도시하는 도면이다.
도 7은 실시 형태 1에서, 플로우라인 편집 기능에 관한 플로우라인 제작의 동작예를 도시하는 도면이다.
도 8은 실시 형태 1에서, 블록 삭제의 동작예를 도시하는 도면이다.
도 9는 실시 형태 1에서, 블록 추가(삽입)의 동작예를 도시하는 도면이다.
도 10은 실시 형태 1에서, 블록 치환의 동작예를 도시하는 도면이다.
도 11은 실시 형태 1에서, 프리뷰 기능에 관한 동작예를 도시하는 도면이다.
도 12는 실시 형태 1에서, 프리뷰 기능에 관한 각종 기능에 대해서 도시하는 도면이다.
도 13은 실시 형태 1에서, 기능 1(프리뷰 표시 전환 기능)에 대해서 도시하는 도면이다.
도 14는 실시 형태 1에서, 기능 1에 관한, 대상 선택 방법에 대해서 도시하는 도면이다.
도 15는 실시 형태 1에서, 기능 1에 관한, 프리뷰 표시 내용 상세로서 동화상을 표시하는 예를 도시하는 도면이다.
도 16은 실시 형태 1에서, 기능 1에 관한, 샘플 입력 화상을 사용하여 프리뷰 표시하는 예를 도시하는 도면이다.
도 17은 실시 형태 1에서, 기능 1에 관한, 처리 블록의 내부 설정의 예를 도시하는 도면이다.
도 18은 실시 형태 1에서, 기능 1에 관한, 처리 블록의 내부 설정의 프리뷰 표시예를 도시하는 도면이다.
도 19는 실시 형태 1에서, 기능 1에 관한, 처리 블록의 내부 설정의 상세 정보의 표시예를 도시하는 도면이다.
도 20은 실시 형태 1에서, 기능 1에 관한, 가적용 프리뷰 표시의 예를 도시하는 도면이다.
도 21은 실시 형태 1에서, 기능 1에 관한, 프리뷰 표시부의 GUI예를 도시하는 도면이다.
도 22는 실시 형태 1에서, 기능 2(멀티프리뷰 기능 1)에 대해서 도시하는 도면이다.
도 23은 실시 형태 1에서, 기능 2(멀티프리뷰 기능 1)의 변형예에 대해서 도시하는 도면이다.
도 24는 실시 형태 1에서, 기능 3(멀티프리뷰 기능 2)에 대해서 도시하는 도면이다.
도 25는 실시 형태 1에서, 프리뷰 모드에 대해서 도시하는 도면이다.
도 26은 실시 형태 1에서, 기능 4(경고)에 대해서 도시하는 도면이다.
도 27은 실시 형태 1에서, 기능 5(색 정보 추출)에 대해서 도시하는 도면이다.
도 28은 실시 형태 1에서, 기능 6(토너먼트 방식)의 제1예에 대해서 도시하는 도면이다.
도 29는 실시 형태 1에서, 기능 6(토너먼트 방식)의 제2예에 대해서 도시하는 도면이다.
도 30은 실시 형태 1에서, 기능 6(토너먼트 방식)에 대해서 도시하는 도면이다.
도 31은 실시 형태 1에서, 기능 6의 변형예에 대해서 도시하는 도면이다.
도 32는 실시 형태 1에서, 복수의 후보의 플로우라인 제작에 대해서 도시하는 도면이다.
도 33은 실시 형태 1에서, 플로우라인의 표시의 변형예에 대해서 도시하는 도면이다.
도 34는 실시 형태 1에서, 기능 7(라인 센서 설치 지원)에 대해서 도시하는 도면이다.
도 35는 실시 형태 1에서, 카메라 도입 블록의 내부 설정에 대해서 도시하는 도면이다.
도 36은 실시 형태 1에서, 기능 8(템플릿 매칭 설정 지원)에 대해서 도시하는 도면이다.
도 37은 실시 형태 1에서, 플로우라인 확인 화면의 예에 대해서 도시하는 도면이다.
도 38은 종래의 화상 검사 시스템과 개발 시스템의 구성예를 나타낸다.
도 39는 실시 형태 2에서, 프리뷰 표시 유무 전환 기능에 대해서 도시하는 도면이다.
도 40은 실시 형태 2에서, 프리뷰 표시 유무 전환 기능에서의 다른 GUI의 예를 도시하는 도면이다.
도 41은 실시 형태 2에서, 프리뷰 표시 유무 전환 기능에서의 다른 GUI의 예를 도시하는 도면이다.
도 42는 실시 형태 2에서, 프리뷰 표시 유무 전환 기능에서의 다른 GUI의 예를 도시하는 도면이다.
도 43은 실시 형태 2에서, 프리뷰 표시 유무 전환 기능에서의 다른 GUI의 예를 도시하는 도면이다.
도 44는 실시 형태 2에서, 프리뷰 표시 유무 전환 기능에서의 다른 GUI의 예를 도시하는 도면이다.
도 45는 실시 형태 2에서, 프리뷰 표시 해상도 설정 기능에 대해서 도시하는 도면이다.
도 46은 실시 형태 2에서, 프리뷰 표시 해상도 설정 기능에서의 다른 GUI의 예를 도시하는 도면이다.
도 47은 실시 형태 2에서, 프리뷰 표시 회전 기능에 대해서 도시하는 도면이다.
도 48은 실시 형태 2에서, 프리뷰 표시 회전 기능에 관한 화상 검사 시스템의 설치예를 도시하는 도면이다.
도 49는 실시 형태 2에서, 프리뷰 표시 회전 기능에 관한 화상 검사 시스템의 설치예를 도시하는 도면이다.
도 50은 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에 대해서 도시하는 도면이다.
도 51은 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에서의, 다른 GUI의 예를 도시하는 도면이다.
도 52는 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에서의, 다른 GUI의 예를 도시하는 도면이다.
도 53은 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에서의, 조건의 설정예를 도시하는 도면이다.
도 54는 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에서의, 속성의 설정예를 도시하는 도면이다.
도 55는 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에서의, 배치의 구체예를 도시하는 도면이다.
도 56은 실시 형태 2에서, 플로우라인 블록 배치 가부 표시 기능에서의, 배치의 구체예를 도시하는 도면이다.
도 57은 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에 대해서 도시하는 도면이다.
도 58은 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에서의, 표시예를 도시하는 도면이다.
도 59는 실시 형태 2에서, 플로우라인의 입출력 영상을 설정하는 기능에 대해서 도시하는 도면이다.
도 60은 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에서의, 입출력 영상의 설정예를 도시하는 도면이다.
도 61은 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에서의, 입출력 영상의 설정예를 도시하는 도면이다.
도 62는 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에서의, 입출력 영상의 설정예를 도시하는 도면이다.
도 63은 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에서의, 입출력 영상의 설정예를 도시하는 도면이다.
도 64는 실시 형태 2에서, 필수 설정 미설정 블록 표시 기능에서의, 제어 처리 플로를 도시하는 도면이다.
도 65는 실시 형태 2에서, 플로우라인 처리 중 블록 표시 기능에 대해서 도시하는 도면이다.
도 66은 실시 형태 2에서, 플로우라인 처리 중 블록 표시 기능의 상세 표시예를 도시하는 도면이다.
도 67은 실시 형태 2에서, 처리 블록의 내부 설정란의 표시예를 도시하는 도면이다.
본 실시예에서는, 이하에 나타내는 바와 같은 기술을 제공함으로써, 일하기 쉬운 작업 환경 만들기와 스마트 팩토리의 실현에 공헌한다. 본 화상 검사 시스템의 실현에 의해, 유엔이 제창하는 지속 가능한 개발 목표(SDGs: Sustainable Development Goals)의 「8. 일의 보람과 경제 성장」 및 「9. 산업과 기술 혁신의 기반 구축」에 공헌한다.
이하, 도면을 참조하면서 본 개시의 실시 형태를 상세하게 설명한다. 도면에서, 동일부에는 원칙적으로 동일 부호를 붙이고, 반복 설명을 생략한다. 도면에서, 구성 요소의 표현은, 발명의 이해를 용이하게 하기 위해, 실제의 위치, 크기, 형상 및 범위 등을 나타내고 있지 않은 경우가 있다.
설명 상, 프로그램에 의한 처리에 대해서 설명할 경우에, 프로그램이나 기능이나 처리부 등을 주체로 해서 설명하는 경우가 있는데, 그에 관한 하드웨어로서의 주체는, 프로세서, 혹은 그 프로세서 등으로 구성되는 컨트롤러, 장치, 계산기, 시스템 등이다. 계산기는, 프로세서에 의해, 적절하게 메모리나 통신 인터페이스 등의 자원을 사용하면서, 메모리 상에 읽어내진 프로그램에 따른 처리를 실행한다. 이에 의해, 소정의 기능이나 처리부 등이 실현된다. 프로세서는, 예를 들어 CPU/MPU나 GPU 등의 반도체 디바이스 등으로 구성된다. 처리는, 소프트웨어 프로그램 처리에 한정되지 않고, 전용 회로로도 실장 가능하다. 전용 회로는, FPGA, ASIC, CPLD 등이 적용 가능하다.
프로그램은, 대상 계산기에 미리 데이터로서 인스톨되어 있어도 되고, 프로그램 소스로부터 대상 계산기에 데이터로서 배포되어도 된다. 프로그램 소스는, 통신망 상의 프로그램 배포 서버여도 되고, 비일과성 컴퓨터 판독 가능한 기억 매체나 불휘발성 기록 매체, 예를 들어 메모리 카드나 디스크여도 된다. 프로그램은, 복수의 모듈로 구성되어도 된다. 컴퓨터 시스템은, 복수 대의 장치에 의해 구성되어도 된다. 컴퓨터 시스템은, 클라이언트 서버 시스템, 클라우드 컴퓨팅 시스템, IoT 시스템 등으로 구성되어도 된다. 각종 데이터나 정보는, 예를 들어 테이블이나 리스트 등의 구조로 구성되지만, 이것에 한정되지 않는다. 식별 정보, 식별자, ID, 이름, 번호 등의 표현은 서로 치환 가능하다.
<과제 등>
과제 등에 대해서 보충 설명한다. 먼저, 개발 대상이 되는 시스템의 예인 화상 검사 시스템에 대해서 설명한다.
도 38은 비교예의 화상 검사 시스템 및 개발 시스템의 구성예를 나타낸다. 화상 검사 시스템(2)은, 개발 대상 시스템이다. 개발 시스템(3)은, 화상 검사 시스템(2)을 개발하기 위한 컴퓨터 시스템이다. 화상 검사 시스템(2)은, 대상물(20)에 대해서, 화상 처리를 사용한 외관 검사 등의 화상 검사를 행하는 시스템이다.
화상 검사 시스템(2)은, 대상물(20), 예를 들어 공장의 제조 라인 상을 흐르는 부품이나 제품 등의 대상물(20)을, 라인 센서나 에어리어 센서 등의 카메라/센서 디바이스(21)에 의해 촬영하고, 촬영된 화상(50)(바꾸어 말하면 화상 신호 등)을 입력한다. 화상 검사 시스템(2)은, 그 화상(50)에 대해, 소정의 화상 검사 처리를 행하여, 결과를 출력하는 시스템이다. 화상 검사 시스템(2)은, 필요한 프로그램을 포함하는 소프트웨어, 하드웨어, 데이터, 회로 등을 포함하는 시스템이다.
라인 센서(바꾸어 말하면 라인 스캔 카메라)는, 예를 들어 라인상으로 배치된 CCD 이미지 센서 소자, 렌즈 및 구동 회로 등을 구비하고, 예를 들어 이동하는 대상물을 라인상으로 촬상한 화상을 복수 합침으로써 대상물의 화상을 생성할 수 있는 디바이스이다. 또한, 에어리어 센서는, 예를 들어 직사각형의 에어리어에 대해 배치된 복수의 센서를 구비하고, 그 에어리어에 대응한 대상물의 화상을 생성할 수 있는 디바이스이다. 카메라/센서 디바이스(21)는, 라인 센서나 에어리어 센서에 한정되지 않고, 화상을 촬상할 수 있는 다른 종류의 디바이스도 적용 가능하다.
화상 검사 시스템(2)의 소정의 화상 검사 처리는, 예를 들어 카메라 도입 처리(201), 화상 처리(202) 및 판정 처리(203)를 갖는다. 이들 각 처리는, 컴퓨터 또는 회로에 의한 프로그램 처리 등의 처리에 의해 실현된다. 바꾸어 말하면, 화상 검사 시스템(2)의 플로우라인은, 그러한 각 처리에 대응한 처리 블록 내지 처리 스텝의 연결에 의해 구성된다.
예를 들어, 카메라 도입 처리(201)는, 제1 처리로서 제1 프로그램으로 실장된다. 화상 처리(202)는, 제2 처리로서 제2 프로그램으로 실장된다. 판정 처리(203)는, 제3 처리로서 제3 프로그램으로 실장된다. 프로그램이란, 컴퓨터 프로그램, 코드이다.
카메라 도입 처리(201)는, 카메라(21)로부터 출력된 화상(50)(바꾸어 말하면 화상 신호)을 입력하여, 화상 데이터로서 도입하는 처리(바꾸어 말하면 화상 입력 처리)이며, 처리 결과로서, 카메라 도입 화상(51)(제1 화상이라고도 기재함)을 출력한다. 화상 처리(202)는, 예를 들어 2치화나 화상 형상 변환 등의 다양한 처리가 있다. 화상 처리(202)는, 예를 들어 카메라 도입 화상(51)을 입력하여, 2치화 처리를 행하고, 처리 결과로서, 2치화 처리 후의 결과 화상(52)(제2 화상이라고도 기재함)을 출력한다. 검사 처리(203)는, 예를 들어 결과 화상(52)을 입력하고, 화상 내에 찍혀 있는 대상물(20)을 인식·검출하여, 대상물(20)의 유무나 수, 외관의 품질 등을 판정하는 처리이다. 검사 처리(203)는, 처리 결과 정보(바꾸어 말하면 검사 결과 정보, 판정 결과 화상)(53)를 출력한다. 또한, 개발 대상의 화상 검사 시스템(2)에 따라서는, 검사 처리(203)를 포함하지 않는 경우도 있다.
또한, 도시의 예에서는, 제1 화상(51)의 내용으로서는, 대상물(20)에 관해서, 원형으로 문자 「ABC」가 기재된 대상물 영역(20A)이 찍혀 있다. 제1 화상(51)은 예를 들어 풀컬러 화상이지만, 도면에서는 흑백으로 모식으로서 도시하고 있다. 제2 화상(52)의 내용으로서는, 2치화된 대상물 영역(20B)이 찍혀 있다.
화상 검사 시스템(2)은, 예를 들어 카메라 도입 처리(201), 화상 처리(202) 및 검사 처리(203)와 같은 복수의 처리 블록의 연결에 의해 구성되어 있고, 도 38과 같은 처리 흐름도로서도 표현할 수 있다. 이러한 화상 검사 시스템(2)의 구성을, 플로우라인이라고 기재하는 경우가 있다.
종래, 이러한 화상 검사 시스템(2)(그에 대응하는 플로우라인)의 개발·제작은, 전문 기술이나 지식을 가진 엔지니어 등의 사람(유저, 개발자 등이라고 기재하는 경우도 있음)이 행하고 있다. 엔지니어인 사람의 작업으로서는, 프로그래밍 환경의 준비 및 프로그래밍 작업과, 디버그 환경의 준비 및 디버그 작업을 포함한다.
또한, 이러한 화상 검사 시스템(2)은, 기계 학습(예를 들어 심층 학습)에 의한 모델을 사용하여 구성되는 경우도 있고, 기계 학습에 의한 모델을 사용하지 않고 일반적인 화상 처리 기술을 사용하여 구성되는 경우도 있다. 예를 들어, 화상 검사 시스템(2)의 플로우라인 상의 어느 것의 처리 블록(바꾸어 말하면 처리 스텝)은, 기계 학습에 의한 모델이 적용되어도 된다. 예를 들어, 어떤 처리 블록에서는, 모델로서 CNN(컨볼루션 뉴럴 네트워크)이 적용되어, 미리 학습 페이즈에서 모델이 훈련된다. 실제 운용의 추정 페이즈에서는, 그 처리 블록에서, 입력 화상에 대해, CNN에 의한 추정 결과를 출력한다. 어느 경우에든, 실시 형태의 개발 시스템은 적용 가능하다.
한편, 개발 시스템(3)은, 이러한 화상 검사 시스템(2)을 대상으로 해서 개발·제작하기 위한 개발 환경 등을 포함하는 컴퓨터 시스템이다. 엔지니어 등의 유저는, 개발을 위한 소프트웨어 등이 인스톨된 컴퓨터 시스템을 사용하여, 이 화상 검사 시스템(2)의 개발 작업을 행한다. 컴퓨터 시스템은, 일반적인 PC, 서버, 데이터베이스, 통신 인터페이스, 입력 디바이스나 출력 디바이스 등을 사용하여 구성할 수 있다. 엔지니어는, 카메라 도입 처리(201)의 제1 프로그램이나, 화상 처리(202)의 제2 프로그램이나, 판정 처리(203)의 제3 프로그램 등을, 프로그래밍에 의해 개발·제작하는 작업을 행한다.
종래의 개발 시스템(3)에서는, 상술한 바와 같이, 유저는, 화상 검사 시스템(2)의 플로우라인을 일단 최후(예를 들어 검사 처리(203))까지 완성시킨 후에, 화상 검사 시스템(2) 전체의 동작 확인 등을 행한다. 확인 후, 유저는, 설계 변경이나 디버그 등에 따라, 플로우라인의 일부를 변경한다. 그 후, 유저는 다시, 화상 검사 시스템(2) 전체의 동작 확인 등을 행한다. 종래의 개발 시스템(3)은, 동작 확인을 위한 프리뷰 기능이 있는 경우에도, 프리뷰 표시 가능한 대상은, 입력의 화상(50)에 대해, 화상 검사 시스템(2)의 플로우라인 전체의 처리 결과이다. 그 때문에, 이러한 개발 작업은, 유저의 수고가 크다.
<해결 수단 등>
상기와 같은 과제 등을 바탕으로, 실시 형태의 개발 시스템은, 이하와 같은 해결 수단 등을 갖는다.
실시 형태의 개발 시스템은, 상기 화상 검사 시스템(2)의 소프트웨어를 개발·제작하는 환경을 구성하는 컴퓨터 시스템이다. 실시 형태의 개발 시스템은, 상기 화상 검사 시스템(2)을 개발·제작하기 위한 그래피컬·유저·인터페이스(GUI)를 포함하는 GUI 베이스에서의 개발 환경을 구성하는 시스템이다.
도 1 등에 나타내지는 실시 형태 1의 개발 시스템(1)은, 화상 검사 시스템(2)에 대응하는 플로우라인의 개발·제작을 지원하는 애플리케이션 프로그램 등을 포함하는 컴퓨터 시스템이다. 이 개발 시스템(1)은, 종래 기술에는 없는 특유의 그래피컬·유저·인터페이스(GUI) 및 표시 내용을 갖는, GUI 베이스의 화면(GUI 화면이라고 기재하는 경우가 있음)을 생성하여, 유저 U1에 대해 제공한다. 이 GUI 화면은, 임의의 디스플레이 디바이스의 스크린에서 표시된다. 이 GUI 화면은, 예를 들어 웹페이지 등의 양태로 제공되어도 된다.
개발 시스템(1)을 사용하여 개발 작업을 행하는 엔지니어 등의 유저 U1은, GUI 화면을 보면서, GUI 화면에 대해 조작을 행함으로써, 개발 시스템(1)의 기능을 이용한다. 유저 U1은, 상기 GUI 베이스에서, 화상 검사 시스템(2)의 플로우라인을 구성하는 각 처리(예를 들어 카메라 도입 처리(201), 화상 처리(202) 및 판정 처리(203))의 프로그램을 개발·제작하는 작업을 행한다.
<실시 형태 1>
도 1 등을 사용하여, 실시 형태 1의 개발 시스템 및 방법 등에 대해서 설명한다.
[화상 검사 시스템과 개발 시스템]
도 1은, 개발 대상 시스템인 화상 검사 시스템(2)과, 실시 형태 1의 개발 시스템(1)의 구성예를 나타낸다. 화상 검사 시스템(2)은, 도 38의 비교예와 마찬가지의 구성을 갖는다. 화상 검사 시스템(2)은, 대상물(20)을 라인 센서나 에어리어 센서 등의 카메라/센서 디바이스(20)에 의해 촬영하고, 촬영된 화상(50)을 입력한다. 화상 검사 시스템(2)은, 입력의 화상(50)에 대해, 예를 들어 카메라 도입 처리(201)를 행하고, 처리 결과로서 카메라 도입 화상(제1 화상)(51)을 얻는다. 화상 검사 시스템(2)은, 카메라 도입 화상(50)에 대해, 예를 들어 2치화 등의 화상 처리(202)를 행하고, 처리 결과로서 결과 화상(제2 화상)(52)을 얻는다. 화상 검사 시스템(2)은, 결과 화상(52)에 대해, 판정 처리 등의 검사 처리(203)를 행하여, 검사 결과 정보, 바꾸어 말하면 판정 결과 정보(53)를 얻는다.
개발 시스템(1)은, 화상 검사 시스템(1)에 대응하는 플로우라인, 예를 들어 카메라 도입 처리(201), 화상 처리(202) 및 검사 처리(203)와 같은 처리 블록의 연결을 포함하는 플로우라인을 개발·제작하는 작업을 지원하는 시스템이다. 개발 시스템(1)은, 화상 검사 시스템(1)의 소프트웨어, 예를 들어 카메라 도입 처리(201)를 구성하는 제1 프로그램, 화상 처리(202)를 구성하는 제2 프로그램 및 검사 처리(203)를 구성하는 제3 프로그램과 같은 처리 프로그램을 개발하는 작업을 지원하는 시스템이다. 개발 시스템(1)은, 유저 U1에 의한 GUI 화면에서의 GUI 조작에 기초하여, 그러한 개발 작업을 지원한다.
개발 시스템(1)은, 적어도, 플로우라인 편집 기능 F1과, 프리뷰 표시 기능 F2를 갖는다.
플로우라인 편집 기능 F1은, GUI 화면에 있어서, 미리 부품으로서 준비된 처리 블록을, 유저가 드래그&드롭 등으로 조작하여, 블록을 서로 연결시킴으로써, 플로우라인을 제작·편집할 수 있는 기능이다.
특히, 이 GUI 화면에서는, 플로우라인 편집 기능 F1에 의해 제작되는 플로우라인과 관계해서, 프리뷰 표시 기능 F2에 의한 프리뷰 화면을 표시 가능하다. 프리뷰 표시 기능 F2는, 프리뷰 화면에서의 플로우라인의 프리뷰 표시를 제어하는 기능이다. 프리뷰 표시 기능 F2는, 플로우라인 편집 기능 F1에 의해 제작 도중의 플로우라인 또는 처리 블록 등을 대상으로 하여, 그것들의 동작 상태나 처리 결과에 관한 프리뷰 표시를 실현한다. 프리뷰 화면에는, 제작 도중의 잠정적인 플로우라인에 관한 동작 상태를 나타내는 화상을 프리뷰 표시할 수 있다.
[개발 시스템]
도 2나 도 3은 실시 형태 1의 개발 시스템(1)의 실장 구성예를 나타낸다. 도 2는 제1 실장예를 나타내고, 도 3은 제2 실장예를 나타낸다. 실시 형태 1에서는, 도 2의 제1 실장예를 기본으로 해서 설명하지만, 변형예로서 도 3의 제2 실장예도 가능하다.
도 2에서는, 실시 형태 1의 개발 시스템(1)은, 주로, 컴퓨터(101)와, 화상 처리 장치(102)가 접속되어 구성된 시스템이다. 컴퓨터(101)는, 예를 들어 1대의 일반적인 PC로 구성할 수 있다. 컴퓨터(101)는, 일반적인 OS나 미들웨어(파일 시스템, Web 서버 등), 통신 인터페이스 등을 구비하고, 소프트웨어로서, 화상 검사 시스템 개발 환경(500)을 구비하고 있다. 이 화상 검사 시스템 개발 환경(500)은, 개발 시스템(1)의 소프트웨어(컴퓨터 프로그램이나 데이터베이스 등을 포함함)에 상당한다. 컴퓨터(101)와 화상 처리 장치(102)는, 예를 들어 케이블 접속으로 LAN에 의해 접속되어 있고, 각각 LAN에 대응한 통신 인터페이스를 구비하고 있다.
또한, 개발 시스템(1)의 실장예로서는, 물론, 1대의 PC에 의한 구성에는 한정되지 않고, 예를 들어 클라이언트·서버 시스템(예를 들어 Web 시스템) 등을 적용해도 된다.
컴퓨터(101)에는, 디스플레이 디바이스로서, 컴퓨터용 영상 디스플레이(103)가, 케이블 접속으로 외부 접속되어 있다. 컴퓨터(101)는, 컴퓨터용 영상 디스플레이(103)에 영상 신호 s1을 송신함으로써, 개발 환경(500)에 의해 생성한 GUI 화면(30)을, 컴퓨터용 영상 디스플레이(103)의 스크린에 표시시킨다.
컴퓨터(101)에는, 그 밖에 도시하지 않지만, 마우스 등의 입력 디바이스가 외부 접속되어 있다. 또한, 컴퓨터용 영상 디스플레이(103)를 터치 패널로 해도 된다.
화상 처리 장치(102)는, 개발 시스템(1)의 소프트웨어(개발 환경(500))에 대한 화상 입력 엔진으로서 기능하는 부분이다. 화상 처리 장치(102)에는, 디지털 신호 출력 장치(105)가 케이블 접속으로 접속되어 있다. 디지털 신호 출력 장치(105)는, 예를 들어 카메라나 센서 디바이스이다. 예를 들어 카메라인 디지털 신호 출력 장치(105)는, 촬영 기능을 구비하고 있고, 도 1에서의 카메라/센서 디바이스(21)에 대응하는 부분으로서 기능한다. 카메라인 디지털 신호 출력 장치(105)는, 촬영한 화상의 화상 신호 s4를, 화상 처리 장치(102)에 송신한다. 화상 처리 장치(102)는, 그 화상 신호 s4에 기초하여, 화상(15)(화상 데이터)을 생성하고, 신호 s3으로서 컴퓨터(101)에 송신한다. 컴퓨터(101)는, 그 화상(15)을 수신하여, 개발 환경(500)에서의 처리 대상 화상으로 한다.
또한, 화상 처리 장치(102)에는, 케이블 접속으로, 보조 기억 장치(106)(예를 들어 USB 메모리)가 접속되어 있다. 화상 처리 장치(102)는, 보조 기억 장치(106)에 대해, 화상 등의 데이터·정보(신호 s6)를 판독 기입할 수 있다. 또한, 화상 처리 장치(102)에는, 케이블 접속으로, 모니터 디스플레이(104)가 접속되어 있다. 모니터 디스플레이(104)는, 화상 처리 장치용 영상 디스플레이 또는 터치 패널이다. 화상 처리 장치(102)는, 디지털 신호 출력 장치(105)에 의해 촬영된 화상 등에 대응하는 영상 신호 s2를 모니터 디스플레이(104)에 송신한다. 모니터 디스플레이(104)는, 그 영상 신호 s2에 기초하여, 스크린에 영상을 표시한다. 모니터 디스플레이(104)나 컴퓨터용 영상 디스플레이(103)가 터치 패널일 경우에는, 유저는, 그 터치 패널의 화면에 대한 터치 조작에 의해, 컴퓨터(101)나 화상 처리 장치(102)에 지시 등을 입력할 수 있다.
컴퓨터(101)의 개발 환경(500)은, 도 1의 플로우라인 편집 기능 F1이나 프리뷰 표시 기능 F2 등을 실장하고 있고, 제작되는 화상 검사 시스템(2)의 플로우라인 데이터 FD 등을 보유한다.
도 3에서는, 실시 형태 1의 개발 시스템(1)은, 주로, 1대의 스탠드 얼론의 화상 처리 장치(102)(102B)에 의해 구성되어 있으며, 예를 들어 비디오 카메라 장치로서 구성된다. 이 화상 처리 장치(102)(102B)에는, 도 2에서의 컴퓨터(101)의 화상 검사 시스템 개발 환경(500)이 통합해서 실장되어 있다. 도 3의 실장예에서는, 도 2에서의 컴퓨터(101) 등을 생략할 수 있다. 또한, 화상 처리 장치(102B)에는, 케이블 접속의 LAN을 통해서, 보조 기억 장치(107)가 접속되어도 된다. 화상 처리 장치(102B)는, 촬영된 화상(15) 등의 데이터를, 신호 s3으로서 보조 기억 장치(107)에 송신하여, 보조 기억 장치(107)에 저장해도 된다.
[컴퓨터 시스템]
도 4는 개발 시스템(1)(예를 들어 도 2)의 컴퓨터 시스템(1)으로서의 구성예를 나타낸다. 도 4에서는, 컴퓨터(101)와, 컴퓨터(101)에 외부 접속되는 입력 디바이스(1005) 및 출력 디바이스(1006)와, 통신망(1020)(예를 들어 LAN)을 통해서 접속되는 클라이언트 단말 장치(1030)를 갖는 경우를 도시하고 있다. 클라이언트 단말 장치(1030)는, 클라이언트 서버 시스템의 형태로 하는 경우에 사용하지만, 필수는 아니다.
컴퓨터(101)는, 프로세서(1001), 메모리(1002), 통신 인터페이스 장치(1003), 입출력 인터페이스 장치(1004) 등을 구비하고, 그러한 구성 요소가 버스를 통해서 서로 접속되어 있다. 입출력 인터페이스 장치(1004)에는 입력 디바이스(1005)나 출력 디바이스(1006)가 외부 접속되어 있다. 컴퓨터(101)에 입력 디바이스(1005) 등이 내장된 형태로 해도 된다. 입력 디바이스(1005)의 예는, 마우스, 키보드, 마이크 등이다. 출력 디바이스(1006)의 예는, 디스플레이, 프린터, 스피커 등이다. 통신 인터페이스 장치(1003)는, 도 2의 화상 처리 장치(102)와의 통신 인터페이스나, LAN(1020)에 대한 통신 인터페이스가 실장되어 있다.
프로세서(1001)는, 메모리(1002)에 읽어내진 프로그램에 따른 처리를 실행한다. 이에 의해, 소정의 기능(상술한 플로우라인 편집 기능 F1 등)이 실행 모듈로서 실현된다.
메모리(1002)에는, 제어 프로그램(1011), 설정 정보(1012), DB(1013), 플로우라인 구성 정보(1014), GUI 화면 데이터(1015), 화상 데이터(1016) 등이 기억되어 있다. 메모리(1002)는, 불휘발성 기억 장치 등으로 구성할 수 있지만, 이것에 한정되지 않는다. 컴퓨터(101)의 외부에 있는 메모리 자원(예를 들어 DB 서버)이 이용되어도 된다.
DB(1013)에는, 도 2의 개발 환경(500)의 소프트웨어를 구성하는 데이터베이스로서, 플로우라인을 구성하기 위한 부품이 되는 처리 블록 등의 데이터·정보가 포함되어 있다. 플로우라인을 구성하는 처리 블록은, 실체로서는, 프로그램 모듈이나 관련된 데이터·정보(예를 들어 파일, 테이블, 리스트 등을 포함함)이다.
플로우라인 구성 정보(1014)는, 화상 검사 시스템(2)의 플로우라인의 구성 정보이며, 도 2에서의 플로우라인의 데이터 FD와 대응하고 있다. 플로우라인 구성 정보(1014)는, 유저가 제작해서 보존한 플로우라인의 데이터에 상당한다. 플로우라인 구성 정보(1014)는, 플로우라인에서의 처리 블록 등의 구성이나 설정 상태를 나타내고 있다. 개발 시스템(1)은, 플로우라인 구성 정보(1014)를 읽어냄으로써, 플로우라인의 재현이 가능하다.
GUI 화면 데이터(1015)는, 유저에 대해 상술한 GUI 화면(30)을 제공하기 위한 데이터이며, 소정의 GUI를 구성하기 위한 GUI 부품 데이터나, GUI 화면(30) 내에 표시되는 화상 등의 데이터를 포함하고 있다.
화상 데이터(1016)는, 도 1에서의 카메라(21), 도 2에서의 화상 처리 장치(102) 및 디지털 신호 출력 장치(105)로부터 얻어지는 화상의 데이터나, 개발 환경(500)에서의 플로우라인의 제작 중에 처리 과정이나 처리 결과로서 생성되는 화상의 데이터이다. 화상 데이터(1016)는, 화상마다 속성 정보를 포함한 화상 파일 등의 데이터여도 된다.
그 밖에, 메모리(1002) 등의 메모리 자원에는, 개발 시스템(1)에서의 처리 과정에서 발생하는 데이터·정보가 적절하게 저장된다. 각 데이터·정보는, 도 2 등에 나타낸 보조 기억 장치 등에 보존되어도 된다.
또한, 유저 U1은, 클라이언트 단말 장치(1030)를 이용하여, 원격으로, 서버로서의 컴퓨터 시스템(1)에 액세스하여, 개발 시스템(1)의 기능을 이용해도 된다. 또한, 개발 시스템(1)을, 클라이언트 서버 시스템의 형태로 할 경우, 예를 들어 이하와 같은 동작이 행해진다. 유저는, 클라이언트 단말 장치(1030)를 조작하여, 클라이언트 단말 장치(1030)는, 개발 시스템(1)의 컴퓨터(101)에 액세스해서 요구를 송신한다. 컴퓨터(101)는, 요구에 대해, 웹페이지 등에 의한 응답을, 클라이언트 단말 장치(1030)에 송신한다. 클라이언트 단말 장치(1030)는, 응답을 수신하여, 자신의 디스플레이에 상술한 GUI 화면(30) 등을 표시한다. 유저는, 그 GUI 화면(30)을 보고, 적절하게 지시나 설정 등을 입력한다. 클라이언트 단말 장치(1030)는, 그 지시 등의 정보를 컴퓨터(101)에 송신한다. 컴퓨터(101)는, 그 지시 등에 따라, 개발 환경(500)의 기능에 의한 처리를 실행하고, 처리 결과(예를 들어 플로우라인이나 프리뷰 화상)를 기억한다. 컴퓨터(101)는, 처리 결과 정보 등을, 클라이언트 단말 장치(1030)에 송신한다. 클라이언트 단말 장치(1030)는, 처리 결과 정보 등이 표시되는 GUI 화면(30)을 표시한다. 유저는, GUI 화면(30)에서 처리 결과 정보 등을 보고 확인할 수 있다.
[개발 시스템의 GUI 화면]
도 5는 개발 시스템(1)의 개발 환경(500)에 의한 GUI의 간략 구성으로서, GUI 화면(30)의 예를 나타낸다. 도 5의 GUI 화면(30)은, 블록 선택부(31)(바꾸어 말하면 부품란)와, 블록 배치부(32)(바꾸어 말하면 플로우라인란)와, 프리뷰 표시부(33)(바꾸어 말하면 프리뷰란)를 갖는다. GUI 화면(30)은, 그 밖에, 도시하지 않지만, 메뉴, 스크롤바, 커맨드 버튼과 같은, 일반적인 GUI 부품도 구비한다.
유저 U1은, 마우스나 키보드 등의 입력 디바이스를 조작하여, GUI 화면(30)에서 커서(39) 등을 조작한다. 유저 U1은, 블록 선택부(31)에 부품으로서 마련되어 있는 복수의 처리 블록(BL)으로부터 원하는 처리 블록(BL)을 선택하고, 예를 들어 드래그&드롭에 의해, 그 처리 블록(BL)을, 블록 배치부(32) 내로 이동해서 배치한다. 이에 의해, 유저 U1은, 블록 배치부(32) 내에서, 처리 블록(BL)끼리를 서로 연결시킴으로써, 원하는 플로우라인(FL)을 제작한다.
본 예에서는, 블록 선택부(31)에, 처리 블록(BL)으로서, 「카메라 도입」 블록 b1, 「판정」 블록 b2, 「처리 A」 블록, 「처리 B」 블록, 「처리 C」 블록 등이 있다. 「처리 A」 등은, 예를 들어 각종 화상 처리인데, 기호화해서 모식으로 도시하고 있다. 본 예에서는, 유저 U1이, 커서(39)로, 블록 선택부(31) 내의 「처리 C」 블록을 선택하여, 드래그&드롭으로, 블록 배치부(32) 내의 「처리 B」 블록의 다음(바꾸어 말하면 뒤, 우측)에 서로 연결시키도록 해서 배치한 경우를 나타내고 있다.
플로우라인(FL)은, 예를 들어 처리 블록(BL)을 라인으로 연결시킨 양태로 구성 및 표시되어 있다. 본 예에서는, 블록 배치부(32)에 배치되어 있는, 제작 도중인 잠정적인 플로우라인(FL)으로서, 좌측부터 순서대로, 처리 블록(BL)으로서, 「카메라 도입」 블록 b1, 「처리 A」 블록, 「처리 B」 블록 및 「처리 C」 블록이 배치되어 있다. 잠정적으로 최후미의 블록이 「처리 C」 블록이며, 그 「처리 C」 블록의 뒤에는 블록이 배치되어 있지 않다. 그러한 다음 블록이 배치되어 있지 않은 상태, 바꾸어 말하면, 다음 블록을 연결시킬 수 있는 상태는, 파선 프레임으로 나타내는 공백 블록 BS로서 표시되어 있다. 유저 U1이 플로우라인(FL)에 다음 블록을 연결시키고자 하는 경우에는, 그 공백 블록 BS의 위치에 다음 블록을 배치하면 된다.
변형예에서는, 공백 블록 BS를 마련하지 않고, 블록 배치부(32) 내에 다음 처리 블록(BL)이 이동된 경우에, 플로우라인(FL)의 최후미에 그 처리 블록(BL)을 연결시키도록 해도 된다.
플로우라인 편집 기능 F1에서는, 상세를 후술하지만, 유저 U1은, 블록 선택부(31)의 처리 블록(BL)을 사용하여, 블록 배치부(32)에서, 처리 블록(BL)의 추가, 삭제, 치환 등을 행함으로써, 원하는 구성의 플로우라인(FL)을 제작할 수 있다.
또한, 유저 U1은, 블록 배치부(32)에 배치·표시되어 있는, 제작 중인 잠정적인 플로우라인(FL)에 대해서, 프리뷰 표시 기능 F2를 사용하여, 프리뷰 표시부(33)에 동작 상태를 프리뷰 표시시킬 수 있다. 유저는, 블록 배치부(32)의 플로우라인(FL)에 대해, 소정의 프리뷰 실행 조작을 한다. 이 조작에 기초하여, 개발 시스템(1)은, 프리뷰 표시부(33)에, 플로우라인(FL)의 동작 상태의 프리뷰 화상을 표시한다. 프리뷰 표시되는 플로우라인(FL)의 동작 상태는, 유저 U1의 조작에 의해 지정된 대상이나 범위에 관한 동작 상태이다. 대상이나 범위는, 플로우라인(FL) 중 적어도 하나의 처리 블록이며, 상세는 후술한다.
또한, 도 5에서는, 플로우라인(FL)의 방향을 좌측에서 우측으로의 방향으로서 배치·표시하고 있지만, 물론 이것에 한정되지 않고, 예를 들어 위에서 아래로의 방향 등으로 해도 된다. 또한, 도 5에서는, GUI 화면(30) 내에서, 위에서부터 순서대로, 블록 선택부(31), 블록 배치부(32) 및 프리뷰 표시부(33)가 배치되어 있지만, 이것에 한정되지 않는다. GUI 화면(30) 내에서, 유저 U1이 조작하기 쉬운 위치나 크기로 각 란을 배치 가능하다. 또한, 각 란은, 독립된 윈도우 등의 양태로 해도 되고, 상시 표시에 한정되지 않고, 조작 등에 따라서 표시되는 양태로 해도 된다.
또한, 블록 선택부(31)는, 복수의 처리 블록(BL)을, 카테고리나 종류, 계층 등에 따라 정리해서 배치해도 된다. 카테고리나 종류의 예는, 「입출력」, 「화상 처리」 등이다. 계층의 예는, 「화상 처리」 카테고리 아래에, 서브 카테고리로서, 「2치화」, 「화상 형상 변환」, 「필터링」, 「특징량 추출」, 「산술 연산」, 「논리 연산」, 「회전」, 「확대·축소」, 「도형 묘화」, 「패턴 매칭/템플릿 매칭」, 「치수 계측」, 「물체 검지」 등이 마련된다. 또한, 서브 카테고리 아래에 계층이 더 마련되어도 된다.
또한, 각종 처리 블록(BL)은, 식별하기 쉽도록, 색이나 형태 등의 양태를 다르게 해서 마련해도 된다. 또한, 블록 선택부(31)는, 검색란을 마련하여, 처리 블록(BL)의 검색을 가능하게 해도 된다. 또한, 블록 선택부(31)는, 후술하지만, 입력 화상 블록을 부품으로서 마련해도 된다. 이 경우의 입력 화상 블록이란, 예를 들어 「카메라 도입」 블록 b1 등의 처리 블록(BL)에 입력하는 화상을 지정하는 블록이다.
유저 U1은, 블록 배치부(32)에서 제작한 플로우라인(FL)을 보존하고자 하는 경우, 소정의 보존 조작(예를 들어 플로우라인 보존 커맨드 입력)을 행한다. 이 조작에 따라, 개발 시스템(1)은, 블록 배치부(32)의 그때의 플로우라인(FL)의 구성을, 예를 들어 파일 등의 데이터(도 2에서의 플로우라인의 데이터 FD, 도 4에서의 플로우라인 구성 정보(1014))로서, 메모리 자원에 보존한다.
또한, GUI 화면(30)에서는, 보존 완료인 플로우라인(FL)의 데이터로부터 편집 대상의 플로우라인(FL)을 선택하는 GUI(예를 들어 일반적인 파일 선택의 다이알로그 등)를 마련한다. 혹은, 후술하지만, 전용의 플로우라인 확인 화면을 마련한다. 유저 U1은, 그러한 GUI나 화면에서, 보존 완료인 플로우라인(FL)의 데이터로부터, 편집 대상의 플로우라인(FL)을 선택한다. 개발 시스템(1)은, 선택된 플로우라인(FL)을, 블록 배치부(32)에 배치해서 재현한다. 이에 의해, 유저 U1은, 그 플로우라인(FL)을 다시 편집할 수 있다. 또한, GUI 화면(30)에서는, 후술하지만, 복수의 플로우라인(FL)을 제작·편집 가능하게 해도 된다.
[개발 시스템의 처리 플로]
도 6은 개발 시스템(1)의 주된 처리 플로를 나타내며, 스텝 S1 내지 S5를 갖는다. 스텝 S1에서, 개발 시스템(1)은, 유저 U1의 조작에 기초하여, GUI 화면(30)(예를 들어 도 5)을 표시한다. 바꾸어 말하면, 유저 U1은, 개발 시스템(1)의 애플리케이션을 기동한다. 또한, GUI 화면(30)에서는, 유저 U1에 의한 설정, 후술하는 모드의 선택, 처리 대상 파일의 선택 등이 가능하다.
스텝 S2에서, 개발 시스템(1)은, GUI 화면(30)에 대한 유저 U1의 조작에 기초하여, 블록 선택부(31)로부터 처리 블록(BL)을 선택하고, 선택된 처리 블록(BL)을 블록 배치부(32)에서 배치함으로써, 플로우라인(FL)을 제작·편집한다. 개발 시스템(1)은, 조작에 따른 플로우라인(FL)의 구성 상태를 데이터로서 갱신·보유한다.
스텝 S3에서, 개발 시스템(1)은, GUI 화면(30)에 대한 유저 U1의 조작, 특히 프리뷰 실행 조작에 기초하여, 제작 중인 잠정적인 플로우라인(FL)(특히 지정된 대상·범위)의 동작 상태에 대해서, 프리뷰 표시부(33)에 프리뷰 표시한다.
스텝 S4에서, 유저 U1은, 플로우라인(FL)이 완성되었는지 여부, 변경이 필요한지 여부 등을 확인하여, 완성된 플로우라인(FL)을 보존해서 종료할지, 또는 제작 중인 플로우라인(FL)을 보존해서 종료할지를 확인한다. 스텝 S4에서 보존한다고 했을 경우(Y)에는, 스텝 S5에서, 개발 시스템(1)은, 그때의 플로우라인(FL)의 구성 상태를, 파일 등의 데이터로서 보존하고, 개발 시스템(1)의 애플리케이션을 종료한다. 스텝 S4에서 보존하지 않는다고 했을 경우(N)에는, 스텝 S2로 돌아가서, 유저 U1은 개발 작업을 마찬가지로 반복한다.
스텝 S4의 예로서는, 유저 U1이 GUI 화면(30)에서 소정의 보존 조작(예를 들어 플로우라인 보존 커맨드 입력)을 행하고, 개발 시스템(1)은, 「편집 중인 플로우라인을 보존합니까?」와 같은 확인을 표시하고, 유저 U1이 「OK(보존)」 버튼을 눌러, 개발 시스템(1)이 그때의 플로우라인(FL)을 데이터로서 보존한다. 또한, 유저 설정에 따라, 소정의 타이밍에 자동적으로 플로우라인(FL)의 데이터를 보존하는 것도 가능하다.
[제1 방식: 플로우라인 편집 기능]
실시 형태 1의 개발 시스템(1)은, 제1 방식으로서, 플로우라인 편집 기능 F1을 갖는다. 플로우라인 편집 기능 F1은, GUI 화면(30)(도 5)에서, 블록 선택부(31)에 미리 준비되어 있는 처리 블록(BL)을, 유저 U1이 GUI 조작(예를 들어 드래그&드롭 등)으로 서로 연결시켜 블록 배치부(32)에 배치함으로써, 화상 검사 시스템(2)의 플로우라인(FL)을 자유롭게 편집·제작할 수 있는 기능이다.
[플로우라인의 제작·편집(1)]
도 5에서의 플로우라인(FL)의 제작·편집에 대해서 보충한다. 도 7 내지 도 10은, 도 5와 같은 플로우라인(FL)을 제작·편집할 때의 상세한 동작이나 GUI의 예를 나타낸다. 도 7은, 플로우라인(FL)을 제작할 때, 블록 배치부(32)에 순차적으로 처리 블록(BL)을 배치하는 흐름을 나타낸다.
도 7의 (A)는, 블록 배치부(32)의 초기 상태로서 처리 블록(BL)이 배치되어 있지 않은 상태를 나타낸다. 이때의 블록 배치부(32) 내에 공백 블록 BS가 표시되어도 된다. 공백 블록 BS는, 최초 또는 다음의 처리 블록(BL)을 배치하기 위한 기준이 되며, 예를 들어 파선 프레임의 직사각형으로서 도시하고 있다. 예를 들어 공백 블록 BS의 위치에 처리 블록(BL)이 배치되었을 경우에만 플로우라인(FL)에 그 처리 블록(BL)을 추가할 수 있는 GUI로 해도 된다. 공백 블록 BS를 사용하지 않는 형태의 경우, 블록 배치부(32) 내의 기존의 처리 블록(BL) 이외의 위치에 처리 블록(BL)이 배치되었을 경우에, 플로우라인(FL)에 그 처리 블록을 추가할 수 있는 GUI로 해도 된다.
(A)에서, 유저 U1은, 블록 선택부(31)로부터 선택한 처리 블록(BL), 예를 들어 「카메라 도입」 블록 b1을, 블록 배치부(32) 내의 공백 블록 BS의 위치에 배치한다. 이에 의해, 플로우라인(FL)의 1번째의 블록으로서 「카메라 도입」 블록 b1이 배치된다.
(B)는, 「카메라 도입」 블록 b1이 배치된 상태이다. 공백 블록 BS는, 배치된 「카메라 도입」 블록 b1의 뒤로 이동해서 표시된다. 유저 U1은, 블록 선택부(31)로부터 선택한 다음의 처리 블록(BL), 예를 들어 「처리 A」 블록을, 블록 배치부(32) 내의 예를 들어 공백 블록 BS의 위치에 배치한다.
(C)는, 「카메라 도입」 블록 b1의 뒤에 「처리 A」 블록이 배치된 상태이다. 공백 블록 BS는, 배치된 「처리 A」 블록의 뒤로 이동해서 표시된다. 유저 U1은, 블록 선택부(31)로부터 선택한 다음의 처리 블록(BL), 예를 들어 「처리 B」 블록을, 블록 배치부(32) 내의 예를 들어 공백 블록 BS의 위치에 배치한다.
(D)는, 「처리 A」 블록의 뒤에 「처리 B」 블록이 배치된 상태이다. 공백 블록 BS는, 배치된 「처리 B」 블록의 뒤로 이동해서 표시된다. 유저 U1은, 블록 선택부(31)로부터 선택한 다음의 처리 블록(BL), 예를 들어 「처리 C」 블록을, 블록 배치부(32) 내의 예를 들어 공백 블록 BS의 위치에 배치한다.
이와 같이 하여, 도 5와 같은 플로우라인(FL)을 제작할 수 있다. 블록 추가의 조작은, 상기 예에 한정되지 않고 가능하다. 예를 들어, 유저 U1이 블록 선택부(31)에서 원하는 처리 블록(BL)을 선택하고, 그 블록에 대해, 예를 들어 우 클릭 등의 조작으로, 블록 추가 커맨드를 입력한다. 이 조작에 따라, 개발 시스템(1)은, 그 처리 블록(BL)을, 블록 배치부(32) 내의 플로우라인(FL)의 최후미에 추가하도록 배치한다.
[플로우라인의 제작·편집(2)]
또한, 도 8은, 플로우라인(FL) 중의 처리 블록(BL)을 삭제할 경우의 동작예를 나타낸다. 플로우라인(FL) 중의 원하는 처리 블록(BL)을 삭제하고자 하는 경우, 유저 U1은, 그 삭제하고자 하는 처리 블록(BL)을 선택하여, 소정의 삭제 조작을 한다. 이 조작에 따라, 개발 시스템(1)은, 블록 배치부(32)의 플로우라인(FL) 상의 그 처리 블록(BL)을 삭제한다.
도 8의 (A)는, 블록 배치부(32)에 잠정적인 플로우라인(FL)으로서 「카메라 도입」 블록 b1부터 「처리 C」 블록까지가 배치되어 있는 상태를 나타낸다. (B)는, 유저 U1이 플로우라인(FL) 중의 예를 들어 「처리 B」 블록을 삭제할 경우에, 유저 U1은, 커서(39)로 「처리 B」 블록을 선택하여, 소정의 삭제 조작을 행한다. 소정의 삭제 조작은, 예를 들어 도시와 같은 삭제 커맨드 입력으로 해도 된다. 예를 들어 우 클릭에 따라서 후보 커맨드가 표시되고, 후보 커맨드로부터 삭제 커맨드가 지정된다. 소정의 삭제 조작의 다른 예로서는, 유저 U1이 선택한 처리 블록(BL)을 블록 배치부(32)의 밖으로 드래그&드롭하는 조작으로 해도 된다. 예를 들어 블록 선택부(31)로 되돌리는 조작이어도 되고, 소정의 휴지통란에 배치하는 조작이어도 된다.
(C)는, (B)의 삭제 조작 후의 플로우라인(FL)의 상태를 나타낸다. 이 상태에서는, 삭제된 「처리 B」 블록의 앞에 있는 「처리 A」 블록과, 삭제된 「처리 B」 블록의 뒤에 있는 「처리 C」 블록이, 라인으로 접속되어 있다.
또한, 개발 시스템(1)은, 블록 배치부(32)의 플로우라인(FL)에 대한 유저 U1에 의한 조작 등의 이력을 기억해 둠으로써, Undo(되돌리기) 조작도 가능하다. 예를 들어, (B)에서 (C)로의 블록 삭제를 원상태로 되돌리고자 하는 경우, 유저 U1은 소정의 Undo 조작(예를 들어 Undo 커맨드 입력)을 행한다. 이에 의해, (C)로부터 (B)의 상태로 되돌릴 수 있다.
또한, 도 9는, 블록 추가 조작의 베리에이션으로서, 유저 U1이 플로우라인(FL)의 도중에 처리 블록(BL)을 삽입하는 경우를 나타낸다. 도 9의 (A)에서는, 플로우라인(FL)은, 「카메라 도입」 블록 b1, 「처리 A」 블록, 「처리 B」 블록이 배치되어 있는 상태이다. 이 상태에 대해, 유저 U1은, 예를 들어 「처리 A」와 「처리 B」의 사이에 「처리 D」를 삽입하고자 하는 경우, (B)와 같이, 블록 선택부(31)로부터 「처리 D」 블록을 선택하여, 드래그&드롭으로, 블록 배치부(32) 내의 「처리 A」 블록과 「처리 B」 블록의 사이의 라인 부근에 배치한다. 이 조작에 따라, 개발 시스템(1)은, (C)와 같이, 플로우라인(FL)에 있어서, 「처리 A」 블록과 「처리 B」 블록의 사이에 「처리 D」 블록을 삽입하도록 추가하여, 각각 라인으로 접속한 상태로 한다.
또한, 개발 시스템(1)은, 유저 U1이 블록 선택부(31)에서 선택한 처리 블록(BL)마다, 블록 배치부(32)의 플로우라인(FL) 중에서, 그 처리 블록(BL)의 배치가 가능한 개소를, 이해하기 쉽도록, 소정의 양태로 표시해도 된다. 예를 들어, (B)에서 「처리 D」 블록이 선택된 경우에, 그 「처리 D」 블록의 배치가 가능한 개소로서, 「처리 B」 블록의 뒤의 공백 블록 BS의 개소뿐만 아니라, 「처리 A」 블록과 「처리 B」 블록의 사이의 라인의 개소가 있다. 그 경우에, 개발 시스템(1)은, 그러한 배치 가능한 개소를, 소정의 색의 영역 등의 양태로 표시한다. 배치 가능한 개소는, 후술하는 블록 치환 개소를 포함해도 된다.
[플로우라인의 제작·편집(3)]
또한, 도 10은, 플로우라인(FL) 중의 처리 블록(BL)을 다른 처리 블록(BL)으로 치환하는 경우의 동작예를 나타낸다. 도 10의 (A)에서는, 블록 배치부(32)에서, 치환 전의 상태의 플로우라인(FL)의 예로서, 「처리 C」 블록까지가 배치되어 있다. 이 상태에서, 유저 U1은, 「처리 A」 블록을, 「처리 D」 블록으로 치환하고자 한다고 하자. 유저 U1은, 블록 선택부(31)로부터 치환 후의 대상의 「처리 D」 블록을 선택하여, 드래그&드롭으로, 블록 배치부(32) 내의 치환 대상(바꾸어 말하면 치환 전)의 「처리 A」 블록의 위치에 배치한다. 이 조작에 따라, 개발 시스템(1)은, (B)와 같이, 「처리 A」 블록을 「처리 D」 블록으로 치환한다. 또한, 개발 시스템(1)은, (A)의 조작 시에는, 유저 U1이 선택한 처리 블록(BL)에 따라, 치환이 가능한 처리 블록(BL)의 개소를, 소정의 색 등의 양태로 표시해도 된다.
또한, 다른 치환예로서, (B)의 상태에서, 유저 U1이, 「처리 D」 블록과 「처리 B」 블록의 배치를 바꾸고자 한다고 하자. 그 경우, 유저 U1은, (C)와 같이, 「처리 D」 블록을 선택하여, 드래그&드롭 등의 조작으로, 「처리 B」 블록의 위치로 이동시킨다. 그 조작에 따라, 개발 시스템(1)은, (D)와 같이, 「처리 B」 블록을 「처리 D」 블록으로 치환하고, 이동원의 「처리 D」 블록을 「처리 B」 블록으로 치환한다.
[제2 방식: 프리뷰 표시 기능]
실시 형태 1의 개발 시스템(1)은, 제2 방식으로서, 프리뷰 표시 기능 F2를 갖는다. 프리뷰 표시 기능 F2는, 제1 방식의 플로우라인 편집 기능 F1에 의해 제작·편집한 플로우라인(FL)에 관한 동작 상태의 프리뷰를 프리뷰 표시부(33)에 표시하는 기능이다. 이 프리뷰 표시 기능 F2는, 블록 배치부(32)의 잠정적인 플로우라인(FL)에서의, 지정된 대상·범위(예를 들어 지정된 처리 블록까지의 범위)의 동작 상태를 나타내는 프리뷰 화상을 표시한다. 그 프리뷰 화상은, 예를 들어 플로우라인(FL)의 선두의 처리 블록부터 지정된 처리 블록까지의 범위에서의, 각 블록의 뒤의 포인트(즉 출력값)마다의 처리 결과 화상이다.
프리뷰 표시 기능 F2에 의해, 유저 U1은, 잠정적인 플로우라인(FL)의 동작 상태를 적절하게 프리뷰로 확인할 수 있으므로, 플로우라인(FL)의 동작 확인이나 디버그 등이 보다 용이하게 가능해진다. 프리뷰 표시 기능 F1은, 유저 U1에 의한 개발 작업을 어시스트할 수 있는, 후술하는 여러 종류의 프리뷰 표시 기능을 구비하고 있다.
도 5로 돌아가서, GUI 화면(30)에 있어서, 예를 들어 유저 U1이 특히 아무것도 조작하지 않은 경우에, 소정의 프리뷰 실행 조작(예를 들어 프리뷰 표시 커맨드 입력)이 이루어졌을 경우, 혹은 제어 상의 프리뷰 표시 조건이 충족되었을 경우, 개발 시스템(1)은, 프리뷰 표시부(33)에, 그때의 잠정적인 플로우라인(FL)의 동작 상태에 관한 프리뷰 화상을 표시한다. 그때의 프리뷰 표시 대상·범위는, 다양하게 규정 가능하지만, 일례로서는, 그때의 플로우라인(FL)의 선두부터 최후미까지의 전체 블록으로 된다. 그 경우에, 프리뷰 표시부(33)에 표시되는 프리뷰 화상은, 각 블록의 처리 결과 화상을 시계열 상에서 연속적으로 표시하는 동화상이나 애니메이션으로 된다.
또한, 유저 U1이 블록 배치부(32)에서 원하는 처리 블록(BL)을 지정하여 프리뷰 실행 조작을 한 경우, 프리뷰 표시 대상·범위는, 일례로서, 그때의 플로우라인의 선두부터 지정된 처리 블록까지의 범위로 된다. 혹은, 다른 실시예에서는, 유저 U1이 블록 배치부(32)에서 원하는 처리 블록(BL)을 지정해서 프리뷰 실행 조작을 한 경우, 프리뷰 표시 대상·범위는, 일례로서, 그 지정된 처리 블록만으로 된다.
소정의 프리뷰 실행 조작은, 다양하게 규정할 수 있지만, 예를 들어 이하를 들 수 있다. 프리뷰 실행 조작의 일례는, 블록 배치부(32)에서의 공란 또는 원하는 처리 블록의 더블 클릭 등의 특정 조작이다. 프리뷰 실행 조작의 다른 예는, 프리뷰 표시 커맨드 입력이다. 예를 들어, 유저 U1이 우 클릭 등으로 후보 커맨드로부터 프리뷰 표시 커맨드를 선택해서 입력할 수 있다. 또한 예를 들어, GUI 화면(30) 내의 프리뷰 표시 버튼을 누르는 것이어도 된다. 프리뷰 실행 조작의 다른 예는, 프리뷰 표시부(33)의 영역에 대한 더블 클릭 등의 조작이어도 된다. 다른 예는, 유저 U1이 블록 배치부(32)에서 원하는 블록을 선택하여, 드래그&드롭으로 프리뷰 표시부(33)에 배치하는 것이도 된다.
프리뷰 실행 조작으로서, 특정 처리 블록(BL)의 지정·선택이 없을 경우에는, 개발 시스템(1)은, 프리뷰의 대상·범위를, 잠정적인 플로우라인(FL) 전부(선두부터 최후미까지)로 해도 된다. 또한, 프리뷰 실행 조작으로서, 특정 처리 블록(BL)의 지정·선택이 있을 경우에는, 개발 시스템(1)은, 프리뷰의 대상·범위를, 잠정적인 플로우라인(FL) 중, 지정된 처리 블록을 포함하는 대상·범위(예를 들어 선두부터 지정된 블록까지의 범위)로서 결정해도 된다.
이러한 GUI, 조작 및 프리뷰 표시 대상·범위 등에 관한 규정은, 미리 개발 시스템(1)의 소프트웨어에 실장되어, 각 기능에 따라 규정할 수 있다. 또한, 그것들은, 후술하는 모드나, 유저 설정에 따라, 선택·전환을 가능하게 해도 된다.
[프리뷰 표시(1)]
도 11은 프리뷰 표시 기능 F1에 관한 동작예를 나타낸다. (A)는, 프리뷰 표시의 제1예, (B)는, 제2예를 나타낸다. (A)에서, 블록 배치부(32)에는, 잠정적인 플로우라인(FL)으로서, 「카메라 도입」 블록 b1부터 「처리 C」 블록까지가 배치되어 있다. 제1예에서는, 이때의 플로우라인(FL)에 있어서, 유저 U1은, 원하는 처리 블록(BL), 예를 들어 「카메라 도입」 블록 b1(혹은 그 블록의 직후 라인 부분)을 선택하여, 소정의 프리뷰 실행 조작을 한다. 개발 시스템(1)은, 그 조작에 따라, 프리뷰 표시부(33)에, 그때의 플로우라인(FL)에서의 선두부터 선택된 처리 블록(BL)까지의 처리 결과의 화상을 프리뷰 표시한다. (A)의 제1예에서는, 범위로서 「카메라 도입」 블록 b1만이 되고, 「카메라 도입」 블록 b1의 출력인 처리 결과의 화상이 대상으로 된다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역에, 「카메라 도입」 블록 b1의 출력인 처리 결과의 화상(도 1에서의 카메라 도입 화상(51)에 상당함)을, 프리뷰 화상(1101)으로서 표시한다.
(B)의 제2예에서는, 유저 U1은, 블록 배치부(32)에서의 「처리 A」 블록(혹은 그 블록의 직후 라인 부분)을 선택하여, 소정의 프리뷰 실행 조작을 한다. 개발 시스템(1)은, 그 조작에 따라, 프리뷰의 대상·범위를, 플로우라인(FL)에서의 선두의 「카메라 도입」 블록 b1부터, 선택된 「처리 A」 블록까지의 범위에서의 각 블록의 처리 결과의 화상으로 한다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역에, 「카메라 도입」 블록 b1의 처리 결과 화상 및 「처리 A」 블록의 처리 결과 화상(그것들의 동화상)을, 프리뷰 화상(1102)으로서 표시한다.
「처리 A」 블록의 처리 결과 화상은, 「카메라 도입」 블록 b1의 출력인 카메라 도입 화상을 「처리 A」 블록에 입력해서 처리한 결과의 화상이다. 예를 들어, 「처리 A」 블록이 2치화의 화상 처리일 경우에는, 2치화 후의 화상(도 1에서의 결과 화상(52)에 상당함)으로 된다.
마찬가지로, 도시하지 않지만, 유저 U1이, 플로우라인(FL) 상의 원하는 처리 블록(BL)을 선택해서 프리뷰 실행 조작을 함으로써, 선택한 블록까지의 처리 결과를 프리뷰 표시할 수 있다.
상기 예에서는, 프리뷰의 대상·범위를, 플로우라인(FL)의 선두 블록부터 지정된 블록까지로 하였다. 이 경우, 각 블록의 처리 결과 화상이 프리뷰 표시 대상으로 되고, 프리뷰 표시부(33)에서는, 복수의 처리 결과 화상이, 시계열 상에서의 동화상이나 애니메이션 등의 영상으로서 프리뷰 표시된다(후술하는 도 15).
또한, 후술하지만, 프리뷰 표시 기능 F2의 규정에 따라서는, 프리뷰의 대상·범위를, 유저 U1이 선택·지정한 1개의 처리 블록만으로 할 수도 있다.
[카메라 도입 블록에 대해서]
「카메라 도입」 블록 b1의 입출력 등에 대해서 보충한다. 개발 시스템(1)은, 화상 검사 시스템(2)의 카메라/센서 디바이스(21)(도 1) 또는 개발 시스템(1)의 카메라/센서 디바이스(도 2에서의 디지털 신호 출력 장치(105))에 의해 실시간으로 촬상·입력되는 화상·영상을 갖는다. 이것은, 도 1에서의 카메라 도입 처리(201)의 입력 화상(50), 도 2에서의 화상(15)에 상당한다. 이러한 화상(50)이, 도 5의 플로우라인(FL) 상의 「카메라 도입」 블록 b1에 입력되는 화상(입력 화상이나 처리 대상 화상이라고 기재하는 경우도 있음)이다. 「카메라 도입」 블록 b1은, 바꾸어 말하면 「화상 입력」 블록이다. 「카메라 도입」 블록 b1은, 이 입력 화상에 대해 소정의 카메라 도입 처리를 행한 결과의 화상(도 1에서의 카메라 도입 화상(51))을 출력한다. 이 카메라 도입 처리는, 예를 들어 카메라/센서 디바이스(21)에 따른 화상(50)의 신호로부터, 소정의 촬상 주기 등(후술하는 내부 설정)에 의해 샘플링하여, 화소값을 갖는 화상 데이터로 변환하는 처리이다.
「카메라 도입」 블록 b1에의 입력 화상은, 실제 카메라에 의한 실시간으로의 촬영 영상에 한정되지 않고, 다른 종류의 화상으로 할 수도 있다. 다른 종류의 화상 예는, 사업자 또는 유저 U1이 미리 임의로 제작·설정·지정한 화상 데이터를 들 수 있다.
[프리뷰 표시 기능의 각 기능 및 모드]
도 12는 실시 형태 1의 개발 시스템(1)에 구비하는 프리뷰 표시 기능 F2에 관한 각종 상세한 프리뷰 표시 기능의 예를 통합한 것이다. 개발 시스템(1)은, GUI 화면(30)에 있어서, 메뉴 등의 GUI에서, 도 12의 예와 같은 각종 기능을 표시하여, 유저 U1에 의한 선택 실행이나 유저 설정을 가능하게 해도 된다. 도 12의 예에 한정되지 않고, 이들 기능 중 단일한 기능만을 실장한 형태나, 소정의 복수의 기능을 실장한 형태도 물론 가능하다.
개발 시스템(1)은, 예를 들어 GUI 화면(30)에서 유저 U1이 선택한 프리뷰 표시 기능이 유효한 상태로 되도록 전환한다. 개발 시스템(1)은, 예를 들어 프리뷰 표시 기능마다, 제어용 모드를 준비한다. 개발 시스템(1)은, 유저 U1이 사용하는 기능을 지정한 경우, 제어 상의 모드를, 그 기능을 사용할 수 있는 모드로 전환한다. 그 모드에 맞추어, GUI 화면(30)에서의 GUI도 전환된다. 모드마다의 GUI는, 예를 들어 처리 블록이나 프리뷰란 등의 조작 대상물에 대해, 소정의 조작(예를 들어 클릭, 더블 클릭 등)이 이루어진 경우에, 어떤 명령이나 처리로서 해석하는지와 같은 체계를 포함한다.
이하에서는, 프리뷰 표시 기능 F2의 각종 기능에 대해서 순서대로 설명한다.
[기능 1: 프리뷰 표시 전환 기능]
도 13은, 기능 1로서, 블록 선택에 의한 프리뷰 표시 전환 기능에 관한 설명도를 나타낸다. 기능 1은, 유저 U1의 조작에 따라서 프리뷰 표시 대상을 선택하고, 예를 들어 처리 블록(BL)의 선택에 따라서 프리뷰 표시 내용을 전환할 수 있는 기능이다. 기능 1을, 실시 형태 1에서 기본이 되는 통상 프리뷰 기능으로 해도 된다. 개발 시스템(1)은, 기능 1이 유효화된 상태를, 제어 상, 소정의 모드(모드 1로 함)로서 제어해도 된다.
도 13의 GUI 화면(30)의 예에서는, 블록 배치부(32)에서, 잠정적인 플로우라인(FL)으로서, 순서대로, 「카메라 도입」 블록 b1, 「처리 A」 블록, 「처리 B」 블록, 「처리 C」 블록이 배치되어 있다. 이 상태에서, 유저 U1은, 소정의 프리뷰 실행 조작(예를 들어 처리 블록(BL)의 더블 클릭, 혹은 프리뷰 표시 커맨드 입력)에 기초하여, 플로우라인(FL)의 프리뷰를 행한다고 하자. 기능 1에서는, 프리뷰 실행 시에, 이하와 같은 처리 동작(유저 U1의 조작을 포함함)이 행해진다. 기능 1은, 상세하게는 이하의 기능 1a 등을 포함한다.
(기능 1a) 소정의 프리뷰 실행 조작 이외에 유저 U1의 특별 조작이 없을 경우에는, 개발 시스템(1)은, 그때의 플로우라인(FL)에서의 최후미에 배치되어 있는 처리 블록(BL), 예를 들어 「처리 C」 블록을, 프리뷰의 대상으로 한다. 개발 시스템(1)은, 그 대상의 「처리 C」 블록의 처리 결과 화상을, 프리뷰 화상(1301)으로서 프리뷰 표시부(33)에 표시한다. 본 예에서는, 프리뷰의 대상은, 도 11과는 달리, 단일한 처리 블록이며, 프리뷰 화상은 정지 화상으로 된다. 도 13에서는 이 경우를 예 1로서 도시하고 있다.
또한, 개발 시스템(1)은, 유저 U1의 조작으로서, 소정의 프리뷰 실행 조작 자체가 없을 경우에도, 자동적으로, 그때의 플로우라인(FL)의 최후미의 처리 블록(BL)을 대상으로 해서, 프리뷰 표시부(33)에 프리뷰 표시해도 된다.
또한, 상기한 바와 같이 프리뷰의 대상을 단일한 처리 블록으로 할 경우에, 프리뷰 표시부(33)의 영역에, 그 처리 블록의 출력인 처리 결과 화상뿐만 아니라, 그 처리 블록의 입력인 화상을 함께 표시시켜도 된다. 프리뷰 표시부(33)의 영역에 있어서, 예를 들어 그것들의 입력 화상과 처리 결과 화상을 병렬로 표시해도 되고, 그것들의 화상을 시계열로 전환하면서 표시해도 된다.
또한, 기능 1a에 대해서, 도 11과 마찬가지로, 프리뷰 표시의 대상·범위를, 플로우라인(FL)의 선두부터 지정된 처리 블록까지로 하고, 프리뷰 화상을, 각 블록의 처리 결과 화상에 의한 동화상으로 해도 된다.
프리뷰 표시의 대상·범위를, 상기 예와 같이, 유저 U1이 지정한 1개의 처리 블록(BL)만의 출력 화상으로 할지, 입출력 화상으로 할지, 플로우라인(FL)의 선두부터 지정한 블록까지로 할지 등에 대해서는, 개발 시스템(1)의 소프트웨어의 실장으로 규정되어 있고, 기능이나 GUI 조작에 따라서 유저 U1이 구분지어 사용할 수 있다.
(기능 1b) 유저 U1은, 블록 배치부(32)의 플로우라인(FL) 중의 예를 들어 「처리 A」 블록을 클릭 등으로 선택 조작한다. 그 경우, 그 조작에 따라, 개발 시스템(1)은, 프리뷰 표시의 대상을, 앞의 「처리 C」 블록에서, 이 「처리 A」 블록으로 전환한다. 개발 시스템(1)은, 「처리 A」 블록의 처리 결과 화상을, 프리뷰 화상(1302)으로서 프리뷰 표시부(33)에 표시한다. 도 13에서는 이 경우를 예 2로서 도시하고 있다.
기능 1b에서는, 마찬가지로, 유저 U1은, 플로우라인(FL) 중의 다른 원하는 처리 블록(BL)(예를 들어 「카메라 도입」 블록 b1이나 「처리 B」 블록)을 선택함으로써, 그 처리 블록에 관한 프리뷰가 가능하다. 이 기능 1b에 의해, 유저 U1은, 플로우라인(FL) 중의 원하는 처리 블록(BL)의 처리 내용을 확인할 수 있다. 기능 1b에 대해서도, 기능 1a와 마찬가지로, 프리뷰의 대상은 다양하게 규정 가능하다.
(기능 1c) 기능 1a, 1b에 더하여, 기능 1c를 갖는다. 기능 1c에서는, 유저 U1은, 기능 1b에서 선택되어 있는 예를 들어 「처리 A」 블록에 대해서, 또 다른 소정의 조작(예를 들어 2회째의 클릭, 더블 클릭, 혹은 다른 커맨드 입력)을 한다. 이 조작에 따라, 개발 시스템(1)은, 그 「처리 A」 블록에 대해서, 내부 설정(상세하게는 후술)을 전환하고, 전환된 내부 설정에서의 「처리 A」 블록의 처리 결과 화상을, 프리뷰 표시한다. 예를 들어, 최초 「처리 A」 블록의 내부 설정이 제1 내부 설정이라고 하자. 상기 기능 1b의 조작으로서 유저 U1이 1회째의 클릭을 했을 경우, 제1 내부 설정에서의 「처리 A」의 결과 화상이 프리뷰 표시된다. 이어서, 상기 기능 1c의 조작으로서 유저 U1이 2회째의 클릭을 했을 경우, 제2 내부 설정으로 전환되어, 제2 내부 설정에서의 「처리 A」의 결과 화상이 프리뷰 표시된다. 마찬가지로, 동일한 처리 블록(BL)에 대해, 1회씩 클릭 등의 조작이 반복되었을 경우에, 「처리 A」 블록에 갖는 내부 설정이 순차적으로 전환되어, 내부 설정의 상태에 따른 처리 결과 화상이 프리뷰 표시된다. 마찬가지로, 다른 처리 블록(BL)을 다시 선택함으로써, 내부 설정을 전환한 프리뷰가 가능하다. 상기 기능 1c에 의해, 유저 U1은, 플로우라인(FL)의 각 처리 블록(BL)의 내부 설정의 차이마다의 처리 내용을 확인할 수 있다.
(기능 1d) 또한, 기능 1d, 1e를 갖는다. 기능 1d에서는, 유저 U1은, 블록 선택부(31) 내의 부품으로서 예를 들어 「처리 A」 블록을 클릭 등으로 조작한다. 그 경우, 그 조작에 따라, 개발 시스템(1)은, 프리뷰의 대상을, 그 선택 지정된 「처리 A」 블록 단체로 하고, 프리뷰 표시부(33)에서의 프리뷰 표시 내용을, 선택된 「처리 A」 블록의 처리 결과 화상으로 전환한다(후술). 이 경우, 「처리 A」 블록의 처리 결과 화상을 얻기 위해서는, 입력 화상도 필요하기 때문에, 개발 시스템(1)은, 그 입력 화상으로서, 미리 설정되어 있는 샘플 입력 화상을 사용한다. 개발 시스템(1)은, 샘플 입력 화상을 「처리 A」 블록에 입력해서 처리한 결과의 화상을 얻어, 프리뷰 화상으로서 표시한다. 이 기능 1d에서는, 유저 U1은, 플로우라인(FL)을 구성하는 부품이 되는 처리 블록(BL)마다의 처리 내용을 프리뷰로 확인할 수 있다.
(기능 1e) 또한, 상기 기능 1d에서의 조작에 더하여, 연속으로 동일한 「처리 A」 블록이 클릭 등으로 조작된 경우, 개발 시스템(1)은, 상기 기능 1c와 마찬가지로, 「처리 A」 블록의 내부 설정을 전환한 상태에서의 처리 결과 화상을, 프리뷰 표시한다.
상기한 바와 같이 기능 1에 의하면, 유저 U1은, 블록 배치부(32)의 플로우라인(FL)에 있어서 다음에 어느 처리 블록(BL)을 배치하면 되는지 등의 판단이나 확인에 대해서, 적절하게 프리뷰 표시를 사용함으로써 용이하게 가능해진다. 유저 U1은, 처리 블록의 상세 처리 내용(예를 들어 프로그램 코드)에 대해서 이해하고 있지 못해도, 프리뷰 표시 결과로부터 시각적으로 확인이 가능하기 때문에, 플로우라인(FL)의 제작이 용이하게 된다.
[프리뷰 대상 블록 선택 방법]
도 14는, 도 13의 보충으로서, 프리뷰 표시의 대상·범위가 되는 1개 이상의 처리 블록(BL)을 선택·지정하기 위한 GUI 조작 등에 관한, 복수 종류의 방법을 나타낸다. 이들 방법 중 적어도 하나의 방법이, 개발 시스템(1)의 기능으로서 실장된다.
(A)는, 제1 방법을 나타내고, 프리뷰 대상을, 유저 U1이 선택한 1개의 처리 블록(BL)만으로 할 경우이다. 도면에서는 프리뷰 대상이 되는 처리 블록(BL)을 파선 프레임으로 둘러싸서 나타낸다. 유저 U1은, 블록 배치부(32)의 플로우라인(FL)으로부터, 원하는 1개의 처리 블록(BL), 예를 들어 「처리 B」 블록을, 커서 등으로 선택 조작하여, 소정의 프리뷰 실행 조작을 한다. 이에 의해, 지정된 1개의 처리 블록(BL)에 관한 프리뷰가 표시된다.
(B)는, 제2 방법을 나타내고, 프리뷰 대상을, 플로우라인(FL)의 선두의 처리 블록(BL)부터, 유저 U1이 선택한 1개의 처리 블록(BL)(종점 블록이라고도 기재)까지의 범위로 할 경우이다. 유저 U1은, 블록 배치부(32)의 플로우라인(FL)으로부터, 원하는 1개의 종점 블록, 예를 들어 「처리 B」 블록을, 커서 등으로 선택 조작하여, 소정의 프리뷰 실행 조작을 한다. 이에 의해, 플로우라인(FL)의 선두 블록부터 그 지정된 종점 블록까지의 범위의 복수 블록의 각 처리 결과 화상이, 프리뷰 표시된다.
(C)는, 제3 방법을 나타내고, 프리뷰 대상을, 플로우라인(FL)의 유저 U1이 선택한 1개의 처리 블록(BL)(기점 블록이라고도 기재)부터, 플로우라인(FL)의 최후미의 처리 블록(BL)까지의 범위로 할 경우이다. 유저 U1은, 블록 배치부(32)의 플로우라인(FL)으로부터, 원하는 1개의 기점 블록, 예를 들어 「처리 B」 블록을, 커서 등으로 선택하여, 소정의 프리뷰 실행 조작을 행한다. 이에 의해, 플로우라인(FL)의 지정된 기점 블록부터 최후미의 블록까지의 범위의 복수 블록의 각 처리 결과 화상이, 프리뷰 표시된다.
(D)는, 제4 방법을 나타내고, 프리뷰 대상을, 플로우라인(FL)의 유저 U1이 선택한 제1 블록(기점 블록)부터, 유저 U1이 선택한 제2 블록(종점 블록)까지의 범위로 할 경우다. 유저 U1은, 블록 배치부(32)의 플로우라인(FL)으로부터, 원하는 제1 블록, 예를 들어 「처리 A」 블록을 선택 조작하고, 이어서, 원하는 제2 블록, 예를 들어 「처리 B」 블록을 선택 조작하여, 소정의 프리뷰 실행 조작을 한다. 이에 의해, 플로우라인(FL)의 제1 블록부터 제2 블록까지의 범위의 복수의 블록의 각 처리 결과 화상이, 프리뷰 표시된다.
도시하지 않지만, 그 밖의 방법으로서, 상술한 바와 같이, 블록 배치부(32)의 플로우라인(FL)에 있어서 어떤 처리 블록도 선택 조작되지 않은 상태라도, 프리뷰의 대상·범위를, 플로우라인(FL)의 전체 블록으로 하는 것, 또는, 최후미의 블록으로 하는 것이 가능하다.
[복수의 처리 블록에 관한 프리뷰 표시]
도 15는, 도 13에 관한 보충으로서, 프리뷰 표시부(33)에, 대상인 복수의 처리 블록(BL)의 각 블록의 처리 결과 화상을 순차적으로 동화상/애니메이션과 같이 표시하는 경우에 대해서 나타낸다. 블록 배치부(32)에서, 예를 들어 「처리 C」 블록이 선택되어, 프리뷰 실행 조작이 이루어졌다고 하자. 이 조작에 따라, 개발 시스템(1)은, 프리뷰 표시의 대상·범위를, 「카메라 도입」 블록 b1부터 「처리 C」 블록까지의 4개의 처리 블록(BL)의 범위로 한다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역에, 이들 4개의 처리 블록(BL)의 각 블록의 처리 결과 화상을, 시간축 상에서 순차적으로 전환하면서 예를 들어 루프로서 표시한다. 프리뷰 표시부(33)에 표시되는 프리뷰 화상(1500)은, 순서대로, 카메라 도입 결과 화상(1501), 처리 A 결과 화상(1502), 처리 B 결과 화상(1503), 처리 C 결과 화상(1504), 카메라 도입 결과 화상(1501)과 같이 전환되면서 표시되어, 예를 들어 4매의 정지 화상의 변화에 의한 동화상/애니메이션과 같은 표시로 된다.
또한, 프리뷰의 대상·범위가 복수의 처리 블록에 걸친 동화상일 경우에는, 유저 U1이 동화상 중의 원하는 시점을 지정해서 정지 화상으로서 프리뷰 표시하는 것도 가능하다.
[샘플 입력 화상을 사용한 프리뷰 표시]
도 16은, 도 13에 관한 보충으로서, 상기 기능 1d의 샘플 입력 화상을 사용한 처리 블록(BL)의 프리뷰 표시 기능에 관한 설명도를 나타낸다. 유저 U1은, 블록 배치부(32)의 현재의 플로우라인(FL)과는 별도로, 블록 선택부(31) 내의 원하는 처리 블록(BL)을 선택하여, 소정의 프리뷰 실행 조작을 함으로써, 그 선택한 1개의 처리 블록(BL)을 대상으로 하는 프리뷰(여기서는 샘플 프리뷰라고도 기재함)가 가능하다.
도 16의 예에서는, 유저 U1은, 블록 선택부(31)에서, 대상으로 하는 「처리 C」 블록을 선택하여, 샘플 화상 방식에서의 프리뷰 실행 조작(예를 들어 샘플·프리뷰 커맨드 입력)을 한다. 개발 시스템(1)은, 그 조작에 따라, 그 선택된 「처리 C」 블록에 대해, 입력 화상으로서, 미리 설정된 샘플 화상(샘플 입력 화상)을 적용한다. 개발 시스템(1)은, 그 샘플 입력 화상에 대한 「처리 C」 블록의 처리 결과 화상을, 샘플 처리 결과 화상으로서 얻는다. 그리고 개발 시스템(1)은, 프리뷰 표시부(33)의 영역에, 샘플 입력 화상(1601)과, 샘플 처리 결과 화상(1602)을, 프리뷰 화상으로서 표시한다. 이에 의해, 유저 U1은, 선택한 처리 블록(BL)의 기능·효과를 프리뷰로 확인할 수 있다.
샘플 입력 화상은, 처리 블록(BL)과 관련지어, 미리 개발 시스템(1)의 DB에 설정·보존되어 있다. 또한, 처리 블록(BL)에 대해 입력하는 샘플 입력 화상을 유저 U1이 선택 지정할 수 있도록 해도 된다. 그 경우의 GUI로서는, 일반적인 파일 판독의 GUI를 적용해도 된다. 다른 GUI로서는, 도 16의 하부에 도시된 바와 같이, 블록 선택부(31)를 사용해도 된다. 블록 선택부(31) 내에, 설정되어 있는 복수의 샘플 화상을, 블록의 양태로 배치해 둔다. 예를 들어 탭의 하나로서 샘플 화상의 카테고리가 관리되고 있어도 된다. 유저 U1은, 블록 선택부(31) 내로부터 원하는 샘플 화상 블록을 선택해서 적용할 수 있다.
또한, 프리뷰 표시부(33)에서의 샘플 입력 화상(1601)의 표시를 생략한 형태로 해도 된다. 또한, 샘플 프리뷰 화상(1602)과 같은, 샘플 입력 화상을 사용한 샘플 처리 결과 화상에 대해서도, 미리 관련지어서 보존해 두어도 된다. 이에 의해, 샘플 프리뷰 시에, 처리 블록(BL)의 처리를 생략하고, 보존해 둔 샘플 프리뷰 화상을 읽어내어 프리뷰 표시시켜도 된다.
[처리 블록의 내부 설정]
도 17은, 도 13의 보충으로서, 처리 블록(BL)마다의 내부 설정에 관한 설명도를 나타낸다. 부품인 처리 블록(BL)의 예로서, 화상 처리 중 「2치화」 블록(1700)이 있다고 하자. 이 2치화는, 상세한 처리 내용으로서, 공지의 각종 2치화 방법이 존재하며, 그러한 각종 2치화 방법을, 「2치화」 블록(1700)의 내부 설정(1710)의 파라미터값 등에 의해 규정할 수 있다. 예를 들어, 내부 설정(1710)으로서, 내부 설정(1711, 1712, 1713)을 갖는 경우를 나타낸다. 내부 설정(1711)은, 「통상 2치화」이며, 내부 설정(1712)은, 「범위 2치화」이며, 내부 설정(1713)은, 「오츠의 2치화」이다. 예를 들어 이들 3종류의 「2치화」를, 유저 U1의 클릭 등의 조작으로 전환할 수 있다. 예를 들어, 「2치화」 블록(1700)에 대한 1회째의 클릭의 경우에는, 「통상 2치화」의 내부 설정(1711)이 적용된다. 2회째의 클릭의 경우에는, 「범위 2치화」의 내부 설정(1712)이 적용된다. 3회째의 클릭의 경우에는, 「오츠의 2치화」의 내부 설정(1713)이 적용된다. 4회째의 클릭의 경우에는, 다시 「통상 2치화」의 내부 설정(1711)이 적용된다. 이와 같이 예를 들어 순환적으로 내부 설정값이 전환된다.
[처리 블록의 내부 설정 정보의 표시]
또한, 도 18은, GUI 화면(30)에서, 상기 내부 설정에 관한 프리뷰 표시를 행하는 경우(상술한 기능 1d, 1e)의 표시예를 나타낸다. 먼저, 일 실시예로서, 상기 처리 블록(BL)마다의 내부 설정의 정보를, GUI 화면(30) 내에 표시해도 된다. 개발 시스템(1)은, 블록 선택부(31) 또는 블록 배치부(32)에서, 유저 U1이 선택 조작한 처리 블록에 관한 내부 설정의 정보를 표시한다. 도 18의 예에서는, 블록 배치부(32)의 플로우라인(FL)에 있어서, 유저 U1이 클릭 등의 조작으로 선택한 예를 들어 「처리 A」 블록에 관한 내부 설정의 정보가, 예를 들어 말풍선 형상의 GUI로 표시되어 있다. 예를 들어 클릭 위치의 부근에 말풍선 화상이 표시되고, 그 안에 그 「처리 A」 블록이 갖고 있는 복수의 내부 설정의 식별 정보와, 현재 적용되어 있는 내부 설정의 식별 정보를 알 수 있도록 표시되어 있다. 예를 들어, 내부 설정 A1, A2, A3이 있고, 현재 적용되어 있는 내부 설정이 내부 설정 A1이다.
또한, 도 18에서, 블록 배치부(32)에서의 처리 블록(BL)의 내부 설정의 상태에 따라, 프리뷰 표시부(33)에는, 유저 U1이 선택·지정한 처리 블록에 관한 프리뷰를, 그때의 내부 설정의 상태에서의 프리뷰로서 표시할 수 있다. 본 예에서는, 「처리 A」 블록의 내부 설정 A1의 상태에 따른 처리 결과 화상(1801)이 프리뷰 화상으로서 표시된다. 프리뷰 표시부(33)에는, 프리뷰 화상에 관한 설명의 정보, 예를 들어 내부 설정의 정보를 함께 표시해도 된다.
[처리 블록의 내부 설정의 확인·변경]
또한, 도 19에는, 처리 블록(BL)의 내부 설정의 상세 정보를 표시해서 유저 U1이 확인하거나, 파라미터값을 설정·변경하거나 할 수 있을 경우의 표시예를 나타내고 있다. 예를 들어, 블록 선택부(31) 또는 블록 배치부(32)에 배치되어 있는 「처리 A」 블록으로서 「2치화」 블록이 있다고 하자. 유저 U1이 예를 들어 블록 배치부(32)의 「2치화」 블록을 클릭 등으로 선택 조작한다. 개발 시스템(1)은, 그 조작에 따라, 그 「2치화」 블록의 내부 설정을 포함하는 상세 정보를, 소정의 GUI, 예를 들어 팝업 등으로 표시한다. 본 예에서는, 「2치화」란(1901)이 팝업으로 표시되어 있다. 「2치화」란(1901)에서는, 블록 명칭을 설정할 수 있고, 내부 설정(바꾸어 말하면 기능 선택)으로서, 복수의 내부 설정(예를 들어 도 17)으로부터 1개를 선택해서 설정할 수 있다. 또한, 상세 파라미터값으로서, 예를 들어 2치화의 역치를 설정할 수 있다.
상기 「2치화」 블록의 예에 한정되지 않고, 처리 블록(BL)에 따라, 복수의 내부 설정을 갖고 있는 경우가 있으며, 마찬가지로, 내부 설정을 선택이나 변경 가능하다. 다른 예에서는, 「필터링」 블록의 경우에는, 복수 종류의 필터링 처리나 상세 파라미터값이, 복수의 내부 설정으로서 준비되어 있다. 다른 예에서는, 「2치 화상 형상 변환」 블록의 경우, 내부 설정으로서, 「수축」 「팽창」 「노이즈 제거」 「윤곽 추출」 등이 준비되어 있다. 다른 예에서는, 「타원 묘화」 블록의 경우, 내부 설정으로서, 묘화 모드, 중심 좌표, 반경, 컬러 등이 준비되어 있다.
또한, 1개의 처리 블록(BL)에 있어서 처리 상세에 따른 복수의 내부 설정을 갖는 경우에 한정되지 않고, 마찬가지의 것을 실현하기 위해, 내부 설정마다 각각 별도의 처리 블록으로서 준비되어도 된다. 예를 들어, 블록 선택부(31)에서, 「통상 2치화」 블록, 「범위 2치화」 블록 등이 마련되어도 된다. 또한, 블록 선택부(31)에 기본적인 부품으로서 미리 준비되어 있는 처리 블록(BL)(예를 들어 「2치화」 블록)에 기초하여, 유저 U1이 내부 설정의 파라미터값 등을 다양하게 변경해서 베리에이션으로서 등록할 수 있도록 해도 된다.
[기능 1의 변형예: 가적용 프리뷰]
상기 기능 1에 관한 변형예로서 이하의 기능을 가져도 된다. 이 기능은, 블록 선택부(31)에서 유저 U1이 원하는 처리 블록(BL)을 선택한 경우에, 그 처리 블록(BL)을 플로우라인(FL)에 임시 적용한 경우의 프리뷰를 표시하는 기능이다.
도 20에는 이 변형예의 가적용 프리뷰 기능에 관한 설명도를 나타낸다. 블록 배치부(32)에서는, 잠정적인 플로우라인(FL)으로서, 예를 들어 「카메라 도입」 블록, 「처리 A」 블록, 「처리 B」 블록까지가 배치 완료로 한다. 유저 U1은, 「처리 B」 블록의 뒤에 연결시키고자 하는 다음의 처리 블록(BL)을 검토하여, 블록 선택부(31) 내의 부품으로부터 선택한다. 그 때, 예를 들어 다음의 처리 블록(BL)의 후보로서, 「처리 D」 블록과 「처리 E」 블록이 있다고 하자.
유저 U1은, 먼저, 「처리 D」 블록을 선택 조작(예를 들어 클릭이나 커서 오버 등)한다. 이 조작에 따라, 개발 시스템(1)은, 그 「처리 D」 블록을, 블록 배치부(32)의 플로우라인(FL)의 최후미(본 예에서는 「처리 B」 블록의 다음)에 배치하였다고 가정하고, 그 가정한 상태에서의 「처리 D」 블록의 처리 결과 화상을 얻어, 프리뷰 표시부(33) 내에 프리뷰 표시한다. 이러한 가적용의 경우의 처리 결과 화상은, 「처리 B」 블록의 출력의 처리 결과 화상을, 「처리 D」 블록에 입력해서 처리한 결과의 화상이다. 이 경우, 프리뷰 표시부(33)의 영역에는, 프리뷰 표시(2001)와 같이, 그 「처리 D」 블록의 처리 결과 화상이 표시된다.
마찬가지로, 유저 U1이 다른 후보인 「처리 E」 블록을 선택 조작한 경우, 개발 시스템(1)은, 그 「처리 E」 블록을, 플로우라인(FL)의 최후미에 배치하였다고 가정하고, 그 가정한 상태에서의 「처리 E」 블록의 처리 결과 화상을 얻어, 프리뷰 표시부(33) 내에 프리뷰 표시한다. 이 경우, 프리뷰 표시부(33)의 영역에는, 프리뷰 표시(2002)와 같이, 그 「처리 E」 블록의 처리 결과 화상이 표시된다. 또한, 도 20에서는, 상기 2개의 예를 통합해서 도시하고 있다.
이 변형예에서의 가적용 프리뷰 기능의 경우에는, 유저 U1이 플로우라인(FL)에 처리 블록(BL)을 드래그&드롭 등으로 배치 조작하지 않아도, 프리뷰를 볼 수 있다.
또한, 프리뷰 표시부(33)는, 1개의 영역에는 한정하지 않고, 복수의 프리뷰 표시 영역이 마련되어도 된다. 예를 들어, 도 20과 같이, 제1 프리뷰 표시 영역에 제1 프리뷰 화상을 표시하고, 제2 프리뷰 표시 영역에 제2 프리뷰 화상을 표시하여, 그것들을 병렬 표시함으로써 비교 가능하게 해도 된다.
[프리뷰 표시부의 GUI예]
도 21은 프리뷰 표시부(33)의 GUI 구성예를 나타낸다. 도 21의 예는, 프리뷰 표시 대상·범위가, 복수의 처리 블록을 포함한 동화상일 경우(예를 들어 도 15)에, 그 동화상에 관한 재생 표시 등의 조작이 가능한 GUI를 갖는다. 이 프리뷰 표시부(33)는, 프리뷰 표시 영역(2100) 외에, GUI 부품으로서, 영상 재생 버튼(2101), 영상 정지 버튼(2102), 선두 버튼(2103), 최후미 버튼(2104), 재생 시간란(2105), 확대 버튼(2106), 축소 버튼(2107), 기타, 탭(2108) 등을 갖는다.
프리뷰 표시는, 예를 들어 영상 재생 버튼(2101)의 누름, 프리뷰 표시 영역(2100)의 더블 클릭, 프리뷰 표시 영역(2100)으로의 드래그&드롭 등의 조작에 의해 가능하다. 다른 GUI 부품의 예로서는, 슬라이드 바 등을 마련하여, 동화상 중의 원하는 시점을 선택해서 재생 표시 가능하게 해도 된다.
[기능 2: 멀티프리뷰 기능 1]
도 22는, 기능 2로서, 멀티프리뷰 기능 1에 관한 설명도를 나타낸다. 멀티프리뷰 기능 1은, 예를 들어 복수의 처리 블록(BL)의 복수의 처리 결과 화상을, 프리뷰 표시부(33)에서 병렬로 표시하는 기능이다. 기능 2에서는, 프리뷰 실행 시에, 이하와 같은 처리 동작이 행해진다. 기능 2는, 하기 기능 2a 등을 포함한다.
(기능 2a) 유저 U1은, 멀티프리뷰 기능을 유효화한 상태로 하고, 프리뷰의 대상·범위로서, 블록 배치부(32)에서의 플로우라인(FL)의 복수의 처리 블록(BL)을 지정한다(예를 들어 상술한 도 11). 개발 시스템(1)은, 유저 U1이 지정한 복수의 처리 블록(BL)의 복수의 처리 결과 화상을 프리뷰 표시 대상으로 한다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역(1화면) 내에서, 분할한 복수의 영역에, 대상의 복수의 처리 결과 화상을 멀티프리뷰로서 병렬로 표시한다.
멀티프리뷰 기능의 유효화는, 예를 들어 소정의 조작에 의해 행해진다. 예를 들어, 개발 시스템(1)은, 소정의 조작에 따라, 제어 상의 모드를 멀티프리뷰 모드(모드 2)로 천이시켜도 된다. 이 모드에서는, 소정의 프리뷰 실행 조작(예를 들어 프리뷰 표시 커맨드 입력)은, 소정의 멀티프리뷰 실행 조작(예를 들어 멀티프리뷰 표시 커맨드 입력)으로서 해석된다.
(기능 2b) 또한, 상기 기능 2a에서는, 멀티프리뷰를 위한 분할수를 유저 U1이 선택할 수 있다. 예를 들어 멀티프리뷰 실행 조작과 함께, 분할수로서 「없음/4/9」를 선택할 수 있도록 해도 된다. 바꾸어 말하면, 분할수마다의 멀티프리뷰 모드를 선택할 수 있도록 해도 된다. 미리 멀티프리뷰 모드에서의 분할수를 유저가 설정할 수 있도록 해도 된다. 분할 「없음」의 경우는, 상술한 기능 1의 통상 프리뷰 표시에 상당한다.
도 22에서는, 블록 배치부(32)에 잠정적인 플로우라인(FL)으로서 「카메라 도입」 블록 b1부터 「처리 C」 블록까지의 4개의 처리 블록(BL)이 배치되어 있는 경우에, 멀티프리뷰 표시의 2개의 예를 통합해서 도시하고 있다. (A)의 제1예에서는, 대상의 플로우라인(FL)에 대해, 분할수 9로의 멀티프리뷰 실행 조작(2201)이 이루어졌을 경우의 멀티프리뷰 표시(2211)를 나타낸다. (B)의 제2예에서는, 대상의 플로우라인(FL)에 대해, 분할수 4로의 멀티프리뷰 실행 조작(2202)이 이루어졌을 경우의 멀티프리뷰 표시(2212)를 나타낸다.
프리뷰 표시부(33)에는, 선택된 분할수로의 멀티프리뷰 표시가 이루어진다. (A)의 제1예에서는, 프리뷰 표시부(33)의 영역(본 예에서는 정사각형)이 분할수 9로 분할되어, 3×3의 분할 영역이 구성되어 있다. 그 3×3의 분할 영역에서, 4개의 분할 영역을 사용하여, 플로우라인(FL)의 4개의 처리 블록의 각 처리 결과 화상이, 프리뷰 화상으로서 표시되어 있다. (B)의 제2예에서는, 프리뷰 표시부(33)의 영역(본 예에서는 정사각형)이 분할수 4로 분할되어, 2×2의 분할 영역이 구성되어 있다. 그 2×2의 분할 영역에서, 4개의 분할 영역을 사용하여, 플로우라인(FL)의 4개의 처리 블록의 각 처리 결과 화상이, 프리뷰 화상으로서 표시되어 있다.
멀티프리뷰의 경우의 프리뷰 표시부(33)의 표시 내용은, 예를 들어 이하와 같이 제어된다. (C)에는, 예를 들어 (B)와 마찬가지로, 분할수 4일 경우의 멀티프리뷰 표시 내용을 모식으로 도시하고 있다. 멀티프리뷰 표시는, 프리뷰 표시부(33)의 영역에서 예를 들어 좌측 상단의 분할 영역을 기점으로 해서 표시가 개시되고, 우측 하단의 분할 영역을 종점으로 해서 표시가 종료된다. 각 분할 영역은, 최초 시에는 소정의 배경색이다. 또한, 분할 영역에는, 「카메라 도입 프리뷰」 등, 대응지어지는 처리 블록을 나타내는 문자 등이 표시되어도 된다.
개발 시스템(1)은, 유저 U1의 조작에 따라, 상술(예를 들어 도 11)과 마찬가지로, 멀티프리뷰의 대상·범위를 결정한다. 또한, 예를 들어 유저 U1은, 멀티프리뷰 실행 조작 시에, 블록 배치부(32)의 플로우라인(FL)으로부터, 멀티프리뷰를 개시하는 블록, 예를 들어 「카메라 도입」 블록 b1이나, 멀티프리뷰를 종료하는 블록, 예를 들어 「처리 C」 블록을, 클릭 등의 조작으로 선택·지정해도 된다. 개발 시스템(1)은, 상기 조작에 따라, 멀티프리뷰의 대상·범위에서의, 개시 블록부터 종점 블록까지의 각 처리 블록(BL)에 대해서, 각각의 처리 결과 화상을 얻는다. 개발 시스템(1)은, 그러한 복수의 처리 결과 화상을, 자동적으로, 순차적으로, 프리뷰 표시부(33)의 분할 영역에 멀티프리뷰로서 표시한다.
(C)의 예에서, 개발 시스템(1)은, 먼저, 좌측 상단의 분할 영역(2221)에, 「카메라 도입」 블록 b1의 처리 결과 화상을 카메라 도입 프리뷰로서 표시한다. 개발 시스템(1)은, 이어서, 우측 상단의 분할 영역(2222)에, 「처리 A」 블록의 처리 결과 화상을 처리 A 프리뷰로서 표시한다. 개발 시스템(1)은, 이어서, 좌측 하단의 분할 영역(2223)에, 「처리 B」 블록의 처리 결과 화상을 처리 B 프리뷰로서 표시한다. 개발 시스템(1)은, 이어서, 우측 하단의 분할 영역(2224)에, 「처리 C」 블록의 처리 결과 화상을 처리 C 프리뷰로서 표시한다. 그 후, 멀티프리뷰의 종료까지, 4개의 분할 영역의 각 화상은 계속해서 표시된다. 분할수 9의 경우에도, 마찬가지로 멀티프리뷰 표시가 가능하다.
변형예로서는, 멀티프리뷰 실행 조작 시에, 유저 U1이, 블록 배치부(32)의 플로우라인(FL)으로부터, 멀티프리뷰의 표시 대상으로서 종점이 되는 처리 블록(BL)(예를 들어 「처리 C」 블록)을 클릭 등의 조작으로 선택한다. 이 조작에 따라서, 개발 시스템(1)은, 그 지정된 종점 블록으로부터, 상기와는 역방향으로, 즉 플로우라인(FL)의 선두를 향하는 방향으로, 순차적으로 각 블록의 처리 결과 화상을 얻어, 그것들을, 프리뷰 표시부(33)에 멀티프리뷰로서 표시한다.
또한, 프리뷰 표시부(33)에서의 분할수(예를 들어 4)보다 적은 수(예를 들어 3)의 처리 블록(BL)이 대상일 경우, 일부 분할 영역은 배경 표시인 상태 그대로가 되고, 처리 결과 화상은 표시되지 않는다. 또한, 분할수를 4나 9로 하는 것에 한정되지 않고, 분할수를 2 이상으로 하는 것이 가능하다.
상기 멀티프리뷰 기능 1에 의하면, 유저 U1은, GUI 화면(30)에서, 각 처리 블록(BL)의 처리 내용을 병렬로 확인할 수 있다. 이 기능에 의하면, 한번에 복수의 화상 처리의 경과를 확인할 수 있기 때문에, 프리뷰에 의한 디버그 등의 효율을 더욱 향상시킬 수 있다.
또한, 멀티프리뷰의 분할수에 대해서는, 멀티프리뷰의 대상으로서 선택된 처리 블록(BL)의 수에 따라, 개발 시스템(1)이 자동적으로 결정해도 된다. 예를 들어, 유저 U1의 조작에 따라서 선택된 대상의 처리 블록(BL)의 수가 1개일 경우에는, 통상 프리뷰 표시로 한다. 블록수가 2개, 3개 또는 4개일 경우에는, 분할수 4의 멀티프리뷰로 한다. 블록수가 2개 또는 3개일 경우에는, 4개 중 2개 또는 1개의 분할 영역은 미사용으로 된다. 블록수가 5개, 6개, 7개, 8개, 9개일 경우에는, 분할수 9의 멀티프리뷰로 한다.
또한, 개발 시스템(1)은, 유저 U1의 조작에 따라서 지정된 범위의 처리 블록(BL)의 수에 맞추어서 동일한 분할수가 되도록 자동적으로 결정해도 된다. 예를 들어, 개발 시스템(1)은, 대상의 처리 블록(BL)의 수가 2개일 경우에는 분할수를 2로 하고, 3개일 경우에는 분할수를 3으로 한다. 또한, 도 12에서는 프리뷰 표시부(33)의 영역이 정사각형일 경우에, 분할 영역도 정사각형으로 되는 경우를 나타냈지만, 이것에 한정되지 않는다.
[멀티프리뷰 기능 1의 변형예]
도 23은 멀티프리뷰 기능 1에 관한 변형예를 나타낸다. 이 변형예는, 플로우라인(FL)의 배열에 맞추어서 가로 일렬로 멀티프리뷰 표시를 행하는 예이다. 프리뷰 표시부(33)의 영역에서의 복수의 분할 영역의 배치는, 도 22의 예에 한정되지 않고, 소정의 배치여도 되며, 예를 들어 가로 일렬이나 세로 일렬이어도 된다. 또한, 도 23에서는, 대상이 되는 처리 블록(BL)의 수에 맞추어서 자동적으로 분할수를 정하는 예를 나타낸다.
도 23에서는, 블록 배치부(32)에서의 잠정적인 플로우라인(FL)의 상태에 대해, 유저 U1이, 멀티프리뷰의 대상으로서, 개시 블록을 「처리 A」, 종료 블록을 「처리 C」로서 지정해서 멀티프리뷰 실행 조작(2301)이 이루어진 경우를 나타내고 있다. 이 경우에는, 멀티프리뷰의 대상은, 「처리 A」 「처리 B」 「처리 C」의 3개의 처리 블록(BL)으로 된다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역에, 대상인 3개의 처리 블록(BL)에 대응한 3개의 분할 영역을, 플로우라인(FL)의 배치 방향(본 예에서는 좌측에서 우측)에 맞추어서, 가로 일렬로 표시하고, 그것들의 분할 영역에, 3개의 각 블록의 처리 결과 화상을 병렬로 표시한다. 본 예에서는, 순서대로, 처리 A 프리뷰 화상(2311), 처리 B 프리뷰 화상(2312), 처리 C 프리뷰 화상(2313)이 표시되어 있다.
[기능 3: 멀티프리뷰 기능 2]
도 24는, 기능 3으로서, 멀티프리뷰 기능 2에 관한 설명도를 나타낸다. 멀티프리뷰 기능 2는, 처리 블록(BL)의 복수의 내부 설정을 전환했을 경우의 각 처리 결과를 멀티프리뷰로서 표시하는 기능이다. 개발 시스템(1)은, 기능 3을 유효화한 상태를, 소정의 모드(모드 3으로 함)로 해서 제어해도 된다. 처리 블록(BL)의 내부 설정에 관한 개념은 상술한 도 17 등과 같다.
멀티프리뷰 기능 2에서는, 이하와 같은 처리 동작이 행해진다. 멀티프리뷰 기능 2는, 하기 기능 3a 등을 포함한다. 전제로서, 예를 들어 도 22의 (B)와 같은 분할수 4로의 멀티프리뷰 표시(2212)가 이미 이루어져 있다고 하자. 이 상태에서, 소정의 조작에 따라, 예를 들어 이하와 같은 처리 동작이 행해진다.
(기능 3a) 유저 U1은, 블록 배치부(32)의 예를 들어 「처리 A」 블록을 클릭 등으로 선택 조작(2401)한다. 개발 시스템(1)은, 그 조작에 따라, 프리뷰 표시부(33)의 프리뷰 표시 내용을, 「처리 A」 블록의 처리 결과 화상으로 되도록 전환한다. 프리뷰 표시부(33)에는, 분할수 4로의 분할 영역(2411 내지 2414)을 갖는다. 개발 시스템(1)은, 1번째의 분할 영역(2411)에, 「처리 A」의 결과 화상을 프리뷰 표시한다. 다른 분할 영역에는, 아직 프리뷰 표시가 되지 않는다.
(기능 3b) 이어서, 상기 기능 3a의 조작에 더하여, 유저 U1은, 연속으로 동일한 「처리 A」 블록을 클릭 등으로 조작한다. 그 조작에 따라, 개발 시스템(1)은, 「처리 A」 블록의 내부 설정을 전환한 상태로 하고, 그 내부 설정에서의 처리 결과 화상을, 멀티프리뷰로서 프리뷰 표시부(33)에 표시한다.
도 24의 하부에는, 「처리 A」 블록에 대해서, 내부 설정을, 예를 들어 내부 설정 1, 2, 3, n(n=4)과 같이 전환했을 경우의, 멀티프리뷰 표시예를 나타내고 있다. 「처리 A」 블록에 대한 클릭 1회째에서는, 분할 영역(2411)에, 「내부 설정 1」의 상태에서의 처리 A의 결과 화상이 표시된다. 클릭 2회째에서는, 2번째의 분할 영역(2412)에, 「내부 설정 2」의 상태에서의 처리 A의 결과 화상이 표시된다. 클릭 3회째에서는, 3번째의 분할 영역(2413)에, 「내부 설정 3」의 상태에서의 처리 A의 결과 화상이 표시된다. 클릭 4회째에서는, 4번째의 분할 영역(2414)에, 「내부 설정 n=4」의 상태에서의 처리 A의 결과 화상이 표시된다. 이들 4개의 화상이 병렬로 표시된다.
(기능 3c) 또한, 상기 기능 3a, 3b의 조작 후, 유저 U1은, 예를 들어 프리뷰 표시부(33) 내의 내부 설정마다의 분할 영역을 클릭 등으로 조작한다. 이 조작에 따라, 개발 시스템(1)은, 「처리 A」 블록에 적용하는 내부 설정을 선택한다. 예를 들어, 도시된 바와 같이, 분할 영역(2412)이 클릭 등으로 조작된 경우, 개발 시스템(1)은, 블록 배치부(32)의 플로우라인(FL)에 있어서, 「처리 A」 블록에, 「내부 설정 2」를 적용한다. 또한, 이 때의 조작은, 도시된 바와 같이, 예를 들어 내부 설정 적용 커맨드 입력으로 해도 된다.
상기 기능 3에 의하면, 유저 U1은, 처리 블록(BL)의 각 내부 설정에서의 처리 결과를 병렬로 비교해서 확인 가능하다. 유저 U1은, 예를 들어 화상 처리의 복수의 상세 파라미터 설정값에 의한 처리 결과 화상을 한번에 확인할 수 있다. 그 때문에, 프리뷰 기능에 의한 디버그 등의 효율을 더욱 향상시킬 수 있다.
[프리뷰 모드]
도 25는, 보충으로서, 프리뷰 표시 기능 F1의 모드(프리뷰 모드)에 관한 설명도를 나타낸다. GUI 화면(30)에서의 프리뷰 표시 기능 F1에 관해서, 상술한 예와 같이, 상세하게는 복수의 기능이 있다. 예를 들어, 상기 기능 1(통상 프리뷰 기능)의 모드 1이나, 멀티프리뷰 기능 1의 분할수를 선택할 수 있는 모드 2나, 멀티프리뷰 기능 2의 내부 설정을 선택할 수 있는 모드 3 등이 있다. 그 때문에, 개발 시스템(1)은, 각 기능에 따른 모드를 준비하여, 유저 U1이 사용하고자 하는 기능 및 유저 U1의 GUI 조작에 따라, 제어 상 및 표시 상의 모드를 전환해도 된다. 개발 시스템(1)은, GUI 화면(30)에, 이들 모드를 유저 U1의 조작에 따라서 전환 가능하게 하는 GUI를 마련한다. 유저 U1은, 그 GUI를 통해서, 원하는 기능의 모드를 선택할 수 있다.
도 25의 GUI 화면(30)의 예에서는, 프리뷰 모드란(2501)을 갖는다. 프리뷰 모드란(2501)은, 예를 들어 리스트 박스 등의 GUI에서, 복수의 모드가 선택지로서 표시되어, 유저 U1의 조작에 의해 모드를 선택할 수 있다. 개발 시스템(1)은, 유저 U1의 조작에 의해 선택된 모드를 적용한다. 예를 들어, 「모드 2」가 선택된 경우, 개발 시스템(1)은, 멀티프리뷰 기능 1이 유효한 모드 2의 상태로 전환한다. 즉, 프리뷰 표시부(33) 등을 포함하는 GUI 화면(30)은, 모드 2에서의 GUI 조작을 접수하는 상태로 전환된다. 동일한 조작(예를 들어 처리 블록(BL)의 클릭)이어도, 모드에 따른 다른 지시(예를 들어 플로우라인(FL) 전체의 멀티프리뷰, 처리 블록(BL) 단체의 내부 설정의 멀티프리뷰)로서 해석 가능하다.
[기능 4: 경고 기능]
기능 4로서, 경고 기능(바꾸어 말하면 판정 결과 지원 기능)에 대해서 설명한다. 이 경고 기능은, 프리뷰 표시부(33)에, 화상 검사의 내용이나 결과에 관한, OK나 NG 등을 나타내는 정보를 표시하는 기능이며, 판정 결과를 강조 표시하거나 하는 기능이다. 또한 특히, 이 경고 기능은, 프리뷰 표시부(33)에 표시하는 화상의 내용이나 결과에 따라, 화상의 프레임의 표시 양태를 다르게 하는 기능이다.
도 26은 경고 기능에 관한 설명도를 나타낸다. 도 26에서는, 블록 배치부(32)의 플로우라인(FL)에 있어서, 「카메라 도입」 블록 b1부터 「판정」 블록 b2까지가 배치되어 있다. 「판정」 블록 b2는, 앞의 처리 블록(BL), 예를 들어 「처리 B」 블록으로부터 출력되는 처리 결과 화상을 입력 화상으로 해서, 소정의 판정 처리를 행하여, 판정 결과 화상을 출력하는 블록이다. 판정 처리는, 예를 들어 입력 화상에 찍혀 있는 대상물(20)에 관한 유무나 수, 외관의 품질 등의 판정이다. 「판정」 블록 b2의 출력은, 판정 결과 화상 및 판정 결과 정보를 갖고 있다.
유저 U1은, 예를 들어 블록 배치부(32)의 「판정」 블록 b2를 선택하여, 프리뷰 실행 조작을 행한다. 경고 기능이 유효한 상태에서의 프리뷰 실행 시에는, 이하와 같은 처리 동작이 행해진다. 기능 4는, 하기 기능 4a 등을 포함한다.
(기능 4a) 개발 시스템(1)은, 「판정」 블록 b2의 출력인 판정 결과 화상 및 판정 결과 정보(예를 들어 「OK」/「NG」/기타 정보)에 따라, 프리뷰 표시부(33)에 표시하는 프리뷰 화상(즉 판정 결과 화상)에서의 프레임의 색을 다르게 하도록 표시한다.
도 26의 예에서는, 프리뷰 표시부(33)에서의 표시예로서 3개의 예를 통합해서 도시하고 있다. (A)는, 제1예이며, 프리뷰 표시부(33) 내에, 판정 결과 화상(2601)이 프리뷰 표시되어 있다. 판정 결과 화상(2601)은, 「처리 B」의 처리 결과 화상 상에, 판정 결과를 나타내는 문자 화상, 예를 들어 「OK」가 중첩 표시되어 있다. 「OK」는, 예를 들어 대상물(20)의 유무나 수, 외관의 품질 등이, 소정의 기준을 클리어한 것을 나타낸다. 그리고 이 기능에서는, 판정 결과의 문자 화상에 따라, 판정 결과 화상(2601)의 외측 프레임선(2611)의 표시 색이 결정된다. 제1예에서는, 판정 결과의 문자 화상 「OK」에 대응시키고, 외측 프레임선(2611)의 표시 색은, 「OK」를 나타내는 색, 예를 들어 청색으로 표시된다.
(B)는, 제2예이며, 프리뷰 표시부(33) 내에, 판정 결과 화상(2602)이 프리뷰 표시되어 있다. 판정 결과 화상(2602)은, 「처리 B」의 결과 화상 상에, 판정 결과를 나타내는 문자 화상, 예를 들어 「NG」가 중첩 표시되어 있다. 「NG」는, 예를 들어 대상물(20)의 유무나 수, 외관의 품질 등이, 소정의 기준을 클리어하지 않은 것을 나타낸다. 그리고 이 기능에서는, 판정 결과의 문자 화상 「NG」에 대응시키고, 외측 프레임선(2612)의 표시 색은, 「NG」를 나타내는 색, 예를 들어 황색으로 표시된다.
(C)는, 제3예이며, 프리뷰 표시부(33) 내에, 판정 결과 화상(2603)이 프리뷰 표시되어 있다. 판정 결과 화상(2603)은, 「처리 B」의 결과 화상 상에, 판정 결과를 나타내는 문자 화상, 예를 들어 「Warning」이 중첩 표시되어 있다. 「Warning」은, 예를 들어 대상물(20)의 유무나 수, 외관의 품질 등에 관해서, 소정의 조건·결과에 해당함으로 인한 경고를 나타낸다. 그리고 이 기능에서는, 판정 결과의 문자 화상 「Warning」에 대응시키고, 외측 프레임선(2613)의 표시 색은, 「Warning」을 나타내는 색, 예를 들어 적색으로 표시된다.
이 기능에 의하면, 유저 U1은, 프리뷰 표시에 있어서, 화상 검사에 관한 판정 결과를 시각적으로 파악할 수 있다. 그 때문에, 시스템 개발의 디버그 등의 효율을 향상시킬 수 있다.
[기능 5: 색 정보 추출 기능]
도 27은, 기능 5로서, 색 정보 추출 기능에 관한 설명도를 나타낸다. 이 기능 5는, 프리뷰 표시부(33)의 프리뷰 화상 상에서 유저 U1이 마우스의 커서 등의 조작에 의해 화소 위치를 선택 지정함으로써, 선택된 화소의 색 정보를 추출해서 표시하는 기능이다. 이 기능 5에서는, 프리뷰 조작 실행 시에, 이하와 같은 처리 동작이 행해진다. 기능 5는, 하기 기능 5a 등을 포함한다.
(기능 5a) 개발 시스템(1)은, 프리뷰 표시부(33)의 프리뷰 화상 상에서, 커서(39)가 마우스 오버된 개소의 화소값을 추출하여, 프리뷰 표시부(33) 내에 그 화소값을 색 정보로서 표시한다.
도 27에서는, 판정 블록 b2에 대한 프리뷰 표시의 경우에, 2개의 예를 통합해서 도시하고 있다. (A)의 제1예에서는, 프리뷰 표시부(33)의 판정 결과 화상(2701) 상에서, 화살표의 커서(39)로 나타내는 화소 위치(2721)에 있을 경우에, 그 화소 위치(2721)의 화소값(R, G, B)의 색 정보(2711)가 추출되어 표시되어 있다. (B)의 제2예에서는, 판정 결과 화상(2702) 상에서, 화살표의 커서(39)로 나타내는 화소 위치(2722)에 있을 경우에, 그 화소 위치(2722)의 화소값의 색 정보(2712)이 추출되어 표시되어 있다.
기능 5에 의하면, 유저 U1은, 프리뷰 화상과 함께 표시되는 색 정보를, 플로우라인(FL) 제작의 참고 정보로서 이용할 수 있다. 예를 들어, 화소값을 역치로서 화상 처리하는 「2치화」 블록이나, 화소값이 일정 범위인지 여부로 양부 판정하는 「색 판정」 블록이 있다. 그 경우에, 상기 프리뷰의 색 정보를, 그러한 처리 블록(BL)의 내부 설정의 상세 파라미터값의 설정에 관한 참고값으로서 이용할 수 있다. 도 25의 예에서는, 유저 U1은, 프리뷰의 색 정보를 참고로 해서, 「처리 A」 블록이나 「처리 B」 블록, 「판정」 블록 b2를, 다른 처리 블록(BL)으로 변경하거나, 처리 블록(BL)의 내부 설정을 변경하거나 하는 등, 플로우라인(FL)의 변경이 가능하다.
[기능 6: 토너먼트 방식]
도 28은, 기능 6으로서, 토너먼트 방식으로의 처리 블록 선택 기능에 관한 설명도를 나타낸다. 이 기능 6에서는, 프리뷰 표시에 있어서, 토너먼트 방식으로 처리 블록(BL)마다의 처리 결과 화상을 비교하여, 유저가 채용하는 처리 블록을 선택 가능하게 한다. 이 기능 6에서는, 프리뷰 실행 시에, 이하와 같은 처리 동작이 행해진다. 기능 6은, 하기 기능 6a 등을 포함한다.
(기능 6a) 개발 시스템(1)은, 블록 배치부(32)의 잠정적인 플로우라인(FL)의 상태에 대해, 다음으로 배치하는 처리 블록(BL)의 후보를 산출해 내고, 그러한 후보 블록에 대해서, 프리뷰 표시부(33)에 토너먼트 방식으로 프리뷰 표시하고, 플로우라인(FL)에 배치·채용하기 위한 후보 블록을 순차적으로 유저 U1에 선택시킨다. 개발 시스템(1)은, 프리뷰 표시부(33)에 표시하는 대상이 되는 후보 블록(예를 들어 제1 후보와 제2 후보)을, 자동적으로 판단·추출한다. 또는, 변형예에서는, 유저 U1이 그 후보 블록을 지정하는 것으로 해도 된다.
유저 U1은, 프리뷰 표시부(33)에 표시된 후보 블록(예를 들어 제1 후보와 제2 후보) 각각의 처리 결과 화상을 보고 비교하여, 어느 쪽의 블록을 플로우라인(FL)에 채용하면 되는지 등을 판단하고, 판단에 따라서 승자 진출로서 남기는 처리 블록(BL)을 선택하는 소정의 조작을 한다. 개발 시스템(1)은, 그 조작에 따라서 선택된 쪽의 후보 블록을 승자 진출의 후보 블록으로서 남기고, 다음의 후보 블록이 있을 경우에는, 마찬가지로 대전 상대의 후보 블록으로서 설정하여, 마찬가지로 프리뷰 표시한다. 개발 시스템(1)은, 후보 블록의 수에 따라서 그러한 대전을 반복하여, 최종적으로 유저 U1에 의해 선택된 1개의 처리 블록(BL)을, 블록 배치부(32)의 플로우라인(FL)의 지정 개소(예를 들어 최후미)에 배치한다.
또한, 이 기능 6은, 토너먼트에서의 비교 대상으로서는, 예를 들어 「처리 A」 블록과 「처리 B」 블록의 비교과 같이, 다른 종류의 처리 블록간에서의 비교로 해도 된다. 혹은, 이 기능 6은, 「처리 A(내부 설정 1)」와 「처리 A(내부 설정 2)」의 비교와 같이, 동일 처리 블록의 다른 내부 설정(예를 들어 상세 파라미터값을 변화시킨 것)간의 비교로 해도 된다.
유저 U1은, 프리뷰 표시된 후보 블록 중, 어느 한쪽의 후보 블록에 대응하는 프리뷰 표시 영역을, 예를 들어 더블 클릭 등의 소정의 조작을 함으로써, 승자 진출의 처리 블록(BL)을 선택할 수 있다.
도 28은 동일한 처리 블록에서의 다른 내부 설정간에서 비교하는 경우를 제1예로서 나타낸다. 도 29는 다른 종류의 처리 블록간에서 비교하는 경우를 제2예로서 나타낸다. 또한, 도 28에서는, 자동으로 후보 블록이 추출되는 경우를 나타낸다. 도 29에서는 유저 U1이 후보 블록을 선택 조작하는 경우를 나타낸다.
도 28에서, 블록 선택부(31)에는, 예를 들어 「처리 A」 블록, 「처리 B」 블록과 같은 각종 처리 블록(BL)이 준비되어 있다. 예를 들어 「처리 A」 블록은 2치화이며, 「처리 B」 블록은 2치화와는 다른 화상 처리이다. 「처리 A」 블록은, 내부 설정으로서 예를 들어 「내부 설정 A1」 「내부 설정 A2」 「내부 설정 A3」 등을 갖는다. 블록 배치부(32)에는, 잠정적인 플로우라인(FL)으로서, 먼저 「카메라 도입」 블록 b1이 배치된 상태이다. 유저 U1은, 토너먼트 방식(특히 내부 설정 비교 방식)으로의 프리뷰 실행 조작을 한다. 그 조작에 따라, 개발 시스템(1)은, 「카메라 도입」 블록 b1의 다음에 배치가 가능한 블록을 자동적으로 판단·추출하고, 추출한 처리 블록(BL) 중, 토너먼트 방식으로의 비교 표시를 위한 소정의 수(비교수로 함)의 처리 블록(BL) 또는 내부 설정을 후보로서 추출한다. 토너먼트 방식으로의 비교수는, 미리 고정값(예를 들어 2)으로서 설정되어 있어도 되고, 최대수의 범위 내에서 자동적으로 가변되어도 된다. 유저 U1이 비교수를 지정·설정할 수 있도록 해도 된다.
본 예에서는, 개발 시스템(1)은, 다음에 배치하는 후보 블록으로서, 「처리 A」 블록을 추출한 것으로 한다. 그리고 이 「처리 A」 블록에 관한 복수의 내부 설정을 후보로 해서 비교 대상으로 한다. 내부 설정간의 비교를 행하는 경우에, 유저 U1이 블록 선택부(31)에서 선택한 처리 블록(BL)에 대해, 토너먼트 방식으로의 프리뷰 실행 조작을 해도 된다. 혹은, 블록 배치부(32)의 플로우라인(FL)에 배치되어 있는 최후미의 처리 블록(BL)에 대해, 토너먼트 방식으로의 프리뷰 실행 조작을 해도 된다.
도 28의 제1예에서는, 토너먼트 방식으로의 비교수를 2로 한다. 개발 시스템(1)은, 프리뷰 표시부(33)에서의 토너먼트 방식으로 프리뷰 표시하는 영역(2800)(본 예에서는 정사각형)에서, 비교수 2에 따른 비교 영역(2801, 2802)을 마련한다. 개발 시스템(1)은, 「처리 A」 블록에서의 대전 후보가 되는 내부 설정을 추출한다. 처음에는, 예를 들어 「내부 설정 A1」과 「내부 설정 A2」가 후보로 된다. 개발 시스템(1)은, 입력으로 되는 카메라 도입 화상에 대한, 각각의 후보의 내부 설정에서의 「처리 A」의 처리 결과 화상을 얻는다. 개발 시스템(1)은, 각각의 비교 영역에, 각각의 내부 설정에서의 처리 결과 화상을 프리뷰 화상으로서 표시한다. 본 예에서는, 개발 시스템(1)은, 비교 영역(2801)에, 「내부 설정 A1」에서의 처리 결과 화상(2811)(여기서는 「처리 A1」이라고도 나타냄)을 표시하고, 비교 영역(2802)에, 「내부 설정 A2」에서의 처리 결과 화상(2812)(여기서는 「처리 A2」라고도 나타냄)을 표시한다. 또한 이때, 프리뷰 표시부(33)에는, 처리 대상 화상인 카메라 도입 화상을 함께 표시해도 되고, 각각의 내부 설정의 설명 정보 등을 표시해도 된다.
유저 U1은, 프리뷰 표시된 2개의 처리 결과 화상(2811, 2812)을 보고 비교하여, 다음에 배치하는 처리 블록의 내부 설정으로서 어느 쪽이 적합한지 등을 판단하여, 어느 것의 내부 설정의 블록을 승자 진출로 남기는 블록으로서 소정의 선택 조작을 한다. 예를 들어, 유저 U1은, 「내부 설정 A1」을 선택하는 경우에는, 처리 결과 화상(2811)의 비교 영역(2801)에 대해, 더블 클릭 등의 조작을 한다. 이 조작에 따라, 개발 시스템(1)은, 「내부 설정 A1」의 「처리 A」 블록을 승자 진출의 후보로서 남기고, 선택되지 않은 쪽의 「내부 설정 A2」를 패배자로서 후보로부터 제외시킨다. 이와 같이 하여, 먼저 2개의 후보의 내부 설정으로부터 1개의 후보의 내부 설정이 선택된다. 그 밖에 후보가 없을 경우에는, 이 1개의 후보의 내부 설정이 채용되는 것으로서 결정된다. 개발 시스템(1)은, 블록 배치부(32)의 플로우라인(FL)의 지정 개소에, 상기 결정된 「내부 설정 A1」의 「처리 A」 블록을 배치한다.
또한, 이에 한정하지 않고, 토너먼트의 결과에 기초하여, 유저 U1이 블록 선택부(31)로부터 「내부 설정 A1」의 「처리 A」 블록을 선택해서 블록 배치부(32)에 배치해도 된다. 상기 제1예에서는, 개발 시스템(1)이 자동적으로 비교 후보의 내부 설정을 선택하고 있지만, 이에 한정하지 않고, 유저 U1이 비교 후보의 내부 설정을 선택 조작해도 된다.
도 29의 제2예에서는, 블록 선택부(31)에 예를 들어 「처리 A」, 「처리 B」, 「처리 C」와 같은 각종 처리 블록(BL)이 준비되어 있다. 예를 들어 「처리 A」는 2치화이며, 「처리 B」나 「처리 C」는 2치화와는 다른 화상 처리이다. 「처리 B」는 예를 들어 회전 처리이다. 블록 배치부(32)에는, 잠정적인 플로우라인(FL)으로서, 먼저 「카메라 도입」 블록 b1이 배치된 상태이다. 유저 U1은, 토너먼트 방식(특히 블록간 비교 방식)으로의 프리뷰 실행 조작을 한다. 또한, 유저 U1은, 「카메라 도입」 블록 b1의 다음에 배치가 가능한 처리 블록(BL) 중, 비교 후보 블록으로서, 예를 들어 「처리 A」 블록과 「처리 B」 블록의 2개를 지정한다. 그 조작에 따라, 개발 시스템(1)은, 토너먼트 방식으로의 비교 표시를 위한 소정의 비교수(예를 들어 2)로의 후보 블록을 추출한다. 또한, 유저 U1이 복수의 처리 블록(BL)을 지정할 경우의 조작은, 각 블록의 클릭에 한정되지 않고, 커서(39)에 의해 프레임으로 둘러싸는 조작 등이어도 된다.
도 29의 예에서는, 개발 시스템(1)은, 프리뷰 표시부(33)에서의 토너먼트 방식으로 프리뷰 표시하는 영역(2900)(본 예에서는 정사각형)에서, 비교수 2에 따른 비교 영역(2901, 2902)을 마련한다. 개발 시스템(1)은, 처리 대상 화상인 카메라 도입 화상에 대한, 「처리 A」 블록에 의한 처리 결과 화상과, 「처리 B」 블록에 의한 처리 결과 화상을 얻는다. 개발 시스템(1)은, 비교 영역(2901)에, 「처리 A」 블록에 의한 처리 결과 화상(2911)을 표시하고, 비교 영역(2902)에, 「처리 B」 블록에 의한 처리 결과 화상(2912)을 표시한다. 또한, 프리뷰 표시부(33)에는, 카메라 도입 화상인 처리 대상 화상(2920)을 함께 표시해도 되고, 각 처리 블록의 설명 정보 등을 표시해도 된다.
유저 U1은, 프리뷰 표시된 2개의 처리 결과 화상(2911, 2912)을 보고 비교하여, 플로우라인(FL)에 배치하는 블록으로서 어느 것이 적합한지 등을 판단하여, 승자 진출로서 남기기 위한 어느 것의 처리 블록(BL)을 선택하는 소정의 조작을 한다. 예를 들어, 유저는, 「처리 A」 블록을 선택하는 경우에는, 처리 결과 화상(2911)의 비교 영역(2901)에 대해 더블 클릭 등의 조작을 한다. 이 조작에 따라, 개발 시스템(1)은, 「처리 A」 블록을 승자 진출로서 남기고, 선택되지 않은 쪽의 「처리 B」 블록을 후보로부터 제외시킨다. 그 밖에 후보 블록이 없을 경우에는, 「처리 A」 블록이 채용하는 블록으로서 결정된다. 개발 시스템(1)은, 블록 배치부(32)의 플로우라인(FL)의 지정 개소에, 선택된 「처리 A」 블록을 배치한다.
상기 제2예에서는, 유저 U1이 비교를 위한 후보 블록을 선택하고 있지만, 이에 한정하지 않고, 개발 시스템(1)이 자동으로 비교 후보 블록을 판단·추출해도 된다. 예를 들어, 개발 시스템(1)은, 미리 준비되어 있는 전체 종류의 처리 블록(BL)의 구성 정보에 기초하여, 「카메라 도입」 블록 b1의 다음에 배치 가능한 종류의 모든 블록을 추출해도 된다. 그리고 개발 시스템(1)은, 추출한 복수의 블록으로부터, 비교수에 따른 비교 후보의 조합을 생성해도 된다.
상기 제1예 및 제2예에서는, 먼저 2개의 후보를 비교하는 경우를 나타냈지만, 그 밖에 후보가 있을 경우에는, 마찬가지로, 승자 진출한 후보와 다른 후보의 비교가 가능하다. 도 30은 그 예를 나타내며, 도 28의 계속으로서, 후보의 내부 설정이 3개 있을 경우에 상당한다. 도 28에서, 「내부 설정 A1」의 「처리 A」 블록이 승자 진출로 선택된 후, 도 30에서는, 그 「내부 설정 A1」의 블록과, 다른 후보로서 3번째의 후보인 「내부 설정 A3」의 블록(여기서는 「처리 A3」이라고도 나타냄)을 비교하는 경우를 나타내고 있다.
개발 시스템(1)은, 프리뷰 표시부(33)의 영역(2800)에서, 비교 영역(2801)에서는, 도 28에서의 「처리 A1」 후의 처리 결과 화상(2811)의 표시를 그대로 두고, 비교 영역(2802)에서는, 도 28에서의 「처리 A2」 후의 처리 결과 화상(2812)을 소거하고, 「처리 A3」 후의 처리 결과 화상(2813)을 표시한다.
유저 U1은, 프리뷰 표시된 2개의 처리 결과 화상(2811, 2813)을 보고 비교하여, 플로우라인(FL)에 채용하는 내부 설정의 블록으로서 어느 것이 적합한지 등을 판단하여, 어느 것을 선택 조작한다. 예를 들어, 유저 U1은, 「내부 설정 A3」의 「처리 A」 블록을 선택하는 경우에는, 처리 결과 화상(2813)의 비교 영역(2802)에 대해 더블 클릭 등의 조작을 한다. 이 조작에 따라서, 개발 시스템(1)은, 「내부 설정 A3」의 「처리 A」 블록을 승자 진출로 하고, 그 밖에 후보가 없을 경우에는, 채용하는 블록으로서 결정한다. 개발 시스템(1)은, 블록 배치부(32)의 플로우라인(FL)의 지정 개소에, 선택된 「내부 설정 A3」의 「처리 A」 블록을 배치한다.
상기 토너먼트 방식의 프리뷰 기능에 의하면, 플로우라인(FL)의 처리 블록(BL)의 선택이나 내부 설정의 선택, 상세 파라미터 조정 등에 관해서 유저 U1을 어시스트할 수 있어, 경험이 적은 유저라도 시스템 개발이 가능해진다. 상기 토너먼트 방식에 의하면, 유저 U1은 예를 들어 2개의 화상을 비교해서 적합한 쪽의 블록을 순차적으로 선택할 수 있으므로, 비교 검토가 용이하다.
도 31은 상기 기능 6에 관한 변형예를 나타낸다. 도 31의 예에서는, 「처리 A」 블록에서의 「내부 설정 A1」, 「내부 설정 A2」, 「내부 설정 A3」의 3종류의 내부 설정을 동시에 비교하는 경우를 나타낸다. 이 방식은, 토너먼트 방식(승자끼리 순차적으로 대전하는 방식)이 아니지만, 프리뷰에서의 비교에 기초하여 처리 블록(BL)을 선택할 수 있는 점은 동일하다.
도 31의 예에서는, 블록 배치부(32)의 잠정적인 플로우라인(FL)으로서, 「카메라 도입」 블록 b1, 「처리 A」 블록이 배치되어 있다. 유저 U1은, 예를 들어 「처리 A」 블록의 내부 설정에 대해서, 프리뷰에서의 비교 방식으로 채용을 검토하고자 하는 경우에, 소정의 프리뷰 실행 조작을 한다. 개발 시스템(1)은, 그 조작에 따라, 후보 블록(본 예에서는 「처리 A」 블록)에서의 후보가 되는 복수의 내부 설정(본 예에서는 「내부 설정 A1」, 「내부 설정 A2」, 「내부 설정 A3」)을 추출하고, 프리뷰 표시부(33)의 영역(3100)에, 복수의 후보의 내부 설정에 관한 프리뷰 화상을 병렬 표시한다. 본 예에서는, 영역(3100)에서, 각각의 내부 설정에 의한 「처리 A」 블록의 처리 결과 화상(3111, 3112, 3113)이 예를 들어 가로 일렬로 병렬 표시되어 있다.
유저 U1은, 이러한 프리뷰 화상을 보고 비교하여, 후보로서 남기는 1개 이상의 내부 설정을 판단하여, 소정의 선택 조작을 한다. 이 조작은, 상술한 바와 마찬가지로 프리뷰 화상의 더블 클릭 등으로 해도 된다. 본 예에서는, 프리뷰 표시부(33)의 영역(3100)에서, 각 내부 설정의 프리뷰 화상에, 선택 버튼(3130)(예를 들어 체크 표시를 입력할 수 있는 버튼)도 마련되어 있다. 선택 버튼(3130)은, 후보 블록 또는 채용하는 블록을 선택·지정하기 위한 버튼이다. 유저 U1은, 예를 들어 화상(3113)에서 나타내는 「내부 설정 A3」이 가장 적합하다고 판단한 경우, 그 화상(3113)에 대응하는 선택 버튼(3130)을 누른다. 개발 시스템(1)은, 조작된 선택 버튼(3130)에 대응하는 내부 설정의 블록을 채용으로 한다. 이 조작에 따라, 개발 시스템(1)은, 선택된 「내부 설정 A3」에서의 「처리 A」 블록을 플로우라인(FL)에 채용한다.
프리뷰 표시부(33)에서의 선택 버튼(3130)은, 1개만을 선택 가능한 방식으로 해도 되지만, 다른 방식에서는, 복수를 선택 가능하게 해도 된다. 즉, 프리뷰의 결과, 유저 U1이, 2개 이상을 후보로서 남길 수 있게 해도 된다. 예를 들어, 유저 U1은, 채용하는 내부 설정을 1개로 좁힐 수 없을 경우에, 선택 버튼(3130)으로 복수를 선택해서 후보로서 남기고, 나중에 생각해서 1개로 결정할 수도 있다. 상기 예는 내부 설정간의 비교이지만, 다른 종류의 블록간의 비교에 대해서도 마찬가지로 적용 가능하다.
[변형예: 복수의 플로우라인]
도 32는, 상기 기능 6에 관한 변형예로서, 유저 U1에 의한 처리 블록(BL)의 선택에 따라, 블록 배치부(32)에 복수의 플로우라인(FL)을 임시로 제작할 수 있는 기능에 대해서 나타낸다. 예를 들어 상술한 도 28 등의 토너먼트 방식의 기능 6을 사용하여, 플로우라인(FL) 상에 배치하는 처리 블록(BL)을 선택하는 경우에, 1개의 처리 블록(BL)(내부 설정의 차이를 포함함)으로 결정할 수 없을 경우에는, 유저 U1이 선택한 2개 이상의 처리 블록(BL)에 따른 2개 이상의 플로우라인 구성을 임시로 제작하는 것도 생각할 수 있다. 개발 시스템(1)은, 예를 들어 선택된 처리 블록(BL)의 종류 또는 내부 설정의 차이에 따라, 임시 플로우라인(FL)을 제작하여, 블록 배치부(32)에 표시한다.
도 32에서는, 예를 들어 「처리 A」 블록에 「내부 설정 1」과 「내부 설정 2」가 있다고 하자. 블록 배치부(32)의 잠정적인 플로우라인(FL)으로서, 「카메라 도입」 블록 b1의 다음에, 「처리 A」 블록으로서, 「내부 설정 A1」과 「내부 설정 A2」의 어느 블록을 배치해야 하는지를, 유저 U1이 검토·선택하는 것으로 한다. 그를 위해서, 개발 시스템(1)은, 프리뷰 표시부(33)에서, 「내부 설정 A1」에 의한 프리뷰 화상(3211)과, 「내부 설정 A2」에 의한 프리뷰 화상(3212)을 비교 표시하고 있다. 유저 U1은, 그러한 2종류의 내부 설정으로부터, 아직 1개로 결정할 수 없을 경우에, 예를 들어 선택 버튼(3230)으로 그들 2개를 온 상태(체크 상태)로서 선택하여, 후보로서 남긴다. 개발 시스템은, 블록 배치부(32)에, 「내부 설정 A1」을 선택한 경우의 제1 후보의 플로우라인(3241)(FL1)과, 「내부 설정 2」를 선택한 경우의 제2 후보의 플로우라인(3242)(FL2)을 제작해서 표시한다.
또한, 예를 들어 개발 시스템(1)은, 블록 배치부(32)의 영역을, 플로우라인(FL)(예: FL1, FL2)마다 나누도록, 예를 들어 파선으로 구분하고, 각각의 구분된 영역 내에, 각각의 후보의 플로우라인(FL)을 표시해도 된다.
유저 U1은, 각각의 후보의 플로우라인(FL)에 대해서, 뒤에 다른 처리 블록(BL)을 연결시키거나 하여, 각각의 플로우라인 구성을 시행할 수도 있다. 각 플로우라인 구성 상태를, 상술한 바와 마찬가지로 프리뷰 기능에 의해 확인 가능하다. 유저 U1은, 시행에 따라, 후보 플로우라인을 삭제할 수도 있다. 유저 U1은, 시행에 따라, 채용하는 1개의 플로우라인(FL)을 결정할 수 있다. 예를 들어, 유저 U1은, 블록 배치부(32)에서 플로우라인(FL)마다 마련된 선택 버튼(3250)을 조작함으로써, 채용하는 1개의 플로우라인(FL), 혹은 후보로서 남겨서 보존하는 1개 이상의 플로우라인(FL)을 결정해도 된다.
또한, 상기 예에 한정되지 않고, 처음부터 블록 배치부(32)에서 복수의 후보의 플로우라인(FL)을 제작 가능하게 해도 된다. 예를 들어, 유저 U1은, 블록 배치부(32)에서, 1번째의 플로우라인을 임시로 제작하고, 그 후, 2번째의 플로우라인을 추가하기 위한 소정의 조작(예를 들어 플로우라인 추가 커맨드 입력)을 행한다. 개발 시스템(1)은, 그 조작에 따라서, 예를 들어 도 32와 마찬가지로 블록 배치부(32)의 영역을 구분하고, 2번째의 플로우라인의 제작·편집을 위한 영역을 제작하여, 공백 블록 BS를 배치한다. 유저 U1은, 그 2개의 영역에 대해, 마찬가지로 조작함으로써, 2번째의 가상의 플로우라인을 제작할 수 있다. 유저 U1은, 선택한 플로우라인에 대해, 데이터로서 보존하는 조작(예를 들어 보존 커맨드 입력)이 가능하다.
[플로우라인에 분지를 갖는 경우]
도 33은 블록 배치부(32)에서의 플로우라인(FL)의 다른 구성예 및 다른 GUI 예를 나타낸다. 도 33에서의 플로우라인(FL)은, 분지, 바꾸어 말하면 병렬의 처리 블록을 갖는 구성의 예를 나타낸다. 플로우라인(FL)은, 상술한 단순한 직렬의 구성에 한정되지 않고, 이와 같이 필요에 따라서 분지에 의한 병렬 처리의 구성도 가능하다. 또한, 도 33에서는, 플로우라인(FL)의 표시 상의 방향을 화면내 세로 방향으로 했을 경우를 나타내고 있다. 유저 U1은, 블록 배치부(32)에서, 소정의 조작(예를 들어 분지 커맨드 입력)에 의해 분지를 제작할 수 있다.
또한, 도 33에서의 플로우라인(FL)의 GUI는, 처리 블록(BL)간에 노드 ND를 갖는 경우를 나타낸다. 이 노드 ND는, 처리 블록(BL)에 대한 입출력 데이터(화상 등)를 나타낸다. 유저 U1은, 블록 배치부(32)에서, 이 노드 ND에 대한 조작도 가능하다. 예를 들어, 블록 선택부(31)로부터 원하는 처리 블록(예를 들어 「처리 X」 블록)을 드래그&드롭으로 블록 배치부(32) 내의 원하는 노드 ND의 부근에 배치함으로써, 그 처리 블록(BL)의 추가 등이 가능하다. 혹은, 원하는 노드 ND에 대해, 원하는 화상 파일을 배치함으로써, 그 노드 ND의 뒤의 처리 블록(BL)에의 입력 화상으로서 지정하는 것도 가능하다. 혹은, 프리뷰 표시의 대상·범위를 유저 U1이 지정할 때, 노드 ND에 대한 조작으로 하는 것도 가능하다.
플로우라인(FL)은, 상기 분지의 구성 외에도, 일반적인 정보 처리의 흐름도 등과 마찬가지로, 루프 구성 등도 가능하다.
[기능 7: 라인 센서 설치 지원]
도 34는, 기능 7로서, 라인 센서 설치 지원 기능(바꾸어 말하면 카메라/센서 디바이스 설정 지원 기능)에 관한 설명도를 나타낸다. 기능 7은, 도 1의 화상 검사 시스템(2)에 설치되는 상술한 카메라/센서 디바이스(21)(도 2에서의 디지털 신호 출력 장치(105))에 관한 설치의 설정을 지원하는 기능이다.
화상 검사 시스템(2)에서의 화상 검사 처리를 개시하기 위해서는, 도 1과 같이, 통상, 선두에 화상(50)을 입력하는 카메라 도입 처리(201)가 있고, 그에 대응하여, 개발 시스템(1)의 GUI 화면(30)에서는, 플로우라인(FL)의 선두에서 「카메라 도입」 블록 b1을 마련한다. 유저 U1은, 그 「카메라 도입」 블록 b1에 관한 내부 설정의 선택이나 내부 설정의 상세 파라미터값의 설정 등의 작업을 행할 필요가 있다. 적합한 화상 검사 시스템(2)의 플로우라인(FL)을 제작·결정하기 위해서는, 「카메라 도입」 블록 b1에서의 적합한 파라미터 설정값을 결정할 필요가 있다. 기능 7은, 이 「카메라 도입」 블록 b1의 내부 설정의 상세 파라미터 설정 등의 수속을, 프리뷰 기능 등을 사용하여 어시스트하는 기능이다. 이 기능 7은, 하기 기능 7a 등을 포함한다. 또한, 도 34의 하부에는, 각 기능에 의한 2가지의 프리뷰 표시의 예를 통합해서 나타내고 있다.
(기능 7a) 개발 시스템(1)은, 프리뷰 표시부(33)에서, 적정 화상과 카메라 도입 화상을 배열하여 프리뷰 표시하는 기능을 갖는다. 이 기능 7a를 도 34의 (A)에서 나타낸다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역(3400)에서, 「카메라 도입」 블록 b1에 관한, 미리 설정되어 있는 적정 화상(3401)과, 플로우라인(FL) 상의 「카메라 도입」 블록 b1의 내부 설정으로 카메라 도입 처리한 경우의 출력 화상인 카메라 도입 화상(3402)을 병렬로 표시한다. 카메라 도입 화상(3402)은, 카메라/센서 디바이스(21)로부터의 실시간으로 촬영된 화상(50)의 입력에 기초한, 카메라 도입 처리 결과의 화상이다. 유저 U1은, 프리뷰 표시부(33)에서 이들 화상을 보고 비교하여, 제작 중인 플로우라인(FL)의 「카메라 도입」 블록 b1의 내부 설정에 의해 얻어지는 카메라 도입 화상(3402)이, 적정 화상(3401)과 비교해서 적합한지 등을 확인할 수 있다. 유저 U1은, 그 확인 결과에 따라, 그 내부 설정의 파라미터값으로 결정하거나, 다른 내부 설정의 파라미터값으로 변경하는 것 등이 가능하다.
(기능 7b) 개발 시스템(1)은, 상기 기능 7a에서의 적정 화상(3401)과 카메라 도입 화상(3402)의 비교 시에, 카메라 도입 화상(3402)이 적정 화상(3401)과의 괴리가 큰 경우에, 경고를 표시하는 기능을 갖는다. 이 기능 7b를 (B)에 나타낸다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역(3400)에서의, 적정 화상(3401)에 대한 카메라 도입 화상(3402)의 내용의 괴리 정도를, 화상 처리에 기초하여 평가한다. 개발 시스템(1)은, 그 괴리 정도가, 예를 들어 역치 이상으로 큰 경우, 프리뷰 표시부(33)에, 괴리가 큰 것을 나타내는 경고를 표시한다. 본 예에서는, 경고를 표시하는 경우, 상술한 도 26의 기능과 마찬가지로, 개발 시스템(1)은, 프리뷰 표시부(33)의 영역(3400)에서, 적어도 카메라 화상(3402)을 둘러싸는 직사각형의 외측 프레임선(3410)을, 소정의 색 등의 표현으로 강조 표시한다. 또한, 개발 시스템(1)은, 외측 프레임선(3410)의 색에 한정되지 않고, 경고를 나타내는 문자 화상(예를 들어 「divergence」) 등을 표시해도 된다. 유저 U1은, 이 경고를 봄으로써, 적정 화상(3401)에 대한 괴리가 큰 것을 인식하기 쉬워, 「카메라 도입」 블록 b1의 내부 설정의 파라미터값의 조정 등을 행할 수 있다.
(기능 7c) 개발 시스템(1)은, 상기 「카메라 도입」 블록 b1의 설정에 있어서, 당해 블록을 복수 회 클릭 등 조작함으로써, 당해 블록의 내부 설정의 상세 파라미터 설정값(예를 들어 촬상 주기)을 바꾸면서 프리뷰 표시할 수 있는 기능을 갖는다. 개발 시스템(1)은, 상기 프리뷰 표시 시에, 유저 U1이 블록 배치부(32)의 「카메라 도입」 블록 b1 또는 프리뷰 표시부(33)의 카메라 도입 화상(3402)의 개소를, 클릭 등으로 조작한 경우에, 당해 「카메라 도입」 블록 b1의 내부 설정을 순환적으로 변경한다(도 17 등과 마찬가지임). 예를 들어 클릭 조작마다, 「내부 설정 1」, 「내부 설정 2」, 「내부 설정 3」, 「내부 설정 1」, ……과 같이 전환된다. 본 예에서는 이들 각 내부 설정은, 파라미터 설정값으로서 촬상 주기가 다른 것으로 한다. 그리고 개발 시스템(1)은, 변경된 내부 설정의 상태에 따른 프리뷰 화상을, 프리뷰 표시부(33)에 표시한다. 예를 들어, 개발 시스템(1)은, 도 34의 (A)와 같은 프리뷰 표시 상태에서, 1회 클릭이 되었을 경우에는, 「카메라 도입」 블록 b1의 「내부 설정 1」을, 「내부 설정 2」로 변경한 상태로 하고, 「내부 설정 2」에 의한 처리 결과 화상을, 카메라 도입 화상(3402)으로서 표시한다. 이에 의해, 유저 U1은, 내부 설정을 전환하면서, 각각 적정 화상(3401)과의 비교 확인을 용이하게 할 수 있다.
상기 기능 7에 의하면, 플로우라인(FL)에 내부 설정이 변경 가능한 「카메라 도입」 블록 b1을 구비하고, 또한, 당해 「카메라 도입」 블록 b1에 관한 적정 화상과의 비교에 의한 프리뷰 기능을 구비하고 있다. 따라서, 종래 번잡하고 손이 많이 가는 라인 센서 등의 카메라/센서 디바이스(21)의 설치 설정을 간소화할 수 있다. 그와 함께, 기능 7에 의하면, 클릭 등의 간단한 조작으로, 그 「카메라 도입」 블록 b1의 내부 설정의 변경과, 적정 화상과의 비교에 의한 영상 확인을, 용이하게 행할 수 있다. 이에 의해, 화상 검사 시스템(2)의 라인 센서 등의 카메라/센서 디바이스(21)의 설치·설정의 난이도를 대폭 저감할 수 있어, 유저의 부담 경감에 공헌할 수 있다.
[카메라 도입 블록의 내부 설정에 의한 영향]
예를 들어, 도 1의 화상 검사 시스템(2)의 카메라/센서 디바이스(21)로서 라인 센서를 사용하는 경우에 있어서, 라인 센서 화상의 애스펙트비가, 검사·판정 등의 정밀도에 영향을 미치는 경우가 있다. 애스펙트비에 영향을 미치는 파라미터로서, 예를 들어 촬상 주기(바꾸어 말하면 트리거 간격)가 있다. 이 촬상 주기의 값에 따라서는, 카메라 도입 화상에 있어서, 대상물(20)의 상이 느릿느릿하고, 애스펙트비가 부적합해져 버려, 판정 등의 정밀도가 저하되는 경우가 있다.
그래서, 예를 들어 도 34에서는, 개발 시스템(1)은, 상기 「카메라 도입」 블록 b1에서의 내부 설정으로서, 촬상 주기를 선택하고, 프리뷰 표시부(33)의 카메라 도입 화상(3402)의 영역에는, 선택한 촬상 주기로 변경한 경우의 카메라 도입 화상(3402)을 표시한다. 이에 의해, 유저 U1은, 예를 들어 애스펙트비가 적정한 적정 화상(3401)과의 비교로, 카메라 도입 화상(3402)의 애스펙트비가 적합해지도록, 「카메라 도입」 블록 b1의 적합한 촬상 주기의 설정이 용이하게 된다.
상기 기능 7의 변형예로서는 이하로 해도 된다. 이 기능 7에서, 상술한 멀티프리뷰 기능을 병용한다. 개발 시스템(1)은, 프리뷰 표시부(33)에, 「카메라 도입」 블록 b1의 내부 설정의 차이마다의 복수의 카메라 도입 화상을, 멀티프리뷰로서 병렬로 표시시킨다.
[카메라 도입 블록의 내부 설정을 위한 GUI]
상기 「카메라 도입」 블록 b1은, 내부 설정으로서, 화상 검사 시스템(2)의 카메라/센서 디바이스(21)(도 2에서의 디지털 신호 출력 장치(105))의 설정에 관한 파라미터값을 갖고 있다. 파라미터의 예는, 촬상 주기 외에, 촬상 방향, 다른 광학 조건 등을 들 수 있다. 개발 시스템(1)은, GUI 화면(30)에서의 유저 U1의 조작에 따라, 「카메라 도입」 블록 b1의 내부 설정의 상세 파라미터값을 선택, 설정, 보존할 수 있도록 해도 된다.
도 35에는, GUI 화면(30)에서의 「카메라 도입」 블록 b1의 내부 설정에 관한 유저 설정예를 나타낸다. 블록 선택부(31)에서, 유저 U1은, 「카메라 도입」 블록 b1을 선택하고, 내부 설정에 관한 신규 작성을 선택 조작한다. 개발 시스템(1)은, 그 조작에 따라, 「카메라 도입」 블록 b1의 내부 설정을 위한 GUI 예로서 내부 설정란(3500)을 표시한다. 유저 U1은, 그 내부 설정란(3500)에서, 「카메라 도입」 블록 b1의 내부 설정의 파라미터값 등을 확인이나 설정하고, 신규 내부 설정으로서 등록할 수 있다. 내부 설정란(3500)에서는, 예를 들어 내부 설정의 명칭, 사용하는 카메라/센서 디바이스, 촬상 주기, 그 밖의 파라미터값을 입력할 수 있다. 그 내부 설정의 등록 후에는, 카메라 도입 블록 b1의 내부 설정의 조작 시에, 그 내부 설정이 선택지로서 표시되어 이용 가능해진다.
[기능 8: 템플릿 매칭 설정 지원 기능]
도 36은, 기능 8로서, 템플릿 매칭 설정 지원 기능에 관한 설명도를 나타낸다. 종래, 템플릿 매칭 방법을 적용하는 경우, 카메라/센서 디바이스의 촬상 화상에 대해, 비교용 화상(바꾸어 말하면 템플릿 화상, 참조 화상 등)과의 비교를 행하고, 그것들의 일치 정도에 기초하여 검사·판정 등이 행해진다. 이러한 템플릿 화상을 등록하기 위해서는, 화상 데이터의 좌표 정보를 지정할 필요가 있다. 기능 8은, 이러한 템플릿 매칭 방법에서의 템플릿 화상 등의 설정을 보조·지원하는 기능이다. 이 기능 8은, 하기 기능 8a 등을 포함한다.
(기능 8a) 개발 시스템(1)은, 템플릿 화상의 설정에 있어서, 프리뷰 표시부(33) 상에서, 유저 U1에 의한 마우스 등의 조작을 행하여, 템플릿 영역을 지정하는 기능을 갖는다.
(기능 8b) 개발 시스템(1)은, 유저 U1에 의한 템플릿의 클릭 등의 조작에 따라, 복수의 사이즈로의 템플릿 후보를 프리뷰 표시하는 기능을 갖는다.
(기능 8c) 개발 시스템(1)은, 상기 기능 8b의 조작에 더하여, 유저 U1에 의한 프리뷰 화상의 더블 클릭 등의 조작에 따라, 템플릿 화상을 결정하는 기능을 갖는다.
도 36의 예에서는, 유저 U1이, 블록 선택부(31)에서 「카메라 도입」 블록 b1을 선택 조작하여, 템플릿 화상의 등록 수속을 행한다. 개발 시스템(1)은, 프리뷰 표시부(33)의 영역에, 실제 카메라 화상에 기초한, 「카메라 도입」 블록 b1에 의한 카메라 도입 화상(3601)을 표시한다. 유저 U1은, 그 영역에서, 카메라 도입 화상(3601) 중, 템플릿으로서 적합한 원하는 영역을 선택 조작한다. 이 때의 선택 조작은, 예를 들어 마우스의 커서(39)의 클릭이나 드래그 등에 의한 직사각형 범위 지정을 들 수 있다. (A)의 예에서는, 유저 U1은, 제품 등의 대상물(20)에 대응한 원형을 포함·외접하는 직사각형의 범위(3602)를, 템플릿 영역으로서 지정하고 있다. 개발 시스템(1)은, 조작으로 선택된 템플릿 영역을, 템플릿 화상의 후보(후보 1로 함)로서 임시 등록한다.
마찬가지로, (B), (C)에는, 다른 후보의 템플릿 영역이 지정된 예를 나타내고 있다. (B)의 예에서는, 문자 화상 「ABC」의 부분을 둘러싸는 직사각형의 범위(3603)가, 템플릿 영역의 후보 2로서 지정되어 있다. (C)의 예에서는, 문자 화상 「B」의 부분을 둘러싸는 직사각형의 범위(3604)가, 템플릿 영역의 후보 3으로서 지정되어 있다. 또한, 템플릿 화상의 후보의 결정·등록 시에, GUI 예로서 「템플릿 화상의 후보로서 등록」 커맨드 등을 사용해도 된다.
또한, 상기한 바와 같이, 유저 U1이 소정의 GUI 조작으로, (A), (B), (C)와 같은 개별의 템플릿 영역의 후보를 지정하도록 해도 되지만, 다른 방법에서는, 개발 시스템(1)은, (A)와 같은 유저 U1의 조작에 의한 1개의 템플릿 영역의 지정에 기초하여, 자동적으로, 템플릿 영역의 사이즈를 가변하여, (B), (C)와 같은 후보를 생성해도 된다.
도 36의 하부에서는, 상기 기능 8b의 예를 나타내고 있다. 유저 U1은, 상기 등록된 템플릿 화상의 후보를 선택 조작한다. 예를 들어, 프리뷰 표시부(33)에서, 유저 U1이, 템플릿 화상에 대응하는 템플릿 영역을 클릭 등으로 선택하여, 소정의 프리뷰 실행 조작을 한다. 개발 시스템(1)은, 그 조작에 따라, 프리뷰 표시부(33)의 영역에, 선택된 1개 이상의 템플릿 화상의 후보를 프리뷰 표시한다. 본 예에서는, 후보 1, 2, 3의 3개의 후보가 생성되어 있는 경우에, 그러한 3개의 후보가 대상으로서 선택된다. 그 경우에, 개발 시스템(1)은, 그러한 3개의 후보의 템플릿 화상을, 상술한 멀티프리뷰 기능과 마찬가지로, 소정의 분할수(예를 들어 4)의 분할 영역에, 멀티프리뷰로서 병렬로 표시한다. 본 예에서는, 좌측 상단의 분할 영역에 후보 1의 화상이 표시되고, 우측 상단의 분할 영역에 후보 2의 화상이 표시되고, 좌측 하단의 분할 영역에 후보 3의 화상이 표시되어 있다.
유저 U1은, 프리뷰 화면에서 이들 후보의 화상을 비교하여, 템플릿 화상으로서 적합한 후보를 선택하여, 템플릿 화상으로서 결정하는 소정의 조작을 행한다. 예를 들어, 유저 U1은, 후보 2를 선택하는 경우에는, 후보 2의 분할 영역을 더블 클릭 등으로 조작한다. 이에 의해, 개발 시스템(1)은, 그 후보의 화상을, 「카메라 도입」 블록 b1의 템플릿 화상으로서 결정해서 데이터로서 보존한다. 또한, 이때, 도시된 바와 같이, GUI 예로서, 「템플릿 화상으로서 등록」 커맨드 등을 사용해도 된다.
상기 기능 8에 의하면, 유저 U1은, 화상 검사 시스템(2)의 플로우라인(FL) 상에서의 템플릿 매칭 방법에 관한 템플릿 화상을, 적은 수고로 용이하게 등록할 수 있다. 또한, 상기 예에서는, 「카메라 도입」 블록 b1에 관련지어서 템플릿 화상을 등록하는 경우를 설명하였지만, 「판정」 블록 b2에 관련지어서 판정 처리에서 사용하는 템플릿 화상을 등록하는 것이 마찬가지로 가능하다.
[플로우라인 확인 화면]
도 37은, 다른 GUI 화면 예로서, 상술한 각 기능을 사용하여 유저 U1이 제작해서 보존한 1개 이상의 플로우라인(FL)을 확인할 수 있는 GUI 화면(60)의 예를 나타낸다. 개발 시스템(1)은, 상술한 도 5와 같은 플로우라인 제작용 GUI 화면(30) 외에, 도 37과 같은 제작 완료인 플로우라인을 확인할 수 있는 GUI 화면(60)을 제공해도 된다. 도 37의 GUI 화면(60)은, 플로우라인 확인 화면이며, 플로우라인 정보란(3701), 프리뷰란(3702), 검사 결과란(3703) 등을 갖는다.
플로우라인 정보란(3701)에는, 제작 및 보존 완료인 1개 이상의 플로우라인(FL)의 정보가 정리해서 표시된다. 본 예에서는, 1개의 플로우라인(FL)의 정보는, 플로우라인 명칭의 행과, 그 플로우라인(FL)을 구성하는 각 처리 블록(BL)의 명칭의 행을 갖고, 플로우라인(FL)을 구성하는 순서로 처리 블록(BL)의 정보가 배열되어 있다.
프리뷰란(3702)은, 플로우라인 정보란(3701)에서 유저 U1이 선택한 플로우라인(FL)에 관한 프리뷰 표시가 가능하다.
검사 결과란(3703)은, 선택한 플로우라인(FL)에 대응하는 화상 검사 플로에 의해 화상 검사 시스템(2)에서 대상물(20)에 대한 검사를 실행한 경우의 검사 결과 정보가 표시된다. 이 때의 검사란, 완성된 플로우라인에 의한 실 검사에 한정되지 않고, 제작 중인 플로우라인에 의한 시험적인 검사여도 된다. 검사 결과란(3703)에서는, 예를 들어 검사 일시, 검사자, 전체 검사수, OK수, NG수 등의 정보가 표시된다.
도 37에서, 제작·보존되어 있는 플로우라인(FL)의 예, 즉 화상 검사 시스템(2)의 화상 검사 플로의 예는, 이하이다. 플로우라인(FL1)은, 순서대로, 「카메라 도입」 블록 BL1, 「2치화」 블록 BL2, 「2치 화상 형상 변환」 블록 BL3, 「타원 묘화」 블록 BL4 및 「판정」 블록 BL5를 갖고 구성되어 있다. 또한, 각 블록의 내부 설정 등의 상세에 대해서도, 소정의 버튼 조작 등에 의해 표시해서 확인 가능하다.
[실시 형태 1의 효과 등]
이상 설명한 바와 같이, 실시 형태 1의 개발 시스템(1)에 의하면, 화상 검사 시스템(2)의 개발에 관해서, 개발의 난도나 유저에 의한 작업의 수고를 저감할 수 있다. 실시 형태 1의 개발 시스템에 의하면, 화상 검사 시스템(2)의 플로우라인의 편집 및 프리뷰 기능을 사용함으로써, 화상 검사 시스템(2)의 플로우라인의 동작 확인 등을, 종래보다 용이하게 효율적으로 실현할 수 있다. 실시 형태 1의 개발 시스템에 의하면, GUI 화면에서, 처리 블록이나 내부 설정의 변경 등을 하면서, 플로우라인의 구성을 다양하게 시행할 수 있다. 실시 형태 1의 개발 시스템에 의하면, 제작 도중인 플로우라인에 대해서도, 플로우라인이나 블록 등의 동작 상태를 프리뷰로 확인할 수 있으므로, 개발을 용이화 및 효율화할 수 있다. 실시 형태 1의 개발 시스템에 의하면, 시스템의 플로우라인 전체를 대충 완성하고 나서가 아니면 프리뷰에 의한 동작 확인 등을 할 수 없는 종래 기술에 비하여, 개발을 효율화할 수 있다. 실시 형태 1의 개발 시스템에 의하면, GUI 화면에서 유저를 지원함으로써, 고도의 기술 지식 등을 갖고 있지 않은 유저라도, 화상 검사 시스템(2)의 플로우라인의 개발·제작이 가능해진다.
<실시 형태 2>
도 39 등을 사용하여, 실시 형태 2의 개발 시스템 및 방법 등에 대해서 설명한다. 실시 형태 2의 기본적인 구성은, 실시 형태 1과 마찬가지이며, 이하에서는, 실시 형태 2에서의 실시 형태 1과는 다른 구성 부분에 대해서 주로 설명한다. 실시 형태 2의 개발 시스템은, 실시 형태 1에서 설명한 기능에 더하여, 또한 이하와 같은 기능을 갖는다.
1. 프리뷰 표시 유무 전환 기능
2. 프리뷰 표시 해상도 설정 기능
3. 프리뷰 표시 회전 기능
4. 플로우라인 블록 배치 가부 표시 기능
5. 필수 설정 미설정 블록 표시 기능
6. 플로우라인 처리 중 블록 표시 기능
이들 기능은, 도 12에서의 설명과 마찬가지로, 유저 U1에 의한 선택 실행이나 유저 설정도 가능하게 한다. 단일한 기능만을 실장한 형태나, 복수의 기능을 실장한 형태도 가능하다.
[2-1. 프리뷰 표시 유무 전환 기능]
도 39는 프리뷰 표시 유무 전환 기능에 관한 설명도이며, GUI 화면(30)의 예를 나타낸다. GUI 화면(30)은, 블록 선택부(31)와, 블록 배치부(32)와, 프리뷰 표시부(33)를 갖는다. 또한, 블록 선택부(31)나 프리뷰 표시부(33)는 항상 GUI 화면(30)에 표시될 필요는 없으며, 필요에 따라 팝업 표시되는 것이어도 된다. 과제로서, 화상 검사를 할 때는, 플로우라인의 모든 처리 블록의 처리 결과를 프리뷰 표시하는 것이 반드시 필요하지는 않다. 화상 검사의 중간 과정을 포함하는 모든 처리 블록의 처리 결과를 프리뷰 표시하면, 오히려 번거로워지는 경우가 있을 수 있다. 예를 들어, 상술한 도 15와 같이 복수의 처리 블록의 각 처리 결과를 시계열로 순차적으로 프리뷰 표시하는 경우나, 도 22와 같이 복수의 처리 블록의 각 처리 결과를 병렬로 프리뷰 표시하는 경우에, 플로우라인의 제작 상황이나 유저 U1에 따라서는, 중간 과정 등의 확인이 불필요해서, 번거롭다고 느끼는 경우가 있다.
그래서, 도 39의 프리뷰 표시 유무 전환 기능에서는, 플로우라인의 각 처리 블록에, 당해 블록의 처리 결과의 프리뷰 표시에 관한 ON/OFF를 설정할 수 있는 기능을 마련하였다. 도 39의 구체예에서는, 개발 시스템(1)의 GUI 화면(30)의 플로우라인란(블록 배치부)(32)에서의 각 블록(BL)에, 프리뷰 표시의 ON/OFF를 설정하는 스위치 등의 GUI(3901)를 갖는다. 유저 U1은, 원하는 블록(BL)(도 39의 예에서는 「처리 A」 블록)을 선택해서 그 스위치를 클릭 등 조작함으로써, 프리뷰 표시의 ON/OFF를 전환할 수 있다. 예를 들어 디폴트 설정에서는 전체 처리 블록(BL)이 ON 설정으로 되어 있어, 유저 U1이 OFF 설정으로 하고자 하는 처리 블록(BL)만을 조작하면 된다.
상술한 프리뷰 실행 조작에 따라, 플로우라인(FL)의 처리 결과의 프리뷰가 프리뷰란(33)에 표시된다. 이때, 예를 들어 도 15와 같은 시계열로의 프리뷰 표시로 할 경우에, GUI(3901)에서 OFF 설정되어 있는 처리 블록(BL)에 대해서는, 프리뷰 표시가 행해지지 않는다. 바꾸어 말하면, 개발 시스템(1)은, 당해 처리 블록(BL)에 대해서는, 처리 결과를 프리뷰 표시하기 위한 연산 처리를 행하지 않는다. 구체예에서는, 도시된 바와 같이, 카메라 도입 결과 화상과, 「처리 B」 결과 화상과, 「처리 C」 결과 화상이 프리뷰 표시되고, 「처리 A」 결과 화상은 표시되지 않는다(OFF 표시로 함). 또한, OFF 표시는, 흑색 배경 화상 등의 소정의 표시로 해도 되고, 프리뷰 표시가 OFF 설정인 것을 나타내는 소정의 표시(예를 들어 「OFF」 문자 화상 표시)로 해도 된다.
본 기능에 의해, 플로우라인의 임의의 처리 블록의 처리 결과만을 프리뷰 표시 가능하다. 개발자나 검사원 등의 유저 U1에게 있어서 필요한 처리 결과의 부분만을 프리뷰 표시할 수 있다. 따라서, 플로우라인의 전체 처리 블록의 프리뷰 표시의 경우와 비교해서 혼란이나 번거로움 등을 방지할 수 있다. 또한, 개발·실행 환경에 따라서는, 처리 결과 영상을 프리뷰 표시할 때의 연산 부하가 처리 시간에 영향을 준다. 필요한 부분만을 프리뷰 표시함으로써, 연산 부하를 저감할 수 있고, 결과로서 처리 시간의 단축에 공헌할 수 있다.
도 40은 본 기능의 다른 GUI의 예를 나타낸다. 플로우라인란(32)에 있어서, 유저 U1에 의한 마우스의 커서 클릭이나 드래그 등의 조작에 의해, 기점이 되는 처리 블록(BL)과 종점이 되는 처리 블록(BL)을 지정해서 원하는 범위를 지정한다. 지정한 범위에 대해, 스위치 등의 GUI(4001)에 의해, 그 범위 내의 처리 블록(BL)에, 통합하여, 처리 결과의 프리뷰 표시의 ON/OFF를 설정할 수 있다.
도 41은, 다른 GUI의 예이다. 예를 들어 플로우라인란(32)에 있어서, 편집 중인 플로우라인(FL)의 전체 처리 블록(BL)을 대상으로 일괄적으로 프리뷰 표시의 ON/OFF를 설정할 수 있는 스위치 등의 GUI(4101)를 마련해도 된다. 유저 U1은, 예를 들어 이 GUI(4101)에서 OFF 설정으로 함으로써 일단 플로우라인(FL)의 전체 처리 블록(BL)을 프리뷰 표시 OFF 설정으로 한다. 그 후, 유저 U1은, 도 39 등의 GUI에서 개별의 원하는 처리 블록(BL)만을 프리뷰 표시 ON 설정으로 할 수 있다.
또한, 플로우라인(FL)의 전체 처리 블록(BL)을 일괄적으로 설정하는 다른 예로서는, 플로우라인(FL)의 선두의 처리 블록(BL)만을 프리뷰 표시 ON으로 설정하는 버튼 등의 GUI(4102)나, 플로우라인(FL)의 최후의 처리 블록(BL)만을 프리뷰 표시 ON으로 설정하는 버튼 등의 GUI(4103)를 마련해도 된다. 또한, 플로우라인(FL)의 선두의 처리 블록(BL)과 최후의 처리 블록을 프리뷰 표시 ON으로 설정하는 버튼 등의 GUI를 마련해도 된다.
이들 기능에 의해, 플로우라인(FL)을 구성하는 처리 블록(BL)의 수가 많아진 경우에도, 프리뷰 표시 설정에 관한 조작을 저감할 수 있어, 유저 U1의 작업 수고나 작업 시간을 저감할 수 있다.
도 42는 본 기능의 GUI의 다른 예이다. 상술한 도 39의 예는, 처리 블록(BL)마다 내부 설정란(도 19 등)에 상당하는 GUI(3901)에서 프리뷰 표시의 ON/OFF를 확인·설정할 수 있는 예이지만, 이에 한정하지 않고, 예를 들어 도 42와 같이 해도 된다. 도 42에서는, 플로우라인란(32)에서, 각 처리 블록(BL)에, 프리뷰 표시의 ON/OFF 설정 상태를 표시하는 항목(4201)을 마련하고 있다. 또한, 유저 U1이 원하는 처리 블록(BL)의 항목(4201)을 클릭 등 조작함으로써, 당해 처리 블록(BL)의 프리뷰 표시 ON/OFF 설정을 전환할 수 있다. 당해 프리뷰 표시의 ON/OFF 설정 상태를 표시하는 항목(4201)의 행의 표시 자체도 ON/OFF가 가능하다.
본 기능에 의해, 유저 U1은, 플로우라인(FL)의 각 처리 블록(BL)의 프리뷰 표시 설정 상황을 한눈에 알기 쉽게 확인할 수 있다.
또한, 당해 프리뷰 표시의 ON/OFF 설정 상태를 표시하는 항목(4201)은, ON 설정의 항목만, 또는, OFF 설정의 항목만을 화면에 표시하도록 해도 된다. 또한, 다른 예에서는, 상기 프리뷰 표시 ON/OFF 설정 상태에 따라, 처리 블록(BL)의 색을 바꾼 표시나, 아이콘/마크를 부여한 표시 등도 가능하다.
도 43은 본 기능의 GUI의 다른 예를 나타낸다. 플로우라인란(32)에서, 처리 블록(BL)마다, 프리뷰 표시가 ON 설정인 처리 블록(BL)에는, 프리뷰 표시가 ON 설정인 것을 나타내는 소정의 표시로서 아이콘(4301)(예를 들어 "on" 마크)이 부여되어 표시되어 있다. 또한, 프리뷰 표시가 OFF 설정인 처리 블록(BL)을, 색을 어둡게 해서 표시해도 된다.
도 44는 본 기능의 GUI의 다른 예를 나타낸다. 플로우라인란(32)에서, 플로우라인(FL)은, 다수의 처리 블록(BL)으로 구성되는 경우도 있다. 도시의 (A)의 예에서는, 플로우라인(FL)은, 카메라 도입 블록, 「처리 A」 블록부터 「처리 G」 블록까지가 있는 것으로 한다. 다수의 처리 블록(BL)에 프리뷰 표시의 ON/OFF 설정을 할 경우에, 수고와 함께, 화면 표시가 번잡해지는 경우도 있다.
그래서, 본 기능에서는, 플로우라인(FL)의 원하는 처리 블록(BL)에 대한 조작에 따라, (B)와 같이, 당해 처리 블록을 표시 생략 상태로 한다. 그와 함께, 본 기능에서는, 당해 처리 블록의 프리뷰 표시를 OFF 설정으로 한다. 도시의 예에서는, 유저 U1이 「처리 B」 블록부터 「처리 F」 블록까지의 범위를 선택해서 소정의 표시 생략 조작을 실행한 것으로 한다. 이 경우에, 개발 시스템(1)은, 당해 범위를 접어서 표시 생략 상태로 함과 함께, 당해 범위의 처리 블록(BL)을, 자동적으로 프리뷰 표시 OFF 설정으로 한다. (B)에서는, 플로우라인(FL)은 단축된 표시로 된다. 당해 범위는, 표시 생략 상태인 것을 나타내는 소정의 표시(예를 들어 「생략」 표시, 그레이 표시 등)로 된다. 또한, 유저 U1이 이 표시 생략 상태인 소정의 표시 부분을 조작(예를 들어 더블 클릭 등)한 경우, 개발 시스템(1)은, (C)와 같이, 당해 범위를 전개해서 표시 생략하지 않는 원래의 표시 상태로 되돌림과 함께, 당해 범위를 자동적으로 프리뷰 표시 ON 설정으로 한다.
[2-2. 프리뷰 표시 해상도 설정 기능]
도 45는 프리뷰 표시 해상도 설정 기능에 관한 설명도이다. 과제로서, 개발·실행 환경에 따라서는, 플로우라인의 처리 블록의 처리 결과 화상을 프리뷰 표시하는 경우에, 연산 부하가 처리 시간에 영향을 준다. 처리 결과 화상을 프리뷰 표시할 때의 해상도가 높은 경우, 고정밀로의 확인이 가능하지만, 그만큼, 프리뷰 표시 처리에 요하는 연산 부하가 높아져서, 처리 시간이 길어지는 경우가 있다.
그래서, 프리뷰 표시 해상도 설정 기능에서는, 플로우라인의 처리 블록의 처리 결과 화상을 프리뷰 표시할 때의 해상도를 유저 U1에 의해 설정 가능으로 한다. 프리뷰란에서, 처리 블록마다, 프리뷰 표시의 해상도를 선택할 수 있도록 한다. 개발 시스템(1)은, 설정된 해상도로, 플로우라인의 처리 블록의 처리 결과 화상을 프리뷰란에 프리뷰 표시하도록 처리를 실행한다.
이에 의해, 유저 U1이 원하는 해상도로의 프리뷰 표시가 가능하다. 해상도를 조정함으로써, 연산 부하를 조정할 수 있으므로, 프리뷰 표시에 관한 처리 시간의 단축, 프리뷰 표시의 확인·시인의 정밀도 향상 등에 공헌할 수 있다.
도 45의 예에서는, 프리뷰 표시란(33)에서, 프리뷰 표시 영상(4500)의 해상도를 설정하기 위한 GUI(4501)가 마련되어 있다. 이 GUI(4501)의 예에서는, 「고」 「중」 「저」와 같은 3개의 레벨의 해상도로부터 1개를 선택할 수 있다. 도 45의 예에서는, 디폴트 설정에서 예를 들어 「고」 해상도로 설정되어 있다. 이 「고」 해상도는, 소정의 해상도, 예를 들어 본 시스템에서 최고의 해상도이다. 이 설정의 경우, 프리뷰 실행 조작에 따라, 플로우라인(FL)의 프리뷰 표시 대상의 각 처리 블록(BL)의 처리 결과 화상은, 「고」 해상도로 프리뷰란(33)에 프리뷰 표시 영상(4500)으로서 표시된다. 유저 U1이 GUI(4501)에서 예를 들어 「저」 해상도로 설정한 경우에는, 프리뷰 실행 조작에 따라, 대상의 처리 블록(BL)의 처리 결과 화상은, 「저」 해상도로 프리뷰란(33)에 표시된다.
도 45의 예는, 플로우라인(FL)의 전체(전체 처리 블록(BL))에 대한 프리뷰 표시 해상도의 설정이지만, 이에 한정하지 않고, 처리 블록(BL)마다 프리뷰 표시의 해상도의 설정을 가능하게 해도 된다.
도 46은 처리 블록(BL)마다의 프리뷰 표시의 해상도의 설정 GUI의 예를 나타낸다. 플로우라인란(32)에서, 처리 블록(BL)마다, 프리뷰 표시의 해상도 설정을 가능하게 하는 GUI(4601)를 갖는다. 본 예에서는, 처리 블록마다, 클릭 등의 소정의 조작 또는 내부 설정란에서, 표시되는 GUI(4601)에 대해, 프리뷰 표시의 해상도를 선택해서 설정할 수 있다.
본 기능을 이용함으로써, 예를 들어 플로우라인의 최종적인 처리 결과의 화상만을 고해상도로 프리뷰 표시하고, 도중의 처리 결과에 대해서는 상대적으로 저해상도로 프리뷰 표시하는 것도 가능하다.
본 예에서는, 해상도를 3레벨로 하였지만, 물론 이것에 한정되지 않고, 2레벨로 해도, 4레벨 이상으로 해도 된다. 또한, 본 기능은, GUI 상에서는 해상도의 표현으로 하였지만, 다른 표현으로서, 프리뷰 표시 속도 등으로 해도 된다. 예를 들어, 해상도가 낮은 것은, 프리뷰 표시 속도의 관점에서는 고속인 것에 상당하므로, GUI 상에서의 선택지로서 「고속」 등으로 표시해도 된다.
도 39와 같은 프리뷰 표시의 ON/OFF 설정의 기능과, 도 45와 같은 프리뷰 표시의 해상도 설정의 기능이, 1개의 기능으로 통합되어도 된다. 예를 들어 도 46의 GUI(4601)에 있어서, ON 설정일 경우의 해상도의 선택지와, OFF 설정의 선택지가 표시되어도 된다. 이에 한정하지 않고, 상술한 프리뷰 표시 유무 전환 기능(도 39 등)과 마찬가지로, 각종 GUI, 조작 방법, 표시 방법 등의 양태가 적용 가능하다.
[2-3. 프리뷰 표시 회전 기능]
도 47은 프리뷰 표시 회전 기능에 관한 설명도이다. 이 기능은, 프리뷰란에 프리뷰 표시하는 화상·영상을, 회전 또는 반전시키는 조작·설정을 가능하게 하는 기능이다.
과제로서, 상술한 화상 검사 시스템(2)(도 1 등)에서는, 제조 라인 상의 대상물(20)에 대한 카메라/센서 디바이스(21)의 설치·설정의 상황에 따라, GUI 화면(30)의 프리뷰란(33)에서의 프리뷰 표시 시에, 영상 표시 내용이, 유저 U1이 보아, 인식하기 어려운 상태로 표시되는 경우가 있다. 예를 들어, 대상물(20)에 대한 카메라(21)의 설치 배향의 관계에 따라, 프리뷰 표시 영상에서는, 대상물(20)의 상하가 반대로 된 상태로 표시되어, 대상물(20)에 기재된 문자 등을 인식하기 어려워진다. 이래서는, 개발자 또는 검사자 등의 유저 U1은, 프리뷰 표시를 확인하면서의 작업, 예를 들어 대상물(20)의 위치를 조정하는 작업 등을 행하기 어려워, 비효율적으로 된다.
도 48은 과제에 관한 설명도를 나타낸다. 도 48에서는, (A)에는, 도 1의 화상 검사 시스템(2)에 대응한 제조 라인(4800) 또는 작업대(4800) 상에, 흘러 오는 대상물(20)이 놓여 있는 상태를, 종단면도(Y-Z면 도)로서 모식으로 도시하고 있다. 대상물(20)에 대해 연직 상방에는, 카메라(21)가 설치되어 있다. 대상물(20)에 대해 하측(전방측)에는, 검사원(4801)이 배치되어 있다. 도시의 공간 좌표계(X, Y, Z)는, X 방향이, 대상물(20)이 흐르는 방향, 검사원(4801)이 보아 좌우 방향이며, Y 방향이, 검사원(4801)이 대상물(20)을 보아 상하 방향(바꾸어 말하면 전후 방향)이며, Z 방향이, 연직 방향, 높이 방향인 것으로 한다. 흑색 화살표는, 검사원(4801)이 본 상하 방향(바꾸어 말하면 전후 방향)을 나타낸다. 백색 화살표는, 카메라(21)의 상하 방향을 나타낸다.
도 48의 화상 검사 시스템의 설치예에서는, 제조 라인(4800) 또는 작업대(4800)에 대한 카메라(21)의 배선 등의 사정으로, 카메라(21)는, 도시된 바와 같이, 카메라 좌표계에서의 상측이 검사원(4801)에게 있어서의 하측으로 되도록 설치되어 있다. 카메라(21)의 촬상의 광축 배향은 연직 하향으로 되어 있다.
(B)에 나타내는 X-Y 평면도는, (A)의 배치에서 검사원(4801)이 대상물(20)을 본 경우의 대상물(20)의 표면의 개요를 나타낸다. 대상물(20)의 좌표계에서는, 그레이 화살표로 나타낸 바와 같이, 상하가 있고, 검사원(4801)이 본 좌표계에서의 상하와 일치하고 있다. 검사원(4801)이 대상물(20)의 표면을 본 경우에, 표면에 기재된 예를 들어 「ABC」 문자는, Y 방향에서 상하에 올바르게 배치되어 있으므로, 검사원(4801)은 그 「ABC」 문자를 인식하기 쉽다.
(C)에는, (A)의 설치 상태에서 카메라(21)가 대상물(20)을 촬상할 경우에 있어서, GUI 화면(30)의 프리뷰란(33)에, 플로우라인의 처리 결과 화상, 예를 들어 카메라 도입 결과 화상을 프리뷰 표시 화상(4803)으로서 표시한 예를 나타낸다. 이와 같이, (A)의 설치 상태에 대응하여, 프리뷰란(33)의 프리뷰 표시 화상(4803)에서는, 카메라(21)의 상하와 대응하고 있기 때문에, 유저 U1이 보아, 대상물(20)의 상은, 상하가 반대로 되어 찍혀 있어, 예를 들어 「ABC」 문자도 인식하기 어렵다. 이 상태에서는, 대상물(20)의 위치 조정 등의 작업도 하기 어렵다. 예를 들어, 검사원(4801)이, 대상물(20)을 우측으로 어긋나게 한 경우, (C)와 같은 프리뷰 표시 영상(4803)에서는, 대상물(20)의 상이 좌측으로 어긋나게 찍히게 된다. 또한, 예를 들어 검사원(4801)이, 대상물(20)을 하측(전방측)으로 어긋나게 한 경우, (C)와 같은 프리뷰 표시 영상(4803)에서는, 대상물(20)의 상이 상측(안쪽)으로 어긋나게 찍히게 된다.
그래서, 도 47의 GUI 화면(30)에 나타내는 바와 같이, 유저 U1은, 프리뷰 표시 회전 기능을 이용하여, 프리뷰 표시 영상을 회전이나 반전시킬 수 있다. 도 47에서는, 프리뷰란(33)에서, 프리뷰 표시 영상을 회전이나 반전시키는 조작에 대응한 버튼 등의 GUI(4701)가 마련되어 있다. 본 예에서는, GUI(4701)는, 「좌우 반전」 버튼, 「상하 반전」 버튼, 「우회전」 버튼 및 「좌회전」 버튼을 갖는다. 유저 U1은, 이들 버튼으로부터 선택해서 조작함으로써, 프리뷰란(33)의 프리뷰 표시 영상(4700)을 반전이나 회전시킨 표시로 할 수 있다. 예를 들어, 「우회전」 버튼은, 프리뷰 표시 영상(4700)을, 소정의 각도, 예를 들어 90도로, 우측으로 회전시키는 조작을 지시하는 것이다. 이에 한정하지 않고, 회전의 각도를 유저 U1이 지정할 수 있도록 해도 된다.
도 47의 하부에는 구체예를 나타내고 있다. 이 구체예는, 카메라 도입 블록 b1의 도입 결과 화상(도 1에서의 카메라 도입 화상(51))을 프리뷰 표시하는 경우이며, 도 48의 설치예와 대응하고 있다. 도 47의 (A)의 예는, 프리뷰 실행 조작에 의해, 최초로 프리뷰 표시된 상태이며, 이 프리뷰 표시 영상(4703)은, 도 48의 (C)의 프리뷰 표시 영상(4803)과 마찬가지이다. 유저 U1은, 프리뷰 표시 영상(4703)의 내용이 잘 보이지 않아, 작업을 하기 어려우므로, GUI(4701)를 사용하여, 프리뷰의 회전·반전 조작을 행한다. 유저 U1은, 예를 들어 「우회전」 버튼을 2회 조작한다. 이에 의해, 개발 시스템(1)은, 프리뷰 표시 영상(4703)을, 90도×2회=180도로, 우측으로 회전시킨 상태로 해서 표시한다. 이 회전 조작·처리에 따라, 도 47의 (B)와 같은 프리뷰 표시 영상(4704)의 상태로 된다. 이 프리뷰 표시 영상(4704)은, 대상물(20)의 상하가, GUI 화면(30)에서의 상하와 일치한 상태로 되어 있어, 유저 U1은 예를 들어 「ABC」 문자도 인식하기 쉽다. 이에 의해, 화상 검사 시스템(2)이 도 48과 같은 설치 상태여도, 프리뷰 표시 영상을 보기 쉬워지므로, 작업이 용이화된다.
반전 조작도 마찬가지로 이용 가능하다. 도 47의 (A)의 프리뷰 표시 영상(4703)의 상태에서, 유저 U1은, 예를 들어 「상하 회전」 버튼 및 「좌우 반전」 버튼을 조작해도 된다. 이에 의해, 개발 시스템(1)은, 프리뷰 표시 영상(4703)을, 상하 반전 및 좌우 반전시킨 상태로 해서 표시한다. 이 반전 조작에 따라, (B)와 같은 프리뷰 표시 영상(4704)의 상태로 된다.
본 기능에 의하면, 화상 검사 시스템(2)의 설치 환경의 제약을, 애플리케이션 소프트웨어 상에서 해결할 수 있고, 유저 U1이 프리뷰 표시를 확인하면서 직감적인 조작을 할 수 있어, 작업을 용이화할 수 있다.
상기 예는, 어떤 화상 검사 시스템(2)의 설치·설정의 전제(도 48)에 맞추어서, 프리뷰 표시의 상태를 적절하게 변경한다는 이용 방법이지만, 이에 한정하지 않고, 프리뷰 표시의 상태를 적절하게 변경·확인하면서, 화상 검사 시스템(2)의 설치·설정을 변경·조정하는 이용 방법의 경우에도 마찬가지로 적용 가능하다.
화상 검사 시스템(2)의 설치·설정을 변경하는 예로서는 이하이다. 먼저, 도 48의 상태인 것으로 한다. 검사원(4801)의 배치 위치(바꾸어 말하면 작업 위치)나, 카메라(21)의 배치 배향 등은, 임시 상태이다. 상술한 예에서는 카메라(21)의 배치는 고정적으로 제약이 있었지만, 이 예에서는 카메라(21)의 배치도 변경 가능한 것으로 한다. 유저 U1은, 도 47과 같이 GUI 화면(30)에서 프리뷰 표시 영상(4700)을 확인하면서, 화상 검사 시스템(2)을 어떤 설치·설정으로 하면 적합할지를 검토한다.
도 49는, 도 48의 상태에서 화상 검사 시스템(2)의 설치·설정을 변경한 후의 상태의 예를 나타낸다. 도 49의 (A)의 구성은, 도 48의 구성과는 달리, 카메라(21)의 배치 배향이 조정되어 있어, 카메라(21)의 상하가, 대상물(20)의 상하, 검사원(4801)이 본 상하와 일치하도록 되어 있다. 이 경우, 최초의 프리뷰 표시 영상은, (B)와 같은 프리뷰 표시 영상(4903)으로 된다. 이 프리뷰 표시 영상(4903)은, 도 47의 (B)와 마찬가지로, 유저 U1이 보아 인식하기 쉽다. 검토 결과, 화상 검사 시스템(2)의 설치·설정을 이와 같은 구성으로 결정할 수도 있다.
또한, 다른 예로서, 도 49의 (A)의 상태에서, 검사원(4801)의 위치(작업 위치)가 변경된 것으로 한다. 예를 들어, (C)의 X-Y 평면도에 나타내는 바와 같이, 제조 라인(4800) 또는 작업대(4800)에 대해, 검사원(4801)이 X 방향의 우측으로 이동하고, 그 우측의 위치에서 대상물(20)을 보아 작업을 행한다고 하자. 이 경우, (C)와 같은 검사원(4801)이 대상물(20)을 본 상태와, (B)와 같은 프리뷰 표시 영상(4903)의 상태에서는 다르므로, 프리뷰 표시 영상을 확인하기 어려워, 작업을 하기 어렵다. 이 경우, (B)의 프리뷰 표시 영상(4903)의 상태에서, 도 47의 GUI(4701)에서 예를 들어 우회전의 조작을 하면, (D)와 같은 프리뷰 표시 영상(4904)의 상태로 된다. 이 프리뷰 표시 영상(4904)은, 검사원(4801)이 대상물(20)을 본 상태와 일치하고 있다. 바꾸어 말하면, 이 프리뷰 표시 영상(4904)은, 검사원(4801)의 위치에 맞추어서 검사원(4801)이 본 뷰를 가상한 프리뷰로 할 수 있다. 유저 U1은 그 가상적인 프리뷰를 확인할 수 있다.
상기한 바와 같이 본 기능은, 화상 검사 시스템(2)의 하드웨어의 설치 지원이나 검사 작업의 지원에도 이용할 수 있다.
[2-4. 플로우라인 블록 배치 가부 표시 기능]
도 50은 플로우라인 블록 배치 가부 표시 기능에 관한 설명도이다. 과제로서, 플로우라인을 구성하는 처리 블록은, 연결하는 블록끼리에 있어서, 연결이 가능한지 여부에 관한 조건을 갖는 것도 있다. 바꾸어 말하면, 플로우라인에 대한 처리 블록의 배치 시에, 어떤 블록의 뒤나 앞에 대상 처리 블록이 배치 가능한지 여부, 어떤 블록과 어떤 블록의 사이에 대상 처리 블록을 삽입해서 배치 가능한지 여부 등에 대해서, 배치 가능한 케이스, 배치 불가능한 케이스가 생긴다. 이러한 배치 가부의 케이스를, 유저 U1에게 있어서 알기 힘든 경우가 있다.
상기와 같은 배치 가부의 조건에 관한 내부적인 정보를 유저 U1이 사전에 파악해서 플로우라인을 개발하는 것은, 유저 U1에게 있어서 부담이 커서, 유저 시선의 설계라고는 할 수 없다.
그래서, 본 기능에서는, 유저 U1이 선택한 처리 블록의 조작 중에, 플로우라인란(32)의 플로우라인에 있어서, 당해 처리 블록을 배치 가능한 개소나 배치 불가능한 개소를 판단해서 소정의 표시로서 표시한다.
본 기능에서는, 먼저, 상기와 같은 처리 블록끼리의 배치·연결에 관한 조건에 대해서는, 예를 들어 처리 블록마다의 내부 설정의 파라미터(후술하는 속성)로서 설정 가능하다. 혹은, 본 기능에 대응하는 애플리케이션 소프트웨어가, 당해 조건을 테이블(후술) 등에 기술·관리한다. GUI 화면(30)에서 유저 U1에 의한 당해 테이블에의 조건의 설정을 가능하게 한다.
본 기능에서는, 개발 시스템(1)은, 상기 조건에 기초하여, 처리 블록끼리의 배치·연결의 가부를 자동적으로 판단하고, 판단 결과에 대응하여, 배치 가부를 나타내는 소정의 표시를 행한다.
도 50에서는, GUI 화면(30)의 플로우라인란(32)에 있어서, 제작 도중의 플로우라인(FL)으로서, 「카메라 도입」 블록 b1, 「처리 A」 블록, 「처리 B」 블록 및 「처리 C」 블록이 순서대로 연결되어 있는 상태인 것으로 한다. 이 상태에서, 유저 U1이, 블록 선택부(31)로부터, 어떤 대상 처리 블록(BL)으로서, 예를 들어 「처리 D」 블록(5001)을 선택 조작하였다고 하자. 본 기능에서는, 개발 시스템(1)은, 선택된 「처리 D」 블록(5001)에 대해서, 플로우라인(FL)에서의 당해 처리 블록을 배치 가능한 개소 및 배치 불가능한 개소를 자동적으로 판단하여, 배치 가능한 개소 및/또는 배치 불가능한 개소를 나타내는 소정의 표시를 행한다. 처리 블록(BL)의 배치 가부는, 후술하는 조건 등에 기초하여 판정된다.
도 50의 예는, 플로우라인란(32)에서, 「처리 D」 블록(5001)이 배치 가능한 개소에, 배치 가능을 나타내는 하이라이트 영역(5002)을 배치 가능 표시(5002)로서 표시하는 예이다. 본 예에서는, 「카메라 도입」 블록 b1의 뒤의 접속선의 위치와, 「처리 A」 블록의 뒤의 접속선의 위치와, 「처리 C」 블록의 뒤의 블랭크 위치가 배치 가능한 개소이며, 각각에, 하이라이트 영역(5002)이 표시되어 있다. 또한, 반대로 말하면, 하이라이트 영역(5002)이 표시되어 있지 않은 개소(예를 들어 「처리 B」 블록의 뒤)는, 배치 불가능한 개소에 상당한다.
유저 U1은, 하이라이트 영역(5002)을 봄으로써, 선택한 「처리 D」 블록(5001)을 배치 가능한 후보의 개소를 알기 쉽다. 유저 U1은, 그러한 후보로부터, 선택한 개소에, 「처리 D」 블록(5001)을 배치할 수 있다. 예를 들어, 유저 U1이 「처리 D」 블록(5001)을 「처리 A」 블록과 「처리 B」 블록의 사이의 하이라이트 영역(5002)의 위치까지 이동하여, 그 위치에서 배치 실행 조작(예를 들어 드롭)을 한다. 그러면, 개발 시스템(2)은, 그 배치 실행 조작을 수령하고, 「처리 A」 블록과 「처리 B」 블록의 사이에 「처리 D」 블록(5001)을 연결한다. 즉, 플로우라인(FL)이 갱신된다.
도 51은, 배치 가부에 관한 다른 표시예로서, 도 50과는 반대로, 선택된 처리 블록(BL)에 대해서, 배치 불가능한 개소에, 배치 불가능을 나타내는 소정의 표시를 배치 불가능 표시(5003)로서 표시하는 예이다. 본 예에서는, 소정의 표시인 배치 불가능 표시(5003)는, × 마크 영역이다. 유저 U1은, 배치 불가능 표시(5003)를 봄으로써, 선택한 「처리 D」 블록(5001)을 배치 불가능한 개소를 알기 쉽다. 유저 U1은, 배치 불가능한 개소 이외의, 선택한 개소에, 「처리 D」 블록(5001)을 배치할 수 있다. 또한, 반대로 말하면, 배치 불가능 표시(5003)가 표시되어 있지 않은 개소는, 배치 가능한 개소에 상당한다.
또한, 유저 U1이 「처리 D」 블록(5001)을 예를 들어 「처리 B」 블록과 「처리 C」 블록의 사이의 배치 불가능 표시(5003)의 위치까지 이동하여, 그 위치에서 배치 실행 조작(예를 들어 드롭)을 하였다고 하자. 이 경우, 개발 시스템(2)은, 그 배치 실행 조작을 수령하지 않고, 당해 처리 블록(BL)을 배치·연결하지 않는다. 즉, 플로우라인(FL)은 갱신되지 않고 원래의 상태가 유지된다.
상기 배치 가부의 소정의 표시는, 하이라이트나 마크 등의 표시에 한정되지 않고, 접속선이나 영역의 색을 바꾸는 등, 다양하게 가능하다. 배치 가능의 표시와, 배치 불가능의 표시의 양쪽을 동시로 하도록 해도 된다.
또한, 도 52는 본 기능의 변형예를 나타낸다. 변형예로서, 개발 시스템(1)은, 유저 U1이 선택한 처리 블록(BL)을 드래그&드롭 조작 등으로 플로우라인(FL) 중의 원하는 개소로 이동해서 배치하고자 했을 때, 그 특정 개소에 관해서만 배치 가부의 표시를 행하도록 해도 된다. 개발 시스템(1)은, 유저 U1이 원하는 처리 블록(BL)을 선택 조작했을 때, 도 50과 마찬가지로 배치 가부의 판단을 행하지만, 원하는 개소로 이동하기 전에는, 배치 가부의 표시를 아직 행하지 않도록 한다.
도 52의 예에서는, 먼저, 유저 U1의 조작으로, 대상 처리 블록으로서 「처리 D」 블록이 선택된 것으로 한다. 개발 시스템(1)은, 「처리 D」 블록이 선택된 시점 이후에, 상술한 도 50과 같은 배치 가부의 판단을 행하지만, 플로우라인(FL)에서의 배치 가부의 표시에 대해서는 아직 행하지 않도록 한다. 이어서, 그 「처리 D」 블록이, 드래그 조작으로, 플로우라인(FL) 중의 원하는 개소, 예를 들어 「처리 B」 블록과 「처리 C」 블록의 사이의 개소까지 이동되었다고 하자. 그 이동 후의 시점에서, 개발 시스템(1)은, 당해 개소에 「처리 D」 블록이 배치 가능한지 여부의 표시를 행한다. 개발 시스템(1)은, 배치 가능한 경우에는 배치 가능을 나타내는 소정의 표시를 중첩 표시하고, 배치 불가인 경우에는 배치 불가를 나타내는 소정의 표시를 중첩 표시한다. 도 52의 예에서는, 그 개소에 배치 불가였기 때문에, 그 개소의 「처리 D」 블록 상에 배치 불가 표시(5203)(예를 들어 × 마크)가 중첩 표시되어 있다. 이와 같이 배치 불가일 경우에는, 개발 시스템(1)은, 그 개소에서의 블록 배치 조작(예를 들어 드롭 조작)도 수령하지 않는다. 플로우라인(FL)은 갱신되지 않는다.
다른 예에서, 하부에 나타내는 바와 같이, 「처리 D」 블록이, 예를 들어 「처리 A」 블록과 「처리 B」 블록의 사이의 개소까지 이동된 경우, 개발 시스템(1)은, 배치 가능 표시(5202) (예를 들어 ○ 마크)를 중첩 표시한다. 배치 가능일 경우에는, 개발 시스템(1)은, 그 개소에서의 블록 배치 조작(예를 들어 드롭 조작)을 수령하고, 당해 처리 블록을 연결한다. 플로우라인(FL)은 갱신된다.
도 53은, 상기 배치 가부·연결 가부에 관한 조건의 예로서, 당해 조건이 설정된 테이블(조건 테이블로 함)의 예를 나타낸다. 개발 시스템(1)은, 도 53과 같은 조건 테이블을 기억 자원에 설정·관리한다. 또한, 도 54는, 처리 블록의 속성이 설정된 테이블(속성 테이블로 함)의 예를 나타낸다. 개발 시스템(1)은, 도 54와 같은 속성 테이블을 기억 자원에 설정·관리한다. 개발 시스템(1)은, 도 54와 같은 각 속성을 갖는 블록끼리에 관한, 연결 가부에 관한 조건을, 도 53과 같은 조건 테이블에 설정·관리한다.
도 54의 속성 테이블에서는, 플로우라인을 구성하는 부품으로서, 각 처리 블록의 속성(바꾸어 말하면 종류 등)이 설정되어 있다. 예를 들어, 후보가 되는 처리 블록에는, 속성으로서, 속성 A, B, C, D의 4개가 있다고 하자. 이 속성은, 처리 블록마다의 내부 설정란에도 파라미터값의 하나로서 설정되어 있어도 된다. 도 54에는, 속성 A, B, C, D의 4종류의 속성이 예시되어 있다. 속성 A는 입력을 불문으로 해서 모노크롬 영상을 출력하는 처리를 나타내고, 속성 B는 모노크롬 영상을 입력으로 해서, 컬러 영상으로 변환하여 출력하는 처리를 나타내고, 속성 C는 컬러 영상을 입력으로 해서, 모노크롬 영상으로 변환하여 출력하는 처리를 나타내고, 속성 D는 모노크롬 영상을 입력으로 해서, 모노크롬 영상을 출력하는 처리를 나타내고 있다. 예를 들어, 「카메라 도입」 블록에는, 속성 A가 설정되어 있다. 「베이어 변환」 블록에는, 속성 B가 설정되어 있다. 「RGBLUT」 블록에는, 속성 C가 설정되어 있다. 「2치화」 블록에는, 속성 D가 설정되어 있다. 이와 같이 각 처리 블록에는 속성 테이블에 의해 소정의 속성이 미리 부여되어 있다. 여기서는, 설명을 간단하게 하기 위해, 속성으로서 각 처리의 입출력 화상의 종류를 설정하고 있지만, 이것에 한정되는 것은 아니고, 다른 속성을 설정하는 것이어도 된다.
도 53의 조건 테이블에서는, 전치 블록의 속성과, 후치 블록의 속성의 조합으로, 당해 블록끼리의 연결 가부가 설정되어 있다. 전치 블록은, 대상 블록의 1개 앞에 배치되는 블록이며, 후치 블록은, 대상 블록의 1개 뒤에 배치되는 블록이다. 배치 케이스에 따라, 유저 U1이 선택한 대상 블록은, 전치 블록으로 되거나, 후치 블록으로 되거나 한다. 전치 블록, 후치 블록의 예는 후술한다.
도 54의 속성의 설정예에 기초한, 도 54의 조건의 설정예에 있어서, #1의 행에서는, 전치 블록이 속성 A이고, 그 뒤(다음)에 배치되는 후치 블록이 속성 A일 경우에는, 연결 가부가 「가능」(○)이다. 구체예는, 「카메라 도입」 블록→「카메라 도입」 블록이다. #2의 행에서는, 전치 블록이 속성 A이고, 후치 블록이 속성 B일 경우에는, 연결 가부가 「가능」(○)이다. 구체예는, 「카메라 도입」 블록→「베이어 변환」 블록이다. #3의 행에서는, 전치 블록이 속성 A이고, 후치 블록이 속성 C일 경우에는, 연결 가부가 「불가」(×)이다. 구체예는, 「카메라 도입」 블록→「RGBLUT」 블록이다. 도 54의 속성 A와 같이, 카메라 도입 결과 출력은 모노크롬 영상이 되고, 속성 C의 RGBLUT의 입력은 컬러 영상이 필요하기 때문에, #3의 조합은, 연결 불가로 된다. #4의 행에서는, 전치 블록이 속성 A이고, 후치 블록이 속성 D일 경우에는, 연결 가부가 「가능」(○)이다. 구체예는, 「카메라 도입」 블록→「2치화」 블록이다. 마찬가지로 하여, 전체 속성에 관한 모든 조합(본 예에서는 #1 내지 #16의 16가지)에서, 연결 가부가 규정되어 있다.
또한, 각 처리 블록은, 상술한 바와 같이 내부 설정 파라미터값을 선택·설정할 수 있다. 처리 블록의 내부 설정 파라미터값의 차이에 따라, 연결 가부를 설정할 수 있도록 해도 된다.
도 55는 상기 조건의 예에 대응한 배치 가부의 구체예를 나타내고 있다. 플로우라인란(32)에서, 편집 중인 플로우라인(FL)으로서, 「카메라 도입」 블록(속성 A), 「베이어 변환」 블록(속성 B)이 배치되어 있는 것으로 한다. 도시의 예에서는 설명을 이해하기 쉽게 하기 위해서 처리 블록(BL)에 속성도 기재하고 있다. 이어서, 유저 U1이 선택한 대상 처리 블록(5501)이, 「카메라 도입」 블록(속성 A)인 것으로 한다. 이 「카메라 도입」 블록인 대상 처리 블록(5501)은, 2개째의 「카메라 도입」 블록으로 된다. 이 경우, 도 53의 조건에 기초하여, 먼저, 「카메라 도입」 블록(속성 A)과 「베이어 변환」 블록(속성 B)의 사이의 개소에 대해서, 대상 처리 블록(5501)(속성 A)을 배치하는 경우에는, 속성 A-A-B의 배열이 가정되고, 전치 블록으로서의 「카메라 도입」 블록과 후치 블록으로서의 「카메라 도입」 블록, 그리고 전치 블록으로서의 「카메라 도입」 블록과 후치 블록으로서의 「베이어 변환」 블록에 대해서 연결 가부의 판정을 도 53의 조건 테이블을 사용하여 행한다. 전자의 경우는 속성 A-A의 배열로 되기 때문에 #1의 조건으로부터, 배치 가능으로 판정되고, 후자의 경우는 속성 A-B의 배열로 되기 때문에 #2의 조건으로부터, 배치 가능으로 판정된다. 대상 처리 블록(5501)에 대해, 전후의 처리 블록(BL)을 포함한 3개의 처리 블록(BL)의 관계에서 조건이 충족되므로, 이 개소는, 대상 처리 블록(5501)(속성 A)을 배치 가능하다고 판정된다. 따라서, 개발 시스템(2)은, 이 개소에는, 배치 가능을 나타내는 하이라이트 영역(5002)을 표시한다.
또한, 「베이어 변환」 블록(속성 B)의 뒤의 블랭크 개소에 대해서, 대상 처리 블록(5501)(속성 A)을 배치하는 경우에는, 속성 B-A의 배열이 가정되고, 전치 블록으로서의 「베이어 변환」 블록과 후치 블록으로서의 「카메라 도입」 블록에 대해서 연결 가부의 판정을 도 53의 조건 테이블을 사용하여 행한다. 이때, 속성 B-A의 배열로 되기 때문에, #5의 조건으로부터, 배치 가능으로 판정된다. 조건이 충족되므로, 이 개소는, 대상 처리 블록(5501)(속성 A)이 배치 가능하다고 판정된다. 따라서, 개발 시스템(2)은, 이 개소에는, 배치 가능을 나타내는 하이라이트 영역(5002)을 표시한다.
도 56은 다른 예이다. 플로우라인란(32)에서, 편집 중인 플로우라인(FL)으로서, 「카메라 도입」 블록(속성 A), 「베이어 변환」 블록(속성 B), 「RGBLUT」 블록(속성 C), 「2치화」 블록(속성 D) 및 「베이어 변환」 블록(속성 B)이 배치되어 있는 것으로 한다. 이어서, 유저 U1이 선택한 대상 처리 블록(5601)이 「2치화」 블록(속성 D)인 것으로 한다. 본 예에서는, 「베이어 변환」 블록이 2개, 「2치화」 블록이 2개, 등장하고 있다. 2개의 구별을 위해서 「No.1」 「No.2」로 기재하고 있다. 개발 시스템(1)은, 동일한 종류의 처리 블록(BL)이 동시에 복수 개 등장할 경우에는, 구별을 위해, 「No.1」 「No.2」 등으로 표시해도 된다.
이 경우, 조건에 기초하여, 먼저, 「카메라 도입」 블록(속성 A)과 「베이어 변환」 블록(속성 B)의 사이에, 대상 처리 블록(5601)(속성 D)을 배치하는 경우에는, 속성 A-D-B의 배열이 가정되고, 전치 블록의 속성과 후치 블록의 속성의 조합으로서, 속성 A-D 및 속성 D-B 각각에 대해서 연결 가부의 판정을 도 53의 조건 테이블을 사용하여 행한다. 속성 A-D의 배열은, #4의 조건으로부터, 배치 가능이며, 속성 D-B의 배열은, #14의 조건으로부터, 배치 가능이다. 양쪽 조건이 충족되므로, 이 개소는, 배치 가능하다고 판정된다. 따라서, 개발 시스템(2)은, 이 개소에, 하이라이트 영역(5002)을 표시한다.
마찬가지로, 「베이어 변환」 블록(속성 B)과 「RGBLUT」 블록(속성 C)의 사이의 개소, 「RGBLUT」 블록(속성 C)과 「2치화」 블록(속성 D)의 사이의 개소, 「2치화」 블록(속성 D)과 「베이어 변환」 블록(속성 B)의 사이의 개소, 「베이어 변환」 블록(속성 B)의 뒤의 블랭크 개소에 대해서, 도 53의 조건 테이블을 사용하여 배치 가부를 판정한다. 그 결과, 개발 시스템(2)은, 「베이어 변환」 블록(속성 B)과 「RGBLUT」 블록(속성 C)의 사이는 배치 불가로서 배치 불가 표시(5003)를 표시하고, 「RGBLUT」 블록(속성 C)과 「2치화」 블록(속성 D)의 사이는 배치 가능으로서 하이라이트 영역(5002)을 표시하고, 「2치화」 블록(속성 D)과 「베이어 변환」 블록(속성 B)의 사이는 배치 가능으로서 하이라이트 영역(5002)을 표시하고, 「베이어 변환」 블록(속성 B)의 뒤의 블랭크 개소는 배치 불가로서 배치 불가 표시(5003)를 표시한다.
또한, 이 예에서는 배치 가능을 나타내는 하이라이트 표시와 배치 불가를 나타내는 배치 불가 표시를 양쪽 표시하고 있지만, 어느 것을 표시하는 것이어도 된다. 또한, 여기서는 시각적인 표시에 의해 배치 가부를 유저 U1에게 알리고 있지만, 이에 한정하지 않고 경고음이나 경고 표시를 행하도록 해도 되며, 유저 U1에게 배치 가부를 어떠한 수단에 의해 통보하는 것이면 된다.
또한, 상술한 예에서는 배치 가부의 판단을 각 처리 블록에 대한 속성 테이블과 조건 테이블에 기초해서 결정하고 있지만, 배치 가부의 판단 방법은 이것에 한정되는 것은 아니고, 다른 공지의 기술을 사용해도 실현 가능하다.
본 기능에서는, 유저 U1이 선택한 대상 처리 블록을 플로우라인에 배치하고자 드래그&드롭 조작 등을 하고 있는 도중에, 개발 시스템(2)은, 도 53의 조건 테이블 등에 기초하여, 대상 처리 블록의 연결 가부·배치 가부를 판정하여, 플로우라인 상에 배치 가부를 나타내는 소정의 표시를 한다. 본 기능에 의하면, 유저 U1은 처리 블록의 배치 가부를 알기 쉬워, 배치 불가인 개소에 처리 블록을 이동시키는 무용 조작도 저감할 수 있다.
[2-5. 필수 설정 미설정 블록 표시 기능]
도 57은 필수 설정 미설정 블록 표시 기능에 관한 설명도이다. 과제로서, 플로우라인을 구성하는 처리 블록에는, 플로우라인의 완성을 위해, 상술한 내부 설정 등에서, 반드시 설정해야 하는 파라미터 항목 등이 있는 경우가 있다. 설명 상, 이것을 필수 설정, 필수 설정 항목 등으로 기재한다. 제작 중인 플로우라인을 구성하는 처리 블록에 대해, 유저 U1이 필수 설정을 완료하지 않은 상태에서, 당해 플로우라인이 실행되었을 경우, 필수 설정이 완료되지 않은 처리 블록을 원인으로 해서, 처리 에러의 결과로 되어 버린다. 처리 블록마다 필수 설정이 끝났는지 여부의 확인이나, 플로우라인의 처리 에러로의 종료로 처리 블록의 설정을 다시 하는 작업은, 개발자인 유저 U1에게 있어서 부담이 크다.
또한, 플로우라인의 실행 중에 처리 블록의 에러가 발생한 것(바꾸어 말하면 처리 에러로 종료된 것)이나, 처리 블록의 필수 설정이 완료되지 않은 것 등을, 유저 U1이 알 수 있는 수단이 없을 경우, 개발자인 유저 U1은, 플로우라인을 완성시킬 수 없거나, 또는, 완성에 장시간을 요하는 경우가 있다.
그래서, 본 기능에서는, 개발 시스템(1)은, 플로우라인에 배치 완료이지만 필수 설정이 미완료인 처리 블록(미설정 블록 등으로도 기재)에, 필수 설정이 미완료인 것(바꾸어 말하면 필수 설정 항목이 미설정인 상태)을 나타내는 소정의 표시를 행한다. 도 57의 예에서는, 소정의 표시(미설정 표시, 필수 설정 미완료 표시 등으로도 기재)(5701)로서, 소정의 아이콘(5701)을 마련하였다. 이 아이콘(5701)은, 본 예에서는 ! 마크로 하고 있다.
예를 들어, 도시의 「처리 B」 블록은, 필수 설정 항목을 갖는 「2치화」 블록이라고 하자. 하부에, 「처리 B」 블록의 내부 설정란(5700)을 예시하고 있다(도 19와 마찬가지임). 내부 설정란(5700)에서, 예를 들어 「2치화의 역치」 항목(5703)은, 필수 설정 항목이라고 하자. 본 예에서는, 「2치화의 역치」 항목(5703)에, 값인 역치가 설정되어 있지 않다. 즉, 이 「2치화」 블록은, 필수 설정이 미완료이다. 이 경우, 개발 시스템(1)은, 그 미완료의 상황을 판단하여, 플로우라인란(32)의 플로우라인(FL)에서의, 「처리 B」 블록인 「2치화」 블록에, 필수 설정 미완료를 나타내는 아이콘(5701)을 표시한다. 「처리 C」 블록도 마찬가지로, 필수 설정 미완료일 경우에, 아이콘(5701)이 표시된다.
유저 U1은, 아이콘(5701)을 봄으로써, 당해 처리 블록의 필수 설정이 미완료인 것을 알기 쉽게 인식할 수 있어, 필요한 설정을 행할 수 있다. 또한, 아이콘(5701)의 표시는, 상기 예에 한정되지 않고, 다양한 양태가 가능하다. 또한, 예를 들어 처리 블록(BL)의 내부 설정란 중에서, 필수 설정 항목의 개소(예를 들어 「2치화의 역치」 항목(5703))에, 필수 설정의 미완료를 나타내는 소정의 표시(예를 들어 아이콘(5701))를 행하도록 해도 된다.
또한, 도 57의 예에서, 유저 U1이 소정의 플로우라인 실행 조작을 행하면, 개발 시스템(1)은, 플로우라인(FL)의 처리를 실행한다. 혹은, 개발 시스템(1)은, 프리뷰 실행 조작에 따라, 프리뷰 표시를 위해, 플로우라인(FL)의 처리를 실행한다. 본 기능에서는, 플로우라인(FL)에, 예를 들어 하측의 행에 「실행」으로서 예시한 바와 같이, 플로우라인(FL)의 실행에서의 처리 블록(BL)의 처리 결과 등의 상태를 나타내는 소정의 표시를 행한다. 본 예에서는, 소정의 표시(블록 실행 상태 표시 등으로도 기재)(5702)로서, 처리 블록(BL)마다, 램프 아이콘 표시(5702a, 5702b, 5702c)를 갖는다. 램프 아이콘 표시는, 복수 종류의 표시가 있고, 상태에 따른 색으로 표시된다. 램프 아이콘 표시는, 상태로서, 예를 들어 「정상」의 램프 아이콘 표시(5702a), 「에러」의 램프 아이콘 표시(5702b), 「미실행」의 램프 아이콘 표시(5702c)가 있다. 「정상」 상태(예를 들어 청색 아이콘)는, 당해 처리 블록(BL)의 처리가 정상적으로 종료된 것을 나타낸다. 「에러」 상태(예를 들어 적색 아이콘)는, 당해 처리 블록(BL)의 처리에서 에러가 생긴 것, 에러 종료로 된 것을 나타낸다. 「미실행」 상태(예를 들어 백색 아이콘)는, 당해 처리 블록(BL)의 처리가 미실행인 것을 나타낸다.
유저 U1은, 플로우라인(FL)의 실행에 관해서, 블록 실행 상태 표시(5702)에서의 램프 아이콘 표시를 봄으로써, 당해 플로우라인(FL)의 실행 중에 처리 블록(BL)의 에러가 발생한 것 등을 알기 쉽게 인식할 수 있다. 이에 의해, 유저 U1이 플로우라인(FL)을 효율적으로 완성시킬 수 있다. 미설정 블록을 나타내는 아이콘(5701)의 표시와, 블록 실행 상태 표시(5702)를 병용하는 형태의 경우, 유저 U1은, 블록 실행 상태 표시(5702)에서 에러를 나타내고 있는 처리 블록(BL)에 대해서, 에러의 원인으로서, 필수 설정이 미완료인 것 등을 인식할 수 있다.
또한, 플로우라인의 실행 시에 처리 블록이 에러인지 여부를 판단하는 방법에 대해서는, 예를 들어 이하의 2개의 어느 방법을 적용해도 된다. 하나의 방법은, 개발 시스템(1)의 프로세서가, 어떤 내부 설정(예를 들어 필수 설정 항목이 미설정)에서의 처리 블록의 처리를 실행하고, 처리 결과로서 에러 종료가 되었을 경우에, 그 처리 블록을 「에러」 상태로 판단하는 방법이다. 다른 하나의 방법은, 개발 시스템(1)의 프로세서가, 어떤 내부 설정(예를 들어 필수 설정 항목이 미설정)에서의 처리 블록의 처리를 실행하기 직전에, 당해 처리 블록의 필수 설정 항목의 설정 유무를 체크하고, 미설정인 경우에, 당해 처리를 실행하지 않고, 그 처리 블록을 「에러」 상태로 판단하는 방법이다.
상기 필수 설정에 관한 아이콘(5701)의 기능은, 이하와 같은 기능도 포함하고 있다. 도 58은, 필수 설정에 관한 아이콘(5701)의 기능에 관한 설명도이다. 도 58의 (A)는, 제1 상태로서, 도 57과 마찬가지의 플로우라인(FL)의 상태이다. 필수 설정이 미완료인 「처리 B」 블록에 아이콘(5701)이 표시된다. 유저 U1은, 아이콘(5701)에 기초하여, 「처리 B」 블록의 필수 설정을 완료한다. 또한, 유저 U1이 아이콘(5701)을 클릭 등 조작함으로써, 개발 시스템(1)이 미설정인 필수 설정 항목을 자동적으로 표시하도록 해도 된다. 개발 시스템(1)은, 「처리 B」 블록의 필수 설정의 완료를 판단하면, 아이콘(5701)을 소거한다. 이에 의해, (B)의 제2 상태로 천이한다.
유저 U1은, 예를 들어 이 플로우라인(FL)의 처리 결과의 프리뷰를 확인한 결과, 이 플로우라인(FL)을 또한 편집하여, 예를 들어 「처리 A」 블록을 삭제하였다고 하자. 이에 의해, (C)의 제3 상태와 같이 된다. 이 제3 상태에서는, 「처리 B」 블록의 입력측(전방측)에 연결되는 처리 블록이 「카메라 도입」 블록으로 바뀌어 있다. 이에 의해, 예를 들어 「처리 B」 블록의 내부 설정에 대해서도 변경이 필요해지는 경우가 있다. 본 예에서는, 「처리 B」 블록의 내부 설정에서, 「카메라 도입」 블록의 출력(카메라 도입 결과 화상)에 맞춘 필수 설정 항목이 있는 것으로 하고, 그 필수 설정이 미설정인 것으로 한다. 개발 시스템(1)은, 「처리 A」 블록의 삭제에 수반하여, 상기와 같은 필수 설정의 미완료 발생을 판단하여, 「처리 B」 블록에 다시 아이콘(5701)을 표시한다. 이에 의해, (D)의 제4 상태로 천이한다. 그 후, 마찬가지로 하여, 유저 U1은, 아이콘(5701)을 참고로 해서, 필수 설정을 행하고, 최종적으로, 원하는 플로우라인(FL)을 완성시킬 수 있다.
상기 예는, 필수 설정 완료인 「처리 B」 블록 등이, 그것보다 전방측(상류)에 있는 처리 블록의 삭제에 의해 영향을 받아, 다시 필수 설정이 필요해지는 경우에, 아이콘(5701)을 표시해서 재설정을 위한 지원을 하는 것이다. 이에 한정하지 않고, 전방측(상류)에 처리 블록이 추가되는 경우나, 기존의 처리 블록의 설정이 변경되는 경우에도, 후방측(하류)의 처리 블록이 영향을 받아, 필수 설정에 관한 상태가 변화하는 경우가 있다. 이 경우에도 마찬가지로 아이콘(5701)의 기능을 이용할 수 있다.
[입력 영상 및 출력 영상의 설정에 관한 기능]
도 59는 상기 필수 설정에 관한 다른 예를 나타낸다. 플로우라인란(32)의 플로우라인(FL)에 있어서, 각 처리 블록(BL)에는, 입력 영상이나 출력 영상이 있지만, 개발 시스템(1)의 하나의 기능으로서, 처리 블록(BL)마다, 입력 영상을 자유롭게 선택해서 설정할 수도 있다. 개발 시스템(1)은, 플로우라인란(32)에서, 각 처리 블록(BL)의 입력 영상이나 출력 영상을 알기 쉽도록, 입력 영상 ID나 출력 영상 ID 등을 명시적으로 표시하는 기능도 갖는다. 먼저, 이 입력 영상 및 출력 영상의 설정에 관한 기능에 대해서 설명한다.
상술한 실시 형태 1에서는, 어떤 플로우라인(FL)에 있어서, 어떤 처리 블록(BL)의 입력 영상/입력 화상은, 하나 전에 연결되어 있는 처리 블록(BL)의 처리 결과 화상/출력 영상인 것을 기본으로서 설명하였다. 특별한 설정이 없을 경우에는, 그러한 입출력의 구성으로 할 수 있다. 실시 형태 2의 이하의 예에서는, 어떤 플로우라인(FL)에 있어서, 어떤 처리 블록(BL)의 입력 영상/입력 화상은, 하나 전에 연결되어 있는 처리 블록(BL)의 처리 결과 화상/출력 영상에 한정되지 않고, 플로우라인(FL)의 다른 임의의 처리 블록(BL)의 출력 영상으로 할 수 있다.
도 59의 예에서는, 플로우라인(FL)에서의 처리 블록(BL)의 입력 영상의 설정, 입력 영상 ID의 표시, 출력 영상 ID의 표시 등의 기능을 나타내고 있다. 본 기능에서는, 플로우라인란(32)에서, 「입력 영상」의 표시(5901)와, 「출력 영상」의 표시(5902)를 갖는다. 「입력 영상」의 표시(5901)는, 상측의 대응하는 처리 블록(BL)에 관한 입력 영상의 ID를 각 항목(5901a)으로 표시한다. 「출력 영상」의 표시(5902)는, 상측의 대응하는 처리 블록에 관한 출력 영상의 ID를 각 항목(5902a)으로 표시한다.
먼저, 개발 시스템(1)은, 플로우라인(FL)의 선두부터 순서대로, 각 처리 블록(BL)에 대해서, 당해 처리 블록(BL)의 출력 영상에 자동적으로 출력 영상 ID를 부여한다. 본 예에서는, 「카메라 도입」 블록의 출력 영상의 ID가 001, 「처리 B」 블록의 출력 영상의 ID가 002, 「처리 C」 블록의 출력 영상의 ID가 003, 「처리 D」 블록의 출력 영상의 ID가 004로 되어 있다. 유저 U1이 개별로 명칭 등에 따라서 원하는 출력 영상 ID를 붙이는 것도 가능하다. 본 예에서는 자동 부여이기 때문에, 유저 U1에 의한 ID 설정 작업을 저감할 수 있다.
이어서, 개발 시스템(1)은, 플로우라인(FL)의 선두부터 순서대로, 각 처리 블록(BL)에 대해서, 당해 처리 블록(BL)의 입력 영상을 설정하고, 입력 영상 ID를 부여한다. 디폴트 설정의 경우에는, 실시 형태 1과 같이, 자동적으로, 하나 전의 처리 블록(BL)의 출력 영상을, 당해 처리 블록(BL)의 입력 영상으로서 설정해도 된다. 본 예에서는, 유저 U1이 각 처리 블록(BL)의 입력 영상을 자유롭게 선택해서 설정한다. 이 입력 영상의 설정은, 처리 블록(BL)마다의 필수 설정 항목의 하나이다.
도 59의 (A)의 예에서는, 유저 U1은, 「처리 A」 블록에 대해서, 내부 설정란 중의 입력 영상의 설정 항목(5903)(예를 들어 리스트 박스 등의 GUI), 또는, 「입력 영상」의 표시(5901)의 대응하는 항목(5901a)에 있어서, 입력 영상 ID를 선택하여 설정한다. 입력 영상 ID의 선택지는, 「출력 영상」의 표시(5902)에 있는 출력 영상 ID를 사용할 수 있다. 또한, 표시(5901)의 항목(5901a)에서의 입력 영상 ID의 설정은, 표시(5902)의 항목(5902a)의 출력 영상 ID로부터의 드래그&드롭 조작에 의한 설정을 가능하게 해도 된다(후술). 본 예에서는, 「처리 A」 블록의 입력 영상의 입력 영상 ID로서 001이 설정되어 있다. 마찬가지로, 유저 U1은, 「처리 C」 블록에 대해서, 입력 영상 ID로서 003을 설정하고 있다. 「처리 B」 블록에 대해서는, 입력 영상 ID의 설정이 미완료이며, 대응하는 항목(5901a)은 공란으로 되어 있다.
도 59의 (B)는 다른 예이다. (A)와 마찬가지의 플로우라인(FL)에 있어서, 「처리 B」 블록의 입력 영상에는, 「처리 A」 블록의 출력 영상으로서 출력 영상 ID=002가 설정되어 있고, 동일하게, 「처리 C」 블록의 입력 영상에는, 「처리 A」 블록의 출력 영상으로서 출력 영상 ID=002가 설정되어 있다. 「처리 A」 블록의 출력 영상이, 「처리 B」 블록의 입력 영상과 「처리 C」 블록의 입력 영상의 2개로 설정되어 있다. 또한, 이러한 플로우라인의 구성에 대해서는, 상술(도 33)과 같은 명시적으로 분지가 있는 플로우라인으로서 제작·표시하는 것도 가능하지만, 본 예에서는 분지가 없는 1개의 플로우라인으로서 표시 가능하다.
도 59의 예와 같이, 본 기능에서는, 유저 U1은, 원하는 처리 블록의 출력 영상으로부터 선택한 출력 영상을, 원하는 처리 블록의 입력 영상으로서 설정할 수 있고, 표시(5901) 및 표시(5902)에 의해, 입출력 관계를 명시하는 것이 가능하다. 유저 U1은, 필수 설정 항목의 하나인 입출력 관계를 알기 쉽게 확인 가능하다. 또한, 변형예로서는, 입력 영상 ID나 출력 영상 ID의 설정을, 화상 ID로 하는 것이 아니라, 어느 처리 블록의 출력인지를 나타내는 처리 블록 ID로 해도 된다. 예를 들어 입력 영상의 표시(5901)에 있어서, 항목(5901a)에, 처리 블록 ID를 표시·설정해도 된다.
도 59의 (A)와 같이, 예를 들어 플로우라인(FL)에 유저 U1이 선택한 처리 블록(BL)(예를 들어 「처리 B」 블록)을 배치·연결한 경우에, 그 처리 블록(BL)에 관한 입력 영상(입력 영상 ID)을, 그 처리 블록(BL)보다 전방측(상류)의 처리 블록(BL)의 출력 영상 등으로부터 선택해서 설정할 필요가 있다. 이 입력 영상의 필수 설정이 미완료일 경우에, 개발 시스템(1)은, 도 57과 마찬가지로, 그 처리 블록(BL)에, 필수 설정의 미완료를 나타내는 아이콘(5701)을 표시한다. 이에 의해, 유저 U1은, 그 처리 블록(BL)의 입력 영상의 설정을 잊지 않고 행할 수 있다.
도 60은, 플로우라인(FL)에의 처리 블록(BL)의 추가·삽입에 수반하는, 입출력 영상의 설정 변경 및 아이콘(5701)의 표시의 구체예이다. 먼저, (A)의 상태에서는, 플로우라인(FL)은, 「카메라 도입」 블록, 「처리 A」 블록, 「처리 C」 블록이 연결되어 있다. 출력 영상 ID는 자동 부여되어 있다. 유저 U1은, 「처리 A」 블록의 입력 영상 ID에, 「카메라 도입」 블록의 출력 영상 ID인 001을 설정하고, 「처리 C」 블록의 입력 영상 ID에, 「처리 A」 블록의 출력 영상 ID인 002를 설정하고 있다.
이어서, 유저 U1이, 부품란(31)으로부터 「처리 B」 블록을 선택하여, 「처리 A」 블록과 「처리 C」 블록의 사이의 개소에 배치한 것으로 한다. 이에 의해, (B)의 상태로 천이한다. 먼저, 개발 시스템(1)은, 추가된 「처리 B」 블록의 출력 영상 ID에는, 001 내지 003이 사용 완료이기 때문에, 연번으로서 004를 부여한다. 또한, 각 처리 블록의 출력 영상 ID에 대해서, 연번으로 할 경우에, 플로우라인(FL)에서의 배열에 맞추어, 번호를 다시 부여해도 된다(후술). 그 경우에는, 「처리 B」 블록의 출력 영상 ID가 003으로 되고, 「처리 C」 블록의 출력 영상 ID가 004로 된다.
이어서, 「처리 B」 블록에 대해서, 입력 영상 ID가 미설정(항목(5901a)이 공란 표시)이기 때문에, 개발 시스템(1)은, 「처리 B」 블록에 아이콘(5701)을 표시한다. 변형예로서는, 입력 영상 ID가 공란인 항목(5901a)에 아이콘(5701)을 표시해도 된다. 또한, 「처리 B」 블록의 삽입에 의해, 「처리 C」 블록에 대해서는, 전방측의 블록이 「처리 B」 블록으로 변화하였다. 「처리 C」 블록에 대해서는, 입력 영상 ID가 002로서 설정 완료이기 때문에, 아이콘(5701)은 표시되지 않는다. 유저 U1은, 「처리 B」 블록의 삽입에 수반하여, 「처리 C」 블록에 관한 입력 영상 ID의 설정을 변경해도 된다.
변형예로서는, 전방측에 「처리 B」 블록이 추가된 「처리 C」 블록에 대해서, 유저 U1에의 주의를 촉진시키는 의미로, 즉 전후 관계가 변화했으므로 입출력 영상 설정을 재검토해야 하는지 여부를 나타내기 위해, 아이콘(5701) 또는 아이콘(5701)과는 다른 소정의 표시를, 「처리 C」 블록에 행해도 된다.
(B)의 상태에서, 유저 U1이 「처리 B」 블록의 입력 영상 ID의 설정을 행한다. 이에 의해, 예를 들어 (C)의 상태로 천이한다. 본 예에서는, 유저 U1은, 「처리 B」 블록의 입력 영상 ID에, 「처리 A」 블록의 출력 영상 ID인 002를 설정하고 있다. 또한, 유저 U1은, 「처리 B」 블록의 뒤의 「처리 C」 블록의 입력 영상 ID를 재검토하여, 「처리 B」 블록의 출력 영상 ID인 004를 설정하고 있다. 개발 시스템(1)은, 「처리 B」 블록의 필수 설정이 완료된 경우, 아이콘(5701)을 소거한다.
도 61은, 다른 예로서, 플로우라인(FL)에서의 처리 블록(BL)의 삭제에 수반하는, 입출력 영상의 설정 변경 및 아이콘(5701)의 표시의 구체예이다. 먼저, (A)의 상태에서는, 도시된 바와 같이, 플로우라인(FL)은, 「카메라 도입」 블록, 「처리 A」 블록, 「처리 B」 블록, 「처리 C」 블록이 연결되어 있다. 각 처리 블록(BL)의 입력 영상에는, 도시된 바와 같이, 하나 전의 처리 블록(BL)의 출력 영상이 설정되어 있다.
이어서, (B)의 상태에 나타내는 바와 같이, 유저 U1이, 「처리 A」 블록을 삭제한 것으로 한다. 「입력 영상」의 표시(5901)의 대응하는 항목(5901a) 및 「출력 영상」의 표시(5902)의 대응하는 항목(5902a)도 소거된다. 이에 따라, 출력 영상 ID의 선택지로서, 「처리 A」 블록의 출력 영상의 ID인 002는 없어진다. 그러나, 「처리 B」 블록의 입력 영상 ID에는, 「처리 A」 블록의 출력 영상의 ID인 002가 설정된 상태 그대로이다. 개발 시스템(1)은, 「처리 B」 블록의 입력 영상 ID가 지시하는 출력 영상(출력 영상 ID)이, 당해 플로우라인(FL) 내에 없는 것을 판단한다. 이 결과, 개발 시스템(1)은, 「처리 B」 블록에 대해서, 필수 설정 항목인 입력 영상 ID가 설정 완료이지만, 재설정이 필요하므로, 「처리 B」 블록에 아이콘(5701)을 표시한다. 이에 의해, (C)의 상태로 된다.
혹은, 이하로 해도 된다. 개발 시스템(1)은, 「처리 A」 블록의 삭제에 수반하여, 「처리 A」 블록의 출력 영상 ID=002에 관련된 설정을, 당해 플로우라인(FL) 내에서 모두 삭제한다. 즉, 상기 예에서는, 「처리 B」 블록의 입력 영상 ID의 설정값인 002가, 공란으로 되돌려진다((C)에서의 항목(5901a)이 공란으로 된다). 이에 의해, 개발 시스템(1)은, 「처리 B」 블록의 입력 영상 ID가 미설정으로 되기 때문에, 「처리 B」 블록에 아이콘(5701)을 표시한다.
도 62는 다른 구체예를 나타낸다. 도 62의 예에서는, 플로우라인란(32)에서의 어떤 플로우라인(FL1)의 표시에 있어서, 도시된 바와 같이, 「입력 영상 A」의 행의 표시, 「입력 영상 B」의 행의 표시, 「처리 결과」의 행의 표시, 「실행」의 행의 표시를 갖는다. 「처리 결과」의 행의 표시는, 상술한 도 59 등의 「출력 영상」의 표시(5902)에 상당한다. 개발 시스템(1)은, 플로우라인(FL1)에 처리 블록(BL)이 배치되었을 때, 자동적으로 「처리 결과」의 행의 표시를 행하고, 처리 블록(BL)마다의 항목에, 처리 결과(출력 영상)의 ID를 자동적으로 부여해서 표시한다. 당해 ID는 예를 들어 연번이다. 이 처리 결과(출력 영상)의 ID는, 당해 처리 블록(BL)보다 뒤에 배치되는 임의의 처리 블록(BL)의 입력 영상 ID로서 취급할 수 있다.
또한, 개발 시스템(1)은, 플로우라인(FL1)의 제작에 수반하여, 「입력 영상 A」의 행을 자동적으로 표시한다. 당해 행에 있어서, 처리 블록(BL)마다의 입력 영상의 ID는, 상술한 바와 같이 각종 입력·설정이 가능하다. 도 62의 예에서는, 「2치화 B」 블록이 배치되었을 때, 당해 처리 블록의 입력 영상 ID는 미설정으로 공란으로 되어 있다. 예를 들어, 유저 U1에 의한 드래그&드롭 조작으로, 입력 영상 ID의 설정이 가능하다. 예를 들어, 파선 화살표로 나타낸 바와 같이, 「2치화 A」 블록의 출력 영상 ID=003의 항목부터, 「2치화 B」 블록의 입력 영상의 항목까지 드래그&드롭 조작하면, 「2치화 A」 블록의 입력 영상 ID로서 003을 설정할 수 있다. 또한, 다른 예에서, 「2치화 A」 블록의 출력 영상 ID=003의 항목부터, 보다 이격된 「화소값 변환」 블록의 입력 영상의 항목까지 드래그&드롭 조작하면, 「화소값 변환」 블록의 입력 영상 ID로서 003을 설정할 수 있다.
본 기능에 의하면, 플로우라인에서의 어느 처리 블록의 입력 영상으로서 어느 처리 블록의 출력 영상이 사용되는지 등의 입출력 관계를 파악하기 쉬워, 입출력 관계의 설정이 직관적으로 가능하다. 입출력 관계의 미설정이 있을 경우에는, 아이콘(5701)의 경고 출력에 의해 지원이 가능하다.
도 63은, 다른 예로서, 출력 영상 ID의 연번의 재부여의 예를 나타낸다. 먼저, (A)의 상태인 것으로 한다. 도시의 플로우라인(FL)에 있어서, 각 처리 블록(BL)의 처리 결과(출력 영상)의 출력 영상 ID가 자동적으로 연번으로서 채번되어, 001 내지 005가 설정되어 있다. 또한, 디폴트에서의 입력 영상 ID의 자동 채번으로서, 하나 전의 처리 블록(BL)의 처리 결과를 다음 처리 블록(BL)의 입력 영상으로 할 경우에, 도시된 바와 같이, 입력 영상 ID로서 001 내지 004가 설정되어 있다.
이어서, (B)의 상태에 나타내는 바와 같이, 유저 U1이 「2치화 A」 블록을 삭제한 것으로 한다. 이 경우, 도 61의 예와 마찬가지로, 「2치화 A」 블록의 출력 영상 ID=003이 삭제된다. 설명 상의 과도적인 상태로서 (B)와 같이 된다. 이에 따라, 본 예에서는, 「2치화 B」 블록의 입력 영상 ID가 002로부터 공란으로 된다. 개발 시스템(1)은, 「2치화 B」 블록의 필수 설정이 미완료이기 때문에, (C)와 같이, 아이콘(5701)을 표시한다.
또한, 본 예에서는, (C)의 상태에 나타내는 바와 같이, 개발 시스템(1)은, 출력 영상 ID의 재부여를 행한다. 개발 시스템(1)은, 현재의 플로우라인(FL1)의 구성에 맞추어서, 선두부터 순서대로 연번이 되도록, 출력 영상 ID를 다시 부여한다. 이에 의해, 도시된 바와 같이, 출력 영상 ID는 001 내지 004가 된다. 또한, 개발 시스템(1)은, 출력 영상 ID의 재부여와 함께, 재부여 후의 출력 영상 ID와 정합시키도록, 입력 영상의 표시에서의 입력 영상 ID의 설정도 자동적으로 도시된 바와 같이 갱신한다. 예를 들어, 「화소값 변환」 블록의 입력 영상 ID는, 004에서 003으로 갱신된다.
본 기능에 의하면, 플로우라인 상의 출력 영상 ID 및 입력 영상 ID의 배열이 알기 쉬워짐과 함께, 유저 U1이 직접 ID를 재부여하는 수고도 저감된다. 처리 블록의 추가·삽입 등의 경우에도, 마찬가지로, 자동적인 ID의 재부여(재설정)가 적용 가능하다.
도 64는, 상기 필수 설정 미설정 블록 표시 기능에 관한 개발 시스템(1)의 제어 처리 플로를 나타낸다. 스텝 S641에서, 개발 시스템(1)은, GUI 화면(30)에서의 유저 U1에 의한 플로우라인의 편집 조작이 있었을 경우에는 검출한다. 스텝 S642에서, 개발 시스템(1)은, 처리 블록의 신규 배치인지, 처리 블록의 설정 변경/삭제인지를 판단한다. 신규 배치일 경우에는 (B)의 스텝 S643으로 진행하고, 설정 변경/삭제일 경우에는 (C)의 스텝 S646으로 진행한다.
(B)의 프레임으로 나타내는 처리는, 플로우라인에 신규 처리 블록이 배치되었을 경우의 이벤트 처리이다. 스텝 S643에서는, 개발 시스템(1)은, 신규 배치된 처리 블록에, 필수 설정이 미완료인 것, 특히 설정이 초깃값인 것을 나타내는 아이콘을 표시한다. 이 아이콘은, 상술한 도 57과 마찬가지로 예를 들어 ! 마크로 하지만, 이에 한정하지 않고, 신규 배치된 것, 설정이 초깃값인 것을 나타내는, 다른 소정의 표시로 해도 된다.
스텝 S644에서, 개발 시스템(1)은, 신규 배치 블록에 대해, 후방측(하류)에 접속되는 후치 블록(이격되어 접속되는 것도 포함함)이 있을 경우에는, 후치 블록에, 필수 설정 항목에 관한 재설정이 필요한지를 판단한다. 재설정이 필요한 경우("예")에는 스텝 S645로 진행하고, 불필요할 경우("아니오")에는 스텝 S648로 진행한다. 스텝 S645에서는, 개발 시스템(1)은, 해당하는 후치 블록에, 필수 설정 항목의 재설정이 필요한 것을 나타내는 소정의 표시, 예를 들어 상술한 바와 마찬가지의 아이콘(! 마크)을 표시한다.
(C)의 프레임으로 나타내는 처리는, 플로우라인에 배치 완료인 처리 블록에 대해서, 설정을 변경한 경우 또는 삭제되었을 경우의 이벤트 처리이다. 스텝 S646에서는, 개발 시스템(1)은, 설정이 변경된 처리 블록 또는 처리 블록이 삭제된 개소에 대해, 후방측(하류)에 접속되는 후치 블록(이격되어 접속되는 것도 포함함)이 있을 경우에는, 후치 블록에, 필수 설정 항목에 관한 재설정이 필요한지를 판단한다. 재설정이 필요한 경우("예")에는 스텝 S647로 진행하고, 불필요할 경우("아니오")에는 스텝 S648로 진행한다. 스텝 S647에서는, 개발 시스템(1)은, 해당하는 후치 블록에, 필수 설정 항목의 재설정이 필요한 것을 나타내는 소정의 표시, 예를 들어 상술한 바와 마찬가지의 아이콘(! 마크)을 표시한다.
(A)의 프레임으로 나타내는 처리는, 처리 블록에 설정이 이루어졌을 경우의 이벤트 처리이다. 스텝 S648에서, 개발 시스템(1)은, 플로우라인의 각 처리 블록에 대해서, 필수 설정이 완료되었는지를 판단하여, 완료일 경우에는 스텝 S649로 진행하고, 미완료일 경우에는 플로를 종료한다. 스텝 S649에서, 개발 시스템(1)은, 필수 설정이 완료된 처리 블록에 대해서, 아이콘(! 마크)을 소거하고, 플로를 종료한다.
[2-6. 플로우라인 처리 중 블록 표시 기능]
도 65는 플로우라인 처리 중 블록 표시 기능에 관한 설명도이다. 과제로서, 플로우라인을 실행할 때, 현재 어느 처리 블록이 실행되고 있는지 등을 파악할 수 없으면, 개발자 등의 유저 U1은, 플로우라인에 배치한 처리 블록이 적절한지 여부 등의 파악이 어려운 경우가 있다. 상술한 도 57의 플로우라인 실행 상태를 표시하는 기능에서는, 플로우라인의 각 처리 블록이 정상적으로 실행되었는지 에러 종료인지 등의 상태를 확인할 수 있지만, 이 기능만으로는, 현재 어느 처리 블록이 실행되고 있는지 등을 인식하기 어려운 경우가 있다.
그래서, 본 기능은, 플로우라인을 실행할 때, 현재 어느 처리 블록이 실행되고 있는지 등을 나타내는 소정의 표시를 행하는 기능이다. 본 기능에서는, 플로우라인 상에서 현재 처리를 실행 중인 처리 블록만을 제1 표시 상태로서 예를 들어 밝게 통상 표시를 행하고, 그 밖의 처리 블록을 제2 표시 상태로서 예를 들어 어둡게 표시를 행한다.
도 65의 예에서는, 플로우라인란(32)에서, 제작된 플로우라인(FL)으로서, 「카메라 도입」 블록, 「처리 A」 블록, 「처리 B」 블록, 「처리 C」 블록이 연결되어 있다. 유저 U1에 의한 플로우라인 실행 조작에 따라, 개발 시스템(1)은, 플로우라인(FL)의 처리를 실행한다. 이 실행 처리는, 상술한 프리뷰 표시 처리와는 별도이지만, 프리뷰 표시를 위한 실행 처리로 해도 된다.
도 65의 예에서는, 플로우라인(FL)에서의 예를 들어 「처리 A」 블록의 처리를 실행 중인 상태이며, 「처리 A」 블록의 개소는, 제1 표시 상태(6501)로서 상대적으로 밝은 표시로 되어 있고, 그 이외의 개소로서, 「카메라 도입」 블록, 「처리 B」 블록, 「처리 C」 블록의 개소는, 제2 표시 상태(6502)로서 상대적으로 어두운 표시로 되어 있다. 본 예에서는, 제1 표시 상태(6501)는 GUI 화면(30)에서의 통상의 밝기 표시로 하고, 제2 표시 상태(6502)는, 화면 상위 레이어에서의 음영 표시와 같이 하고 있지만, 이것에 한정되지 않고, 각종 표시 양태가 가능하다. 제1 표시 상태(6501)를, 통상 표시보다 두드러지게 소정의 색, 아이콘, 프레임 등의 표시로 해도 된다.
또한, 이 기능은, 상술한 도 57의 플로우라인 실행 상태의 표시(5702) 기능과의 병용, 병렬 표시도 가능하다. 도 65의 예에서는, 병렬 표시로 하고 있고, 「실행」의 행에 나타내는 바와 같이, 플로우라인 실행 상태의 표시(5702)가 마련되어 있다.
도 66은, 도 65의 상세 설명도이며, 플로우라인란(32)에서, 플로우라인(FL)의 실행 중인 상태의 천이를 나타낸다. (A)의 상태는, 선두의 「카메라 도입」 블록의 처리의 실행 중인 상태이다. (B)의 상태는, 도 65와 마찬가지로 「처리 A」 블록의 처리의 실행 중인 상태이다. 마찬가지로 하여, 처리 블록마다 제1 표시 상태(6501)가 천이하여, (C)의 상태는, 최후의 「처리 C」 블록의 처리의 실행 중인 상태이다. 플로우라인(FL)의 최후 처리까지 종료되면, 원래의 표시로 돌아간다. 또한, 상술한 바와 같이 에러 종료가 생겼을 경우, 그 시점에서 원래의 표시로 돌아간다.
본 기능에 의하면, 유저 U1은 플로우라인의 실행 상태로서 실행 중인 처리 블록 등을 알기 쉽게 인식할 수 있다. 프리뷰 표시의 실행과 함께 상기 플로우라인의 실행이 행해졌을 경우에는, 예를 들어 도 65에서 플로우라인란(32)에 실행 중인 처리 블록(제1 표시 상태(6501))이 표시되는 동시에, 프리뷰란(33)에는 실행 중인 처리 블록의 프리뷰 표시 영상이 표시된다.
[처리 블록마다의 내부 설정란의 표시예]
도 67은, 실시 형태 2의 각 기능에 관련된, 처리 블록마다의 내부 설정란의 표시예를 나타낸다. 도 67의 예는, 「컬러 변환」 블록에 관한 내부 설정란이다. 「검사 플로 표시」 항목(6701)은, 상술한 도 37과 같은 검사 시의 화면에, 당해 처리 블록의 정보를 표시할지 여부의 ON/OFF 설정을 가능하게 하는 GUI이다. OFF 설정으로 하면, 화면의 표시 정보를 저감시킬 수 있다. 「프리뷰 표시」 항목(6702)은, 상술한 프리뷰 표시 유무 전환 기능(도 39 등)에 대응한 GUI이다. 「포맷 변환」 항목(6703)은, 「컬러 변환」 블록의 경우에 대응한, 상술한 내부 설정의 예이다.
「입력 영상 선택」 항목(6704)은, 당해 처리 블록의 입력 영상을 설정할 수 있는 란이다. 「처리 화상」 체크 항목(6705)은, 체크가 온 설정으로 되었을 경우, 설정된 입력 영상에 대해 당해 처리 블록의 처리가 적용된다. 체크가 오프 설정으로 되었을 경우, 디폴트 설정의 영상·화상에 대해 당해 처리 블록의 처리가 적용된다. 당해 처리 블록에 입력 영상이 설정되어 있지 않아도, 시험 삼아 처리를 적용할 수 있는 것이다. 「입력 영상 ID」 항목(6706)은, 상술한 입력 영상의 ID를 선택·지정할 수 있는 항목이다. 입력 영상 프리뷰 항목(6707)은, 설정된 입력 영상의 프리뷰가 표시된다. 「화소값」 항목(6708)은, 입력 영상 프리뷰에 대해 마우스 오버 등으로 지정된 화소의 위치(x, y) 및 화소값(R, G, B)이 표시된다.
상기 예와 같은 처리 블록마다의 내부 설정란의 GUI와, 상술한 플로우라인 전체의 GUI의 사이에서, 적절하게 천이가 가능하다. 또한, 도 67과 같은 내부 설정란의 표시에 있어서, 파라미터 항목마다, 어느 것이 상술한 필수 설정 항목이고 어느 것이 비필수 설정 항목인지를 유저 U1이 알기 쉽도록 소정의 표시(예를 들어 필수 설정 항목에 마크나 하이라이트의 표시)를 하도록 해도 된다.
이상, 본 발명을 실시 형태에 기초하여 구체적으로 설명하였지만, 본 발명은 상술한 실시 형태에 한정되지 않고, 요지를 일탈하지 않는 범위에서 다양하게 변경 가능하다. 각 실시 형태는, 필수 구성 요소를 제외하고, 구성 요소의 추가·삭제·치환 등이 가능하다. 특별히 한정하지 않을 경우, 각 구성 요소는, 단수여도 복수여도 된다. 각 실시 형태를 조합한 형태도 가능하다.
1: 개발 시스템 2: 화상 검사 시스템
30: GUI 화면 31: 블록 선택부
32: 블록 배치부 33: 프리뷰 표시부
BL: 처리 블록 FL: 플로우라인

Claims (32)

  1. 화상 검사 시스템의 개발을 지원하는 개발 시스템이며,
    프로세서 및 메모리를 갖는 컴퓨터 시스템을 구비하고,
    상기 컴퓨터 시스템은, 상기 개발을 행하는 유저에 대해, 상기 개발을 지원하기 위한 그래피컬·유저·인터페이스(GUI)를 갖는 GUI 화면을 생성해서 제공하고,
    상기 GUI 화면은,
    상기 화상 검사 시스템의 플로우라인을 구성하기 위한 부품인 처리 블록이 복수 배치되어 있는 블록 선택부와,
    상기 블록 선택부로부터 상기 유저의 GUI 조작에 따라서 선택된 처리 블록이 배치되고, 배치된 처리 블록끼리 라인으로 연결됨으로써, 제작 중인 상기 플로우라인이 구성되어 표시되는 블록 배치부와,
    상기 블록 배치부에 배치되어 있는 제작 중인 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인의 동작 상태의 프리뷰 영상을 표시하는 프리뷰 표시부
    를 구비하는,
    개발 시스템.
  2. 제1항에 있어서, 상기 블록 선택부로부터 선택된 처리 블록이, 상기 블록 배치부에 드래그&드롭으로 배치됨으로써, 상기 플로우라인의 지정 개소에 상기 처리 블록이 추가되고,
    상기 블록 배치부의 상기 플로우라인에 대해, 상기 유저의 GUI 조작에 따라, 지정 개소의 상기 처리 블록이 삭제되고,
    상기 블록 배치부의 상기 플로우라인에 대해, 상기 유저의 GUI 조작에 따라, 지정 개소의 상기 처리 블록을, 다른 상기 처리 블록으로 치환하는, 개발 시스템.
  3. 제1항에 있어서, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인 전체, 혹은, 상기 플로우라인의 선두부터, 선택된 상기 처리 블록까지의 범위를 대상으로 하여, 상기 대상의 처리 동작의 프리뷰를 상기 프리뷰 표시부에 표시하는, 개발 시스템.
  4. 제1항에 있어서, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인 중 선택된 상기 처리 블록을 대상으로 하여, 상기 대상의 처리 동작의 프리뷰를 상기 프리뷰 표시부에 표시하는, 개발 시스템.
  5. 제1항에 있어서, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록을 기점으로 해서, 상기 플로우라인의 최후미까지의 범위를 대상으로 하여, 상기 대상의 처리 동작의 프리뷰를 상기 프리뷰 표시부에 표시하거나, 혹은, 선택된 상기 처리 블록을 기점으로 해서, 선택된 다른 상기 처리 블록을 종점으로 한 범위를 대상으로 하여, 상기 대상의 처리 동작의 프리뷰를 상기 프리뷰 표시부에 표시하는, 개발 시스템.
  6. 제1항에 있어서, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인 중 선택된 범위 내의 복수의 상기 처리 블록을 대상으로 하여, 상기 대상의 처리 동작의 프리뷰를 상기 프리뷰 표시부에 표시하고,
    상기 프리뷰 표시부는, 상기 범위 각각의 상기 처리 블록의 처리 결과 화상을, 시간축 상에서 순차적으로 표시하는, 개발 시스템.
  7. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록을 대상으로 하여, 샘플 입력 화상을 사용하여, 상기 대상의 동작 상태의 프리뷰 영상을, 상기 프리뷰 표시부에 표시하는, 개발 시스템.
  8. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록은, 복수의 내부 설정을 갖는 경우가 있고,
    상기 블록 배치부에 배치되어 있는 상기 플로우라인에서의 상기 처리 블록은, 상기 유저의 GUI 조작에 따라, 상기 복수의 내부 설정으로부터 선택된 내부 설정으로 전환해서 설정 가능한, 개발 시스템.
  9. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록을, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 임시 적용한 경우의 동작 상태를, 상기 프리뷰 표시부에 표시하는, 개발 시스템.
  10. 제1항에 있어서, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 범위의 복수의 상기 처리 블록을 대상으로 하여, 상기 범위 각각의 처리 블록의 동작 상태를, 상기 프리뷰 표시부에서 복수의 분할 영역에 병렬로 표시하는, 개발 시스템.
  11. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록은, 복수의 내부 설정을 갖는 경우가 있고,
    상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록에서의 복수의 내부 설정을 대상으로 하여, 상기 처리 블록 각각의 내부 설정마다의 동작 상태를, 상기 프리뷰 표시부에서 복수의 분할 영역에 병렬로 표시하고,
    상기 프리뷰 표시부에 대해, 상기 유저의 GUI 조작에 따라, 선택된 내부 설정을, 상기 블록 배치부의 상기 플로우라인의 상기 처리 블록에 설정하는, 개발 시스템.
  12. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록의 하나로서, 화상으로부터 대상물에 관한 판정을 행하는 판정 처리 블록을 갖고,
    상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록으로서 상기 판정 처리 블록을 대상으로 하여, 상기 판정 처리 블록의 동작 상태를, 상기 프리뷰 표시부에 표시하고,
    상기 프리뷰 표시부는, 상기 판정 처리 블록의 판정 처리 결과 화상의 표시와 함께, 상기 판정 처리 결과 화상의 외측 프레임선을, 판정 처리 결과 정보에 따라서 다른 양태로 표시하는, 개발 시스템.
  13. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록의 하나로서, 화상으로부터 대상물에 관한 판정을 행하는 판정 처리 블록을 갖고,
    상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록으로서 상기 판정 처리 블록을 대상으로 하여, 상기 판정 처리 블록의 동작 상태를, 상기 프리뷰 표시부에 표시하고,
    상기 프리뷰 표시부는, 상기 판정 처리 블록의 판정 처리 결과 화상의 표시와 함께, 상기 유저의 GUI 조작에 따라, 선택된 화소 위치의 색 정보를 추출해서 표시하는, 개발 시스템.
  14. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록은, 복수의 내부 설정을 갖는 경우가 있고,
    상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 처리 블록의 내부 설정을 선택할 때, 상기 유저의 GUI 조작에 따라, 선택된 상기 처리 블록에서의 복수의 내부 설정을 대상으로 하여, 각각의 내부 설정마다의 동작 상태를, 상기 프리뷰 표시부에서 복수의 분할 영역에 병렬로 표시하고,
    상기 프리뷰 표시부는, 토너먼트 방식으로, 상기 처리 블록의 상기 복수의 내부 설정 중 비교의 후보가 되는 내부 설정을 순차적으로 추출해서 상기 복수의 분할 영역에서 비교 표시하고, 상기 분할 영역에 대한 상기 유저의 GUI 조작에 따라, 승자 진출의 후보를 선택하여, 최종적으로 상기 블록 배치부의 상기 플로우라인에 채용하는 내부 설정을 결정하는, 개발 시스템.
  15. 제1항에 있어서, 상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 다음으로 지정 개소에 배치하기 위한 상기 처리 블록을, 상기 블록 선택부에 배치되어 있는 복수의 상기 처리 블록으로부터 선택할 때, 상기 유저의 GUI 조작에 따라, 선택된 복수의 상기 처리 블록을 대상으로 하여, 각각의 처리 블록마다의 동작 상태를, 상기 프리뷰 표시부에서 복수의 분할 영역에 병렬로 표시하고,
    상기 프리뷰 표시부는, 토너먼트 방식으로, 상기 복수의 처리 블록 중 비교의 후보가 되는 처리 블록을 순차적으로 추출해서 상기 복수의 분할 영역에서 비교 표시하고, 상기 분할 영역에 대한 상기 유저의 GUI 조작에 따라, 승자 진출의 후보를 선택하여, 최종적으로 상기 블록 배치부의 상기 플로우라인에 채용하는 처리 블록을 결정하는, 개발 시스템.
  16. 제1항에 있어서, 상기 블록 배치부는, 상기 유저의 GUI 조작에 따라, 제작 중인 후보의 복수의 플로우라인을 표시하고, 각각의 후보의 플로우라인에 관한 동작 상태의 프리뷰를 상기 프리뷰 표시부에 표시하고, 상기 유저의 GUI 조작에 따라, 선택된 플로우라인을 보존하는, 개발 시스템.
  17. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록의 하나로서, 카메라 도입 처리 블록을 갖고, 상기 카메라 도입 처리 블록은, 복수의 내부 설정을 갖고,
    상기 블록 배치부에 배치되어 있는 상기 플로우라인에 대해서, 상기 카메라 도입 블록의 내부 설정을 선택할 때, 상기 유저의 GUI 조작에 따라, 선택된 상기 카메라 도입 블록의 복수의 내부 설정을 대상으로 하여, 각각의 내부 설정마다의 동작 상태를, 상기 프리뷰 표시부에서, 적정 화상과의 비교로 표시하는, 개발 시스템.
  18. 제1항에 있어서, 상기 블록 선택부에 배치되어 있는 상기 처리 블록의 하나로서, 카메라 도입 처리 블록을 갖고,
    상기 유저의 GUI 조작에 따라, 선택된 상기 카메라 도입 블록의 카메라 도입 화상을 상기 프리뷰 표시부에 표시하고,
    상기 프리뷰 표시부에 표시되어 있는 상기 카메라 도입 화상에 대해, 상기 유저의 GUI 조작에 따라, 템플릿 화상의 후보로 하는 영역을 선택하고,
    상기 템플릿 화상의 후보로 하는 영역으로부터, 사이즈를 가변하여, 다른 후보의 영역을 생성하고,
    상기 템플릿 화상의 후보로 된 복수의 영역을, 상기 유저의 GUI 조작에 따라, 상기 프리뷰 표시부에 비교 표시하고, 상기 프리뷰 표시부에 대한 상기 유저의 GUI 조작에 따라, 선택된 후보를, 상기 템플릿 화상으로서 등록하는, 개발 시스템.
  19. 제1항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인 전체, 또는, 배치되어 있는 처리 블록마다, 상기 유저의 GUI 조작에 따라, 상기 프리뷰 표시부에서의 프리뷰 영상의 표시에 관한 ON/OFF를 설정하는, 개발 시스템.
  20. 제19항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인 전체, 또는, 배치되어 있는 처리 블록마다, 상기 프리뷰 영상의 표시에 관한 ON/OFF의 설정 상태를 나타내는 소정의 표시를 하는, 개발 시스템.
  21. 제1항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인 전체, 또는, 배치되어 있는 처리 블록마다, 상기 유저의 GUI 조작에 따라, 상기 프리뷰 표시부에서의 프리뷰 영상의 표시에 관한 해상도를 설정하는, 개발 시스템.
  22. 제1항에 있어서, 상기 프리뷰 표시부에서, 상기 유저의 GUI 조작에 따라, 상기 프리뷰 영상을 회전 또는 반전시킨 상태로 해서 표시하는, 개발 시스템.
  23. 제1항에 있어서, 상기 블록 선택부로부터 상기 유저의 GUI 조작에 따라서 선택된, 대상의 처리 블록에 대해서,
    상기 블록 배치부에서, 배치되어 있는 플로우라인에서의, 상기 대상의 처리 블록이 배치 가능한 개소 및 배치 불가능한 개소를 판단하여, 상기 배치 가능한 개소에 배치 가능을 나타내는 소정의 표시를 행하는, 및/또는, 상기 배치 불가능한 개소에 배치 불가능을 나타내는 소정의 표시를 행하는, 개발 시스템.
  24. 제23항에 있어서, 상기 플로우라인에서의 전방측에 배치되는 전치 처리 블록과 당해 전치 처리 블록의 후방측에 배치되는 후치 처리 블록의 관계에서, 당해 전치 처리 블록과 당해 후치 처리 블록의 연결 가부가 조건으로서 설정되어 있고,
    상기 대상의 처리 블록에 대해서, 상기 조건에 기초하여, 상기 배치 가능인지 배치 불가능인지를 판단하는, 개발 시스템.
  25. 제1항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인을 구성하는 처리 블록마다, 당해 처리 블록의 필수 설정 항목이 설정 완료인지 미설정인지를 나타내는 소정의 표시를 하는, 개발 시스템.
  26. 제1항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인에 대해서, 당해 플로우라인의 처리가 실행되었을 경우에, 배치되어 있는 처리 블록마다, 실행 상태로서, 정상, 에러 종료, 또는 미실행을 나타내는 소정의 표시를 하는, 개발 시스템.
  27. 제1항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인에 대해서, 배치되어 있는 처리 블록마다, 상기 유저의 GUI 조작에 따라, 출력 영상의 출력 영상 ID와, 입력 영상의 입력 영상 ID를 설정해서 표시하는, 개발 시스템.
  28. 제27항에 있어서, 상기 처리 블록의 상기 출력 영상 ID를 자동적으로 채번해서 표시하고,
    상기 처리 블록의 상기 입력 영상 ID에 대해서는, 자동적으로 채번된 상기 출력 영상 ID로부터, 상기 유저의 GUI 조작에 따라, 선택된 출력 영상 ID를 설정하는, 개발 시스템.
  29. 제27항에 있어서, 상기 처리 블록의 상기 입력 영상 ID의 설정은, 당해 처리 블록의 필수 설정 항목의 하나이며,
    상기 블록 배치부에서, 배치되어 있는 플로우라인을 구성하는 처리 블록마다, 당해 처리 블록의 필수 설정 항목이 설정 완료인지 미설정인지를 나타내는 소정의 표시를 하는, 개발 시스템.
  30. 제1항에 있어서, 상기 블록 배치부에서, 배치되어 있는 플로우라인에 대해서, 당해 플로우라인의 처리가 실행되었을 경우에, 시계열로, 처리 중인 처리 블록을 나타내는 제1 표시 상태와, 처리 중이 아닌 처리 블록을 나타내는 제2 표시 상태를 전환해서 표시하는, 개발 시스템.
  31. 화상 검사 시스템의 개발을 지원하는 개발 시스템에서의 개발 방법이며,
    상기 개발 시스템은, 프로세서 및 메모리를 갖는 컴퓨터 시스템을 구비하고,
    상기 컴퓨터 시스템은, 상기 개발을 행하는 유저에 대해, 상기 개발을 지원하기 위한 그래피컬·유저·인터페이스(GUI)를 갖는 GUI 화면을 생성해서 제공하고,
    상기 컴퓨터 시스템에 의해 실행되는 스텝으로서,
    상기 GUI 화면에, 상기 화상 검사 시스템의 플로우라인을 구성하기 위한 부품인 처리 블록이 복수 배치되어 있는 블록 선택부를 표시하고, 상기 유저의 GUI 조작에 기초하여, 상기 블록 선택부로부터 상기 처리 블록을 선택하는 스텝과,
    상기 GUI 화면에, 제작 중인 상기 플로우라인이 표시되는 블록 배치부를 표시하고, 상기 유저의 GUI 조작에 기초하여, 상기 블록 선택부로부터 선택된 처리 블록을 상기 블록 배치부에 배치하고, 배치된 처리 블록끼리를 라인으로 연결시킴으로써, 제작 중인 상기 플로우라인을 구성하는 스텝과,
    상기 GUI 화면에, 상기 플로우라인의 동작 상태의 프리뷰 영상을 표시하기 위한 프리뷰 표시부를 표시하고, 상기 블록 배치부에 배치되어 있는 제작 중인 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인의 동작 상태의 프리뷰 영상을 상기 프리뷰 표시부에 표시하는 스텝
    을 갖는, 개발 방법.
  32. 화상 검사 시스템의 개발을 지원하는 개발 시스템에 처리를 실행시키는 개발 프로그램이며,
    상기 개발 시스템은, 프로세서 및 메모리를 갖는 컴퓨터 시스템을 구비하고,
    상기 컴퓨터 시스템은, 상기 개발을 행하는 유저에 대해, 상기 개발을 지원하기 위한 그래피컬·유저·인터페이스(GUI)를 갖는 GUI 화면을 생성해서 제공하고,
    상기 컴퓨터 시스템에 실행시키는 처리로서,
    상기 GUI 화면에, 상기 화상 검사 시스템의 플로우라인을 구성하기 위한 부품인 처리 블록이 복수 배치되어 있는 블록 선택부를 표시하고, 상기 유저의 GUI 조작에 기초하여, 상기 블록 선택부로부터 상기 처리 블록을 선택하는 처리와,
    상기 GUI 화면에, 제작 중인 상기 플로우라인이 표시되는 블록 배치부를 표시하고, 상기 유저의 GUI 조작에 기초하여, 상기 블록 선택부로부터 선택된 처리 블록을 상기 블록 배치부에 배치하고, 배치된 처리 블록끼리를 라인으로 연결시킴으로써, 제작 중인 상기 플로우라인을 구성하는 처리와,
    상기 GUI 화면에, 상기 플로우라인의 동작 상태의 프리뷰 영상을 표시하기 위한 프리뷰 표시부를 표시하고, 상기 블록 배치부에 배치되어 있는 제작 중인 상기 플로우라인에 대해서, 상기 유저의 GUI 조작에 따라, 상기 플로우라인의 동작 상태의 프리뷰 영상을 상기 프리뷰 표시부에 표시하는 처리
    를 갖는, 개발 프로그램.
KR1020257012131A 2022-10-17 2023-10-16 개발 시스템, 방법 및 프로그램 Pending KR20250065411A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2022-166080 2022-10-17
JP2022166080 2022-10-17
PCT/JP2023/037456 WO2024085123A1 (ja) 2022-10-17 2023-10-16 開発システム、方法、およびプログラム

Publications (1)

Publication Number Publication Date
KR20250065411A true KR20250065411A (ko) 2025-05-12

Family

ID=90737844

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020257012131A Pending KR20250065411A (ko) 2022-10-17 2023-10-16 개발 시스템, 방법 및 프로그램

Country Status (4)

Country Link
JP (1) JPWO2024085123A1 (ko)
KR (1) KR20250065411A (ko)
CN (1) CN120035812A (ko)
WO (1) WO2024085123A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009141413A (ja) 2007-12-03 2009-06-25 Noritsu Koki Co Ltd 画像処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231061A (ja) * 1996-02-20 1997-09-05 Fuji Xerox Co Ltd プログラミング支援装置および方法
JP2019053355A (ja) * 2017-09-12 2019-04-04 セイコーエプソン株式会社 情報処理装置、情報処理方法、及び、プログラム
US11921619B2 (en) * 2018-11-28 2024-03-05 Trust Technology Co., Ltd. Programming devices and programs for creating and editing programs used for image processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009141413A (ja) 2007-12-03 2009-06-25 Noritsu Koki Co Ltd 画像処理装置

Also Published As

Publication number Publication date
JPWO2024085123A1 (ko) 2024-04-25
CN120035812A (zh) 2025-05-23
WO2024085123A1 (ja) 2024-04-25

Similar Documents

Publication Publication Date Title
JP5867198B2 (ja) 領域指定方法及び領域指定装置
US20130187954A1 (en) Image data generation apparatus and image data generation method
JP2006300681A (ja) 画像作成装置
JP2016224599A (ja) ガイドファイル作成プログラム
US8081213B2 (en) Test support system and image processing controller
JP7202571B2 (ja) 画面遷移情報生成装置、画面遷移情報生成方法、画面遷移情報生成用プログラム、画面遷移情報生成システム
KR20030088862A (ko) 봉제데이터 작성장치 및 봉제데이터 작성프로그램
JP4944739B2 (ja) 画像処理コントローラ用のプログラム作成装置
JP2009146075A (ja) 画像処理コントローラ及び検査支援システム
JP4929133B2 (ja) 検査支援システム
TWI844033B (zh) 電腦系統、尺寸計測方法、及記憶媒體
CN115115740B (zh) 思维导图识别方法、装置、设备、介质及程序产品
JP3564371B2 (ja) 図形編集装置及び方法
KR20250065411A (ko) 개발 시스템, 방법 및 프로그램
JP3288460B2 (ja) 表示データ生成装置及び方法
JP2720807B2 (ja) シナリオ編集装置
JP2009122822A (ja) 画像処理コントローラ用のプログラム作成装置
JP3967885B2 (ja) 画像処理装置
JP3890096B2 (ja) 画像編集システム
JP7334617B2 (ja) プログラム実行装置、プログラム実行方法およびプログラム
JP2014123260A (ja) システム監視画面の画像作成装置
JP2001255926A (ja) 製品製造情報生成装置及びプログラム記録媒体
JP2013250927A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2006023960A (ja) 不完全な靴底画像から靴底パターンを識別する方法
TWI860786B (zh) 電腦系統、尺寸量測方法、及半導體裝置製造系統

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20250414

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application