自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我,爆肝17天用600行代碼拍到400公里之外的國際空間站

開發(fā) 新聞
說干就干,這位“業(yè)余程序員”當即爆肝17天,搞出了一套自動跟蹤系統(tǒng)。

本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

如何在400公里開外,拍攝這樣一張空間站照片?

作為太空中最大人造物體,國際空間站一直是無數(shù)天文愛好者心中夢寐以求的拍攝對象。

而大多數(shù)人采用的方法,是根據(jù)自己所在的經(jīng)緯度,算好空間站過境的時間(幾秒到幾分鐘不等),然后配合手機或微單進行拍攝,然后啪——得到這樣一張小光點:

稍微進階一點的,則會采用“凌日凌月”拍攝法,即在空間站飛過太陽或者月亮之前,以這兩個天體為背景源,確定一個范圍更小的區(qū)域。

然后等在中心線上,把持著幾公斤到幾十公斤重的大口徑、長焦距望遠鏡進行長時間的穩(wěn)定跟蹤,直到空間站過月或過日的1秒之內(nèi),按下快門拍攝。

這種拍攝效果會更加清晰,但致命的問題仍然存在:

空間站平均每90分鐘就能繞地球一圈。用知名的星空觀測模擬工具Stellarium對比一下,相比空間站,金星和火星簡直如同“靜物”(實時模擬,沒有加速):

簡言之,就是空間站跑得太快了。

因此,不僅1秒內(nèi)拍攝的幀數(shù)有限(無法用多幀疊加克服大氣抖動)、只能拍到輪廓剪影,甚至很可能因為計算錯誤而錯過拍攝的機會。

要是還想拍出更高精度的照片,不僅得有非比尋常的耐心,還要有深厚老練的手動操控技術(shù)。

例如一旦遇到大風,拍出來的效果就容易“糊成一團”:

?
△圖源王卓驍,已授權(quán)

于是這時,有人就靈光一動:

沒有麒麟臂,用代碼讓望遠鏡自己動起來不就好了?

說干就干,這位“業(yè)余程序員”當即爆肝17天,搞出了一套自動跟蹤系統(tǒng)。

在這套自動跟蹤系統(tǒng)的加持下,望遠鏡不再是只能在特定幾秒鐘拍攝幾張靜態(tài)圖像,而是持續(xù)不斷地跟了空間站2分鐘。

最終,多張圖像疊加和后期處理,便合成了一張高精度的立體GIF圖像:

(也就是我們開頭的那張圖)

就是這么一張圖像,讓網(wǎng)友發(fā)出了“直接開啟人造天體跟蹤攝影的時代”的感嘆。

于是,我們找到這位開發(fā)者本人,北大天文校友、天體物理博士劉博洋聊了聊。

拍攝高精度空間站,到底難在哪?

首先,需要簡單了解一下拍攝空間站的“時機”。

雖然空間站移動速度極快,平均每90分鐘就能繞地球一圈,而且高度平均距離地球也就400公里左右,屬于肉眼可見的范圍,但我們并不能隨時觀測到它。

主要有兩個限制條件:視野范圍和觀測時間。

視野范圍指空間站飛到我們視野可見的范圍內(nèi),也就是恰好“過境”這段時間;

觀測時間指我們能觀測到空間站的時機。空間站自身不會發(fā)光,只有在每天日落后兩小時、或日出前兩小時以內(nèi),空間站反射的太陽光最亮,才最適合拍攝。

只有這兩個條件同時滿足,我們才有機會在地面觀測并拍攝到空間站,但效果也還受天氣等因素影響(如圖中就是遇到了多云天氣):

△圖源朱一靜&徐成城,已授權(quán)

然而,目前已有的幾種常見天體拍攝方法,對于拍攝更高精度的空間站照片,其實都不適合。

第一種方法,是直接通過“手搖”望遠鏡拍攝,也就是推著望遠鏡跟蹤天體。

這種方法有一個缺陷,沒辦法拍攝非常高清的空間站。由于拍攝時必須靠人工跟蹤,因此不能用長焦鏡頭直接找,否則就像是用顯微鏡去捕捉一只高速移動的螞蟻,空間站一不留神就消失在鏡頭外了。

第二種方法,是像“守株待兔”一樣,架好各種高清晰度的鏡頭和設(shè)備,在原地等待空間站“路過”。

這種方法不需要移動鏡頭,而是反過來等空間站自己“經(jīng)過”。但它又面臨一些新的問題,例如空間站“路過”的時間很短,有時候往往只有幾秒鐘的時間,很可能抓拍不到;即使抓拍到的鏡頭,由于無法調(diào)整角度等原因,效果也無法保證。

所以,為什么不用望遠鏡自帶的追蹤功能拍攝?

