JP6150281B2 - Server system and program - Google Patents

Server system and program Download PDF

Info

Publication number
JP6150281B2
JP6150281B2 JP2013117281A JP2013117281A JP6150281B2 JP 6150281 B2 JP6150281 B2 JP 6150281B2 JP 2013117281 A JP2013117281 A JP 2013117281A JP 2013117281 A JP2013117281 A JP 2013117281A JP 6150281 B2 JP6150281 B2 JP 6150281B2
Authority
JP
Japan
Prior art keywords
renderer
core
client
image
request
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.)
Expired - Fee Related
Application number
JP2013117281A
Other languages
Japanese (ja)
Other versions
JP2014235607A (en
Inventor
敏夫 久光
敏夫 久光
伸一 山際
伸一 山際
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Agency for Marine Earth Science and Technology
Original Assignee
Japan Agency for Marine Earth Science and Technology
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 Japan Agency for Marine Earth Science and Technology filed Critical Japan Agency for Marine Earth Science and Technology
Priority to JP2013117281A priority Critical patent/JP6150281B2/en
Publication of JP2014235607A publication Critical patent/JP2014235607A/en
Application granted granted Critical
Publication of JP6150281B2 publication Critical patent/JP6150281B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Analysing Materials By The Use Of Radiation (AREA)
  • Image Processing (AREA)

Description

本発明は、サーバシステム,及びプログラムに関する。   The present invention relates to a server system and a program.

出願人が所有する地球深部探査船「ちきゅう」は、地球環境変動、地球内部構造及び地殻内生物圏の解明を目的として、海底の掘削を行っている。海底を掘削した柱状の地層サンプルは、掘削コア試料と呼ばれている(単に「コア試料」、「コア」とも呼ばれる)。「ちきゅう」船上には、掘削コア試料を分析する装置の一つとして、X線CT(Computed
Tomography)スキャナを搭載している。本装置を用いて掘削コア試料をディジタルデー
タ化することによって、コア試料の物性や構造が変化してしまう前に、コア試料の内部を立体的に可視化しディジタルアーカイブとして保存することができる。
The deep-sea exploration ship "Chikyu" owned by the applicant is excavating the seabed for the purpose of elucidating global environmental changes, the internal structure of the earth, and the biosphere in the crust. A columnar formation sample excavated in the seabed is called a drilled core sample (also simply called “core sample” or “core”). On the “CHIKYU” ship, X-ray CT (Computed) is one of the devices that analyze drill core samples.
Tomography) equipped with a scanner. By converting the drill core sample into digital data using this apparatus, the inside of the core sample can be visualized three-dimensionally and stored as a digital archive before the physical properties and structure of the core sample change.

掘削コア試料のX線CTスキャンデータ(以下、「コアデータ」と称する)を用いて予めコア内部に係る調査を行うことで、実際のコア試料を用いた分析の効率や効果を高めることができる。このような、コアデータの利用促進のため、コアデータをネットワーク上のサーバに配置し、研究者がクライアント端末を用いてサーバにアクセスすることで、コアデータの閲覧とインタラクティブな画像操作を可能とすることが考えられる。   By conducting an investigation related to the inside of the core in advance using X-ray CT scan data (hereinafter referred to as “core data”) of the drilled core sample, the efficiency and effect of the analysis using the actual core sample can be enhanced. . In order to promote the use of core data, core data can be viewed and interactive images can be accessed by placing the core data on a server on the network and allowing researchers to access the server using a client terminal. It is possible to do.

本発明に関連する先行技術として、例えば、以下のような特許文献1〜5に記載された技術がある。   As prior arts related to the present invention, for example, there are techniques described in Patent Documents 1 to 5 as follows.

特許第4337987号公報Japanese Patent No. 4337987 特許第4646273号公報Japanese Patent No. 4646273 特開2008−284291号公報JP 2008-284291 A 特開2006−314626号公報JP 2006-314626 A 特開2002−329190号公報JP 2002-329190 A

しかしながら、コアデータを用いた分析には、以下のような問題があった。第1の問題は、コアデータのサイズである。コア試料は、所定長さ(1.5m)で複数のセクションに分割され、セクション毎にコアデータが生成される。コアデータは、医用画像の標準フォーマットであるDICOM(Digital Imaging and COmmunication in Medicine)に基
づき作成された3次元画像ファイルであり、コアデータのデータ容量は、コアセクション当たり400メガバイトである。このようなサイズのデータをサーバから大量にダウンロードし、3次元描画を行うには、高速なプロセッサと大容量のメモリが必要となる。換言すれば、クライアント端末として、ハイスペックなハードウェアを備えた情報処理装置(コンピュータ)を使用することが要求される。また、円滑なコアデータのダウンロードのために、広帯域の通信回線が必要となる。
However, the analysis using the core data has the following problems. The first problem is the size of the core data. The core sample is divided into a plurality of sections with a predetermined length (1.5 m), and core data is generated for each section. The core data is a three-dimensional image file created based on DICOM (Digital Imaging and Communication in Medicine), which is a standard format for medical images, and the data capacity of the core data is 400 megabytes per core section. In order to download a large amount of data of such a size from the server and perform three-dimensional drawing, a high-speed processor and a large-capacity memory are required. In other words, it is required to use an information processing apparatus (computer) equipped with high-spec hardware as a client terminal. In addition, a broadband communication line is required for smooth core data download.

第2の問題は、コアデータに基づく3次元画像を閲覧するためのビューワの問題である。上記のように、コアデータは、DICOM画像ファイルである。DICOMフォーマットのコアデータのファイル(DICOMファイル)を読み込んで3次元画像を表示するソフトウェア専用ソフトウェア(ビューワ)として、例えば、DICOM画像の参照に特化したオープンソフトウェアであるOsiriX(オザイリクス)がある。   The second problem is a viewer problem for browsing a three-dimensional image based on core data. As described above, the core data is a DICOM image file. As software-only software (viewer) that reads a core data file (DICOM file) in DICOM format and displays a three-dimensional image, for example, there is OsiriX (Ozairix), which is open software specialized for referencing DICOM images.

しかしながら、OsiriXは、医用のDICOM画像の描画に特化されたソフトウェアであるため、骨や筋肉、靱帯のような生体組織に対応するCT値(X線吸収率)に対する描画は可能であるが、コア試料のような、生体組織と異なるCT値を持つ物質に対する色づけ、すなわちコア試料観察に最適な描画設定を行うことはできなかった。また、DICOMは、医用の画像フォーマット、及び医用通信機器間での通信プロトコルを規定したものであり、一般的なクライアント−サーバ方式(例えば、HTTP(HyperText Transfer Protocol)通信)にそのまま適用可能な仕様を備えていない。   However, since OsiriX is software specialized for drawing DICOM images for medical use, drawing for CT values (X-ray absorption rate) corresponding to biological tissues such as bones, muscles, and ligaments is possible. Coloring a substance having a CT value different from that of a living tissue such as a core sample, that is, an optimal drawing setting for observation of the core sample could not be performed. DICOM defines a medical image format and a communication protocol between medical communication devices, and is a specification that can be directly applied to a general client-server system (for example, HTTP (HyperText Transfer Protocol) communication). Not equipped.

さらに、第3の問題として、サーバは、ネットワークを通じて全世界の研究者をはじめとする関係者に対してコアデータを提供可能に構築されることが想定される。このため、サーバにコアデータの提供要求が集中したり、コア試料間の比較のために或る閲覧者が或る時間内に幾つかのコアデータの提供を交互に繰り返して要求したりすることが想定される。上記のような要求に対して、サーバ側で閲覧者が要求する画像データをいち早く生成し、閲覧者に送信するような機構がなければ、閲覧者に対して適当なコアデータの調査環境を提供することができなかった。   Furthermore, as a third problem, it is assumed that the server is constructed so as to be able to provide core data to concerned parties including researchers all over the world through a network. For this reason, core data provision requests are concentrated on the server, or a certain viewer repeatedly requests several core data provisions within a certain period of time for comparison between core samples. Is assumed. If there is no mechanism to quickly generate the image data requested by the viewer on the server side and send it to the viewer in response to the above request, the appropriate survey environment for core data is provided to the viewer. I couldn't.

上記した第1〜第3の問題は、X線CTスキャンデータの利用範囲が医用に特化しており、X線CTスキャンデータを不特定多数者にネットワークを介して配信することが想定されていなかったことに起因する。当該問題は、コアデータだけでなく、X線CTスキャンデータに基づく画像を広く配信することに対して提起される問題である。   The above-mentioned first to third problems are that the use range of X-ray CT scan data is specialized for medical use, and it is not assumed that X-ray CT scan data is distributed to an unspecified majority person via a network. Because of that. This problem is a problem raised against widely distributing images based on X-ray CT scan data as well as core data.

本発明は、上記の事情に鑑みなされたものであり、X線CTスキャンによって得られた物体の画像を効率よくクライアントに供給可能な技術を提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object thereof is to provide a technique capable of efficiently supplying an image of an object obtained by an X-ray CT scan to a client.

本発明の一側面は、ネットワークを通じて受信されたクライアントからの検索要求に応じた閲覧対象の物体を検索する検索モジュールと、
前記検索モジュールによって検索された物体の識別情報を含む画像生成要求に応じて、当該識別情報に対応する物体のX線CTスキャンによって得られた複数のスライス画像から3次元モデルを生成可能であり、且つこの3次元モデルから前記クライアントへ前記ネットワークを通じて送信すべき2次元画像を生成可能な複数のレンダラと、
前記各レンダラで生成された3次元モデルを一時記憶するメモリと、
前記物体の識別情報とレンダラとの対応関係を記憶する記憶部とを含み、
新たな画像生成要求が受け付けられたときに、前記対応関係に基づき前記新たな画像生成要求に含まれた物体の識別情報に対応するレンダラに当該新たな画像生成要求が供給され、当該レンダラは、前記メモリに一時記憶された3次元モデルを用いて新たな画像生成要求に対応する2次元画像を生成するサーバシステムである。
One aspect of the present invention is a search module that searches for an object to be browsed in response to a search request from a client received through a network,
In response to an image generation request including identification information of an object searched by the search module, a three-dimensional model can be generated from a plurality of slice images obtained by X-ray CT scan of an object corresponding to the identification information. A plurality of renderers capable of generating a two-dimensional image to be transmitted from the three-dimensional model to the client through the network;
A memory for temporarily storing a three-dimensional model generated by each renderer;
A storage unit that stores the correspondence between the identification information of the object and the renderer,
When a new image generation request is received, the new image generation request is supplied to a renderer corresponding to the object identification information included in the new image generation request based on the correspondence relationship. The server system generates a two-dimensional image corresponding to a new image generation request using a three-dimensional model temporarily stored in the memory.

また、本発明の他の側面は、コンピュータに上記サーバあシステムにおける処理を実行させるプログラム、又は当該プログラムを記録したコンピュータ読み取り可能な記録媒体であっても良い。   Another aspect of the present invention may be a program that causes a computer to execute processing in the server system or a computer-readable recording medium that records the program.

本発明によれば、X線CTスキャンによって得られた物体の画像を効率よくクライアントに供給可能な技術を提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the technique which can supply the image of the object obtained by X-ray CT scan to a client efficiently can be provided.

