能不能在平面上模擬出虛焦(對焦距離與平面距離不同)才能看清的影象?

時間 2021-05-05 18:52:42

1樓:好大水

用反卷積運算可以達到這種效果。

設虛焦的響應函式為h,既對於影象 i, 經過虛焦後的影象為 i' = conv(h, i),conv(,) 代表卷積運算。

題主提到的問題相當於,對於一副影象i,找到乙個影象 j, 滿足 conv(h, j) = i。

此過程,通過反卷積可以實現。

2樓:又改名鳥

假設你的顯示系統是普通的顯示器,而不是涉及波前調控的那種全息顯示器,那麼很容易從幾何光學的角度論證你期望的功能是不能實現的。首先,假設人眼聚焦到無窮遠處,這時無窮遠處的乙個物點會對應著視網膜上的乙個像點。物象點之間進行光線追跡,你會發現,若1公尺遠處有乙個螢幕,則光束與螢幕相交處為乙個圓,這個圓的直徑大約與人眼瞳孔直徑相當,裡面包含了多個畫素。

因為圓裡的多個畫素發出的光相互間是不相干的,因此無論你如何調控這些畫素發光,它們都不可能視網膜上形成乙個理想的,接近衍射極限的像點光斑。所以,你設想中那種讓近視的人也能看清的顯示器是做不到的。除非你降低對影象的要求,讓影象原來就不包含高頻成分,讓它在一公尺看起來和在一百公尺看起來都像近視一樣模糊不清。

3樓:

可以的。

但需要螢幕上每個點包含整個影象,

也就是每個點,對不同方向發出不同的光。

舉例來說,單獨拿出乙個點,效果就相當於你透過乙個小洞看物體,從不同角度,可以看到整個物體。

4樓:passgod

通過螢幕顯示影象的方式很難做到。

但「在乙個半公尺距離的平面上製造乙個影象,使人眼對焦到半公尺的時候模糊,人眼對焦到五百公尺的時候清晰呢?」是可以做到的。

方法就是:加乙個凸透鏡

可以把凸透鏡加到螢幕上。VR眼鏡就是這麼做的,雖然螢幕到眼睛的物理距離只有幾厘公尺,但調節好後眼睛對焦距離是在遠處。

也可以把凸透鏡加在眼睛上。那就是戴一副遠視眼鏡(老花鏡)。帶著遠視鏡看手機、螢幕等近處時,眼睛實際對焦在遠處,是處於放鬆的狀態。

所以,戴遠視鏡是可以防近視的。

如果眼睛已經近視了,那就摘掉眼鏡或者戴著低度數的眼鏡看螢幕,同樣可以防止眼睛疲勞。

一般配眼鏡的讀數,追求的是看無窮遠的時候清晰。那麼戴著正確度數眼鏡的時候,長時間看手機、螢幕,導致眼鏡又被迫不斷看近處,導致近視度數加深。

當然,近視還是得有一副度數正確的眼鏡,否則不僅生活不方便,視力不矯正還可能導致度數加深、散光、弱視等問題。上面說的僅限於長時間看近處時,一般是長時間玩手機、看螢幕時的場景。

5樓:貓哥愛科學

其實,說到底是乙個「光場」的概念。既然題主說到半公尺和五百公尺這兩個距離,那我也順著說半公尺和五百公尺吧。半公尺前有一張紙,上面畫著乙個美女,五百公尺外站著乙個真實的美女。

下面咱們把半公尺外的紙拿掉,換成乙個特殊的「門」,你是通過這道門看的五百公尺外的美女,那麼,原理很顯然,我把這門門關上,而讓這個門自己發出一大批光,讓這些光與五百公尺外射來的完全一致,你的眼睛根本就不會發現區別。

現在我們來研究門上的任何一點。發現,通過這乙個點的光並不是只有一束,五百公尺外的美女頭髮上的光、鼻子上的光、肚臍眼上的光、腿上的光……都是向著所有方向任意散射的,而且其中必然有通過這乙個點的那一束。所以,就單獨研究門上的乙個點,通過這個點的光就包含了來自美女頭髮的交、鼻子上光、肚臍眼的光、腿上的光。

現在把門關了不要緊,門自己製造的光也要達到這個效果。任何乙個點都要發出好多不同方向、不同亮度、不同顏色的光。

這叫「光場」。

能完全模擬光場的門還沒有誕生,但是簡易版早就有了,那就是VR眼鏡。VR眼鏡只能戴在頭上用,就是因為它不能模擬這樣龐大的光場,只能模擬出射向你兩眼的光場。這意味著,所有的「光場」只是射向你眼睛的這一小部分,而不管其它方向了。

將來是不是發明題主說的這種顯示屏,我看也很難,現在的顯示器已經做到對不同角度顯示不同內容,但是不可能同時有這麼多不同的角度,或者說角度之間的差不可能這樣小。

6樓:

