主頁 > 軟體設計 > 基于深度學習的三維語意理解(分割)綜述串列

基于深度學習的三維語意理解(分割)綜述串列

2020-10-02 12:23:05 軟體設計

基于深度學習的三維語意理解(分割)綜述串列

文章目錄

  • 基于深度學習的三維語意理解(分割)綜述串列
  • 前言
  • 基于深度學習的三維語意理解(分割)綜述串列
    • 一、 從三維模型中進行深度學習
      • 1.1基于點云的方法
      • 1.2基于體素的方法
      • 1.3基于mesh的方法
    • 二、多模態融合的方法
          • Frustum-based Mthods
      • 2.1緊耦合
      • 2.2松耦合
  • 總結


前言

隨著2016年pointnet的發表,三維空間中的語音理解逐漸進入了爆發式的增長,本文對至今一些優秀的文章進行部分整理,

基于深度學習的三維語意理解(分割)綜述串列

一、 從三維模型中進行深度學習

1.1基于點云的方法

  1. 基于多視圖
    (1)MVCNN(Su et al )(2015)
    (2)MHBN(Yu et al)(2018)
    (3)View-GCN(Wei et al)(2020)
    (4)SnapNet(Boulch et al)(2017)(可分割)
    (5)DeepPr3SS(Lawin et al)(2017)(可分割)
    (6)TangentConv(Tatarchenko ta al)(2018)(可分割)
    (7)MV3D(Chen et al.)(2017)
    (8)RT3D(Zeng et al )(2018)
    (9)ContFuse(Liang et al)(2018)
    (10)AVOD(Ku et al)(2018)
    (11)SCANet(Lu et al )(2019)
    (12)MMF(Liang et al)(2019)

注:基于BEV的方法: (且是single shot methods)
(1)PIXOR(Yang et al)(2018)
(2)HDNET(Yang et al)(2018)
(3)BirdNet(Beltran et al.)(2018)
(4)PointPillars(Lang et al.)(2019)
(5)Point-GNN(Shi et al )(2020)

  1. 基于球形投影(Spherical)
    在這里插入圖片描述

圖片上方為球形投影的結果,下方是點云,
上方影像的每一行對應于從激光雷達的每個激光獲得的點,在此,影像中的最低行對應于激光雷達中的最低激光,是激光雷達附近最接近的環,如上所示,
投影不是及那個曲面進行簡單地展開,而是一個基于坐標系變換的程序,(將三維的點用圖片的形式來表示)
具體如何進行球面投影,可以參考https://blog.csdn.net/weixin_43199584/article/details/105260463

(1)SqueezeSeg(wu et al 2017)(可分割)

本文的核心貢獻,是對三維的點云進行預處理,將點云資料變換成圖片的形式來表示,然后利用成熟的二維卷積的方法來完成分割任務,

(2)SqueezeSeg22(Wu et al 2018)(可分割)
(3)RangeNet++(Milioto et al 2019)(可分割)

RangeNet++是以SqueezeSeg和SqueezeSegV2為基礎,都使用了點云的球面投影的方法,可以將點云資料轉換為可以支持很多成熟的二維影像處理方法的資料,(用圖片的方式來表示點云)(有效的將點云資料進行降維的方法),同時該方案計算量相對較小,適合于自動駕駛等領域進行實時處理,
處理流程:

  1. 將三維點云資料通過球投影的方式轉換為二維的表示方法,
  2. 在該二維的iamge上進行2D全卷積語意分割,
  3. 將分割成功的2D資訊轉換到3D點云上
  4. 對分割結果進行優化,
  1. MLP
    (1)PointNet(Qi et al)(2016)(可分割)

見https://blog.csdn.net/qq_41918369/article/details/108075239

(2)PointNet++(Qi et al)(2017)(可分割)

見https://blog.csdn.net/qq_41918369/article/details/108075239

(3)3DContextNet(Zeng et al.)(2017)(可分割)
(4)A-SCN(xie et al.)(2018)(可分割)
(5)PointSIFT(Jiang et al )(2018)(可分割)
(6)Engelman(Engleman et al)(2018)(可分割)
(7)PAT(Yang et al.)(2019)(可分割)
(8)LSANet(chen et al)(2019)(可分割)
(9)PointWeb(Zhao et al)(2019)(可分割)
(10)ShellNet(Zhang et al )(2019)(可分割)
(11)RandLA-Net(Hu et al)(2019)(可分割)
(12)Mo-Net(Joseph-Rivlin et al)(2018)
(13)SRN(Duan et al)(2019)
(14)JustLookUp(Lin et al)(2019)
(15)PointASNL(Yan et al)(2020)
(16)PointRCNN(Shi et al)(2019)