図1は、本発明のコア画像配信システムの構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of a core image distribution system according to the present invention. 図2は、検索処理及び画像生成処理の説明図である。FIG. 2 is an explanatory diagram of search processing and image generation processing. 図3(A)は、検索APIへ引き渡されるパラメータとその意味を示す表であり、図3(B)は、検索APIの受信パラメータと返り値とを示す表である。図3(C)は、検索APIに引き渡すパラメータと返り値の具体例を示す。FIG. 3A is a table showing parameters transferred to the search API and their meanings, and FIG. 3B is a table showing reception parameters and return values of the search API. FIG. 3C shows a specific example of parameters and return values delivered to the search API. 図4(A)は、クライアントからレンダラAPIへ送信されるクエリ(画像生成要求(リクエスト))のパラメータを示し、図4(B)は、クエリに対するレスポンス(応答)としてクライアントに送信されるJSON形式のパラメータを示す。4A shows parameters of a query (image generation request (request)) transmitted from the client to the renderer API, and FIG. 4B shows a JSON format transmitted to the client as a response (response) to the query. The parameters are shown. 図5は、ラウンドロビン方式による負荷分散の説明図である。FIG. 5 is an explanatory diagram of load distribution by the round robin method. 図6は、画像生成に用いるメタデータを示す。FIG. 6 shows metadata used for image generation. 図7は、描画処理におけるレンダリングの流れを説明する図である。FIG. 7 is a diagram for explaining a rendering flow in the drawing process. 図8は、コアと視点の位置関係を説明する図である。FIG. 8 is a diagram for explaining the positional relationship between the core and the viewpoint. 図9は、クオータニオンに基づく視点の決定を用いた回転の例を示す。FIG. 9 shows an example of rotation using viewpoint determination based on a quota anion. 図10は、RGB値を示す関数の例を示す。FIG. 10 shows an example of a function indicating RGB values. 図11(A)は、色のグラデーション(ヒートマップ)に対してCT値が線形に変化する場合の説明図であり、図11(B)は、ユーザが指定した2点に応じてこれらの点間を3次スプライン保管した関数により、CT値に対する色づけがなされる例を示す。FIG. 11A is an explanatory diagram when the CT value changes linearly with respect to a color gradation (heat map), and FIG. 11B shows these points according to two points designated by the user. An example will be shown in which CT values are colored by a function that stores cubic splines in between. 図12は、α値の関数の例を示す。FIG. 12 shows an example of a function of the α value. 図13は、縦方向切断が適用された例を示す。FIG. 13 shows an example in which longitudinal cutting is applied. 図14は、コア画像の検索,コア画像の閲覧,及びコア画像に対する各種の操作を行うWebページの例を示す。FIG. 14 shows an example of a Web page for searching for a core image, browsing the core image, and performing various operations on the core image.

以下、本発明の実施の形態について、図面に基づいて説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. The configuration of the embodiment is an exemplification, and the present invention is not limited to the configuration of the embodiment.

〔システム構成〕
図1は、本発明のコア画像配信システムの構成例を示す図である。図 において、コア画像配信システムは、コアの2次元画像(以下、「コア画像」と称する)の提供を要求するクライアント端末(以下、「クライアント」と称する)10と、クライアント10から受け取る要求に応じた2次元画像の生成及び送信処理を行うサーバシステム(以下、単に「サーバ」と称する)20とを備えている。
〔System configuration〕
FIG. 1 is a diagram illustrating a configuration example of a core image distribution system according to the present invention. In the figure, the core image distribution system responds to a request received from a client terminal 10 (hereinafter referred to as “client”) 10 that requests provision of a core two-dimensional image (hereinafter referred to as “core image”). And a server system (hereinafter simply referred to as a “server”) 20 for generating and transmitting a two-dimensional image.

クライアント10は、例えば、パーソナルコンピュータ(PC),タブレット端末,スマートフォンである。クライアント10は、コア画像を閲覧するためのユーザインタフェースを提供するクライアントアプリケーションを備える。   The client 10 is, for example, a personal computer (PC), a tablet terminal, or a smartphone. The client 10 includes a client application that provides a user interface for browsing the core image.

クライアントアプリケーションは、例えば、通常のPCが備えるWebアプリケーションの一つとして提供される。或いは、スマートフォンやタブレット端末が備えるプラットフォーム(例えば、Android)上で動作するアプリケーションとして提供される。クライ
アントアプリケーションは、サーバ20が備えるレンダラAPI(アプリケーションプログラミングインタフェース(Application Programming Interface))212及び検索A
PI211を利用して、コアの情報や画像を取得することができる。
For example, the client application is provided as one of Web applications provided in a normal PC. Alternatively, it is provided as an application that operates on a platform (for example, Android) included in a smartphone or a tablet terminal. The client application includes a renderer API (Application Programming Interface) 212 provided in the server 20 and a search A
By using the PI 211, core information and images can be acquired.

サーバ20は、クライアント10とネットワーク(例えば、インターネット)を介して接続される。サーバ20は、例えば、クラウド上に置かれた、クライアント10から要求に応じたコア画像データを生成してクライアント10へ送信する機能を持つ、単一のコンピュータ(情報処理装置)又は複数のコンピュータの集合体である。   The server 20 is connected to the client 10 via a network (for example, the Internet). The server 20 is, for example, a single computer (information processing apparatus) or a plurality of computers having a function of generating core image data in response to a request from the client 10 and transmitting it to the client 10 placed on the cloud. It is an aggregate.

