• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種高動態(tài)范圍圖像自動拍攝裝置的設(shè)計與制作

      2022-07-07 06:46:12楊潤天
      現(xiàn)代信息科技 2022年4期
      關(guān)鍵詞:全景圖

      摘? 要:由于硬件設(shè)備的限制,高動態(tài)范圍圖像(HDRI)需要由一系列同一角度,不同曝光量的圖片合成得出。人工完成此過程需要較長時間,而較長的拍攝時間會提高后期處理時的工作量。為此,文章提出了一種以Arduino微控制器為核心,配合電機(jī)和個人電腦的自動化HDRI拍攝設(shè)備。該系統(tǒng)通過Arduino、藍(lán)牙、Wi-Fi、步進(jìn)電機(jī)以及個人電腦的配合能夠有效實(shí)現(xiàn)全自動完成HDRI全景圖的拍攝,并能降低后續(xù)流程的工作量。

      關(guān)鍵詞:HDRI;全景圖;Arduino

      中圖分類號:TP368? ? ? ? 文獻(xiàn)標(biāo)識碼:A文章編號:2096-4706(2022)04-0182-04

      Design and Manufacture of a HDRI Automatic Image Capturing Device

      YANG Runtian

      (Department of Electronic and Computer Engineering, University of Toronto, M5S 1A1 Canada)

      Abstract: Due to the limitation of hardware equipment, HDRI needs to be synthesized from a series of pictures with the same angle and different exposure. It takes a long time to complete this process manually, and the longer shooting time will increase the workload of post-processing. Therefore, this paper proposes an automatic HDRI photographing device with Arduino microcontroller as the core, combined with motor and personal computer. Through the cooperation of Arduino, Bluetooth, Wi-Fi, stepping motor and personal computer, the system can effectively complete the shooting of HDRI panorama automatically and reduce the workload of subsequent processes.

      Keywords: HDRI; panorama; Arduino

      0? 引? 言

      高動態(tài)范圍圖像(HDRI)是現(xiàn)代計算機(jī)繪圖任務(wù)中的一類重要資源,在數(shù)字藝術(shù)以及影視制作中有著廣泛的應(yīng)用[1]。不同于一般的圖片,高動態(tài)范圍圖像的亮度未經(jīng)剪裁,保留了完整的光照信息[1],因此能夠在計算機(jī)軟件中真實(shí)地重現(xiàn)拍攝時場景的光照情況,從而使模型渲染,后期特效合成的效果更加真實(shí),在達(dá)到相同視覺效果的條件下節(jié)省人力[2]。

      由于硬件設(shè)備的限制,HDRI圖像需要由一系列同一角度,不同曝光量的圖片合成得出。在拍攝全景HDRI圖像時則需在每個不同角度拍攝數(shù)張不同曝光量的圖片[1]。這一過程十分煩瑣費(fèi)時,且隨著拍攝時間增加,云層和太陽的移動會使得后期合成更加困難。拍攝者的陰影也會極大地增添后期處理的工作量。因此本文提出了一種以Arduino微控制器為核心,結(jié)合電機(jī)和電腦的自動化HDRI拍攝設(shè)備。

      1? 系統(tǒng)結(jié)構(gòu)和工作流程

      該系統(tǒng)主要分為兩部分,一部分為可遙控的自動三腳架,主要由Arduino控制器、步進(jìn)電機(jī)驅(qū)動器、電源、以及藍(lán)牙模塊組成,另一部分是PC端的控制軟件,如圖1所示。

      系統(tǒng)工作時,首先由PC通過藍(lán)牙連接自動三腳架,由Wi-Fi連接相機(jī)。程序檢測連接正常后,用戶可以設(shè)定拍攝參數(shù)并命令開始拍攝。PC端的程序?qū)ㄟ^用戶給定的參數(shù)計算所需的拍攝角度、曝光時間、光圈大小以及感光度,通過藍(lán)牙連接控制三腳架轉(zhuǎn)動到指定角度,并通過Wi-Fi設(shè)置相機(jī)的拍攝參數(shù)并遙控按下快門。在一個角度拍攝完所需的數(shù)張圖片后會轉(zhuǎn)動到下一個角度并重復(fù)這一流程,直到拍攝完所有角度的圖片。

      之后用戶可導(dǎo)出相機(jī)中的圖片,用PC端軟件將不同曝光量的圖片合并形成高動態(tài)范圍圖像,并用現(xiàn)有的全景圖拼接軟件拼接成全景圖片。

      2? 硬件設(shè)計

      本系統(tǒng)的設(shè)計目標(biāo)人群為計算機(jī)藝術(shù)及攝影愛好者,因此以器材易于購買,制作方便,模塊化為主要設(shè)計思路。

      2.1? 電源系統(tǒng)

      由于全景圖大多拍攝于野外,此系統(tǒng)使用12 V,1500 mAh可充電鋰電池作為電源。此型號的電池便于攜帶,容量適中且易于購買,符合此系統(tǒng)的設(shè)計思路。由于Arduino要求5 V電壓供電,此系統(tǒng)使用了DC-DC降壓模塊將12 V轉(zhuǎn)換為5 V電壓,如圖2所示。為方便使用者查看電池剩余電量,系統(tǒng)內(nèi)設(shè)置了可開關(guān)的數(shù)碼管電壓顯示器,在方便使用者的同時也能避免顯示器的燈光在夜間環(huán)境下影響拍攝質(zhì)量。降壓模塊和電機(jī)驅(qū)動模塊被分開放置以防發(fā)熱過于集中。

      2.2? 電機(jī)及機(jī)械結(jié)構(gòu)

      電機(jī)選用了市面上常見的42步進(jìn)電機(jī)。該電機(jī)被廣泛用于3D打印機(jī)等創(chuàng)客項(xiàng)目中,有豐富的配件支持以及較高的穩(wěn)定性。

      機(jī)械結(jié)構(gòu)主要由3D打印成型,對強(qiáng)度要求高的連桿和軸承等結(jié)構(gòu)則購買市面上的通用部件。大體上此系統(tǒng)可以分為三部分:基座、主體、搖臂,如圖3、圖4所示?;还潭ㄔ谌_架上,系統(tǒng)中的大部分電子元件用尼龍扎帶固定在基座的預(yù)留槽中。主體由鋼軸和軸承與基座連接,并用同步帶驅(qū)動。主體包含了系統(tǒng)中的兩個步進(jìn)電機(jī),并起到連接基座和搖臂的作用。搖臂用鋼軸和軸承與主體連接,由同步帶驅(qū)動,末端有用于固定相機(jī)的卡扣。

      系統(tǒng)工作時,一顆電機(jī)控制相機(jī)的平面朝向(即東南西北),另一顆電機(jī)控制相機(jī)的俯仰(即低頭抬頭)。其中控制俯仰的電機(jī)需要對抗相機(jī)自身的重力,因此在其上方設(shè)置了可增加皮筋的掛鉤,可在相機(jī)較重的時候使用皮筋助力以防止電機(jī)扭矩不足。

      電機(jī)與打印件之間連接的同步帶皆有可調(diào)節(jié)結(jié)構(gòu)鎖緊,在方便組裝的同時防止在工作時打滑。

      2.3? 控制系統(tǒng)

      Arduino Nano、藍(lán)牙模塊、電機(jī)驅(qū)動器、以及降壓模塊由尼龍扎帶固定在基座上,之間用杜邦線連接,方便組裝和故障檢修。其中Arduino Nano和電機(jī)驅(qū)動器之間的連線較多,因此被集成在同一塊電路板上,如圖5所示。模塊和電路板之間的連接使用了標(biāo)準(zhǔn)的杜邦插槽,方便組裝和更換。

      Arduino Nano的通用IO接口被用于控制電機(jī)驅(qū)動器的電機(jī)轉(zhuǎn)向和步進(jìn)接口,以及接收藍(lán)牙模塊的數(shù)據(jù)輸入。PCB布局如圖6所示。

      3? 軟件設(shè)計

      3.1? 控制軟件

      此系統(tǒng)包含兩套軟件,一套為Arduino中的程序,一套為PC端上的程序。其中Arduino的程序用C++編寫,PC端的程序由Python編寫。

      Arduino的任務(wù)只有控制電機(jī),因此Arduino與PC端的通訊方式參考了功能類似的G-code。G-code通常被用于控制數(shù)字機(jī)床,激光切割機(jī)或3D打印機(jī)。鑒于此系統(tǒng)的功能略有不同,同時也為降低指令的處理難度,此系統(tǒng)極大的簡化和更改了G-code的格式和指令集以適應(yīng)此系統(tǒng)的應(yīng)用場景。

      工作時,PC端的軟件通過藍(lán)牙的串口透傳功能將指令字符串發(fā)送給Arduino,Arduino在接受并完成指令后會再通過藍(lán)牙發(fā)送表示完成的字符串,此時PC端的軟件便可以發(fā)送下一條指令。如果PC端一次發(fā)送了多條指令,Arduino會在內(nèi)存中保存指令隊(duì)列并按順序執(zhí)行。PC端也可以在任何時刻發(fā)送急停信號來終止并清空指令隊(duì)列。

      PC端與相機(jī)的通訊由Wi-Fi連接,并用佳能相機(jī)的網(wǎng)絡(luò)API完成。其中相機(jī)作為服務(wù)器,PC端的軟件通過GET或POST http指令來獲取或設(shè)置相機(jī)參數(shù)并遙控快門。

      PC端使用pybluez庫實(shí)現(xiàn)跨平臺的藍(lán)牙訪問[3],使用了requests庫實(shí)現(xiàn)跨平臺網(wǎng)絡(luò)訪問。Arduino指令如表1所示。

      3.2? 圖像合并軟件

      在完成拍攝后,需要先將同一角度不同曝光量的圖片合并成亮度未剪裁的高動態(tài)范圍圖片。

      一般相機(jī)拍攝的jpg格式圖片都會由相機(jī)從線性顏色空間轉(zhuǎn)換為sRGB顏色空間[4]。這是因?yàn)槌R姷娘@示器能夠顯示的亮度范圍有限,為了使圖片觀感上更接近拍攝時的效果,圖像的顏色需要經(jīng)過非線性變換,即顏色空間的轉(zhuǎn)換[5,6]。

      但HDRI的拍攝目的并非感官上好看的圖片,而是與真實(shí)環(huán)境亮度相符的圖片,因此不應(yīng)經(jīng)過這一步處理。為保證HDRI圖片畫面質(zhì)量不被壓縮,拍攝者應(yīng)直接使用包含相機(jī)感光元件記錄的完整信息的RAW格式圖片。這些文件在經(jīng)過RAW格式處理軟件轉(zhuǎn)碼后可以得到圖像亮度與現(xiàn)實(shí)亮度為線性關(guān)系的圖片,通常保存為16位TIFF文件[5]。

      在得到不同曝光量的線性亮度圖片后,這些圖片需要被合成為高動態(tài)范圍圖片。因?yàn)橄鄼C(jī)的硬件限制,感光元件只能準(zhǔn)確記錄一定范圍內(nèi)的亮度信息,過亮或過暗都會導(dǎo)致信息的不準(zhǔn)確和噪點(diǎn)。這一記錄范圍就是圖片的動態(tài)范圍。在得到不同曝光量的圖片后,可以在軟件中將每張圖片過亮(過曝)或過暗(欠曝)的部分去除,并將幾張圖片進(jìn)行適當(dāng)?shù)钠毓庋a(bǔ)償后疊加,就能使整個畫幅都有準(zhǔn)確的亮度信息[1]。因?yàn)樽罱K的成品圖片有著遠(yuǎn)超出一般相機(jī)能夠拍攝的動態(tài)范圍,所以被稱為高動態(tài)范圍圖片(HDRI)。以上操作由Python腳本使用imageio及numpy自動完成[7,8]。

      最終的高動態(tài)范圍圖片可被現(xiàn)有的全景圖拼接軟件拼接成全景圖[9,10],并導(dǎo)入至3D軟件中使用[2]。

      4? 結(jié)? 論

      本文介紹了一種自動化HDRI圖片拍攝的設(shè)備,探討了軟硬件的設(shè)計思路和方法,以及HDRI合成的基本原理。

      本文提到的自動化系統(tǒng)已經(jīng)能夠?qū)崿F(xiàn)基本功能,拍攝和合成HDRI,并能夠在3D軟件中使用。但此系統(tǒng)在操作的便捷和便攜性上還有較大提升空間??梢灶A(yù)見的改進(jìn)方向包括整體機(jī)械結(jié)構(gòu)的小型化,穩(wěn)定化,結(jié)構(gòu)與收納箱的集成,防塵防雨結(jié)構(gòu),以及移動端圖形化控制軟件的開發(fā)。

      參考文獻(xiàn):

      [1] POLY HAVEN BLOG. How to Create High Quality HDR Environments [EB/OL].[2021-12-12].https://blog.polyhaven.com/how-to-create-high-quality-hdri.

      [2] 吳昊.影視制作中HDRI技術(shù)的應(yīng)用與研究 [J].電腦編程技巧與維護(hù),2011(20):116-117.

      [3] GITHUB. pybluez [EB/OL].[2021-12-12].https://github.com/pybluez/pybluez.

      [4] CAMBRIDGE IN COLOUR. Understanding Gamma Correctio [EB/OL].[2021-12-12]. https://www.cambridgeincolour.com/tutorials/gamma-correction.htm.

      [5] RAWPEDIA. rawpedia [EB/OL].[2021-12-12].http://rawpedia.rawtherapee.com/.

      [6] CHAOS. Understanding sRGB,gamma,color values [EB/OL].[2021-12-12]. https://support.chaos.com/hc/en-us/articles/4528579184657--Understanding-sRGB-gamma-color-values-.

      [7] IMAGEIO. Welcome to imageio’s documentation! [EB/OL].[2021-12-12].https://imageio.readthedocs.io/en/stable/.

      [8] NUMPY. NumPy documentation [EB/OL].[2021-12-12].https://numpy.org/doc/stable/.

      [9] 漆馳,劉強(qiáng),孫家廣.攝像機(jī)圖像序列的全景圖拼接 [J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2001.(7):605-609.

      [10] YOUKIAAA.全景拼接原理及實(shí)現(xiàn)_Yokia-CSDN博客_全景拼接 [EB/OL].[2021-12-12].https://blog.csdn.net/qq_37374643/article/details/88930316.

      作者簡介:楊潤天(2001—),男,漢族,北京人,本科在讀,主要研究方向:硬件與軟件工程。

      猜你喜歡
      全景圖
      嫦娥四號月背之旅全景圖
      太空探索(2019年1期)2019-01-19 02:12:16
      環(huán)保概念股全景圖
      奇妙島全景圖
      奇妙島全景圖
      奇妙島全景圖
      奇妙島全景圖
      闽侯县| 柘荣县| 丰城市| 华亭县| 板桥市| 泰宁县| 从化市| 南木林县| 克拉玛依市| 肃南| 东源县| 宣武区| 金溪县| 洛浦县| 金平| 浦北县| 榆社县| 兴安县| 措美县| 云梦县| 华阴市| 雅江县| 沙洋县| 休宁县| 于都县| 方城县| 天祝| 清原| 南宫市| 洪江市| 延边| 三门县| 新乡市| 玉环县| 台州市| 中宁县| 吉安市| 海林市| 赞皇县| 沙湾县| 中牟县|