一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

基于OpenCV的人員剔除

 小白學(xué)視覺(jué) 2021-01-28

重磅干貨,第一時(shí)間送達(dá)

把不需要的人從背景中移除是一個(gè)有趣的任務(wù)。本期,我們一起探索如何使用帶OpenCV從實(shí)時(shí)流中刪除一個(gè)人。

01.準(zhǔn)備工作

1. Python 3.xx(Python 3.7.4)

2. OpenCV(4.1.2版)

要從圖像中刪除一個(gè)對(duì)象,我們可能需要一個(gè)錨點(diǎn)作為起點(diǎn),然后復(fù)制粘貼每個(gè)幀,類(lèi)似對(duì)每個(gè)后續(xù)幀應(yīng)用一個(gè)Mask。我們可以簡(jiǎn)單地從錨定框架中復(fù)制它,然后將其替換為要從中隱藏對(duì)象的當(dāng)前框架來(lái)隱藏要隱藏的區(qū)域的坐標(biāo)。

一個(gè)檢測(cè)幀示例

要解決的第二個(gè)問(wèn)題是找到一種方法來(lái)檢測(cè)要?jiǎng)h除的對(duì)象。OpenCV提供了一種簡(jiǎn)單的方法:基于支持向量機(jī)的“定向梯度直方圖”檢測(cè)器。它是必不可少的檢測(cè)器,不是最快,不是最準(zhǔn)確,不是最好的,但它可以正常工作。

02.工作流程

1. 實(shí)例化 HOGDescriptor

2. 獲取視頻的第一幀用作遮罩

3. 遍歷每一幀,對(duì)于每個(gè)檢測(cè)到的人,從第一幀開(kāi)始用相應(yīng)的替換該區(qū)域

4. 保存輸出

03.代碼

按照前面描述的工作流程,代碼保存在github中,見(jiàn)文末。

讓我們測(cè)試一下!

像一個(gè)老板一樣。手放在口袋里消失了!

但是,引用伊隆·馬斯克(Elon Musk)的話:“仍有改善的空間”。實(shí)際上結(jié)果并不是那么精確,尤其是當(dāng)離相機(jī)更近的時(shí)候。

在測(cè)試了這段代碼之后,整個(gè)輸出看起來(lái)有問(wèn)題且不穩(wěn)定。因此,需要找到一種方法來(lái)改進(jìn)它:用第一幀替換每個(gè)檢測(cè)到的人似乎是個(gè)好方法,因此我可能需要找到一種更好的方法來(lái)檢測(cè)物體!

改進(jìn)之處:

在搜索COCO的模型ZOO時(shí),我們發(fā)現(xiàn)了一個(gè)實(shí)例分割模型,每幅圖像的推理時(shí)間為0.07秒,這是最快的實(shí)例之一(可能不是最準(zhǔn)確的)。

我們自定義了模型,需要安裝所有需要的依賴(lài),例如pytorch,torchvision和detectron2:

# install dependencies:!pip install -U torch==1.4+cu100 torchvision==0.5+cu100 -f https://download.pytorch.org/whl/torch_stable.html!pip install cython pyyaml==5.1!pip install -U ‘git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'import torch, torchvision

以下代碼和說(shuō)明已在Google Colab實(shí)例上進(jìn)行了測(cè)試,做出此選擇是為了使此實(shí)驗(yàn)更易于復(fù)制,而不會(huì)因缺少依賴(lài)項(xiàng),版本沖突和所有經(jīng)常發(fā)生的無(wú)聊而苦惱。

然后我們需要安裝Detectron2:

# install detectron2:!git clone https://github.com/facebookresearch/detectron2 detectron2_repo!pip install -e detectron2_repo

現(xiàn)在,我們可以繼續(xù)導(dǎo)入所有需要的庫(kù)并加載模型:

cfg = get_cfg()cfg.merge_from_file(model_zoo.get_config_file(“COCO-InstanceSegmentation/mask_rcnn_R_50_DC5_1x.yaml”))cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 # set threshold for this modelcfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url(“COCO-InstanceSegmentation/mask_rcnn_R_50_DC5_1x.yaml”)predictor = DefaultPredictor(cfg)

無(wú)法使用我們的predictor類(lèi)進(jìn)行推斷,predictor需要在Tensors上返回一個(gè)需要轉(zhuǎn)換為numpy數(shù)組的數(shù)組,然后可以像以前一樣迭代該數(shù)組:

outputs = predictor(frame)outputs = outputs[“instances”].pred_boxes.to(‘cpu’).tensor.numpy().astype(int)

讓我們檢查一下最終結(jié)果。

Detectron2 VS HOGDetector

從gif可以觀察到Detectron2如何更準(zhǔn)確地檢測(cè)到一個(gè)人,但是,需要說(shuō)的是,當(dāng)然,它需要更多的“深度”配置(依賴(lài)有時(shí)會(huì)很麻煩)。但是,最終結(jié)果不言而喻!

代碼鏈接:https://github.com/robertosannazzaro/person-removal-detectron2

交流群

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    国产免费自拍黄片免费看| 黑人巨大精品欧美一区二区区| 91爽人人爽人人插人人爽| 老司机精品视频在线免费看| 久久国内午夜福利直播| 亚洲综合伊人五月天中文 | 国产乱人伦精品一区二区三区四区| 深夜视频在线观看免费你懂| 色好吊视频这里只有精| 欧美成人一区二区三区在线| 国产成人亚洲综合色就色| 亚洲综合日韩精品欧美综合区| 开心激情网 激情五月天| 国产精品偷拍视频一区| 成人亚洲国产精品一区不卡| 中文字幕高清免费日韩视频| 亚洲欧美国产中文色妇| 欧美在线观看视频三区| 欧美国产日韩在线综合| 国产偷拍精品在线视频| 国产成人精品一区二区在线看| 日韩夫妻午夜性生活视频| 成年人黄片大全在线观看| 国产福利一区二区久久| 国产av天堂一区二区三区粉嫩| 99少妇偷拍视频在线| 亚洲天堂男人在线观看| 麻豆印象传媒在线观看| a久久天堂国产毛片精品| 99日韩在线视频精品免费| 国产精品视频一区二区秋霞| 少妇视频一区二区三区| 日韩精品中文字幕亚洲| 日本欧美视频在线观看免费| 日韩中文字幕免费在线视频| 久久综合日韩精品免费观看| 亚洲一区二区三区免费的视频| 九九热视频经典在线观看| 日韩亚洲激情在线观看| 老熟妇乱视频一区二区| 欧美丰满大屁股一区二区三区|