PaddlePaddle : AI摳圖及圖片合成

通過預訓練模型進行圖像的自動摳圖及整合排作。

代碼已經(jīng)共享在AIStudio上宜岛,鏈接:

https://aistudio.baidu.com/aistudio/projectdetail/242887

模型概述 DeepLabv3+ 是Google DeepLab語義分割系列網(wǎng)絡的最新作裹纳,其前作有 DeepLabv1越驻,DeepLabv2, DeepLabv3讳苦。在最新作中芒炼,作者通過encoder-decoder進行多尺度信息的融合锉走,同時保留了原來的空洞卷積和ASSP層滨彻, 其骨干網(wǎng)絡使用了Xception模型藕届,提高了語義分割的健壯性和運行速率,在 PASCAL VOC 2012 dataset取得新的state-of-art performance亭饵。該PaddleHub Module使用百度自建數(shù)據(jù)集進行訓練休偶,可用于人像分割,支持任意大小的圖片輸入辜羊。

命令行預測示例 $ hub run deeplabv3p_xception65_humanseg --input_path "/PATH/TO/IMAGE" $ hub run deeplabv3p_xception65_humanseg --input_file test.txt test.txt 存放待分割圖片的存放路徑

API def segmentation(data) 用于人像分割

參數(shù)

data:dict類型踏兜,key為image,str類型只冻;value為待分割的圖片路徑庇麦,list類型。 output_dir:生成圖片的保存路徑喜德,默認為 humanseg_output

返回

result:list類型山橄,每個元素為對應輸入圖片的預測結果。預測結果為dict類型舍悯,有以下字段:

origin 原輸入圖片路徑 processed 分割圖片的路徑航棱。

In[1]

cd work

/home/aistudio/work

先定義摳圖的函數(shù),通過調(diào)用圖像分割模型摳圖

In[7]

def body_seg_fore(imgname):

? ? module = hub.Module(name="deeplabv3p_xception65_humanseg")

? ? test_img_path = "./"+imgname+".jpg"

? ? # 預測結果展示

? ? img = mpimg.imread(test_img_path)

? ? plt.imshow(img)

? ? plt.axis('off')

? ? plt.show()

? ? # set input dict

? ? input_dict = {"image": [test_img_path]}


? ? # execute predict and print the result

? ? results = module.segmentation(data=input_dict)

? ? for result in results:

? ? ? ? print(result)

? ? test_img_path = "./humanseg_output/"+imgname+".png"

? ? img = mpimg.imread(test_img_path)

? ? plt.imshow(img)

? ? plt.axis('off')

? ? plt.show()

? ? return test_img_path

In[8]

body_seg_fore('body2')

[2020-01-10 06:39:53,705] [? ? INFO] - Installing deeplabv3p_xception65_humanseg module

2020-01-10 06:39:53,705-INFO: Installing deeplabv3p_xception65_humanseg module

[2020-01-10 06:39:53,753] [? ? INFO] - Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg

2020-01-10 06:39:53,753-INFO: Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg

?

[2020-01-10 06:39:54,539] [? ? INFO] - 0 pretrained paramaters loaded by PaddleHub

2020-01-10 06:39:54,539-INFO: 0 pretrained paramaters loaded by PaddleHub

{'origin': './body2.jpg', 'processed': 'humanseg_output/body2.png'}

?

'./humanseg_output/body2.png'

定義圖片合成函數(shù)萌衬。

In[12]

#圖片整合

#foreimage:前景照片饮醇,baseimage:景區(qū)照片,outputimage:數(shù)據(jù)結果,rate:前景照片縮放比例

def combine_image(foreimage,baseimage,outputimage,rate):

? ? from PIL import Image

? ? base_img = Image.open(baseimage)

? ? BL, BH = base_img.size

? ? #讀取要粘貼的圖片 RGBA模式? ?

? ? #當需要將一張有透明部分的圖片粘貼到一張底片上時,如果用Python處理秕豫,可能會用到PIL朴艰,

? ? #但是PIL中 有說明,在粘貼RGBA模式的圖片是混移,alpha通道不會被帖上祠墅,也就是不會有透明的效果,

