shading? or lighting?

ところで、画像処理マワリをやっていて気がついたのだが、horlix で VR(ボリュームレンダリング)させたとき、ツールバーに shading というアイテムが出現する。

ちなみに、shading にチェックを入れると

こういう画像が得られる。

 

shading のチェックを外すと

画像はこのようになる。

単なる lighting ですね。ambient, diffuse や specular なども lighting に関わる用語です。

最近では、位置情報を含めて GPU 描画させることを shading という呼び方をすることが多いので、若干、気になった。

細かいところですが。

 

HorliX on Mac OSX Catalina

Catalina の正式版がいつのまにかリリースされていたので、アップデート。

HorliX は無事動いているようです。

最新、Ver1.0.7 は、ダウンロードページからどうぞ。
日本語で使いたい方は、(もちろん)Japanese Ver を落としてください。

アノテーションの「文字化け?」について

日本では報告されていなかったのですが、2D ビューアや 3D ビューア上で描画されるテキスト文字が解読できないくらい乱れるという問題が指摘されていました。
HorliX であれば

github issues: HorliX with CATALINA , TEXT LINE ILLEGIBLE

Horos であれば、

github issues: Length assessment bug [ROI] , Annotation colour is green, cannot change after update Catalina

あたり。

報告されているとはいっても、かなり特殊な条件でしかおこらないようなので対応を後回しにしていたのですが、3次元表示(ボリュームレンダリングなど)あたりのコードを整理・手直ししていたときに、「あ、そういうことか」と思い当たる節があり、下記のような操作を実行してみたところ上手くいきました。

HorliX のメーリングリストに流したのですが、ここでも解説します。

かなり特殊な実行環境だと思うのですが、ROI などを使った場合、


というようにまるっきり文字が読めない現象が出現するときがある。
このバグが生じるのは、実行環境の Mac のモニターのカラープロファイルが意図せぬ設定になっているせいなので、これを修正する。
具体的には、まず、画面左上にある林檎マークをクリックしてメニューアイテムを表示して『このMacについて』を選ぶ。

するとパネルが現れるので、『ディスプレイ』を表示させ、パネル右下の『”ディスプレイ”環境設定…』ボタンをクリック。

するとディスプレイ設定パネルが出現する。
ここで『カラー』を選ぶ。するとカラープロファイルの設定画面に切り替わる。

文字が判読できないような場合、ディスプレイプロファイルが『一般RGBプロファイル』以外になっているので、これを『一般RGBプロファイル』に選び直す。

この設定変更の後、再度アプリを立ち上げると

と文字が正常に表示されるようになります。

ソースコードレベルでの修正は検討しているところです。(できれば OS の側で修正して欲しいんですが)

その他

今のところ、Catalina 移行に伴うバグらしいバグは上がってきていません。

今後の予定

3次元表示周りは、今一つコードが整理しきれていない印象があるので、ここは現在修正中です。

VR (ボリュームレンダリング)

なお、上記のサンプルは MacOS BigSur でも無事に動いています。

 

MacPro の衝撃

先日、MacPro の今秋の発売がアップルから公式にアナウンスされた。

当初は、その形状から「おろし金」などと言われていたが、徐々にそのハイスペックぶりに注目が集まっている。なにしろ、RAM だけで 1.5T 積めるらしい。
今から思うと OSX が「OpenGL 非推奨、Metal 推奨」になったのはこの布石だったのかもしれない。
画像処理を重視するなら、GPU を低レベルから操作できる Metal の方が処理速度の点で有利になることが予想される。現状では、OpenGL の Ver3, 4 の方が Metal より速いようであるが、コードが熟成すれば Metal の方が速くなりそうだ。
業務用途で凝った3Dキャラをストレスなく動かすには、ここまで必要なのかもしれない。ちょっとした画像処理でここまでの必要性があるのか判断しかねるが、アップルからしてみれば「業務用の高負荷のかかる映像処理は、Metal 対応のソフトで MacPro を使いなさいよ」ということなのだろう。

こういった明確なメッセージは、アップルらしいなあと思える。

 

 

HorliX カスタマイズ案件

HorliX は、AppStore から撤退を余儀なくされたわけだが、やはりというべきか、直接問い合わせ・カスタマイズが増えるようになってきた。
先日、某医療系団体からこんな問い合わせがあった。一部掲載。