我覺得題主想要的是在半公尺的螢幕上射出光線,但是成的虛像在500公尺,這樣人眼對焦在500公尺就能看清畫面了。現在AR、VR就是這種效果,基本是螢幕加透鏡或者其它光學元件的方法。但是按照題目只有螢幕的話,那麼半公尺處的螢幕必須模擬來自500公尺處光源的光場,也就是每個畫素在不同方向有對應的光線,這是普通螢幕的2D影象做不到的。

如果能實現完美的光場顯示,那就不只是模擬某乙個焦平面上的二維畫面了,而是可以模擬真實世界中三維物體,也就是同時顯示不同深度。Magic Leap曾經想用光纖掃瞄投影光場,但是好像一直無法做到實用的程度。

深度技術乾貨 Mars說光場(4)- 光場顯示馬查理:Magic Leap,光纖掃瞄顯示的曙光?

7樓:章佳傑

鴨哥 @grapeot 已經寫了乙個很好的答案了,不過對背後的原理講得還不夠詳細,我這裡補充一下。

有幾個問題是有助於思考背後的原理的,也是原先鴨哥的答案裡沒有詳細解釋的,我先放到前面:

有比梯度下降來迭代求解更好的解法嗎?

為什麼會有 ringing 現象?為什麼要加 regularizer?為什麼這樣加?

為什麼特殊設計的小孔是那種樣子的?怎麼設計出來的?

正如鴨哥答案裡寫的,成像的過程可以近似成乙個【原始影象】與【點擴散函式】卷積的過程,比如我這麼表示一下:

原圖點擴散函式 = 新圖

如果這裡【原圖】是一張清晰的圖,點擴散函式是離焦瀰散圓,那麼【新圖】就是一張虛焦的模糊不清的圖——這就是通常的虛焦成像的過程。

而這裡我們要做的事情,其實是反過來的,【原圖】暫時未知,但我們知道它經過這樣的卷積過程,得到了一張【清晰的新圖】,這個過程我們可以這麼來表示一下:

?? 點擴散函式 = 清晰的圖

我們要把上面這個 ?? 給求出來。

如果這是乙個傳統的乘法,比如 ?? × 5 = 12,那麼我們只要做乙個對應的「逆運算」——也就是做一下除法,就能算出 ?? 的值了:??

= 12 ÷ 5 = 2.4;當然我們可以用更高階的說法,叫「求取 5 的乘法逆元」,5 的乘法逆元是 1/5,於是又可以寫成:?? = 12 × 1/5 = 2.

4如果卷積也有逆運算,那麼我們只要求出「點擴散函式的卷積逆元」,那麼就可以求出 ?? 代表的原始影象:

?? = 清晰的圖點擴散函式的卷積逆元

如果數學功底紮實一點就會知道,空域上的卷積等價於頻域上的乘法,於是上面這個運算過程,可以通過傅利葉變換,轉換成乘除法操作。這個「點擴散函式的卷積逆元」,也無非就是在傅利葉頻率域做乙個除法操作了。

所以第乙個問題的答案就很直接了:用傅利葉變換就可以了,快好幾個數量級。

如果你真的試一試就會發現,不論是鴨哥原先的梯度下降迭代求解,還是通過傅利葉變換來直接求解,最後都會有 ringing 現象。不僅有 ringing,甚至如果中間計算過程不多加小心,結果會變成一片隨機雜訊。

為什麼?

因為【直接算卷積的逆運算】這個過程,是不穩定的。

舉例來說,如果有乙個計算過程,輸入資料由於雜訊的影響,波動了 0.1,輸出資料也波動了 0.1,那就是穩定的;如果輸出資料時而波動 0.

1,時而波動 100,那就是不穩定的。【直接算卷積的逆運算】這個過程,就是不穩定的,會有機會極大放大雜訊。

為什麼會不穩定?

我以一維的訊號為例來簡單說明一下問題,這是乙個一維的卷積核,來模擬相機的離焦瀰散圓:

一維的 Box 函式卷積核

對他做傅利葉變換,得到頻域的結果(看看這個形狀,大概想得到為啥會有 ringing 了吧):

Box 卷積核的傅利葉變換結果

注意圖中標明的兩個點,這兩個點的頻域響應是 0,我們在頻域做除法的時候(也就是求點擴散函式的卷積逆元的過程),除以 0 是沒有意義的,這意味著如果我們的影象上(或者計算過程中)有微小的雜訊,做完除法之後就會被極度放大。

此外,一般情況下的點擴散函式,在頻率域的響應隨著頻率增加而迅速降低,在上面的圖中高頻的響應值都比較小,而且是越往高頻走越小。在做除法的時候,除以比較小的值,就會放大高頻分量微小誤差,反映在結果上,就是雜訊增加,而且越是高頻的雜訊放大倍率越大。

有沒有辦法可以避免呢?

這時候就體現出 regularization term 的作用了,對除法的結果做一些約束,使得結果不要變得太大,或者不要變化太劇烈,都是一些合理的思路。

