• 沒有找到結果。

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

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 ini sh

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

參考文獻

相關文件

mov ax,var1 ;將其中一個記憶體內容先複製到暫存器 xchg ax,var2 ;分別執行記憶體與暫存器內容的交換動作 xchg ax,var1 ;完成交換。 Swap var1

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

(A)因為用 Terminal Services 可以不用安裝 ERP 的程式在 Client 端上可以減少 MIS 維護系 統的時間(B)沒有防毒軟體 (C)建置防火牆的系統 (D) APP-Server 與 DB

下列哪一種記憶體屬於非揮發性記憶體, 不會因電源關閉而使其中的資料消 失, 但是可以透過電壓的方式重複抹除資料, 可用於基本輸入/ 輸出系統 (Basic Input / Output System,BIOS)

此位址致能包括啟動代表列與行暫存器的 位址。兩階段的使用RAS與CAS設定可以

原因: 技術進步,加上對可攜帶音樂設備的需求增加(黑膠唱片 > 錄音帶 > CD- ROM > 迷你光碟 > SD咭 >

• External Sort: 資料太大了, 有些要放到別的地方 (硬碟, 記憶 卡, 網路上的其他電腦上, 等等等).. •

下列關於 CPU 的敘述,何者正確?(A)暫存器是 CPU 內部的記憶體(B)CPU 內部快取記憶體使 用 Flash Memory(C)具有 32 條控制匯流排排線的 CPU,最大定址空間為