作者提出了一種三維物體檢測器pointRCNN,可以直接從原始的點云中檢測三維物體,(該網路為two-stage網路),stage-1直接從點云中生成多個粗略的3Dbox,stage-2,優化一階段的3Dbox并對每個box中的物體進行class分類,
stage-1:
先通過pointnet++對每個點的特征進行提取,然后通過點的特征,將所有的點分為前景點和背景點,并將背景點洗掉,同時在前景點上,對每個點都生成一個box,然后通過部分優化,留下,部分得分最高的box,
stage-2:
將stage-1中生成的部分精準的box進行標準化坐標變換,然后再通過區域的pointnet,進行區域特征的學習,得到區域的特征向量,再和全域的特征向量進行拼接,然后優化每個點的特征,然后重新生成一個最優的3D-box,同時完成class任務,

  1. 基于圖卷積網路的方法
    (1)SPG(Landrieu and Simonovski)(2017)(可分割)
    (2)SSP(Landrieu and Bussaha)(2019)(可分割)
    (3)DGCNN(Wang et al)(2018)(可分割)

本文貢獻:(1)EdgeConv在保證置換不變性的同事捕獲區域幾何資訊,
(2)DGCNN可以在動態更新圖的同事,在語意上將點聚合起來,
(3)EdgeConv可以遷入多個已有的多個點云處理框架中,
本文提出了一個新的神經網路模塊——EdgeConv.
EdgeConv的優點:(1)包含了區域鄰域的資訊,
(2)可以通過EdgeConv模塊的回圈使用,提取全域的形狀特征,
(3)在多層系統中,特征空間中的相對關系包含了語意特征,
EdgeConv的不足:EdgeConv考慮了點的坐標與領域點的距離,但是忽略了相鄰點之間的向量方向,最侄訓是損失了一部分的區域幾何資訊,
EdgeConv
首先提取中心點與臨近店之間的邊特征,再進行卷積操作,
具體步驟:
(1)先利用MLP對每個點提取一遍特征
(2)再利用多種方式將點和周圍點的特征進行融合,本文提出了四種融合方式,此處介紹一種,我個人認為最合理的一種方式:將中心點的特征,與中心點與K個臨近點之間的特征差進行串聯,然后輸入MLP中,這樣便融合了點之間的區域關系和點的全域特征,
作者認為PointNet++不足的原因: pointnet++在處理區域區域的點的時候未來保證置換不變性而導致過于獨立,這樣會忽視了點之間的集合相關資訊,導致一部分的資訊丟失,

(4)PyramNet(Kang and Liu.)(2019)(可分割)
(5)GACNet(Wang et al)(2019)(可分割)
(6)SPH3D-GCN(Lei et al)(2019)(可分割)
(7)HEPIN(Jiang et al )(2019)(可分割)
(8)DPAM(Liu et al.)(2019)(可分割)
(9)ECC(Simonovsky et al)(2017)
(10)KCNet(Shen et al.)(2017)
(11)FoldingNet(Yang et al.)(2017)
(12)AGCN(Li et al.)(2018)
(13)LocalSpecGCN(Wang et al )(2018)
(14)RGCNN(Te et al .)(2018)
(15)3DTI-Net(Pan et al )(2018)
(16)ClusterNet(Chen et al.)(2019)
(17)DPAM(Liu et al.)(2019)
(18)Grid-GCN(Xu et al.)(2020)
(19)DeepGCNs(2019)(可分割)

本文作者認為CNN(完美的應用歐氏距離的資料中)成功的原因在于:CNN可以設計并使用深層的網路結構,,但現在GCN(用來處理拓撲結構的資料)現階段只能處理2-3層的資料,(由于深層的GCN的Aggregate容易造成over
smooth問題,即節點間的feature難以區分),本文來探究能否也生成一個深層的GCN網路模型,

本文解決深度GCN出現的問題的方法,使用residual/dense connections 和DGCNN中的 edge conv
三種方法方法一同來克服了深度GCN中出現的問題,

  1. 基于點的卷積的方法
    (1)PointCNN(Li et al)(2018)(可分割)

