基于深度學習和傳統算法的人體姿態估計,技術細節都講清楚了

計算機視覺的一大研究熱點是人體姿態估計,還有很多問題急需解決,比如遮擋,交互等等。在最近的CVPR2020里邊也有很多這方面的工作。本文站長主要是想談談基于深度學習的實時多人姿態估計。

人體姿態估計要干嘛?

? ? 關于人類活動規律的研究,必定是計算機視覺領域首要關注的內容。其中,人體姿態估計便是計算機視覺領域現有的熱點問題,其主要任務是讓機器自動地檢測場景中的人“在哪里”和理解人在“干什么”。

? ? 隨著信息化時代的迅速發展,人類每時每刻都在通過多種多樣的手段和途徑獲得海量的可視化圖像數據,這使得基于自然場景圖像的人姿態估計研究在現實生活中擁有很多潛在的應用價值。圖1展示了自然場景圖像中人體姿態估計的研究應用。

Fig.1: 自然場景圖像人體姿態估計的研究應用

? ?在信息化的時代,視頻監控正在銀行、超市以及公安機關等關乎人民財產、人身安全的重要場所發揮著舉足輕重的角色。面對海量的視頻圖像序列,為了及時地制止現場事故的進一步發生,工作人員必須長時間且精神高度集中地觀察視頻監控畫面并對異常事件作出處理。

? ? 除了工作人員很難長時間地保持高度警惕外,長期投入大量的人力來監測小概率發生的事件也不是單位機構提倡的做法。因此,實現視頻監控的智能化成為一種互聯網時代的必然趨勢。但是,實現智能視頻監控的前提條件是讓機器自動地識別視頻圖像序列中的人體姿態,從而進一步分析視頻圖像中人類的行為活動。

這就涉及到了我們下面所要說的人體行為分析了。

人體行為分析又為那般?

? ?人體行為分析理解成為了近幾年研究的熱點之一。在人體行為分析理解的發展過程中,研究人員攻克了很多技術上的難關,并形成了一些經典算法,但仍有很多尚未解決的問題。從研究的發展趨勢來看,人體行為分析的研究正由采用單一特征、單一傳感器向采用多特征、多傳感器的方向發展。而人體姿態估計作為人體行為識別的一個重要特征,是進行人體行為分析的基礎,是人體行為分析領域備受關注的研究方向之一。

Fig.2: 人體行為分析的實際應用情形

? ? 人體姿態估計是指從圖像中檢測人體各部分的位置并計算其方向和尺度信息。體行為分析是基于多幀圖像的前后關系進行分析理解而人體姿態識別是針對單幀靜態圖像進行處理。正確識別出多幀連續的靜態圖像的姿態信息,為實現正確的行為分析理解提供了可能。因此,人體姿態估計的準確性與實時性直接影響人體行為分析的準確性和實時性,確保實時準確的姿態識別是進行下一步行為分析的基礎。

? ? ? 現在,我們的人體姿態估計課題的發展已越來越貼近實際,例如在步態分析、人機交互以及視頻監控等領域,人體姿態估計均具有廣泛的應用前景。所以呢,研究人體姿態估計還是蠻有意思的,好玩 !

當前姿態估計算法有哪些?

目前主流的人體姿態估計算法可以劃分為傳統方法和基于深度學習的方法

基于傳統方法的人體姿態估計

? ? ? 傳統方法一般是基于圖結構和形變部件模型,設計2D人體部件檢測器,使用圖模型建立各部件的連通性,并結合人體運動學的相關約束不斷優化圖結構模型來估計人體姿態。

其缺點是什么?

  • First,傳統方法雖然擁有較高的時間效率,但是由于其提取的特征主要是人工設定的HOG和SHIFT特征,無法充分利用圖像信息,導致算法受制于圖像中的不同外觀、視角、遮擋和固有的幾何模糊性。同時,由于部件模型的結構單一,當人體姿態變化較大時,部件模型不能精確地刻畫和表達這種形變,同一數據存在多個可行的解,即姿態估計的結果不唯一,導致傳統方法適用范圍受到很大限制。

  • Second,另一方面,傳統方法很多是基于深度圖等數字圖像提取姿態特征的算法,但是由于采集深度圖像需要使用專業的采集設備,成本較高,所以很難適用于所有的應用場景,而且采集過程需要同步多個視角的深度攝像頭以減小遮擋問題帶來的影響,導致人體姿態數據的獲取過程復雜困難。因此這種傳統的基于手工提取特征,并利用部件模型建立特征之間聯系的方法大多數是昂貴和低效的。

