著書・訳書(日本語)
日本語ドキュメント 内部リンク
日本語ドキュメント 外部リンク
日本語チュートリアルなど
動的輪郭法(Active contour)というアルゴリズムは便利でなかなかおもしろいのであるが、応用範囲があまりないからかマイナーな分節化アルゴリズムの一つである。さっきまったく別のことで検索していたら、たまたまこんなYahoo知恵袋の質問と解答に行き当たった。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12318043457
で、回答者が「Oval ROIを使って手で測れ」といっている。まあそうなのだが、質問者の意図はもっと自動的に(つまり客観的に)やりたいということなので、あまりよい回答ではないなあ、と思った(私自身はYahooに回答したことがないので僭越ではあるのだが)。FijiにはPlugins>Segmentation>LevelSetという昔からあるプラグインが同梱されていて、この機能の一部が動的輪郭法である。これは、仮想上の輪ゴムを伸ばしたり縮めたりしながら形にフィットさせる、という手法で、輪ゴムの張力を上げ下げすることでどのような輪郭を分節化したいか、調整することができる。ふにゃふにゃな形にピッタリフィットするようにするには張力を上げればよいし、ふにゃふにゃなかたちにフィットしないでもなめらかな輪郭を得たいならば輪ゴムの張力を上げる。単純にはこのようなことで、実際にはなにをもって形とするかパラメータ設定がややこしくなったりする(はっきりした形ならラクだが、境界が曖昧だと工夫するひつようがある)。
上のCの形状の内径であれば、境界がくっきりしているのでまさに動的輪郭法の出どころである。円をフットさせる、ということだ。ちょっとやってみたらすぐにできた。
時間がないのに思わずやってみてしまった…
あと実はハフ変換という手法もあって、これでも円の検出が一瞬でできるので、たぶん内径と外径を同時にはかることができるだろう。これは、プラグインを入れないといけないので、面倒なので試していない。
むむ。単に数理形態演算でやればいいんじゃねーか。というわけで、Plugins>MorphoLibJ>Filtering>Morphological Filtersで、閉鎖処理をしてみたら、ばっちり可能であった。
話を元に戻すと、LevelSetのプラグインはErwinという人が実装したプラグインで、2008年頃、EMBLでやったハッカソンにきてコードの最後の部分を書いていた。なにか、なつかしい感じである。チュートリアルとかないし、fast marching(wand toolの精密版)とかも一緒になっていてわかりにくいUIになってしまっている。あと、Previewができるようにするといいわなー、とか思うけど、私は手を出す暇がないな。これこそ、vibe codingで効率的にアップグレードできる感じのプロジェクトである。
来月10月の最後の週に神戸の理研で開催されるGloBIAS2025は、さまざまなイベントが組み合わさった生物画像解析を巡るマルチプレックスなカンファレンスです。
前半4日間に並行して開催される3つのイベント、トレーニングスクールは40名強の参加者、2種類のハッカソン参加登録者は総勢40名程度、タガソンは10名ほどの登録者で、これらの参加者はほぼ全員、後半3日間のシンポジウムに揃って参加します。目下、シンポジウムだけの参加者を合わせると総参加者数は160名ほどで、まさに世界各国からの参加が見込まれています。日本、欧米、オーストラリアが中心ですが、韓国、台湾、中国からも多くが参加し、さらに遠方の南米やアフリカからも合わせて10人近くが参加する予定です。特に、アフリカなど途上国からの参加者はなんと、JICAの支援を得ることができました。前半のイベントの参加登録はすでに締め切っているのですが、シンポジウムのみの参加は、締切が数日後の9/15なので、ぜひご登録、ないし、まわりに生物画像解析に興味のあるかたがいたら、知らせてみてください。
登録は以下のカンファレンスのサイトにリンクがあるGoogle Formから行えます。
https://bit.ly/GloBIAS2025-Kobe
なお、シンポジウムに登録すると、前半4日間のハッカソンやタガソンにも参加できるので、これらのイベントに興味のある方もぜひ、詳しい情報をカンファレンスのサイトで読んでみてください。ハッカソンは1つ目はBIAFLOWS、BIOMERO、SSBDといったオンラインの生物画像解析リソースのインタオペラビリティや協働性を高める開発が中心(雑駁には画像クラウド解析と画像データベース、が鍵概念になるでしょう)、2つ目はnapariのコアモジュールの開発です。後者は開発リードのJuan Nunez-Iglesiasさん(有名人)がオーガナイズしています。いずれもすごい人達が来るのだ… タガソンは、有り余るほどある生物画像解析のツールやワークフローを整理、テストしてデータベース化する、という作業セッションです。というと地味に聞こえるかもしれませんが、ディスカッションや、講演などもあるので(たとえばMorpholibJの開発者である数理形態学画像処理の猛者、David Leglandさんがなんと1時間喋ってくれます)、開発者ではなく解析者として作業を行いたい、情報交換をしたい、という方にはおすすめです。
今年の春に出版した羊土社の「型で学ぶ生物画像解析」をご存知の方は、編著者の塚田さん(慶応)、大浪さん(理研)、京田さん(理研)、遠里さん(立命館)、河合さん(東大)、菅原さん(理研)、平塚さん(大阪国際がんセンター)がシンポジウムに参加するので、直接御本人たちと話せます。
さて、引き続き宣伝です。今年の5月にカンファレンスで行われるいろいろな形式の情報交換の企画を概観したのですが(https://bit.ly/GloBIAS2025-Kobe-BlogpostJP)、ここでは特にシンポジウムのセッション、call4helpの宣伝をします。“call4help”とは、「助けを求める!」の意味で、生物画像解析をしたいのだが、どうやってやったらいいのかわからない、あるいは、一応ある程度までうまくいったのだが、ここを改善したい、もっといい方法はないか、といった質問に雁首揃えた専門家たちがこうしたらよいのではないか、とアドバイスをするセッションです。2016年にリスボンで開催されたNEUBIASの年会から始まった企画で、スイス工科大学のSimon Norrelykkeさん(今はハーバードメディカル・スクール)とSzymon Stomaさんが企画の発案者です。せっかくこれだけ生物画像解析の専門家が揃っているのだから、ライブで問題解決をするセッションがあってもよいのではないか、ということで始まりました。call4helpは、Szymonが運営している専用のウェブサイトがあるので、そちらにこれまでの「質問」のスライドなどを観ることができます。簡単な質問も困難な質問も、いろいろごった煮です。
https://call4help.let-your-data-speak.com/
具体的には質問者が登壇し、何枚かのスライドで課題をみなの前で説明します。この説明は数分から長くても10分、それ眺めた100人から200人の観客がてんでに挙手し、「こうしたらよいのではないか」というアドバイスを行います。生物画像解析の専門家といっても、その得意とする分野はさまざまなので、たてつづけにもたらされるアドバイスもさまざまな角度からのものになります。「生物画像解析の専門家」の前歴は多用です。情報系の出身の人の中にもアルゴリズム開発の人や、システム開発の人がいる。生物系の人でも、分子生物学、生物情報学生物物理学など、得意とする背景は多用です。ほかにも顕微鏡の技術者、信号処理の工学者(中でもガチの画像処理)、応用数学者も無視できない数が「生物画像解析者」になっています。NEUBIASや、来月行われる神戸でのGloBIASの初のフルの年会には、出こうした多用な背景を持つ人たちに加え、トレーニングスクールにやってくる生物学ど真ん中の研究者たちもいます。こうしたことから、まさに多用なアドバイスが登場することになります。面白いのは、こうしたいろいろな角度からのアドバイスは、質問者だけでなく、観客(兼、回答者)のみなも「おお、そんな考え方、やりかたがあったのか」と、学んだり刺激を受けることが多く、それゆえ、議論が観客同士に移動したりして大変盛り上がったりします。以上のような理由で、call4helpで質問をすることを主な目的に参加されるのもよいのではないでしょうか(眺めるだけでもおもしろいと思います)。大いに歓迎します。シンポジウム参加登録後に、上のcall4helpのウェブページにあるサブミッションフォームで、質問を受け付けています。
今回は、スイスのベルン大学のAna Stojiljkovicさんと慶応大学の塚田祐基さんがセッションのオーガナイズをします。call4helpの創始者、Szymon Stomaはシニアアドバイザーとして同席します。
プログラムはほぼ完成しており、シンポジウムの登壇者とトークのタイトルは以下で公開しています。
https://docs.google.com/spreadsheets/d/1O_LUEHDqvo_F_qbUlBVTquKPp_L3aT0Dy-gq_OlX9Bs/edit?gid=0#gid=0
というわけで、登録締め切りまであとわずか、ふるってご参加ください。
最後になりますが、この開催の発端から準備まで、理研の大浪研には全面的に関わってもらっています。どうもありがとうございます…
欧州で2016年以来盛り上がってきた生物画像解析のネットーワークがNEUBIASですが、その後、パンデミックを挟んで「世界に広げよう」ということになり、2024年秋にGloBIAS(Global Bioimage Analysts' Society)が正式に発足しました。NEUBIASは純粋なネットワークで組織としての公的な登録はありませんでした。これでは成長と拡大には限界がある、ということになり学会を作るにいたったのです。さて、そのキックオフの最初の小さなミーティングは2024年秋にスウェーデンで行ったのですが、今年は神戸で数百人程度の大きなミーティングを行う予定です。このミーティングはNEUBIASの会議の形式を踏襲して、いろいろなスタイルのイベントが組み合わさったマルチプレックスなミーティングになっています。
https://bit.ly/GloBIAS2025-Kobe
これらのイベントについて少し解説します。
2025年10月26日から31日までの会議は前半と後半に別れています。場所は神戸のポートアイランドにある理研BDR。前半(26-29)は講習会、ハッカソン、タガソンが並行して開催されます。後半(29-31)はトーク中心のシンポジウムです。講習会に登録すると、後半のシンポジウムにも自動的に登録されます。講習会の人数は限定的なので、通常は後半のシンポジウムだけの登録になります。この場合、前半のハッカソンやタガソンに任意で参加することが可能です(強制ではありません)。
講習会 (Training School):Python-napariを使った講習会になります。napariの開発チームがハッカソンをしている隣で(下記参照)、そのnapariを中心に使った講習会が行われるので、開発の中心人物が直接解説を講習会で行うことも含まれる予定です。
ハッカソン (Hackathon):2つのグループがあります。これらへの参加にはそれなりのプログラミングの知識が必要です。 1) BIAFLOWとOmero-SSBDを繋げるうロジェクト 2) napariの開発プロジェクト(napariのコアチームが集結)
タガソン (Taggathon):数年ぶりの開催になるので、その間に登場したさまざまな生物画像解析のツールやライブラリをBIII(https://biii.eu/)整理することが活動の中心になります。タガソンにプログラミングの知識は必要ありませんが、生物画像解析に関してある程度知識があることが求められます。
ハッカソンとタガソンは自由に往来可能ですが、講習会の参加者は全日講習会なので、ハッカソンやタガソンには時間的に参加できません。
シンポジウム (Symposium):通常の学会のように招待のトークと、投稿アブストラクトの一部のトーク、及びポスターが中心ですが、Open Source Software Lounge (OSSL)という、生物画像解析のさまざまなオープンソースのツールの開発者がラップトップを持ち込んで参加者と自由に交流する企画や、参加者が課題を持ち込んでその場で他の参加者(猛者多数)たちに解決のアドバイスを貰うcall4helpといったほかでは見られない企画も同時開催します。また、パネルディスカッション形式での壇上での座談会も行います。
招待講演の対象は、ディープラーニングと画像解析、というテーマを中心に招待を行う感じになりそうです(最終的なリストはまだ決定していません)。ディープラーニングはもちろん、分節化の超有力な手法としてすでに画像解析で普通に使われているのですが、これからはさらに一歩進んで、システムの分析に使われることが普通になってゆくでしょう。「生物画像解析」なので画像ではあるのですが、人間が一瞥してなにかを知る、というような形式ではなく、解析をしてはじめてなにが起きているのかがわかる、という複雑な多次元データです。この解析には機械学習を援用してその複雑さを紐解く、という方法が最先端の方法であり、まだはじまったばかりのその新しい世界を垣間見よう、という内容になりそうです。
さて、というわけで、NEUBIASで恒例化したこうしたマルチプレックスな会議をヨーロッパの外でやるのは初の試みなのですが、理研の大浪研の方々を中心とするチームが大活躍でとても頑張ってくれていて開催準備は順調にすすんでおり、登録者の数は今のところ順調に伸びています。とはいえ、目下、日本国外からの登録が殆どで、日本国内からの登録がとても少なく(まじで少ない。。。)、日本で行う生物画像解析のイベントなのでちと残念に思っています。私も関わっている東アジアの生物画像解析ネットワークEABIAS(eabias.github.io) の発表などもあるので、この機会にメンバーと知り合い、加入することもできます。
登録締切は6/15です。というわけで、この投稿を見た方はぜひとも周囲の生物画像解析に関心の有りそうなかたにお知らせください。 https://bit.ly/GloBIAS2025-Kobe
[6/23 追記] 6/15以降もシンポジウムのみ(ポスターを含める)の参加は引き続き募集中です。この登録にはTaggathonやHackathonへの参加を希望する方も対象なので、希望者は登録の際に参加希望を選択してください。トレーニングスクールへの参加、口頭発表の参加は締め切りました。また、以降は支払いは登録と同時に行う必要があります。
編集と執筆を行った「型で実践する生物画像解析 ImageJ・Python・napari」が2025年3月に羊土社から出版されました。塚田さんとの共同編集はこれで3冊目になります。内容は中級者向けを目指していますが、Pythonに関しては初心者でも内容を習得できるような構成になっています。書店でみかけたらぜひ手に取ってご覧ください。
目次を以下、紹介します。
基礎編
実践編
論文投稿編
発展編
付録
MacBook Air (M1)でCLIJを使ったベンチマークをメモ。速度はCPUに比較して20倍から35倍の処理速度になる。 ベンチマークは開発のレポジトリにあるマクロをそのまま使った。三次元の平均フィルタ処理。自分で畳み込みのカーネルを作った場合には、差はあまりないが、二倍程度、早くなる。
https://github.com/clij/clij2-docs/blob/master/src/main/macro/benchmarking.ijm
CPU mean filter no 1 took 2687 msec CPU mean filter no 2 took 1759 msec CPU mean filter no 3 took 1959 msec CPU mean filter no 4 took 2253 msec CPU mean filter no 5 took 2557 msec CPU mean filter no 6 took 3406 msec CPU mean filter no 7 took 3526 msec CPU mean filter no 8 took 3722 msec CPU mean filter no 9 took 3520 msec CPU mean filter no 10 took 3419 msec Pushing one image to the GPU took 56 msec CLIJ2 GPU mean filter no 1 took 740 msec CLIJ2 GPU mean filter no 2 took 92 msec CLIJ2 GPU mean filter no 3 took 90 msec CLIJ2 GPU mean filter no 4 took 90 msec CLIJ2 GPU mean filter no 5 took 92 msec CLIJ2 GPU mean filter no 6 took 89 msec CLIJ2 GPU mean filter no 7 took 91 msec CLIJ2 GPU mean filter no 8 took 93 msec CLIJ2 GPU mean filter no 9 took 99 msec CLIJ2 GPU mean filter no 10 took 92 msec Preparing the convolution kernel in GPU memory took 43 msec CLIJ2 GPU mean filter using convolution no 1 took 1500 msec CLIJ2 GPU mean filter using convolution no 2 took 1471 msec CLIJ2 GPU mean filter using convolution no 3 took 1620 msec CLIJ2 GPU mean filter using convolution no 4 took 1551 msec CLIJ2 GPU mean filter using convolution no 5 took 1546 msec CLIJ2 GPU mean filter using convolution no 6 took 1588 msec CLIJ2 GPU mean filter using convolution no 7 took 1475 msec CLIJ2 GPU mean filter using convolution no 8 took 1489 msec CLIJ2 GPU mean filter using convolution no 9 took 1446 msec CLIJ2 GPU mean filter using convolution no 10 took 1551 msec CLIJ GPU mean filter no 1 took 1308 msec CLIJ GPU mean filter no 2 took 106 msec CLIJ GPU mean filter no 3 took 99 msec CLIJ GPU mean filter no 4 took 97 msec CLIJ GPU mean filter no 5 took 100 msec CLIJ GPU mean filter no 6 took 96 msec CLIJ GPU mean filter no 7 took 140 msec CLIJ GPU mean filter no 8 took 116 msec CLIJ GPU mean filter no 9 took 96 msec CLIJ GPU mean filter no 10 took 99 msec Pulling one image from the GPU took 2148 msec GPU: Apple M1 Memory in GB: 16 OpenCL version: 1.2