• 沒有找到結果。

二維轉換到三維可重置架構的軟硬體共同設計

N/A
N/A
Protected

Academic year: 2021

Share "二維轉換到三維可重置架構的軟硬體共同設計"

Copied!
39
0
0

加載中.... (立即查看全文)

全文

(1)

1

報告者 : 張祐維 指導教授 : 高啟洲

Hardware/Software Co-Design of Reconfigurable Architecture for 2D-to-3D Conversion

二維轉換到三維可重置架構的軟硬體共同設計

CASDC LAB

(2)

Outline

研究目標及動機

2D-to-3D

DIBR

2D-to-3D 架構

2D-to-3D的軟硬體共同設計

實驗流程

實驗結果

結論

2

(3)

研究目標及動機

3D 立體影像讓人感到驚艷,但要使用多 攝影鏡頭做攝影的成本非常昂貴,因此有 2D 轉 3D 的技術出現,為了加速 2D 轉 3D 的效 率,因此研究一種可重置架構的軟硬體共同 設計來做更高效率的轉換。

3

(4)

2D-to-3D

2D 轉 3D 技術主要利用了影像處理、圖形識別、影像分類等影像相關技術,

估測出拍攝場景的深度資訊。

使用者僅需輸入單張影像照片或是單一視訊影片即可自動產生立體影像資 訊,於顯示器上呈現立體效果。

4

(5)