基于深度學習的人體姿態估計算法

? ? ?隨著大數據時代的到來,深度學習在計算機視覺領域得到了成功的應用。因此,考慮如何將深度學習用于解決人體姿態估計問題,是人體姿態估計領域的學者們繼圖結構模型后所要探索的另一個重點。早期利用深度學習估計人體姿態的方法,都是通過深度學習網絡直接回歸出輸入圖像中關節點的坐標。

Fig.3: DeepPose

? ? 基于深度學習的人體姿態估計方法主要是利用卷積神經網絡(CNN)從圖像中提取人體姿態特征,相比于傳統方法人工設計特征,CNN 不僅可以得到語義信息更為豐富的特征,而且能夠獲得不同感受野下多尺度多類型的人體關節點特征向量和每個特征的全部上下文(contextual),擺脫對部件模型結構設計的依賴,然后對這些特征向量進行坐標回歸以反映當前姿態,從而將姿態信息應用于具體實際之中。

其好處是什么?

  • First,相較之下日常生活中的單目攝像頭更為常見,雖然其采集的彩色圖像容易受到光照等環境因素的影響,但是可以利用神經網絡提取出比人工特征更為準確和魯棒的卷積特征,以預測更為復雜的姿態,所以基于深度學習的人體姿態估計方法得到了深入的研究。

  • Second,不同于傳統方法顯式地設計特征提取器和局部探測器,進行深度學習時構建CNN比較容易實現,同時可以設計處理序列問題的CNN模型,例如循環神經網絡RNN,通過分析連續多幀圖像獲得人體姿態的變化規律,進而為人體姿態中各個關節點之間建立更為準確的拓撲結構。

? ? OK,in summary,人體姿態估計算法其實主要可分為基于傳統方法的人體姿態估計和基于深度學習的人體姿態估計計算法兩大類,而基于傳統方法的人體姿態估計一般通過待處理圖像到,部位或關節定位的非線性映射來實現。不論是具有理論優勢的匹配模型,還是使得人體姿態估計準確性有所提升的深度學習網絡,都正促使著人體姿態估計領域快速地發展。

? ?但是,如何在表征人體復雜結構的理論數學模型和提升估計結果的精度上同時取得突破,是人體姿態估計領域一直以來探索的終極目標。因此,人體姿態估計領域在未來的工作中具有較大的研究發展空間。

Fig.4: 2D估計

多人姿態估計


? ? 本文站長主要是想談談基于深度學習的實時多人姿態估計。主要是拜讀了文獻7,所以本文站長想談談自己通過很多文獻的全面閱讀后,自己的一些想法和理解,有理解不到位的地方請大家斧正,謝謝。

? ? ? 目前多人姿態估計主要有兩種思路,一種是基于自頂向下的算法,另一種是基于自底向上的算法。

Fig.5: 實時多人估計

自頂向下

? ? ?自頂向下的算法先從圖像中檢測出所有人,隨后利用單人姿態估計的方法對所有人進行姿態估計。自頂向下算法的缺點是算法運行效率隨著人數增加而降低,且部分被遮擋的人無法被檢測,精度不高。

自底向上

? ? ? ?自底向上的算法,先檢測出所有人的骨點,再將骨點進行連接形成圖,最后通過圖優化的方法剔除錯誤的連接,實現多人姿態估計。自底向上算法的優點是運行時間不隨人數增加而線性增加,更有利于實時多人姿態估計。

站? ? ?長這次采用的多人姿態估計方法是基于自底向上的方法,是一種六階段雙分支的深度神經網絡結構,可同時獲得骨點位置以及骨點之間的連接置信度,有效稀疏骨點連接圖,提高算法運行效率。對于骨點連接置信度,有骨點之間的親和區域方法,通過在親和區域上的線性積分計算骨點連接置信度。

網絡結構


? ? 對于一張輸入圖像,深度神經網絡同時預測出每個骨點的熱力圖S=(S1,S2,…,SJ)和骨點之間的親和區域L=(L1,L2,…,LC) 。熱力圖的峰值為骨點的位置,骨點相互連接構成二分圖,親和區域對圖的連接進行稀疏,最后對二分圖進行最優化實現多人姿態估計

