最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Keras使用預(yù)訓(xùn)練模型遷移學(xué)習(xí)單通道灰度圖像詳解

 更新時(shí)間:2024年02月27日 11:14:12   作者:任博啥時(shí)候能畢業(yè)?  
這篇文章主要介紹了Keras使用預(yù)訓(xùn)練模型遷移學(xué)習(xí)單通道灰度圖像詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 問(wèn)題引出      

最近在做一個(gè)圖像分類的項(xiàng)目,由于性能比較差,因此需要嘗試將彩色圖轉(zhuǎn)為灰度圖進(jìn)行訓(xùn)練,從而屏蔽掉顏色對(duì)分類結(jié)果的影響而著重關(guān)注紋理、結(jié)構(gòu)等信息。

由于樣本數(shù)量較少,只有幾百?gòu)埖臉幼樱绻约捍罹W(wǎng)絡(luò)的話從頭訓(xùn)練的話,勢(shì)必會(huì)因?yàn)闃颖緮?shù)量的問(wèn)題,無(wú)法達(dá)到一個(gè)滿意的效果,因此考慮借鑒Imagenet的預(yù)訓(xùn)練權(quán)重。

但是在Imagenet上預(yù)訓(xùn)練的模型(Xception, Resnet, VGG等)都是處理的彩色圖,如果要使用預(yù)訓(xùn)練模型就必須要3通道的圖像。

搜索了一下,基本上目前的解決方法:

暴力的將單通道的圖復(fù)制為3份,然后合成為一張RGB圖。

顯然,該圖3個(gè)通道的數(shù)值完全相等,這樣存在很多冗余計(jì)算,我們稱之為“偽RGB圖”。

為了方便起見,自己實(shí)現(xiàn)了兩種方法,完成如下轉(zhuǎn)換:

  • RGB圖  →  灰度圖   →   偽RGB圖

其中,轉(zhuǎn)換為灰度圖時(shí),均使用的是如下標(biāo)準(zhǔn)公式:

  • L=R*299/1000+G*587/1000+B*114/1000

2. 解決方案

首先,導(dǎo)入必要的包:

from multiprocessing import Pool
from PIL import Image
import numpy as np
import os

2.1. 直接使用convert將L轉(zhuǎn)為RGB

def fakeRgb1(path, dst):
    '''
    方法1:直接使用convert將L轉(zhuǎn)為RGB
    :param path:圖片輸出路徑
    :param dst:圖片輸出路徑
    :return:rgb3個(gè)通道值相等的rgb圖像
    '''
    b = Image.open(path)
    # L代表轉(zhuǎn)換為灰度圖
    if b.mode != 'L':
        L = b.convert('L')
    L = L.convert('RGB')
    # 將圖像轉(zhuǎn)為數(shù)組
    rgb_array = np.asarray(L)
    # 將數(shù)組轉(zhuǎn)換為圖像
    rgb_image = Image.fromarray(rgb_array)
    rgb_image.save(dst + '\\' + path.split('\\')[-1])
    print(dst + '\\' + path.split('\\')[-1])

2.2. 數(shù)組拼接方法

def fakeRgb2(path, dst):
    '''
    方法二:最原始的拼接數(shù)組方法
    :param path:圖片輸入路徑
    :param dst:圖片輸出路徑
    :return:rgb3個(gè)通道值相等的rgb圖像
    '''
 
    b = Image.open(path)
    # L代表轉(zhuǎn)換為灰度圖
    if b.mode != 'L':
        L = b.convert('L')
    # 將圖像轉(zhuǎn)為數(shù)組
    b_array = np.asarray(L)
    # 將3個(gè)二維數(shù)組重疊為一個(gè)三維數(shù)組
    rgb_array = np.zeros((b_array.shape[0], b_array.shape[1], 3), "uint8")
    rgb_array[:, :, 0], rgb_array[:, :, 1], rgb_array[:, :, 2] = b_array, b_array, b_array
    rgb_image = Image.fromarray(rgb_array)
    rgb_image.save(dst + '\\' + path.split('\\')[-1])
    print(dst + '\\' + path.split('\\')[-1])

3. 多進(jìn)程加速運(yùn)行 

由于是批量處理,因此可能會(huì)遇到同時(shí)轉(zhuǎn)換很多張圖片,那么這個(gè)時(shí)候就必須使用多進(jìn)程加速了,具體的加速方法看我的這篇博客:

Python:多進(jìn)程運(yùn)行含有任意個(gè)參數(shù)的函數(shù)

本文的加速代碼如下:

