2025年AEI SCI1區TOP,改進麻雀搜索算法MSSA+建筑三維重建,深度解析+性能實測

目錄

    • 1.摘要
    • 2.麻雀搜索算法SSA原理
    • 3.整體框架
    • 4.改進SSA算法
    • 5.結果展示
    • 6.參考文獻
    • 7.代碼獲取
    • 8.讀者交流


1.摘要

對現有建筑進行高質量的三維重建對于其維護、修復和管理至關重要。圖像采集中的有效視角規劃會顯著影響基于攝影測量的三維重建質量。復雜的建筑結構常常導致傳統視角規劃方法下的區域采樣不足,而過多的視角又會顯著增加計算資源和數據采集的負擔。為了解決這些問題,本文提出了一種新的先探索、后開發的視角規劃策略,以在盡可能少的視角下實現高質量的建筑重建。在探索階段,通過對圖像和粗模型的語義與幾何分析,識別出無人機禁飛區域與建筑關注區域。隨后結合建筑關注區域和重建相關因素(包括距離、入射角、視差角和圖像重疊度),構建了一個優化適應度函數。本文提出了一種改進麻雀搜索算法(MSSA),在優化機制上進行了增強,并融合了視角規劃的物理模型,從而能夠有效生成最優的視角集合。在開發階段設計了無碰撞的最短飛行路徑,使無人機能夠采集圖像并完成高質量的三維模型重建。

2.麻雀搜索算法SSA原理

【智能算法】麻雀搜索算法(SSA)原理及實現

3.整體框架

本文提出了一種優化的探索—開發無人機視角規劃策略,用來實現高質量的建筑三維重建。整個過程首先通過初步的環繞飛行采集圖像并構建粗略模型,在此基礎上,通過語義分析與幾何建模識別出建筑的關鍵關注區域與無人機禁飛區域,進而指導后續的精細規劃。在視角優化方面,本文構建了一個融合多種重建影響因素(包括距離、入射角、視差角和圖像重疊度)以及建筑關注區域的適應度函數,并引入了改進麻雀搜索算法(MSSA),用在連續可飛行空間中直接優化無人機視角的位置與朝向。此外,研究還設計了一種無碰撞的最短路徑規劃方法,確保無人機在執行任務時能夠高效、安全地穿越各個視角點。最后,通過執行優化后的第二次飛行,完成圖像采集并生成高質量的三維重建模型。

優化的無人機視野規劃策略框架

4.改進SSA算法

改進SSA融合視角規劃的物理模型,增強對初始視角分布的均勻性與多樣性控制,將優化過程劃分為全局探索與局部開發兩個階段,并設置動態可調的更新機制與角色比例。此外引入大小步長結合的局部開發策略,并取消僅接受更優解的限制,從而提高算法跳出局部最優的能力。算法以多個視角集合為優化對象,每個集合包含若干視角點,每個視角由位置與目標方向兩個三維坐標構成。為實現初始視角的空間均勻分布,無人機可飛行區域被劃分為多個子區域,每個區域內隨機生成等量的視角點,同時其目標方向則在建筑物的三維包圍盒中隨機設定。

改進SSA

