❶ 點雲數據處理
三維計算視覺研究內容包括:
(1)三維匹配:兩幀或者多幀點雲數據之間的匹配,因為激光掃描光束受物體遮擋的原因,不可能通過一次掃描完成對整個物體的三維點雲的獲取。因此需要從不同的位置和角度對物體進行掃描。三維匹配的目的就是把相鄰掃描的點雲數據拼接在一起。三維匹配重點關注匹配演算法,常用的演算法有 最近點迭代演算法 ICP 和各種全局匹配演算法。
(2)多視圖三維重建:計算機視覺中多視圖一般利用圖像信息,考慮多視幾何的一些約束,相關研究目前很火,射影幾何和多視圖幾何是視覺方法的基礎。在攝影測量中類似的存在共線方程,光束平差法等研究。這里也將點雲的多視匹配放在這里,比如人體的三維重建,點雲的多視重建不僅強調逐幀的匹配,還需要考慮不同角度觀測產生誤差累積,因此也存在一個優化或者平差的過程在裡面。通常是通過觀測形成閉環進行整體平差實現,多視圖重建強調整體優化。可以只使用圖像,或者點雲,也可以兩者結合(深度圖像)實現。重建的結果通常是Mesh網格。
(3)3D SLAM:點雲匹配(最近點迭代演算法 ICP、正態分布變換方法 NDT)+位姿圖優化( g2o 、LUM、ELCH、Toro、SPA);實時3D SLAM演算法 (LOAM);Kalman濾波方法。3D SLAM通常產生3D點雲,或者Octree Map。基於視覺(單目、雙目、魚眼相機、深度相機)方法的SLAM,比如orbSLAM,lsdSLAM...
(4)目標識別:無人駕駛汽車中基於激光數據檢測場景中的行人、汽車、自行車、以及道路和道路附屬設施(行道樹、路燈、斑馬線等)。
(5)形狀檢測與分類:點雲技術在逆向工程中有很普遍的應用。構建大量的幾何模型之後,如何有效的管理,檢索是一個很困難的問題。需要對點雲(Mesh)模型進行特徵描述,分類。根據模型的特徵信息進行模型的檢索。同時包括如何從場景中檢索某類特定的物體,這類方法關注的重點是模型。
(6)語義分類:獲取場景點雲之後,如何有效的利用點雲信息,如何理解點雲場景的內容,進行點雲的分類很有必要,需要為每個點雲進行Labeling。可以分為基於點的方法,基於分割的分類方法。從方法上可以分為基於監督分類的技術或者非監督分類技術,深度學習也是一個很有希望應用的技術。
(7)立體視覺與立體匹配 ZNCC
(8)SFM(運動恢復結構)
1、點雲濾波方法(數據預處理):
雙邊濾波、高斯濾波、條件濾波、直通濾波、隨機采樣一致性濾波。
VoxelGrid
2、關鍵點
ISS3D、Harris3D、NARF
SIFT3D、
3、特徵和特徵描述
法線和曲率計算 NormalEstimation 、特徵值分析Eigen-Analysis、 EGI
PFH、FPFH、3D Shape Context、Spin Image
4、 點雲匹配
ICP 、穩健ICP、point to plane ICP、Point to line ICP、MBICP、GICP
NDT 3D 、Multil-Layer NDT
FPCS、KFPCS、SAC-IA
Line Segment Matching 、ICL
5、點雲分割與分類
分割:區域生長、Ransac線面提取、NDT-RANSAC、
K-Means、Normalize Cut(Context based)
3D Hough Transform(線、面提取)、連通分析、
分類:基於點的分類,基於分割的分類;監督分類與非監督分類
6、SLAM圖優化
g2o 、LUM、ELCH、Toro、SPA
SLAM方法:ICP、MBICP、IDC、likehood Field、 Cross Correlation 、NDT
7、目標識別、檢索
Hausdorff 距離計算(人臉識別)
8、變化檢測
基於八叉樹的變化檢測
9. 三維重建
泊松重建、Delaunay triangulations
表面重建,人體重建,建築物重建,樹木重建。
實時重建:重建植被或者農作物的4D(3D+時間)生長態勢;人體姿勢識別;表情識別;
10.點雲數據管理
點雲壓縮,點雲索引(KD、Octree),點雲LOD(金字塔),海量點雲的渲染
點雲驅動的計算機圖形學主要研究應用
http://vcc.szu.e.cn/research/2015/Points/
❷ python需要學習什麼內容
Python的學習內容還是比較多的,我們將學習的過程劃分為4個階段,每個階段學習對應的內容,具體的學習順序如下:
Python學習順序:
①Python軟體開發基礎
掌握計算機的構成和工作原理
會使用Linux常用工具
熟練使用Docker的基本命令
建立Python開發環境,並使用print輸出
使用Python完成字元串的各種操作
使用Python re模塊進行程序設計
使用Python創建文件、訪問、刪除文件
掌握import 語句、From…import 語句、From…import* 語句、方法的引用、Python中的包
②Python軟體開發進階
能夠使用Python面向對象方法開發軟體
能夠自己建立資料庫,表,並進行基本資料庫操作
掌握非關系資料庫MongoDB的使用,掌握Redis開發
能夠獨立完成TCP/UDP服務端客戶端軟體開發,能夠實現ftp、http伺服器,開發郵件軟體
能開發多進程、多線程軟體
③Python全棧式WEB工程師
能夠獨立完成後端軟體開發,深入理解Python開發後端的精髓
能夠獨立完成前端軟體開發,並和後端結合,熟練掌握使用Python進行全站Web開發的技巧
④Python多領域開發
能夠使用Python熟練編寫爬蟲軟體
能夠熟練使用Python庫進行數據分析
招聘網站Python招聘職位數據爬取分析
掌握使用Python開源人工智慧框架進行人工智慧軟體開發、語音識別、人臉識別
掌握基本設計模式、常用演算法
掌握軟體工程、項目管理、項目文檔、軟體測試調優的基本方法
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,中博軟體學院、南京課工場、南京北大青鳥等開設python專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
❸ AI數學基礎18——常見的正則化方法
1,L2 regularization(權重衰減) L2正則化就是在代價函數後面再加上一個正則化項λ ,使得權重在更新的時候,乘以一個小於1的因子(1-a(λ/m)),這個可以防止W過大。正則化項裡面有一個系數1/2,1/2經常會看到,主要是為了後面求導的結果方便,後面那一項求導會產生一個2,與1/2相乘剛好湊整。
過擬合的時候,擬合函數的系數往往非常大。過擬合,就是擬合函數需要顧忌每一個點,最終形成的擬合函數波動很大。在某些很小的區間里,函數值的變化很劇烈。這就意味著函數在某些小區間里的導數值(絕對值)非常大,由於自變數值可大可小,所以只有系數足夠大,才能保證導數值很大
L2 Regularization 防止了系數W過大,也就防止了擬合函數導數值過大,也就防止了函數導數值波動過大,也就解決了過擬合問題。
L2正則化是訓練深度學習模型中最常用的一種解決過擬合問題的方法。
2,L1 regularization, L1正則化的正則項是所有權重w的絕對值的和,乘以λ/n(這里不像L2正則化項那樣,需要再乘以1/2);消除過擬合的原因與L2類似。使用頻率沒有L2正則化高。
3,Dropout正則化
L1、L2正則化是通過修改代價函數來實現的,而Dropout則是通過修改神經網路本身來實現的。
Dropout是指在深度學習網路的訓練過程中,對於神經網路單元,按照一定的概率將其暫時從網路中丟棄。注意是暫時,對於隨機梯度下降來說,由於是隨機丟棄,故而每一個mini-batch都在訓練不同的網路。
運用了dropout的訓練過程,相當於訓練了很多個只有半數隱層單元的神經網路(後面簡稱為「半數網路」),每一個這樣的半數網路,都可以給出一個分類結果,這些結果有的是正確的,有的是錯誤的。隨著訓練的進行,大部分半數網路都可以給出正確的分類結果,那麼少數的錯誤分類結果就不會對最終結果造成大的影響。
dropout率的選擇:經過交叉驗證, 隱含節點dropout率等於0.5的時候效果最好 ,原因是0.5的時候dropout隨機生成的網路結構最多
具體細節,推薦Alex和Hinton的論文《 ImageNet Classification with Deep Convolutional Neural Networks 》
4,數據集擴增(data augmentation)
在深度學習方法中,更多的訓練數據,意味著可以用更深的網路,訓練出更好的模型。
但是很多時候,收集更多的數據意味著需要耗費更多的人力物力,非常困難。
所以,可以在原始數據上做些改動,得到更多的數據,以圖片數據集舉例,可以做各種變換,如:
1,水平翻轉或任意角度旋轉;2,裁剪;3,添加雜訊
更多數據意味著什麼?
用50000個MNIST的樣本訓練SVM得出的accuracy94.48%,用5000個MNIST的樣本訓練NN得出accuracy為93.24%,所以更多的數據可以使演算法表現得更好。在機器學習中,演算法本身並不能決出勝負,不能武斷地說這些演算法誰優誰劣,因為數據對演算法性能的影響很大。
5,提前停止訓練神經網路(Early Stop)
在一個適中的迭代次數,W不是很大的時候,dev set error接近最小,train set error適中的時候,提前停止訓練,如下圖所示
參考文獻:Andrew Ng《Prractical aspects of Deep learning》1.1~1.8
❹ Python如何圖像識別
1. 簡介。
圖像處理是一門應用非常廣的技術,而擁有非常豐富第三方擴展庫的 Python 當然不會錯過這一門盛宴。PIL (Python Imaging Library)是 Python 中最常用的圖像處理庫,目前版本為 1.1.7,我們可以在這里下載學習和查找資料。
Image 類是 PIL 庫中一個非常重要的類,通過這個類來創建實例可以有直接載入圖像文件,讀取處理過的圖像和通過抓取的方法得到的圖像這三種方法。
2. 使用。
導入 Image 模塊。然後通過 Image 類中的 open 方法即可載入一個圖像文件。如果載入文件失敗,則會引起一個 IOError ;若無返回錯誤,則 open 函數返回一個 Image 對象。現在,我們可以通過一些對象屬性來檢查文件內容,即:
1 >>> import Image
2 >>> im = Image.open("j.jpg")
3 >>> print im.format, im.size, im.mode
4 JPEG (440, 330) RGB
這里有三個屬性,我們逐一了解。
format : 識別圖像的源格式,如果該文件不是從文件中讀取的,則被置為 None 值。
size : 返回的一個元組,有兩個元素,其值為象素意義上的寬和高。
mode : RGB(true color image),此外還有,L(luminance),CMTK(pre-press image)。
現在,我們可以使用一些在 Image 類中定義的方法來操作已讀取的圖像實例。比如,顯示最新載入的圖像:
1 >>>im.show()
2 >>>
輸出原圖:
3. 函數概貌。
3.1 Reading and Writing Images : open( infilename ) , save( outfilename )
3.2 Cutting and Pasting and Merging Images :
crop() : 從圖像中提取出某個矩形大小的圖像。它接收一個四元素的元組作為參數,各元素為(left, upper, right, lower),坐標系統的原點(0, 0)是左上角。
paste() :
merge() :
3.5 更多關於圖像文件的讀取。
最基本的方式:im = Image.open("filename")
類文件讀取:fp = open("filename", "rb"); im = Image.open(fp)
字元串數據讀取:import StringIO; im = Image.open(StringIO.StringIO(buffer))
從歸檔文件讀取:import TarIO; fp = TarIo.TarIO("Image.tar", "Image/test/lena.ppm"); im = Image.open(fp)
基本的 PIL 目前就練習到這里。其他函數的功能可點擊這里進一步閱讀。
❺ 醫學圖像配准
圖像配准時指對一幅圖進行一定的的幾何變換映射到另一幅圖中,使得兩幅圖像中的相關點達到空間上的一致。
將施加變換的圖像定義為浮動圖像F,另一幅不動的圖像定義為參考圖像R,圖像配準的本質是尋找一個空間變換T,使得
一般配準的步驟如下:
特徵空間
特徵空間指從參考圖像和浮動圖像中提取可用於配準的特徵。根據特徵可以歸納出兩種方法:
搜索空間
搜索空間是指在配准過程中對圖像進行變換的范圍和方式。
搜索演算法
圖像配准要在給定搜索空間上尋求相似性測度函數的最優解,搜索演算法包括:
相似性度量
傳統的基於強度的相似性度量包括平方和距離(sum-of-square distance,SSD)、均方距離(mean square distance, MSD)、歸一化互相關(normalized cross correlation,NCC)和互信息(mutual information,MI)。
變換
常用的醫學圖像配准方法
基於互信息的圖像配准
基於傅里葉變換的圖像配准
傅里葉變換用於配準的原理:圖像的平移不影響傅里葉變換的幅值,旋轉相遇對其傅里葉變換做相同的旋轉。
基於小波變換的圖像配准
對兩幅圖像的伸縮、旋轉、平移等轉化為對其作小波分解後,兩幅圖近似分量的伸縮、旋轉、平移。
基於深度學習的圖像配准方法可以大致分為以下三類:深度相似性度量+迭代配准、有監督的變換估計和無監督的變換估計。
通過深度學習估計移動圖片和基準圖片的相似性度量,這個相似性度量會被插入到傳統的配准框架內,進行迭代優化。
也有一些方法是基於強化學習方法,讓一個被訓練過的 agent 來代替優化演算法進行配准。基於強化學習的配准通常用於適合剛性變換的模型。
有監督學習需要提供真實的變形場,也就是ground truth,網路輸入為圖像,輸出為變換的參數。流程可以總結如下圖。
對於有監督的學習,重要的是對用於網路訓練的標簽。許多人提出了用於生成變換的數據增強技術,大致可以分為三類:
Miao等人首先提出使用深度學習來預測剛性變換參數。他們使用 CNN 來預測 2D/3D 剛性配準的變換矩陣。他們提出了分層回歸,其中六個變換參數被劃分為三組,分別為平面內參數( ),平面外旋轉參數( ), 平面外平移參數( )。網路輸入為預定大小的ROI,網路結構是一個包括了卷積和全連接操作的回歸器。訓練期間要最小化的目標函數是歐幾里得損失。
剛性變換需要6個參數來表示,而自由變形需要一個密集的變形向量場。
無監督學習可以很好的解決配准缺少有標簽(有已知變換)圖像的問題。
2015 年,Jaderberg 等人提出了空間變換網路 (spatial transformer network,STN),它允許在網路內對數據進行空間操作,而且STN是一個可微分模塊,可以插入到現有的 CNN 架構中。 STN 的發布啟發了許多無監督的圖像配准方法,因為 STN 可以在訓練過程中進行圖像相似度損失計算。
典型的 DIR(deformation image registration) 無監督變換預測網路以圖像對作為輸入,直接輸出密集 DVF,STN 使用該 DVF 對運動圖像進行變換曲。然後將扭曲的圖像與固定圖像進行比較以計算圖像相似度損失。 DVF 平滑約束通常用於正則化預測的 DVF。
利用 GAN 的 discriminator 來進行相似性度量也近些年的一個思路[4]。
GAN 在醫學圖像配准中的使用通常可以分為兩類:
❻ [CVPR2020]論文翻譯SwapText: Image Based Texts Transfer in Scenes
由於不同因素之間的復雜作用,在保留原始字體,顏色,大小和背景紋理的同時在場景圖像中交換文本是一項具有挑戰性的任務。在這項工作中,我們提出了一個三階段框架SwapText,用於跨場景圖像傳輸文本。 首先,提出了一種新穎的文本交換網路來僅替換前景圖像中的文本標簽。 其次,背景完成網路來學習以重建背景圖像。 最後,通過融合網路將生成的前景圖像和背景圖像用於生成文字圖像。 使用提出的框架,即使出現嚴重的幾何失真,我們也可以巧妙的處理輸入圖像的文本。 定性和定量結果顯示在幾個場景文本數據集上,包括規則和不規則文本數據集。 我們進行了廣泛的實驗以證明我們的方法的有效性,例如基於圖像的文本翻譯,文本圖像合成等。
想像一下,能夠在場景圖像中交換文本,同時在幾秒鍾內保持原始字體,顏色,大小和背景紋理,而無需花費數小時進行圖像編輯。 在這項工作中,我們旨在通過自動替換場景圖像中文本的演算法來實現此目標。文本交換的核心挑戰在於生成視覺逼真的文本並與原始文本保持一致的樣式。
文本交換或文本替換在許多情況下都涉及到,包括文本檢測,文本識別,海報中的文本轉換和其他創造性應用。 對於文本檢測和識別任務,文本交換是一種非常有用的數據增強方法。 見證了深度神經網路(DNN)在各種計算機視覺任務中的巨大成功,獲得大量帶注釋的訓練圖像已成為訓練DNN模型的瓶頸。最簡單,使用最廣泛的方法是通過幾何變換來增加訓練圖像,例如平移,旋轉和翻轉等。近來,已經提出了基於圖像合成的方法[11、7、39]來訓練文本檢測和識別模型。這些方法通過結合不同的渲染技術對光和能量的物理行為進行建模來從無文本圖像中創建新圖像。但是, 合成圖像無法與場景中的圖像完全融合,這在將合成圖像應用於DNN模型訓練時至關重要。
近年來,許多圖像生成模型,例如生成對抗網路(GAN)[6],可變自動編碼器(VAE)[17]和自回歸模型[25],為現實的圖像生成任務提供了強大的工具。在[9,38,33]中,GAN用於圖像補全,可為缺失區域生成視覺上逼真的和語義上合理的像素。 [21,8,28,22]已經利用這些網路生成具有不同姿勢或服裝的新穎人物圖像。
我們的貢獻總結如下:
文本圖像合成
圖像合成已在計算機圖形學研究中得到了廣泛的研究[4]。文本圖像合成被研究為一種數據增強方法,用於訓練准確而健壯的DNN模型。例如,Jaderberg等[11]使用單詞生成器來生成用於文本識別任務的合成單詞圖像。Gupta等 [7]開發了一個健壯的引擎來生成用於文本檢測和識別任務的合成文本圖像。 文本圖像合成的目標是將文本插入背景圖像中語義上敏感的區域。許多因素都影響合成文本圖像的真實相似度,例如文本大小,文本視角,環境光照等。 在[39]中,Zhanet等人通過結合語義連貫,視覺注意力和自適應文本外觀這三種設計來實現文本文本圖像合成。盡管文本圖像合成在視覺上是逼真的,但合成圖像與真實圖像之間仍存在許多差異。例如, 與真實圖像相比,合成圖像中文本字體和背景圖像非常有限。
在最近,基於GAN的圖像合成技術得到了進一步的探索。在[41]中,Zhan等人提出了一種將幾何合成器和外觀合成器組合在一起的空間融合GAN,以在幾何和外觀空間中實現合成現實。Yang等人[36]使用雙向形狀匹配框架通過可調整的參數來控制字形的關鍵風格。 GA-DAN [40]提出了一項有趣的工作,能夠同時在幾何空間和外觀空間中對跨域移位進行建模。[2]中提出了MC-GAN來實現從A到Z的字母集的字體樣式轉換。 Wu等人 [34]提出了一個端到端的可訓練樣式保留網路來編輯自然圖像中的文本。
圖像生成
隨著生成模型(例如GAN [6],VAE [17]和自動回歸模型[25])的巨大成功,逼真而清晰的圖像生成最近吸引了越來越多的關注。傳統的生成模型使用GAN [6]或VAE [17]來將雜訊z生成的分布映射到實際數據的分布。例如,GANs [6]用於生成真實面孔[37、3、15]和鳥類[29]。
為了控制所生成的結果,Mirzaet等人[23]提出了有條件的GAN。它們會生成在類別標簽上進行分類的MNIST數字。在[12]中,karacanet等。根據語義布局和場景屬性(例如日夜,晴天霧天)生成逼真的室外場景圖像。 Lassneretal [19]基於細粒度的身體和衣服片段生成了穿著者的全身圖像。完整模型可以以姿勢,形狀或顏色為條件。Ma[21,22]基於圖像和姿勢生成人圖像。在[18]中提出了快速人臉交換,以將輸入身份轉換為目標身份,同時保留姿勢,面部表情和光照。
圖像完成
最近,基於GAN的方法已經成為圖像完成的一種有希望的範例。 Iizuka等 [9]提議使用全局和局部判別器作為對抗性損失,在其中全局和本地一致性都得到了加強。Yu等人 [38]使用上下文注意力層來顯式地參與遠距離空間位置上的相關特徵補丁。 Wang等 [33]使用多列網路以並行方式生成不同的圖像分量,並採用隱式的多樣化MRF正則化來增強局部細節。
給定場景文本圖像Is,我們的目標是在保持原始樣式的基礎上基於內容圖像Ic替換文本。 如圖2所示,我們的框架由文本交換網路,背景完成網路和融合網路組成。文本交換網路首先從Is中提取樣式特徵從Ic中提取內容特徵,然後通過自注意網路合並這兩個特徵。 為了更好地表示內容,我們使用內容形狀轉換網路(CSTN)根據樣式圖像Is的幾何屬性來轉換內容圖像Ic。背景完成網路用於重建樣式圖像Is的原始背景圖像Ib。 最後,文本交換網路和背景完成網路的輸出被融合網路融合以生成最終的文本圖像。
現實情況下的文本實例具有多種形狀,例如,呈水平,定向或彎曲形式。 文本交換網路的主要目的是在保留原始樣式(尤其是文本形狀)的同時替換樣式圖像Is的內容。 為了提高不規則文本圖像生成的性能,我們提出了一個內容形狀轉換網路(CSTN)將內容圖像映射到樣式圖像的相同幾何形狀中,然後通過3個下采樣卷積層和幾個殘差塊對樣式圖像和轉換後的內容圖像進行編碼。 為了充分融合樣式和內容特徵,我們將它們饋入了一個自注意網路。 對於解碼,使用3個上采樣反卷積層來生成前景圖像If。
文本形狀的定義對於內容形狀的轉換至關重要。 受文本檢測[20]和文本識別[35]領域中的文本形狀定義的啟發,可以使用2 K個基準點P = {p1,p2,...,p2K}定義文本的幾何尺寸屬性,如圖3所示。
在對內容和樣式圖像進行編碼之後,我們將兩個特徵圖都饋送到自注意網路,該網路會自動學習內容特徵圖Fc和樣式特徵圖Fs之間的對應關系。 輸出特徵圖是Fcs,圖5(a)給出了自注意力的網路結構。
內容特徵Fc和樣式特徵Fs首先沿其深度軸連接。 然後,我們遵循[42]中類似的自注意力機制來生成輸出特徵圖Fcs。
除了這種單級樣式化之外,我們還開發了多級樣式化管道,如圖5(b)所示。 我們將自注意力網路依次應用於多個特徵圖層,以生成更逼真的圖像。
文本交換網路主要側重於前景圖像生成,而背景圖像在最終圖像生成中也起著重要作用。為了生成更逼真的文字圖像,我們使用背景完成網路來重建背景圖像,其結構如表1所示。大多數現有的圖像完成方法都是通過借用或復制周圍區域的紋理來填充圖像的像素。一般的結構遵循編碼器-解碼器結構,我們在編碼器之後使用膨脹卷積層來計算具有較大輸入區域的輸出像素。通過使用較低解析度的膨脹卷積,模型可以有效地「看到」輸入圖像的較大區域。
在此階段,將文本交換網路和背景完成網路的輸出融合以生成完整的文本圖像。 如圖2所示,融合網路遵循編碼器-解碼器結構。 類似於[34],我們在融合解碼器的上采樣階段將背景完成網路的解碼特徵圖連接到具有相同解析度的相應特徵圖。 我們使用Gfuse和Dfuse分別表示生成器和判別器網路。 融合網路的損失函數可計算如下:
為了製作更逼真的圖像,我們還遵循樣式遷移網路[5,26]的類似思想,將VGG-loss引入融合模塊。 VGG損失分為兩部分,即知覺損失和風格損失,如下所示:
我們遵循[34]中的類似思想來生成具有相同樣式的成對合成圖像。我們使用超過1500個字體和10000個背景圖像來生成總共100萬個獅子訓練圖像和10000個測試圖像。輸入圖像的大小調整為64×256,批處理大小為32。從權重為零的正態分布初始化所有權重,標准差為0.01。使用β1= 0.9和β2= 0.999的Adam優化器[16]來優化整個框架。在訓練階段將學習率設置為0.0001。我們在Ten-sorFlow框架[1]下實現我們的模型。我們的方法中的大多數模塊都是GPU加速的。
我們在幾個公共基準數據集上評估了我們提出的方法。
我們採用圖像生成中常用的指標來評估我們的方法,其中包括:
在本節中,我們將通過經驗研究不同的模型設置如何影響我們提出的框架的性能。我們的研究主要集中在以下方面:內容形狀轉換網路,自注意力網路和背景完成網路中的膨脹卷積。圖6給出了一些定性結果。
自注意力網路
使用自注意力網路來充分結合內容特徵和風格特徵。根據表2,使用單層自注意力網路,平均l2誤差減少約0.003,平均PSNR增加約0.3,平均SSIM增加約0.012。為了使用樣式和內容特徵的更多全局統計信息,我們採用了一個多層的自注意力網路來融合全局和局部模式。藉助多級自我關注網路,所有的度量方法都得到了改進。
膨脹卷積
膨脹卷積層可以擴大像素區域以重建背景圖像,因此更容易生成更高質量的圖像。 根據表2,具有膨脹卷積層的背景完成網路在所有指標上均具有更好的性能。
為了評估我們提出的方法,我們將其與兩種文本交換方法進行了比較:[10]中提出的pix2pix和Wuet等人[34]提出的SRNet。 我們使用生成的數據集來訓練和測試這兩個模型。根據論文,兩種方法都保持相同的配置。
定量結果
在表2中,我們給出了本方法和其他兩種競爭方法的定量結果。顯然,我們提出的方法在不同語言的所有指標上都有顯著改進,平均l2誤差減少了0.009以上,平均PSNR增加了0.9以上,平均SSIM增加了0.04以上。第二個最好的方法。
基於圖像的翻譯是任意文本樣式傳輸的最重要應用之一。在本節中,我們提供一些基於圖像的翻譯示例,如圖7所示。我們在英語和中文之間進行翻譯。從結果可以看出,無論目標語言是中文還是英文,都可以很好地保持顏色,幾何變形和背景紋理,並且字元的結構與輸入文本相同。
在圖9中,我們還展示了在場景文本數據集上評估的模型的一些示例結果。根據圖9, 我們的模型可以替換輸入圖像中的文本,同時保留原始字體,顏色,大小和背景紋理。
我們的方法有以下局限性。由於訓練數據量有限,因此無法充分利用幾何屬性空間和字體空間。當樣式圖像中的文本出現波動時,我們提出的方法將失敗,請參見圖8(頂部)。圖8(底部)顯示了使用WordArt中的樣式圖像的失敗案例。
在這項研究中,我們提出了一種健壯的場景文本交換框架SwapText,以解決用預期的文本替換場景文本圖像中的文本的新任務。我們採用分而治之的策略,將問題分解為三個子網路,即文本交換網路,背景完成網路和融合網路。在文本交換網路中,內容圖像和樣式圖像的特徵被同時提取,然後通過自注意網路進行組合。為了更好地學習內容圖像的表示,我們使用內容形狀轉換網路(CSTN)根據樣式圖像的幾何屬性對內容圖像進行轉換。然後,使用背景完成網路來生成內容圖像的背景圖像樣式圖片。最後,將文本交換網路和背景完成網路的輸出饋送到融合網路中,以生成更真實和語義一致的圖像。在幾個公共場景文本數據集上的定性和定量結果證明了我們方法的優越性。在未來的工作中,我們將探索基於字體和顏色生成更多可控制的文本圖像。
❼ 深度學習之卷積神經網路經典模型
LeNet-5模型 在CNN的應用中,文字識別系統所用的LeNet-5模型是非常經典的模型。LeNet-5模型是1998年,Yann LeCun教授提出的,它是第一個成功大規模應用在手寫數字識別問題的卷積神經網路,在MNIST數據集中的正確率可以高達99.2%。
下面詳細介紹一下LeNet-5模型工作的原理。
LeNet-5模型一共有7層,每層包含眾多參數,也就是卷積神經網路中的參數。雖然層數只有7層,這在如今龐大的神經網路中可是說是非常少的了,但是包含了卷積層,池化層,全連接層,可謂麻雀雖小五臟俱全了。為了方便,我們把卷積層稱為C層,下采樣層叫做下采樣層。
首先,輸入層輸入原始圖像,原始圖像被處理成32×32個像素點的值。然後,後面的隱層計在卷積和子抽樣之間交替進行。C1層是卷積層,包含了六個特徵圖。每個映射也就是28x28個神經元。卷積核可以是5x5的十字形,這28×28個神經元共享卷積核權值參數,通過卷積運算,原始信號特徵增強,同時也降低了雜訊,當卷積核不同時,提取到圖像中的特徵不同;C2層是一個池化層,池化層的功能在上文已經介紹過了,它將局部像素值平均化來實現子抽樣。
池化層包含了六個特徵映射,每個映射的像素值為14x14,這樣的池化層非常重要,可以在一定程度上保證網路的特徵被提取,同時運算量也大大降低,減少了網路結構過擬合的風險。因為卷積層與池化層是交替出現的,所以隱藏層的第三層又是一個卷積層,第二個卷積層由16個特徵映射構成,每個特徵映射用於加權和計算的卷積核為10x10的。第四個隱藏層,也就是第二個池化層同樣包含16個特徵映射,每個特徵映射中所用的卷積核是5x5的。第五個隱藏層是用5x5的卷積核進行運算,包含了120個神經元,也是這個網路中卷積運算的最後一層。
之後的第六層便是全連接層,包含了84個特徵圖。全連接層中對輸入進行點積之後加入偏置,然後經過一個激活函數傳輸給輸出層的神經元。最後一層,也就是第七層,為了得到輸出向量,設置了十個神經元來進行分類,相當於輸出一個包含十個元素的一維數組,向量中的十個元素即0到9。
AlexNet模型
AlexNet簡介
2012年Imagenet圖像識別大賽中,Alext提出的alexnet網路模型一鳴驚人,引爆了神經網路的應用熱潮,並且贏得了2012屆圖像識別大賽的冠軍,這也使得卷積神經網路真正意義上成為圖像處理上的核心演算法。上文介紹的LeNet-5出現在上個世紀,雖然是經典,但是迫於種種復雜的現實場景限制,只能在一些領域應用。不過,隨著SVM等手工設計的特徵的飛速發展,LeNet-5並沒有形成很大的應用狀況。隨著ReLU與dropout的提出,以及GPU帶來算力突破和互聯網時代大數據的爆發,卷積神經網路帶來歷史的突破,AlexNet的提出讓深度學習走上人工智慧的最前端。
圖像預處理
AlexNet的訓練數據採用ImageNet的子集中的ILSVRC2010數據集,包含了1000類,共1.2百萬的訓練圖像,50000張驗證集,150000張測試集。在進行網路訓練之前我們要對數據集圖片進行預處理。首先我們要將不同解析度的圖片全部變成256x256規格的圖像,變換方法是將圖片的短邊縮放到 256像素值,然後截取長邊的中間位置的256個像素值,得到256x256大小的圖像。除了對圖片大小進行預處理,還需要對圖片減均值,一般圖像均是由RGB三原色構成,均值按RGB三分量分別求得,由此可以更加突出圖片的特徵,更方便後面的計算。
此外,對了保證訓練的效果,我們仍需對訓練數據進行更為嚴苛的處理。在256x256大小的圖像中,截取227x227大小的圖像,在此之後對圖片取鏡像,這樣就使得原始數據增加了(256-224)x(256-224)x2= 2048倍。最後對RGB空間做PCA,然後對主成分做(0,0.1)的高斯擾動,結果使錯誤率下降1%。對測試數據而言,抽取以圖像4個角落的大小為224224的圖像,中心的224224大小的圖像以及它們的鏡像翻轉圖像,這樣便可以獲得10張圖像,我們便可以利用softmax進行預測,對所有預測取平均作為最終的分類結果。
ReLU激活函數
之前我們提到常用的非線性的激活函數是sigmoid,它能夠把輸入的連續實值全部確定在0和1之間。但是這帶來一個問題,當一個負數的絕對值很大時,那麼輸出就是0;如果是絕對值非常大的正數,輸出就是1。這就會出現飽和的現象,飽和現象中神經元的梯度會變得特別小,這樣必然會使得網路的學習更加困難。此外,sigmoid的output的值並不是0為均值,因為這會導致上一層輸出的非0均值信號會直接輸入到後一層的神經元上。所以AlexNet模型提出了ReLU函數,公式:f(x)=max(0,x)f(x)=max(0,x)。
用ReLU代替了Sigmoid,發現使用 ReLU 得到的SGD的收斂速度會比 sigmoid快很多,這成了AlexNet模型的優勢之一。
Dropout
AlexNet模型提出了一個有效的模型組合方式,相比於單模型,只需要多花費一倍的時間,這種方式就做Dropout。在整個神經網路中,隨機選取一半的神經元將它們的輸出變成0。這種方式使得網路關閉了部分神經元,減少了過擬合現象。同時訓練的迭代次數也得以增加。當時一個GTX580 GPU只有3GB內存,這使得大規模的運算成為不可能。但是,隨著硬體水平的發展,當時的GPU已經可以實現並行計算了,並行計算之後兩塊GPU可以互相通信傳輸數據,這樣的方式充分利用了GPU資源,所以模型設計利用兩個GPU並行運算,大大提高了運算效率。
模型分析
AlexNet模型共有8層結構,其中前5層為卷積層,其中前兩個卷積層和第五個卷積層有池化層,其他卷積層沒有。後面3層為全連接層,神經元約有六十五萬個,所需要訓練的參數約六千萬個。
圖片預處理過後,進過第一個卷積層C1之後,原始的圖像也就變成了55x55的像素大小,此時一共有96個通道。模型分為上下兩塊是為了方便GPU運算,48作為通道數目更加適合GPU的並行運算。上圖的模型里把48層直接變成了一個面,這使得模型看上去更像一個立方體,大小為55x55x48。在後面的第二個卷積層C2中,卷積核的尺寸為5x5x48,由此再次進行卷積運算。在C1,C2卷積層的卷積運算之後,都會有一個池化層,使得提取特徵之後的特徵圖像素值大大減小,方便了運算,也使得特徵更加明顯。而第三層的卷積層C3又是更加特殊了。第三層卷積層做了通道的合並,將之前兩個通道的數據再次合並起來,這是一種串接操作。第三層後,由於串接,通道數變成256。全卷積的卷積核尺寸也就變成了13×13×25613×13×256。一個有4096個這樣尺寸的卷積核分別對輸入圖像做4096次的全卷積操作,最後的結果就是一個列向量,一共有4096個數。這也就是最後的輸出,但是AlexNet最終是要分1000個類,所以通過第八層,也就是全連接的第三層,由此得到1000個類輸出。
Alexnet網路中各個層發揮了不同的作用,ReLU,多個CPU是為了提高訓練速度,重疊pool池化是為了提高精度,且不容易產生過擬合,局部歸一化響應是為了提高精度,而數據增益與dropout是為了減少過擬合。
VGG net
在ILSVRC-2014中,牛津大學的視覺幾何組提出的VGGNet模型在定位任務第一名和分類任務第一名[[i]]。如今在計算機視覺領域,卷積神經網路的良好效果深得廣大開發者的喜歡,並且上文提到的AlexNet模型擁有更好的效果,所以廣大從業者學習者試圖將其改進以獲得更好地效果。而後來很多人經過驗證認為,AlexNet模型中所謂的局部歸一化響應浪費了計算資源,但是對性能卻沒有很大的提升。VGG的實質是AlexNet結構的增強版,它側重強調卷積神經網路設計中的深度。將卷積層的深度提升到了19層,並且在當年的ImageNet大賽中的定位問題中獲得了第一名的好成績。整個網路向人們證明了我們是可以用很小的卷積核取得很好地效果,前提是我們要把網路的層數加深,這也論證了我們要想提高整個神經網路的模型效果,一個較為有效的方法便是將它的深度加深,雖然計算量會大大提高,但是整個復雜度也上升了,更能解決復雜的問題。雖然VGG網路已經誕生好幾年了,但是很多其他網路上效果並不是很好地情況下,VGG有時候還能夠發揮它的優勢,讓人有意想不到的收獲。
與AlexNet網路非常類似,VGG共有五個卷積層,並且每個卷積層之後都有一個池化層。當時在ImageNet大賽中,作者分別嘗試了六種網路結構。這六種結構大致相同,只是層數不同,少則11層,多達19層。網路結構的輸入是大小為224*224的RGB圖像,最終將分類結果輸出。當然,在輸入網路時,圖片要進行預處理。
VGG網路相比AlexNet網路,在網路的深度以及寬度上做了一定的拓展,具體的卷積運算還是與AlexNet網路類似。我們主要說明一下VGG網路所做的改進。第一點,由於很多研究者發現歸一化層的效果並不是很好,而且佔用了大量的計算資源,所以在VGG網路中作者取消了歸一化層;第二點,VGG網路用了更小的3x3的卷積核,而兩個連續的3x3的卷積核相當於5x5的感受野,由此類推,三個3x3的連續的卷積核也就相當於7x7的感受野。這樣的變化使得參數量更小,節省了計算資源,將資源留給後面的更深層次的網路。第三點是VGG網路中的池化層特徵池化核改為了2x2,而在AlexNet網路中池化核為3x3。這三點改進無疑是使得整個參數運算量下降,這樣我們在有限的計算平台上能夠獲得更多的資源留給更深層的網路。由於層數較多,卷積核比較小,這樣使得整個網路的特徵提取效果很好。其實由於VGG的層數較多,所以計算量還是相當大的,卷積層比較多成了它最顯著的特點。另外,VGG網路的拓展性能比較突出,結構比較簡潔,所以它的遷移性能比較好,遷移到其他數據集的時候泛化性能好。到現在為止,VGG網路還經常被用來提出特徵。所以當現在很多較新的模型效果不好時,使用VGG可能會解決這些問題。
GoogleNet
谷歌於2014年Imagenet挑戰賽(ILSVRC14)憑借GoogleNet再次斬獲第一名。這個通過增加了神經網路的深度和寬度獲得了更好地效果,在此過程中保證了計算資源的不變。這個網路論證了加大深度,寬度以及訓練數據的增加是現有深度學習獲得更好效果的主要方式。但是增加尺寸可能會帶來過擬合的問題,因為深度與寬度的加深必然會帶來過量的參數。此外,增加網路尺寸也帶來了對計算資源侵佔過多的缺點。為了保證計算資源充分利用的前提下去提高整個模型的性能,作者使用了Inception模型,這個模型在下圖中有展示,可以看出這個有點像金字塔的模型在寬度上使用並聯的不同大小的卷積核,增加了卷積核的輸出寬度。因為使用了較大尺度的卷積核增加了參數。使用了1*1的卷積核就是為了使得參數的數量最少。
Inception模塊
上圖表格為網路分析圖,第一行為卷積層,輸入為224×224×3 ,卷積核為7x7,步長為2,padding為3,輸出的維度為112×112×64,這裡面的7x7卷積使用了 7×1 然後 1×7 的方式,這樣便有(7+7)×64×3=2,688個參數。第二行為池化層,卷積核為3×33×3,滑動步長為2,padding為 1 ,輸出維度:56×56×64,計算方式:1/2×(112+2×1?3+1)=56。第三行,第四行與第一行,第二行類似。第 5 行 Inception mole中分為4條支線,輸入均為上層產生的 28×28×192 結果:第 1 部分,1×1 卷積層,輸出大小為28×28×64;第 2 部分,先1×1卷積層,輸出大小為28×28×96,作為輸入進行3×3卷積層,輸出大小為28×28×128;第 3部分,先1×1卷積層,輸出大小為28×28×32,作為輸入進行3×3卷積層,輸出大小為28×28×32;而第3 部分3×3的池化層,輸出大小為輸出大小為28×28×32。第5行的Inception mole會對上面是個結果的輸出結果並聯,由此增加網路寬度。
ResNet
2015年ImageNet大賽中,MSRA何凱明團隊的ResialNetworks力壓群雄,在ImageNet的諸多領域的比賽中上均獲得了第一名的好成績,而且這篇關於ResNet的論文Deep Resial Learning for Image Recognition也獲得了CVPR2016的最佳論文,實至而名歸。
上文介紹了的VGG以及GoogleNet都是增加了卷積神經網路的深度來獲得更好效果,也讓人們明白了網路的深度與廣度決定了訓練的效果。但是,與此同時,寬度與深度加深的同時,效果實際會慢慢變差。也就是說模型的層次加深,錯誤率提高了。模型的深度加深,以一定的錯誤率來換取學習能力的增強。但是深層的神經網路模型犧牲了大量的計算資源,學習能力提高的同時不應當產生比淺層神經網路更高的錯誤率。這個現象的產生主要是因為隨著神經網路的層數增加,梯度消失的現象就越來越明顯。所以為了解決這個問題,作者提出了一個深度殘差網路的結構Resial:
上圖就是殘差網路的基本結構,可以看出其實是增加了一個恆等映射,將原本的變換函數H(x)轉換成了F(x)+x。示意圖中可以很明顯看出來整個網路的變化,這樣網路不再是簡單的堆疊結構,這樣的話便很好地解決了由於網路層數增加而帶來的梯度原來越不明顯的問題。所以這時候網路可以做得很深,到目前為止,網路的層數都可以上千層,而能夠保證很好地效果。並且,這樣的簡單疊加並沒有給網路增加額外的參數跟計算量,同時也提高了網路訓練的效果與效率。
在比賽中,為了證明自己觀點是正確的,作者控制變數地設計幾個實驗。首先作者構建了兩個plain網路,這兩個網路分別為18層跟34層,隨後作者又設計了兩個殘差網路,層數也是分別為18層和34層。然後對這四個模型進行控制變數的實驗觀察數據量的變化。下圖便是實驗結果。實驗中,在plain網路上觀測到明顯的退化現象。實驗結果也表明,在殘差網路上,34層的效果明顯要好於18層的效果,足以證明殘差網路隨著層數增加性能也是增加的。不僅如此,殘差網路的在更深層的結構上收斂性能也有明顯的提升,整個實驗大為成功。
除此之外,作者還做了關於shortcut方式的實驗,如果殘差網路模塊的輸入輸出維度不一致,我們如果要使維度統一,必須要對維數較少的進行増維。而增維的最好效果是用0來填充。不過實驗數據顯示三者差距很小,所以線性投影並不是特別需要。使用0來填充維度同時也保證了模型的復雜度控制在比較低的情況下。
隨著實驗的深入,作者又提出了更深的殘差模塊。這種模型減少了各個層的參數量,將資源留給更深層數的模型,在保證復雜度很低的情況下,模型也沒有出現梯度消失很明顯的情況,因此目前模型最高可達1202層,錯誤率仍然控製得很低。但是層數如此之多也帶來了過擬合的現象,不過諸多研究者仍在改進之中,畢竟此時的ResNet已經相對於其他模型在性能上遙遙領先了。
殘差網路的精髓便是shortcut。從一個角度來看,也可以解讀為多種路徑組合的一個網路。如下圖:
ResNet可以做到很深,但是從上圖中可以體會到,當網路很深,也就是層數很多時,數據傳輸的路徑其實相對比較固定。我們似乎也可以將其理解為一個多人投票系統,大多數梯度都分布在論文中所謂的effective path上。
DenseNet
在Resnet模型之後,有人試圖對ResNet模型進行改進,由此便誕生了ResNeXt模型。
這是對上面介紹的ResNet模型結合了GoogleNet中的inception模塊思想,相比於Resnet來說更加有效。隨後,誕生了DenseNet模型,它直接將所有的模塊連接起來,整個模型更加簡單粗暴。稠密相連成了它的主要特點。
我們將DenseNet與ResNet相比較:
從上圖中可以看出,相比於ResNet,DenseNet參數量明顯減少很多,效果也更加優越,只是DenseNet需要消耗更多的內存。
總結
上面介紹了卷積神經網路發展史上比較著名的一些模型,這些模型非常經典,也各有優勢。在算力不斷增強的現在,各種新的網路訓練的效率以及效果也在逐漸提高。從收斂速度上看,VGG>Inception>DenseNet>ResNet,從泛化能力來看,Inception>DenseNet=ResNet>VGG,從運算量看來,Inception<DenseNet< ResNet<VGG,從內存開銷來看,Inception<ResNet< DenseNet<VGG。在本次研究中,我們對各個模型均進行了分析,但從效果來看,ResNet效果是最好的,優於Inception,優於VGG,所以我們第四章實驗中主要採用谷歌的Inception模型,也就是GoogleNet。
❽ 數據增強的方法有哪些
1 什麼是數據增強?
數據增強也叫數據擴增,意思是在不實質性的增加數據的情況下,讓有限的數據產生等價於更多數據的價值。
比如上圖,第1列是原圖,後面3列是對第1列作一些隨機的裁剪、旋轉操作得來。
每張圖對於網路來說都是不同的輸入,加上原圖就將數據擴充到原來的10倍。假如我們輸入網路的圖片的解析度大小是256×256,若採用隨機裁剪成224×224的方式,那麼一張圖最多可以產生32×32張不同的圖,數據量擴充將近1000倍。雖然許多的圖相似度太高,實際的效果並不等價,但僅僅是這樣簡單的一個操作,效果已經非凡了。
如果再輔助其他的數據增強方法,將獲得更好的多樣性,這就是數據增強的本質。
數據增強可以分為,有監督的數據增強和無監督的數據增強方法。其中有監督的數據增強又可以分為單樣本數據增強和多樣本數據增強方法,無監督的數據增強分為生成新的數據和學習增強策略兩個方向。
2 有監督的數據增強
有監督數據增強,即採用預設的數據變換規則,在已有數據的基礎上進行數據的擴增,包含單樣本數據增強和多樣本數據增強,其中單樣本又包括幾何操作類,顏色變換類。
2.1. 單樣本數據增強
所謂單樣本數據增強,即增強一個樣本的時候,全部圍繞著該樣本本身進行操作,包括幾何變換類,顏色變換類等。
(1) 幾何變換類
幾何變換類即對圖像進行幾何變換,包括翻轉,旋轉,裁剪,變形,縮放等各類操作,下面展示其中的若干個操作。
水平翻轉和垂直翻轉
隨機旋轉
隨機裁剪
變形縮放
翻轉操作和旋轉操作,對於那些對方向不敏感的任務,比如圖像分類,都是很常見的操作,在caffe等框架中翻轉對應的就是mirror操作。
翻轉和旋轉不改變圖像的大小,而裁剪會改變圖像的大小。通常在訓練的時候會採用隨機裁剪的方法,在測試的時候選擇裁剪中間部分或者不裁剪。值得注意的是,在一些競賽中進行模型測試時,一般都是裁剪輸入的多個版本然後將結果進行融合,對預測的改進效果非常明顯。
以上操作都不會產生失真,而縮放變形則是失真的。
很多的時候,網路的訓練輸入大小是固定的,但是數據集中的圖像卻大小不一,此時就可以選擇上面的裁剪成固定大小輸入或者縮放到網路的輸入大小的方案,後者就會產生失真,通常效果比前者差。
(2) 顏色變換類
上面的幾何變換類操作,沒有改變圖像本身的內容,它可能是選擇了圖像的一部分或者對像素進行了重分布。如果要改變圖像本身的內容,就屬於顏色變換類的數據增強了,常見的包括雜訊、模糊、顏色變換、擦除、填充等等。
基於雜訊的數據增強就是在原來的圖片的基礎上,隨機疊加一些雜訊,最常見的做法就是高斯雜訊。更復雜一點的就是在面積大小可選定、位置隨機的矩形區域上丟棄像素產生黑色矩形塊,從而產生一些彩色雜訊,以Coarse Dropout方法為代表,甚至還可以對圖片上隨機選取一塊區域並擦除圖像信息。
添加Coarse Dropout雜訊
顏色變換的另一個重要變換是顏色擾動,就是在某一個顏色空間通過增加或減少某些顏色分量,或者更改顏色通道的順序。
顏色擾動
還有一些顏色變換,本文就不再詳述。
幾何變換類,顏色變換類的數據增強方法細致數還有非常多,推薦給大家一個git項目:
https://github.com/aleju/imgaug
預覽一下它能完成的數據增強操作吧。
2.2. 多樣本數據增強
不同於單樣本數據增強,多樣本數據增強方法利用多個樣本來產生新的樣本,下面介紹幾種方法。
(1) SMOTE[1]
SMOTE即Synthetic Minority Over-sampling Technique方法,它是通過人工合成新樣本來處理樣本不平衡問題,從而提升分類器性能。
類不平衡現象是很常見的,它指的是數據集中各類別數量不近似相等。如果樣本類別之間相差很大,會影響分類器的分類效果。假設小樣本數據數量極少,如僅占總體的1%,則即使小樣本被錯誤地全部識別為大樣本,在經驗風險最小化策略下的分類器識別准確率仍能達到99%,但由於沒有學習到小樣本的特徵,實際分類效果就會很差。
SMOTE方法是基於插值的方法,它可以為小樣本類合成新的樣本,主要流程為:
第一步,定義好特徵空間,將每個樣本對應到特徵空間中的某一點,根據樣本不平衡比例確定好一個采樣倍率N;
第二步,對每一個小樣本類樣本(x,y),按歐氏距離找出K個最近鄰樣本,從中隨機選取一個樣本點,假設選擇的近鄰點為(xn,yn)。在特徵空間中樣本點與最近鄰樣本點的連線段上隨機選取一點作為新樣本點,滿足以下公式:
第三步,重復以上的步驟,直到大、小樣本數量平衡。
該方法的示意圖如下。
在python中,SMOTE演算法已經封裝到了imbalanced-learn庫中,如下圖為演算法實現的數據增強的實例,左圖為原始數據特徵空間圖,右圖為SMOTE演算法處理後的特徵空間圖。
(2) SamplePairing[2]
SamplePairing方法的原理非常簡單,從訓練集中隨機抽取兩張圖片分別經過基礎數據增強操作(如隨機翻轉等)處理後經像素以取平均值的形式疊加合成一個新的樣本,標簽為原樣本標簽中的一種。這兩張圖片甚至不限制為同一類別,這種方法對於醫學圖像比較有效。
經SamplePairing處理後可使訓練集的規模從N擴增到N×N。實驗結果表明,因SamplePairing數據增強操作可能引入不同標簽的訓練樣本,導致在各數據集上使用SamplePairing訓練的誤差明顯增加,而在驗證集上誤差則有較大幅度降低。
盡管SamplePairing思路簡單,性能上提升效果可觀,符合奧卡姆剃刀原理,但遺憾的是可解釋性不強。
(3) mixup[3]
mixup是Facebook人工智慧研究院和MIT在「Beyond Empirical Risk Minimization」中提出的基於鄰域風險最小化原則的數據增強方法,它使用線性插值得到新樣本數據。
令(xn,yn)是插值生成的新數據,(xi,yi)和(xj,yj)是訓練集隨機選取的兩個數據,則數據生成方式如下
λ的取值范圍介於0到1。提出mixup方法的作者們做了豐富的實驗,實驗結果表明可以改進深度學習模型在ImageNet數據集、CIFAR數據集、語音數據集和表格數據集中的泛化誤差,降低模型對已損壞標簽的記憶,增強模型對對抗樣本的魯棒性和訓練生成對抗網路的穩定性。
SMOTE,SamplePairing,mixup三者思路上有相同之處,都是試圖將離散樣本點連續化來擬合真實樣本分布,不過所增加的樣本點在特徵空間中仍位於已知小樣本點所圍成的區域內。如果能夠在給定范圍之外適當插值,也許能實現更好的數據增強效果。
3 無監督的數據增強
無監督的數據增強方法包括兩類:
(1) 通過模型學習數據的分布,隨機生成與訓練數據集分布一致的圖片,代表方法GAN[4]。
(2) 通過模型,學習出適合當前任務的數據增強方法,代表方法AutoAugment[5]。
3.1 GAN
關於GAN(generative adversarial networks),我們已經說的太多了。它包含兩個網路,一個是生成網路,一個是對抗網路,基本原理如下:
(1) G是一個生成圖片的網路,它接收隨機的雜訊z,通過雜訊生成圖片,記做G(z) 。
(2) D是一個判別網路,判別一張圖片是不是「真實的」,即是真實的圖片,還是由G生成的圖片。
GAN的以假亂真能力就不多說了。
2 Autoaugmentation[5]
AutoAugment是Google提出的自動選擇最優數據增強方案的研究,這是無監督數據增強的重要研究方向。它的基本思路是使用增強學習從數據本身尋找最佳圖像變換策略,對於不同的任務學習不同的增強方法,流程如下:
(1) 准備16個常用的數據增強操作。
(2) 從16個中選擇5個操作,隨機產生使用該操作的概率和相應的幅度,將其稱為一個sub-policy,一共產生5個sub-polices。
(3) 對訓練過程中每一個batch的圖片,隨機採用5個sub-polices操作中的一種。
(4) 通過模型在驗證集上的泛化能力來反饋,使用的優化方法是增強學習方法。
(5) 經過80~100個epoch後網路開始學習到有效的sub-policies。
(6) 之後串接這5個sub-policies,然後再進行最後的訓練。
總的來說,就是學習已有數據增強的組合策略,對於門牌數字識別等任務,研究表明剪切和平移等幾何變換能夠獲得最佳效果。
❾ 計算機圖形學復習
第一章
1. 計算機圖形:用數學方法描述,通過計算機生成、處理、存儲和顯示的對象。
2. 圖形和圖像的主要區別是表示方法不同:圖形是用矢量表示;圖像是用點陣表示的。圖形和圖像也可以通過光柵顯示器(或經過識別處理)可相互轉化。
3. 於計算機圖形學緊密相關的學科主要包括 圖像處理、計算幾何和計算機視覺模式識別。它們的共同點是 以圖形/圖像在計算機中的表示方法為基礎。
4. 互動式計算機圖形系統的發展可概括為以下4個階段:字元、矢量、二維光柵圖形、三維圖形。
5. 圖形學研究的主要內容有:①幾何造型技術 ②圖形生成技術 ③圖形處理技術 ④圖形信息的存儲、檢索與交換技術 ⑤人機交互技術 ⑥動畫技術 ⑦圖形輸入輸出技術 ⑧圖形標准與圖形軟體包的研發。
6. 計算機輔助設計和計算機輔助製造 是計算機圖形學最廣泛最活躍的應用領域。
7. 計算機圖形學的基本任務:一是如何利用計算機硬體來實現圖形處理功能;二是如何利用好的圖形軟體;三是如何利用數學方法及演算法解決實際應用中的圖行處理問題。
8. 計算機圖形系統是由硬體系統和軟體系統組成的。
9. 計算機圖形系統包括處理、存儲、交互、輸入和輸出五種基本功能。
10. 鍵盤和滑鼠是最常用的圖形輸入設備。滑鼠根據測量位移部件的不同,分為光電式、光機式和機械式3種。
11. 數字化儀分為電子式、超聲波式、磁伸縮式、電磁感應式等。小型的數字化儀也稱為圖形輸入板。
12. 觸摸屏是一種 定位設備,它是一種對於觸摸能產生反應的屏幕。
13. 掃描儀由3部分組成:掃描頭、控制電路和移動掃描機構。掃描頭由光源發射和光鮮接收組成。按移動機構的不同,掃描儀可分為平板式和滾筒式2種。
14. 顯示器是計算機的標准輸出設備。彩色CRT的顯示技術有2種:電子穿透法和蔭罩法。
15. 隨機掃描是指電子束的定位及偏轉具有隨意性,電子束根據需要可以在熒光屏任意方向上連續掃描,沒有固定掃描線和掃描順序限制。它具有局部修改性和動態性能。
16. 光柵掃描顯示器是畫點設備。
17. 點距是指相鄰像素點間的距離,與分辨指標相關。
18. 等離子顯示器一般有三層玻璃板組成,通常稱為等離子顯示器的三層結構。
19. 用以輸出圖形的計算機外部設備稱為硬拷貝設備。
20. 列印機是廉價的硬拷貝設備,從機械動作上常為撞擊式和非撞擊式2種。
21. 常用的噴墨頭有:壓電式、氣泡式、靜電式、固體式。
22. 繪圖儀分為靜電繪圖儀和筆式繪圖儀。
23. 圖形軟體的分層。由下到上分別是:①圖形設備指令、命令集、計算機操作系統 ②零級圖形軟體 ③一級圖形軟體 ④二級圖形軟體 ⑤三級圖形軟體。
24. 零級圖形軟體是面向系統的、最底層的軟體,主要解決圖形設備與主機的通信與介面問題,又稱設備驅動程序。
25. 一級圖形軟體即面向系統又面向用戶,又稱基本子系統。
26. 圖形應用軟體是系統的核心部分。
27. 從物理學角度,顏色以主波長、色純度和輝度來描述;從視覺角度來看,顏色以色彩、飽和度和亮度來描述。
28. 用適當比列的3種顏色混合,可以獲得白色,而且這3種顏色中的任意2種的組合都不能生成第三種顏色,稱為三原色理論。
29. RGB模型的匹配表達式是:c=rR+gG+bB。
30. 常用顏色模型
顏色模型名稱 使用范圍
RGB 圖形顯示設備(彩色CRT和光柵顯示器)
CMY 圖形列印、繪制設備
HSV 對應畫家本色原理、直觀的顏色描述
HSL 基於顏色參數的模型
用基色青、品紅、黃定義的CMY顏色模型用來描述硬拷貝設備的輸出顏色。它從白光中濾去某種顏色,故稱為減色性原色系統。
第二章
31. 直線生成的3個常用演算法:數值微分法(DDA)、中點劃線法和Bresenham演算法。
32. DDA演算法的C語言實現:
DDA演算法生成直線,起點(x0,y0),終點(x1,y1).
Void CMy View ::OnDdaline()
{
CDC *pDC=GetDC(); //獲得設備指針
int x0=100,y0=100,x1=300,y1=200,c=RGB(250,0,0);//定義直線兩端點和直線顏色
int x,y,i;
float dx,dy,k;
dx=(float)(x1-x0);
dy=(float)(y1-y0);
k=dy/dx;
x=x0;
y=y0;
if(abs(k)<1)
{ for(;x<=x1;x++)
{pDC—>SetPixel(x,int(y+0.5),c);
y=y+k;}
}
if(abs(k)>=1)
{ for(;y<=y1;y++)
{pDC—>SetPixel(int(x+0.5),y,c);
x=x+1/k;}
}
ReleaseDC(pDC); //釋放設備指針
}
33. 任何影響圖元顯示方法的參數稱為屬性參數。圖元的基本表現是線段,其基本屬性包括線型、線寬和色彩。
34. 最常見的線型包括實線、虛線、細線和點劃線等,通常默認的線型是實線。
35. 線寬控制的實線方法:垂直線刷子、水平線刷子、方形線刷子。生成具有寬度的線條還可以採用區域填充演算法。
36. 用離散量表示連續量時引起的失真現象稱為走樣。為了提高圖形顯示質量,減少或消除走樣現象的技術稱為反走樣。
37. 反走樣技術有:提高解析度(硬體方法和軟體方法)、簡單區域取樣、加權區域取樣。
38. 區域連通情況分為四連通區域和八連通區域。四連通區域是指從區域上某一點出發,可通過上下左右4個方向移動,在不越出區域的前提下到達區域內的任意像素;八連通區域是指從區域內某一像素出發,可通過上下左右、左上左下、右上右下8個方向的移動,在不越出區域的前提下到達區域內的任意像素。
39. 字元的圖形表示可以分為點陣式和矢量式兩種形式。
40. 在圖形軟體中,除了要求能生成直線、圓等基本圖形元素外,還要求能生成其他曲線圖元、多邊形及符號等多種圖元。
41. 在掃描線填充演算法中,對水平邊忽略而不予處理的原因是實際處理時不計其交點。
42. 關於直線生成演算法的敘述中,正確的是:Bresenham演算法是對中點畫線演算法的改進。
43. 在中點畫圓演算法中敘述錯誤的是:為了減輕畫圓的工作量,中點畫圓利用了圓的四對稱性性質。
44. 多邊形填充時,下列論述錯誤的是:在判斷點是否在多邊形內時,一般通過在多變形外找一點,然後根據該線段與多邊形的交點數目為偶數即可認為在多邊形內部,若為奇數則在多邊形外部,且不考慮任何特殊情況。
第三章
1. Cohen-Sutherland演算法,也稱編碼裁剪法。其基本思想是:對於每條待裁剪的線段P1P2分三種情況處理:①若P1P2完全在窗口內,則顯示該線段,簡稱「取」之;②若P1P2完全在窗口外,則丟棄該線段,簡稱「舍」之;③若線段既不滿足「取」的條件也不滿足「舍」的條件,則求線段與窗口邊界的交點,在交點處把線段分為兩段,其中一段 完全在窗口外,可舍棄之,然後對另一段重復上述處理。
2. Sutherland-Hodgman演算法,又稱逐邊裁剪演算法。其基本思想是用窗口的四條邊所在的直線依次來裁剪多邊形。多邊形的每條邊與裁剪線的位置關系有4種情況(假設當前處理的多邊形的邊為SP):a>端點S在外側,P在內側,則從外到內輸出P和I;b>端點S和P都在內側,則從內到內輸出P;c>端點S在內側,而P在外側,則從內到外輸出I;d>端點S和P都在外側,無輸出。
3. 按裁剪精度的不同,字元裁剪可分為三種情況:字元串裁剪、字元裁剪和筆畫裁剪。
4. 在線段AB的編碼裁剪演算法中,如A、B兩點的碼邏輯或運算全為0,則該線段位於窗口內;如AB兩點的碼邏輯與運算結果不為0,則該線段在窗口外。
5. n邊多邊形關於矩形窗口進行裁剪,結果多邊形最多有2n個頂點,最少有n個頂點。
6. 對一條等長的直線段裁剪,編碼裁剪演算法的速度和中點分割演算法的裁剪速度哪一個快,無法確定。(√)
7. 多邊形裁剪可以看做是線段裁剪的組合。(X)
8. 對於線段來說,中點分割演算法要比其他線段裁剪演算法的裁剪速度快。(X)
9. 多邊形的Weiler-Atherton裁剪演算法可以實現對任意多邊形的裁剪。(√)
第四章
1. 幾何變換是指改變幾何形狀和位置,非幾何變換是指改變圖形的顏色、線型等屬性。變換方法有對象變換(坐標系不動)和坐標變換(坐標系變化)兩種。
2. 坐標系可以分為以下幾種:世界坐標系(是對計算機圖形場景中所有圖形對象的空間定位和定義,是其他坐標系的參照)、模型坐標系(用於設計物體的局部坐標系)、用戶坐標系(為了方便交互繪圖操作,可以變換角度、方向)、設備坐標系(是繪制或輸出圖形的設備所用的坐標系,採用左手系統)。
3. 將用戶坐標系中需要進行觀察和處理的一個坐標區域稱為窗口,將窗口映射到顯示設備上的坐標區域稱為視區。從窗口到視區的變換,稱為規格化變換。(eg.4-1)
4. 所謂體素,是指可以用有限個尺寸參數定位和定形的體,如長方體、圓錐體。
5. 所謂齊次坐標表示,就是用n+1維向量表示n維的向量。
6. 二維點(x,y)的齊次坐標可以表示為:(hx hy h),其中h≠0。當h=1時稱為規范化的齊次坐標,它能保證點集表示的唯一性。
7. 旋轉變換公式的推導、對稱變換
第五章
1. 交互繪圖技術是一種處理用戶輸入圖形數據的技術,是設計交互繪圖系統的基礎。常見的交互繪圖技術有:定位技術、橡皮筋技術、拖曳技術、定值技術、拾取技術、網格與吸附技術。
2. 常用的橡皮筋技術有:橡皮筋直線、橡皮筋矩形、橡皮筋圓。
3. 拖曳技術是將形體在空間移動的過程動態地、連續地表示出來,直到用戶滿意。
4. 定值技術有2種:一種是鍵入數值,另一種是改變電位計阻值產生要求的數量,可以用模擬的方式實現電位計功能。
5. 拾取一個基本的對象可以通過:指定名稱法、特徵點發、外界矩陣法、分類法、直接法。
第六章
1. 點、線、面是形成三維圖形的基礎,三維變換是從點開始。
2. 三維圖形變換分類:三維圖形變換包括三維幾何變換和平面幾何變換,三維幾何變換包括基本幾何變換和復合變換;平面幾何變換包括平行投影和透視投影,平行投影包括正投影和軸測投影,透視投影包括一點透視、二點透視、三點透視。
3. 投影中心與投影面之間的距離是無限的投影叫做平行投影,它包括正投影和軸測投影。
4. 正投影形成的視圖包括:主視圖、俯視圖和左視圖。軸測投影形成的視圖為軸測圖。
5. 透視投影也稱為中心投影,其投影中心與投影面之間的距離是有限的。其特點是產生近大遠小的視覺效果
6. 對於透視投影,不平行於投影面的平行線的投影會匯聚到一個點,這個點稱為滅點。透視投影的滅點有無限多個,與坐標軸平行的平行線在投影面上形成的滅點稱為主滅點。主滅點最多有3個,其對應的透視投影分別稱為一點透視、二點透視、三點透視。
第七章
1. 型值點是曲面或曲線上的點,而控制點不一定在曲線曲面上,控制點的主要目的是用來控制曲線曲面的形狀。
2. 插值和逼近是曲線曲面設計中的兩種不同方法。插值—生成的曲線曲面經過每一個型值點,逼近—生成的曲線曲面靠近每一個控制點。
3. 曲線曲面的表示要求:唯一性、統一性、幾何不變性、幾何直觀、易於界定、易於光滑連接。
4. 曲線曲面有參數和非參數表示,但參數表示較好。非參數表示又分為顯式和隱式兩種。
5. 對於一個平面曲線,顯式表示的一般形式是:y=f(x)。一個x與一個y對應,因此顯式方程不能表示封閉或多值曲線。例不能用顯式方程表示一個圓。
6. 如果一個曲線方程表示為f(x,y)=0的形式,我們稱之為隱式表示。其優點是易於判斷函數f(x,y)是否大於、小於或等於零,即易於判斷是落在所表示曲線上還是在曲線的哪一側。
7. 參數連續與幾何連續的區別:參數連續性是傳統意義上的、嚴格的連續,而幾何連續性只需限定兩個曲線段在交點處的參數導數成比例,不必完全相等,是一種更直觀、易於交互控制的連續性。
8. 在曲線曲面造型中,一般只用到C1(1階參數連續)、C2(2階參數連續)、G1(1階幾何連續)、G2(2階幾何連續)。切矢量(一階導數)反映了曲線對參數t的變化速遞,曲率(二階導數)反映了曲線對參數t變化的加速度。
9. 通常C1連續必能保證G1的連續,但G1的連續並不能保證C1連續。
10. 對於三次Hermite曲線,用於描述曲線的可供選擇的條件有:端點坐標、切矢量和曲率。
11. 三次Hermite曲線特點:①可局部調整,因為每個曲線段僅依賴於端點約束;②基於Hermite樣條的變化形式有Cardinal樣條和Kochanek-Bartels樣條;③具有幾何不變性。
12. Bezier曲線的性質:①端點性質②端點切矢量③端點的曲率④對稱性⑤幾何不變性⑥凸包性⑦變差縮減性。
13. 一次Bezier曲線是連接起點P0和終點P1的直線段,二次Bezier曲線對應一條起點P0終點在P2處的拋物線。
14. B樣條曲線的性質:①局部性②連續性或可微性③幾何不變性④嚴格凸包性⑤近似性⑥變差縮減性。
15. NURRS曲線具有以下性質:①局部性②可微性③仿射不變性④嚴格保凸性⑤一般性⑥變差縮減性⑦端點性質。
第八章
1. 要把三維物體的信息顯示在二維顯示設備中,必須通過投影變換。由於投影變換失去了深度信息,往往會導致二義性,要消除二義性,就必須在繪制時消除實際不可見的線和面,稱作消除隱藏線和隱藏面,簡稱消隱。
2. 面消隱常用演算法有:深度緩沖區(Z-buffer)演算法和深度排序演算法(畫家演算法)。
3. 深度緩沖區演算法和深度排序演算法的區別:
❿ 人工智慧時代,什麼職業不會在未來被淘汰
人工智慧時代,有關於人工智慧相關、演算法相關、包括人社部擬發布的15個新興職業:物聯網工程技術人員、大數據工程技術人員、雲計算工程技術人員、建築信息模型技術員、電子競技運營師、電子競技員、無人機駕駛員、數字化管理師、農業經理人、工業機器人系統操作員、工業機器人系統運維員、物聯網安裝調試員、城市軌道交通線路工、城市軌道交通列車檢修工。這些職業在未來都不會被淘汰!
首先我們從原理上來理解現在人工智慧最主要的實現方式深度學習。明白原理,知己知彼,就可以繼續談最終的問題了。
深度學習最令人驚訝之處就在於它十分簡單。十年前,沒有人指望由梯度下降方法訓練的簡單參數模型就可以在機器感知問題上獲得驚人的結果。現在,事實證明,你只需要一個有足夠多參數的模型,並且在足夠大的數據集上使用梯度下降進行訓練。正如 Feynman 曾經描述宇宙那樣,「它並不復雜,只是很多而已」。
在深度學習中,一切都是一個向量,即一切都是幾何空間中的一個點。模型輸入(可以是文本,圖像等)和目標首先被「矢量化」,即變成一些初始輸入矢量空間和目標矢量空間。深度學習模型中的每一層對通過它的數據進行簡單的幾何變換。同時,模型的層次鏈形成一個非常復雜的幾何變換,分解成一系列簡單的幾何變換。這種復雜的轉換嘗試將輸入空間一次一個點得映射到目標空間。這種轉換是通過層的權重進行參數化的,權重根據模型當前執行的情況進行迭代更新。這種幾何變換的一個關鍵特徵是它必須是可微分的,這是為了使我們能夠通過梯度下降學習它的參數。直觀地說,這意味著從輸入到輸出的幾何變形必須平滑且連續——這是一個重要的約束條件。
從上面原理看來,未來一段時間的人工智慧可能仍然無法達到人類本身的很多正常的能力。
所以,未來不會淘汰的職業,應該是依託於這些人類不會被淘汰的能力。比如,產品經理,就是獲取用戶需求,痛點,來形成產品需求的職業。由於人工智慧無法真正理解人類,也就無法完成這類工作,自然也無法被取代。
可以類推的,比如藝術家,可能被人工智慧臨摹,但會形成人工智慧一直在追趕,但從未被超越的事實,所以這類工作也不會被淘汰。
甚至,科學上,需要有創造力的,脫離了線性重復思維的科研工作,也無法被人工智慧取代。
綜上所述,從人工智慧原理講開,到最後人工智慧無法取代的崗位都做了闡述,希望能幫到大家,謝謝。