メールにてもうちょっと詳細な技術的な回答をおこなったが、ここでも軽く解説しておくと…

シネマティックレンダリング→おそらく無理です。シネマティックレンダリングは、確か、複数の光源を設置し、その反射光をかなりのレベルまで計算させないと(有名メーカーがおこなっているようなレベルの)奇麗な画像は得られないと思います。現行のアルゴリズムを少々いじった程度ではでは難しい。

・・・と言ってたんですが、M1 + Metal のパフォーマンスがかなりのもので、シネマティックレンダリングまではいかなくても、かなりの画像が得られそうです。

試しに椎骨のポリゴンモデルを単一照明で3D描画させたんですが、リアルタイムで上のような画像が得られました。ちなみに私は Metal は初心者ですし、3DCGの lighting に関してもそんなに詳しくないので、そんなに凝った手法は使えないのですが、その割にけっこう綺麗な画像ではないでしょうか。
動画はこちらからどうぞ。

(ボクセルなどの)独自計算アノテーション→領域が確定したボクセルを数え上げるのは、さほど難しくない。問題は、数え上げたい領域をセグメントすることで、プラグイン作成の難易度は、領域を確定させるアルゴリズムによると思う。可能なものであれば前向きに取り組みたい。

こういう質疑応答はなんかいいですね。

ただ、基本的には従来版の HorliX のソースコードは公開しているわけだし、基本的にはプラグインの類は自分で作成してほしいと考えています。
理工系のトレーニングを受けていない医療関係者はしょうがないと思います。が、臨床工学技士や診療放射線技師など医療職でも技術よりの方はその素養がある程度あるわけですから、勉強だと思って取り組んでほしいなあと思います。

 

猪股弘明
医師:精神科(精神保健指定医

OpenGL to Metal 問題

Mac OS X では、次のバージョン(Mojave)から OpenGL が deprecated になるということで、推奨されている Metal 関係をさわってみる。

定番の Hello World を GPU を使って描画させてみる。

本当は、カラーで表示されないといけないんじゃ… と思わなくもないが、ビルドは通っているので一安心。

 

(追記)その後、コードを修正してカラーでも描画できるように修正。
GPU 利用ということでビビってましたが、どちらかといえば以前の windows 系API の描画手続きに近いかな。あれを GPU に直接委ねる感じといえば、ニュアンスは伝わるでしょうか。


参考:『Metal 入門』に簡単なサンプルプログラム載せておきましたので、ご興味のある方は覗いてみてください。

Playground でワンファイルで実行できるので、何やってるかわかりやすいと思います。

参考2:Metal では SIMD 命令がよく出てくるが、これが何者なのかは Arm のアーキテクチャまである程度まで理解を深める必要がありそう。
『Mac で学ぶ Arm アーキテクチャ』シリーズ(PHORLIX BLOG)でその辺まで解説する予定です。
現在、公開しているのは
Mac で学ぶ Arm アーキテクチャ 1-1
Mac で学ぶ Arm アーキテクチャ 1-2
です。


さらに頑張って、(まだ全てのモダリティに対応しているわけではないが)なんとかダイコム(DICOM)も読めるようにした。WL/WW のコントラスト調整はかけてないから、衣服やベッドまで見えてますが(笑)。

app から起動してもかなり、というか超絶速い。

これ、早送りとかしてません。

 

でも、OpenGL というかなり広汎に使われている技術からまだあまり知られていないフレームワークへの突然の移行ってなんか違和感ある。(アップルはよくこういうことをやるらしいのだが)

OsiriX の windows 版移植って誰もが考えることなんだけど、これは OpenGL 使ってこそのこと。各種ライブラリも Metal 対応を検討しているらしいが、すぐに実現できるとは思えない。アップルが Metal 以外認めないということになったら、windows 移植はかなり遠ざかる。

さて、どうなりますか。

 

(追記2)M1 Mac の評判がよく、さらに Metal を用いると画像処理まわりのパフォーマンスの向上が期待できることから、ちょっと慌ただしくなってきた感じです。

私も簡単な3D描画のテストプログラムつくってみました。

Metal 発表当初は懐疑的でしたが、これは移行しないといけないようです。

 

猪股弘明
HorliX, OpenDolphin-2.7m 開発者