〔サーバ〕
サーバ20は、図1に示すように、大略して、クライアント10とのインタフェース機
能を司るゲートウェイ21と、クライアント10から要求されたコア画像の生成機能を司るレンダリングエンジン22と、コア検索用データベース(検索用DB)23と、DICOMファイルサーバ(DICOMサーバ)24とを備えている。
〔server〕
As shown in FIG. 1, the server 20 roughly includes a gateway 21 that controls an interface function with the client 10, a rendering engine 22 that controls a core image generation function requested by the client 10, and a core search database ( (Search DB) 23 and a DICOM file server (DICOM server) 24.

クライアント10が備えるクライアントアプリケーションと、サーバ20との通信プロトコルは、以下のように形成される。例えば、クライアントアプリケーションからサーバ20への通信方法は、HTTP(HyperText Transfer Protocol)におけるHTTP GETメソ
ッドを用いる。HTTP GETメソッドでは、“http://URL?パラメータ=値&パラメータ値”
のような形式で、単数又は複数のパラメータをサーバに送ることができる。このようなHTTP GETメソッドを用いて、サーバ20に対し、検索やコア画像生成のクエリ(リクエスト)を送ることができる。
A communication protocol between the client application included in the client 10 and the server 20 is formed as follows. For example, the communication method from the client application to the server 20 uses an HTTP GET method in HTTP (HyperText Transfer Protocol). In the HTTP GET method, "http: // URL? Parameter = value & parameter value"
One or more parameters can be sent to the server in the form Using such an HTTP GET method, it is possible to send a query (request) for search and core image generation to the server 20.

サーバ20からクライアントアプリケーションへの通信は、例えば、軽量なデータ記述言語であるJSON(JavaScript Object Notation)や、XML(Extensible Markup Language)を用いて実現することができる。すなわち、クライアントアプリケーションは、リクエストに対する結果(応答)は、JSONやXML形式で受け取る。   Communication from the server 20 to the client application can be realized using, for example, JSON (JavaScript Object Notation), which is a lightweight data description language, or XML (Extensible Markup Language). That is, the client application receives the result (response) for the request in the JSON or XML format.

ゲートウェイ21は、クライアント10(クライアント10が備えるアプリケーション)からの要求を受け付けるサーバである。ゲートウェイ20は、クライアント10によって利用されるAPI210として、クライアント10が閲覧を希望するコアを検索するためのリクエスト(検索要求)を受け付ける検索API211と、コア画像を生成するためのリクエスト(画像生成要求)を受け付けるレンダラAPI212とを備えている。   The gateway 21 is a server that receives a request from the client 10 (an application included in the client 10). The gateway 20 includes, as an API 210 used by the client 10, a search API 211 that receives a request (search request) for searching for a core that the client 10 desires to browse, and a request (image generation request) for generating a core image. And a renderer API 212 that accepts.

ゲートウェイ21は、さらに、検索API211から得られた情報に基づいて検索用DB23に対する検索処理を行う検索モジュール213と、レンダラAPI212からの情報を用いたコア画像生成を制御するレンダラ制御モジュール214とを備える。レンダラ制御モジュール214は、クライアント10のリクエストに対応するコア情報と、コア画像に対する操作の情報とを受け取り、レンダリングエンジン22に含まれたレンダラ221にコア画像生成処理を依頼(「要求」、「リクエスト」とも呼ぶ)する。但し、レンダラ221の起動制御は、レンダラ制御モジュール215が備えるロードバランサ215によって行われる。ロードバランサ215は、レンダリングエンジン22を形成する複数のノード220の中から、負荷の少ないノード220を選択し、選択されたノードで形成されるレンダラ221に対して、コア画像生成処理を依頼する。   The gateway 21 further includes a search module 213 that performs a search process on the search DB 23 based on information obtained from the search API 211, and a renderer control module 214 that controls core image generation using information from the renderer API 212. . The renderer control module 214 receives core information corresponding to the request from the client 10 and operation information on the core image, and requests a renderer 221 included in the rendering engine 22 for core image generation processing (“request”, “request ”). However, the activation control of the renderer 221 is performed by the load balancer 215 included in the renderer control module 215. The load balancer 215 selects a node 220 having a low load from the plurality of nodes 220 forming the rendering engine 22, and requests a renderer 221 formed by the selected node to perform a core image generation process.

レンダリングエンジン22は、複数のノード220から形成されており、各ノード220上で、画像生成を行うレンダラ221が稼働する。各レンダラ221は、DICOMファイルサーバ24にアクセスすることができ、レンダラ制御モジュール214からの依頼に応じたコアデータ(DICOMファイル)を得ることができる。各ノード220は、ローカルメモリ222を有している。ローカルメモリ222は、コアデータを用いたコア画像生成処理の作業領域、及び生成されたコア画像データの一時的な保管領域として使用される。ローカルメモリ222は、「メモリ」の一例である。   The rendering engine 22 is formed of a plurality of nodes 220, and a renderer 221 that performs image generation operates on each node 220. Each renderer 221 can access the DICOM file server 24 and obtain core data (DICOM file) in response to a request from the renderer control module 214. Each node 220 has a local memory 222. The local memory 222 is used as a work area for core image generation processing using core data and a temporary storage area for the generated core image data. The local memory 222 is an example of “memory”.

上記したゲートウェイ21が備える機能は、CPU,主記憶装置(メインメモリ),補助記憶装置,及び通信インタフェース回路(通信I/F)(いずれも図示せず)を備える情報処理装置(コンピュータ)において、例えば、補助記憶装置に記憶(インストール)されたミドルウェア(プログラム)をCPUが主記憶装置にロードして実行することによって実現される。情報処理装置として、例えば、PCや専用又は汎用のサーバマシンを用いることができる。   The functions of the gateway 21 described above are as follows: an information processing device (computer) including a CPU, a main storage device (main memory), an auxiliary storage device, and a communication interface circuit (communication I / F) (all not shown); For example, it is realized by loading the middleware (program) stored (installed) in the auxiliary storage device into the main storage device and executing it. As the information processing apparatus, for example, a PC or a dedicated or general-purpose server machine can be used.

また、レンダリングエンジン22は、複数のCPUと、複数の主記憶装置と、1以上の
補助記憶装置とを含む情報処理装置を用いて実現することができる。レンダリングエンジン220が備える複数のノード221のそれぞれは、レンダリングエンジン22を実現する情報処理装置に含まれた単数又は複数のCPUと、当該単数又は複数のCPUが使用する主記憶装置によって実現される。ノード220を実現する単数又は複数のCPUは、補助記憶装置に予め記憶(インストール)されたプログラムの実行によって、レンダラ221の起動・起動停止(削除)を行う。また、ノード220が有するローカルメモリ222は、ノード220を実現する単数又は複数のCPUが使用する主記憶装置、又は補助記憶装置における所定の記憶領域である。
The rendering engine 22 can be realized by using an information processing apparatus including a plurality of CPUs, a plurality of main storage devices, and one or more auxiliary storage devices. Each of the plurality of nodes 221 included in the rendering engine 220 is realized by one or a plurality of CPUs included in an information processing apparatus that implements the rendering engine 22 and a main storage device used by the one or more CPUs. The CPU or CPUs that implement the node 220 start / stop / delete (delete) the renderer 221 by executing a program stored (installed) in advance in the auxiliary storage device. The local memory 222 included in the node 220 is a predetermined storage area in a main storage device or an auxiliary storage device used by one or a plurality of CPUs that implement the node 220.

また、レンダリングエンジン22が備える複数のノード220は、上記したCPUを用いた構成に代えて、単数又は複数のGPU(Graphical Processing Unit)と、単数又は
複数のGPUの動作を制御するCPUとから形成されても良い。このとき、各GPUが備える複数のプロセッサに対し、複数のノードが割り当てられる(GPUクラスタが形成される)ようにしても良い。
In addition, the plurality of nodes 220 included in the rendering engine 22 are formed from a single or plural GPUs (Graphical Processing Units) and a CPU that controls the operation of the single or plural GPUs, instead of the above-described configuration using the CPU. May be. At this time, a plurality of nodes may be allocated to a plurality of processors included in each GPU (a GPU cluster is formed).

<検索処理>
以下、コアの検索処理の詳細について説明する。コアデータのファイル名は、「航海番号」,「掘削サイト情報」,「ホール番号」,「コア番号」,「ビットタイプ」及び「セクション番号」の組み合わせによって作成されることが決められている。航海番号は、航海プロジェクトの番号であり、掘削サイト及びホール番号は、コアの掘削位置の特定情報である。コア番号は、掘削されたコア試料毎に付けられる連続番号である。ビットタイプは、コア試料の掘削を行ったドリルの識別番号である。セクション番号は、1つのコア試料に対して1.5m間隔で割り振られた連続番号(コアセクションの識別情報)である。
<Search process>
Details of the core search process will be described below. The file name of the core data is determined to be created by a combination of “voyage number”, “excavation site information”, “hole number”, “core number”, “bit type”, and “section number”. The voyage number is the number of the voyage project, and the excavation site and hole number are identification information of the core excavation position. The core number is a serial number assigned to each core sample excavated. The bit type is an identification number of the drill that drilled the core sample. The section number is a serial number (core section identification information) assigned to one core sample at intervals of 1.5 m.

検索処理では、航海番号,掘削サイト番号,ホール番号,コア番号,ビットタイプ及びセクション番号からなる6つのパラメータが順番に選択されることで、コアデータの候補を徐々に絞り込み、検索用DB23に登録された膨大な(約4000)のコアデータの中から、目的のコアデータを特定することができる。   In the search process, six parameters consisting of cruise number, excavation site number, hole number, core number, bit type and section number are selected in order, and the candidates for core data are gradually narrowed down and registered in the search DB 23. The target core data can be identified from the enormous (about 4000) core data.

図2は、検索処理及び画像生成処理の説明図である。検索API221は、クライアント10(クライアントアプリケーション)から、HTTP GETメソッドで、コアの検索要求(リクエスト)を受信する(図2<1>)。検索API221は、検索要求に含まれるパラメータを検索モジュール213に引き渡す(図2<2>)。   FIG. 2 is an explanatory diagram of search processing and image generation processing. The search API 221 receives a core search request (request) from the client 10 (client application) using the HTTP GET method (<1> in FIG. 2). The search API 221 delivers parameters included in the search request to the search module 213 (<2> in FIG. 2).

検索モジュール213は、受け取ったパラメータに基づくクエリ(SQL文)を生成し、検索用DB23に問い合わせを行う(図2<3>)。検索モジュール213は、検索用DB23から検索結果を受け取って検索API211に渡す(図2<4>)。検索API211は、検索結果をJSON形式に加工した後に、返り値としてクライアント10(クライアントアプリケーション)に送信する(図2<5>)。なお、検索用DB23は、ゲートウェイ21を実現する情報処理装置の補助記憶装置に記憶されたDBであっても良く、当該情報処理装置から独立した情報処理装置(DBサーバ)であっても良い。   The search module 213 generates a query (SQL sentence) based on the received parameters and makes an inquiry to the search DB 23 (<3> in FIG. 2). The search module 213 receives the search result from the search DB 23 and passes it to the search API 211 (<4> in FIG. 2). The search API 211 processes the search result into the JSON format, and transmits it as a return value to the client 10 (client application) (<5> in FIG. 2). The search DB 23 may be a DB stored in the auxiliary storage device of the information processing apparatus that implements the gateway 21, or may be an information processing apparatus (DB server) independent of the information processing apparatus.

返り値は、クライアント10から検索API211へ送信されたパラメータによって変化する。パラメータとして航海番号が送信(選択)された場合には、選択された航海番号を有する掘削サイト番号の集合が返り値として返信される。掘削サイト番号の集合から選択された1つの掘削サイト番号がパラメータとしてクライアント10から検索API211へ引き渡された場合には、航海番号及び掘削サイト番号を持つホール番号の集合が返り値となる。このようにして、ホール番号,コア番号,ビットタイプ,及びセクション番号が、順次パラメータとして引き渡されることで、最終的に1つのコア試料(コアセクション)を特定することができる。6つのパラメータで特定されたコアセクションには、コア
セクションを一意に識別する固有のID(「コアID」又は「コア番号」と称する)が割り振られており、検索API211は、コアIDを返り値としてクライアント10に送信する。コアIDは、「物体の識別情報」の一例である。
The return value varies depending on the parameter transmitted from the client 10 to the search API 211. When a voyage number is transmitted (selected) as a parameter, a set of excavation site numbers having the selected voyage number is returned as a return value. When one excavation site number selected from the set of excavation site numbers is transferred from the client 10 to the search API 211 as a parameter, a set of hole numbers having the voyage number and the excavation site number becomes a return value. In this way, the hole number, core number, bit type, and section number are sequentially passed as parameters, so that one core sample (core section) can be finally specified. A unique ID (referred to as “core ID” or “core number”) for uniquely identifying the core section is allocated to the core section specified by the six parameters, and the search API 211 returns the core ID as a return value. To the client 10. The core ID is an example of “object identification information”.

クライアント10でコアIDが受信された場合には、コアIDを含むコア画像生成要求(リクエスト)がHTTP GETメソッドを用いてレンダラAPI212に送信される(図2<6>)。これによって、サーバ20での画像生成処理が開始される。具体的には、リクエストは、レンダラ制御モジュール214を介してレンダリングエンジン22に含まれるレンダラ221に供給される(図2<7>)。レンダラ221は、リクエストに応じたコアの2次元画像を生成する。2次元画像の描画結果は、レンダラ制御モジュール214及びレンダラAPI212を介してクライアント10に送信される(図2<8>,<9>)。このようにして、コアIDに対応するコアの2次元画像がレンダリングエンジン22で生成され、レンダラAPI212を通じてクライアント10に送信される。このようにして、クライアント10のユーザは、所望のコアセクションの画像を閲覧することができる。   When the client 10 receives the core ID, a core image generation request (request) including the core ID is transmitted to the renderer API 212 using the HTTP GET method (<6> in FIG. 2). Thereby, the image generation process in the server 20 is started. Specifically, the request is supplied to the renderer 221 included in the rendering engine 22 via the renderer control module 214 (<7> in FIG. 2). The renderer 221 generates a two-dimensional image of the core according to the request. The drawing result of the two-dimensional image is transmitted to the client 10 via the renderer control module 214 and the renderer API 212 (<8> and <9> in FIG. 2). In this way, a two-dimensional image of the core corresponding to the core ID is generated by the rendering engine 22 and transmitted to the client 10 through the renderer API 212. In this way, the user of the client 10 can view an image of a desired core section.

図3(A)は、検索API211へ引き渡されるパラメータとその意味を示す表であり、図3(B)は、検索API211の受信パラメータと返り値とを示す表である。図3(C)は、検索API211に引き渡すパラメータと返り値の具体例を示す。図3(A)〜(C)によれば、最初に、パラメータを指定しないクエリが送信されると、検索可能な航海番号の集合(314,315,316,319)が返り値としてクライアント10に渡される。   FIG. 3A is a table showing parameters delivered to the search API 211 and their meanings, and FIG. 3B is a table showing reception parameters and return values of the search API 211. FIG. 3C shows a specific example of parameters and return values delivered to the search API 211. According to FIGS. 3A to 3C, when a query that does not specify a parameter is first transmitted, a set of searchable navigation numbers (314, 315, 316, 319) is returned to the client 10 as a return value. Passed.

例えば、航海番号“315”が選択されると、掘削サイト番号の集合(C0001,C0002)が返り値としてクライアント10に渡される。例えば、掘削サイト番号“C0001”が選択されると、ホール番号の集合(E,F,H)が返り値としてクライアント10に渡される。その後、ホール番号“E”,コア番号“3”,ビットタイプ“H”及びセクション番号“4”が選択されると、これまでに選択した6つのパラメータで一意に特定されるコアセクションのコアID(Coreid)が、返り値としてクライアント10に渡される。   For example, when the voyage number “315” is selected, a set of excavation site numbers (C0001, C0002) is passed to the client 10 as a return value. For example, when the excavation site number “C0001” is selected, a set of hole numbers (E, F, H) is passed to the client 10 as a return value. After that, when the hole number “E”, the core number “3”, the bit type “H”, and the section number “4” are selected, the core ID of the core section uniquely specified by the six parameters selected so far (Coreid) is passed to the client 10 as a return value.

<レンダラAPI及びレンダラ制御モジュール>
次に、レンダラAPI212及びレンダラ制御モジュール214の詳細について説明する。図4(A)は、クライアント10からレンダラAPI212へ送信されるクエリ(画像生成要求(リクエスト))のパラメータを示し、図4(B)は、クエリに対するレスポンス(応答)としてクライアント10に送信されるJSON形式のパラメータを示す。クライアント10におけるユーザの操作に応じて、図4(A)に示すパラメータの値を含むクエリが作成される。
<Renderer API and renderer control module>
Next, details of the renderer API 212 and the renderer control module 214 will be described. 4A shows parameters of a query (image generation request (request)) transmitted from the client 10 to the renderer API 212, and FIG. 4B is transmitted to the client 10 as a response (response) to the query. Indicates parameters in JSON format. A query including the parameter values shown in FIG. 4A is created in response to a user operation on the client 10.

図4(A)に示すように、クエリは、検索API211でクライアント10に提供されたコアID(コア番号)を含む。さらに、クエリでは、閲覧を所望するコア画像のビュー情報として、以下のパラメータを指定することができる。但し、常に以下の情報の全てがクエリに含まれる訳ではなく、ユーザの操作に応じたパラメータがクエリに含まれる。
・拡大率
・縦切断の角度
・解像度
・回転方法
・xyz方向の回転角度
・コアの上下動
・色の付け方
・CT値と色の関係を示す組の配列
・CT値と当過度の関係を示す組の配列
・現在のカメラ座標
・現在のカメラの上方向ベクトル
・マウスの移動ベクトル
・回転角度
As shown in FIG. 4A, the query includes the core ID (core number) provided to the client 10 by the search API 211. Further, in the query, the following parameters can be specified as the view information of the core image desired to be viewed. However, not all of the following information is always included in the query, and parameters according to user operations are included in the query.
・ Magnification ratio ・ Vertical cutting angle ・ Resolution ・ Rotation method ・ Rotation angle in xyz direction ・ Core vertical movement ・ Coloring method ・ Array of CT value and color relationship ・ Shows the excessive relationship between CT value Array of pairs, current camera coordinates, current camera up vector, mouse movement vector, rotation angle

一方、クエリに対するレスポンスとして、図4(B)に示す以下のような情報がJSON形式でクライアント10に返信される。
・生成されたコア画像のURL(Uniform Resource Locator )
・CT値のヒストグラムの配列
・1ピクセル当たりの長さ
・現在のカメラ座標
・現在のカメラの上方向ベクトル
On the other hand, as a response to the query, the following information shown in FIG. 4B is returned to the client 10 in the JSON format.
-URL (Uniform Resource Locator) of the generated core image
-CT value histogram array-Length per pixel-Current camera coordinates-Current camera up vector

レンダラ制御モジュール214は、上記したクエリ(リクエスト)をレンダラAPI212から受け取って、クエリに応じたコア画像を生成するノード220を特定し、特定されたノード220に対して専用のコマンドを与えることで、特定されたノード220上で画像生成処理を行うレンダラ221が起動する。レンダラ221は、ノード220に常駐し、クエリ(リクエスト)に応じたコアIDで特定されるコア試料(コアセクション)の画像を生成する。   The renderer control module 214 receives the above-described query (request) from the renderer API 212, identifies the node 220 that generates the core image corresponding to the query, and gives a dedicated command to the identified node 220. A renderer 221 that performs image generation processing on the identified node 220 is activated. The renderer 221 resides in the node 220 and generates an image of the core sample (core section) specified by the core ID corresponding to the query (request).

1種類のコア試料に対して1つのレンダラ220が起動する。例えば、3種類のコア試料の画像生成が要求された場合には、3つのレンダラ220が起動する。このため、複数の種類のコア試料の閲覧を所望するクエリが発生した場合には、複数のレンダラ221がノード220上で起動する。   One renderer 220 is activated for one kind of core sample. For example, when image generation of three types of core samples is requested, the three renderers 220 are activated. For this reason, when a query for viewing a plurality of types of core samples is generated, a plurality of renderers 221 are activated on the node 220.

レンダラ220は、DICOMファイルサーバ24からボリュームデータ(2次元スライス画像データ)を読み込んで、3次元モデルを生成してから2次元画像(クライアントに提供されるコア画像)を生成する。このような画像処理によって、ノードには高い負荷がかかるため、複数のノードに対して負荷を分散し、1つのノードに負荷が集中することを回避する。このため、レンダラ制御モジュール214は、ロードバランサ215を有し、画像処理の負荷分散及び負荷軽減が次のように行われる。   The renderer 220 reads volume data (two-dimensional slice image data) from the DICOM file server 24, generates a three-dimensional model, and then generates a two-dimensional image (core image provided to the client). By such image processing, a high load is applied to the node. Therefore, the load is distributed to a plurality of nodes, and the concentration of the load on one node is avoided. For this reason, the renderer control module 214 includes a load balancer 215, and load distribution and load reduction of image processing are performed as follows.

基本的には、ロードバランサ215は、いわゆるラウンドロビン方式によって複数のノード220に対し、順番にレンダラ221を起動させる。図5は、ラウンドロビン方式による負荷分散の説明図である。図5に示すように、例えば、レンダリングエンジン22が16個のノード220を備えている場合には、ロードバランサ215は、1番目のノード(ノード1)から16番目のノード(ノード16)に対し、順番にレンダラ221の起動命令を与える。次のリクエスト(クエリ)を受け取った場合には、ロードバランサ215は、再び1番目のノード(ノード1)に対してレンダラ221の起動命令を与える。このように、ノード1からノード16までのレンダラ起動が繰り返し行われる。   Basically, the load balancer 215 activates the renderers 221 in order for the plurality of nodes 220 by the so-called round robin method. FIG. 5 is an explanatory diagram of load distribution by the round robin method. As shown in FIG. 5, for example, when the rendering engine 22 includes 16 nodes 220, the load balancer 215 performs the operations from the first node (node 1) to the 16th node (node 16). In order, the renderer 221 is activated. When the next request (query) is received, the load balancer 215 gives the start command of the renderer 221 to the first node (node 1) again. In this way, the renderer activation from the node 1 to the node 16 is repeatedly performed.

但し、レンダラ221の削除処理(後述)によって、例えば、図5に示したノード3のレンダラ221が削除された場合には、ノード3におけるレンダラ221の起動数が他のノード221よりも一つ少なくなる。このため、負荷がノード間で均等に分散されない。このため、ロードバランサ215は、各ノード220におけるレンダラ221の起動数を監視して、負荷が少ない(レンダラ221の起動数が)少ないノード220を発見した場合には、当該ノード220に対して優先的にレンダラ起動命令を与える。   However, for example, when the renderer 221 of the node 3 shown in FIG. 5 is deleted by the renderer 221 deletion process (described later), the number of activations of the renderer 221 in the node 3 is one less than that of the other nodes 221. Become. For this reason, the load is not evenly distributed among the nodes. For this reason, the load balancer 215 monitors the number of activations of the renderer 221 in each node 220, and if a node 220 with a low load (the number of activations of the renderer 221) is found, the load balancer 215 has priority over the node 220 Renderer start command is given.

ところで、レンダラ制御モジュール214(ロードバランサ215)によって起動した
レンダラ221は、画像生成処理を行っていないときには、クエリ(リクエスト)の待ち受け状態で常駐する。この待ち受け状態においても、レンダラ221は、ノードのメモリ(ローカルメモリ222)の一部を占有し、且つCPUリソースもわずかながら占有する。このため、起動したレンダラの数が或る数を超えると、ノードが高負荷状態となって、画像生成処理の遅延や失敗を招来する虞がある。
Incidentally, the renderer 221 activated by the renderer control module 214 (load balancer 215) resides in a query (request) standby state when image generation processing is not being performed. Even in this standby state, the renderer 221 occupies a part of the memory (local memory 222) of the node and also occupies a small amount of CPU resources. For this reason, if the number of activated renderers exceeds a certain number, the node may be in a high load state, which may cause delay or failure of image generation processing.

このため、レンダラ制御モジュール214は、起動中の各レンダラ221の状態を監視し、不要なレンダラの削除(終了処理)を行う。例えば、一定時間リクエストを受け付けていないレンダラ221が存在する場合には、当該レンダラの削除命令をレンダラ制御モジュール214はノード220に与える。   Therefore, the renderer control module 214 monitors the state of each activated renderer 221 and deletes unnecessary renderers (end processing). For example, when there is a renderer 221 that has not received a request for a certain period of time, the renderer control module 214 gives a delete instruction for the renderer to the node 220.

レンダラ制御モジュール214は、例えば、定期的又は周期的に、レンダラ監視用のプログラム(スクリプト)を起動して、以下の式(1)に基づく判定処理を、レンダラ毎に行う。
(最後にアクセスされた日時)−(スクリプト実行の日時)>T ・・・式(1)
For example, the renderer control module 214 starts a renderer monitoring program (script) periodically or periodically, and performs determination processing based on the following equation (1) for each renderer.
(Last accessed date / time)-(Script execution date / time)> T (1)

或るレンダラ221について、最後にアクセスされた日時(すなわち、リクエストを受け付けた日時)とスクリプト実行の日時との差分(時間の長さ)が閾値Tを上回る場合には、レンダラ制御モジュール214は、当該レンダラ221の削除命令を、当該レンダラ221に対応するノード220に与える。このようにして、無駄なレンダラ221を削除する。閾値Tは、例えば30分であるが、数分〜数10分、或いは1〜数時間のような所望の時間を設定することができる。   When a difference (length of time) between the date and time when the last access was made (that is, the date and time when the request was received) and the date and time of script execution exceeds the threshold T, the renderer control module 214 An instruction to delete the renderer 221 is given to the node 220 corresponding to the renderer 221. In this way, the useless renderer 221 is deleted. The threshold T is, for example, 30 minutes, but a desired time such as several minutes to several tens of minutes, or one to several hours can be set.

また、レンダラ制御モジュール214は、さらに、レンダラ221の総数を監視し、総数が予め定められたレンダラの起動上限数Nを上回る場合には、少なくとも1つのレンダラ221の削除処理を行う。判定式は以下の式(2)で与えられる。
(起動しているレンダラの総数)>N ・・・式(2)
In addition, the renderer control module 214 further monitors the total number of renderers 221, and when the total number exceeds the predetermined upper limit number N of renderers, the renderer 221 deletes at least one renderer 221. The judgment formula is given by the following formula (2).
(Total number of activated renderers)> N (2)

上記式(2)が満たされる(総数が閾値Nを上回る)場合には、レンダラ制御モジュール214は、各レンダラ221の最終アクセス日時(予め記憶される)を参照し、最終アクセス日時が最も古いレンダラ221に対する削除命令を対応するノード220に与える。   When the above equation (2) is satisfied (the total number exceeds the threshold value N), the renderer control module 214 refers to the last access date and time (previously stored) of each renderer 221 and renders the renderer with the oldest last access date and time. A delete instruction for 221 is given to the corresponding node 220.

レンダラ221は、単に起動しただけでは、コア画像の生成処理を行わず、リクエストの待ち受け状態となる。レンダラ221は、リクエストを受信したときに、リクエストに応じた画像生成処理(画像描画処理)を行う。レンダラ制御モジュール214からレンダラ221に対するリクエストの送信は、ソケット通信によって行われる。また、レンダラ221に対する削除命令(終了メッセージ)の送信も、ソケット通信によって行われる。   The renderer 221 simply enters the request waiting state without performing the core image generation process. When the renderer 221 receives a request, the renderer 221 performs image generation processing (image drawing processing) according to the request. Transmission of a request from the renderer control module 214 to the renderer 221 is performed by socket communication. In addition, transmission of a delete command (end message) to the renderer 221 is also performed by socket communication.

ソケット通信では、IP(Internet Protocol)アドレスとポート番号との組によって
通信相手を選択する。レンダリングエンジン22に備えられた複数のノード220は、それぞれ異なるIPアドレスを有している。このため、各ノード220におけるノードに異なるポート番号を割り当てることで、正確なソケット通信によるリクエスト送信や終了メッセージ送信を行うことができる。なお、ソケット通信は、通信の正常性を確認するコネクション型通信で行われる。例えばTCPが適用される。
In socket communication, a communication partner is selected by a combination of an IP (Internet Protocol) address and a port number. The plurality of nodes 220 included in the rendering engine 22 have different IP addresses. For this reason, by assigning different port numbers to the nodes in each node 220, it is possible to perform request transmission and end message transmission by accurate socket communication. Note that socket communication is performed by connection-type communication for confirming the normality of communication. For example, TCP is applied.

レンダラ221の起動状況の記録は「起動ログ」214Aによって行われる。起動ログ214Aは、起動したレンダラ221の各種情報を記憶するファイルである。起動ログ214Aは、レンダラ制御モジュール214にて保持及び管理される。レンダラ起動時には、レンダラ制御モジュール214は、起動ログ214Aに、起動対象のレンダラ221に
関する情報を追記し、レンダラ削除時には、削除対象のレンダラ221の情報を削除する。レンダラ221に関する情報として、コアID(コア番号),ノード番号,ポート番号,アクセス日時(タイムスタンプ)の項目が記録される。起動ログ214Aは、ゲートウェイ21として機能する情報処理装置の主記憶装置又は補助記憶装置に記憶される。
The activation status of the renderer 221 is recorded by the “activation log” 214A. The activation log 214A is a file that stores various types of information about the activated renderer 221. The activation log 214A is held and managed by the renderer control module 214. When the renderer is activated, the renderer control module 214 adds information related to the renderer 221 to be activated to the activation log 214A. When the renderer is deleted, the renderer control module 214 deletes information on the renderer 221 that is to be deleted. As information about the renderer 221, items of core ID (core number), node number, port number, and access date (time stamp) are recorded. The activation log 214A is stored in the main storage device or auxiliary storage device of the information processing apparatus that functions as the gateway 21.

コアIDとして、リクエストに対応するコアIDが記述される。コアIDとして、上記したコアデータを特定する6つパラメータがファイルパスとして記述されても良い。また、ノード番号として、レンダラ221が起動中のノード番号が記述される。また、ポート番号としてレンダラ221の起動時に指定されたポート番号が記述される。そして、アクセス日時として、レンダラ221にリクエストが送信された最新の日時が記述される。   The core ID corresponding to the request is described as the core ID. As the core ID, the six parameters specifying the above-described core data may be described as a file path. Further, the node number where the renderer 221 is activated is described as the node number. Further, the port number designated when the renderer 221 is started is described as the port number. The latest date and time when the request is transmitted to the renderer 221 is described as the access date and time.

レンダラ制御モジュール214は、レンダラ221を起動する前に、起動ログ214Aに記述されたコアIDを参照することで、コアIDに対応するレンダラ221が既に起動しているか否かを確認する。起動ログ214AにコアIDがない場合には、コアIDに対応するレンダラ221が起動していないと判定され、レンダラ制御モジュール214は、起動ログ214Aに記述されたノード番号の参照結果に基づいて、或るノード220に対してレンダラ221の起動命令(専用の起動コマンド)を与える。このとき、ロードバランサ215が、上記したラウンドロビン方式、及び各ノード220におけるレンダラの起動数を考慮して、レンダラ221を起動するノード220を決定する。さらに、レンダラ制御モジュール214は、起動対象のレンダラ221に対するポート番号の割り当てを行い、割り当てたポート番号を起動ログ214Aに記述する。   Before starting the renderer 221, the renderer control module 214 refers to the core ID described in the start log 214A to check whether the renderer 221 corresponding to the core ID has already been started. If the activation log 214A does not have a core ID, it is determined that the renderer 221 corresponding to the core ID has not been activated, and the renderer control module 214 determines based on the node number reference result described in the activation log 214A. A start command (dedicated start command) for the renderer 221 is given to a certain node 220. At this time, the load balancer 215 determines the node 220 that activates the renderer 221 in consideration of the round robin method described above and the number of renderers activated in each node 220. Further, the renderer control module 214 assigns a port number to the renderer 221 to be activated, and describes the assigned port number in the activation log 214A.

レンダラ221が起動すると、レンダラ制御モジュール214は、起動ログ214Aに記述されたノード番号及びポート番号で特定されるレンダラ221に対して、コア画像生成のリクエストをソケット通信で送信する。或るレンダラ221にリクエストが送信される毎に、起動ログ214Aにおける、該当レンダラの最終アクセス日時が更新される。   When the renderer 221 is activated, the renderer control module 214 transmits a core image generation request to the renderer 221 specified by the node number and port number described in the activation log 214A by socket communication. Each time a request is transmitted to a certain renderer 221, the last access date and time of the renderer in the activation log 214A is updated.

起動ログ214Aには、各レンダラの最終アクセス日時が記録される。このため、レンダラ制御モジュール214は、定期的又は周期的なレンダラ監視において、起動ログ214Aを参照し、差分(式(1)参照)が閾値Tを超えるレンダラ221に対する削除命令(終了メッセージ)を発行することができる。また、起動ログ214Aにおけるノード番号及びポート番号の記述から、起動中のレンダラ221の総数をレンダラ制御モジュール214は把握することができる。総数が閾値Nを超える場合に、レンダラ制御モジュール214はアクセス日時が最古のレンダラ221に対する削除処理を行う。   In the activation log 214A, the last access date and time of each renderer is recorded. For this reason, the renderer control module 214 refers to the activation log 214A in periodic or periodic renderer monitoring, and issues a delete command (end message) for the renderer 221 whose difference (see equation (1)) exceeds the threshold T. can do. In addition, the renderer control module 214 can grasp the total number of renderers 221 that are activated from the description of the node number and port number in the activation log 214A. When the total number exceeds the threshold value N, the renderer control module 214 performs a deletion process on the renderer 221 having the oldest access date and time.

<レンダリングエンジン>
次に、レンダリングエンジン22(レンダラ221)の詳細について説明する。レンダラ221は、リクエスト中のコアIDに対応するDICOMファイルをDICOMファイルサーバ24から得る。
<Rendering engine>
Next, details of the rendering engine 22 (renderer 221) will be described. The renderer 221 obtains the DICOM file corresponding to the core ID in the request from the DICOM file server 24.

DICOMファイルサーバ24は、DICOMフォーマットで保存された、コアセクション毎の画像データ(コアデータ)を蓄積したDBサーバである。X線CTスキャンによって得られた1枚の断面画像は「スライス(画像)」と呼ばれ、1つのコアセクションについて得られた複数のスライス画像の集合が、1つのコアIDに対応するコアデータとして、DICOMファイルサーバ24から2次元画像生成のために取得される。   The DICOM file server 24 is a DB server that stores image data (core data) for each core section stored in the DICOM format. One cross-sectional image obtained by the X-ray CT scan is called “slice (image)”, and a set of a plurality of slice images obtained for one core section is used as core data corresponding to one core ID. , Obtained from the DICOM file server 24 for 2D image generation.

DICOMフォーマットの画像ファイルは、メタデータと画像情報とから構成される。メタデータには、撮影対象に対する情報が含まれる。画像情報には、撮影された物体を画像として表すために必要な情報が含まれる。また、DICOMフォーマットの画像ファイルは、画像のピクセル値がCT値に対応している。CT値は、X線の吸収度合いを表現し
た値である。CT値は、密度と元素番号とに相関した値を採る。具体的には、密度と元素番号とが高い程CT値は高くなり、密度と元素記号とが低い程CT値は低くなる、画像のピクセル値がCT値に対応している性質を利用して、CT値の異なるピクセルに異なる色を割り当てることで、或るCT値に対応する物体を強調表示することができる。
A DICOM format image file is composed of metadata and image information. The metadata includes information about the shooting target. The image information includes information necessary for representing the photographed object as an image. Also, in the DICOM format image file, the pixel value of the image corresponds to the CT value. The CT value is a value expressing the degree of X-ray absorption. The CT value takes a value correlated with the density and the element number. Specifically, the higher the density and the element number, the higher the CT value, and the lower the density and the element symbol, the lower the CT value. Using the property that the pixel value of the image corresponds to the CT value. By assigning different colors to pixels having different CT values, an object corresponding to a certain CT value can be highlighted.

レンダリングエンジン22は、以下の手順によって、クライアント10のユーザが閲覧を所望する2次元画像を生成する。
1)初期化処理
2)描画パラメータの受信
3)描画処理
4)描画結果の送信
The rendering engine 22 generates a two-dimensional image that the user of the client 10 desires to view according to the following procedure.
1) Initialization processing 2) Reception of drawing parameters 3) Drawing processing 4) Transmission of drawing results