改進SSA中生產者承擔全局搜索,通過對每個視角的位置與目標方向進行擾動,生產者能夠在搜索空間內廣泛探索,提升解的多樣性與覆蓋性。在優化初始階段,設置了較多的生產者 P N 1 PN_1 PN1?,相比于后期的數量 P N 2 PN_2 PN2?顯著增加,從而確保算法在早期具備更強的全局探索能力:
X i , j , k t + 1 = { X i , j , k t + α ? Q , S T > R 2 X i , j , k t + Q , S T ≤ R 2 X_{i,j,k}^{t+1}= \begin{cases} X_{i,j,k}^t+\alpha\bullet Q,ST>R_2 \\ \quad X_{i,j,k}^t+Q,ST\leq R_2 & \end{cases} Xi,j,kt+1?={Xi,j,kt?+α?Q,ST>R2?Xi,j,kt?+Q,STR2???

覓食者主要承擔局部開發任務,圍繞當前最優視角集合進行小步長的精細搜索:
X i , j , k t + 1 = X b e s t t + 1 d ∑ k = 1 d ∣ X i , j , k t ? X b e s t t ∣ ? r a n d ( { ? 1 , 1 } ) X_{i,j,k}^{t+1}=X_{best}^t+\frac{1}{d}\sum_{k=1}^d\left|X_{i,j,k}^t-X_{best}^t\right|\bullet rand(\{-1,1\}) Xi,j,kt+1?=Xbestt?+d1?k=1d? ?Xi,j,kt??Xbestt? ??rand({?1,1})

探索者在早期生成新的視點集來探索解空間,并在后期圍繞最佳視點集進行大步局部開發:
X i , j , k t + 1 = { i n i t ( ) , t < T max ? / 2 X b e s t t + β ? ∣ X i , j , k t ? X b e s t t ∣ , t ≥ T max ? / 2 \left.X_{i,j,k}^{t+1}=\left\{ \begin{array} {c}init(),t<\mathrm{T}_{\max}/2 \\ X_{best}^t+\beta\bullet\left|X_{i,j,k}^t-X_{best}^t\right|,t\geq\mathrm{T}_{\max}/2 \end{array}\right.\right. Xi,j,kt+1?={init(),t<Tmax?/2Xbestt?+β? ?Xi,j,kt??Xbestt? ?,tTmax?/2?

偽代碼

MSSA偽代碼

5.結果展示

虛擬實驗中的四種比較策略

現實世界實驗中的兩種比較策略

之前做的案例:




6.參考文獻

[1] Liang Z, Yang L, Liang Z, et al. Optimized UAV view planning for high-quality 3D reconstruction of buildings using a modified sparrow search algorithm[J]. Advanced Engineering Informatics, 2025, 65: 103344.

7.代碼獲取

8.讀者交流

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

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

相關文章

鴻蒙開發:如何實現列表吸頂

前言 本文基于Api13 列表吸頂功能&#xff0c;在實際的開發中有著很大的作用&#xff0c;比如可以讓列表層級之間更加分明&#xff0c;減少一定程度上的視覺混亂&#xff0c;由于吸頂的標題會隨著滾動固定在頂部&#xff0c;可以讓用戶無需反復滑動回頂部確認分組位置&#xff…

使用Zotero的RSS訂閱功能快速了解感興趣領域最新文章

文章目錄 寫在前面中文期刊的RSS訂閱英文期刊的RSS訂閱回到Zotero有啥用&#xff1f; 寫在前面 作為一名研究生或者科研工作者&#xff0c;肯定需要經常檢索自己研究領域的最新文獻&#xff0c;相比于不定期的去各大數據庫檢索文獻&#xff0c;借助RSS訂閱功能則更加便捷。 R…

Windows安裝Docker Desktop開啟 Kubenetes制作并部署本地鏡像

1、安裝Docker Desktop docker desktop官方下載鏈接&#xff0c;下載后一路點下來安裝就好了。 2、制作本地鏡像 跟著docker步驟制作鏡像&#xff0c;需要先配置docker 鏡像源&#xff0c;因為網絡問題 {"builder": {"gc": {"defaultKeepStorage&…

嵌入式學習筆記 - freeRTOS 列表,鏈表,節點跟任務之間關系

一 下圖說明了 freeRTOS 就緒列表&#xff0c;鏈表&#xff0c;節點跟任務之間關系 一個任務對應一個節點&#xff0c;一個鏈表對應一個優先級&#xff0c;一個任務根據優先級可以插入任何一個鏈表中。 插入函數為&#xff0c;這也是freeRTOS的核心函數&#xff0c;對每個任務…

scikit-learn pytorch transformers 區別與聯系

以下是 scikit-learn、PyTorch 和 Transformers 的區別與聯系的表格形式展示: 特性/庫scikit-learnPyTorchTransformers主要用途傳統機器學習算法深度學習框架預訓練語言模型與自然語言處理任務核心功能分類、回歸、聚類、降維、模型選擇等張量計算、自動微分、神經網絡構建與…

【C/C++】從零開始掌握Kafka

文章目錄 從零開始掌握Kafka一、Kafka 基礎知識理解&#xff08;理論&#xff09;1. 核心組件與架構2. 重點概念解析 二、Kafka 面試重點知識梳理三、C 使用 Kafka 的實踐&#xff08;librdkafka&#xff09;1. librdkafka 簡介2. 安裝 librdkafka 四、實戰&#xff1a;高吞吐生…

Spyglass:目標文件(.spq)的結構

相關閱讀 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 預備知識 為了方便檢查&#xff0c;Spyglass向用戶提供Guideware作為檢查參考&#xff1b;Guideware又包含各種方法(Methodology)&#xff0c;應用于設計的不同階段&…

一些Dify聊天系統組件流程圖架構圖

分享一些有助于深入理解Dify聊天模塊的架構圖 整體組件架構圖 #mermaid-svg-0e2XalGLqrRbH1Jy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0e2XalGLqrRbH1Jy .error-icon{fill:#552222;}#mermaid-svg-0e2XalGLq…

地理空間索引:解鎖日志分析中的位置智慧

title: 地理空間索引:解鎖日志分析中的位置智慧 date: 2025/05/24 18:43:06 updated: 2025/05/24 18:43:06 author: cmdragon excerpt: 地理空間索引在日志分析中應用廣泛,涉及用戶登錄IP定位、移動端位置軌跡和物聯網設備位置上報等場景。MongoDB支持2dsphere和2d兩種地理…

分庫分表深度解析

一、為什么要分庫分表&#xff1f; 通常&#xff0c;數據庫性能受到如下幾個限制&#xff1a; 硬件瓶頸&#xff1a;單機的 CPU、內存、磁盤 I/O 等資源總是有限。例如&#xff0c;當單表中的記錄達到上億、甚至更高時&#xff0c;表掃描、索引維護和數據遷移會變得非常慢。單…

QListWidget的函數,信號介紹

前言 Qt版本:6.8.0 該類用于列表模型/視圖 QListWidgetItem函數介紹 作用 QListWidget是Qt框架中用于管理可交互列表項的核心組件&#xff0c;主要作用包括&#xff1a; 列表項管理 支持動態添加/刪除項&#xff1a;addItem(), takeItem()批量操作&#xff1a;addItems()…

ModbusRTU轉profibusDP網關與RAC400通訊報文解析

ModbusRTU轉profibusDP網關與RAC400通訊報文解析 在工業自動化領域&#xff0c;ModbusRTU和ProfibusDP是兩種常見的通信協議。ModbusRTU以其簡單、可靠、易于實現等特點&#xff0c;廣泛應用于各種工業設備之間的通信&#xff1b;而ProfibusDP則是一種高性能的現場總線標準&am…

Python容器

一、容器 1. 列表【】&#xff1a;有序可重復可混裝可修改 [元素1&#xff0c;元素2&#xff0c;元素3&#xff0c;...] ? 可以容納多個元素 ? 可以容納不同類型的元素&#xff08;混裝&#xff09; ? 數據是有序存儲的&#xff08;有下標序號&#xff09; ? 允許重復數…

webpack面試問題

一、核心概念 Webpack的構建流程是什么? 答案: 初始化:讀取配置,創建Compiler對象編譯:從入口文件開始,遞歸分析依賴關系,生成依賴圖模塊處理:調用Loader轉換模塊(如babel-loader)輸出:將處理后的模塊組合成Chunk,生成最終文件Loader和Plugin的區別? Loader:文件…

uniapp-商城-66-shop(2-品牌信息顯示,數據庫讀取的異步操作 放到vuex actions)

完成頁面的顯示&#xff0c;但是還需要進行修改&#xff0c;這里涉及到修改中的信息同步顯示。也會涉及到數據的讀取&#xff0c;修改和同步。 本文介紹了如何使用Vuex管理品牌數據&#xff0c;實現數據的同步顯示和修改。主要內容包括&#xff1a;1.將獲取品牌數據的異步操作封…

使用Pyinstaller打包python,全過程解析【2025最詳細】

一、如何使用 Pyinstaller 打包 Python 程序 1.打開終端 右鍵點擊文件夾空白處&#xff0c;選擇 打開于 > 打開終端 2.安裝 pyinstaller 在打開的終端中&#xff0c;輸入命令【pip install pyinstaller】 使用 Python 包管理工具 pip 來安裝 Pyinstaller。等待安裝過程結…

GPU加速Kubernetes集群助力音視頻轉碼與AI工作負載擴展

容器編排與GPU計算的結合&#xff0c;為追求性能優化的企業開辟了戰略轉型的新路徑 基于GPU的托管Kubernetes集群不僅是技術選擇&#xff0c;更是徹底改變企業處理高負載任務的戰略部署方式。 隨著人工智能和機器學習項目激增、實時數據處理需求的劇增&#xff0c;以及高性能媒…

LINUX 524 rsync+inotify 調試(問題1:指定端口無法同步/已通過;問題2:rsync.log文件中時間不顯示/已顯示)

怎么把java文件夾給傳過去了 rsync inotify 監控代碼實時傳輸調試 沒看到日志 這里面有了 rsync -e"ssh -p 3712" -av /root/app/java/ code192.168.235.100:/home/code/backup/java_backup/ 文件夾后面的/要加上 [rootlocalhost java]# cat /var/log/rsync.log…

Python入門手冊:條件判斷

條件判斷是編程中不可或缺的一部分&#xff0c;它允許程序根據不同的條件執行不同的代碼塊。Python提供了if、elif和else語句來實現條件判斷。通過這些語句&#xff0c;你可以控制程序的流程&#xff0c;使其能夠根據不同的情況做出相應的反應。本文將詳細介紹Python中的條件判…

x-cmd install | cargo-selector:優雅管理 Rust 項目二進制與示例,開發體驗升級

目錄 功能亮點安裝優勢特點適用場景總結 還在為 Rust 項目中眾多的二進制文件和示例而煩惱嗎&#xff1f;cargo-selector 讓你告別繁瑣的命令行&#xff0c;輕松選擇并運行目標程序&#xff01; 功能亮點 交互式選擇&#xff1a; 在終端中以交互方式瀏覽你的二進制文件和示例&…