這個功能通常只適用于用于追蹤日月、行星、恒星等天體由于地球自轉(zhuǎn)而產(chǎn)生的東升西落,畢竟它們移動的速度不快,基本與地球自轉(zhuǎn)同步。但對于像空間站這種高速移動的天體,望遠鏡自己就追不上了。

因此,最終還是得靠程序輔助,來實現(xiàn)高精度空間站的跟蹤拍攝。

第三種方法,是利用軌道根數(shù)(即軌道參數(shù))跟蹤,也就是利用在各種天文網(wǎng)站上(如Heavens-Above等)找到的天體信息,來調(diào)整望遠鏡的跟蹤路徑,并進行手動修正:

目前,大部分天文愛好者都是通過這種方法實現(xiàn)跟蹤+微調(diào),網(wǎng)上也已經(jīng)有一些相對成熟的程序,例如這是用電動經(jīng)緯儀根據(jù)軌道參數(shù)跟蹤空間站的效果:

△圖源王卓驍,已授權(quán)

BUT,你永遠不知道這些天文網(wǎng)站更新到底及不及時。有時候空間站臨時調(diào)整了軌道、但網(wǎng)站沒有更新的話,你的程序也就失效了。

利用光學識別,誤差控制在4像素以內(nèi)

上述的所有問題,作為老天文迷的劉博洋不可能不懂。

他一開始的想法,是通過現(xiàn)有的一些軟件尋找鏡頭中的“光點”,基于光學識別方法對目標實施識別和跟蹤。

然而他在查找合適的程序時卻發(fā)現(xiàn),這些程序不是沒維護(連Windows版都太古早沒法用)、就是更新不及時且系統(tǒng)復雜,或者干脆就是閉源收費。

所以,劉博洋最終決定自己上手,寫一個光學識別的自動跟蹤腳本,手動找到空間站后基于PID控制跟蹤。

他的計劃一共分為兩步:

第一步,編寫程序?qū)崿F(xiàn)望遠鏡自動識別并跟蹤空間站,耗時5天完成。

值得一提的是,光學識別并不是劉博洋的“第一手選擇”。

他確實想過用參數(shù)+手動微調(diào)的方式進行跟蹤,包括用搖桿無級控制赤道儀轉(zhuǎn)速,以及用軌道根數(shù)進行粗跟、結(jié)合游戲手柄無級微調(diào)等,但試拍效果并不理想(微調(diào)時手不夠穩(wěn))。

于是,他基于PID控制原理,編寫了一種光學跟蹤的方法。這是一種非常經(jīng)典的控制算法,PID分別指比例、積分和微分單元,像讓2輪機器小車保持平衡,用的就是這種算法。

劉博洋之前并沒有學過這一知識,但是為了建立一個穩(wěn)定的自動控制系統(tǒng),他自然地引入了比例單元(P)和積分單元(I),以使系統(tǒng)的誤差減少。

劉博洋的望遠鏡分為視野較大的尋星鏡和視野較小的主鏡兩部分。這套算法的基本目標,就是根據(jù)當前空間站在尋星鏡中的位置,計算出它偏離主鏡視場的幅度,從而調(diào)整望遠鏡跟蹤速度,以改正存在的偏離,使空間站落到主鏡視場中。

利用這個程序,就能讓尋星鏡快速跟隨移動的空間站“光源”,使得空間站總是保持在視野中央。劉博洋試著用激光筆在自己家墻上造了一個勻速移動的亮點,模擬空間站的運動,效果還不錯:

程序本身,基于一個叫做ASCOM的平臺開發(fā)。

它能將天文設(shè)備的所有配置,比如控制望遠鏡的對焦器、濾光片的轉(zhuǎn)動、相機的開合都集成在一個單獨的軟件上,是在天文領(lǐng)域運用非常廣泛的軟件接口標準:

硬件準備上,除了筆記本電腦之外,還包括:

11英寸口徑,焦比f/10,折反射式的星特朗EdgeHD望遠鏡,配套有CGEM赤道儀

佳能EOS R5相機

QHY5III462c相機,作為導星相機

圖馬思特T16000M游戲手柄

其中,望遠鏡大約4萬元,佳能EOS R5相機租借了兩周花費2200元(市價2.5萬元),462c相機不到1000元,手柄則是和朋友以物換物拿到的(市價500多元)。

整個成本算下來不到4.5萬元,據(jù)劉博洋表示,對精度要求沒那么高的話,整套不到1萬元就能搞定。

接下來進入第二步,現(xiàn)場實拍并成功用設(shè)備拍攝到高精度的空間站照片。

但沒想到的是,實際拍攝反而要比想象中更難,期間劉博洋“一直在反復試錯修bug”。

他一開始的目標,是捕捉中國空間站,然而接連兩次出bug,導致錯過了兩次觀測的最佳時機。

3月23日,由于未能及時對焦,自動光學跟蹤沒能起到作用;3月27日,由于尋星鏡視場只有3°左右,過小的視野導致初步捕獲失敗,再次沒能進入自動跟蹤流程。

