計算機視覺人體例項分割之pose2seg
程式碼連線:
文章連線:
cvpr2019新出的人體例項分割模型,效果還不錯,就是得需要提取人體關鍵點,比起maskrcnn要麻煩一點,但效果要比maskrcnn好,尤其是人員者當時。開源的程式碼中沒有預測的程式碼,對其test.py進行了修改,分割結果就可以視覺化了。
在k80上測試,單張圖片平均耗時0.297秒,高階顯示卡會更快些。
import argparse
import numpy as np
from tqdm import tqdm
from modeling.build_model import Pose2Seg
from datasets.CocoDatasetInfo import CocoDatasetInfo, annToMask
from pycocotools import mask as maskUtils
import cv2
import time
def apply_mask(image, mask, color, alpha=0.5):
for c in range(3):
image[:, :, c] = np.where(mask == 1, image[:, :, c] * (1 - alpha) + alpha * color[c] * 255, image[:, :, c])
return image
def predict(model, dataset='cocoVal', logger=print):
if dataset == 'OCHumanVal':
ImageRoot = './data/OCHuman/images'
AnnoFile = './data/OCHuman/annotations/ochuman_coco_format_val_range_0.00_1.00.json'
elif dataset == 'OCHumanTest':
ImageRoot = './data/OCHuman/images'
AnnoFile = './data/OCHuman/annotations/ochuman_coco_format_test_range_0.00_1.00.json'
elif dataset == 'cocoVal':
ImageRoot = './data/val2017'
AnnoFile = './data/annotations/person_keypoints_val2017_pose2seg.json'
datainfos = CocoDatasetInfo(ImageRoot, AnnoFile, loadimg=True)
model.eval()
results_segm = []
imgIds = []
total_time = 0.
for i in tqdm(range(len(datainfos))):
# for i in tqdm(range(1)):
rawdata = datainfos[i]
img = rawdata['data']
image_id = rawdata['id']
height, width = img.shape[0:2]
gt_kpts = np.float32(rawdata['gt_keypoints']).transpose(0, 2, 1) # (N, 17, 3)
# print(gt_kpts)
# gt_segms = rawdata['segms']
# gt_masks = np.array([annToMask(segm, height, width) for segm in gt_segms])
start_time = time.time()
output = model([img], [gt_kpts])
end_time = time.time()
total_time = total_time + end_time - start_time
for mask in output[0]:
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1,
(np.random.randint(0, 255), np.random.randint(0, 255), np.random.randint(0, 255)), 3)
color = [np.random.randint(0, 255), np.random.randint(0, 255), np.random.randint(0, 255)]
img = apply_mask(img, mask, color, 0.9)
maskencode = maskUtils.encode(np.asfortranarray(mask))
maskencode['counts'] = maskencode['counts'].decode('ascii')
results_segm.append({
"image_id": image_id,
"category_id": 1,
"score": 1.0,
"segmentation": maskencode
})
cv2.imwrite('./figures/mask' + str(i) + '.jpg', img)
imgIds.append(image_id)
print('============time: ', total_time * 1.0 / len(datainfos))
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Pose2Seg Testing")
parser.add_argument(
"--weights",
help="path to .pkl model weight",
type=str,
)
parser.add_argument(
"--coco",
default=True,
help="Do test on COCOPersons val set",
action="store_true",
)
parser.add_argument(
"--OCHuman",
help="Do test on OCHuman val&test set",
action="store_true",
)
args = parser.parse_args()
print('===========> loading model <===========')
model = Pose2Seg().cuda()
model.init(args.weights)
print('===========> testing <===========')
if args.coco:
predict(model, dataset='cocoVal')
if args.OCHuman:
predict(model, dataset='OCHumanVal')
predict(model, dataset='OCHumanTest')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2655694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS計算機視覺—人臉識別iOS計算機視覺
- 加入視覺:將計算機改造為機器人視覺計算機機器人
- 機器視覺應用例項視覺
- 詳解計算機視覺五大技術:影象分類、物件檢測、目標跟蹤、語義分割和例項分割計算機視覺物件
- 詳解計算機視覺五大技術:影像分類、物件檢測、目標跟蹤、語義分割和例項分割...計算機視覺物件
- 計算機視覺論文集計算機視覺
- iOS計算機視覺—ARKitiOS計算機視覺
- 計算機視覺隨談計算機視覺
- 計算機視覺專案-人臉識別與檢測計算機視覺
- 計算機視覺環境配置計算機視覺
- OpenVINO計算機視覺模型加速計算機視覺模型
- 計算機視覺—影象特效(3)計算機視覺特效
- 【計算機視覺】視訊格式介紹計算機視覺
- MapReduce程式設計例項之自定義分割槽程式設計
- 人工智慧 (14) 計算機視覺人工智慧計算機視覺
- 計算機視覺方向乾貨文章計算機視覺
- 機器學習工作坊 - 計算機視覺機器學習計算機視覺
- 計算機視覺頂會引用格式計算機視覺
- 計算機視覺筆記及資料整理(含影象分割、目標檢測)計算機視覺筆記
- 計算機視覺—人臉識別(Hog特徵+SVM分類器)(8)計算機視覺HOG特徵
- 計算機視覺與深度學習公司計算機視覺深度學習
- 計算機視覺技術專利分析計算機視覺
- 計算機視覺中的深度學習計算機視覺深度學習
- 計算機視覺基本原理——RANSAC計算機視覺
- Python計算機視覺-第2章Python計算機視覺
- 計算機視覺崗實習面經計算機視覺
- 計算機視覺中的注意力機制計算機視覺
- 深度學習在計算機視覺各項任務中的應用深度學習計算機視覺
- 計算機視覺—人臉識別(Haar特徵+Adaboost分類器)(7)計算機視覺特徵
- YOLO例項分割預測後刪除視訊記憶體YOLO記憶體
- 史丹佛—深度學習和計算機視覺深度學習計算機視覺
- 計算機影象與視覺入門必備計算機視覺
- 計算機視覺入門系列(一) 綜述計算機視覺
- 計算機視覺經典任務分類計算機視覺
- 計算機視覺的會議與專家計算機視覺
- Pytorch計算機視覺實戰(更新中)PyTorch計算機視覺
- 【計算機視覺】利用GAN Prior來處理各種視覺任務計算機視覺
- [機器視覺]halcon應用例項 邊緣檢測視覺