CANP2023 お疲れ様でした

この記事は約8分で読めます。

ご無沙汰しております。ソフトウェア開発部のつのだです。しばらくブログを書かずに逃げ回っていたらそろそろ書けという圧が強くなってきたので、久々のお出かけをまとめる形で許してもらいました。

CANPとは CCD Astronomy Network が開催する年に一度開催される情報交換イベントで、デジタル機器で天体写真を撮影する様々な分野の方々が一堂に会し、天体撮影という共通の土台で問題を共有し、様々な手法が確立されてきた歴史あるイベントです。

CANPは私自身、CANP2019以来2回目となる参加でした(CANP2022は申し込みが間に合わず)。天体撮影について様々な分野の方々が集まり、問題を共有し、解決する術を求めて分野の垣根をこえて意見交換をしていく、そんな最先端の熱い創造の2日間であったと感じました。
私自身、常に「何か役に立てることはないか」を考え続ける2日間だったため、長距離の移動も相まって疲れ果ててしまいましたが、非常に充実した週末でした。

運営の皆さまには大変お世話になりました。
今回、発表者の皆さまの熱意ある様々な視点での発表を伺うことができ、私自身より一層励んでいかなければと思いを新たにしました。
そして、現地・リモート参加のCAN会員の皆さま、弊社上司の発表の枠を一部譲り受ける形となりました私の拙い発表を温かく見守っていただき、ありがとうございました。

短時間ではあまり深いところまでお話しすることができなかったため、本ブログ記事で現在考えている内容の一部を紹介させていただきたいと思います(製品化の際に仕様が変更される場合がありますので、その点ご了承ください)。

ステライメージ+Pythonでどんなことができるようになるの?

弊社の発表の最後、現在開発を進めているステライメージのPython対応について報告をさせていただきました。
時間が限られていたため、わずかなデモしかお見せできませんでしたが、まだまだ継続して作り込んでいる最中ですので、本ブログなどで少しずつ進捗報告ができればと思っております。

今の所、次のようなものの開発を進めております。

  • スクリプト処理をバッチ適用する(CANP2023にてデモ)
  • インタプリタによる画像処理のステップ実行(同・一部デモ)
  • コンポジットフローの記述
  • カスタムUIの作成
  • アプリケーション操作
  • スクリプト共有ライブラリ

それぞれ色々と解説したいところですが、書き上げるのに時間がかかるとCANP感想記事の鮮度が下がってしまいますので、より詳しい内容の紹介はまた別の機会にさせていただきます。

デモスクリプト公開

CANP2023で行ったものと同一のデモ
画像を複製し、一方にスクリプトを適用。その後、ブリンク表示で適用前・適用後を比較

早速ですが、デモで使用したスクリプトを公開いたします。

デモで使用したスクリプトはこちら。
https://gist.github.com/tail-feather/a5228371cf1466e6c81db62a8d0132af

まず注意点として、本処理は厳密な理論に基づいたものではなく、デモンストレーション用の処理であり、汎用的な画像加工に耐えるものではないことをご了承ください。

本処理を作るにあたっての要求事項は以下の2点です。

  • 絵的にある程度明確な変化が現れること
  • 計算量の比較的大きめな処理になること

前者はプレゼンテーション上の見栄えの問題なので、それに関係するパラメータ周り(curve関数)は乱暴に決めており、実装に特に深い意味はありません。

後者についてはデジタル一眼カメラの撮影画像全面を処理して、既存の画像処理と遜色のない処理時間で結果が得られるかを確認する目的のもと作成しました。
恥ずかしながらCANP会場へ向かう高速道路を走行中の車内の助手席で会話をしながら正味30分程で組んだ雑な処理のため、処理が厳密に正確であるかは未検証であることをご了承ください。

左:オリジナル画像、右:スクリプト適用結果
オリジナル画像では背景の赤みを帯びたノイズが見られるが、スクリプト適用後は灰色のノイズになり、背景が落ち着いて見える

本処理の基本方針は「背景のカラーノイズの彩度を落としつつ、星雲の鮮やかな色合いは残す」です。
具体的な処理の流れは、

  • 画素の輝度情報を求め、
  • 輝度が暗いものに対しては彩度を強く落とし、一方で輝度の明るいものほど彩度をそのままにする

となります。

本処理を適用すると、6240×4160サイズの画像に対して約6秒程で処理が完了しました。
スクリプトを呼び出し、結果をアプリケーションに戻す上で、いくつかオーバーヘッドが生じるため単純な比較はできませんが、この処理時間は既存処理である「マルチバンド・シャープ」などの多段構成の(画像全体への処理を複数回実行する)画像処理と同規模の処理時間であり、処理内部で複数回画像全面の処理を行っていることを踏まえると、既存の画像処理と遜色のない速度で画像処理が行われていることが確認できます。

