ほしぞloveログ

天体観測始めました。

タグ:python

一連の皆既月食記事の8本目。いい加減にそろそろ終わりにするつもりです。前回の記事はこちらから。



Hough変換

今回はHough変換を使ったサークル抽出で、月食中の月の位置合わせに挑戦です。FS-60CBで撮影した4時間分の広角の画像から月が画面中心に来るように位置変換をします。その後、タイムラプス映像にしてみます。

Hough変換は画像の中から特徴的な形を抽出するアルゴリズムで、その中に円を抽出する関数があります。Hough変換は色々な環境で使えますが、今回はOpenCVで用意されている関数をPythonで使うことにしました。検索するとサンプルプログラムなどたくさん出てくるのと、今回は対処療法で組んでいったのの積み重ねなので、あまりに汚いコードで人様に見せれるようなものではないです。なので、どうパラメータを取ったかだけの説明にとどめることにします。

基本的にはあるフォルダにある、月が映っているたくさんのファイルを順次読み込み、カラー画像をグレースケールに変換して、HoughCircles関数を呼び出すだけです。Hough関数は以下のようにしました。

HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=1500, param1=30, param2=2, minRadius=350, maxRadius=400)

パラメータがいくつかありますが、少しだけコツを書いておきます。
  • HOUGH_GRADIENTとHOUGH_GRADIENT_ALTは両方試しましたが、ALT付きの方が誤検出が多かったのでALT無しの方にしました。
  • dpは1以下も試しましたが、位置精度に違いはあまりなかったです。大きな値にすると精度が悪くなりました。
  • 円を複数検出するわけではないので、minDistは1000とかの相当大きな値にしておきます。
  • param1は最終的に50程度にしました。大きすぎたり小さすぎたり値では検出できなかったりしますが、位置精度にはあまり影響ないようです。
  • param2は位置精度に影響があるようです。大きすぎると精度が悪くなりますが、5以下くらいだと精度はこれ以上変わらないようです。
  • minRadiusとmaxRadiusは、月の大きさは一定なのでその半径を挟むような値を取ると効率が良いでしょう。

とりあえず結果を示します。


結局出た精度はこれくらいです。もうちょっとビシーっと止まってくれればいいのですが、まだちょこちょこズレています。

実は精度を出そうとして色々試してみてます。Hough変換のパラメータをいじるのはもちろんなのですが、大きなものは
  • グレー化後に、あらためて画像の2値化
  • グレー化後に、あらためて輝度やコントラストをいじる
  • Adobe Premiereのブレ補正
  • 一旦Hough変換でラフに位置合わせして、少し大きめに切り抜いて、再度Hough変換
くらいでしょうか。でも結局どの方法も精度を劇的に上げることはできませんでした。Hough変換で目で見てもおかしいズレがあるので、そこだけでもずれが直ったらと思ったのですが、やはりダメなものはダメで、どうも苦手な画像があるようです。

今回はFS-60CBで広角で撮ったものから抜き出しているので、解像度が良くないこと。さらに動画の中から最初の1枚だけを抜き出しているので、大気揺らぎなどで多少のブレがあります。もしかしたらスタックをすると平均化されるので、細かいブレは少なくなるのかもしれません。スタックしてから、Hough変換ではなく、特徴点を抜き出して合わせるとかいう処理をした方が精度が出るかも知れませんが、ちょっと力尽きたので、今回はここまでにします。

ついでに同じ位置合わせの手法で、いくつか画像を抜き出して天王星の潜入画像をつくってみました。位置合わせ後、比較明合成しただけです。これくらいの精度ではそこそこ合って見えるんですけど、やはり長時間のタイムラプスだときついかもです。

uraus_in

まとめ

今回の皆既月食に関する記事はこれで一旦終わりにします。

撮影後、1ヶ月以上にわたって楽しむことができてかなり満足しました。その一方、そろそろ月も飽きてきました。ただ、まだ未処理ファイルが大量にあるので、気が向いたらもう少し追加で書くかもしれません。

先の記事でも書きましたが、今回は月食に関してはかなり満足して撮影できました。大きな課題は地球本影を位置補正することなく撮影することですが、次回月食ではこれ一本に絞ることにするかもしれません。

ここ数日、BlurXTerminatorがすごいことになっています。次は少しこちらの方に時間を費やそうかと思います。












まだまだ自分の中では皆既月食マイブーム状態です。今回は地球の影が止まるような位置をどう計算するかの一連の記事の、少し脱線するような記事になります。


「ほんのり光芒」さんとのコラボ? 

前回の記事でコメントをいただいた「ほんのり光芒」のみゃおさんがブログ記事の方で、地球本影の固定に関してかなり細かい検討をされています。


