如何使用OpenDroneMap對航拍圖像快速建模

DroneDev 專題,關(guān)注無人機軟件項目開發(fā),拓展無人機更多的可能性糟港。

當你駕輕就熟地用無人機拍攝了某個地區(qū)的航拍圖像后,除了分享到微信朋友圈里金矛,還可以做些什么呢?或許 OpenDroneMap 能助你開啟思路勺届。

OpenDroneMap 是一個開源的航拍圖像處理工具驶俊,可以把航拍圖像進行點云、正射影像和高程模型等轉(zhuǎn)換處理涮因。

一般的無人機用的都是「傻瓜式」的相機废睦,其實這跟你用手機或普通數(shù)碼相機拍的沒差伺绽,只是拍攝的角度不一樣而已养泡。它們拍出來的照片都是非量測影像(non-metric imagery),而 OpenDroneMap 則可以將這些非量測影像轉(zhuǎn)換成三維地理建模數(shù)據(jù)奈应,并應(yīng)用在地理信息系統(tǒng)中澜掩。

具體而言,OpenDroneMap 可以將航拍圖像處理為下面幾種格式的數(shù)據(jù):

  • 點云(Point Clouds)
  • 紋理數(shù)字表面建模(Textured Digital Surface Models)
  • 正射校正影像(Orthorectified Imagery)
  • 數(shù)字高程模型(Digital Elevation Models)
  • ……

使用方法

OpenDroneMap 支持 Docker杖挣,這意味著你可以在不同的操作系統(tǒng)上運行 OpenDroneMap肩榕。下面以 Mac OS 為例,介紹 OpenDroneMap 的使用方法惩妇。

1株汉、安裝 Docker CE

到 Docker 官網(wǎng) https://docs.docker.com/engine/installation/ 找到并下載適用于你所使用的操作系統(tǒng)的 Docker CE 版本(Docker EE 是企業(yè)版,暫時用不上)歌殃。經(jīng)過「傻瓜式」的安裝后乔妈,可以在 Terminal 上輸入 docker --version 檢驗 Docker 是否安裝成功。

2氓皱、下載 OpenDroneMap 的鏡像

確認 Docker 成功安裝后路召,在 Terminal 上輸入以下指令:

docker pull opendronemap/opendronemap

Docker 就會從 Docker Hub 中下載 OpenDroneMap 的鏡像到本地中。為提高下載速度波材,建議提前使用 Proxifier 之類的工具(建議自行 Google)讓 Terminal 走上代理道路股淡。鏡像下載完成后,在 Terminal 輸入 docker images 指令廷区,就能查看到剛才下載的 OpenDroneMap 的鏡像了唯灵。

3、創(chuàng)建文件目錄

在 Finder 上任意一目錄新建一個名為 images 的文件夾隙轻,作為待處理圖片的存放位置埠帕。我的習慣是以「項目名 / images」的方式來對目錄進行命名忌傻,這樣能更直觀地管理文件。比如:

//odm_test_1/images
//odm_test_2/images

接下來搞监,就需要把你需要進行處理的航拍影像拷貝到 images 文件夾中了水孩,如果你暫時沒有這些航拍圖像的話,可以在 https://github.com/OpenDroneMap/odm_data 上下載范例素材琐驴。

我在網(wǎng)站上下載了「aukerman」素材的圖像文件俘种,這個范例素材似乎是對某個綠化公園連續(xù)拍攝的航拍圖像,查看每個圖像文件的 info(Command + I)绝淡,都能找到它的經(jīng)緯度信息宙刘。我們可以用 OpenDroneMap 對這些文件進行「正射影像(拼接)」和「紋理網(wǎng)面建模」的處理牢酵。

4悬包、運行 OpenDroneMap

在航拍圖像文件拷貝到 images 目錄以后,打開 Terminal 并定位到項目文件夾(比如 odm_test_1)中馍乙,執(zhí)行以下指令:

docker run -it --rm \
    -v $(pwd)/images:/code/images \
    -v $(pwd)/odm_orthophoto:/code/odm_orthophoto \
    -v $(pwd)/odm_texturing:/code/odm_texturing \
    opendronemap/opendronemap

指令的作用是:通過 OpenDronMap 對 odm_test_1/images 目錄下的圖像文件同時進行「正射影像(odm_orthophoto)」和「紋理網(wǎng)面建模(odm_texturing)」的圖像處理(作為測試布近,為了節(jié)省時間,你可以只選取 odm_orthophoto 或 odm_texturing 其中一種處理方式):

指令解釋:

docker run -it --rm

Docker 的運行指令丝格。-it 指讓 Docker 分配一個偽輸入終端并以交互模式運行容器撑瞧;--rm 是指在容器運行完之后自動清除以節(jié)省電腦存儲空間。

-v $(pwd)/images:/code/images