網絡結構深度解讀

? ? ? ?如圖6所示,整體網絡架構為六階段雙分支,上分支負責預測骨點位置,下分支負責預測骨點之間的親和區域。前一階段的預測結果融合原有圖像特征并作為下一階段的輸入,經過多階段的操作以提高骨點預測精度。

Fig.6: 網絡結構

? ? ? ?圖像特征采用VGG-19模型進行提取,并用符號F表示圖像特征。在第一階段,網絡以F作為輸入,輸出關節點的熱力圖S1 = ρ1 (F) 和骨點之間的親和區域L1 = φ1(F),其中 ρ1 和 φ1 為網絡的映射函數,其本質是一系列的卷積操作。

  • 在第一階段,對于輸入特征采用3×3大小的卷積核連續進行三次卷積,之后用1×1 大小的卷積核連續進行三次卷積。

  • 之后的階段將前一階段的預測結果和原圖像特征F進行融合,作為當前階段的輸入,經過卷積操作分別預測出關節點熱力圖和關節點的親緣關系程度(站長自己的理解haha,簡單點就是兩個關節點的朋友關系的親密程度唄):

?

其中ρt 和φt 分別表示現階段t 的卷積操作,先用大小為7×7的卷積核連續進行五次卷積操作,之后用大小為1×1的卷積核連續兩次卷積操作,最終輸出本階段的關節點熱力圖和關節點親和區域。

損失函數


由于關節點熱力圖和關節點的親緣關系程度本質有所不同,因此在訓練的時候需要分別對關節點位置和親和區域進行監督,損失函數均采用L2損失。為了避免梯度消失現象發生,在每個階段的輸出都添加損失函數,起到中繼監督作用。

另外在樣本標注的時候,會存在行人漏標等情況對損失函數造成影響,因此需要對損失函數在各個位置進行掩膜操作。于是,對于關節點位置和親和區域的損失函數形式如下:

其中S*j和L*c分別為關節點位置和親和區域的實際測量值,W為掩膜函數,有標注的位置為1,沒標注的位置為0,W(p)=0表示在位置p處沒有標注。

Finally,整個網絡的最終損失為每個階段兩個損失之和的累加:

?

站長關于兩個概念的深層剖析


前面站長談到了關節點熱力圖和關節點親和區域(這個名稱是曹大佬自己說的haha),可能有些站友對這2個概念可能云里霧里,下面站長就根據自己的理解好好的盤他一般。

關節點熱力圖

? ? ? 關節點熱力圖是衡量關節點在圖像某位置出現的置信度,由一系列二維的點組成,每個點表示骨點出現在該位置的置信度,骨點最終位置定義為置信度最高的位置。對于圖像中只有一個人的情況,則某一類型可見的關節點在熱力圖中只有一個峰值。對于多人情況,某一類型可見的骨點存在多個峰值,表示不同人的同一個類型骨點。

Fig.7: 關節點熱力圖(引自文獻7)

強調!Attention!

這里站長還是要強調下多人情況下的熱力圖和單人是有很大區別的。

  • 與CPM不同,CPM網絡只是針對單個人的Pose,所以它的網絡輸出的P張置信度圖中(假如一個人總共有P個關節點),每一張置信度上只有一個熱點,這個熱點只是一個人的一個關節點,比如右手腕關節這個關節點。

  • 但如果圖片上有多個人,它的第一行網絡輸出的P張置信度圖中(假如單個人總共有P個關節點),每一張置信度上就有多個熱點了,比如右手腕關節,假設有K個人,則要有K個右手腕關節點,所以此時這張置信度上就要有K個熱點了。

為了更清楚地解釋這件事,站長畫了下圖以形象化得輔助大家理解(畫得太丑了orz大家別見怪haha,道理理解清楚就行了)

Fig.8: 站長丑畫haha

In other way,我們在對樣本進行標注時,只需確定骨點的位置,則該骨點真值熱力圖為在該點處放置一個固定方差的高斯核,用高斯函數確定各個位置的置信度。對于第k個人的第j個骨點,以xj,k表示骨點的實際位置,則該骨點周圍的像素點的置信值為:

其中標準差σ控制了置信值的分布范圍。對于一張存在多人的圖像,每個人特定骨點的實際熱力圖為取得高斯核范圍內的最大值:

?Fig.9: Max操作(引自文獻7)