上記ページからリンクを辿れますが、かなり以前から考えられていたようで、私のようなにわか月食撮影とは歴史が全然違います。天リフさんのピックアップにも取り上げられていて、ほしぞloveログとのちょっとしたコラボのような様相を呈しています。




視野ズレの計算プログラム

前回までで、地球の自転による観測者の位置変化で視野に大きなずれができて、地球の影の形がひしゃげることを、多少定量的に見積もってみました。


大まかな見積もりと、実際にどれくらいずれるかは、少なくともオーダーレベルでは一致しているようなので、今回はもう少し精度良く計算できないかを考えてみます。といっても、自分だけで考えるのはそろそろ限界で、Webで少し検索してみました。すると老猫こてつさんという方が各種軌道計算などされて、その中で求めていた月の視野位置のずれそのものをpythonで計算してくれていることがわかりました。


プログラムのソースを公開してくれているので、そのまま計算することができ、とても助かります。ただし、それら計算式をどう求めているのかの記述はないので、そのプログラムの出典を調べるためにブログの過去記事を読んでいくと、どうやら中野主一さんの昔のBASICのコードをpythonに置き換えてくれているようです。


参考書籍

中野主一さんといえば、最近では小説「星になりたかった君と」で「長野秀一」という名前で出てきた重要な役割を担う老人のモデルとなった方。おそらく昔の天文少年にとっては憧れのアマチュア天文家で、多くの天文雑誌で連載をもち、アマチュアながら元国立天文台長の古在由秀先生から計算を依頼されるなど、軌道計算の大家です。私はその当時マイコン少年でしたが、大人になって天文を始めてから、昔使っていたマイコンで実用的な天体計算をしていたことを知って、とても感動したことを覚えています。実は中野主一さん、星を初めて少しした2018年に一度お会いして、お話しさせていただいたことがあります。私はかなり緊張していたのですが、気さくにお話ししていただきました。講演も聞かせてもらったのですが、当時どう計算を進めていたか、プロから依頼された当時の様子などのお話で、ユーモアたっぷりの講演で今でも心に残っています。

そんなわけで早速、サイトに載っていた参考文献を注文しました。長沢先生の「天体の位置計算」は以前から持っていたもので、まだ普通に販売されているようですが、他の3冊は流石に古本でかろうじて見つかるくらいでした。
72AF0666-ACA0-4136-8D0B-6D5DB7F44CF5

その中で一番古い「マイコン宇宙講座」は昭和55年の初出のもので、月の計算そのものの章があり、式の解説もあったので理解しやすかったです。

「マイコンが解く天体の謎」は昭和57年出版で、使われている言語はなんとF-BASICですよ。内容はプラネタリウムのようなものを実現することが中心ですが、実は私、中1の時にFM-NEW7を中古で買って、しゃぶり尽くした口です。その数年前に出た本のようなので、恐らくFM-7が出た時で、実際にはFM-8で組まれた時代のプログラムですね。

一番新しい「天体の軌道計算」は1992年なので、前の2さつからはかなり経っていて、プログラムも複雑になり、さらに精度を求めているような内容になっています。

とりあえずは、月の視野ズレの計算方法が載っている「マイコン宇宙講座」をもとに、老猫こてつさんのpythonコードを使わせていただいて計算を進めようと思います。

ただしこれはまだ、「月」の視野ズレを追いかけるプログラムで、一番求めたい月食中の「地球の本影」を追うものではありません。でもこれらの計算の延長上に、それもそう遠くないところに地球本影を求めることができるのではと期待しています。


赤道儀の制御

あともう一つ、仮に地球本影の視野ズレも含んだ位置を計算できたとして、それをどう赤道儀に伝えるかですが、彗星を追うメカトーフ法というのが応用できるかもしれません。ただし、地球の本影を追うというようなものは見つからなかったので、実際にどういう方法で赤道儀に伝えるのか、どういうデータ形式なのか、地球本影に応用できるかなど、もう少し調べる必要があります。

ガイドソフトのPHD2にもメカトーフに相当するような機能があるらしいのですが、どうも1次の傾きでガイド信号に補正信号を加えていくようなものらしいです。視野ズレのような複雑な動きはできないかもしれませんが、1次補正だけでも近似的にそこそこ地球の影の形はうまく出るのではと思います。もしくは撮影途中で何度か係数を変えるかとかでしょうか。


今後

視野ズレの計算方法や赤道儀の制御など、まだ直接ではないですが答えにつながりそうな幾つかの見通しは出てきました。次回の日本での地球本影が見える月食は2023年10月23日の部分月食だそうです。1年近くあるので、じっくり準備したいと思います。


 
 
 
 
 
 
 
 

このページのトップヘ