<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于CNN進行偽造圖像檢測

          共 4734字,需瀏覽 10分鐘

           ·

          2021-05-31 20:32

          全網(wǎng)搜集目標檢測文章,人工篩選最優(yōu)價值內容

          編者薦語
          隨著像Facebook和Instagram等社交網(wǎng)絡服務的出現(xiàn),在過去十年中產(chǎn)生的圖像數(shù)據(jù)量有一個巨大增幅。使用圖像(或視頻)處理軟件創(chuàng)建修改過的圖像與視頻是Facebook等互聯(lián)網(wǎng)公司的主要關注點。

          緒論


          偽造的圖片是假新聞的主要來源,經(jīng)常被用于惡意的方式,如煽動暴徒。在對可疑圖像采取行動之前,我們必須核實其真實性。IEEE信息取證和安全技術委員會(IFS-TC)發(fā)起了一項檢測和定位取證挑戰(zhàn)第一次圖像取證挑戰(zhàn)2013年解決了這個問題。他們提供了一個開放的數(shù)字圖像數(shù)據(jù)集,其中包括在不同光照條件下拍攝的圖像,以及使用如下算法生成的偽造圖像:


          • 內容感知的填充和補丁匹配(用于復制/粘貼)

          • 內容感知修復(用于復制/粘貼和拼接)

          • 克隆圖章(復制/粘貼)

          • 縫刻(圖像重定向)

          • 修復(受損部分的圖像重建-復制/粘貼的特殊情況)

          • Alpha Matting(用于拼接)



          挑戰(zhàn)的兩個階段


          第一階段要求參與的團隊將圖像分類為偽造的或原始的(從不操縱)。


          第二階段則要求他們檢測/定位偽造圖像中的偽造區(qū)域。


          為什么使用CNN ?


          在人工智能的前深度學習時代,圖像處理研究人員用于設計手工特征,解決一般的圖像處理問題,特別是圖像分類問題。一個這樣的例子是Sobel內核用于邊緣檢測。之前使用的圖像取證工具可以分為5類,即


          1. 基于像素的技術,檢測像素級引入的統(tǒng)計異常。

          2. 利用特定有損壓縮方案引入的統(tǒng)計相關性的基于格式的技術。

          3. 利用相機鏡頭、傳感器或芯片后處理引入的偽影的基于相機的技術。

          4. 基于物理學的技術,明確地建模和檢測物理對象、光和相機之間的三維交互作用中的異常。

          5. 基于幾何的技術,使世界上的對象和他們的位置相對于相機的測量。


          幾乎所有這些技術都利用了圖像的基于內容的特征,即圖像中呈現(xiàn)的視覺信息。CNN的是靈感來自視覺皮層。從技術上講,這些網(wǎng)絡被設計用來提取對分類有意義的特征,即那些使損失函數(shù)最小化的特征。通過梯度下降法學習網(wǎng)絡參數(shù)-核權值,從而從輸入給網(wǎng)絡的圖像中生成最有區(qū)別的特征。然后,這些特征被提供給一個完全連接的層,該層執(zhí)行最后的分類任務。


          在觀察了一些偽造的圖像后,很明顯,人類視覺皮層找到偽造的區(qū)域是可能的。因此CNN是這個工作的完美的深度學習模型。如果人類的視覺皮層能夠探測到它,那么這個專為這項任務而設計的網(wǎng)絡肯定會更強大。


          數(shù)據(jù)集


          在進入數(shù)據(jù)集概述之前,需要明確使用的術語

          • 偽造圖像:使用兩種最常見的操作操作即復制/粘貼和圖像拼接來處理/篡改的圖像。

          • 原始圖像:沒有被操縱的圖像,除了根據(jù)比賽規(guī)則將所有圖像調整為標準尺寸。

          • 圖像拼接:拼接操作可以將人的圖像組合在一起,給建筑物加門,給停車場加樹,加車等等。拼接的圖像也可以包含復制/粘貼操作產(chǎn)生的部分。接收拼接部分的圖像稱為“主機”圖像。與宿主映像拼接在一起的部分稱為“外星人”。

          可以找到第一階段和第二階段的整個數(shù)據(jù)集在這里。對于這個項目,我們將只使用火車集。它包含2個目錄—一個包含假圖像及其對應的掩碼,另一個包含原始圖像。偽圖像的掩碼是描述偽圖像拼接區(qū)域的黑白(非灰度)圖像。蒙版中的黑色像素表示在源圖像中進行操作以獲得偽造圖像的區(qū)域,特別是拼接區(qū)域。

          該數(shù)據(jù)集由1050張原始圖像和450張偽造圖像組成。彩色圖像通常是三個通道的圖像,紅、綠、藍各一個通道,但有時也會出現(xiàn)黃色的第四個通道。我們的數(shù)據(jù)集中的圖像是1、3和4通道圖像的混合。在觀察一些1通道圖像即灰度圖像后。


          挑戰(zhàn)設置者有意添加這些圖像,因為他們想要解決這樣的噪聲。盡管一些藍色的圖像可以是晴朗天空的圖像。因此,其中一些被包括在內,而另一些則作為噪聲被丟棄。來看看四個頻道的圖像——它們也沒有任何有用的信息。它們只是填充0值的像素網(wǎng)格。因此,清理后的原始數(shù)據(jù)集包含大約1025張RGB圖像。


          假圖像是3和4通道圖像的混合,但是,沒有一個是噪聲的。相應的掩模是1、3和4通道圖像的混合。我們將使用的特征提取只需要從蒙版的一個通道獲取信息。因此,我們的偽造圖像語料庫有450個贗品。接下來,我們做了一個火車測試分離,以保留20%的1475張照片的最終測試。


          列車集的特征提取


          數(shù)據(jù)集目前的狀態(tài)不適合訓練模型。它必須轉換成一種狀態(tài),這種狀態(tài)非常適合于手頭的任務,即在像素級檢測由于鍛造操作而引入的異常。把思想從在這里,我們設計了以下方法來從給定的數(shù)據(jù)創(chuàng)建相關的圖像。


          對于每一個假圖像,我們都有一個對應的掩模。我們使用該掩模沿拼接區(qū)域的邊界對假圖像進行采樣,以確保圖像的偽造部分和未偽造部分都至少有25%的貢獻。這些樣本將具有只有在假圖像中才會出現(xiàn)的可區(qū)分的邊界。這些界限將由我們設計的CNN來學習。由于mask的3個通道都包含相同的信息(不同像素的圖像的假部分),所以我們只需要1個通道來提取樣本。


          為了使圖像的邊界更加清晰,將灰度圖像轉換為二值圖像首先進行閾值(實施OpenCV),然后用高斯濾波器去噪。在此操作之后,采樣僅僅是在偽圖像中移動一個64×64窗口(8步),在對應的掩模中計數(shù)0值(黑色)像素,如果值在一定的間隔內進行采樣。

          In [29]:# Convert grayscale images to binarybinaries=[]

          for grayscale in x_train_masks: blur = cv2.GaussianBlur(grayscale,(5,5),0) ret,th = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) binaries.append(th)In [56]:~binaries[28]Out[56]:array([[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0],       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)



          采樣后,我們從假圖像中得到175,119個64×64補丁。為了生成0標記(原始)補丁,我們從真實圖像中采樣了大致相同的數(shù)量。最后,我們有350,728個補丁,它們被分成了多個序列和交叉驗證集。

          現(xiàn)在我們有了一個大的高質量輸入圖像數(shù)據(jù)集。現(xiàn)在是試驗各種CNN架構的時候了。


          自定義CNN架構


          我們嘗試的第一個建筑靈感來自于最初的建筑研究論文. 他們的輸入圖像大小為128×128×3,因此網(wǎng)絡很大。因為我們有一半的空間大小,我們的網(wǎng)絡也更小。這是第一個嘗試的架構。

          綠色的圖層是卷積的,藍色的是Max pool。該網(wǎng)絡對150,000列樣本(用于測試)和25,000驗證樣本進行了訓練。該網(wǎng)絡有8536個參數(shù),與列車樣本相比相對較少,因此避免了更激進的輟學的需要。在20個單位的平坦產(chǎn)量上應用了0.2的輟學率。我們使用缺省學習率(0.001)和beta_1, beta_2的Adam優(yōu)化器。在大約___個時代之后,結果如下


          列車精度:77.13%,列車損耗:0.4678

          驗證準確性:75.68%,驗證損耗:0.5121


          這些數(shù)字并不是很令人印象深刻,因為在2012年,CNN以巨大的優(yōu)勢擊敗了專家們經(jīng)過多年研究開發(fā)的特色節(jié)目。然而,考慮到我們完全沒有使用圖像取證知識(像素統(tǒng)計和相關概念)來獲得看不見的數(shù)據(jù)的___精度,這些數(shù)字也不是很糟糕。


          轉移學習


          因為這是一個CNN它擊敗了所有經(jīng)典的機器學習算法ImageNet分類任務,為什么不利用這些強大的機器之一的工作來解決手邊的問題呢?這是背后的想法轉移學習. 簡而言之,我們使用一個預訓練模型的權重來解決我們的問題,這個模型可能是在一個更大的數(shù)據(jù)集上訓練的,在解決它的問題時給出了更好的結果。換句話說,我們將一種模型的學習“轉移”到我們自己的模型上。在我們的例子中,我們使用theVGG16在ImageNet數(shù)據(jù)集上訓練,使我們的數(shù)據(jù)集中的圖像矢量化。在這里,我們嘗試了兩種方法


          1. 使用VGG16輸出的瓶頸特性,并在此基礎上構建一個淺網(wǎng)絡。

          2. 微調上面(1)中VGG16+Shallow模型的最后一個卷積層。


          憑直覺,2給出的結果比1好得多。我們嘗試了多種淺層網(wǎng)絡架構,最終到達這里

          平坦層的輸入是VGG16輸出的瓶頸特征。這些是形狀的張量(2×2×512),因為我們使用了64×64輸入圖像。


          上面的架構給出了以下結果

          列車精度83.18%,列車損耗0.3230

          驗證精度84.26%,驗證損耗0.3833


          我們使用Adam優(yōu)化器進行訓練,自定義學習率在每10個epoch后降低(除了在每批處理后由Adam定期更新)。

          第二種方法需要微調最后一層。這里需要注意的重要一點是,為了進行微調,我們必須使用預先訓練好的頂層模型。目標是稍微改變已經(jīng)掌握的權重,以便更好地擬合數(shù)據(jù)。如果我們使用一些隨機初始化的權值,輕微的變化不會對它們有任何好處,而大的變化會破壞學習到的卷積層的權值。我們還需要一個非常小的學習率來微調我們的模型(原因與上面提到的相同)。在這后,建議使用SGD優(yōu)化器進行微調。然而,我們觀察到亞當在這項任務上比SGD表現(xiàn)得更好。


          微調模型得到以下結果

          列車精度:99.16%,列車損耗:0.018

          驗證精度94.77%,驗證損耗0.30


          稍微過擬合的模型,可以通過使用更小的學習速率來補救(我們使用1e-6)。

          除了VGG16,我們還嘗試了ResNet50和VGG19模型在Image-Net數(shù)據(jù)集上預先訓練的瓶頸特性。ResNet50的功能表現(xiàn)優(yōu)于VGG16。VGG19的表現(xiàn)不是很令人滿意。我們對ResNet50體系結構(最后一個卷積層)進行了微調,采用了與VGG16類似的方式,使用相同的學習率更新策略,在較小的過擬合問題下給出了更有希望的結果。

          列車準確率:98.65%,列車損耗:0.048

          驗證精度:95.22%,驗證損耗:0.18


          最后對試驗數(shù)據(jù)進行模型預測


          為了從之前創(chuàng)建的測試集中采樣圖像,我們采用了與創(chuàng)建訓練和交叉驗證集類似的策略,即在邊界處使用掩模采樣假圖像,并采樣相同尺寸的相同數(shù)量的原始圖像。我們使用經(jīng)過微調的VGG16模型來預測這些補丁的標簽,并給出了以下結果

          測試精度:94.65%,測試損耗:0.31

          另一方面,ResNet50給出了以下測試數(shù)據(jù)的結果

          測試精度:95.09%,測試損耗:0.19

          正如我們所見,我們的模型表現(xiàn)得很好。我們還有很多改進的余地。如果通過數(shù)據(jù)增強(剪切、調整大小、旋轉和其他操作)可以生成更多的數(shù)據(jù),或許我們可以對更多的SOTA網(wǎng)絡層進行微調。


          ---END---

          雙一流大學研究生團隊創(chuàng)建,一個專注于目標檢測與深度學習的組織,希望可以將分享變成一種習慣。 

          由于微信公眾號試行亂序推送,您可能不再能第一時間收到目標檢測與深度學習」的消息可以的話,將公眾號設為星標★,并點擊右下角在看,可第一時間收到我們的最新分享。

          整理不易,點贊三連↓

          瀏覽 35
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  swag国产在线 | 射综合视频 | 大香蕉97在线 | 黄色免费小视频在线观看 | 无码 人妻 精 |