注意:P是個二維的坐標點(x,y),表示圖片中的每一個點。

關節點親和區域

這個概念其實可以簡單點理解就是兩個關節點的朋友關系的親密程度。

如圖10所示,骨點親和區域由一系列單位向量組成,每一段肢體對應一個親和區域,位于肢體上的像素點都由一個單位向量進行表示,包含了位置和方向信息,所有在肢體上的單位向量構成親和區域。

Fig.10: 關節點親和區域

二分圖優化(重點來了)


? ? ?這是這個網絡實現關節點檢測的關鍵所在了,上面經過網絡推理,得到骨點熱力圖以及骨點之間的親和區域,對熱力圖采取非極大值抑制得到一系列候選骨點。由于多人或者錯誤檢測,對于每一類型的骨點會存在多個候選骨點。這些候選骨點之間的連接構成二分圖,每兩個骨點之間的連接置信度通過線積分計算得到。為二分圖找到最優的稀疏性是NP-Hard 問題。

優化該二分圖即在所有邊中選擇一組邊使得最終二分圖的總權重最大,所以目標函數可寫為:

約束條件:

  • 其中Ec為二分圖優化之后肢體c的權重,我們要取其中總權重之和最大的;

  • Zc為所有骨點連接集合Z的子集;

  • 約束條件表示一段肢體最多只存在一條連接邊。

Fig.11: 算法效果

問題分解與簡化

為擴展到多人所有骨點的最優化問題,即定義Z為K 維匹配問題,這是一個NP-hard問題,為了提高最優化效率,如圖所示,本文采用兩種方法降低二分圖優化算法的復雜度。

  1. 首先,如圖所示,剔除跨骨點之間的連接構成稀疏二分圖,代替全連接二分圖;

  2. 然后根據肢體將稀疏后的二分圖拆解得到圖所示的多個簡化二分圖。

? Fig.12: 多人姿態估計求解(引自文獻7)

因此,整體優化問題轉化為對各個簡化后的二分圖進行最優化。而最優化的目標函數為所有簡化二分圖的權重之和達到最大:

優化之后將各個簡化二分圖中共同的骨點進行整合得到最終多人人體姿態估計。這樣做的優點是將NP-hard問題轉化為多個較容易求解的二分圖最優化,可以有效逼近全局最優解,同時降低算法復雜度,提高算法的運行效率,達到實時多人姿態估計的目的。

站長的筆記整理


我對這個算法的整體思路做了個筆記,字太丑了orz,大家別見怪haha,道理講明白理解清楚就行了。

Fig.13: 站長的算法筆記(求各位大佬斧正)

站長的實驗結果和分析


實驗所使用的顯卡為NVIDIA TITAN XP,CPU為Intel i7-6900K。圖像大小為1920× 1080,通過下采樣方法額外獲得1280 × 720 和720 × 480 兩個低分辨率的視頻。

首先分析運行效率與人數的關系,在相同視頻流和相同分辨情況下,計算自頂向下與自底向上運行時間與人數關系,計算結果如圖14所示。由圖可知,自頂向下隨著人數的增加耗時幾乎呈線性增加,而自底向上的運行耗時幾乎不隨人數增加而遞增。卷積神經網絡預測關節點的耗時也幾乎不隨人數增加而增加。因此我所使用的自底向上算法的運行效率不受行人數量的影響,對人數不確定的情況依然可以實時進行多人姿態估計。

Fig.14: 實驗的運行耗時

最后,對三種分辨率視頻采用兩種不同方法進行耗時分析,結果如表所示,隨著分辨率的降低,處理速度越來越快。若對視頻所有幀都進行關節點檢測,在最高分辨率情況下每秒可處理23幀,人眼感覺不到卡頓,基本達到實時。如果采用間隔檢測結合跟蹤,幀率可提高十幾幀,完全達到實時要求。

站長測試(使用自己亂糟糟的圖片才有說服力哈)

以下是我采用深度學習算法(Openpose)最終的實驗結果(效果果然杠杠的):

Fig.15: 一次旅游haha

總體而言,效果還算很nice的,關節點都檢測出來了,Great!(羞澀的我)
能閱讀到這里,說明你也是個踏踏實實的做研究的人了。此時,我們娛樂時間到了,讓我們來段測試視頻放松放松下哈:

總結