基於深度影像繪圖法 (Depth Image Based Rendering, DIBR

2D Sequence

Depth Map

5

Original View

New View Pre-processing Depth to

Disparity

Pixel Shifting Hole Filling

DIBR (Deep-Image-Based Rendering) 用於生成自原始 2D 連續影像 ,然

後提取深度訊息,對初始深度圖做預處理,再將深度轉為視差然後再做

像素轉移,最後是洞孔填充。

(6)

平滑深度值根據上方式子被轉換為原始影像中不同 的像素位置間的差距 DIBR 的核心概念就是依據所輸 入的 2D 影像將其深度合成多個視角所能看到的影像,

這是因為同樣一個物件在投射給不同視角時,所對 應到屏幕上的像素位置也不同,這樣的像素位移量 會與物件的深度、兩眼的距離及眼睛到螢幕的距離有 直接關聯

dispartiy = = (1-

 

D : 觀看者與螢幕之間的距離

: 人眼瞳孔間的距離

Z : 每個像素的常態深度值

 

基於深度影像繪圖法 (Depth

Image Based Rendering, DIBR

6

(7)

2D-to-3D 架構

2D Sequence

Input Buffer

Configuration

Original View

Edge

Edge-Color

Resolution

Depth Map

Generation DIBR Generated View

Depth Map Buffer

處理完深度圖生成 和 DIBR 後生成新影像 用以儲存多個緩衝區原始圖像的線條

以便被不同時間的同樣 2D 轉 3D 模塊提出訪問

深度圖生成模塊用於生成初始值深度圖

配置模塊支援不同解析度

儲存了數個初始深度圖的線 並由 DIBR 中的高斯濾波器處理

7

(8)

Input Buffer

Reconfigurable Depth Map Generation

Resuable Module Non-Resuable Module 深度圖生成模塊支援兩種深度檢索

方法,Sobel模塊檢測像素是否屬 於邊緣,由兩者共享深度檢索方法

基於邊緣方法將值 1 和 0 分別 轉換為 255 和 0 以獲得初始深度 由最佳深度檢索方法 ( 演算法選擇 ) 所生成的原始深度值可以根據圖像

內容通過配置模塊被選擇儲存至深度圖緩衝區

基於邊緣顏 方法分別生

檢測目標是否在邊緣

8

2D-to-3D 架構

(9)

9

Gaussian

Filter Disparity Shift Hole fill

Generated View

作為一個預處理模塊,高斯濾波器從深度 圖緩衝區和最終深度值的深度圖所生成的每一 個像素平滑初始深度圖。

最終深度值將轉換為差異模塊中的差異。

新圖的像素圖由移位模塊使用差異和原始

圖片生成。 洞孔填充模塊用於將顏色填充到

由移位模塊產生的空洞中。

2D-to-3D 架構

(10)

Memory Traffic Reduction for Real-time Conversion

三個 Lv 來做資料重複使用以減少即時 2D 轉 3D 架構中所需的記憶體流量,利用數比資料 重複使用可以確保即時處理。

Block(BK) :frame中的像素塊,大小為 N×N BS :一排 blocks

W :寬

H :高

重複使用等級 每張框架的記憶用塞 緩衝區大小 (pixel) No reuse

BK BK+

BS

N × N × W × H N × W × H

( N + n ) ×W×H / ( n + 1

W x H

0

( N-1 ) × ( N + n

( N-1 ) × N

( N-1 ) × W

10

(11)

11

Pixel in

24 bit

Delay

Pixel3 Pixel2 Pixel1

Pixels to Local Depth Pixels to DIBR

A line of pixels , and is designed to be 4096 pixels to support 4K or less than

LineStorage 1 LineStorage 2 LineStorage 3 LineStorage 4

To Sobel

輸入緩衝區用以實現 BS 資料重複 使用,其中可以儲存一行像素由左而 右置入用作轉移緩衝區,這樣 BS 級 資料重複使用就在 Sobel 邊緣檢測的 輸入緩衝區中實現。

逐一接收 pixel

Input buffer

(12)

12

對於 Sobel 邊緣檢測,轉移 暫存器陣列也實 現了 BK 資料重 用, 6 個 2x3 暫 存器形成兩列暫 存器陣列。在每 個週期中,從輸 入緩衝區接收像 素並移入暫存器 陣列。以這種方 式減少輸入緩衝 區和暫存區陣列 之間的儲存通訊 量。

Pixel1 from input buffer

Pixel2 from input buffer Pixel3 from input buffer

Reg1 Reg2 Reg3 Reg4

Reg5 Reg6

Shifting register

(13)

13

DepthStorage

DepthStorage

DepthStorage

DepthStorage Depth_data_in

Delay

A line of depth data

Depth output

8 bit

Depth map buffer designed for Gaussian filter

深度緩衝避免儲存 深度資料到片上記憶體 而可減少大量片外記憶 體用塞而可提高 2D 轉 3D 的整體性能。

深度緩衝類似輸入 緩衝,只是輸入緩衝區 是 24 位元的深度資料 儲存,而深度緩衝是 8 位元。

(14)

2D-to-3D 的軟硬體共同設計

在設計的早期就將軟硬體明顯分離,由於軟體設計者不 熟悉硬體的架構, 硬體設計者不了解軟體設計的方法,軟硬體 個別獨立設計,最後階段才將軟硬體整合。

合成發生問題

無法確定是軟體或硬體設計上的錯誤

修改上的困難度提高,延遲了產品上市的時間。

14

(15)

2D-to-3D 的軟硬體共同設計

系統平台概觀

高階的應用程式碼

(high level application code)

低階描述子層級的計算 (operation for low-level descriptors)

應用程式介面 (Application Programming Ineterface)

CPU 運算引擎

15

(16)

2D-to-3D 的軟硬體共同設計

主要的目的是最小化應用程序整體的工作時 間,而想法是給予一個程序在硬體中執行的特權,

但在軟體為預備 (ready) 狀態時,當硬體不能被分配 到可重置資源時,才會在軟體間執行,在軟體執行 期間,會計算是否要繼續或取消至硬體執行。

Program

Hardware

Software

F in is h

2D-to-3D

speed

16

(17)

2D-to-3D 的軟硬體共同設計

檔案在二維轉三維時的系統判讀方式有五種 :

1. 若在軟體上執行程序結束後始終無可用資源能分配 給硬體的話,則繼續由處理器在軟體上完成工作。

17

Photo Input

Software

Hardware

Platform

(18)

2D-to-3D 的軟硬體共同設計

2. 如果在軟體上執行程序時,有可重置資 源可在硬體上執行的話,若系統判定出比起 取消後在硬體上重新執行會更早結束程序的 話,則讓軟體繼續執行並完成程序再離開處 理器。

Photo Input

Software

Hardware Platform

18

(19)

2D-to-3D 的軟硬體共同設計

3. 如果在軟體上執行程序時,硬體有可用資源的 話,若系統判定在硬體上執行會更快完成則取消 軟體上的程序並改從硬體上重新執行。

19

Photo Input

Software

Hardware

Platform

(20)

2D-to-3D 的軟硬體共同設計

4. 倘若當下輸入量大的話,軟硬體現在皆 有資源可使用但未必各為最佳狀態時,系統 判定兩方一起分工執行可以更快執行完所有 程序則分配好最佳的工作排程並一起執行輸 出。

Photo Input

Software

Hardware Platform

20

(21)

2D-to-3D 的軟硬體共同設計

Photo Input

Software

Hardware

(22)

軟硬體共同設計流程

System

Description HW/SW

Partitioning

Software Synthesis

Interface Synthesis

System Integration

Hardware Synthesis

21

(23)

軟硬體共同設計流程

軟硬體描述

結構為系統實作抽象化,明確地訂出軟硬體的組成元件,

再與系統行為作對映。而語言的使用,常見有硬體描述語 言,如 VHDL 、 Verilog; 軟體程式語言,如 C 、 C+

+ 、 Java; 結構描述語言,如 EXPRESSION 、 LISA; 系統 規格語言,如 SystemC 、 SDL; 驗證用語言,如

PSL 、 OpenVERA 。

對於模組、結構和語言等,在設計的初期就需要明確訂 定,以確保系統設計的一致性,利於之後的軟硬體切割與 合成的部分。

Partition

Integration System Description

22

(24)

軟硬體共同設計流程

軟硬體切割

要符合不同的效能需求,必須透過軟硬體切割已達到最 符合我們所期待的效能。一般而言,若用硬體來實作,執行 時間和平行處理的效能最高,但相對地製作成本也提高。若 用軟體來實作,雖然成本會降低,但相對地執行時間較多。

以結構而言,這些單元是軟體實作其功能為目標,在這我們 統一用一個公式當成評估的標準。

Cost =k1 x (SwProgram data)+k2*(HwCost)+k3*(Running time) + k4 x ( power )

(k 為常數 )

Partition

Integration System Description

23

(25)

軟硬體共同設計流程

軟硬體整合

先採用硬體高階合成工具,加上行為描述與系統設計限 制的條件,再以硬體描述語言來模擬,並採用低階合成工具 將暫存器轉換成即時系統階層和低階設計電路。軟體在高階 時使用 C++ 來編碼,再做單元、整合、系統、復原和接受等 的測試。再來使用共同模擬 (Co-simulation) 的方法,建 立混合硬體、軟體、即時作業系統和介面的模型,模仿即時 作業系統來執行。

Partition

Integration System Description

24

(26)

實驗流程

邊緣是圖像最基本的特徵,在電腦視覺、圖像分析等應用中有很重要 的作用,這是因為圖像的邊緣包含了用於識別的有用訊息,是圖像分 析和模式識別的主要特徵提取手段。

“ ” “ ”

在圖像中, 邊緣 指的是臨界的意思。一幅圖像的 臨界 表示為圖像上亮 度顯著變化的地方,邊緣指的是一個區域的結束,也是另一個區域的開

“ ”

始。 邊緣點 指的是圖像中具有坐標 [x,y] ,且處在強度顯著變化的位 置上的點。

常用的邊緣檢測算法大多是以原始圖像灰階值為基礎 , 通過考察圖像的每 個像素的某個鄰域內灰度的變化 , 利用邊緣一階或二階導數的規律來檢測 邊緣。

25

(27)

實驗流程

YUV Signal

Y: 明暗度 , Y 愈大愈白 , 反之則愈黑 U and V : 表示色彩度

26

(28)

Input

參考圖像、深度圖像及參數

參數設置

深度圖像處理 繪圖算法

三維圖像轉換

匹配誤差校正

濾波

洞孔填充

輸出目標圖 像及視差圖

Output

深度圖像處理 三維圖像轉換 洞孔填充

27

實驗流程

(29)

28

實驗流程

(30)

Software

Hardware

H/W Co-design Output

Output

Output Platform

interface

29

實驗流程

(31)

2D

Photo Processing

A program base on C++

FPGA

Output

3D Photo

3D Photo

31

(32)

實驗流程

" 色彩度 " 定義了顏色的兩個方面 - 色調與飽和 度,分別用 Cr 和 Cb 來表示。其中, Cr 反應了 RGB 輸入訊號紅色部分與 RGB 訊號亮度值之間的差異。而 CB 反應的是 RGB 輸入訊號藍色部分與 RGB 訊號亮度值之 同的差異。。通過運算, YUV 三分量可以還原出

R (紅), G (綠), B (藍)。 RGB 和 Y CbCr 的 轉換公式如下:

Y = 0.183R + 0.614G + 0.062B + 16;

CB = -0.101R - 0.338G + 0.439B + 128;

CR = 0.439R - 0.399G - 0.040B + 128;

32

(33)

DDR3

MIG IP PLL

clk_200M

Ap_axi_master

實驗流程

Burst 讀寫

Frame_fifo_read Frame_fifo_write Read

request

Video

Timing_data

Rgb_to_ycbcr

Sobel rgb2d

vi

TMDS

HDMI Monitor

邊緣檢測需要圖像亮度訊息,

RGB 圖像轉換成 YCBcr, 然後只取亮度訊 息進行 Sobel 轉換。

33

(34)

實驗結果

我們將大量的照片放在一整個資料夾,並且讓程式轉換整資 料裡的圖像檔案,我們用以下的表格歸納出轉換的格式、耗 時、軟體或硬體、圖像大小及圖像效果優異度,為了有較為準 確的樣本,全部使用同一張照片並用不同的名稱進行轉換,以 其中一張圖片為例,我們輸入下圖到平台做其深度圖像的生 成。

34

(35)

實驗結果

圖像格式測試本文主要以可攜式網路圖形格式 (PNG) 作為轉 換的原圖, PNG 圖片以任何色彩深度儲存單一點陣影像。優點有許 多,例如支援高階無失真壓縮的問題、支援 Alpha 、 gamma 修正、色 透明度、支援交錯以及較新的網路瀏覽器都能夠支援 PNG 。

執行平台 執行

時間

處理器 圖 像 大

圖像格式 圖像張數

Software(VisualStudtio 2017)

210s Intel i7-7700HQ 298B png 20 Hardware(FPGA Xilinx) 302s Spartan-7 XC7S50 298kB png 20

35

(36)

轉換張數 單位 100Kb

25 50 100 150

()

1 2 3

4 純軟體端執行

純硬體端執行

軟硬體整合分工執行

36

實驗結果

(37)

( 轉 20 張耗時 )

H/W Co-design Spartan 7

Program on Windows

圖片大皆固定約 300kb 198s

210s

302s

( 轉 30 張耗時 )

311s

357s

287s

37

實驗結果

(38)

38

結論

本研究不在於演算法上的改進而是架構上的改

進,根據擬定的架構我會選擇找出最佳方法或是

不同方法的最佳組合。 FPGA 還有實現快速且高效

率系統的潛力,作為模擬軟硬體設計來做 2D 轉 3D 是

非常適合且低成本的,但缺點在於執行部分動態重新

配置時的處理時間可能過長,不過本文仍選擇以 FPGA

來模擬此架構。

(39)

39

Q & A

參考文獻

相關文件

3.丙級:包括應用作業系統、安裝軟體與使用電腦週邊設 備、設定繪圖環境、控制圖形螢幕、輸出圖形與 管理圖面等基本工作及繪製單件立體圖、立體剖

包括三維機械設計的所更的功能(SolidWorks 三維建模軟體)、資料管 理軟體 PDMWorks Client、以及用於設計交流的常用工具:eDrawings 專 業版(基於 e-mail 的設計交流工具),

而使影像設計工具在操作時呈現非預設的結果。為此操作者可以利用重設 Photoshop 軟體

直方圖 (histogram) 階梯圖 (stair plots) 羅盤圖 (compass plots).!. of Math., NTNU,

Department of Mathematics, National Taiwan Normal University, Taiwan..

Department of Mathematics, National Taiwan Normal University, Taiwan..

本系已於 2013 年購置精密之三維掃描影像儀器(RIEGL

 The stereo matching techniques developed in the computer vision community along with ima ge-based rendering (view interpolation) tech niques from graphics are both essential