<<1.初期化処理>>
レンダラ221は,起動時に引数として与えられたパス(コアIDのファイルパス)で特定される複数のDICOMファイル(コアIDに応じたスライス画像)を、DICOMファイルサーバ24から取得する。DICOMファイルは、上記したように、メタデータと画像情報(画像データ)とを含んでいる。
<< 1. Initialization processing >>
The renderer 221 acquires, from the DICOM file server 24, a plurality of DICOM files (slice images corresponding to the core ID) specified by the path (file path of the core ID) given as an argument at the time of activation. As described above, the DICOM file includes metadata and image information (image data).

図6は、画像生成に用いるメタデータを示す。図6の表に示す“INUM” は,DICOMファイルが何番目のスライス画像に当たるかを意味している。レンダラ221は、“INUM”の値を基に複数のスライス画像をソートし、ボリュームデータ(スライス画像の集
合)を作成する。
FIG. 6 shows metadata used for image generation. “I NUM ” shown in the table of FIG. 6 means what slice image the DICOM file corresponds to. The renderer 221 sorts a plurality of slice images based on the value of “I NUM ” and creates volume data (a set of slice images).

作成されたボリュームデータは、レンダラ221が終了する(削除される)まで、レンダラ221のプロセスが保持する。すなわち、ボリュームデータは、レンダラ221が描画に利用するローカルメモリ222で保存される。このようなボリュームデータの一時記憶によって、同一のコアIDに関する新たなリクエストが受信された場合に、作成したボリュームデータを用いた2次元画像の生成を開始することができる。この場合、改めてボリュームデータを作成する場合に比べて、クライアント10に対する応答時間の短縮化を図ることができる。   The created volume data is retained by the renderer 221 process until the renderer 221 is terminated (deleted). That is, the volume data is stored in the local memory 222 used by the renderer 221 for drawing. With such temporary storage of volume data, when a new request regarding the same core ID is received, generation of a two-dimensional image using the created volume data can be started. In this case, the response time to the client 10 can be shortened compared to the case of newly creating volume data.

