成人免费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換臉

2021-05-09 06:25:53

Word技巧開發工具

2024-07-26 11:45:35

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

2020-07-14 13:40:42

微軟開發AI

2020-09-11 06:39:29

ThreadLocal線程

2022-10-09 09:38:10

高可用設計

2021-05-07 13:39:20

Python工具代碼

2024-04-08 08:00:00

AI大型語言模型

2017-12-22 15:34:49

AI美圖

2022-06-13 11:18:08

合成數據AIML

2025-05-30 01:30:00

Anthropic技巧AI

2018-11-12 00:19:32

2018-11-11 11:16:38

AI天貓比價

2020-04-29 08:25:14

黑客安全工具

2025-04-03 09:30:56

RedisAI模型

2022-08-09 12:43:10

OpenAIAI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合成人网 | 久久久精品网站 | 欧美日韩精品在线一区 | 成人综合视频在线观看 | 免费一级黄色录像 | 亚州一区二区三区 | 欧美综合精品 | 爱草视频| 一级毛片播放 | 伊人免费在线观看 | 99reav | 一区二区三区视频免费看 | 精品视频一区二区三区在线观看 | 7799精品视频天天看 | 韩日av在线 | 免费播放一级片 | 国产黄色免费网站 | 国产色播av在线 | av网站免费 | 成人av一区 | 91精品国产91久久久久久最新 | 黑人久久| 国内精品一区二区 | 日本中文在线 | 国产精品黄 | 免费看日韩视频 | 美日韩视频 | 福利视频一区 | 美国a级毛片免费视频 | 成人免费一区二区三区视频网站 | 久草综合在线视频 | 日本一二三区在线观看 | 日本一区二区高清不卡 | 超碰在线国产 | 国产一区二区三区视频免费观看 | 97色免费视频 | 国产日韩一区二区三免费高清 | 国产精品亚洲综合 | 黄a网 | 国产情侣在线看 | 成人国产精品久久 |