def get_image_paths(folder):
    return [os.path.join(folder, f) for f in os.listdir(folder)]
 
if __name__ == '__main__': # 多線程,多參數(shù),starmap版本
    images = get_image_paths(path)
    output = [src for i in images]
 
    zip_args = list(zip(images, output))
    pool = Pool()
    pool.starmap(fakeRgb2, zip_args)
    pool.close()
    pool.join()

4.使用預(yù)訓(xùn)練模型訓(xùn)練     

這部分就和訓(xùn)練普通RGB圖像一樣即可,在這里不贅述。 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Python腳本實(shí)現(xiàn)傳遞參數(shù)的三種方式分享

    利用Python腳本實(shí)現(xiàn)傳遞參數(shù)的三種方式分享

    使用python腳本傳遞參數(shù)在實(shí)際工作過(guò)程中還是比較常用。這篇文章為大家總結(jié)了三個(gè)常用的方式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • python 判斷文件或文件夾是否存在

    python 判斷文件或文件夾是否存在

    這篇文章主要介紹了python 判斷文件或文件夾是否存在,Python 操作文件時(shí),我們一般要先判斷指定的文件或目錄是否存在,不然容易產(chǎn)生異常,下面我們就來(lái)學(xué)習(xí)如何利用python檢查文件是否存在吧
    2022-03-03
  • python?Tkinter模塊使用方法詳解

    python?Tkinter模塊使用方法詳解

    Python的GUI庫(kù)非常多,之所以選擇 Tkinter,一是最為簡(jiǎn)單,二是自帶庫(kù),不需下載安裝,隨時(shí)使用,跨平臺(tái)兼容性非常好,下面這篇文章主要給大家介紹了關(guān)于python?Tkinter模塊使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python excel多行合并的方法

    python excel多行合并的方法

    這篇文章主要介紹了python excel多行合并的方法,幫助大家更好的利用python處理excel表格,感興趣的朋友可以了解下
    2020-12-12
  • Python使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音的終極指南

    Python使用gTTS實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音的終極指南

    gTTS是一款基于Google翻譯API的Python文本轉(zhuǎn)語(yǔ)音庫(kù),支持100+種語(yǔ)言,只需幾行代碼即可生成MP3語(yǔ)音文件,下面我們就來(lái)看看它的具體應(yīng)用吧
    2026-05-05
  • 使用python將微信image下.dat文件解密為.png的方法

    使用python將微信image下.dat文件解密為.png的方法

    這篇文章主要介紹了使用python將微信image下.dat文件解密為.png的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python實(shí)戰(zhàn)之實(shí)現(xiàn)獲取動(dòng)態(tài)圖表

    Python實(shí)戰(zhàn)之實(shí)現(xiàn)獲取動(dòng)態(tài)圖表

    這篇文章主要介紹了利用Python實(shí)現(xiàn)動(dòng)態(tài)化圖表,文中的示例代碼介紹詳細(xì),對(duì)我們的工作或?qū)W習(xí)有一定的價(jià)值,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-12-12
  • Python中shutil模塊的常用文件操作函數(shù)用法示例

    Python中shutil模塊的常用文件操作函數(shù)用法示例

    shutil模塊提供比OS模塊更強(qiáng)大的本地文件操作功能,包括文件的壓縮和解壓縮等,下面我們就來(lái)列舉Python中shutil模塊的常用文件操作函數(shù)用法示例:
    2016-07-07
  • Python使用pip安裝庫(kù)的四種方式及異常的解決方案

    Python使用pip安裝庫(kù)的四種方式及異常的解決方案

    這篇文章主要介紹了Python使用pip安裝庫(kù)的四種方式及異常的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • Python操作PostgreSql數(shù)據(jù)庫(kù)的方法(基本的增刪改查)

    Python操作PostgreSql數(shù)據(jù)庫(kù)的方法(基本的增刪改查)

    這篇文章主要介紹了Python操作PostgreSql數(shù)據(jù)庫(kù)(基本的增刪改查),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論

毕节市| 清新县| 堆龙德庆县| 富蕴县| 双峰县| 遂昌县| 沁源县| 共和县| 平乡县| 遵义市| 安化县| 临桂县| 班戈县| 甘孜县| 慈溪市| 岑巩县| 甘谷县| 汾西县| 滨海县| 灵宝市| 临夏市| 乡城县| 安多县| 定兴县| 玉屏| 太和县| 英德市| 公主岭市| 衡南县| 刚察县| 黑水县| 名山县| 措美县| 福建省| 久治县| 崇文区| 梧州市| 永川市| 东阿县| 宜城市| 淮阳县|