どうして Python なの?

Python はインタプリタ型の言語で、アプリケーションを操作する組み込み言語として様々な分野で用いられている実績があります。

特に Python を使う最大の強みは世界中のコミュニティの開発リソースが投入されたライブラリ群にあると思います。そのライブラリ群は世界中で数多くの開発者によって継続的に開発されてきた偉大な資源であり、それらを用いる行いは「巨人の肩に立つ」という成句に尽きるといえるでしょう。

Pythonと聞くと、どこか研究者が使うツールという印象を覚える方がいるかもしれません。実際はそんなことはなくて、文系・理系を問わず容易に扱うことのできる平易な言語であると私は思っています。

私はもともと地理空間系のエンジニアをしていたのですが、コンピュータで地図を編集するQGISというアプリケーションではPythonを使用してプラグインを記述することができます。そのプラグインを文系を名乗る方が開発されている姿を見て、初心者からプロフェッショナルまで万人に開かれたインターフェイスの可能性を感じた記憶があります。

画像処理は誰のもの?

『数学ガール』という書籍に「例示は理解の試金石」という言葉が出てきます。
この言葉は私が新しいことに向き合う際の指針としている言葉なのですが、全体像の掴めないものを前にした時、まず手近なところから試してみると、そこを取っ掛かりにして思いの外すんなりと理解が進んでいく不思議なことが起こります。

計算機による画像処理は長い歴史を経て、ある種ブラックボックスと化しており、作用を理解せずとも機能を試して回ることでそれなりの絵を作り込むことができます。

しかし、何らかの根源的な問題に直面した時、本質的な作用の理解を避けてその壁を乗り越えることはできません
複雑に組み合わされブラックボックスとなってしまった現在の画像処理手法には個人的に疑問を感じており、そういった問題の本質の理解を妨げる要素を可能な限り減らしたいと思っています。

ステライメージにPythonを組み込む目的の一つに、インタプリタ(逐次実行処理系)があります。
プログラムを一行一行実行できるインタプリタは「例示」に役立つ強力なツールとなります。

複雑な画像処理から処理を一部分だけ抜き出し、それが何をしているのかを試して、理解しながら次に進んでいくと、その画像処理が何をしたかったのか、加工しようとしていた画像のどこに問題が生じていたのかという本質が見えてきます
ブラックボックスだった画像処理を、自分の手に馴染んだ道具に変えることができるのです。

私が天文業界に感銘を受けていることの一つが「オープン性」にあります。
データや技術がオープンであるが故に、常に新たなものが生み出されていく、その先進性に希望を見出しています。
ステライメージの次期バージョンでは可能な限り画像処理のロジックはオープンな状態を保ち、繰り返し使われる基本的な処理や速度が求められる特殊な処理をAPIの形で公開することを個人的に目指しています。

ステライメージは画像処理の初心者からプロフェッショナルまで非常に幅広い層のお客様にお使いいただいております。
スクリプトで書かれた画像処理をワンクリックで呼び出せるスクリプト共有ライブラリ機能によって、初心者でもプロフェッショナルが考案した新たな画像処理を手軽に使えるようにしつつ、いつでもスクリプトを覗いてプロフェッショナルへの道を一歩踏み出せる、そんな新たな画像処理プラットフォームを目指したいと思っています。

CANPのこれまでとこれから

CANPの歴史と画像処理手法の歴史の関係は非常に深いと感じています。先人の知恵の結晶を単純に過去のものと侮ることはできません。その当時の人々が何をしたかったのかを考えてみると、その本質は案外今現在とそんなに変わりがないことに気付かされます。
問題は解決されてこそ知恵となります。どのように解決したのか、これからどのように解決したいのか、そういった悩みを中心とした議論が交わされ、解決に向けて動き出す場がCANPなのだと私は希望を覚えました。

今回のテーマ「天体写真撮影変わるモノ、変らないコト」天体写真撮影の本質とは何かを問いかける面白いテーマと感じました。様々な分野・世代の集まるCANPで交わされる、多様な未知の問題を、他人事ではなく我が事のように考えてみると、この先、何ができたら幸せなのかに思いを馳せることができ、非常に心躍る2日間を過ごすことができました。
運営の皆さまに重ねて感謝申し上げます。ありがとうございました。そして大変にお疲れ様でした。

私もCAN会員の皆さんの先へと歩み続ける姿勢を見習い、今後も弛まず天文業界に貢献できるよう努力を続けて参ります。今後ともよろしくお願いいたします。

タイトルとURLをコピーしました