此時距離中國空間站下次可見過境還有很久。因此,在修復操作問題后(將尋星鏡視場增大到15°),劉博洋決定,先用即將迎來幾次絕佳過境的國際空間站“練練手”。

于是,在將自動跟蹤程序中的“抓捕”改為手動觸發(fā)后,劉博洋成功在4月2日驗證了程序功能。

雖然還是有不完美的地方,例如軟件崩潰導致尋星鏡和主鏡的位置校準數(shù)據(jù)丟失,針對這個問題劉博洋又增加了校準數(shù)據(jù)記錄功能。

這個時候,代碼已經(jīng)從最初的400多行變成了600行。

終于,4月3日晚上,在緊急修復bug后,劉博洋成功抓拍到了國際空間站。

具體來說,望遠鏡對空間站的抓捕分為x和y兩個軸,在按下catch后,y軸很快就穩(wěn)穩(wěn)跟上了目標,x軸則略慢了10秒。

在30秒左右時,兩個軸都保持在了一個穩(wěn)定的誤差范圍內(nèi)(四個像素左右),這種高精度跟蹤持續(xù)了一共120秒,完整記錄了國際空間站從接近到遠離的全流程:

最初得到的原始畫面大約是100多像素,最終,在經(jīng)過多幀疊加的超采樣處理后,圖片的像素提高到了200多像素。

最后經(jīng)過處理,成功輸出了一系列300×300像素的圖像(合成GIF圖):

而這,是劉博洋開始做這一項目的第17天。

之后還要發(fā)射小火箭

在談到整個項目中最難的一個階段時,劉博洋印象最深刻的,就是如何讓望遠鏡被Python代碼調(diào)用:

對于我這樣一個編程很差的人,開發(fā)最初完全就是一個黑箱。

劉博洋本科、博士分別就讀于北京大學、西澳大學,都是天體物理學專業(yè)。

這個專業(yè)要求掌握基本的編程技能,但是劉博洋大學時的相關(guān)課程,比如計算機概論、數(shù)據(jù)結(jié)構(gòu)都是低分飄過或者緩考的。

到了博士階段,多了大量需要用腳本完成的數(shù)據(jù)處理工作,他才開始深入地學習編程語言。

這次之所以選擇自編代碼操控望遠鏡,除了沒有找到現(xiàn)成可用的軟件之外,也是想要繼續(xù)鍛煉自己的編程能力。

那么這套代碼會開源嗎?

在我們這樣問時,劉博洋表示:

至少要在自己能調(diào)試的范圍,將代碼優(yōu)化到一個自己滿意的程度,才會考慮下一步。

他目前最近期的一個目標,是兩周后的中國空間站的再一次過境。

在成功拿國際空間站”練了手“后,劉博洋充滿了信心,還在考慮是否要在接下來的捕捉中適當縮小視場,進而提高拍攝的精度。

中國空間站的拍攝如果順利,將在4月21號之前結(jié)束,之后,他就要立刻趕往青海,開展新項目:發(fā)射一枚裝著自己相機的小火箭。

再遠一些,劉博洋還提到了今年下半年可能會有的神舟系列的火箭、以及實驗艙的發(fā)射,他到時候會拿著自己的這套跟蹤空間站的程序,再去跟拍大火箭。

如此硬核的“備戰(zhàn)”計劃,妥妥一位狂熱的航天愛好者無疑了。

劉博洋最后這樣說:

天文的興趣從小就有,也因此本碩博都讀的天體物理學。

不過隨著為國內(nèi)的航天任務(wù)越來越多,我能接觸到相關(guān)活動的機會也就越來越多,于是航天方面的興趣也就逐漸發(fā)展了起來,到現(xiàn)在已經(jīng)發(fā)展成主要的業(yè)余愛好了。

責任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2013-05-09 10:15:38

國際空間站WindowsLinux

2013-11-14 09:57:26

2023-05-22 13:12:51

2024-08-15 14:37:07

2021-09-16 10:37:41

樹莓派開發(fā)者空間站

2009-04-13 10:52:59

網(wǎng)絡(luò)拓撲摩卡網(wǎng)絡(luò)

2021-11-14 07:28:38

中國空間神舟十三號天文通

2019-09-05 14:23:16

機器人人工智能系統(tǒng)

2022-10-20 17:01:41

2023-06-08 08:43:36

2024-05-14 08:59:15

2015-04-23 10:30:42

華為

2011-11-04 10:30:22

2019-12-10 16:50:01

人工智能設(shè)計Philipe Sta

2022-04-11 11:38:44

Python代碼游戲

2022-07-29 09:03:17

AIOPS運維工具

2012-07-23 09:58:50

代碼程序員

2021-01-19 05:49:44

DNS協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號