国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        使用 TensorFlow 2.x API 介紹圖像中的顯著性圖

        TensorFlow 2.x 簡介

        計(jì)算機(jī)視覺領(lǐng)域中,顯著性圖是圖像在人類視線最初聚焦的區(qū)域。顯著性圖的主要目標(biāo)是突出特定像素對人類視覺感知的重要性。

        例如,在下圖中,花和手是人們首先注意到的東西,因此必須在顯著性圖上強(qiáng)調(diào)它們。還有一點(diǎn)需要注意的是,人工神經(jīng)網(wǎng)絡(luò)創(chuàng)建的顯著性圖并不總是與生物或自然視覺產(chǎn)生的顯著性圖相同。

        什么是顯著圖?

        顯著性圖是深度學(xué)習(xí)和計(jì)算機(jī)視覺的一個(gè)關(guān)鍵主題。在深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)的訓(xùn)練過程中,了解每一層的特征圖變得至關(guān)重要。CNN 的特征圖告訴我們模型的學(xué)習(xí)特征。而顯著性圖主要關(guān)注圖像的特定像素,而忽略其他像素。

        顯著性圖

        圖像的顯著性圖表示圖像中最突出和最集中的像素。有時(shí),圖像中較亮的像素會告訴我們像素的顯著性。這意味著像素的亮度與圖像的顯著性成正比。

        假設(shè)我們想要關(guān)注圖像的特定部分,比如想要關(guān)注鳥的圖像而不是天空、鳥巢等其他部分。然后通過計(jì)算顯著圖,我們將實(shí)現(xiàn)這一點(diǎn)。它將有助于降低計(jì)算成本,通常是灰度圖像,但可以根據(jù)我們的視覺舒適度轉(zhuǎn)換為另一種格式的彩色圖像。

        顯著性圖也稱為“熱圖”,因?yàn)閳D像的熱度/亮度對識別對象的類別有影響。顯著性圖旨在確定中央凹(高分辨率的顏色)中每個(gè)地方顯著或可觀察的區(qū)域,并根據(jù)顯著性的空間模式影響注意力區(qū)域的決策。它用于各種視覺注意模型。

        如何使用 TensorFlow 計(jì)算顯著性圖?

        顯著圖可以通過對輸入圖像 X 取類別概率 Pk的導(dǎo)數(shù)來計(jì)算。

        等一下!這似乎很熟悉!是的,這與我們用于訓(xùn)練模型的反向傳播相同。我們只需要再邁出一步:梯度不會在我們網(wǎng)絡(luò)的第一層停止。相反,我們必須將其返回給輸入圖像 X。

        因此,顯著性圖根據(jù)特定的類別預(yù)測 Pi 為每個(gè)輸入像素提供合適的表征。對花卉預(yù)測具有重要意義的像素應(yīng)聚集在花卉像素周圍。否則,經(jīng)過訓(xùn)練的模型會發(fā)生一些非常奇怪的事情。

        顯著圖的優(yōu)勢在于,由于它們完全依賴于梯度計(jì)算,許多常用的深度學(xué)習(xí)模型可以免費(fèi)為我們提供顯著圖。我們根本不需要修改網(wǎng)絡(luò)架構(gòu);我們只需要稍微調(diào)整梯度計(jì)算。

        不同類型的顯著圖

        靜態(tài)顯著性:針對圖像的每個(gè)靜態(tài)像素點(diǎn)計(jì)算出重要的感興趣區(qū)域,進(jìn)行顯著性圖分析。

        動態(tài)顯著性:關(guān)注視頻數(shù)據(jù)的動態(tài)特征。視頻中的顯著性圖是通過計(jì)算視頻的光流來計(jì)算的。移動實(shí)體/對象被認(rèn)為是顯著對象。

        代碼

        我們將逐步研究 ResNet50 架構(gòu),該架構(gòu)已在 ImageNet 上進(jìn)行了預(yù)訓(xùn)練。但是你可以采用其他預(yù)訓(xùn)練的深度學(xué)習(xí)模型或你自己的訓(xùn)練模型。

        我們將說明如何利用 TensorFlow 2.x 中最著名的 DL 模型開發(fā)基本的顯著性圖。在教程中,我們使用了 Wikimedia 圖像作為測試圖像。

        我們首先創(chuàng)建一個(gè)具有 ImageNet 權(quán)重的 ResNet50。使用簡單的輔助函數(shù),我們將圖像導(dǎo)入并準(zhǔn)備將其饋送到 ResNet50。

        # Import necessary packages

        import tensorflow as tf

        import numpy as np

        import matplotlib.pyplot as plt

        def input_img(path):

            image = tf.image.decode_png(tf.io.read_file(path))

            image = tf.expand_dims(image, axis=0)

            image = tf.cast(image, tf.float32)

            image = tf.image.resize(image, [224,224])

            return image

        def normalize_image(img):

            grads_norm = img[:,:,0]+ img[:,:,1]+ img[:,:,2]

            grads_norm = (grads_norm - tf.reduce_min(grads_norm))/ (tf.reduce_max(grads_norm)- tf.reduce_min(grads_norm))

            return grads_norm

        def get_image():

            import urllib.request

            filename = 'image.jpg'

            img_url = r"https://upload.wikimedia.org/wikipedia/commons/d/d7/White_stork_%28Ciconia_ciconia%29_on_nest.jpg"

            urllib.request.urlretrieve(img_url, filename)

        def plot_maps(img1, img2,vmin=0.3,vmax=0.7, mix_val=2):

             f = plt.figure(figsize=(15,45))

            plt.subplot(1,3,1)

            plt.imshow(img1,vmin=vmin, vmax=vmax, cmap="ocean")

            plt.a(chǎn)xis("off")

            plt.subplot(1,3,2)

            plt.imshow(img2, cmap = "ocean")

            plt.a(chǎn)xis("off")

            plt.subplot(1,3,3)

            plt.imshow(img1*mix_val+img2/mix_val, cmap = "ocean" )

            plt.a(chǎn)xis("off")

        圖1:輸入圖像

        為了獲得預(yù)測向量,ResNet50 將直接從 Keras 應(yīng)用程序中加載。

        test_model = tf.keras.a(chǎn)pplications.resnet50.ResNet50()

        #test_model.summary()

        get_image()

        img_path = "image.jpg"

        input_img = input_img(img_path)

        input_img = tf.keras.a(chǎn)pplications.densenet.preprocess_input(input_img)

        plt.imshow(normalize_image(input_img[0]), cmap = "ocean")

        result = test_model(input_img)

        max_idx = tf.a(chǎn)rgmax(result,axis = 1)

        tf.keras.a(chǎn)pplications.imagenet_utils.decode_predictions(result.numpy())

        TensorFlow 2.x 上提供了 GradientTape 函數(shù),該函數(shù)能夠處理反向傳播相關(guān)操作。在這里,我們將利用 GradientTape 的優(yōu)勢來計(jì)算給定圖像的顯著性圖。

        with tf.GradientTape() as tape:

            tape.watch(input_img)

            result = test_model(input_img)

            max_score = result[0,max_idx[0]]

        grads = tape.gradient(max_score, input_img)

        plot_maps(normalize_image(grads[0]), normalize_image(input_img[0]))

        圖2:(1)Saliency_map,(2)input_image,(3)overlayed_image

        關(guān)于Tensorflow 2.x 的結(jié)論

        在這篇博客中,我們從不同方面定義了顯著性圖。我們添加了一個(gè)圖形表示來深入理解“顯著性地圖”這個(gè)術(shù)語。此外,我們通過使用 TensorFlow API 在 python 中實(shí)現(xiàn)它來理解它。結(jié)果似乎很容易理解。

        在本文中,我們學(xué)習(xí)了:

        1. 使用 tensorflow 的圖像的顯著性圖

        2. 實(shí)現(xiàn)了一個(gè) python 代碼來計(jì)算圖像的顯著性圖

        3. 顯著性圖的數(shù)學(xué)背景

        4. 計(jì)算了顯著性圖

        image.png


               原文標(biāo)題 : 使用 TensorFlow 2.x API 介紹圖像中的顯著性圖

        聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

        發(fā)表評論

        0條評論,0人參與

        請輸入評論內(nèi)容...

        請輸入評論/評論長度6~500個(gè)字

        您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

        • 看不清,點(diǎn)擊換一張  刷新

        暫無評論

        暫無評論

          掃碼關(guān)注公眾號
          OFweek人工智能網(wǎng)
          獲取更多精彩內(nèi)容
          文章糾錯
          x
          *文字標(biāo)題:
          *糾錯內(nèi)容:
          聯(lián)系郵箱:
          *驗(yàn) 證 碼:

          粵公網(wǎng)安備 44030502002758號

          主站蜘蛛池模板: 亚洲欧美v| 国产在线网址| 伊人一区| 91碰碰| 左权县| 国产精品第四页| 亚洲天堂中文| 人妻窝窝WWW聚色窝| 揭西县| 国产v区| 革吉县| 亚洲v欧美| 天堂VA蜜桃一区二区三区| 日韩福利在线视频| 亚洲第一成人网站| 黄总av| 中文字幕高清| 蒙山县| 亚洲欧美V| 中文字幕欧美人妻精品一区蜜臀| 91视频免费在线观看| 熟女另类| 日韩精品一日韩激情内射高潮,97无…| 淫射网| 韩日一级| 爱豆传媒午夜福利| 日韩人妻精品中文字幕免费| 亚洲国产精品VA在线看黑人| 亚洲人妻中文字幕| www.亚洲成人| 岛国AV在线| 色综合久| 亚洲天堂中文| 阿拉善左旗| 任你艹| 一区在线播放| 专干老熟女A片| 久久久久久av| 乌拉特中旗| 金典黄色网| 国产精品调教|