舉例來說,我們還是以普通乘法來做模擬,如果 a × 0.001 = 0.2,那麼 a 應該是 200;但由於計算或者測量的誤差,我們拿到的等號右邊的初始值不是 0.

2,而是 0.3,那麼算出來 a 的值就變成 300,等號右邊 0.1 的變化,帶來對 a 值計算結果的 100 的變化。

由於雜訊的存在,這個 0.2 本身就是不準確的,如果雜訊水平本身的波動就有 0.1,那麼左邊 a 的值就會在 100~300 之間波動,這樣算出來的 a 值是沒有太大意義的。

而如果我們對計算結果加以限制,一方面希望計算結果代入之後要盡量符合原始等式,另一方面也希望結果不要過分大,比如變成這麼乙個優化問題:

調集成適的 lambda 值,就可以使得 a 值變得不那麼大,計算的結果會更穩定可靠。

鴨哥答案裡用的影象梯度作為 regularization term,就是一種比較自然的想法。但影象梯度通常是對自然影象而言的 prior,我們本題要求的其實本身就是乙個【非自然】影象,所以加梯度作為 regularization 並不算非常合理。

著名的維納濾波器其實就是這個思路。

對於普通的鏡頭,焦外瀰散斑是乙個圓盤狀,這種形狀作為卷積核的話,求取卷積逆元的時候就會遇到上面提到的問題,會極大放大高頻雜訊,使得結果幾乎不可用。只能加入 regularization term 加以限制。這也限制了效果的進一步提高。

有沒有提高的辦法呢?

從上面的分析我們可以看到,關鍵在於卷積核的頻域響應,要盡量避免出現「過零點」。常見的一些核函式,比如圓盤函式、高斯函式等,他們對應的頻域響應,都會出現過零點,或者出現響應值很小的點。這其實也是很顯然的,根據傅利葉變換的對偶性,我們無法在時域/空域和頻域同時做到響應函式的緊支撐(compact support),在頻率域避免小值,意味著空間域響應範圍非常小,極限情況就變成單位衝擊響應——於是卷積就退化為什麼都不做。

雖然如此,我們還是可以盡量設計合適的卷積核,來減少頻域的過零點。乙個很顯然的思路就是白雜訊。白雜訊的頻率響應是瀰散的,可以避免過零點出現。

但是作為成像系統的光圈,不好做成滿足白雜訊值,最好是做成 0-1 值,1 的地方透光,0 的地方不透光。那麼退而求其次,可以用一些近似隨機的 0-1 序列來作為通光孔徑的形狀。

下面以一維函式進行展示說明。對不同型別的輸入核函式進行頻域響應分析,從上到下依次是,隨機白雜訊、方框函式、隨機 0-1 序列:

白雜訊方框函式

隨機 0-1 序列

上面三種函式對應的頻域響應如下(注意縱座標是對數尺度):

不同函式的頻域響應對照

可以很明顯看到,方框函式(黃色線)在高頻區域(影象右側)的頻率響應很小,基本上比其他兩個的要小 10~100 倍(注意縱座標是對數尺度),而其他兩種型別的頻率響應很類似,在各個頻段都保持較大的值,所以可以有效減輕「求卷積逆元」過程的不穩定性。

隨機 0-1 序列(就是上面綠色的曲線),如果 1 用白色表示,0 用黑色表示,畫出來就是一系列寬度不一的黑白條。如果用在二維上,就是一系列寬度不一的黑白格仔。這也就是為什麼鴨哥答案最後的光孔形狀是那樣的乙個黑白格了。

既然能在二維平面上表示三維立體,那麼能不能在一維直線上表示二維平面?

yukkuri 轉述一下小夥伴的舍友的一種方法 用穿插位的辦法來表示無限精度的二維點 先將兩個數的整數部分和小數部分分別補全到最長位數,再按先x後y順序 比如 穿插排列構成新的數字 比如二維平面上的點 123.45,6.789 即 123.450,006.789 就可以表示成一維數軸上的數字1020...

平面上的五個點能不能使兩兩之間互相連線,而連線又互不交叉?為什麼?

我猜題主可能對圖論方面的知識不太了解,所以我們拋開圖論的內容,盡可能用最直觀淺顯的方式來解答這個問題,當然,這樣看起來會很不嚴謹,所以我們不能把下面的內容作為真正意義上的數學證明來看待.我們分別記平面上的 個點為 並用反證法的思維方式來考慮這件事.假設存在一種方法,讓 個點兩兩連線後,任意兩條連線都...

乙個普通人靠做模擬練習交易,最後能不能在實盤中生存下來?

色染桃罐頭 凡事沒有絕對,模擬盤硬體上和實盤相差不大,理論上來說可行!但現實問題是,人畢竟是一種感性的生物,在實盤中先虧了錢,你還能確定自己有安如泰山的從容心態嘛? 不能,因為交易更多的是考驗人的心理素質!交易水平,模擬只是讓你熟悉軟體的使用,並不能提高你的交易水平。在交易中想賺錢需要真槍實彈上戰場...