本文的主要貢獻是:引入了一個新的運算方法X-Conv
本作者想要解決對無序的點云的卷積問題,作者的解決核心思路是:將無序的點云進行有序化變換,然后使用卷積的方法,進行特征提取,
作者的解決方案:使用空間變換網路(STN)從前一層的資料中提取K個點,預測一個K*K大小的轉置矩陣(X-transformation),用轉置矩陣對前一層的特征做變換,然后對變換后的特征用卷積,此外,同樣也在提取出k個近鄰后,將各個點轉換到區域坐標系,
PointCNN的優點:引數少,訓練時間短,比較優美

X-Conv的具體程序看見周報筆記,

(2)MCCN(Hermosilla et al)(2018)(可分割)
(3)PointConv(Wu et al)(2018)(可分割)

(4)ConvPoint(Boulch et al.)(2019)(可分割)
(5)A-CNN(Komarichev et al)(2019)(可分割)
(6)KPConv(Thomas et al)(2019)(可分割)
(7)InterpCNN(Mao et al)(2019)(可分割)
(8)DPC(Engelmann et al.)(2019)(可分割)
(9)SphericalCNN(Spherical)(2017)
(10)Point wise CNN(Hua et al)(2017)

(11)Tensor field Network(Thomas et al)(2018)
(12)Flex-Convolution(Groh et al.)(2018)
(13)PCNN(Matan et al.)(2018)
(14)SpiderCNN(Xu et al)(2018)
(15)MCCNN(Hermosilla et al)(2018)
(16)Geo-CNN(Lan et al)(2018)
(17)Ψ-CNN(Lei et al)(2019)
(18)LP-3DCNN(Kumawat et al.)(2019)
(19)RS-CNN(Liu et al.)(2019)
(20)KPConv(Thomas et al)(2019)
(21)SFCNN(Rao et al.)(2019)
(22)DensePoint(Liu et al)(2019)
(23)ConvPoint(Boulch et al.)(2020)

  1. 基于RNN的方法

回圈神經網路的本質是:像人一樣擁有記憶的能力,使得機器能夠聯系背景關系的陳述句,理解當 前單詞或者預陳述句的意思 現階段的RNN的各種變形還可以學習二維視頻資訊和三維視頻的資訊,
RNN與CNN的本質區別:CNN沒有記憶功能,它的輸出僅依賴于輸入和網路的權重值,但 RNN有記憶功能,他的輸出不僅依賴于當前的輸入,還依賴當前的記憶,
CNN的輸入是單一的圖片等單一性質的資料,而RNN的輸入是一個序列,一個隨時間變化的序列

(1)G+RCU(Engelam et al)(2018)(可分割)
(2)RSNet(Huang et al)(2018)(可分割)
(3)3P-RNN(Ye et al )(2018)(可分割)

本文的3P(Pointwise Pyramid Pooling)
也是先通過MLP來提取點云的特征,然后設定一個金字塔模型,對不同大小的區域的點云分別提取區域資訊(大區域,小區域,等)和全域資訊,然后獲得每個點的全部資訊,(此時每個點的特征為特征向量,)
再將特征向量放入雙向的RNN中,進行學習,然后通過全連接層來完成分割任務

(4)DARNet(Zhao et al )(2019)(可分割)
(5)PointRNN(Fan et al)(2018)

一個用來處理動態點云的深度學習網路,主要貢獻:本提出了PointRNN和其兩個變體,PointGRU、PointLSTM 都可以應用于移動點云的預測(結合給定點的歷史運動軌跡來預測點云的未來軌跡)動態點云學習
注:傳統的RNN是以一維向量作為輸入的,RNN的一些變體如Cubic
ConvLSTM可以用來對二維視頻進行深度學習,本文PointRNN是進一步的變體,可以對三維點云視頻(動態三維點云)進行深度學習

  1. 基于晶格的方法(Lattice)
    (1)LatticeNet(Rosu et al.)(2019)(可分割)

該網路可以在 (2)中晶格的基礎上可以實作大點云的有效處理

(2)SPLATNet(Su et al.)(2018)

