JP6150281B2 - Server system and program - Google Patents
Server system and program Download PDFInfo
- 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
Links
- 230000004044 response Effects 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 24
- 238000002591 computed tomography Methods 0.000 claims description 10
- 239000011435 rock Substances 0.000 claims description 3
- 239000013049 sediment Substances 0.000 claims description 3
- 238000000034 method Methods 0.000 description 41
- 230000000875 corresponding effect Effects 0.000 description 26
- 238000009877 rendering Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 24
- 230000004913 activation Effects 0.000 description 23
- 238000001994 activation Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 238000009412 basement excavation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005520 cutting process Methods 0.000 description 10
- 230000010365 information processing Effects 0.000 description 10
- 238000004040 coloring Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000009826 distribution Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007616 round robin method Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 3
- 210000001519 tissue Anatomy 0.000 description 3
- 238000010521 absorption reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 150000001450 anions Chemical class 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 210000003041 ligament Anatomy 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
しかしながら、コアデータを用いた分析には、以下のような問題があった。第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.
以下、本発明の実施の形態について、図面に基づいて説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。 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
クライアントアプリケーションは、例えば、通常の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
By using the
サーバ20は、クライアント10とネットワーク(例えば、インターネット)を介して接続される。サーバ20は、例えば、クラウド上に置かれた、クライアント10から要求に応じたコア画像データを生成してクライアント10へ送信する機能を持つ、単一のコンピュータ(情報処理装置)又は複数のコンピュータの集合体である。
The
〔サーバ〕
サーバ20は、図1に示すように、大略して、クライアント10とのインタフェース機
能を司るゲートウェイ21と、クライアント10から要求されたコア画像の生成機能を司るレンダリングエンジン22と、コア検索用データベース(検索用DB)23と、DICOMファイルサーバ(DICOMサーバ)24とを備えている。
〔server〕
As shown in FIG. 1, the
クライアント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
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
サーバ20からクライアントアプリケーションへの通信は、例えば、軽量なデータ記述言語であるJSON(JavaScript Object Notation)や、XML(Extensible Markup Language)を用いて実現することができる。すなわち、クライアントアプリケーションは、リクエストに対する結果(応答)は、JSONやXML形式で受け取る。
Communication from the
ゲートウェイ21は、クライアント10(クライアント10が備えるアプリケーション)からの要求を受け付けるサーバである。ゲートウェイ20は、クライアント10によって利用されるAPI210として、クライアント10が閲覧を希望するコアを検索するためのリクエスト(検索要求)を受け付ける検索API211と、コア画像を生成するためのリクエスト(画像生成要求)を受け付けるレンダラAPI212とを備えている。
The
ゲートウェイ21は、さらに、検索API211から得られた情報に基づいて検索用DB23に対する検索処理を行う検索モジュール213と、レンダラAPI212からの情報を用いたコア画像生成を制御するレンダラ制御モジュール214とを備える。レンダラ制御モジュール214は、クライアント10のリクエストに対応するコア情報と、コア画像に対する操作の情報とを受け取り、レンダリングエンジン22に含まれたレンダラ221にコア画像生成処理を依頼(「要求」、「リクエスト」とも呼ぶ)する。但し、レンダラ221の起動制御は、レンダラ制御モジュール215が備えるロードバランサ215によって行われる。ロードバランサ215は、レンダリングエンジン22を形成する複数のノード220の中から、負荷の少ないノード220を選択し、選択されたノードで形成されるレンダラ221に対して、コア画像生成処理を依頼する。
The
レンダリングエンジン22は、複数のノード220から形成されており、各ノード220上で、画像生成を行うレンダラ221が稼働する。各レンダラ221は、DICOMファイルサーバ24にアクセスすることができ、レンダラ制御モジュール214からの依頼に応じたコアデータ(DICOMファイル)を得ることができる。各ノード220は、ローカルメモリ222を有している。ローカルメモリ222は、コアデータを用いたコア画像生成処理の作業領域、及び生成されたコア画像データの一時的な保管領域として使用される。ローカルメモリ222は、「メモリ」の一例である。
The
上記したゲートウェイ21が備える機能は、CPU,主記憶装置(メインメモリ),補助記憶装置,及び通信インタフェース回路(通信I/F)(いずれも図示せず)を備える情報処理装置(コンピュータ)において、例えば、補助記憶装置に記憶(インストール)されたミドルウェア(プログラム)をCPUが主記憶装置にロードして実行することによって実現される。情報処理装置として、例えば、PCや専用又は汎用のサーバマシンを用いることができる。
The functions of the
また、レンダリングエンジン22は、複数のCPUと、複数の主記憶装置と、1以上の
補助記憶装置とを含む情報処理装置を用いて実現することができる。レンダリングエンジン220が備える複数のノード221のそれぞれは、レンダリングエンジン22を実現する情報処理装置に含まれた単数又は複数のCPUと、当該単数又は複数のCPUが使用する主記憶装置によって実現される。ノード220を実現する単数又は複数のCPUは、補助記憶装置に予め記憶(インストール)されたプログラムの実行によって、レンダラ221の起動・起動停止(削除)を行う。また、ノード220が有するローカルメモリ222は、ノード220を実現する単数又は複数のCPUが使用する主記憶装置、又は補助記憶装置における所定の記憶領域である。
The
また、レンダリングエンジン22が備える複数のノード220は、上記したCPUを用いた構成に代えて、単数又は複数のGPU(Graphical Processing Unit)と、単数又は
複数のGPUの動作を制御するCPUとから形成されても良い。このとき、各GPUが備える複数のプロセッサに対し、複数のノードが割り当てられる(GPUクラスタが形成される)ようにしても良い。
In addition, the plurality of
<検索処理>
以下、コアの検索処理の詳細について説明する。コアデータのファイル名は、「航海番号」,「掘削サイト情報」,「ホール番号」,「コア番号」,「ビットタイプ」及び「セクション番号」の組み合わせによって作成されることが決められている。航海番号は、航海プロジェクトの番号であり、掘削サイト及びホール番号は、コアの掘削位置の特定情報である。コア番号は、掘削されたコア試料毎に付けられる連続番号である。ビットタイプは、コア試料の掘削を行ったドリルの識別番号である。セクション番号は、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
図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
検索モジュール213は、受け取ったパラメータに基づくクエリ(SQL文)を生成し、検索用DB23に問い合わせを行う(図2<3>)。検索モジュール213は、検索用DB23から検索結果を受け取って検索API211に渡す(図2<4>)。検索API211は、検索結果をJSON形式に加工した後に、返り値としてクライアント10(クライアントアプリケーション)に送信する(図2<5>)。なお、検索用DB23は、ゲートウェイ21を実現する情報処理装置の補助記憶装置に記憶されたDBであっても良く、当該情報処理装置から独立した情報処理装置(DBサーバ)であっても良い。
The
返り値は、クライアント10から検索API211へ送信されたパラメータによって変化する。パラメータとして航海番号が送信(選択)された場合には、選択された航海番号を有する掘削サイト番号の集合が返り値として返信される。掘削サイト番号の集合から選択された1つの掘削サイト番号がパラメータとしてクライアント10から検索API211へ引き渡された場合には、航海番号及び掘削サイト番号を持つホール番号の集合が返り値となる。このようにして、ホール番号,コア番号,ビットタイプ,及びセクション番号が、順次パラメータとして引き渡されることで、最終的に1つのコア試料(コアセクション)を特定することができる。6つのパラメータで特定されたコアセクションには、コア
セクションを一意に識別する固有のID(「コアID」又は「コア番号」と称する)が割り振られており、検索API211は、コアIDを返り値としてクライアント10に送信する。コアIDは、「物体の識別情報」の一例である。
The return value varies depending on the parameter transmitted from the
クライアント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
図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
例えば、航海番号“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
<レンダラAPI及びレンダラ制御モジュール>
次に、レンダラAPI212及びレンダラ制御モジュール214の詳細について説明する。図4(A)は、クライアント10からレンダラAPI212へ送信されるクエリ(画像生成要求(リクエスト))のパラメータを示し、図4(B)は、クエリに対するレスポンス(応答)としてクライアント10に送信されるJSON形式のパラメータを示す。クライアント10におけるユーザの操作に応じて、図4(A)に示すパラメータの値を含むクエリが作成される。
<Renderer API and renderer control module>
Next, details of the
図4(A)に示すように、クエリは、検索API211でクライアント10に提供されたコアID(コア番号)を含む。さらに、クエリでは、閲覧を所望するコア画像のビュー情報として、以下のパラメータを指定することができる。但し、常に以下の情報の全てがクエリに含まれる訳ではなく、ユーザの操作に応じたパラメータがクエリに含まれる。
・拡大率
・縦切断の角度
・解像度
・回転方法
・xyz方向の回転角度
・コアの上下動
・色の付け方
・CT値と色の関係を示す組の配列
・CT値と当過度の関係を示す組の配列
・現在のカメラ座標
・現在のカメラの上方向ベクトル
・マウスの移動ベクトル
・回転角度
As shown in FIG. 4A, the query includes the core ID (core number) provided to the
・ 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
-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
1種類のコア試料に対して1つのレンダラ220が起動する。例えば、3種類のコア試料の画像生成が要求された場合には、3つのレンダラ220が起動する。このため、複数の種類のコア試料の閲覧を所望するクエリが発生した場合には、複数のレンダラ221がノード220上で起動する。
One
レンダラ220は、DICOMファイルサーバ24からボリュームデータ(2次元スライス画像データ)を読み込んで、3次元モデルを生成してから2次元画像(クライアントに提供されるコア画像)を生成する。このような画像処理によって、ノードには高い負荷がかかるため、複数のノードに対して負荷を分散し、1つのノードに負荷が集中することを回避する。このため、レンダラ制御モジュール214は、ロードバランサ215を有し、画像処理の負荷分散及び負荷軽減が次のように行われる。
The
基本的には、ロードバランサ215は、いわゆるラウンドロビン方式によって複数のノード220に対し、順番にレンダラ221を起動させる。図5は、ラウンドロビン方式による負荷分散の説明図である。図5に示すように、例えば、レンダリングエンジン22が16個のノード220を備えている場合には、ロードバランサ215は、1番目のノード(ノード1)から16番目のノード(ノード16)に対し、順番にレンダラ221の起動命令を与える。次のリクエスト(クエリ)を受け取った場合には、ロードバランサ215は、再び1番目のノード(ノード1)に対してレンダラ221の起動命令を与える。このように、ノード1からノード16までのレンダラ起動が繰り返し行われる。
Basically, the
但し、レンダラ221の削除処理(後述)によって、例えば、図5に示したノード3のレンダラ221が削除された場合には、ノード3におけるレンダラ221の起動数が他のノード221よりも一つ少なくなる。このため、負荷がノード間で均等に分散されない。このため、ロードバランサ215は、各ノード220におけるレンダラ221の起動数を監視して、負荷が少ない(レンダラ221の起動数が)少ないノード220を発見した場合には、当該ノード220に対して優先的にレンダラ起動命令を与える。
However, for example, when the
ところで、レンダラ制御モジュール214(ロードバランサ215)によって起動した
レンダラ221は、画像生成処理を行っていないときには、クエリ(リクエスト)の待ち受け状態で常駐する。この待ち受け状態においても、レンダラ221は、ノードのメモリ(ローカルメモリ222)の一部を占有し、且つCPUリソースもわずかながら占有する。このため、起動したレンダラの数が或る数を超えると、ノードが高負荷状態となって、画像生成処理の遅延や失敗を招来する虞がある。
Incidentally, the
このため、レンダラ制御モジュール214は、起動中の各レンダラ221の状態を監視し、不要なレンダラの削除(終了処理)を行う。例えば、一定時間リクエストを受け付けていないレンダラ221が存在する場合には、当該レンダラの削除命令をレンダラ制御モジュール214はノード220に与える。
Therefore, the
レンダラ制御モジュール214は、例えば、定期的又は周期的に、レンダラ監視用のプログラム(スクリプト)を起動して、以下の式(1)に基づく判定処理を、レンダラ毎に行う。
(最後にアクセスされた日時)−(スクリプト実行の日時)>T ・・・式(1)
For example, the
(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
また、レンダラ制御モジュール214は、さらに、レンダラ221の総数を監視し、総数が予め定められたレンダラの起動上限数Nを上回る場合には、少なくとも1つのレンダラ221の削除処理を行う。判定式は以下の式(2)で与えられる。
(起動しているレンダラの総数)>N ・・・式(2)
In addition, the
(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
レンダラ221は、単に起動しただけでは、コア画像の生成処理を行わず、リクエストの待ち受け状態となる。レンダラ221は、リクエストを受信したときに、リクエストに応じた画像生成処理(画像描画処理)を行う。レンダラ制御モジュール214からレンダラ221に対するリクエストの送信は、ソケット通信によって行われる。また、レンダラ221に対する削除命令(終了メッセージ)の送信も、ソケット通信によって行われる。
The
ソケット通信では、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
レンダラ221の起動状況の記録は「起動ログ」214Aによって行われる。起動ログ214Aは、起動したレンダラ221の各種情報を記憶するファイルである。起動ログ214Aは、レンダラ制御モジュール214にて保持及び管理される。レンダラ起動時には、レンダラ制御モジュール214は、起動ログ214Aに、起動対象のレンダラ221に
関する情報を追記し、レンダラ削除時には、削除対象のレンダラ221の情報を削除する。レンダラ221に関する情報として、コアID(コア番号),ノード番号,ポート番号,アクセス日時(タイムスタンプ)の項目が記録される。起動ログ214Aは、ゲートウェイ21として機能する情報処理装置の主記憶装置又は補助記憶装置に記憶される。
The activation status of the
コア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
レンダラ制御モジュール214は、レンダラ221を起動する前に、起動ログ214Aに記述されたコアIDを参照することで、コアIDに対応するレンダラ221が既に起動しているか否かを確認する。起動ログ214AにコアIDがない場合には、コアIDに対応するレンダラ221が起動していないと判定され、レンダラ制御モジュール214は、起動ログ214Aに記述されたノード番号の参照結果に基づいて、或るノード220に対してレンダラ221の起動命令(専用の起動コマンド)を与える。このとき、ロードバランサ215が、上記したラウンドロビン方式、及び各ノード220におけるレンダラの起動数を考慮して、レンダラ221を起動するノード220を決定する。さらに、レンダラ制御モジュール214は、起動対象のレンダラ221に対するポート番号の割り当てを行い、割り当てたポート番号を起動ログ214Aに記述する。
Before starting the
レンダラ221が起動すると、レンダラ制御モジュール214は、起動ログ214Aに記述されたノード番号及びポート番号で特定されるレンダラ221に対して、コア画像生成のリクエストをソケット通信で送信する。或るレンダラ221にリクエストが送信される毎に、起動ログ214Aにおける、該当レンダラの最終アクセス日時が更新される。
When the
起動ログ214Aには、各レンダラの最終アクセス日時が記録される。このため、レンダラ制御モジュール214は、定期的又は周期的なレンダラ監視において、起動ログ214Aを参照し、差分(式(1)参照)が閾値Tを超えるレンダラ221に対する削除命令(終了メッセージ)を発行することができる。また、起動ログ214Aにおけるノード番号及びポート番号の記述から、起動中のレンダラ221の総数をレンダラ制御モジュール214は把握することができる。総数が閾値Nを超える場合に、レンダラ制御モジュール214はアクセス日時が最古のレンダラ221に対する削除処理を行う。
In the
<レンダリングエンジン>
次に、レンダリングエンジン22(レンダラ221)の詳細について説明する。レンダラ221は、リクエスト中のコアIDに対応するDICOMファイルをDICOMファイルサーバ24から得る。
<Rendering engine>
Next, details of the rendering engine 22 (renderer 221) will be described. The
DICOMファイルサーバ24は、DICOMフォーマットで保存された、コアセクション毎の画像データ(コアデータ)を蓄積したDBサーバである。X線CTスキャンによって得られた1枚の断面画像は「スライス(画像)」と呼ばれ、1つのコアセクションについて得られた複数のスライス画像の集合が、1つのコアIDに対応するコアデータとして、DICOMファイルサーバ24から2次元画像生成のために取得される。
The
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
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
図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
作成されたボリュームデータは、レンダラ221が終了する(削除される)まで、レンダラ221のプロセスが保持する。すなわち、ボリュームデータは、レンダラ221が描画に利用するローカルメモリ222で保存される。このようなボリュームデータの一時記憶によって、同一のコアIDに関する新たなリクエストが受信された場合に、作成したボリュームデータを用いた2次元画像の生成を開始することができる。この場合、改めてボリュームデータを作成する場合に比べて、クライアント10に対する応答時間の短縮化を図ることができる。
The created volume data is retained by the
<<2.描画パラメータの受信>>
レンダラ221は、起動時に指定されたポート番号をソケットに割り当てて通信相手(レンダラ制御モジュール214)からの接続(リクエスト送信)を待ち受ける。レンダラ221は、リクエストを受信した場合に、当該リクエストに含まれる視点移動,画像の品質,画像保存先に関する情報に基づく描画を開始する。
<< 2. Receiving drawing parameters >>
The
<<3.描画処理>>
レンダラ221は、描画処理において、コアの2次元画像を生成するために、以下の処理を行う。
(a)視点の決定
(b)ボリュームデータの圧縮
(c)CT値に対する色の設定
(d)CT値に対するα値の設定
(e)縦方向切断
<< 3. Drawing process >>
In the rendering process, the
(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
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
(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.
現在の空間座標に対して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
(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.
また、本実施形態では、色付けを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
(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
(e)縦方向切断
縦方向の切断は、例えばOpenGL のクリッピング関数を用いて実現される。クリッピン
グ処理は、以下の4.7式を満たす領域を描画しない。縦方向切断を実現するには、z 軸に水平で原点を通る平面を指定することで、縦方向切断を実現することができる。当該平面の方程式は、角度θを用い、以下の4.8 式によって求めることができる。図13は
、縦方向切断が適用された例を示す。
以上のようにして、レンダラ221は、DICOMファイルサーバ24から得られたコアIDに対応する複数のスライス画像(ボリュームデータ)に対するボリュームレンダリングを行い、3次元モデルデータを生成する。さらに、レンダラ221は、上述した(a)〜(d)の処理に基づき、3次元モデルの視点決定、ボリュームデータ圧縮、CT値に対する色づけ及びα値の設定を行う。さらに、レンダラ221は、リクエストに応じて(e)に示した縦方向縦断処理を行う。そして、レンダラ221は、決定された視点,CT値に対する色及びα値に従った2次元のカラー画像を、2次元のコア画像として生成する。2次元のコア画像は、例えば、3次元モデルが指定された視点(ビュー)に基づく投影面に投影されたときのコアセクションの2次元画像を所定のビデオメモリ(ビデオRAM)に書き込むことによって生成される。
As described above, the
そして、レンダラ221は、指定された送信ポート(レンダラ制御モジュール214)に対して、ソケット通信により、図4(B)に示したパラメータを含むレスポンス(応答)を送信する。レスポンスは、2次元のコア画像データのURL(位置情報),現在の視点位置ベクトル,視点の上向き方向ベクトル,CT値のヒストグラム,1ピクセルあたりの長さ(mm) を含む。さらに、レスポンスは、描画が正常に終了したか否かを示すOK又
はNGの文字列を含むことができる。ヒストグラムはボリュームデータの圧縮時における計算によって得ることができる。1 ピクセルあたりの長さs は、視体積のニアクリップ面の長さをL,生成する画像の1辺のピクセル数をWWとして4.9 式で計算される。
s=2L/WW・PW・SW ・・・(4.9)
Then, the
s = 2L / W W · P W · S W (4.9)
レンダラ制御モジュール214は、描画結果のパラメータをレンダラAPI212に引き渡し、レンダラAPI212は、描画結果をJSON形式でクライアント10に送信する。
The
上記した描画処理では、レンダラ221は、ボリュームレンダリングによって、コアセクションの3次元モデルを生成する。3次元モデルデータは、ボリュームデータと同様に、ローカルメモリ222にて、レンダラ221の終了まで一時的に保存される。一方、レンダラ制御モジュール214は、新たなリクエストを受信した場合には、起動ログ214Aを参照することによって、当該リクエストに対応する起動中のレンダラ221を特定することができ、特定したレンダラ221に新たなリクエストを送信することができる。レンダラ221は、新たなリクエストを受信したときには、ローカルメモリ222に記憶されている3次元モデルデータを用いて、上記(a)〜(e)に係る処理を行う。これによって、DICOMファイルサーバ24へのアクセス及びボリュームデータの作成が省略されるので、2次元のコア画像データを短い時間で生成することができる。すなわち、応答時間の短縮化を図ることができる。
In the rendering process described above, the
〔クライアント〕
クライアント10は、クライアントアプリケーションとして、例えば、ビューワ機能を司るWebブラウザ11を備える。Webブラウザ11は、サーバ20へHTTP GETに基づ
くと通信(例えば、HTTP通信)を行い、サーバ20に対してクライアント10のユーザが閲覧を所望するコア画像データの提供要求を送信する。また、Webブラウザ11は、コア画像データの提供要求に応じてサーバ20にて生成されたコア画像データを含むファイルを受信し、ファイルに基づくコア画像をディスプレイに表示する。コア画像データを含むファイルは、例えば、JSON(JavaScript Object Notation)ファイルとして提供される。
〔client〕
The
クライアント10は、CPUと、主記憶装置と、補助記憶装置と、通信I/Fと、入力装置(キーボード,マウス(ポインティングデバイス))と、ディスプレイ装置(いずれも図示せず)を備えて下り、補助記憶装置に記憶(インストール)されたWebブラウザ11をCPUが主記憶装置にロードして実行することによって、以下のようなWebブラウザ11(クライアントアプリケーション)の機能を実現する。
The
クライアント10は、ネットワークを介してサーバ20が提供するWebサイトにアクセスすることによって、図14に示すような、コア画像の検索,コア画像の閲覧,及びコア画像に対する各種の操作を行うWebページ100をディスプレイ装置に表示することができる。
The
Webページ100の左側は、コア検索のためのユーザインタフェース(UI)101がレイアウトされている。上から順に、航海番号,掘削サイト番号,ホール番号,コア番号,ビットタイプ及びセクション番号の6つのパラメータを入力又は選択するための欄が設けられている。例えば、航海番号に対応するボタンを押すと、航海番号の候補を示すプルダウンメニューが表示され、候補のいずれかをクリックすると、クリックされた航海番号が入力され、且つ航海番号を含む検索クエリがサーバ20に送信される。その結果、掘削サイト番号に対応するプルダウンメニューに、掘削サイトの候補が選択可能に表示されるようになる。このようにして、掘削サイト番号以降の各パラメータを絞り込むことで、クライアント10は、閲覧を所望するコアID(コア番号)をサーバ20から受信することができる。
On the left side of the
コア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
レスポンスは、生成された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
Webページ100の右側には、画像に対する各種の設定を行うためのUIが設けられている。UIが操作される毎に、操作の結果に応じたパラメータを含む画像生成のリクエスト(クエリ)がレンダラAPI212に送信され、リクエストに応じた画像生成が行われる。そして、画像生成の結果(2次元画像)がクライアント10に送信され、操作結果が反映された2次元画像が表示領域102に表示される。
On the right side of the
具体的には、右側の最上段には、解像度の設定欄103と、カラーマップの選択欄104とが設けられている。ユーザは、入力装置と、設定欄103及び選択欄104とを用いて、解像度及びカラーマップを指定することができる。解像度の設定欄103の下側には
、表示領域102におけるコア画像の移動ボタン104が設けられており、コア画像を表示領域102にて上方向、下方向へ移動させることができる。移動ボタン104の右側には、コア画像の回転角度を設定するための入力欄105が設けられており、入力欄105への回転角度の入力によって、例えば、コア画像をそのz軸周りに回転させることができる。
Specifically, a
また、入力欄105の右側には、コア画像の拡大・縮小を制御するためのスライドバー106が設けられており、スライドバーの移動によって、コア画像の大きさを所望のサイズで表示することができる。さらに、スライドバー106の下段には、縦方向切断用の入力欄(UI)107が設けられている。入力欄107を用いて、コアの切断平面を指定することで、表示領域102に縦方向切断処理が施されたコア画像を表示することができる。
A
さらに、入力欄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
Webページ100の右側の最下段には、透明度(透過度)、すなわちα値とCT値との関連を定義するためのUI109が設けられている。α値(0≦α≦1)を設定することで、コアの内部構造(コア内部のCT値分布)を閲覧することが可能となる。
A
<実施形態の効果>
実施形態のサーバ20によれば、DICOMファイルに比べてデータ容量の小さい2次元のコア画像データをクライアント10へ送信する。これによって、クライアント10を形成する端末の性能に依存せず、且つ低速な回線でも利用可能なシステム(サービス)を、クライアント10のユーザへ提供することが可能となる。
<Effect of embodiment>
According to the
特に、サーバ20によれば、コアIDとレンダラ221とが1対1で対応づけられ、コアIDに係るリクエストは同一のレンダラ221に供給される。従って、クライアント10のユーザが、符号103〜109で示した各UIの操作を行うと、操作結果に応じたクエリ(描画のリクエスト)がサーバ20に送られる。
In particular, according to the
サーバ20では、上記したように、起動ログ214AにてコアIDに対応づけられたレンダラ221が、ローカルメモリ222に一時記憶された3次元モデルを用いて2次元画像(コア画像)を生成し、コア画像がクライアント10に提供(配信)される。このような、3次元モデルデータの利用によって、クエリに対する応答時間を短縮化し、ユーザに対するコア画像を用いた適正な調査環境を提供することができる。
In the
なお、図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
なお、実施形態では、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 ...
212 ... Renderer API
213 ... Search module (search means)
214 ...
215 ...
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.
請求項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.
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)
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 |
-
2013
- 2013-06-03 JP JP2013117281A patent/JP6150281B2/en not_active Expired - Fee Related
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 |