日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

(记录)PaddleHub创意赛:AI人像抠图及图像合成

發(fā)布時間:2024/1/18 ChatGpt 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (记录)PaddleHub创意赛:AI人像抠图及图像合成 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • PaddleHub創(chuàng)意賽:AI人像摳圖及圖像合成
  • 一、安裝環(huán)境(這里面有幾個坑)
  • 二、接下來就``開始P圖
    • 1. 引入包
    • 2. 加載預訓練模型(挺厲害的不得不說)
    • 3. 圖像合成

PaddleHub創(chuàng)意賽:AI人像摳圖及圖像合成

本項目根據(jù)DeepLabv3+模型一鍵摳圖示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)和python圖像處理庫opencv、PIL等完成。在最新作中,作者通過encoder-decoder進行多尺度信息的融合,同時保留了原來的空洞卷積和ASSP層, 其骨干網(wǎng)絡(luò)使用了Xception模型,提高了語義分割的健壯性和運行速率,在 PASCAL VOC 2012 dataset取得新的state-of-art performance,該PaddleHub Module使用百度自建數(shù)據(jù)集進行訓練,可用于人像分割,支持任意大小的圖片輸入。在完成一鍵摳圖之后,通過圖像合成,實現(xiàn)扣圖比賽任務(wù)。

PaddleHub 是基于 PaddlePaddle 開發(fā)的預訓練模型管理工具,可以借助預訓練模型更便捷地開展遷移學習工作,目前的預訓練模型涵蓋了圖像分類、目標檢測、詞法分析、語義模型、情感分析、視頻分類、圖像生成、圖像分割、文本審核、關(guān)鍵點檢測等主流模型。

PaddleHub官網(wǎng):PaddleHub官網(wǎng)

PaddleHub項目地址:PaddleHub github

更多PaddleHub預訓練模型應(yīng)用可見:教程合集課程

NOTE: 如果您在本地運行該項目示例,需要首先安裝PaddleHub。如果您在線運行,需要首先fork該項目示例。之后按照該示例操作即可。

一、安裝環(huán)境(這里面有幾個坑)

!pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple !hub install deeplabv3p_xception65_humanseg==1.0.0

雖然說這樣就可以了,但是你會發(fā)現(xiàn),你打開本地運行環(huán)境以后會出錯???
以下為出錯的內(nèi)容

JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

既然如此我們就進源碼看一下到底怎么回事

最主要就是這個東西出了問題,在Github上的issue里面說了,在最新版里面已經(jīng)解決,但其實在windows里面,仍然存在該類問題
然后分析代碼后我得知,原來在C盤當中,缺失了config.json文件,然后把這個放到這個根目錄的文件里面去.paddle/conf/config.json,如果沒有就自己建立一個

{ "server_url": [ "http://paddlepaddle.org.cn/paddlehub" ], "resource_storage_server_url": "https://bj.bcebos.com/paddlehub-data/", "debug": false, "log_level": "DEBUG" }

然后還有一個坑就是,虛擬環(huán)境里面運行可能會出錯,所以最好在Pycharm真實環(huán)境運行

二、接下來就``開始P圖

1. 引入包

# 測試圖片路徑和輸出路徑 test_path = 'image/test/' output_path = 'image/out/'# 待預測圖片 test_img_path = ["test.jpg"] test_img_path = [test_path + img for img in test_img_path] img = mpimg.imread(test_img_path[0]) # 展示待預測圖片 plt.figure(figsize=(10,10)) plt.imshow(img) plt.axis('off') plt.show()

這是效果圖!!

2. 加載預訓練模型(挺厲害的不得不說)

通過加載PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)實現(xiàn)一鍵摳圖

module = hub.Module(name="deeplabv3p_xception65_humanseg") input_dict = {"image": test_img_path}# execute predict and print the result results = module.segmentation(data=input_dict) for result in results:print(result)# 預測結(jié)果展示 out_img_path = 'humanseg_output/' + os.path.basename(test_img_path[0]).split('.')[0] + '.png' img = mpimg.imread(out_img_path) plt.figure(figsize=(10,10)) plt.imshow(img) plt.axis('off') plt.show()

測試結(jié)果還挺不錯的!!!但是在處理其他圖片還有瑕疵,比如手里拿了手機,可能會給你P調(diào)

3. 圖像合成

# 合成函數(shù) def blend_images(fore_image, base_image, output_path):"""將摳出的人物圖像換背景fore_image: 前景圖片,摳出的人物圖片base_image: 背景圖片"""# 讀入圖片base_image = Image.open(base_image).convert('RGB')fore_image = Image.open(fore_image).resize(base_image.size)# 圖片加權(quán)合成scope_map = np.array(fore_image)[:,:,-1] / 255scope_map = scope_map[:,:,np.newaxis]scope_map = np.repeat(scope_map, repeats=3, axis=2)res_image = np.multiply(scope_map, np.array(fore_image)[:,:,:3]) + np.multiply((1-scope_map), np.array(base_image))#保存圖片res_image = Image.fromarray(np.uint8(res_image))res_image.save(output_path)return res_imageoutput_path_img = output_path + 'blend_res_img.jpg'blend_images('humanseg_output/test.png', 'image/test/bg.jpg', output_path_img)# 展示合成圖片plt.figure(figsize=(10,10))img = mpimg.imread(output_path_img)plt.imshow(img) plt.axis('off') plt.show()

結(jié)束了,就當一次娛樂!!!

總結(jié)

以上是生活随笔為你收集整理的(记录)PaddleHub创意赛:AI人像抠图及图像合成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。