本篇文章方法小眾,且文章難度
且同時pointNet、pointcnn處理起來復雜了一些,但相比于基于樹的點云處理網路相比,(樹的網路如OCNN都是講點云進行高效的組織化,然后再套用成熟的神經網路進行處理,一般不是end-to-end網路)但是本篇文章的方法把對點云的組織者一步驟放到了每一次卷積操作中,實作了end-to-end,
注;本文應用的bilateral convolution lays(BCLs)和permutohedra lattice 并非作者首創,
文章中BCL平滑地將輸入點映射到稀疏的格子上,在稀疏的點陣上執行卷積,然后將過濾后的信號平滑地插入到原始的輸入點上,主要分為: Splat、Convolve、Slice:
1.Splat: BCL首先將輸入特征結合到晶格
2.Convolve: BCL在這些點陣上進行卷積操作,(就像標準CNN一樣)
3.Slice:經過卷積后的信號插值(barycentric interpolation)投影回輸入信號,
注:該網路可以靈活地聯合處理處理多視圖影像和點云,
在這里插入圖片描述

  1. 有待閱讀后進行進一步分類
    (1)ShapeContexNet(Xie et al.)(2018)
    (2)PVNet(You et al.)(2018)
    (3)Point2Sequence(Liu et al )(2018)
    (4)PVRNet(You et al )(2018)
    (5)3DPointCapsNet(Zhao et al)(2018)
    (6)RCNet(Wu et al.)
    (7)PointDAN(Qin et al)(2019)

(8)3D FCN(Li et al.)(2017)
(9)Vote3Deep(Li et al.)(2017)
(10)VoxelNet(Zhou et al.)(2018)
(11)SECOND(Yan et al.)(2018)
(12)3DBN(Li et al)(2019)
(13)3DSSD(Yang et al.)(2020)

single shot methods

(14)LaserNet(Meyer et al)(2019)

(15)3D iou loss(Zhou et al)(2019)
(16)Part-A^2(Shi et al.)(2019)
(17)Fast Point RCNN(Chen et al.)(2019)
(18)VoteNet(QI et al.)(2019)

(19)LaserNet++(Mayer et al .)(2019)

(20)PV-RCNN(Shi et al )(2019)

(21)OHS(Chen et al.)(2019)

(22)ImVoteNet(Qi et al.)(2020)

(23)SA-SSD(He et al.)(2020)

1.2基于體素的方法

SECOND,PointPillar,Part-A^2

1.3基于mesh的方法

二、多模態融合的方法

(1)3DMV(Dai and NieBner)(2018)
(2)UPB(Chiang et al.)(2018)
(3)MVPNet(Jaritz et al.)(2019)

Frustum-based Mthods

(1)F-PointNets(QI et al )(2018)
(2)PointFusion(XU et al.)(2018)
(3)RoarNet(Shin et al.)(2018)
(4)SIFRNet(Zhao et al.)(2019)
(5)F-ConvNet(Wang et al.)(2019)
(6)Patch Refinement(Zhao et al )(2019)

2.1緊耦合

  1. voxel-based
    (1)CD-CVF( Yoo et al 韓國)(2020)

將雷達的點云體素化后 ,通卷積層進行預處理,生成在BEV下的特征地圖,然后對多視角(構成閉合環形)的image進行FPN(CNN的一種網路)進行預處理,生成特征地圖,然后用auto-calibrated
feature projection將多幅圖進行融合,生成BEV下的feature,再利用adaptive gated fusion
network來融合雷達和image預處理后的BEV圖,再進行正常的RPN,

  1. point-based
    (1) PI-RCNN(Xie et al)(2019)

point分支和image分支分別做3D目標檢測任務和語意分割任務,然后對每個點搜尋K臨近點,對這些點結合相機的內外參反向投入二維的語意地圖中,得出這幾個點對應二維中的像素的語意特征,然后將這幾個點的幾何特征和語意特征進行聯合積分,得到聯合特征;最后將幾何特征,語意特征,聯合特征進行拼接,更新該點的特征,從而完成二次優化的任務,實作點云資料和RGB資料的融合,

(2)PointPainting(cvpr2020)

該作業的fusion方式是采用二維語意分割資訊通過lidar資訊和image資訊的變換矩陣融合到點上,再采用baseline物體檢測;可以理解為對于語意分割出的物體多了一些資訊作為引導,得到更好的檢測精度,和上面的pi-rcnn的不同之處是該融合是一個串聯的網路結構,將語意分割后的特征和原始點云一起送入深度學習網路中.

2.2松耦合

(1)CLOCs

該網路經歷了三個主要的階段(1)2D和3D的目標檢測器分別提出proposals(2)將兩種模態的proposals編碼成稀疏張量(3)對于非空的元素采用二維卷積做對應的特征融合,

總結

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/148286.html

標籤:其他

上一篇:03 Ef?cient Video Stitching Based on Fast Structure Deformation

下一篇:隨機刷題記錄(就很迷)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more