<<2.描画パラメータの受信>>
レンダラ221は、起動時に指定されたポート番号をソケットに割り当てて通信相手(レンダラ制御モジュール214)からの接続(リクエスト送信)を待ち受ける。レンダラ221は、リクエストを受信した場合に、当該リクエストに含まれる視点移動,画像の品質,画像保存先に関する情報に基づく描画を開始する。
<< 2. Receiving drawing parameters >>
The renderer 221 assigns a port number designated at the time of activation to a socket and waits for a connection (request transmission) from a communication partner (renderer control module 214). When the renderer 221 receives a request, the renderer 221 starts drawing based on information on viewpoint movement, image quality, and image storage destination included in the request.

<<3.描画処理>>
レンダラ221は、描画処理において、コアの2次元画像を生成するために、以下の処理を行う。
(a)視点の決定
(b)ボリュームデータの圧縮
(c)CT値に対する色の設定
(d)CT値に対するα値の設定
(e)縦方向切断
<< 3. Drawing process >>
In the rendering process, the renderer 221 performs the following process in order to generate a two-dimensional image of the core.
(A) Determination of viewpoint (b) Compression of volume data (c) Color setting for CT value (d) α value setting for CT value (e) Longitudinal cutting

図7は、描画処理におけるレンダリングの流れを説明する図である。最初に、レンダラ221は、初期化処理において取得した(ローカルメモリ222に読み込んだ)ボリュームデータを三次元(3D) テクスチャデータに変換する。続いて、レンダラ221は、
複数枚重ねた長方形ポリゴンに対し、3Dテクスチャデータを用いたテクスチャマッピン
グを行うことによって、ボリュームレンダリングを実現する。
FIG. 7 is a diagram for explaining a rendering flow in the drawing process. First, the renderer 221 converts the volume data acquired in the initialization process (read into the local memory 222) into three-dimensional (3D) texture data. Subsequently, the renderer 221
Volume rendering is realized by performing texture mapping using 3D texture data on a plurality of rectangular polygons.

具体的には、レンダラ221は、図6に示したメタデータを利用して長方形ポリゴンの縦横及び間隔を計算し、実際のコアセクションにおける縦・横・高さの比を保つ。長方形ポリゴンの辺の長さは,ピクセル数とピクセル間隔を用いて,幅PW・SW,高さPH・SHとなる。レンダラ221は、長方形ポリゴンの中心をz軸が通り、且つz軸と長方形ポリゴンとが直交するように、複数の長方形ポリゴンを配置する。このとき、長方形ポリゴンの間隔として、スライスの厚さTが適用される。デフォルト(初期状態)の視点の座標は、y軸上にあり、y軸の+方向から原点方向を向いている。なお、視点の上方向はz軸の+方向と一致する。 Specifically, the renderer 221 uses the metadata shown in FIG. 6 to calculate the length and width and the spacing of the rectangular polygons, and maintains the ratio of the height, width and height in the actual core section. The length of the sides of the rectangular polygon is the width P W · S W and the height P H · S H using the number of pixels and the pixel interval. The renderer 221 arranges a plurality of rectangular polygons so that the z-axis passes through the center of the rectangular polygon and the z-axis and the rectangular polygon are orthogonal to each other. At this time, the slice thickness T is applied as the interval between the rectangular polygons. The coordinates of the default (initial state) viewpoint are on the y-axis, and are directed from the + direction of the y-axis toward the origin. Note that the upward direction of the viewpoint coincides with the + direction of the z axis.

