Annual: 2019

PR042 »
基於FPGA的HDR即時影像處理
📁High Performance Computing
👤子賢 葉
 (長庚大學)
📅Oct 31, 2019
Regional Final



👀 2322   💬 1

PR042 » 基於FPGA的HDR即時影像處理

Description

利用FPGA實現HDR(High Dynamic Range Imaging)影像處理。將曝光度不夠的影像進行還原,使畫面的辨識度提高。有別於一般處理方式,使用多張不同曝光度的照片進行合成。HDR演算法只使用一張照片便可以達到相近的還原效果。

Demo Video

  • URL: https://www.youtube.com/watch?v=9l3lLHxJzTM

  • Project Proposal

    1. High-level Project Description

    目的:

        在這科技日新月異的時代,許多人越來越注重攝影機呈現出的品質是否可以完整保留真實樣貌,但是當遇到明暗差距過大時,機器往往無法自行調節亮度,呈現出來的影像總有一邊會過曝或過暗,所以我們利用光敏電阻和開關,去偵測所在環境的光線強度,再依照光線強度的大小,去調整照片的亮度,以達成我們想要的即時HDR影像處理。

     

    應用和目標用戶:

        即時HDR影像處理可以應用在很多地方。例如在監視器上進行人員辨識,但目前市面上的監視器畫面品質並不是很好,尤其是光線較微弱的地方,時常過暗導致無法辨識。如果在監視器上面加裝HDR的功能,就可以讓那些地方較清楚的呈現出來。除此之外,還可以應用在汽車的倒車顯影上。現在汽車普遍都有加裝倒車顯影系統,但是當到晚上的時候,因為光線不足,倒車顯影基本上很不清楚。就算加裝燈源也會使畫面有很大的光點,無法看清。如果加裝上HDR的功能,就可以使倒車顯影清楚很多,使駕駛人在倒車的時候,不再那麼吃力。

    2. Block Diagram

     

    Image Process

     

    RGB to Gray:利用 Ri.*0.299 +Gi.*0.587 +Bi.*0.114 公式取得灰階值。

    Gaussian Blur:以灰階圖像進行高斯模糊運算取得一次模糊圖像

    Fi caculation:計算出水平和垂直梯度,再依照公式

    計算出結果。

     

    以下是在各步驟間的圖像:

    首先會先將RBG圖像透過 Ri.*0.299 +Gi.*0.587 +Bi.*0.114  轉為灰階。

    接著透過高斯模糊矩陣整張圖進行掃描,

    但模糊效果較小,難以以肉眼分辨。

    最後經過HDR演算法計算新的灰階圖像,

    並補上RGB原色進行還原。

     

     

     

     

     

     

     

    3. Intel FPGA Virtues in Your Project

    特色:

        目前所知普遍的HDR技術多半是運用多個不同曝光度的照片進行比對運算組合而成的,因此為了取得多張不同曝光度的照片,必須在同一個畫面長時間停留或是運用兩個以上的鏡頭進行攝影。我們為了能顯示即時影像必然得改進這種方式,因此我們選擇以多次高斯模糊將亮度邊界模糊化以取代多種曝光度的照片,使HDR運算可以僅用一個畫面即可完成,也更可以應變短時間內畫面的劇烈變化。

     

     

    4. Design Introduction

       我們主要做的是HDR(high dynamic range)即時影像處理,期望做出來的成果可以使過暗的地方細節變得明亮且清楚,讓過曝的地方稍稍變得沒有那麼亮。為了完成這個題目,我們把整個實驗分成三個部份去完成──影像輸入、中間運算以及影像輸出。我們先把輸入的影像分離出R、G、B三層,之後轉灰階,再經過高斯模糊,並且分別把他們存到memory裡面,最後才是輸出影像。在影像輸出的同時,再把RGB補色補上去。前面的輸入影像以及最後的輸出,是用擷取影像電路和顯示電路的方式去做改寫,利用擷取影像電路去取出我們要的部分,降低解析度後,再帶進去我們自己打出來的運算過程,最後接回顯示電路。

    5. Function Description

    Switch

    控制是否要經過HDR

     

    光敏電阻

    偵測環境的光線強度,將訊號經過ADC之後轉成一個值,利用該值的大小控制圖片所需調整的亮度大小。

     

    灰階運算

    轉灰階基本上的算法是RGB相加除以3,但是因為人眼對顏色的亮感度不同,所以我們使用較接近人類眼睛的灰階影像算法:Ri.*0.299 +Gi.*0.587 +Bi.*0.114

     

    高斯模糊

    先判斷是否為邊界條件,如果是就直接帶入原值,不是的話便利用剛剛求得的灰階值,取出3*3的windows,去乘上我們計算出的高斯矩陣,再把計算出來的九個值相加,即為所求的高斯值。

     

     Fi calculation

    將灰階及高斯值取出來做運算,可以求出水平梯度及垂直梯度。用查表的方式,查出對應Fi值,接下來就可以利用Fi值去計算出Ghhat和Gvhat。

    用上述的公式去計算出Ghhat和Gvhat的散度,有了散度之後,即可再依照公式,計算出最後的影像結果。

     

    6. Performance Parameters

    先將解析度先降低至160*120,再去判斷所需調整的HDR亮度大小,之後再進行運算並輸出結果。

    由下面的圖一及圖二可知,經過HDR運算的圖片,路邊樹的顏色較為明顯且圖片上建築物的細節較為清楚。

     

     

    圖一、未經HDR運算的圖片 

    圖二、經過HDR運算的圖片

     

    7. Design Architecture



    1 Comments

    Zhou Wenyan
    影响处理的效果很不错,期待看到该设计作品!
    🕒 Jun 26, 2019 04:23 PM

    Please login to post a comment.