六階段雙分支網絡結構在關節點預測精度上略高于現有傳統的的人體姿態估計算法。本次站長采用的算法利用自底向上的思想,首先預測出所有骨點位置,并將骨點連接形成圖結構,通過圖優化實現多人體姿態估計。算法運行效率方面,由于網絡同時預測出關節點位置和關節點之間的空間關系,為多人姿態估計算法提供更加稀疏的二分圖,降低二分圖優化復雜度而達到了實時的效果。

巨人的肩膀

[1]?Qian C, Sun X, Wei Y, et al. Realtime and robust hand trackingfrom depth[C]//Proceedings of the IEEE conference on computer vision and patternrecognition. 2014: 1106-1113.

[2]?Joseph? Tan? D,?Cashman? T,? Taylor?J,? et? al.?Fits? like? a?glove:? Rapid? and?reliable? hand shape? personalization[A].? IEEE?Conference? on? Computer?Vision? and? Pattern Recognition[C], 2016: 5610-5619.

[3]?Tang D, Jin Chang H, Tejani A, et al. Latent regression forest:Structured estimation of 3d articulated hand posture[A]. IEEE conference oncomputer vision and pattern recognition[A], 2014: 3786-3793.?

[4]?Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification withdeep convolutional neural networks[A]. Advances in neural informationprocessing systems[C], 2012: 1097-1105.

[5]?Zhou E, Cao Z, Yin Q. Naive-Deep Face Recognition: Touching theLimit of LFW Benchmark or Not?[J]. Computer Science, 2015.

[6]???Sharp? T,? Keskin?C,? Robertson? D,?et? al.? Accurate,?robust,? and? flexible?real-time? hand tracking[A].? Proceedings?of? the ?33rd?Annual? ACM? Conference on Human? Factors?in Computing Systems. ACM[C], 2015: 3633-3642.

[7] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields.2017

[8]?Oberweger? M? ,?Wohlhart? P? ,?Lepetit? V? .?Hands? Deep? in?Deep? Learning? for?Hand? Pose Estimation[J]. ComputerScience, 2015.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252570.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一些linux知識和http知識

一些linux知識和http知識 1 yum安裝比源碼編譯安裝 有的模塊不能自定義安裝 只能安裝默認的模塊進行安裝 2 關于php的fastcgi 如果使用fastcgi 那么需要啟動服務 如果不使用fastcgi 那么不需要啟動這個服務 3 一個完整的HTTP解析路徑 用戶瀏覽器比如訪問www.123.com/index.…

楊浦區阜盛農民工子弟小學見聞

天氣有些陰沉,起了個大早,一個小時奔波后來到了這里…… 大門口: 校領導: 有些破舊的校舍和陰沉的天空下祖國的希望: 同上,希望…… 期待的目光: 頑皮的笑臉,排著隊也要調皮&#xf…

《構建之法》7

十五章講的是穩定和發布階段。軟件生命周期的最后階段往往是最考驗團隊的。從代碼完成到最終發布軟件,需要經歷:完成代碼、集成測試、Bug修復、Alpha發布、DCR Bug修復、Beta發布、外部測試、RTO等。軟件團隊的各個角色代表,組成會診小組。對…

人體姿態估計算法之open pose

一,openpose是一種自底向上的算法: OpenPose人體姿態識別項目是美國卡耐基梅隆大學(CMU)基于卷積神經網絡和監督學習并以Caffe為框架開發的開源庫。可以實現人體動作、面部表情、手指運動等姿態估計。適用于單人和多人&am…

python練習5

import re from datetime import datetime, timezone, timedeltadef to_timestamp(dt_str, tz_str):# 時間dt_now datetime.strptime(dt_str, %Y-%m-%d %H:%M:%S)#時區tz_num int(re.match(\w{3}([|-]\d):00,tz_str).groups()[0])tz_utc timezone(timedelta(hours tz_num))…

搶火車票這個事吧,其實我也能做!(python黑科技)

2019獨角獸企業重金招聘Python工程師標準>>> 又是一年,馬上就要回家過年了,還沒有買到票的小伙伴們是否已經像熱鍋上的螞蟻了無腦的開始找黃牛了? 俗話說的好,求人不如求自己,搶票這玩意,其實我覺得我也可…

用 Python+openpose 實現抖音尬舞機