(a)視点の決定
コアを所望の方向から閲覧するために、2種類の視点計算方法を採用されている。1つ目はオイラー角のよる視点の決定であり、2つ目はクオータニオンによる視点の決定である。オイラー角は,x 軸,y 軸,z 軸の回転角度を指定することによる視点の計算法である。図8は、コアと視点の位置関係を説明する図である。コアは円柱状であるため、側面,上面及び底面の閲覧が考慮される。コアの軸に沿った回転によりコアの側面を閲覧することが可能となる。一方、前後方向への回転により底面の閲覧が可能となる。このため、デフォルトの視点をy軸上の+から原点とし、回転をz軸回転(コア軸回転),x軸(前後回転) の順序で適用する。
(A) Determination of viewpoint In order to view the core from a desired direction, two types of viewpoint calculation methods are employed. The first is the determination of the viewpoint by the Euler angle, and the second is the determination of the viewpoint by the quarteranion. Euler angle is a viewpoint calculation method by specifying the rotation angles of the x, y, and z axes. FIG. 8 is a diagram for explaining the positional relationship between the core and the viewpoint. Since the core is cylindrical, viewing of the side surface, top surface, and bottom surface is considered. By rotating along the axis of the core, the side surface of the core can be viewed. On the other hand, it is possible to view the bottom surface by rotating in the front-rear direction. For this reason, the default viewpoint is set from + on the y axis to the origin, and the rotation is applied in the order of z axis rotation (core axis rotation) and x axis (back and forth rotation).

クオータニオンは,回転軸ベクトルと回転角度を指定することによる視点の計算法である。コアを閲覧するためには前述の2軸考慮すれば十分であったが,ここにy軸を加えて3軸を指定した時の視点がどこに移動するかは、ユーザにとってイメージしにくい。その解決案がクオータニオンによる視点の決定であり、画像平面に対するマウスドラッグを用いた回転操作を想定している。この操作法による回転軸ベクトルaは、現在の視線とマウスの移動ベクトルに直交してなおかつコアの描画空間内における原点を通る直線となる。現在の視点位置から原点への単位ベクトルをe = (ex, ey, ez)T 視点の上向きベクトルをu = (ux, uy, uz)T ,画像平面におけるマウスの移動ベクトルをm = (mx, my, 0)T ,マ
ウスの移動ベクトルとx軸のなす角をθとすると、回転軸ベクトルをa = (ax, ay, az)T
は以下の式で表される。
Quartanion is a viewpoint calculation method by specifying a rotation axis vector and a rotation angle. In order to view the core, it is sufficient to consider the above-mentioned two axes. However, it is difficult for the user to determine where the viewpoint moves when the three axes are designated by adding the y axis. The solution is the determination of the viewpoint by the quarteranion, which assumes a rotation operation using a mouse drag on the image plane. The rotation axis vector a by this operation method is a straight line that is orthogonal to the current line of sight and the movement vector of the mouse and passes through the origin in the drawing space of the core. The unit vector from the current viewpoint position to the origin is set as e = (ex, ey, ez) T , the upward vector from the viewpoint u = (ux, uy, uz) T , and the mouse movement vector in the image plane as m = (mx, my, 0) T , where θ is the angle between the mouse movement vector and the x axis, the rotation axis vector is a = (ax, ay, az) T
Is represented by the following equation.

Figure 0006150281
Figure 0006150281

現在の空間座標に対してaを軸とした座標変換を適用することにより、新たな視点が決定される。図9は、クオータニオンに基づく視点の決定を用いた回転の例を示す。レンダラ221は、上述したような視点を決定するためのパラメータに基づき、生成するコア画像の視点を決定する。   A new viewpoint is determined by applying coordinate transformation about a to the current spatial coordinates. FIG. 9 shows an example of rotation using viewpoint determination based on a quota anion. The renderer 221 determines the viewpoint of the core image to be generated based on the parameters for determining the viewpoint as described above.

(b)ボリュームデータの圧縮
コアデータの1枚のDICOMファイルに格納されているスライス画像のサイズは、幅512ピクセル,高さ512ピクセルであり、1ピクセルあたり16ビットである。また、1つのコアセクションあたりのDICOMファイルの数は、およそ400〜2500である。このため、ボリュームデータは大きいもので1Gバイトを超えるデータサイズとな
る。描画処理の時間短縮のために,ボリュームデータが圧縮される。
(B) Compression of Volume Data The size of the slice image stored in one DICOM file of core data is 512 pixels wide and 512 pixels high, and 16 bits per pixel. The number of DICOM files per core section is approximately 400-2500. For this reason, the volume data is large and has a data size exceeding 1 Gbyte. The volume data is compressed to shorten the drawing process time.

本実施形態では、ボリュームデータの解像度を5段階(データ量1/1, 1/8, 1/64, 1/216, 1/512)用意し、ユーザが品質及び応答速度に応じて選択した解像度で画像が生成される。圧縮の手法として、平均画素法が用いられる。平均画素法では、例えば,3*3*3ボ
クセルが1*1*1 ボクセルに圧縮されるとき,元のボクセル値の平均値を新たなボクセル値として用いる。平均画素法の適用により、単純にボクセルを間引いた圧縮手法に比べて、粗さを抑えることができる。
In this embodiment, the resolution of the volume data is prepared in five levels (data amount 1/1, 1/8, 1/64, 1/216, 1/512), and the resolution selected by the user according to the quality and response speed To generate an image. An average pixel method is used as a compression method. In the average pixel method, for example, when 3 * 3 * 3 voxels are compressed into 1 * 1 * 1 voxels, the average value of the original voxel values is used as a new voxel value. By applying the average pixel method, roughness can be suppressed as compared with a compression method in which voxels are simply thinned out.

(c)CT値に対する色及び透過の設定
CT値に対応する色の色づけにおいて、ヒートマップが用いられる。ヒートマップは、値の低いものを青色に、値の高いものを赤色にマッピングするためのマップである。例えば青→水色→緑→黄色→橙→赤のようなグラデーションとなる。CT値の範囲は、例えば、−1000〜4000の値を採ることができる。但し、0以下の値の物質は水より密度の低い液体又は気体であり、通常、コア試料物質の中に殆ど含まれない。このため、コア画像作成に用いるCT値の範囲は、0以上4000以下とした、RGB値は、CT値v(vmin ≦ v< vmax) を用いて、以下の4.4式,4,5式及び4.6式で示すことができ、図10に示すような関数で表すことができる。
(C) Setting of color and transmission for CT value A heat map is used for coloring the color corresponding to the CT value. The heat map is a map for mapping a low value to blue and a high value to red. For example, the gradation is blue → light blue → green → yellow → orange → red. The range of CT value can take the value of -1000-4000, for example. However, a substance having a value of 0 or less is a liquid or gas having a density lower than that of water, and is usually hardly contained in the core sample substance. For this reason, the range of CT values used for core image creation is 0 or more and 4000 or less, and RGB values are calculated using the CT values v (vmin ≦ v <vmax) as follows: And 4.6, and can be represented by a function as shown in FIG.

Figure 0006150281
Figure 0006150281

また、本実施形態では、色付けをCT値に対して線形にするだけでなく、3次スプライン補間を用いた関数によりユーザが色付けを変化させることができる。図11(A)は、色のグラデーション(ヒートマップ)に対してCT値が線形に変化する場合の説明図であり、図11(B)は、ユーザが指定した2点に応じてこれらの点間を3次スプライン補間した関数により、CT値に対する色づけがなされる例を示す。レンダラ221は、ユーザが指定した曲線(関数)を示す情報(リクエストに含まれる)を用いて、各ピクセルのCT値に対する色を決定し、ピクセル(ボクセル)に対する色づけを行う。   Further, in the present embodiment, not only the coloring is linear with respect to the CT value, but also the user can change the coloring by a function using cubic spline interpolation. FIG. 11A is an explanatory diagram when the CT value changes linearly with respect to a color gradation (heat map), and FIG. 11B shows these points according to two points designated by the user. An example in which the CT values are colored by a function obtained by interpolating between them by a cubic spline is shown. The renderer 221 determines a color for the CT value of each pixel using information (included in the request) indicating a curve (function) designated by the user, and performs coloring for the pixel (voxel).

(d)CT値に対するα値の設定
クライアントアプリケーションは、CT値とα値(透過度)の組列を指定し、点列を線形補間することによりα値関数を生成する。例えば、図12に示すようなα値の関数を用いることによって、コアの表面を覆っていたCT値の低いボクセルが透過され、内側の構造を閲覧することが可能となる。レンダラ221は、ユーザが指定したα値の関数を示す情報(リクエストに含まれる)を用いて、各ピクセル(ボクセル)の透過度を決定する。
(D) Setting of α value for CT value The client application specifies a set of CT values and α values (transparency), and generates an α value function by linearly interpolating the point sequence. For example, by using a function of the α value as shown in FIG. 12, a voxel having a low CT value covering the surface of the core is transmitted, and the inner structure can be viewed. The renderer 221 determines the transparency of each pixel (voxel) using information (included in the request) indicating a function of the α value designated by the user.

(e)縦方向切断
縦方向の切断は、例えばOpenGL のクリッピング関数を用いて実現される。クリッピン
グ処理は、以下の4.7式を満たす領域を描画しない。縦方向切断を実現するには、z 軸に水平で原点を通る平面を指定することで、縦方向切断を実現することができる。当該平面の方程式は、角度θを用い、以下の4.8 式によって求めることができる。図13は
、縦方向切断が適用された例を示す。

Figure 0006150281
(E) Longitudinal cutting Longitudinal cutting is realized by using, for example, an OpenGL clipping function. The clipping process does not draw an area that satisfies the following expression 4.7. Longitudinal cutting can be achieved by specifying a plane that is horizontal to the z axis and passes through the origin. The equation of the plane can be obtained by the following equation 4.8 using the angle θ. FIG. 13 shows an example in which longitudinal cutting is applied.
Figure 0006150281

以上のようにして、レンダラ221は、DICOMファイルサーバ24から得られたコアIDに対応する複数のスライス画像(ボリュームデータ)に対するボリュームレンダリングを行い、3次元モデルデータを生成する。さらに、レンダラ221は、上述した(a)〜(d)の処理に基づき、3次元モデルの視点決定、ボリュームデータ圧縮、CT値に対する色づけ及びα値の設定を行う。さらに、レンダラ221は、リクエストに応じて(e)に示した縦方向縦断処理を行う。そして、レンダラ221は、決定された視点,CT値に対する色及びα値に従った2次元のカラー画像を、2次元のコア画像として生成する。2次元のコア画像は、例えば、3次元モデルが指定された視点(ビュー)に基づく投影面に投影されたときのコアセクションの2次元画像を所定のビデオメモリ(ビデオRAM)に書き込むことによって生成される。   As described above, the renderer 221 performs volume rendering on a plurality of slice images (volume data) corresponding to the core ID obtained from the DICOM file server 24, and generates three-dimensional model data. Furthermore, the renderer 221 performs viewpoint determination of the three-dimensional model, volume data compression, coloring for CT values, and setting of α values based on the above-described processes (a) to (d). Further, the renderer 221 performs the vertical direction longitudinal processing shown in (e) in response to the request. Then, the renderer 221 generates a two-dimensional color image according to the determined viewpoint, the color for the CT value, and the α value as a two-dimensional core image. The two-dimensional core image is generated, for example, by writing the two-dimensional image of the core section when the three-dimensional model is projected onto the projection plane based on the designated viewpoint (view) to a predetermined video memory (video RAM). Is done.

そして、レンダラ221は、指定された送信ポート(レンダラ制御モジュール214)に対して、ソケット通信により、図4(B)に示したパラメータを含むレスポンス(応答)を送信する。レスポンスは、2次元のコア画像データのURL(位置情報),現在の視点位置ベクトル,視点の上向き方向ベクトル,CT値のヒストグラム,1ピクセルあたりの長さ(mm) を含む。さらに、レスポンスは、描画が正常に終了したか否かを示すOK又
はNGの文字列を含むことができる。ヒストグラムはボリュームデータの圧縮時における計算によって得ることができる。1 ピクセルあたりの長さs は、視体積のニアクリップ面の長さをL,生成する画像の1辺のピクセル数をWとして4.9 式で計算される。
s=2L/W・P・SW ・・・(4.9)
Then, the renderer 221 transmits a response (response) including the parameters shown in FIG. 4B to the designated transmission port (renderer control module 214) by socket communication. The response includes the URL (position information) of the two-dimensional core image data, the current viewpoint position vector, the upward direction vector of the viewpoint, the CT value histogram, and the length (mm) per pixel. Further, the response can include an OK or NG character string indicating whether or not the drawing has been completed normally. The histogram can be obtained by calculation when the volume data is compressed. 1 length s per pixel is calculated the length of the near clip plane of the view volume L, and the number of pixels per side of the generated image by 4.9 formula as W W.
s = 2L / W W · P W · S W (4.9)

