成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你這背景太假了,用AI自動合成,假嗎?

人工智能
我們今天用 detectron2 做實例分割,它是Facebook AI研究院開源的項目,功能強大,使用簡單。

哈嘍,大家好。

前幾天大家是不是都刷到了下面這個視頻。

圖片

博主本來想證明自己背景是真的,結果引來網友惡搞,紛紛換成各種各樣的背景來“打假”。

今天咱也湊個熱鬧,用 AI 技術自動替換背景。

思路并不難,我們先從原視頻將人物分離出來,再將分離出來的人物“貼”到新背景視頻中即可。

從視頻中分類人物用到關鍵技術的是計算機視覺?中的實例分割?,我之前的文章中有介紹過目標檢測技術,比如,人臉檢測

圖片

目標檢測?是通過矩形框標注檢測的目標,相對容易。而實例分割是一項更精細的工作,因為需要對每個像素點分類,物體的輪廓是精準勾勒的。

圖片

我們今天用 detectron2? 做實例分割?,它是Facebook AI研究院開源的項目,功能強大,使用簡單。

圖片

1. 安裝

detectron2? 支持在Linux和macOS?系統上安裝,Linux?可以直接通過pip?安裝,而mac?只能通過源碼編譯的方式安裝,建議大家用Linux。

圖片

支持GPU和CPU?運行,我使用的是3090顯卡、CUDA11.1、Pytorch1.8。

2. 運行

我們用官方提供的預訓練模型對圖片做實例分割。

2.1 加載模型配置文件

from detectron2.config import get_cfg
from detectron2 import model_zoo

cfg = get_cfg()
model_cfg_file = model_zoo.get_config_file('COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml')
cfg.merge_from_file(model_cfg_file)

COCO-InstanceSegmentation?代表用coco?數據集訓練的實例分割模型。

mask_rcnn_R_50_FPN_3x.yaml是模型訓練用到的配置信息。

從下圖也可以看到,detectron2?除了提供實例分割?模型,還提供目標檢測、關鍵點檢測等模型,還是比較全面的。

圖片

2.2 加載模型

model_weight_url = model_zoo.get_checkpoint_url('COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml')
cfg.MODEL.WEIGHTS = model_weight_url

mask_rcnn_R_50_FPN_3x.yaml?文件中存放了預訓練模型的url?。當進行實例分割?時,程序會自動從url處將模型下載到本地。存放的位置為:

圖片

但程序自動下載的方式可能會比較慢,這時候你可以用迅雷自己下載模型文件,放到對應的路徑中即可。

2.3 實例分割

首先,讀取一張圖片,圖片大小480 * 640。

img = cv2.imread('./000000439715.jpg')

圖片

實例化DefaultPredictor對象。

from detectron2.engine import DefaultPredictor
predictor = DefaultPredictor(cfg)

對圖片進行實例分割

out = predictor(img)

out?變量中存放的是分割出來每個目標的類別id、檢測框和目標遮罩。

out["instances"].pred_classes?獲取目標的類別id

圖片

這里一共檢測到了 15 個目標,在配置文件中可以找到類別id和類別名稱?的映射關系。其中,0?代表人,17代表馬。

out["instances"].pred_masks?獲取目標的遮罩?,我們取單個目標的遮罩研究一下它的用處。

圖片

可以看到,它的取值是布爾類型,并且shape和圖片大小一樣。

所以,遮罩是實例分割?的結果,里面每個元素對應圖片一個像素,取值為True代表該像素是檢測出來的目標像素。

因此,我們可以通過遮罩給目標加上一層不透明度,從而把目標精確標注出來。

img_copy = img.copy()

alpha = 0.8
color = np.array([0, 255, 0])

img_copy[mask > 0, :] = img_copy[mask > 0, :] * alpha + color * (1-alpha)

上述給目標加上一層綠色的不透明度,效果如下:

圖片

可以看到,騎在馬上的人已經被標注出來了。

3. 自動合成背景

有了上面的基礎,我們就很容易合成視頻了。

讀取原視頻每一幀中將人物分割出來,將分割出來的人物直接覆蓋到新背景視頻中對應的幀即可。

核心代碼:

# 讀取原視頻
ret, frame_src = cap.read()

# 讀取新背景視頻
ret, frame_bg = cap_bg.read()
# 調整背景尺寸跟原視頻一樣
frame_bg = cv2.resize(frame_bg, sz)

# 分割原視頻人物
person_mask = instance_seg.predict(frame_src)
# 合成
frame_bg[person_mask, :] = frame_src[person_mask, :]


責任編輯:武曉燕 來源: 渡碼
相關推薦

2022-09-06 16:40:59

AI真假AI換臉

2024-07-26 11:45:35

2021-05-09 06:25:53

Word技巧開發工具

2021-12-21 08:05:19

AI基礎計算機

2020-03-05 08:51:45

AI人工智能智能系統

2019-09-18 16:14:16

編碼方法重構

2018-08-29 09:00:00

2022-06-13 11:18:08

合成數據AIML

2020-07-14 13:40:42

微軟開發AI

2022-10-09 09:38:10

高可用設計

2020-09-11 06:39:29

ThreadLocal線程

2021-05-07 13:39:20

Python工具代碼

2017-12-22 15:34:49

AI美圖

2024-04-08 08:00:00

AI大型語言模型

2018-11-12 00:19:32

2018-11-11 11:16:38

AI天貓比價

2020-04-29 08:25:14

黑客安全工具

2022-08-09 12:43:10

OpenAIAI

2025-04-03 09:30:56

RedisAI模型

2025-05-30 01:30:00

Anthropic技巧AI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品99 | 亚洲欧美日韩电影 | 蜜桃一区二区三区在线 | 国产精品视频www | 国产偷录视频叫床高潮对白 | av超碰 | 91观看| 日韩一区二区在线视频 | 亚洲电影一区二区三区 | 国产欧美日韩一区 | 五月槐花香 | 欧美成人精品在线观看 | 欧美日韩高清在线观看 | 久久久久久成人 | 午夜精品一区二区三区在线视 | 黄久久久 | 亚洲欧美日韩网站 | 成人免费大片黄在线播放 | 久久69精品久久久久久久电影好 | 嫩草伊人 | 亚洲午夜精品在线观看 | 精品日韩在线 | 密桃av| 午夜手机在线视频 | 国产午夜精品久久久 | 韩国久久精品 | 国产亚洲精品美女久久久久久久久久 | 久久av一区| av中文字幕在线播放 | 中文字幕在线一区 | av免费看片| 精品久久99| 91久久国产综合久久91精品网站 | 先锋资源亚洲 | 欧美精品在线一区 | 国产精品视频免费 | 久久久久久高潮国产精品视 | 久久精品黄色 | 亚洲啪啪 | 日本一区精品 | 日本精品视频 |