-v 是用來將本地目錄綁定到容器中的显蝌,在本例子中预伺,是讓 OpenDroneMap 知道待處理的照片在哪里;冒號前面曼尊,代表的是本地 images 路徑酬诀,其中 (pwd) 代表當前 Teminal 定位目錄的絕對路徑,你可以更改為其他目錄的絕對路徑骆撇;冒號后面瞒御,是指容器的路徑,這個是不能更改的艾船。

-v $(pwd)/odm_orthophoto:/code/odm_orthophoto

這行指令葵腹,是指希望使用 OpenDroneMap 對圖像文件進行怎么樣的處理,你可以根據(jù)項目的需要屿岂,輸入不同的處理指令践宴,OpenDroneMap 提供了以下幾種處理方式:

  • odm_meshing # 3D 網(wǎng)面建模
  • odm_texturing # 紋理網(wǎng)面建模
  • odm_georeferencing # 地理配準后的點云圖
  • odm_orthophoto # 正射影像圖

opendronemap/opendronemap

這是指明需要調(diào)用的鏡像,這里是調(diào)用 Repository 為 opendronemap/opendronemap 的鏡像爷怀,可以用該鏡像的 tag(如果有設(shè)置的話)和鏡像 ID 替代阻肩。

5、查看結(jié)果

指令執(zhí)行后,就交給程序去處理了烤惊。運行時間可能會稍長乔煞,請耐心等候,一切順利的話柒室,Terminal 就會下面的提示:

然后在項目的文件夾中(比如 odm_test_1)渡贾,就能在 odm_orthophoto 和 odm_texturing 目錄中看到對應(yīng)的輸出結(jié)果了。

正射影像的輸出結(jié)果的 png 預(yù)覽圖:

或許有朋友會說雄右,最后還不是一張常見的無人機俯視航拍圖空骚,但其實 odm_orthophoto 的輸出結(jié)果還有一個后綴為 tif 的 GeoTIFF 文件,這可以應(yīng)用在 QGIS 上作為光柵圖層擂仍,供地理信息分析之用(比如實現(xiàn)地圖的修測更新)囤屹。

小結(jié)

上述教程中的 GIS 術(shù)語可能翻譯得不夠到位,如有不妥的地方望請指出逢渔。

整體來說肋坚,有 docker 這樣的工具能很大程度上減少配置開發(fā)環(huán)境的時間,也簡化了不少的操作步驟肃廓,不過需要注意的是 OpenDroneMap 的項目還是挺占用電腦空間的智厌,所以在操作之前,最好能確保電腦有足夠的剩余空間亿昏。

上面的例子采用的是范例素材的航拍圖像峦剔,如果要實際應(yīng)用到自己的項目中,則需要自己使用無人機角钩,結(jié)合相關(guān)軟件的航線規(guī)劃和定時拍攝功能,對某一個地區(qū)進行連續(xù)拍攝呻澜,將拍攝的圖像文件導(dǎo)入到「images」文件夾中递礼,再按教程步驟執(zhí)行就能實現(xiàn)數(shù)據(jù)處理了。

此外羹幸,Docker 也有 Windows 版本脊髓,把教程中 Terminal 的操作換成 Windows 系統(tǒng)的 Cmd,或許也能實現(xiàn)(沒有嘗試過栅受,不敢打包票)将硝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市屏镊,隨后出現(xiàn)的幾起案子依疼,更是在濱河造成了極大的恐慌,老刑警劉巖而芥,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件律罢,死亡現(xiàn)場離奇詭異,居然都是意外死亡棍丐,警方通過查閱死者的電腦和手機误辑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門沧踏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巾钉,你說我怎么就攤上這事翘狱。” “怎么了砰苍?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵盒蟆,是天一觀的道長。 經(jīng)常有香客問我师骗,道長历等,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任辟癌,我火速辦了婚禮寒屯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘黍少。我一直安慰自己寡夹,他們只是感情好,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布厂置。 她就那樣靜靜地躺著菩掏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昵济。 梳的紋絲不亂的頭發(fā)上智绸,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音访忿,去河邊找鬼瞧栗。 笑死,一個胖子當著我的面吹牛海铆,可吹牛的內(nèi)容都是我干的迹恐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼卧斟,長吁一口氣:“原來是場噩夢啊……” “哼殴边!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起珍语,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤锤岸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后廊酣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體能耻,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晓猛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饿幅。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖戒职,靈堂內(nèi)的尸體忽然破棺而出栗恩,到底是詐尸還是另有隱情,我是刑警寧澤洪燥,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布磕秤,位于F島的核電站,受9級特大地震影響捧韵,放射性物質(zhì)發(fā)生泄漏市咆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一再来、第九天 我趴在偏房一處隱蔽的房頂上張望蒙兰。 院中可真熱鬧,春花似錦芒篷、人聲如沸搜变。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挠他。三九已至,卻和暖如春篡帕,著一層夾襖步出監(jiān)牢的瞬間殖侵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工赂苗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留愉耙,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓拌滋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親猜谚。 傳聞我的和親對象是個殘疾皇子败砂,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容