レンダラ制御モジュール214は、描画結果のパラメータをレンダラAPI212に引き渡し、レンダラAPI212は、描画結果をJSON形式でクライアント10に送信する。   The renderer control module 214 passes the rendering result parameters to the renderer API 212, and the renderer API 212 transmits the rendering result to the client 10 in the JSON format.

上記した描画処理では、レンダラ221は、ボリュームレンダリングによって、コアセクションの3次元モデルを生成する。3次元モデルデータは、ボリュームデータと同様に、ローカルメモリ222にて、レンダラ221の終了まで一時的に保存される。一方、レンダラ制御モジュール214は、新たなリクエストを受信した場合には、起動ログ214Aを参照することによって、当該リクエストに対応する起動中のレンダラ221を特定することができ、特定したレンダラ221に新たなリクエストを送信することができる。レンダラ221は、新たなリクエストを受信したときには、ローカルメモリ222に記憶されている3次元モデルデータを用いて、上記(a)〜(e)に係る処理を行う。これによって、DICOMファイルサーバ24へのアクセス及びボリュームデータの作成が省略されるので、2次元のコア画像データを短い時間で生成することができる。すなわち、応答時間の短縮化を図ることができる。   In the rendering process described above, the renderer 221 generates a three-dimensional model of the core section by volume rendering. The three-dimensional model data is temporarily stored in the local memory 222 until the end of the renderer 221 as with the volume data. On the other hand, when the renderer control module 214 receives a new request, the renderer control module 214 can identify the active renderer 221 corresponding to the request by referring to the activation log 214A. Requests can be sent. When the renderer 221 receives a new request, the renderer 221 uses the three-dimensional model data stored in the local memory 222 to perform the processes (a) to (e). As a result, access to the DICOM file server 24 and creation of volume data are omitted, so that two-dimensional core image data can be generated in a short time. That is, the response time can be shortened.

〔クライアント〕
クライアント10は、クライアントアプリケーションとして、例えば、ビューワ機能を司るWebブラウザ11を備える。Webブラウザ11は、サーバ20へHTTP GETに基づ
くと通信(例えば、HTTP通信)を行い、サーバ20に対してクライアント10のユーザが閲覧を所望するコア画像データの提供要求を送信する。また、Webブラウザ11は、コア画像データの提供要求に応じてサーバ20にて生成されたコア画像データを含むファイルを受信し、ファイルに基づくコア画像をディスプレイに表示する。コア画像データを含むファイルは、例えば、JSON(JavaScript Object Notation)ファイルとして提供される。
〔client〕
The client 10 includes, for example, a Web browser 11 that manages a viewer function as a client application. The Web browser 11 performs communication (for example, HTTP communication) to the server 20 based on HTTP GET, and transmits a provision request for core image data that the user of the client 10 desires to browse to the server 20. In addition, the Web browser 11 receives a file including core image data generated by the server 20 in response to a request for providing core image data, and displays a core image based on the file on a display. The file including the core image data is provided as a JSON (JavaScript Object Notation) file, for example.

クライアント10は、CPUと、主記憶装置と、補助記憶装置と、通信I/Fと、入力装置(キーボード,マウス(ポインティングデバイス))と、ディスプレイ装置(いずれも図示せず)を備えて下り、補助記憶装置に記憶(インストール)されたWebブラウザ11をCPUが主記憶装置にロードして実行することによって、以下のようなWebブラウザ11(クライアントアプリケーション)の機能を実現する。   The client 10 includes a CPU, a main storage device, an auxiliary storage device, a communication I / F, an input device (keyboard, mouse (pointing device)), and a display device (none of which are shown). When the CPU loads and executes the Web browser 11 stored (installed) in the auxiliary storage device to the main storage device, the following functions of the Web browser 11 (client application) are realized.

クライアント10は、ネットワークを介してサーバ20が提供するWebサイトにアクセスすることによって、図14に示すような、コア画像の検索,コア画像の閲覧,及びコア画像に対する各種の操作を行うWebページ100をディスプレイ装置に表示することができる。   The client 10 accesses the Web site provided by the server 20 via the network, thereby performing a core image search, a core image browsing, and various operations on the core image as shown in FIG. Can be displayed on the display device.

Webページ100の左側は、コア検索のためのユーザインタフェース(UI)101がレイアウトされている。上から順に、航海番号,掘削サイト番号,ホール番号,コア番号,ビットタイプ及びセクション番号の6つのパラメータを入力又は選択するための欄が設けられている。例えば、航海番号に対応するボタンを押すと、航海番号の候補を示すプルダウンメニューが表示され、候補のいずれかをクリックすると、クリックされた航海番号が入力され、且つ航海番号を含む検索クエリがサーバ20に送信される。その結果、掘削サイト番号に対応するプルダウンメニューに、掘削サイトの候補が選択可能に表示されるようになる。このようにして、掘削サイト番号以降の各パラメータを絞り込むことで、クライアント10は、閲覧を所望するコアID(コア番号)をサーバ20から受信することができる。   On the left side of the Web page 100, a user interface (UI) 101 for core search is laid out. In order from the top, there are provided columns for inputting or selecting six parameters including a voyage number, a drilling site number, a hole number, a core number, a bit type, and a section number. For example, when a button corresponding to a voyage number is pressed, a pull-down menu showing voyage number candidates is displayed. When any of the candidates is clicked, the clicked voyage number is entered and a search query including the voyage number is stored in the server. 20 is transmitted. As a result, excavation site candidates are displayed in a pull-down menu corresponding to the excavation site number in a selectable manner. In this way, by narrowing down the parameters after the excavation site number, the client 10 can receive the core ID (core number) desired to be browsed from the server 20.

コアIDが取得されると、コアIDのパスを含む画像生成のクエリ(リクエスト)がWebブラウザ11からサーバ20へ送信される。サーバ20では、上記した手法で、コアIDに応じた複数のDICOMファイル(スライス画像)からボリュームレンダリングによって、3次元モデルが生成され、3次元モデルに対するデフォルトの視点,解像度,色づけ,及びα値に従った2次元画像が生成され、リクエストに対するレスポンスがサーバからクライアント10へ返信される。   When the core ID is acquired, an image generation query (request) including the path of the core ID is transmitted from the Web browser 11 to the server 20. The server 20 generates a three-dimensional model by volume rendering from a plurality of DICOM files (slice images) corresponding to the core ID by the above-described method, and sets the default viewpoint, resolution, coloring, and α value for the three-dimensional model. Accordingly, a two-dimensional image is generated, and a response to the request is returned from the server to the client 10.

レスポンスは、生成された2次元のコア画像のURLを含んでおり、Webブラウザ11は、当該URLへの自動アクセスによって、2次元画像データを取得し、当該2次元の画像データに基づくコア画像を、Webページ100の中央に設けられた表示領域102に表示する。   The response includes the URL of the generated two-dimensional core image, and the Web browser 11 acquires the two-dimensional image data by automatic access to the URL, and the core image based on the two-dimensional image data is acquired. And displayed in a display area 102 provided in the center of the Web page 100.

Webページ100の右側には、画像に対する各種の設定を行うためのUIが設けられている。UIが操作される毎に、操作の結果に応じたパラメータを含む画像生成のリクエスト(クエリ)がレンダラAPI212に送信され、リクエストに応じた画像生成が行われる。そして、画像生成の結果(2次元画像)がクライアント10に送信され、操作結果が反映された2次元画像が表示領域102に表示される。   On the right side of the Web page 100, a UI for performing various settings for an image is provided. Each time the UI is operated, an image generation request (query) including parameters corresponding to the operation result is transmitted to the renderer API 212, and image generation corresponding to the request is performed. Then, the image generation result (two-dimensional image) is transmitted to the client 10, and the two-dimensional image reflecting the operation result is displayed in the display area 102.

具体的には、右側の最上段には、解像度の設定欄103と、カラーマップの選択欄104とが設けられている。ユーザは、入力装置と、設定欄103及び選択欄104とを用いて、解像度及びカラーマップを指定することができる。解像度の設定欄103の下側には
、表示領域102におけるコア画像の移動ボタン104が設けられており、コア画像を表示領域102にて上方向、下方向へ移動させることができる。移動ボタン104の右側には、コア画像の回転角度を設定するための入力欄105が設けられており、入力欄105への回転角度の入力によって、例えば、コア画像をそのz軸周りに回転させることができる。
Specifically, a resolution setting field 103 and a color map selection field 104 are provided on the upper right side. The user can specify the resolution and the color map using the input device and the setting column 103 and the selection column 104. Below the resolution setting field 103, a move button 104 for the core image in the display area 102 is provided, and the core image can be moved upward and downward in the display area 102. An input field 105 for setting the rotation angle of the core image is provided on the right side of the move button 104. By inputting the rotation angle in the input field 105, for example, the core image is rotated around the z axis. be able to.

また、入力欄105の右側には、コア画像の拡大・縮小を制御するためのスライドバー106が設けられており、スライドバーの移動によって、コア画像の大きさを所望のサイズで表示することができる。さらに、スライドバー106の下段には、縦方向切断用の入力欄(UI)107が設けられている。入力欄107を用いて、コアの切断平面を指定することで、表示領域102に縦方向切断処理が施されたコア画像を表示することができる。   A slide bar 106 for controlling the enlargement / reduction of the core image is provided on the right side of the input field 105, and the size of the core image can be displayed at a desired size by moving the slide bar. it can. Further, an input field (UI) 107 for cutting in the vertical direction is provided at the lower stage of the slide bar 106. By specifying the cutting plane of the core using the input field 107, the core image that has been subjected to the vertical cutting process can be displayed in the display area 102.

さらに、入力欄107の下側には、CT値とカラーマップとの設定画面(UI)108が設けられている。設定画面には、コア画像の各ピクセル(ボクセル)におけるCT値のヒストグラムが表示される。ユーザは、設定画面108の操作により、色づけ対象のCT値の範囲を指定することができる。さらに、カラーマップ(例えばヒートマップ)とCT値との相関を示す関数を当該設定画面108で指定することができる。例えば、デフォルト設定である線形を指定可能であるし、或いは、複数の点を指定することで、3次スプライン補間による関数を指定することもできる。   Further, a CT value and color map setting screen (UI) 108 is provided below the input field 107. On the setting screen, a histogram of CT values at each pixel (voxel) of the core image is displayed. The user can specify the CT value range to be colored by operating the setting screen 108. Furthermore, a function indicating a correlation between a color map (for example, a heat map) and a CT value can be designated on the setting screen 108. For example, the default alignment can be specified, or a function by cubic spline interpolation can be specified by specifying a plurality of points.

Webページ100の右側の最下段には、透明度(透過度)、すなわちα値とCT値との関連を定義するためのUI109が設けられている。α値(0≦α≦1)を設定することで、コアの内部構造(コア内部のCT値分布)を閲覧することが可能となる。   A UI 109 for defining a relationship between transparency (transparency), that is, an α value and a CT value is provided at the lowermost stage on the right side of the Web page 100. By setting an α value (0 ≦ α ≦ 1), it is possible to browse the internal structure of the core (CT value distribution inside the core).

<実施形態の効果>
実施形態のサーバ20によれば、DICOMファイルに比べてデータ容量の小さい2次元のコア画像データをクライアント10へ送信する。これによって、クライアント10を形成する端末の性能に依存せず、且つ低速な回線でも利用可能なシステム(サービス)を、クライアント10のユーザへ提供することが可能となる。
<Effect of embodiment>
According to the server 20 of the embodiment, two-dimensional core image data having a data capacity smaller than that of the DICOM file is transmitted to the client 10. As a result, a system (service) that does not depend on the performance of the terminal forming the client 10 and can be used even on a low-speed line can be provided to the user of the client 10.

