coco 输出格式,MPII 输出格式,标注

1,数据集

BODY25:

COCO: .

MPI: .

coco 输出格式

鼻子– 0,颈部– 1,

右肩– 2,右肘– 3,右手腕– 4,

左肩– 5,左肘– 6,左手腕– 7,

右臀部– 8,右膝– 9 , 右脚踝 – 10,

左臀部 – 11, 左膝盖 – 12, 左脚踝 – 13,

右眼 – 14, 左眼 – 15, 右耳 – 16, 左耳 – 17,

背景 – 18

在这里插入图片描述

MPII 输出格式

头 – 0,颈部 - 1,

右肩 - 2,右肘 - 3,右手腕 - 4,

左肩 - 5,左肘 - 6,左手腕 - 7,

右臀部 - 8,右膝盖 - 9,右脚踝 - 10,

左臀部 - 11,左膝 - 12,左脚踝 - 13,

胸部 - 14,背景 - 15

在这里插入图片描述

代码:

if MODE is "COCO":
    protoFile = "pose/coco/pose_deploy_linevec.prototxt"
    weightsFile = "pose/coco/pose_iter_440000.caffemodel"
    nPoints = 18
    POSE_PAIRS = [ [1,0],[1,2],[1,5],[2,3],[3,4],[5,6],[6,7],[1,8],[8,9],[9,10],[1,11],[11,12],[12,13],[0,14],[0,15],[14,16],[15,17]]

elif MODE is "MPI" :
    protoFile = "pose/mpi/pose_deploy_linevec_faster_4_stages.prototxt"
    weightsFile = "pose/mpi/pose_iter_160000.caffemodel"
    nPoints = 15
    POSE_PAIRS = [[0,1], [1,2], [2,3], [3,4], [1,5], [5,6], [6,7], [1,14], [14,8], [8,9], [9,10], [14,11], [11,12], [12,13] ]


详解:

1、

.prototxt 文件,它指定了神经网络的架构——不同层的排列方式等。
.caffemodel 文件,用于存储训练模型的权重

2、blobFromImage函数

函数cv2.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]])

平均值(mean)
缩放系数(scalefactor)
交换RB通道(swapRB)
图像裁剪(crop)

blobFromImage(InputArray image, 
			  double scalefactor=1.0, 
		      const Size& size = Size(),
			  const Scalar& mean = Scalar(), 
			  bool swapRB = false, 
			  bool crop = false,
			  int ddepth = CV_32F)
inpBlob = cv2.dnn.blobFromImage(frame, 1.0 / 255, (inWidth, inHeight),
                          (0, 0, 0), swapRB=False, crop=False)

作用:
对图像进行预处理,包括减均值,比例缩放,裁剪,交换通道等,返回一个4通道的blob(blob可以简单理解为一个N维的数组,用于神经网络的输入)

各参数的意义

image

输入图像

scalefactor

当我们将图片减去平均值之后,还可以对剩下的像素值进行一定的尺度缩放,它的默认值是1,如果希望减去平均像素之后的值,全部缩小一半,那么可以将scalefactor设为1/2

mean

需要将图片整体减去的平均值,如果我们需要对RGB图片的三个通道分别减去不同的值,那么可以使用3组平均值,如果只使用一组,那么就默认对三个通道减去一样的值。减去平均值(mean):为了消除同一场景下不同光照的图片,对我们最终的分类或者神经网络的影响,我们常常对图片的R、G、B通道的像素求一个平均值,然后将每个像素值减去我们的平均值,这样就可以得到像素之间的相对值,就可以排除光照的影响。

swapRB

是否交换RB,OpenCV中认为我们的图片通道顺序是BGR,但是我平均值假设的顺序是RGB,所以如果需要交换R和G,那么就要使swapRB=true

crop

图像裁剪,默认为False.当值为True时,先按比例缩放,然后从中心裁剪成size尺寸

size

输出图像的空间尺寸,如size=(200,300),Width=200, Height=300

ddepth

当cv2.imshow()处理图像深度为CV_8U(默认范围为[0,255])时,按原数据显示;当处理图像深度为CV_16U(默认范围为[0,65535])时,除以256,映射到[0,255];当图像深度为CV_32F和CV_64F时(默认范围为[0,1]),乘以255映射到[0,255];当碰到负数时,首先取其绝对值,然后按照上述图像深度将超出数据范围的部分采取截断操作,最后映射到[0,255]显示图像

猜你喜欢

转载自blog.csdn.net/qq_43033547/article/details/121204281
今日推荐