游戲開始后,隨著音樂會給出不同的動作提示,用戶按照提示擺出正確動作即可得分。援引官方說法,“尬舞機”主要應用了今日頭條 AI Lab 自主開發的“人體關鍵點檢測技術”,依靠這項技術,抖音能夠檢測到圖像中所包含人體的…

PHP獲取中文字符拼音首字母

在項目中遇到需要把游戲進行字母排序,于是百度到一個格式化的首字母的方法。 /*** name php獲取中文字符拼音首字母* param $str* return null|string*/public function getFirstCharter($str){if (empty($str)) {return ;}$fchar ord($str{0});if ($fchar > or…

Array類型

一、轉換方法 toString() 調用數組的toString()方法會返回由數組中每個值的字符串形式拼接而成的一個以逗號分割的字符串 valueOf() 返回的還是數組 實際上,為了創建這個字符串會調用數組每一項的toString()方法 二、棧方法 push() pop() 只發生在棧的頂部 三…

Create a Service Catalog Request via REST API

http://wiki.servicenow.com/index.php?titleUseful_Catalog_Scripts#Eureka http://wiki.servicenow.com/index.php?titleService_Catalog_Script_API#gsc.tab0 Service Catalog APIhttps://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/integrate/inboun…

MYSQL和JAVA(課堂筆記)

MYSQL  數據庫管理工具 JAVA    編程語言 數據庫驅動(JAVA和MYSQL對接方式) 到官網上下載驅動    加載驅動 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class S…

解密昇騰AI處理器--Ascend310簡介

Ascend310 AI處理器規格 Ascend310 AI處理器邏輯架構 昇騰AI處理器本質上是一個片上系統(System on Chip,SoC),主要可以應用在和圖像、視頻、語音、文字處理相關的應用場景。其主要的架構組成部件包括特制的計算單元、大容量的存儲…

銀盒子掃碼下單在線訂單開啟商品售賣時段使用說明

1,登陸管理員賬號,子賬號下,配置管理--店鋪配置--掃碼下單Tab頁,是否開啟商品售賣時段,選擇“是” 2,在商家后臺登陸相應的子賬號,在店鋪管理--商品售賣時段里配置售賣時間以及相應時段售賣的商…

使用pandas時遇到ValueError: numpy.dtype has the wrong size, try recompiling

[問題]使用pandas時遇到ValueError: numpy.dtype has the wrong size, try recompiling [原因] 這是因為 Python 包的版本問題,例如安裝了較舊版本的 Numpy,但安裝了較新版本的 Pandas。 [解決方法] 查看Numpy版本號 python -c "import numpy; prin…

『Python基礎-12』各種推導式(列表推導式、字典推導式、集合推導式)

# 『Python基礎-12』各種推導式(列表推導式、字典推導式、集合推導式) 推導式comprehensions(又稱解析式),是Python的一種獨有特性。推導式是可以從一個數據序列構建另一個新的數據序列的結構體。 共有三種推導&#x…

海思芯片選型表匯總

海思芯片選型表匯總_「違規用戶」的博客-CSDN博客_海思芯片型號大全

Docker中未指定掛載點容器間volume卷的數據共享

一 背景 在實際使用過程中,我們可能會經常遇到容器間數據共享的情況,怎么處理呢?通過 docker 命令中的一些選項,我們即可完成容器間的數據共享。 二 實驗步驟 2.1 創建容器 容器一:gysl-1 [rootdev ~]# docker run -it…

為什么早上和傍晚的太陽總是紅色,而中午的大陽卻是黃白色?

由太陽光本質決定,但會受環境影響。在地球上和火星上看到的太陽光也是有區別的,和太氣層物質及厚薄也有關系。太陽光是由赤橙黃綠青藍紫七色光組成的復合光是白色光。 在日出和日落的時候,地平線上所透過的大氣層厚度,一般要比白…

js把日期字符串轉換成時間戳

//獲取當前時間: var myDate new Date();//當前時間 var year myDate.getFullYear();//當前年份 var month myDate.getMonth() 1;//當前月份 var day myDate.getDate();//當前日 myDate.getYear(); //獲取當前年份(2位) myDate.getFullYear(); …

VS2008中開發智能設備程序的一些總結

原文鏈接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四個部分: 系統配置這個部分用來配置系統中的相關參數,參數包括數據庫信息和串口的配置信息。這部分的主要技術是XML文件的讀取和寫入。 數據下載從數據庫中下載…