特に、サーバ20によれば、コアIDとレンダラ221とが1対1で対応づけられ、コアIDに係るリクエストは同一のレンダラ221に供給される。従って、クライアント10のユーザが、符号103〜109で示した各UIの操作を行うと、操作結果に応じたクエリ(描画のリクエスト)がサーバ20に送られる。   In particular, according to the server 20, the core ID and the renderer 221 are associated with each other on a one-to-one basis, and requests related to the core ID are supplied to the same renderer 221. Accordingly, when the user of the client 10 operates each UI indicated by reference numerals 103 to 109, a query (drawing request) corresponding to the operation result is sent to the server 20.

サーバ20では、上記したように、起動ログ214AにてコアIDに対応づけられたレンダラ221が、ローカルメモリ222に一時記憶された3次元モデルを用いて2次元画像(コア画像)を生成し、コア画像がクライアント10に提供(配信)される。このような、3次元モデルデータの利用によって、クエリに対する応答時間を短縮化し、ユーザに対するコア画像を用いた適正な調査環境を提供することができる。   In the server 20, as described above, the renderer 221 associated with the core ID in the activation log 214A generates a two-dimensional image (core image) using the three-dimensional model temporarily stored in the local memory 222. The core image is provided (distributed) to the client 10. By using such three-dimensional model data, the response time to the query can be shortened, and an appropriate survey environment using the core image for the user can be provided.

なお、図14では、WebブラウザベースのUIについて説明したが、例えば、タブレット端末ベースのビューワ及びUIがクライアント10でユーザに提供されるようにしても良い。この場合、例えば、コアデータ(コアセクション)の検索画面、コア画像の表示画面、縦方向断面の設定画面、CT値に対する色づけ及びα値の設定画面が、それぞれ個別の画面としてディスプレイに表示される。また、コア画像の表示画面(閲覧画面)において、クライアント10が備えるタッチパネルを用いた指の操作(ピンチイン、ピンチアウト操作)に応じてコア画像の拡大・縮小が行われるようにしても良い。また、閲覧画面においてタッチパネル上の指の操作に応じてコア画像の回転や移動が行われるようにして
も良い。
In FIG. 14, the Web browser-based UI has been described. However, for example, a tablet terminal-based viewer and UI may be provided to the user by the client 10. In this case, for example, a core data (core section) search screen, a core image display screen, a longitudinal section setting screen, a CT value coloring and α value setting screen are displayed on the display as individual screens. . Further, on the core image display screen (browsing screen), the core image may be enlarged or reduced in accordance with a finger operation (pinch-in, pinch-out operation) using a touch panel provided in the client 10. In addition, the core image may be rotated or moved in response to a finger operation on the touch panel on the browsing screen.

なお、実施形態では、X線CTスキャンされる物体の例としてコアを例示したが、対象の物体はコアに限定されず、医用(生体組織)を含め、様々な物体について、実施形態で説明したシステムを利用することができる。例えば、物体は、岩石試料や堆積物試料を含むことができる。岩石試料や堆積物試料には、上記したコアを含む。但し、上記において「コア」は“海底を掘削した柱状の地層サンプル”として説明したが、コアは、柱状の地質試料を指す広い概念であり、採取場所は、海底に限られず、例えば、地上、地下、川底などの掘削によって採取されたものも含む。   In the embodiment, the core is exemplified as an example of the object to be X-ray CT scanned, but the target object is not limited to the core, and various objects including medical (biological tissue) have been described in the embodiment. The system can be used. For example, the object can include a rock sample or a sediment sample. The rock sample and the sediment sample include the above-described core. However, in the above description, the “core” is described as “a columnar geological sample excavated from the seabed”, but the core is a broad concept indicating a columnar geological sample, and the collection location is not limited to the seabed. Including those collected by excavating underground and riverbeds.

10・・・クライアント
11・・・Webブラウザ(ビューワ)
20・・・サーバ
21・・・ゲートウェイ
22・・・レンダリングエンジン
211・・・検索API
212・・・レンダラAPI
213・・・検索モジュール(検索手段)
214・・・レンダラ制御モジュール
214A・・・起動ログ(記憶部)
215・・・ロードバランサ
220・・・ノード
221・・・レンダラ
222・・・ローカルメモリ(メモリ)
10 ... Client 11 ... Web browser (viewer)
20 ... Server 21 ... Gateway 22 ... Rendering engine 211 ... Search API
212 ... Renderer API
213 ... Search module (search means)
214 ... Renderer control module 214A ... Start log (storage unit)
215 ... Load balancer 220 ... Node 221 ... Renderer 222 ... Local memory (memory)

Claims (4)

ネットワークを通じて受信されたクライアントからの検索要求に応じた閲覧対象の物体を検索する検索モジュールと、
前記検索モジュールによって検索された物体の識別情報を含む画像生成要求に応じて、当該識別情報に対応する物体のX線CTスキャンによって得られた複数のスライス画像から3次元モデルを生成可能であり、且つこの3次元モデルから前記クライアントへ前記ネットワークを通じて送信すべき2次元画像を生成可能な複数のレンダラと、
前記各レンダラで生成された3次元モデルを一時記憶するメモリと、
前記物体の識別情報とレンダラとの対応関係を記憶する記憶部とを含み、
新たな画像生成要求が受け付けられたときに、前記対応関係に基づき前記新たな画像生成要求に含まれた物体の識別情報に対応するレンダラに当該新たな画像生成要求が供給され、当該レンダラは、メモリに一時記憶された3次元モデルを用いて新たな画像生成要求に対応する2次元画像を生成する
サーバシステム。
A search module for searching for an object to be browsed in response to a search request from a client received via a network;
In response to an image generation request including identification information of an object searched by the search module, a three-dimensional model can be generated from a plurality of slice images obtained by X-ray CT scan of an object corresponding to the identification information. A plurality of renderers capable of generating a two-dimensional image to be transmitted from the three-dimensional model to the client through the network;
A memory for temporarily storing a three-dimensional model generated by each renderer;
A storage unit that stores the correspondence between the identification information of the object and the renderer,
When a new image generation request is received, the new image generation request is supplied to a renderer corresponding to the object identification information included in the new image generation request based on the correspondence relationship. A server system that generates a two-dimensional image corresponding to a new image generation request using a three-dimensional model temporarily stored in a memory.
前記複数のレンダラの中から前記物体の識別情報に対応する3次元モデルの生成を実行すべきレンダラを決定するロードバランサをさらに含む
請求項1に記載のサーバシステム。
The server system according to claim 1, further comprising: a load balancer that determines a renderer for generating a three-dimensional model corresponding to the identification information of the object from the plurality of renderers.
前記物体は、岩石試料又は堆積物試料を含む
請求項1又は2に記載のサーバシステム。
The server system according to claim 1, wherein the object includes a rock sample or a sediment sample.
ネットワークを通じて受信されたクライアントからの検索要求に応じた閲覧対象の物体を検索するステップと、
検索された物体の識別情報を含む画像生成要求に応じて、複数のレンダラの1つに当該識別情報に対応する物体のX線CTスキャンによって得られた複数のスライス画像から3次元モデルを生成させ、且つこの3次元モデルから前記クライアントへ前記ネットワークを通じて送信すべき2次元画像を生成させるステップと、
前記レンダラで生成された3次元モデルを一時記憶するステップと、
前記物体の識別情報とレンダラとの対応関係を記憶するステップと、
新たな画像生成要求が受け付けられたときに、前記対応関係に基づき前記新たな画像生成要求に含まれた物体の識別情報に対応するレンダラが一時記憶された3次元モデルを用いて新たな画像生成要求に対応する2次元画像を生成するために、当該レンダラに当該新たな画像生成要求を供給するステップと
をコンピュータに実行させるプログラム。
Searching for an object to be browsed in response to a search request from a client received over a network;
In response to an image generation request including identification information of the searched object, one of the plurality of renderers generates a three-dimensional model from a plurality of slice images obtained by X-ray CT scan of the object corresponding to the identification information. And generating a two-dimensional image to be transmitted from the three-dimensional model to the client through the network;
Temporarily storing the three-dimensional model generated by the renderer;
Storing the correspondence between the identification information of the object and the renderer;
When a new image generation request is received, a new image generation is performed using a three-dimensional model in which a renderer corresponding to the object identification information included in the new image generation request is temporarily stored based on the correspondence relationship. A program for causing a computer to execute the step of supplying the new image generation request to the renderer in order to generate a two-dimensional image corresponding to the request.
JP2013117281A 2013-06-03 2013-06-03 Server system and program Expired - Fee Related JP6150281B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013117281A JP6150281B2 (en) 2013-06-03 2013-06-03 Server system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013117281A JP6150281B2 (en) 2013-06-03 2013-06-03 Server system and program

Publications (2)

Publication Number Publication Date
JP2014235607A JP2014235607A (en) 2014-12-15
JP6150281B2 true JP6150281B2 (en) 2017-06-21

Family

ID=52138254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013117281A Expired - Fee Related JP6150281B2 (en) 2013-06-03 2013-06-03 Server system and program

Country Status (1)

Country Link
JP (1) JP6150281B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4713914B2 (en) * 2005-03-31 2011-06-29 株式会社東芝 MEDICAL IMAGE MANAGEMENT DEVICE, MEDICAL IMAGE MANAGEMENT METHOD, AND MEDICAL IMAGE MANAGEMENT SYSTEM
JP2008145985A (en) * 2006-12-13 2008-06-26 Cyber Map Japan:Kk Three-dimensional map distribution system and server device
KR101076593B1 (en) * 2010-11-25 2011-10-24 한국지질자원연구원 Computer tomography system for core analysis in the geo-science and geo-resource field
JP5724687B2 (en) * 2011-07-04 2015-05-27 富士通株式会社 Information processing apparatus, server selection method, and program

Also Published As

Publication number Publication date
JP2014235607A (en) 2014-12-15

Similar Documents

Publication Publication Date Title
US10713258B2 (en) Systems and methods for visualizing and manipulating graph databases
US10482107B2 (en) Apparatus, system and method for the efficient storage and retrieval of 3-dimensionally organized data in cloud-based computing architectures
US7365747B2 (en) Methods and systems for controlling an image generator to define, generate, and view geometric images of an object
EP2677347A2 (en) Spatial data services
US20060066609A1 (en) Methods and systems for viewing geometry of an object model generated by a CAD tool
US20170178266A1 (en) Interactive data visualisation of volume datasets with integrated annotation and collaboration functionality
JP3954596B2 (en) Image processing apparatus, image processing method, and image processing program
AU2014396222B2 (en) Integrating external algorithms into a flexible framework for imaging visualization data
CA2719138A1 (en) Lightweight three-dimensional display
US20020188669A1 (en) Integrated method for disseminating large spatial data sets in a distributed form via the internet
US20120256914A1 (en) Consulting digital models from lightweight terminals
Brivio et al. PhotoCloud: Interactive remote exploration of joint 2D and 3D datasets
US8438199B1 (en) System and method for identifying and highlighting a graphic element
Pomaska Utilization of photosynth point clouds for 3D object reconstruction
US20210398354A1 (en) Data structures for augmented reality planning of geographic locations
JP6150281B2 (en) Server system and program
KR20210145133A (en) Method and system for defining a service for providing map images
JP4422161B2 (en) Image processing apparatus and image processing program
Sophocleous et al. Medici 2: A scalable content management system for cultural heritage datasets
KR100283617B1 (en) 3D Virtual Space Construction System
Romphf et al. Resurrect3D: An open and customizable platform for visualizing and analyzing cultural heritage artifacts
Yang et al. Voxer—a platform for creating, customizing, and sharing scientific visualizations
US11422874B2 (en) Visualization infrastructure for web applications
Frank et al. The EnSight Visualization Application.
Bektaş et al. Survey of true 3d and raster level of detail support in gis software

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170407

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170517

R150 Certificate of patent or registration of utility model

Ref document number: 6150281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees