一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用CNN進(jìn)行2D路徑規(guī)劃

新機(jī)器視覺 ? 來源:Deephub Imba ? 2023-02-13 14:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文將介紹CNN應(yīng)用于解決簡單的二維路徑規(guī)劃問題。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)是解決圖像分類、分割、目標(biāo)檢測等任務(wù)的流行模型。本文將CNN應(yīng)用于解決簡單的二維路徑規(guī)劃問題。主要使用Python, PyTorch, NumPy和OpenCV。

任務(wù)

簡單地說,給定一個(gè)網(wǎng)格圖,二維路徑規(guī)劃就是尋找從給定起點(diǎn)到所需目標(biāo)位置(目標(biāo))的最短路徑。機(jī)器人技術(shù)是路徑規(guī)劃至關(guān)重要的主要領(lǐng)域之一。A、D、D* lite 和相關(guān)變體等算法就是為解決此類問題而開發(fā)的。如今強(qiáng)化學(xué)習(xí)被廣泛用于解決這一問題。本文將嘗試僅使用卷積神經(jīng)網(wǎng)絡(luò)來解決簡單的路徑規(guī)劃實(shí)例。

數(shù)據(jù)集

我們的主要問題是(在機(jī)器學(xué)習(xí)中一如既往)在哪里可以找到數(shù)據(jù)。雖然沒有現(xiàn)成的數(shù)據(jù)集可用,但是我們可以通過制作隨機(jī)二維地圖創(chuàng)建自己的路徑規(guī)劃數(shù)據(jù)集。創(chuàng)建地圖的過程非常簡單:

從一個(gè) 100x100 像素的方形空矩陣 M 開始。

對于矩陣中的每一項(xiàng)(像素),從0到1均勻分布抽取一個(gè)隨機(jī)數(shù)r。如果 r > diff,則將該像素設(shè)置為 1;否則,將其設(shè)置為 0。這里的 diff 是一個(gè)參數(shù),表示像素成為障礙物(即無法穿越的位置)的概率,它與在該地圖上找到可行路徑的難度成正比。

然后讓我們利用形態(tài)學(xué)來獲得更類似于真實(shí)占用網(wǎng)格地圖的“塊狀”效果。通過改變形態(tài)結(jié)構(gòu)元素的大小和 diff 參數(shù),能夠生成具有不同難度級別的地圖。

3cbf536c-a9c9-11ed-bfe3-dac502259ad0.png

對于每張地圖需要選擇 2 個(gè)不同的位置:起點(diǎn) (s) 和終點(diǎn) (g)。該選擇同樣是隨意的,但這次必須確保 s 和 g 之間的歐幾里得距離大于給定閾值(使實(shí)例具有挑戰(zhàn)性)。

最后需要找到從 s 到 g 的最短路徑。這是我們訓(xùn)練的目標(biāo)。所以可以直接使用了流行的 D* lite 算法。

我們生成的數(shù)據(jù)集包含大約 230k 個(gè)樣本(170k 用于訓(xùn)練,50k 用于測試,15k 用于驗(yàn)證)。數(shù)據(jù)量很大,所以我使用 Boost c++ 庫將自定義的 D* lite 重寫為 python 擴(kuò)展模塊。使用這個(gè)模塊,生成超過 10k 個(gè)樣本/小時(shí),而使用純 python 實(shí)現(xiàn),速率約為 1k 個(gè)樣本/小時(shí)(i7–6500U 8GB 內(nèi)存)。自定義 D* lite 實(shí)現(xiàn)的代碼會(huì)在文末提供。

然后就是對數(shù)據(jù)做一些簡單的檢查,比如刪掉余弦相似度很高,起點(diǎn)和終點(diǎn)坐標(biāo)太近的地圖。數(shù)據(jù)和代碼也都會(huì)在文末提供。

模型架構(gòu)

模型是經(jīng)典的編碼器-解碼器架構(gòu),將 20 個(gè)卷積層分為 3 個(gè)卷積塊(編碼部分),然后是另外 3 個(gè)轉(zhuǎn)置卷積塊(解碼部分)。每個(gè)塊由 3 個(gè) 3x3 卷積層組成,每個(gè)層之間有BN和 ReLU 激活。最后,還有另外 2 個(gè) conv 層,加上輸出層。編碼器的目標(biāo)是找出輸入壓縮后的相關(guān)表示。解碼器部分將嘗試重建相同的輸入映射,但這次嵌入的有用信息應(yīng)該有助于找到從 s 到 g 的最佳路徑。

該網(wǎng)絡(luò)的輸入是:

map:一個(gè) [n, 3, 100, 100] 張量,表示占用網(wǎng)格圖。n 是批量大小。這里的通道數(shù)是 3 而不是簡單的 1。稍后會(huì)詳細(xì)介紹。

start: 一個(gè) [n, 2] 張量,包含每個(gè)地圖中起點(diǎn) s 的坐標(biāo)

goal:一個(gè)[n, 2]張量,包含每個(gè)地圖中目標(biāo)點(diǎn)g的坐標(biāo)

網(wǎng)絡(luò)的輸出層應(yīng)用 sigmoid 函數(shù),有效地提供了一個(gè)“分?jǐn)?shù)圖”,其中每個(gè)項(xiàng)目的值都在 0 和 1 之間,與屬于從 s 到 g 的最短路徑的概率成正比。然后可以通過從 s 開始并迭代地選擇當(dāng)前 8 鄰域中得分最高的點(diǎn)來重建路徑。一旦找到與 g 具有相同坐標(biāo)的點(diǎn),該過程就會(huì)結(jié)束。為了提高效率,我為此使用了雙向搜索算法。

在模型的編碼器和解碼器塊之間,我還插入了 2 個(gè)跳過連接。該模型現(xiàn)在非常類似于 U-Net 的架構(gòu)。跳過連接將給定隱藏層的輸出注入網(wǎng)絡(luò)中更深的其他層。在我們的任務(wù)中關(guān)心的細(xì)節(jié)是 s、g 的確切位置,以及我們在軌跡中必須避開的所有障礙物。所以加入跳過鏈接大大提高了效果。

3cfb0790-a9c9-11ed-bfe3-dac502259ad0.png

訓(xùn)練

在Google Colab 上對模型進(jìn)行了大約 15 小時(shí)或 23 個(gè)周期的訓(xùn)練。使用的損失函數(shù)是均方誤差 (MSE)??赡苡斜?MSE 更好的選擇,但我一直堅(jiān)持使用它,因?yàn)樗唵我子谩?/p>

學(xué)習(xí)率最初使用 CosineAnnealingWithWarmRestarts 調(diào)度程序設(shè)置為 0.001(略微修改以降低每次重啟后的最大學(xué)習(xí)率)。批量大小設(shè)置為 160。

我嘗試對輸入圖應(yīng)用高斯模糊,并在第一個(gè)卷積層應(yīng)用一個(gè)小的 dropout。這些技術(shù)都沒有帶來任何相關(guān)效果,所以我最終放棄了它們。

下面是訓(xùn)練后模型原始輸出的可視化。

3d1b728c-a9c9-11ed-bfe3-dac502259ad0.png

3d4c9c54-a9c9-11ed-bfe3-dac502259ad0.png

3d746bda-a9c9-11ed-bfe3-dac502259ad0.png

卷積的一些問題

起初使用輸入是一個(gè)形狀為 [n, 1, 100, 100](加上起始位置和目標(biāo)位置)的張量。但無法獲得任何令人滿意的結(jié)果。重建的路徑只是完全偏離目標(biāo)位置并穿過障礙物的隨機(jī)軌跡。

卷積算子的一個(gè)關(guān)鍵特征是它是位置不變的。卷積濾波器學(xué)習(xí)的實(shí)際上是一種特定的像素模式,這種像素模式在它所訓(xùn)練的數(shù)據(jù)分布中反復(fù)出現(xiàn)。例如下面的圖案可以表示角或垂直邊緣。

3d95fb9c-a9c9-11ed-bfe3-dac502259ad0.png

無論過濾器學(xué)習(xí)什么模式,關(guān)鍵的問題是它學(xué)會(huì)獨(dú)立于圖像中的位置來識(shí)別它。對于像圖像分類這樣的任務(wù)來說,這無疑是一個(gè)理想的特性,因?yàn)樵谶@些任務(wù)中,表征目標(biāo)類的模式可能出現(xiàn)在圖像的任何地方。但在我們的情況下,位置是至關(guān)重要的!我們需要這個(gè)網(wǎng)絡(luò)非常清楚的知道軌跡從哪里開始,從哪里結(jié)束。

位置編碼

位置編碼是一種通過將數(shù)據(jù)嵌入(通常是簡單的和)到數(shù)據(jù)本身中來注入關(guān)于數(shù)據(jù)位置的信息的技術(shù)。它通常應(yīng)用于自然語言處理(NLP)中,使模型意識(shí)到句子中單詞的位置。我想這樣的東西對我們的任務(wù)也有幫助。

我通過在輸入占用圖中添加這樣的位置編碼進(jìn)行了一些實(shí)驗(yàn),但效果并不好??赡苁且?yàn)橥ㄟ^添加關(guān)于地圖上每個(gè)可能位置的信息,違背了卷積的位置不變性,所以濾波器現(xiàn)在是無用的。

所以這里基于對路徑規(guī)劃的觀察,我們對絕對位置不感興趣,而只對相對范圍感興趣。也就是說,我們感興趣的是占用圖中每個(gè)單元格相對于起點(diǎn)s和目標(biāo)點(diǎn)g的位置。例如,以坐標(biāo)(x, y)為單元格。我并不真正關(guān)心(x, y)是否等于(45,89)還是(0,5)。我們關(guān)心的是(x, y)距離s 34格,距離g15格。

所以我為每個(gè)占用網(wǎng)格圖創(chuàng)建2個(gè)額外的通道,現(xiàn)在它的形狀為[3,100,100] 。第一個(gè)通道是圖像。第二個(gè)通道表示一個(gè)位置編碼,它為每個(gè)像素分配一個(gè)相對于起始位置的值。第三通道則是相對于結(jié)束位置的值。這樣的編碼是通過分別從以s和g為中心的二維高斯函數(shù)創(chuàng)建2個(gè)特征映射來實(shí)現(xiàn)的。Sigma被選為核大小的五分之一(通常在高斯濾波器中)。在我們的例子中是20,地圖大小是100。

3da82d12-a9c9-11ed-bfe3-dac502259ad0.png

在注入關(guān)于期望的軌跡起始和最終位置的有用信息的同時(shí),我們還部分地保留了與過濾器位置不變性的一致性。可學(xué)習(xí)的模式現(xiàn)在只依賴于相對于給定點(diǎn)的距離,而不是地圖上每個(gè)可能的位置。距離s或g相同距離的2個(gè)相等的圖案現(xiàn)在將觸發(fā)相同的過濾器激活。經(jīng)過實(shí)驗(yàn)這個(gè)小技巧在收斂訓(xùn)練中非常有效。

3db751ac-a9c9-11ed-bfe3-dac502259ad0.png

結(jié)果和結(jié)論

通過測試了超過 51103 個(gè)樣本的訓(xùn)練模型。

95% 的總測試樣本能夠使用雙向搜索提供解決方案。也就是說,該算法使用模型給出的得分圖可以在 48556 個(gè)樣本中找到從 s 到 g 的路徑,而對于其余 2547 個(gè)樣本則無法找到。

總測試樣本的 87% 提供了有效的解決方案。也就是說從 s 到 g 的軌跡不穿越任何障礙物(該值不考慮 1 個(gè)單元格的障礙物邊緣約束)。

在有效樣本上,真實(shí)路徑與模型提供的解決方案之間的平均誤差為 33 個(gè)單元格。考慮到地圖是 100x100 單元格,這是相當(dāng)高的。錯(cuò)誤范圍從最小 0(即,在 2491 個(gè)樣本中的真實(shí)路徑被“完美”的重建了)到最大……745 個(gè)單元(這個(gè)肯定還有一些問題)。

下面可以看看我們測試集中的一些結(jié)果。圖像的左側(cè)描述了訓(xùn)練過的網(wǎng)絡(luò)提供的解決方案,而右側(cè)顯示了D* lite算法的解決方案。

3ddd8e62-a9c9-11ed-bfe3-dac502259ad0.png

3e155c84-a9c9-11ed-bfe3-dac502259ad0.png

我們網(wǎng)絡(luò)提供的解決方案比D* lite給出的解決方案短:

3e35442c-a9c9-11ed-bfe3-dac502259ad0.png

3e5b273c-a9c9-11ed-bfe3-dac502259ad0.png

下面就是一些錯(cuò)誤的圖:

3e7c973c-a9c9-11ed-bfe3-dac502259ad0.png

3ea111c0-a9c9-11ed-bfe3-dac502259ad0.png

看著應(yīng)該是感受野不太大,所以在感受野的區(qū)域內(nèi)沒有找到任何的邊緣,這個(gè)可能還要再改進(jìn)模型。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86458
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    354

    瀏覽量

    22685

原文標(biāo)題:使用CNN進(jìn)行2D路徑規(guī)劃

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    AGV小車中的動(dòng)態(tài)路徑規(guī)劃算法揭秘

    在現(xiàn)代倉儲(chǔ)、物流和制造業(yè)中,自動(dòng)導(dǎo)引車(AGV)的身影日益普遍。它們?nèi)缤趧诘墓は?,在?fù)雜的環(huán)境中自主穿梭,高效地完成物料搬運(yùn)任務(wù)。而支撐AGV實(shí)現(xiàn)智能導(dǎo)航的核心技術(shù)之一,便是路徑規(guī)劃。特別是當(dāng)環(huán)境
    的頭像 發(fā)表于 06-17 15:54 ?208次閱讀
    AGV小車中的動(dòng)態(tài)<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃</b>算法揭秘

    TechWiz LCD 2D應(yīng)用:不同結(jié)構(gòu)下的VT曲線

    我們可以在TechWiz LCD 2D軟件中調(diào)整電極的寬度,錐度,厚度和位置。 1. 案例結(jié)構(gòu) 2. 建模過程 2.1在TechWiz LCD 2D中創(chuàng)建結(jié)構(gòu) 2.2將com電極兩個(gè)掩膜的寬度均
    發(fā)表于 06-13 08:44

    Techwiz LCD 2D應(yīng)用:二維LC透鏡建模分析

    Techwiz LCD 2D新的Lens掩膜結(jié)構(gòu) 1. 摘要 Techwiz LCD 2D新增Lens掩膜結(jié)構(gòu),可以方便快捷的對LC 透鏡進(jìn)行建模分析。LC透鏡由于體積小、焦距可變等優(yōu)點(diǎn),被認(rèn)為是
    發(fā)表于 05-30 08:47

    HT 可視化監(jiān)控頁面的 2D 與 3D 連線效果

    HT 是一個(gè)靈活多變的前端組件庫,具備豐富的功能和效果,滿足多種開發(fā)需求。讓我們將其效果化整為零,逐一拆解具體案例,幫助你更好地理解其實(shí)現(xiàn)方案。 此篇文章中,讓我們一起深入探討 2D 與 3D
    的頭像 發(fā)表于 04-09 11:28 ?427次閱讀
    HT 可視化監(jiān)控頁面的 <b class='flag-5'>2D</b> 與 3<b class='flag-5'>D</b> 連線效果

    TechWiz LCD 2D應(yīng)用:半透反射式顯示模式仿真

    根據(jù)具體條件需求,在TechWiz LCD 2D中創(chuàng)建堆棧結(jié)構(gòu),修改模擬條件和各層屬性 3. 生成結(jié)果 3.1 半透反射式2D結(jié)構(gòu) 3.2亮度圖表
    發(fā)表于 04-08 08:49

    億源通科技OFC 2025展示2D光纖陣列,助力OCS技術(shù)創(chuàng)新

    億源通科技在OFC 2025展會(huì)上展示了其最新研發(fā)的2D矩陣式M×N光纖陣列(2D FA)。這種高精度2D光纖陣列旨在滿足對OCS(光路交換)系統(tǒng)日益增長的需求,OCS(光路交換)系統(tǒng)是下一代光網(wǎng)
    的頭像 發(fā)表于 04-03 11:25 ?355次閱讀

    STM8/STM32 products有2D marking和沒有2D marking的工藝有差別嗎?

    請教下,STM8/STM32 products 有2D marking 和沒有2D marking的工藝有差別嗎?同一程序在使用時(shí)有2D標(biāo)識(shí)的不能用。
    發(fā)表于 03-07 07:21

    DLP4500能否連接其他2D相機(jī)?如何連接?

    DLP4500能否連接其他2D相機(jī),品牌或者款式是否有限制,如何連接,你能提供硬件和程序嗎
    發(fā)表于 02-27 06:03

    TechWiz LCD 2D應(yīng)用:不同結(jié)構(gòu)下的VT曲線

    我們可以在TechWiz LCD 2D軟件中調(diào)整電極的寬度,錐度,厚度和位置。 1. 案例結(jié)構(gòu) 2. 建模過程 2.1在TechWiz LCD 2D中創(chuàng)建結(jié)構(gòu) 2.2將com電極兩個(gè)掩膜的寬度均
    發(fā)表于 02-06 10:18

    AN-1249:使用ADV8003評估板將3D圖像轉(zhuǎn)換成2D圖像

    電子發(fā)燒友網(wǎng)站提供《AN-1249:使用ADV8003評估板將3D圖像轉(zhuǎn)換成2D圖像.pdf》資料免費(fèi)下載
    發(fā)表于 01-08 14:28 ?0次下載
    AN-1249:使用ADV8003評估板將3<b class='flag-5'>D</b>圖像轉(zhuǎn)換成<b class='flag-5'>2D</b>圖像

    技術(shù)前沿:半導(dǎo)體先進(jìn)封裝從2D到3D的關(guān)鍵

    技術(shù)前沿:半導(dǎo)體先進(jìn)封裝從2D到3D的關(guān)鍵 半導(dǎo)體分類 集成電路封測技術(shù)水平及特點(diǎn)?? ? 1. 發(fā)展概述 ·自20世紀(jì)90年代以來,集成電路封裝技術(shù)快速發(fā)展,推動(dòng)了電子產(chǎn)品向小型化和多功能方向邁進(jìn)
    的頭像 發(fā)表于 01-07 09:08 ?1582次閱讀
    技術(shù)前沿:半導(dǎo)體先進(jìn)封裝從<b class='flag-5'>2D</b>到3<b class='flag-5'>D</b>的關(guān)鍵

    多臺(tái)倉儲(chǔ)AGV協(xié)作全局路徑規(guī)劃算法的研究

    多AGV動(dòng)態(tài)路徑規(guī)劃需解決沖突避免,核心在整體協(xié)調(diào)最優(yōu)。規(guī)劃時(shí)考慮道路設(shè)計(jì)、擁堵、最短路徑和交通管制,用A*算法避免重復(fù)路徑和轉(zhuǎn)彎,同時(shí)需交
    的頭像 發(fā)表于 10-28 17:38 ?785次閱讀
    多臺(tái)倉儲(chǔ)AGV協(xié)作全局<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃</b>算法的研究

    Allegro推出2D霍爾效應(yīng)速度和方向鎖存器

    對于天窗頂電機(jī)位置,升降門電機(jī),車窗升降電機(jī)和電子駐車制動(dòng)(EPB)系統(tǒng)等應(yīng)用,透過使用單個(gè)2D磁性速度和方向傳感器,可以簡化系統(tǒng)設(shè)計(jì)和生產(chǎn),減少BOM,并提高系統(tǒng)安全性。APS12625和APS12626系列2D霍爾效應(yīng)2D
    的頭像 發(fā)表于 09-27 09:58 ?739次閱讀

    TMAG511x 2D鎖扣的優(yōu)點(diǎn)

    電子發(fā)燒友網(wǎng)站提供《TMAG511x 2D鎖扣的優(yōu)點(diǎn).pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:53 ?0次下載
    TMAG511x <b class='flag-5'>2D</b>鎖扣的優(yōu)點(diǎn)

    3D封裝熱設(shè)計(jì):挑戰(zhàn)與機(jī)遇并存

    隨著半導(dǎo)體技術(shù)的不斷發(fā)展,芯片封裝技術(shù)也在持續(xù)進(jìn)步。目前,2D封裝和3D封裝是兩種主流的封裝技術(shù)。這兩種封裝技術(shù)在散熱路徑和熱設(shè)計(jì)方面有著各自的特點(diǎn)和挑戰(zhàn)。本文將深入探討2D封裝和3
    的頭像 發(fā)表于 07-25 09:46 ?2007次閱讀
    3<b class='flag-5'>D</b>封裝熱設(shè)計(jì):挑戰(zhàn)與機(jī)遇并存