軍裝上的迷彩圖案是如何生成的?
軍訓時觀察發現並不單純是簡單的隨機,而是有規律的一塊一塊,但在一塊內又有其他顏色,因此很好奇。
不邀請自來。首先這是一個數學問題。
前段時間,八一建軍節,給一群好朋友講科普知識,談到這個迷彩的事。還專門去查了論文,準備寫一篇《軍事中的數學之迷彩》的小文章放自己博客上的。拖延症到現在也沒寫,剛好乘著這個大致的機會回答一下。
9月5日 20:50 剛剛更新完成.
=================正文的分割線=================
迷彩的來源
首先,我們先要了解一下迷彩的誕生。為什麼要有迷彩這個東西.
迷彩, 英文Military camouflage, 直譯就是"軍事偽裝". 在現代軍事中是不可或缺的戰術組成部分.
所以顧名思義, 迷彩是用來偽裝的. 最早用在軍裝上, 用來降低士兵被發現的概率, 從而增加士兵的戰場生存能力. 迷彩是最基本的軍事偽裝技術之一,也是對抗高技術偵察和武器攻擊系統的最常用手段. 其主要目的就是盡量減少目標和周圍背景在光學、熱紅外、雷達波等方面的特徵差異,使偵察儀器難以探測和分辨.
視覺偵察作為基本的偵察方式,研究對抗視覺偵察的偽裝技術是十分重要的. 在軍事研究中,偽裝技術研究是一個非常重要的課題,偽裝技術由遮障偽裝技術、示假偽裝技術和迷彩偽裝技術組成。迷彩偽裝技術按照其時間的發展順序從最初的保護迷彩發展為變形迷彩最後再衍變為最新的數碼迷彩。
現在我們國家的武器裝備, 軍裝基本都已經從傳統迷彩更換成了數碼迷彩. 我們就說說數碼迷彩啦.
為什麼呢?
在地面作戰系統中,早期的變形迷彩只能適應相對比較簡單的背景,目前為了抵抗更近距離的視覺偵察和高解析度的儀器成像偵察,它逐漸被數碼迷彩所取代. 數碼迷彩是由顏色不同的像素單元按照一定的排布規律排列而成,更好地結合了計算機像素點陣的呈像原理和人眼的視覺感受特性. 在各種真實的環境的背景下,由於背景中的樹枝、樹葉、砂石等物體的不規則邊緣輪廓更加破碎和模糊,它們與數碼迷彩的特性相一致,所以數碼迷彩更容易迷惑人的眼睛,使物體能偽裝在環境里.
比如這個:挪威陸軍豹2A4坦克在雪地里演習的坦克....找找看...
所以啦, 數碼迷彩簡單的人說就是一堆的色塊(像素塊), 在滿足一定條件下的組合排列生成的.
作為現代軍事中是不可或缺的戰術組成部分, 每個國家都根據自己的情況, 對迷彩圖形的設計進行了大量的研究. 也是巧合, 查到一個不知道真假的"美國國防部防禦技術中心"的網站, 查到了5814條開放訪問的關於迷彩的設計的探討的文獻....
實際找到下載的論文不多, 因為:
我也沒仔細看完所有的論文, 只能大概的略說一下, 我理解的迷彩的設計思路. 歡迎相關專業人士前來糾錯.
迷彩設計的三個原則
數碼迷彩的圖案依照這三個原則設計:
- 多尺度圖案:添加高頻元素,以便在近距離觀察中隱藏自身。
- 顏色抖動:通過兩塊顏色混合,生成新的顏色。(混色原理)
- 邊緣效應:修改邊緣的視覺效果。(達到模糊邊界效果)
迷彩設計思路
(這一段基本抄文獻)
迷彩的設計看從那個方面下手了, 設計過程還要結合具體的使用場景. 最早的數碼迷彩設計誕生於上個世紀 70 年代,當時還是集中在理論研究方面,一些國外的專家學者結合視覺心理學研究迷彩設計和迷彩圖案的排布. 日本則設計了一種線條迷彩結合特別的材料, 來避免被紅外夜視儀發現. 現在還有很多國外學者的研究主要是將仿生迷彩設計和數碼迷彩設計相互結合,從靜止物體的迷彩偽裝設計過渡到運動物體的迷彩偽裝設計上......
國內目前迷彩設計的研究主要還是集中從計算機和數字圖像處理的角度, 來對數碼迷彩設計進行研究,主要集中在迷彩單元顏色的生成、迷彩單元的排列和迷彩偽裝效果的評價等方面。數碼迷彩生成的步驟有:1.對偽裝背景圖像進行預處理;2.提取偽裝背景的主色;3.設計迷彩單元的大小和排布方式;4.生成數碼迷彩圖案。
在設計數碼迷彩的過程當中,主要是對數碼迷彩單元進行設計。數碼迷彩單元設計包括數碼迷彩單元顏色、迷彩單元排布方式、迷彩單元尺寸大小和迷彩單元形狀等等要素。總結一下, 迷彩單元顏色是按照偽裝物體所在背景的主色來生成;迷彩單元排布方式有的是根據背景顏色的分布來進行設計,有的則是採用一些例如隨機排布數學方法來設計;迷彩單元的大小是基於人眼最小解析度和顏色混合原理來進行設計;迷彩的形狀是根據其邊緣輪廓與所在的背景能夠相互融合的要求來設計。
所以說了嘛, 迷彩的設計要根據具體的使用場景, 所以我們有海洋迷彩, 荒漠迷彩, 叢林迷彩各種...也就是生成數碼迷彩的前兩步1.對偽裝背景圖像進行預處理;2.提取偽裝背景的主色. 也就是說, 提取具體使用場景, 選取具有典型季節, 地理特徵的代表性的背景圖案, 進行顏色空間轉換後(轉換成符合人眼視覺感知特性的顏色空間.), 然後提取主色作為基本顏色繪製數碼迷彩.
1.主色和斑塊信息的提取:
根據文獻, 提取背景主色常用 K-均值聚類演算法. 還有一些其他的, 諸如模糊C均值聚類演算法等等. 使用 K-均值聚類演算法的時候很重要的點在於選擇初始聚心, 這裡在文獻中也有不同的方法, 比如譜系聚類法...(如果看不懂這些名詞歡迎自行必應一下.), 提取主色之外, 還有背景圖像初始聚類分布圖(單像素顏色分布圖, 也就是斑塊信息).
提一句, 迷彩一般所使用的顏色最多不超過5中, 我國的數碼迷彩一般使用四種{?}顏色. 稱為軍標優勢色, 所以提取主色後, 還要用與背景主色最接近的軍標優勢色來替換.
在提取出背景的主色和背景圖像的初始聚類分布圖後, 我們要確定自己的偽裝要達到的目標, 也就是確定偵測距離和被偽裝物體的外形大小. 這個原因在於, 人眼看或者照相機拍攝, 像素塊越大, 要被看不清的距離也就越遠. 這就是一個成像的問題啦. 外形越大, 像素方塊也應該相應的變大, 足夠模糊物體邊界就可以了.
就像這樣:(軍裝上的迷彩方塊小小的, 後面(應該是自行榴彈炮?)迷彩方塊就大了, 再後面的導彈發射車用的就是傳統的變形迷彩了....)
2. 數碼迷彩單元的尺寸是這樣確定的:
在偵測距離一定的情況下,由人眼所能分辨的最小距離作為衡量指標, 數碼迷彩單元的尺寸 小於等於 人眼所能分辨的 最小距離,只有這樣,觀察者在這個相對於之前的偵測距離更近的偵測距離觀察數碼迷彩時,數碼迷彩才能產生混色效果.
具體數學計算略過, 在特定的偵測距離為 D 的情況下,人眼所能分辨的最小距離:
這裡找到一張根據傳統迷彩設計方法得到的最小尺寸經驗值表:
3. 繪製迷彩圖形
有了上面的準備, 現在可以開始畫迷彩了!
接下來需要對背景圖像初始聚類分布圖進行再聚類:我們已經確定了迷彩單元的大小了, 那麼就可以開始計算了, 對於一個數碼迷彩單元, 裡面包括了好幾種顏色的像素, 並對這些像素值求平均, 用和這個平均值顏色最接近的主色(已經替換為相應的軍標優勢色)去填充這一個數碼單元(不是這個平均顏色哦). 就這樣, 所有的數碼單元組合在一起, 生成最終的數碼迷彩圖像, 最後按照物體的形狀對這個要偽裝的物體"量體裁衣"", 生成最終可以用於塗裝的數碼迷彩。
這個過程, 其實就像photoshop裡面我們給照片打馬賽克類似.
當然, 我們不會滿足於此啊, 根據文獻, 現在的迷彩設計中, 為了讓僅有的幾種色彩能更好的在偽裝時模擬背景環境中的光影視覺效果, 由利用了所謂混色原理, 對數碼單元進行切割.什麼是混色原理呢? 簡單說就是近看是不同顏色色塊, 遠看, 視覺上,因為分辨不出, 於是就產生了顏色的混合疊加, 看起來就像產生了新的顏色.
當然不是所有的迷彩這樣做都ok, 一個例子就是荒漠迷彩. 在沙漠, 雪地, 這類, 顏色大多比較單調的背景環境中, 迷彩單元的填充往往使用的是隨機填充.
這就是初步繪製的迷彩圖形了, 接下來就需要對這個圖像的偽裝效果進行評價了.
4. 評估偽裝性能
其實評估偽裝性能, 意思很簡單啊, 在一定距離上我是不是能夠看得出這個東西的輪廓呢?所以一般使用的是各種改進發展的邊緣檢測演算法, 要是輪廓清晰, 顯然偽裝性能很糟嘛~
評估了以後, 不行就再修改, 再評估, 直到得到滿意的程度為止.
5.最後一點總結
上面所述, 也僅僅是針對計算機進行迷彩設計而談論, 真實的迷彩設計也是這個基本原理, 但是由於現代戰爭中偵測手段越來越多, 所以,迷彩的設計, 現在不僅僅是設計圖形, 比如日本那種條形數碼迷彩軍裝, 就是考慮軍裝材質與圖形結合後, 紅外夜視儀條件下不容易被觀測.
另外, 數碼迷彩單元形狀其實也不僅限於正方形, 其實還有三角形, 平行四邊形, 六邊形等等, 所以有些國家的迷彩看著不一樣, 各個國家有自己設計的考慮.
一個迷彩設計中也有大學問哦!
是吧, 這個數學問題, 我一個字的數學都沒有提到. 是不是~, 想看具體演算法的話, 那就自己去查吧, 都是數學...數學, 其實真的很好看嘛...
THE END
迷彩圖案應該是一種斑圖(Pattern)。自行搜索這個關鍵字,興許會查到些資料。
給個Demo演算法:Shadertoy
推薦閱讀:
※關於朝鮮軍服的變化和疑問?
※請問這是解放軍現役部隊配發的衣服嗎?
※真實的八路軍軍裝到底是灰色還是土黃色?
※建國十周年閱兵 這位穿的什麼軍服?
※二戰軸心國里日本軍服為什麼不如其他兩個國家華麗?