? ? #當然也給出了解決方法,就是粘貼的時候,將RGBA的的alpha通道提取出來做為mask傳入瓜挽。

? ? fore_image = Image.open(foreimage)

? ? L, H = fore_image.size

? ? #縮放

? ? fore_image = fore_image.resize((int(L * rate), int(H * rate)))

? ? L, H = fore_image.size

? ? #分離通道? ?

? ? r,g,b,a = fore_image.split()? ? #粘貼


? ? box=(int(BL/2-L/2), BH-H, int(BL/2+L/2) ,BH)


? ? base_img.paste(fore_image,box,mask = a)

? ? base_img.save(outputimage)? # 保存圖片


#輸出程序

def show_image(originimage,baseimage,outputimage,rate):

? ? segname=body_seg_fore(originimage)

? ? combine_image(segname,baseimage,outputimage,rate)


? ? img = mpimg.imread(outputimage)

? ? plt.imshow(img)

? ? plt.axis('off')

? ? plt.show()

? ? return test_img_path

結果展示:

In[14]

show_image('body2','./desert.jpg','body2_desert.jpg',2)

[2020-01-10 06:42:43,724] [? ? INFO] - Installing deeplabv3p_xception65_humanseg module

2020-01-10 06:42:43,724-INFO: Installing deeplabv3p_xception65_humanseg module

[2020-01-10 06:42:43,746] [? ? INFO] - Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg

2020-01-10 06:42:43,746-INFO: Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg

?

[2020-01-10 06:42:44,629] [? ? INFO] - 0 pretrained paramaters loaded by PaddleHub

2020-01-10 06:42:44,629-INFO: 0 pretrained paramaters loaded by PaddleHub

{'origin': './body2.jpg', 'processed': 'humanseg_output/body2.png'}

?

?

'./humanseg_output/body2.png'

In[18]

show_image('body1','./desert.jpg','body2_desert.jpg',0.3)

[2020-01-10 06:44:26,397] [? ? INFO] - Installing deeplabv3p_xception65_humanseg module

2020-01-10 06:44:26,397-INFO: Installing deeplabv3p_xception65_humanseg module

[2020-01-10 06:44:26,423] [? ? INFO] - Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg

2020-01-10 06:44:26,423-INFO: Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg

?

[2020-01-10 06:44:27,592] [? ? INFO] - 0 pretrained paramaters loaded by PaddleHub

2020-01-10 06:44:27,592-INFO: 0 pretrained paramaters loaded by PaddleHub

{'origin': './body1.jpg', 'processed': 'humanseg_output/body1.png'}

?

?

'./humanseg_output/body2.png'

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市狗准,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茵肃,老刑警劉巖腔长,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異免姿,居然都是意外死亡饼酿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來故俐,“玉大人想鹰,你說我怎么就攤上這事∫┌妫” “怎么了辑舷?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長槽片。 經(jīng)常有香客問我何缓,道長,這世上最難降的妖魔是什么还栓? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任碌廓,我火速辦了婚禮,結果婚禮上剩盒,老公的妹妹穿的比我還像新娘谷婆。我一直安慰自己,他們只是感情好辽聊,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布纪挎。 她就那樣靜靜地躺著,像睡著了一般跟匆。 火紅的嫁衣襯著肌膚如雪异袄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天玛臂,我揣著相機與錄音烤蜕,去河邊找鬼。 笑死迹冤,一個胖子當著我的面吹牛玖绿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叁巨,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呐籽!你這毒婦竟也來了锋勺?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤狡蝶,失蹤者是張志新(化名)和其女友劉穎庶橱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贪惹,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡苏章,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫绅。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡泉孩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出并淋,到底是詐尸還是另有隱情寓搬,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布县耽,位于F島的核電站句喷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兔毙。R本人自食惡果不足惜唾琼,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澎剥。 院中可真熱鬧锡溯,春花似錦、人聲如沸肴裙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜻懦。三九已至甜癞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宛乃,已是汗流浹背悠咱。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留征炼,地道東北人析既。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像谆奥,于是被迫代替她去往敵國和親眼坏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容