Commit f6d23213 authored by Ananya Verma's avatar Ananya Verma Committed by GitHub

Add files via upload

parent 4728da56
import cv2
import time
import numpy as np
MODE = "COCO"
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] ]
frame = cv2.imread("single.jpeg")
frameCopy = np.copy(frame)
frameWidth = frame.shape[1]
frameHeight = frame.shape[0]
threshold = 0.1
net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile)
t = time.time()
# input image dimensions for the network
inWidth = 368
inHeight = 368
inpBlob = cv2.dnn.blobFromImage(frame, 1.0 / 255, (inWidth, inHeight),
(0, 0, 0), swapRB=False, crop=False)
net.setInput(inpBlob)
output = net.forward()
print("time taken by network : {:.3f}".format(time.time() - t))
H = output.shape[2]
W = output.shape[3]
# Empty list to store the detected keypoints
points = []
for i in range(nPoints):
# confidence map of corresponding body's part.
probMap = output[0, i, :, :]
# Find global maxima of the probMap.
minVal, prob, minLoc, point = cv2.minMaxLoc(probMap)
# Scale the point to fit on the original image
x = (frameWidth * point[0]) / W
y = (frameHeight * point[1]) / H
if prob > threshold :
cv2.circle(frameCopy, (int(x), int(y)), 8, (0, 255, 255), thickness=-1, lineType=cv2.FILLED)
cv2.putText(frameCopy, "{}".format(i), (int(x), int(y)), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2, lineType=cv2.LINE_AA)
# Add the point to the list if the probability is greater than the threshold
points.append((int(x), int(y)))
else :
points.append(None)
# Draw Skeleton
for pair in POSE_PAIRS:
partA = pair[0]
partB = pair[1]
if points[partA] and points[partB]:
cv2.line(frame, points[partA], points[partB], (0, 255, 255), 2)
cv2.circle(frame, points[partA], 8, (0, 0, 255), thickness=-1, lineType=cv2.FILLED)
cv2.imshow('Output-Keypoints', frameCopy)
cv2.imshow('Output-Skeleton', frame)
cv2.imwrite('Output-Keypoints.jpg', frameCopy)
cv2.imwrite('Output-Skeleton.jpg', frame)
print("Total time taken : {:.3f}".format(time.time() - t))
cv2.waitKey(0)
import cv2
import time
import numpy as np
MODE = "MPI"
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] ]
inWidth = 368
inHeight = 368
threshold = 0.1
input_source = "output-roy.avi"
cap = cv2.VideoCapture(input_source)
hasFrame, frame = cap.read()
vid_writer = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 10, (frame.shape[1],frame.shape[0]))
net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile)
while cv2.waitKey(1) < 0:
t = time.time()
hasFrame, frame = cap.read()
frameCopy = np.copy(frame)
if not hasFrame:
cv2.waitKey()
break
frameWidth = frame.shape[1]
frameHeight = frame.shape[0]
inpBlob = cv2.dnn.blobFromImage(frame, 1.0 / 255, (inWidth, inHeight),
(0, 0, 0), swapRB=False, crop=False)
net.setInput(inpBlob)
output = net.forward()
H = output.shape[2]
W = output.shape[3]
# Empty list to store the detected keypoints
points = []
for i in range(nPoints):
# confidence map of corresponding body's part.
probMap = output[0, i, :, :]
# Find global maxima of the probMap.
minVal, prob, minLoc, point = cv2.minMaxLoc(probMap)
# Scale the point to fit on the original image
x = (frameWidth * point[0]) / W
y = (frameHeight * point[1]) / H
if prob > threshold :
cv2.circle(frameCopy, (int(x), int(y)), 8, (0, 255, 255), thickness=-1, lineType=cv2.FILLED)
cv2.putText(frameCopy, "{}".format(i), (int(x), int(y)), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2, lineType=cv2.LINE_AA)
# Add the point to the list if the probability is greater than the threshold
points.append((int(x), int(y)))
else :
points.append(None)
# Draw Skeleton
for pair in POSE_PAIRS:
partA = pair[0]
partB = pair[1]
if points[partA] and points[partB]:
cv2.line(frame, points[partA], points[partB], (0, 255, 255), 3, lineType=cv2.LINE_AA)
cv2.circle(frame, points[partA], 8, (0, 0, 255), thickness=-1, lineType=cv2.FILLED)
cv2.circle(frame, points[partB], 8, (0, 0, 255), thickness=-1, lineType=cv2.FILLED)
cv2.putText(frame, "time taken = {:.2f} sec".format(time.time() - t), (50, 50), cv2.FONT_HERSHEY_COMPLEX, .8, (255, 50, 0), 2, lineType=cv2.LINE_AA)
# cv2.putText(frame, "OpenPose using OpenCV", (50, 50), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 50, 0), 2, lineType=cv2.LINE_AA)
# cv2.imshow('Output-Keypoints', frameCopy)
cv2.imshow('Output-Skeleton', frame)
vid_writer.write(frame)
vid_writer.release()
# ------------------------- BODY, FACE AND HAND MODELS -------------------------
# Downloading body pose (COCO and MPI), face and hand models
OPENPOSE_URL="http://posefs1.perception.cs.cmu.edu/OpenPose/models/"
POSE_FOLDER="pose/"
FACE_FOLDER="face/"
HAND_FOLDER="hand/"
# ------------------------- POSE MODELS -------------------------
# Body (COCO)
COCO_FOLDER=${POSE_FOLDER}"coco/"
COCO_MODEL=${COCO_FOLDER}"pose_iter_440000.caffemodel"
wget -c ${OPENPOSE_URL}${COCO_MODEL} -P ${COCO_FOLDER}
# Alternative: it will not check whether file was fully downloaded
# if [ ! -f $COCO_MODEL ]; then
# wget ${OPENPOSE_URL}$COCO_MODEL -P $COCO_FOLDER
# fi
# Body (MPI)
MPI_FOLDER=${POSE_FOLDER}"mpi/"
MPI_MODEL=${MPI_FOLDER}"pose_iter_160000.caffemodel"
wget -c ${OPENPOSE_URL}${MPI_MODEL} -P ${MPI_FOLDER}
# "------------------------- FACE MODELS -------------------------"
# Face
FACE_MODEL=${FACE_FOLDER}"pose_iter_116000.caffemodel"
wget -c ${OPENPOSE_URL}${FACE_MODEL} -P ${FACE_FOLDER}
# "------------------------- HAND MODELS -------------------------"
# Hand
HAND_MODEL=$HAND_FOLDER"pose_iter_102000.caffemodel"
wget -c ${OPENPOSE_URL}${HAND_MODEL} -P ${HAND_FOLDER}
File added
input: "image"
input_dim: 1
input_dim: 3
input_dim: 1 # This value will be defined at runtime
input_dim: 1 # This value will be defined at runtime
layer {
name: "conv1_1"
type: "Convolution"
bottom: "image"
top: "conv1_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu1_1"
type: "ReLU"
bottom: "conv1_1"
top: "conv1_1"
}
layer {
name: "conv1_2"
type: "Convolution"
bottom: "conv1_1"
top: "conv1_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu1_2"
type: "ReLU"
bottom: "conv1_2"
top: "conv1_2"
}
layer {
name: "pool1_stage1"
type: "Pooling"
bottom: "conv1_2"
top: "pool1_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2_1"
type: "Convolution"
bottom: "pool1_stage1"
top: "conv2_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu2_1"
type: "ReLU"
bottom: "conv2_1"
top: "conv2_1"
}
layer {
name: "conv2_2"
type: "Convolution"
bottom: "conv2_1"
top: "conv2_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
}
layer {
name: "pool2_stage1"
type: "Pooling"
bottom: "conv2_2"
top: "pool2_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "pool2_stage1"
top: "conv3_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_1"
type: "ReLU"
bottom: "conv3_1"
top: "conv3_1"
}
layer {
name: "conv3_2"
type: "Convolution"
bottom: "conv3_1"
top: "conv3_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_2"
type: "ReLU"
bottom: "conv3_2"
top: "conv3_2"
}
layer {
name: "conv3_3"
type: "Convolution"
bottom: "conv3_2"
top: "conv3_3"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
}
layer {
name: "conv3_4"
type: "Convolution"
bottom: "conv3_3"
top: "conv3_4"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_4"
type: "ReLU"
bottom: "conv3_4"
top: "conv3_4"
}
layer {
name: "pool3_stage1"
type: "Pooling"
bottom: "conv3_4"
top: "pool3_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "pool3_stage1"
top: "conv4_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_1"
type: "ReLU"
bottom: "conv4_1"
top: "conv4_1"
}
layer {
name: "conv4_2"
type: "Convolution"
bottom: "conv4_1"
top: "conv4_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_2"
type: "ReLU"
bottom: "conv4_2"
top: "conv4_2"
}
layer {
name: "conv4_3_CPM"
type: "Convolution"
bottom: "conv4_2"
top: "conv4_3_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_3_CPM"
type: "ReLU"
bottom: "conv4_3_CPM"
top: "conv4_3_CPM"
}
layer {
name: "conv4_4_CPM"
type: "Convolution"
bottom: "conv4_3_CPM"
top: "conv4_4_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_4_CPM"
type: "ReLU"
bottom: "conv4_4_CPM"
top: "conv4_4_CPM"
}
layer {
name: "conv5_1_CPM_L1"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "conv5_1_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_1_CPM_L1"
type: "ReLU"
bottom: "conv5_1_CPM_L1"
top: "conv5_1_CPM_L1"
}
layer {
name: "conv5_1_CPM_L2"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "conv5_1_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_1_CPM_L2"
type: "ReLU"
bottom: "conv5_1_CPM_L2"
top: "conv5_1_CPM_L2"
}
layer {
name: "conv5_2_CPM_L1"
type: "Convolution"
bottom: "conv5_1_CPM_L1"
top: "conv5_2_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_2_CPM_L1"
type: "ReLU"
bottom: "conv5_2_CPM_L1"
top: "conv5_2_CPM_L1"
}
layer {
name: "conv5_2_CPM_L2"
type: "Convolution"
bottom: "conv5_1_CPM_L2"
top: "conv5_2_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_2_CPM_L2"
type: "ReLU"
bottom: "conv5_2_CPM_L2"
top: "conv5_2_CPM_L2"
}
layer {
name: "conv5_3_CPM_L1"
type: "Convolution"
bottom: "conv5_2_CPM_L1"
top: "conv5_3_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_3_CPM_L1"
type: "ReLU"
bottom: "conv5_3_CPM_L1"
top: "conv5_3_CPM_L1"
}
layer {
name: "conv5_3_CPM_L2"
type: "Convolution"
bottom: "conv5_2_CPM_L2"
top: "conv5_3_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_3_CPM_L2"
type: "ReLU"
bottom: "conv5_3_CPM_L2"
top: "conv5_3_CPM_L2"
}
layer {
name: "conv5_4_CPM_L1"
type: "Convolution"
bottom: "conv5_3_CPM_L1"
top: "conv5_4_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_4_CPM_L1"
type: "ReLU"
bottom: "conv5_4_CPM_L1"
top: "conv5_4_CPM_L1"
}
layer {
name: "conv5_4_CPM_L2"
type: "Convolution"
bottom: "conv5_3_CPM_L2"
top: "conv5_4_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_4_CPM_L2"
type: "ReLU"
bottom: "conv5_4_CPM_L2"
top: "conv5_4_CPM_L2"
}
layer {
name: "conv5_5_CPM_L1"
type: "Convolution"
bottom: "conv5_4_CPM_L1"
top: "conv5_5_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "conv5_5_CPM_L2"
type: "Convolution"
bottom: "conv5_4_CPM_L2"
top: "conv5_5_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 19
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage2"
type: "Concat"
bottom: "conv5_5_CPM_L1"
bottom: "conv5_5_CPM_L2"
bottom: "conv4_4_CPM"
top: "concat_stage2"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage2_L1"
type: "Convolution"
bottom: "concat_stage2"
top: "Mconv1_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage2_L1"
type: "ReLU"
bottom: "Mconv1_stage2_L1"
top: "Mconv1_stage2_L1"
}
layer {
name: "Mconv1_stage2_L2"
type: "Convolution"
bottom: "concat_stage2"
top: "Mconv1_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage2_L2"
type: "ReLU"
bottom: "Mconv1_stage2_L2"
top: "Mconv1_stage2_L2"
}
layer {
name: "Mconv2_stage2_L1"
type: "Convolution"
bottom: "Mconv1_stage2_L1"
top: "Mconv2_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage2_L1"
type: "ReLU"
bottom: "Mconv2_stage2_L1"
top: "Mconv2_stage2_L1"
}
layer {
name: "Mconv2_stage2_L2"
type: "Convolution"
bottom: "Mconv1_stage2_L2"
top: "Mconv2_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage2_L2"
type: "ReLU"
bottom: "Mconv2_stage2_L2"
top: "Mconv2_stage2_L2"
}
layer {
name: "Mconv3_stage2_L1"
type: "Convolution"
bottom: "Mconv2_stage2_L1"
top: "Mconv3_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage2_L1"
type: "ReLU"
bottom: "Mconv3_stage2_L1"
top: "Mconv3_stage2_L1"
}
layer {
name: "Mconv3_stage2_L2"
type: "Convolution"
bottom: "Mconv2_stage2_L2"
top: "Mconv3_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage2_L2"
type: "ReLU"
bottom: "Mconv3_stage2_L2"
top: "Mconv3_stage2_L2"
}
layer {
name: "Mconv4_stage2_L1"
type: "Convolution"
bottom: "Mconv3_stage2_L1"
top: "Mconv4_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage2_L1"
type: "ReLU"
bottom: "Mconv4_stage2_L1"
top: "Mconv4_stage2_L1"
}
layer {
name: "Mconv4_stage2_L2"
type: "Convolution"
bottom: "Mconv3_stage2_L2"
top: "Mconv4_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage2_L2"
type: "ReLU"
bottom: "Mconv4_stage2_L2"
top: "Mconv4_stage2_L2"
}
layer {
name: "Mconv5_stage2_L1"
type: "Convolution"
bottom: "Mconv4_stage2_L1"
top: "Mconv5_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage2_L1"
type: "ReLU"
bottom: "Mconv5_stage2_L1"
top: "Mconv5_stage2_L1"
}
layer {
name: "Mconv5_stage2_L2"
type: "Convolution"
bottom: "Mconv4_stage2_L2"
top: "Mconv5_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage2_L2"
type: "ReLU"
bottom: "Mconv5_stage2_L2"
top: "Mconv5_stage2_L2"
}
layer {
name: "Mconv6_stage2_L1"
type: "Convolution"
bottom: "Mconv5_stage2_L1"
top: "Mconv6_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage2_L1"
type: "ReLU"
bottom: "Mconv6_stage2_L1"
top: "Mconv6_stage2_L1"
}
layer {
name: "Mconv6_stage2_L2"
type: "Convolution"
bottom: "Mconv5_stage2_L2"
top: "Mconv6_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage2_L2"
type: "ReLU"
bottom: "Mconv6_stage2_L2"
top: "Mconv6_stage2_L2"
}
layer {
name: "Mconv7_stage2_L1"
type: "Convolution"
bottom: "Mconv6_stage2_L1"
top: "Mconv7_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage2_L2"
type: "Convolution"
bottom: "Mconv6_stage2_L2"
top: "Mconv7_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 19
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage3"
type: "Concat"
bottom: "Mconv7_stage2_L1"
bottom: "Mconv7_stage2_L2"
bottom: "conv4_4_CPM"
top: "concat_stage3"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage3_L1"
type: "Convolution"
bottom: "concat_stage3"
top: "Mconv1_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage3_L1"
type: "ReLU"
bottom: "Mconv1_stage3_L1"
top: "Mconv1_stage3_L1"
}
layer {
name: "Mconv1_stage3_L2"
type: "Convolution"
bottom: "concat_stage3"
top: "Mconv1_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage3_L2"
type: "ReLU"
bottom: "Mconv1_stage3_L2"
top: "Mconv1_stage3_L2"
}
layer {
name: "Mconv2_stage3_L1"
type: "Convolution"
bottom: "Mconv1_stage3_L1"
top: "Mconv2_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage3_L1"
type: "ReLU"
bottom: "Mconv2_stage3_L1"
top: "Mconv2_stage3_L1"
}
layer {
name: "Mconv2_stage3_L2"
type: "Convolution"
bottom: "Mconv1_stage3_L2"
top: "Mconv2_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage3_L2"
type: "ReLU"
bottom: "Mconv2_stage3_L2"
top: "Mconv2_stage3_L2"
}
layer {
name: "Mconv3_stage3_L1"
type: "Convolution"
bottom: "Mconv2_stage3_L1"
top: "Mconv3_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage3_L1"
type: "ReLU"
bottom: "Mconv3_stage3_L1"
top: "Mconv3_stage3_L1"
}
layer {
name: "Mconv3_stage3_L2"
type: "Convolution"
bottom: "Mconv2_stage3_L2"
top: "Mconv3_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage3_L2"
type: "ReLU"
bottom: "Mconv3_stage3_L2"
top: "Mconv3_stage3_L2"
}
layer {
name: "Mconv4_stage3_L1"
type: "Convolution"
bottom: "Mconv3_stage3_L1"
top: "Mconv4_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage3_L1"
type: "ReLU"
bottom: "Mconv4_stage3_L1"
top: "Mconv4_stage3_L1"
}
layer {
name: "Mconv4_stage3_L2"
type: "Convolution"
bottom: "Mconv3_stage3_L2"
top: "Mconv4_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage3_L2"
type: "ReLU"
bottom: "Mconv4_stage3_L2"
top: "Mconv4_stage3_L2"
}
layer {
name: "Mconv5_stage3_L1"
type: "Convolution"
bottom: "Mconv4_stage3_L1"
top: "Mconv5_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage3_L1"
type: "ReLU"
bottom: "Mconv5_stage3_L1"
top: "Mconv5_stage3_L1"
}
layer {
name: "Mconv5_stage3_L2"
type: "Convolution"
bottom: "Mconv4_stage3_L2"
top: "Mconv5_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage3_L2"
type: "ReLU"
bottom: "Mconv5_stage3_L2"
top: "Mconv5_stage3_L2"
}
layer {
name: "Mconv6_stage3_L1"
type: "Convolution"
bottom: "Mconv5_stage3_L1"
top: "Mconv6_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage3_L1"
type: "ReLU"
bottom: "Mconv6_stage3_L1"
top: "Mconv6_stage3_L1"
}
layer {
name: "Mconv6_stage3_L2"
type: "Convolution"
bottom: "Mconv5_stage3_L2"
top: "Mconv6_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage3_L2"
type: "ReLU"
bottom: "Mconv6_stage3_L2"
top: "Mconv6_stage3_L2"
}
layer {
name: "Mconv7_stage3_L1"
type: "Convolution"
bottom: "Mconv6_stage3_L1"
top: "Mconv7_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage3_L2"
type: "Convolution"
bottom: "Mconv6_stage3_L2"
top: "Mconv7_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 19
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage4"
type: "Concat"
bottom: "Mconv7_stage3_L1"
bottom: "Mconv7_stage3_L2"
bottom: "conv4_4_CPM"
top: "concat_stage4"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage4_L1"
type: "Convolution"
bottom: "concat_stage4"
top: "Mconv1_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage4_L1"
type: "ReLU"
bottom: "Mconv1_stage4_L1"
top: "Mconv1_stage4_L1"
}
layer {
name: "Mconv1_stage4_L2"
type: "Convolution"
bottom: "concat_stage4"
top: "Mconv1_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage4_L2"
type: "ReLU"
bottom: "Mconv1_stage4_L2"
top: "Mconv1_stage4_L2"
}
layer {
name: "Mconv2_stage4_L1"
type: "Convolution"
bottom: "Mconv1_stage4_L1"
top: "Mconv2_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage4_L1"
type: "ReLU"
bottom: "Mconv2_stage4_L1"
top: "Mconv2_stage4_L1"
}
layer {
name: "Mconv2_stage4_L2"
type: "Convolution"
bottom: "Mconv1_stage4_L2"
top: "Mconv2_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage4_L2"
type: "ReLU"
bottom: "Mconv2_stage4_L2"
top: "Mconv2_stage4_L2"
}
layer {
name: "Mconv3_stage4_L1"
type: "Convolution"
bottom: "Mconv2_stage4_L1"
top: "Mconv3_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage4_L1"
type: "ReLU"
bottom: "Mconv3_stage4_L1"
top: "Mconv3_stage4_L1"
}
layer {
name: "Mconv3_stage4_L2"
type: "Convolution"
bottom: "Mconv2_stage4_L2"
top: "Mconv3_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage4_L2"
type: "ReLU"
bottom: "Mconv3_stage4_L2"
top: "Mconv3_stage4_L2"
}
layer {
name: "Mconv4_stage4_L1"
type: "Convolution"
bottom: "Mconv3_stage4_L1"
top: "Mconv4_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage4_L1"
type: "ReLU"
bottom: "Mconv4_stage4_L1"
top: "Mconv4_stage4_L1"
}
layer {
name: "Mconv4_stage4_L2"
type: "Convolution"
bottom: "Mconv3_stage4_L2"
top: "Mconv4_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage4_L2"
type: "ReLU"
bottom: "Mconv4_stage4_L2"
top: "Mconv4_stage4_L2"
}
layer {
name: "Mconv5_stage4_L1"
type: "Convolution"
bottom: "Mconv4_stage4_L1"
top: "Mconv5_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage4_L1"
type: "ReLU"
bottom: "Mconv5_stage4_L1"
top: "Mconv5_stage4_L1"
}
layer {
name: "Mconv5_stage4_L2"
type: "Convolution"
bottom: "Mconv4_stage4_L2"
top: "Mconv5_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage4_L2"
type: "ReLU"
bottom: "Mconv5_stage4_L2"
top: "Mconv5_stage4_L2"
}
layer {
name: "Mconv6_stage4_L1"
type: "Convolution"
bottom: "Mconv5_stage4_L1"
top: "Mconv6_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage4_L1"
type: "ReLU"
bottom: "Mconv6_stage4_L1"
top: "Mconv6_stage4_L1"
}
layer {
name: "Mconv6_stage4_L2"
type: "Convolution"
bottom: "Mconv5_stage4_L2"
top: "Mconv6_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage4_L2"
type: "ReLU"
bottom: "Mconv6_stage4_L2"
top: "Mconv6_stage4_L2"
}
layer {
name: "Mconv7_stage4_L1"
type: "Convolution"
bottom: "Mconv6_stage4_L1"
top: "Mconv7_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage4_L2"
type: "Convolution"
bottom: "Mconv6_stage4_L2"
top: "Mconv7_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 19
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage5"
type: "Concat"
bottom: "Mconv7_stage4_L1"
bottom: "Mconv7_stage4_L2"
bottom: "conv4_4_CPM"
top: "concat_stage5"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage5_L1"
type: "Convolution"
bottom: "concat_stage5"
top: "Mconv1_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage5_L1"
type: "ReLU"
bottom: "Mconv1_stage5_L1"
top: "Mconv1_stage5_L1"
}
layer {
name: "Mconv1_stage5_L2"
type: "Convolution"
bottom: "concat_stage5"
top: "Mconv1_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage5_L2"
type: "ReLU"
bottom: "Mconv1_stage5_L2"
top: "Mconv1_stage5_L2"
}
layer {
name: "Mconv2_stage5_L1"
type: "Convolution"
bottom: "Mconv1_stage5_L1"
top: "Mconv2_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage5_L1"
type: "ReLU"
bottom: "Mconv2_stage5_L1"
top: "Mconv2_stage5_L1"
}
layer {
name: "Mconv2_stage5_L2"
type: "Convolution"
bottom: "Mconv1_stage5_L2"
top: "Mconv2_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage5_L2"
type: "ReLU"
bottom: "Mconv2_stage5_L2"
top: "Mconv2_stage5_L2"
}
layer {
name: "Mconv3_stage5_L1"
type: "Convolution"
bottom: "Mconv2_stage5_L1"
top: "Mconv3_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage5_L1"
type: "ReLU"
bottom: "Mconv3_stage5_L1"
top: "Mconv3_stage5_L1"
}
layer {
name: "Mconv3_stage5_L2"
type: "Convolution"
bottom: "Mconv2_stage5_L2"
top: "Mconv3_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage5_L2"
type: "ReLU"
bottom: "Mconv3_stage5_L2"
top: "Mconv3_stage5_L2"
}
layer {
name: "Mconv4_stage5_L1"
type: "Convolution"
bottom: "Mconv3_stage5_L1"
top: "Mconv4_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage5_L1"
type: "ReLU"
bottom: "Mconv4_stage5_L1"
top: "Mconv4_stage5_L1"
}
layer {
name: "Mconv4_stage5_L2"
type: "Convolution"
bottom: "Mconv3_stage5_L2"
top: "Mconv4_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage5_L2"
type: "ReLU"
bottom: "Mconv4_stage5_L2"
top: "Mconv4_stage5_L2"
}
layer {
name: "Mconv5_stage5_L1"
type: "Convolution"
bottom: "Mconv4_stage5_L1"
top: "Mconv5_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage5_L1"
type: "ReLU"
bottom: "Mconv5_stage5_L1"
top: "Mconv5_stage5_L1"
}
layer {
name: "Mconv5_stage5_L2"
type: "Convolution"
bottom: "Mconv4_stage5_L2"
top: "Mconv5_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage5_L2"
type: "ReLU"
bottom: "Mconv5_stage5_L2"
top: "Mconv5_stage5_L2"
}
layer {
name: "Mconv6_stage5_L1"
type: "Convolution"
bottom: "Mconv5_stage5_L1"
top: "Mconv6_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage5_L1"
type: "ReLU"
bottom: "Mconv6_stage5_L1"
top: "Mconv6_stage5_L1"
}
layer {
name: "Mconv6_stage5_L2"
type: "Convolution"
bottom: "Mconv5_stage5_L2"
top: "Mconv6_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage5_L2"
type: "ReLU"
bottom: "Mconv6_stage5_L2"
top: "Mconv6_stage5_L2"
}
layer {
name: "Mconv7_stage5_L1"
type: "Convolution"
bottom: "Mconv6_stage5_L1"
top: "Mconv7_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage5_L2"
type: "Convolution"
bottom: "Mconv6_stage5_L2"
top: "Mconv7_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 19
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage6"
type: "Concat"
bottom: "Mconv7_stage5_L1"
bottom: "Mconv7_stage5_L2"
bottom: "conv4_4_CPM"
top: "concat_stage6"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage6_L1"
type: "Convolution"
bottom: "concat_stage6"
top: "Mconv1_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage6_L1"
type: "ReLU"
bottom: "Mconv1_stage6_L1"
top: "Mconv1_stage6_L1"
}
layer {
name: "Mconv1_stage6_L2"
type: "Convolution"
bottom: "concat_stage6"
top: "Mconv1_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage6_L2"
type: "ReLU"
bottom: "Mconv1_stage6_L2"
top: "Mconv1_stage6_L2"
}
layer {
name: "Mconv2_stage6_L1"
type: "Convolution"
bottom: "Mconv1_stage6_L1"
top: "Mconv2_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage6_L1"
type: "ReLU"
bottom: "Mconv2_stage6_L1"
top: "Mconv2_stage6_L1"
}
layer {
name: "Mconv2_stage6_L2"
type: "Convolution"
bottom: "Mconv1_stage6_L2"
top: "Mconv2_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage6_L2"
type: "ReLU"
bottom: "Mconv2_stage6_L2"
top: "Mconv2_stage6_L2"
}
layer {
name: "Mconv3_stage6_L1"
type: "Convolution"
bottom: "Mconv2_stage6_L1"
top: "Mconv3_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage6_L1"
type: "ReLU"
bottom: "Mconv3_stage6_L1"
top: "Mconv3_stage6_L1"
}
layer {
name: "Mconv3_stage6_L2"
type: "Convolution"
bottom: "Mconv2_stage6_L2"
top: "Mconv3_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage6_L2"
type: "ReLU"
bottom: "Mconv3_stage6_L2"
top: "Mconv3_stage6_L2"
}
layer {
name: "Mconv4_stage6_L1"
type: "Convolution"
bottom: "Mconv3_stage6_L1"
top: "Mconv4_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage6_L1"
type: "ReLU"
bottom: "Mconv4_stage6_L1"
top: "Mconv4_stage6_L1"
}
layer {
name: "Mconv4_stage6_L2"
type: "Convolution"
bottom: "Mconv3_stage6_L2"
top: "Mconv4_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage6_L2"
type: "ReLU"
bottom: "Mconv4_stage6_L2"
top: "Mconv4_stage6_L2"
}
layer {
name: "Mconv5_stage6_L1"
type: "Convolution"
bottom: "Mconv4_stage6_L1"
top: "Mconv5_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage6_L1"
type: "ReLU"
bottom: "Mconv5_stage6_L1"
top: "Mconv5_stage6_L1"
}
layer {
name: "Mconv5_stage6_L2"
type: "Convolution"
bottom: "Mconv4_stage6_L2"
top: "Mconv5_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage6_L2"
type: "ReLU"
bottom: "Mconv5_stage6_L2"
top: "Mconv5_stage6_L2"
}
layer {
name: "Mconv6_stage6_L1"
type: "Convolution"
bottom: "Mconv5_stage6_L1"
top: "Mconv6_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage6_L1"
type: "ReLU"
bottom: "Mconv6_stage6_L1"
top: "Mconv6_stage6_L1"
}
layer {
name: "Mconv6_stage6_L2"
type: "Convolution"
bottom: "Mconv5_stage6_L2"
top: "Mconv6_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage6_L2"
type: "ReLU"
bottom: "Mconv6_stage6_L2"
top: "Mconv6_stage6_L2"
}
layer {
name: "Mconv7_stage6_L1"
type: "Convolution"
bottom: "Mconv6_stage6_L1"
top: "Mconv7_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage6_L2"
type: "Convolution"
bottom: "Mconv6_stage6_L2"
top: "Mconv7_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 19
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage7"
type: "Concat"
bottom: "Mconv7_stage6_L2"
bottom: "Mconv7_stage6_L1"
# top: "concat_stage7"
top: "net_output"
concat_param {
axis: 1
}
}
\ No newline at end of file
input: "image"
input_dim: 1
input_dim: 3
input_dim: 1 # This value will be defined at runtime
input_dim: 1 # This value will be defined at runtime
layer {
name: "conv1_1"
type: "Convolution"
bottom: "image"
top: "conv1_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu1_1"
type: "ReLU"
bottom: "conv1_1"
top: "conv1_1"
}
layer {
name: "conv1_2"
type: "Convolution"
bottom: "conv1_1"
top: "conv1_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu1_2"
type: "ReLU"
bottom: "conv1_2"
top: "conv1_2"
}
layer {
name: "pool1_stage1"
type: "Pooling"
bottom: "conv1_2"
top: "pool1_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2_1"
type: "Convolution"
bottom: "pool1_stage1"
top: "conv2_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu2_1"
type: "ReLU"
bottom: "conv2_1"
top: "conv2_1"
}
layer {
name: "conv2_2"
type: "Convolution"
bottom: "conv2_1"
top: "conv2_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
}
layer {
name: "pool2_stage1"
type: "Pooling"
bottom: "conv2_2"
top: "pool2_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "pool2_stage1"
top: "conv3_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_1"
type: "ReLU"
bottom: "conv3_1"
top: "conv3_1"
}
layer {
name: "conv3_2"
type: "Convolution"
bottom: "conv3_1"
top: "conv3_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_2"
type: "ReLU"
bottom: "conv3_2"
top: "conv3_2"
}
layer {
name: "conv3_3"
type: "Convolution"
bottom: "conv3_2"
top: "conv3_3"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
}
layer {
name: "conv3_4"
type: "Convolution"
bottom: "conv3_3"
top: "conv3_4"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_4"
type: "ReLU"
bottom: "conv3_4"
top: "conv3_4"
}
layer {
name: "pool3_stage1"
type: "Pooling"
bottom: "conv3_4"
top: "pool3_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "pool3_stage1"
top: "conv4_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_1"
type: "ReLU"
bottom: "conv4_1"
top: "conv4_1"
}
layer {
name: "conv4_2"
type: "Convolution"
bottom: "conv4_1"
top: "conv4_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_2"
type: "ReLU"
bottom: "conv4_2"
top: "conv4_2"
}
layer {
name: "conv4_3_CPM"
type: "Convolution"
bottom: "conv4_2"
top: "conv4_3_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_3_CPM"
type: "ReLU"
bottom: "conv4_3_CPM"
top: "conv4_3_CPM"
}
layer {
name: "conv4_4_CPM"
type: "Convolution"
bottom: "conv4_3_CPM"
top: "conv4_4_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_4_CPM"
type: "ReLU"
bottom: "conv4_4_CPM"
top: "conv4_4_CPM"
}
layer {
name: "conv5_1_CPM_L1"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "conv5_1_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_1_CPM_L1"
type: "ReLU"
bottom: "conv5_1_CPM_L1"
top: "conv5_1_CPM_L1"
}
layer {
name: "conv5_1_CPM_L2"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "conv5_1_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_1_CPM_L2"
type: "ReLU"
bottom: "conv5_1_CPM_L2"
top: "conv5_1_CPM_L2"
}
layer {
name: "conv5_2_CPM_L1"
type: "Convolution"
bottom: "conv5_1_CPM_L1"
top: "conv5_2_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_2_CPM_L1"
type: "ReLU"
bottom: "conv5_2_CPM_L1"
top: "conv5_2_CPM_L1"
}
layer {
name: "conv5_2_CPM_L2"
type: "Convolution"
bottom: "conv5_1_CPM_L2"
top: "conv5_2_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_2_CPM_L2"
type: "ReLU"
bottom: "conv5_2_CPM_L2"
top: "conv5_2_CPM_L2"
}
layer {
name: "conv5_3_CPM_L1"
type: "Convolution"
bottom: "conv5_2_CPM_L1"
top: "conv5_3_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_3_CPM_L1"
type: "ReLU"
bottom: "conv5_3_CPM_L1"
top: "conv5_3_CPM_L1"
}
layer {
name: "conv5_3_CPM_L2"
type: "Convolution"
bottom: "conv5_2_CPM_L2"
top: "conv5_3_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_3_CPM_L2"
type: "ReLU"
bottom: "conv5_3_CPM_L2"
top: "conv5_3_CPM_L2"
}
layer {
name: "conv5_4_CPM_L1"
type: "Convolution"
bottom: "conv5_3_CPM_L1"
top: "conv5_4_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_4_CPM_L1"
type: "ReLU"
bottom: "conv5_4_CPM_L1"
top: "conv5_4_CPM_L1"
}
layer {
name: "conv5_4_CPM_L2"
type: "Convolution"
bottom: "conv5_3_CPM_L2"
top: "conv5_4_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_4_CPM_L2"
type: "ReLU"
bottom: "conv5_4_CPM_L2"
top: "conv5_4_CPM_L2"
}
layer {
name: "conv5_5_CPM_L1"
type: "Convolution"
bottom: "conv5_4_CPM_L1"
top: "conv5_5_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "conv5_5_CPM_L2"
type: "Convolution"
bottom: "conv5_4_CPM_L2"
top: "conv5_5_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage2"
type: "Concat"
bottom: "conv5_5_CPM_L1"
bottom: "conv5_5_CPM_L2"
bottom: "conv4_4_CPM"
top: "concat_stage2"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage2_L1"
type: "Convolution"
bottom: "concat_stage2"
top: "Mconv1_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage2_L1"
type: "ReLU"
bottom: "Mconv1_stage2_L1"
top: "Mconv1_stage2_L1"
}
layer {
name: "Mconv1_stage2_L2"
type: "Convolution"
bottom: "concat_stage2"
top: "Mconv1_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage2_L2"
type: "ReLU"
bottom: "Mconv1_stage2_L2"
top: "Mconv1_stage2_L2"
}
layer {
name: "Mconv2_stage2_L1"
type: "Convolution"
bottom: "Mconv1_stage2_L1"
top: "Mconv2_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage2_L1"
type: "ReLU"
bottom: "Mconv2_stage2_L1"
top: "Mconv2_stage2_L1"
}
layer {
name: "Mconv2_stage2_L2"
type: "Convolution"
bottom: "Mconv1_stage2_L2"
top: "Mconv2_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage2_L2"
type: "ReLU"
bottom: "Mconv2_stage2_L2"
top: "Mconv2_stage2_L2"
}
layer {
name: "Mconv3_stage2_L1"
type: "Convolution"
bottom: "Mconv2_stage2_L1"
top: "Mconv3_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage2_L1"
type: "ReLU"
bottom: "Mconv3_stage2_L1"
top: "Mconv3_stage2_L1"
}
layer {
name: "Mconv3_stage2_L2"
type: "Convolution"
bottom: "Mconv2_stage2_L2"
top: "Mconv3_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage2_L2"
type: "ReLU"
bottom: "Mconv3_stage2_L2"
top: "Mconv3_stage2_L2"
}
layer {
name: "Mconv4_stage2_L1"
type: "Convolution"
bottom: "Mconv3_stage2_L1"
top: "Mconv4_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage2_L1"
type: "ReLU"
bottom: "Mconv4_stage2_L1"
top: "Mconv4_stage2_L1"
}
layer {
name: "Mconv4_stage2_L2"
type: "Convolution"
bottom: "Mconv3_stage2_L2"
top: "Mconv4_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage2_L2"
type: "ReLU"
bottom: "Mconv4_stage2_L2"
top: "Mconv4_stage2_L2"
}
layer {
name: "Mconv5_stage2_L1"
type: "Convolution"
bottom: "Mconv4_stage2_L1"
top: "Mconv5_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage2_L1"
type: "ReLU"
bottom: "Mconv5_stage2_L1"
top: "Mconv5_stage2_L1"
}
layer {
name: "Mconv5_stage2_L2"
type: "Convolution"
bottom: "Mconv4_stage2_L2"
top: "Mconv5_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage2_L2"
type: "ReLU"
bottom: "Mconv5_stage2_L2"
top: "Mconv5_stage2_L2"
}
layer {
name: "Mconv6_stage2_L1"
type: "Convolution"
bottom: "Mconv5_stage2_L1"
top: "Mconv6_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage2_L1"
type: "ReLU"
bottom: "Mconv6_stage2_L1"
top: "Mconv6_stage2_L1"
}
layer {
name: "Mconv6_stage2_L2"
type: "Convolution"
bottom: "Mconv5_stage2_L2"
top: "Mconv6_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage2_L2"
type: "ReLU"
bottom: "Mconv6_stage2_L2"
top: "Mconv6_stage2_L2"
}
layer {
name: "Mconv7_stage2_L1"
type: "Convolution"
bottom: "Mconv6_stage2_L1"
top: "Mconv7_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage2_L2"
type: "Convolution"
bottom: "Mconv6_stage2_L2"
top: "Mconv7_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage3"
type: "Concat"
bottom: "Mconv7_stage2_L1"
bottom: "Mconv7_stage2_L2"
bottom: "conv4_4_CPM"
top: "concat_stage3"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage3_L1"
type: "Convolution"
bottom: "concat_stage3"
top: "Mconv1_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage3_L1"
type: "ReLU"
bottom: "Mconv1_stage3_L1"
top: "Mconv1_stage3_L1"
}
layer {
name: "Mconv1_stage3_L2"
type: "Convolution"
bottom: "concat_stage3"
top: "Mconv1_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage3_L2"
type: "ReLU"
bottom: "Mconv1_stage3_L2"
top: "Mconv1_stage3_L2"
}
layer {
name: "Mconv2_stage3_L1"
type: "Convolution"
bottom: "Mconv1_stage3_L1"
top: "Mconv2_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage3_L1"
type: "ReLU"
bottom: "Mconv2_stage3_L1"
top: "Mconv2_stage3_L1"
}
layer {
name: "Mconv2_stage3_L2"
type: "Convolution"
bottom: "Mconv1_stage3_L2"
top: "Mconv2_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage3_L2"
type: "ReLU"
bottom: "Mconv2_stage3_L2"
top: "Mconv2_stage3_L2"
}
layer {
name: "Mconv3_stage3_L1"
type: "Convolution"
bottom: "Mconv2_stage3_L1"
top: "Mconv3_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage3_L1"
type: "ReLU"
bottom: "Mconv3_stage3_L1"
top: "Mconv3_stage3_L1"
}
layer {
name: "Mconv3_stage3_L2"
type: "Convolution"
bottom: "Mconv2_stage3_L2"
top: "Mconv3_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage3_L2"
type: "ReLU"
bottom: "Mconv3_stage3_L2"
top: "Mconv3_stage3_L2"
}
layer {
name: "Mconv4_stage3_L1"
type: "Convolution"
bottom: "Mconv3_stage3_L1"
top: "Mconv4_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage3_L1"
type: "ReLU"
bottom: "Mconv4_stage3_L1"
top: "Mconv4_stage3_L1"
}
layer {
name: "Mconv4_stage3_L2"
type: "Convolution"
bottom: "Mconv3_stage3_L2"
top: "Mconv4_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage3_L2"
type: "ReLU"
bottom: "Mconv4_stage3_L2"
top: "Mconv4_stage3_L2"
}
layer {
name: "Mconv5_stage3_L1"
type: "Convolution"
bottom: "Mconv4_stage3_L1"
top: "Mconv5_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage3_L1"
type: "ReLU"
bottom: "Mconv5_stage3_L1"
top: "Mconv5_stage3_L1"
}
layer {
name: "Mconv5_stage3_L2"
type: "Convolution"
bottom: "Mconv4_stage3_L2"
top: "Mconv5_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage3_L2"
type: "ReLU"
bottom: "Mconv5_stage3_L2"
top: "Mconv5_stage3_L2"
}
layer {
name: "Mconv6_stage3_L1"
type: "Convolution"
bottom: "Mconv5_stage3_L1"
top: "Mconv6_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage3_L1"
type: "ReLU"
bottom: "Mconv6_stage3_L1"
top: "Mconv6_stage3_L1"
}
layer {
name: "Mconv6_stage3_L2"
type: "Convolution"
bottom: "Mconv5_stage3_L2"
top: "Mconv6_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage3_L2"
type: "ReLU"
bottom: "Mconv6_stage3_L2"
top: "Mconv6_stage3_L2"
}
layer {
name: "Mconv7_stage3_L1"
type: "Convolution"
bottom: "Mconv6_stage3_L1"
top: "Mconv7_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage3_L2"
type: "Convolution"
bottom: "Mconv6_stage3_L2"
top: "Mconv7_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage4"
type: "Concat"
bottom: "Mconv7_stage3_L1"
bottom: "Mconv7_stage3_L2"
bottom: "conv4_4_CPM"
top: "concat_stage4"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage4_L1"
type: "Convolution"
bottom: "concat_stage4"
top: "Mconv1_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage4_L1"
type: "ReLU"
bottom: "Mconv1_stage4_L1"
top: "Mconv1_stage4_L1"
}
layer {
name: "Mconv1_stage4_L2"
type: "Convolution"
bottom: "concat_stage4"
top: "Mconv1_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage4_L2"
type: "ReLU"
bottom: "Mconv1_stage4_L2"
top: "Mconv1_stage4_L2"
}
layer {
name: "Mconv2_stage4_L1"
type: "Convolution"
bottom: "Mconv1_stage4_L1"
top: "Mconv2_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage4_L1"
type: "ReLU"
bottom: "Mconv2_stage4_L1"
top: "Mconv2_stage4_L1"
}
layer {
name: "Mconv2_stage4_L2"
type: "Convolution"
bottom: "Mconv1_stage4_L2"
top: "Mconv2_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage4_L2"
type: "ReLU"
bottom: "Mconv2_stage4_L2"
top: "Mconv2_stage4_L2"
}
layer {
name: "Mconv3_stage4_L1"
type: "Convolution"
bottom: "Mconv2_stage4_L1"
top: "Mconv3_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage4_L1"
type: "ReLU"
bottom: "Mconv3_stage4_L1"
top: "Mconv3_stage4_L1"
}
layer {
name: "Mconv3_stage4_L2"
type: "Convolution"
bottom: "Mconv2_stage4_L2"
top: "Mconv3_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage4_L2"
type: "ReLU"
bottom: "Mconv3_stage4_L2"
top: "Mconv3_stage4_L2"
}
layer {
name: "Mconv4_stage4_L1"
type: "Convolution"
bottom: "Mconv3_stage4_L1"
top: "Mconv4_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage4_L1"
type: "ReLU"
bottom: "Mconv4_stage4_L1"
top: "Mconv4_stage4_L1"
}
layer {
name: "Mconv4_stage4_L2"
type: "Convolution"
bottom: "Mconv3_stage4_L2"
top: "Mconv4_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage4_L2"
type: "ReLU"
bottom: "Mconv4_stage4_L2"
top: "Mconv4_stage4_L2"
}
layer {
name: "Mconv5_stage4_L1"
type: "Convolution"
bottom: "Mconv4_stage4_L1"
top: "Mconv5_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage4_L1"
type: "ReLU"
bottom: "Mconv5_stage4_L1"
top: "Mconv5_stage4_L1"
}
layer {
name: "Mconv5_stage4_L2"
type: "Convolution"
bottom: "Mconv4_stage4_L2"
top: "Mconv5_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage4_L2"
type: "ReLU"
bottom: "Mconv5_stage4_L2"
top: "Mconv5_stage4_L2"
}
layer {
name: "Mconv6_stage4_L1"
type: "Convolution"
bottom: "Mconv5_stage4_L1"
top: "Mconv6_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage4_L1"
type: "ReLU"
bottom: "Mconv6_stage4_L1"
top: "Mconv6_stage4_L1"
}
layer {
name: "Mconv6_stage4_L2"
type: "Convolution"
bottom: "Mconv5_stage4_L2"
top: "Mconv6_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage4_L2"
type: "ReLU"
bottom: "Mconv6_stage4_L2"
top: "Mconv6_stage4_L2"
}
layer {
name: "Mconv7_stage4_L1"
type: "Convolution"
bottom: "Mconv6_stage4_L1"
top: "Mconv7_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage4_L2"
type: "Convolution"
bottom: "Mconv6_stage4_L2"
top: "Mconv7_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage5"
type: "Concat"
bottom: "Mconv7_stage4_L1"
bottom: "Mconv7_stage4_L2"
bottom: "conv4_4_CPM"
top: "concat_stage5"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage5_L1"
type: "Convolution"
bottom: "concat_stage5"
top: "Mconv1_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage5_L1"
type: "ReLU"
bottom: "Mconv1_stage5_L1"
top: "Mconv1_stage5_L1"
}
layer {
name: "Mconv1_stage5_L2"
type: "Convolution"
bottom: "concat_stage5"
top: "Mconv1_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage5_L2"
type: "ReLU"
bottom: "Mconv1_stage5_L2"
top: "Mconv1_stage5_L2"
}
layer {
name: "Mconv2_stage5_L1"
type: "Convolution"
bottom: "Mconv1_stage5_L1"
top: "Mconv2_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage5_L1"
type: "ReLU"
bottom: "Mconv2_stage5_L1"
top: "Mconv2_stage5_L1"
}
layer {
name: "Mconv2_stage5_L2"
type: "Convolution"
bottom: "Mconv1_stage5_L2"
top: "Mconv2_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage5_L2"
type: "ReLU"
bottom: "Mconv2_stage5_L2"
top: "Mconv2_stage5_L2"
}
layer {
name: "Mconv3_stage5_L1"
type: "Convolution"
bottom: "Mconv2_stage5_L1"
top: "Mconv3_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage5_L1"
type: "ReLU"
bottom: "Mconv3_stage5_L1"
top: "Mconv3_stage5_L1"
}
layer {
name: "Mconv3_stage5_L2"
type: "Convolution"
bottom: "Mconv2_stage5_L2"
top: "Mconv3_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage5_L2"
type: "ReLU"
bottom: "Mconv3_stage5_L2"
top: "Mconv3_stage5_L2"
}
layer {
name: "Mconv4_stage5_L1"
type: "Convolution"
bottom: "Mconv3_stage5_L1"
top: "Mconv4_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage5_L1"
type: "ReLU"
bottom: "Mconv4_stage5_L1"
top: "Mconv4_stage5_L1"
}
layer {
name: "Mconv4_stage5_L2"
type: "Convolution"
bottom: "Mconv3_stage5_L2"
top: "Mconv4_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage5_L2"
type: "ReLU"
bottom: "Mconv4_stage5_L2"
top: "Mconv4_stage5_L2"
}
layer {
name: "Mconv5_stage5_L1"
type: "Convolution"
bottom: "Mconv4_stage5_L1"
top: "Mconv5_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage5_L1"
type: "ReLU"
bottom: "Mconv5_stage5_L1"
top: "Mconv5_stage5_L1"
}
layer {
name: "Mconv5_stage5_L2"
type: "Convolution"
bottom: "Mconv4_stage5_L2"
top: "Mconv5_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage5_L2"
type: "ReLU"
bottom: "Mconv5_stage5_L2"
top: "Mconv5_stage5_L2"
}
layer {
name: "Mconv6_stage5_L1"
type: "Convolution"
bottom: "Mconv5_stage5_L1"
top: "Mconv6_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage5_L1"
type: "ReLU"
bottom: "Mconv6_stage5_L1"
top: "Mconv6_stage5_L1"
}
layer {
name: "Mconv6_stage5_L2"
type: "Convolution"
bottom: "Mconv5_stage5_L2"
top: "Mconv6_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage5_L2"
type: "ReLU"
bottom: "Mconv6_stage5_L2"
top: "Mconv6_stage5_L2"
}
layer {
name: "Mconv7_stage5_L1"
type: "Convolution"
bottom: "Mconv6_stage5_L1"
top: "Mconv7_stage5_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage5_L2"
type: "Convolution"
bottom: "Mconv6_stage5_L2"
top: "Mconv7_stage5_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage6"
type: "Concat"
bottom: "Mconv7_stage5_L1"
bottom: "Mconv7_stage5_L2"
bottom: "conv4_4_CPM"
top: "concat_stage6"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage6_L1"
type: "Convolution"
bottom: "concat_stage6"
top: "Mconv1_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage6_L1"
type: "ReLU"
bottom: "Mconv1_stage6_L1"
top: "Mconv1_stage6_L1"
}
layer {
name: "Mconv1_stage6_L2"
type: "Convolution"
bottom: "concat_stage6"
top: "Mconv1_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage6_L2"
type: "ReLU"
bottom: "Mconv1_stage6_L2"
top: "Mconv1_stage6_L2"
}
layer {
name: "Mconv2_stage6_L1"
type: "Convolution"
bottom: "Mconv1_stage6_L1"
top: "Mconv2_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage6_L1"
type: "ReLU"
bottom: "Mconv2_stage6_L1"
top: "Mconv2_stage6_L1"
}
layer {
name: "Mconv2_stage6_L2"
type: "Convolution"
bottom: "Mconv1_stage6_L2"
top: "Mconv2_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage6_L2"
type: "ReLU"
bottom: "Mconv2_stage6_L2"
top: "Mconv2_stage6_L2"
}
layer {
name: "Mconv3_stage6_L1"
type: "Convolution"
bottom: "Mconv2_stage6_L1"
top: "Mconv3_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage6_L1"
type: "ReLU"
bottom: "Mconv3_stage6_L1"
top: "Mconv3_stage6_L1"
}
layer {
name: "Mconv3_stage6_L2"
type: "Convolution"
bottom: "Mconv2_stage6_L2"
top: "Mconv3_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage6_L2"
type: "ReLU"
bottom: "Mconv3_stage6_L2"
top: "Mconv3_stage6_L2"
}
layer {
name: "Mconv4_stage6_L1"
type: "Convolution"
bottom: "Mconv3_stage6_L1"
top: "Mconv4_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage6_L1"
type: "ReLU"
bottom: "Mconv4_stage6_L1"
top: "Mconv4_stage6_L1"
}
layer {
name: "Mconv4_stage6_L2"
type: "Convolution"
bottom: "Mconv3_stage6_L2"
top: "Mconv4_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage6_L2"
type: "ReLU"
bottom: "Mconv4_stage6_L2"
top: "Mconv4_stage6_L2"
}
layer {
name: "Mconv5_stage6_L1"
type: "Convolution"
bottom: "Mconv4_stage6_L1"
top: "Mconv5_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage6_L1"
type: "ReLU"
bottom: "Mconv5_stage6_L1"
top: "Mconv5_stage6_L1"
}
layer {
name: "Mconv5_stage6_L2"
type: "Convolution"
bottom: "Mconv4_stage6_L2"
top: "Mconv5_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage6_L2"
type: "ReLU"
bottom: "Mconv5_stage6_L2"
top: "Mconv5_stage6_L2"
}
layer {
name: "Mconv6_stage6_L1"
type: "Convolution"
bottom: "Mconv5_stage6_L1"
top: "Mconv6_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage6_L1"
type: "ReLU"
bottom: "Mconv6_stage6_L1"
top: "Mconv6_stage6_L1"
}
layer {
name: "Mconv6_stage6_L2"
type: "Convolution"
bottom: "Mconv5_stage6_L2"
top: "Mconv6_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage6_L2"
type: "ReLU"
bottom: "Mconv6_stage6_L2"
top: "Mconv6_stage6_L2"
}
layer {
name: "Mconv7_stage6_L1"
type: "Convolution"
bottom: "Mconv6_stage6_L1"
top: "Mconv7_stage6_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage6_L2"
type: "Convolution"
bottom: "Mconv6_stage6_L2"
top: "Mconv7_stage6_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage7"
type: "Concat"
bottom: "Mconv7_stage6_L2"
bottom: "Mconv7_stage6_L1"
top: "net_output"
concat_param {
axis: 1
}
}
input: "image"
input_dim: 1
input_dim: 3
input_dim: 1 # This value will be defined at runtime
input_dim: 1 # This value will be defined at runtime
layer {
name: "conv1_1"
type: "Convolution"
bottom: "image"
top: "conv1_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu1_1"
type: "ReLU"
bottom: "conv1_1"
top: "conv1_1"
}
layer {
name: "conv1_2"
type: "Convolution"
bottom: "conv1_1"
top: "conv1_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu1_2"
type: "ReLU"
bottom: "conv1_2"
top: "conv1_2"
}
layer {
name: "pool1_stage1"
type: "Pooling"
bottom: "conv1_2"
top: "pool1_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2_1"
type: "Convolution"
bottom: "pool1_stage1"
top: "conv2_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu2_1"
type: "ReLU"
bottom: "conv2_1"
top: "conv2_1"
}
layer {
name: "conv2_2"
type: "Convolution"
bottom: "conv2_1"
top: "conv2_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
}
layer {
name: "pool2_stage1"
type: "Pooling"
bottom: "conv2_2"
top: "pool2_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "pool2_stage1"
top: "conv3_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_1"
type: "ReLU"
bottom: "conv3_1"
top: "conv3_1"
}
layer {
name: "conv3_2"
type: "Convolution"
bottom: "conv3_1"
top: "conv3_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_2"
type: "ReLU"
bottom: "conv3_2"
top: "conv3_2"
}
layer {
name: "conv3_3"
type: "Convolution"
bottom: "conv3_2"
top: "conv3_3"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
}
layer {
name: "conv3_4"
type: "Convolution"
bottom: "conv3_3"
top: "conv3_4"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu3_4"
type: "ReLU"
bottom: "conv3_4"
top: "conv3_4"
}
layer {
name: "pool3_stage1"
type: "Pooling"
bottom: "conv3_4"
top: "pool3_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "pool3_stage1"
top: "conv4_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_1"
type: "ReLU"
bottom: "conv4_1"
top: "conv4_1"
}
layer {
name: "conv4_2"
type: "Convolution"
bottom: "conv4_1"
top: "conv4_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_2"
type: "ReLU"
bottom: "conv4_2"
top: "conv4_2"
}
layer {
name: "conv4_3_CPM"
type: "Convolution"
bottom: "conv4_2"
top: "conv4_3_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_3_CPM"
type: "ReLU"
bottom: "conv4_3_CPM"
top: "conv4_3_CPM"
}
layer {
name: "conv4_4_CPM"
type: "Convolution"
bottom: "conv4_3_CPM"
top: "conv4_4_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu4_4_CPM"
type: "ReLU"
bottom: "conv4_4_CPM"
top: "conv4_4_CPM"
}
layer {
name: "conv5_1_CPM_L1"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "conv5_1_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_1_CPM_L1"
type: "ReLU"
bottom: "conv5_1_CPM_L1"
top: "conv5_1_CPM_L1"
}
layer {
name: "conv5_1_CPM_L2"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "conv5_1_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_1_CPM_L2"
type: "ReLU"
bottom: "conv5_1_CPM_L2"
top: "conv5_1_CPM_L2"
}
layer {
name: "conv5_2_CPM_L1"
type: "Convolution"
bottom: "conv5_1_CPM_L1"
top: "conv5_2_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_2_CPM_L1"
type: "ReLU"
bottom: "conv5_2_CPM_L1"
top: "conv5_2_CPM_L1"
}
layer {
name: "conv5_2_CPM_L2"
type: "Convolution"
bottom: "conv5_1_CPM_L2"
top: "conv5_2_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_2_CPM_L2"
type: "ReLU"
bottom: "conv5_2_CPM_L2"
top: "conv5_2_CPM_L2"
}
layer {
name: "conv5_3_CPM_L1"
type: "Convolution"
bottom: "conv5_2_CPM_L1"
top: "conv5_3_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_3_CPM_L1"
type: "ReLU"
bottom: "conv5_3_CPM_L1"
top: "conv5_3_CPM_L1"
}
layer {
name: "conv5_3_CPM_L2"
type: "Convolution"
bottom: "conv5_2_CPM_L2"
top: "conv5_3_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_3_CPM_L2"
type: "ReLU"
bottom: "conv5_3_CPM_L2"
top: "conv5_3_CPM_L2"
}
layer {
name: "conv5_4_CPM_L1"
type: "Convolution"
bottom: "conv5_3_CPM_L1"
top: "conv5_4_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_4_CPM_L1"
type: "ReLU"
bottom: "conv5_4_CPM_L1"
top: "conv5_4_CPM_L1"
}
layer {
name: "conv5_4_CPM_L2"
type: "Convolution"
bottom: "conv5_3_CPM_L2"
top: "conv5_4_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu5_4_CPM_L2"
type: "ReLU"
bottom: "conv5_4_CPM_L2"
top: "conv5_4_CPM_L2"
}
layer {
name: "conv5_5_CPM_L1"
type: "Convolution"
bottom: "conv5_4_CPM_L1"
top: "conv5_5_CPM_L1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "conv5_5_CPM_L2"
type: "Convolution"
bottom: "conv5_4_CPM_L2"
top: "conv5_5_CPM_L2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage2"
type: "Concat"
bottom: "conv5_5_CPM_L1"
bottom: "conv5_5_CPM_L2"
bottom: "conv4_4_CPM"
top: "concat_stage2"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage2_L1"
type: "Convolution"
bottom: "concat_stage2"
top: "Mconv1_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage2_L1"
type: "ReLU"
bottom: "Mconv1_stage2_L1"
top: "Mconv1_stage2_L1"
}
layer {
name: "Mconv1_stage2_L2"
type: "Convolution"
bottom: "concat_stage2"
top: "Mconv1_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage2_L2"
type: "ReLU"
bottom: "Mconv1_stage2_L2"
top: "Mconv1_stage2_L2"
}
layer {
name: "Mconv2_stage2_L1"
type: "Convolution"
bottom: "Mconv1_stage2_L1"
top: "Mconv2_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage2_L1"
type: "ReLU"
bottom: "Mconv2_stage2_L1"
top: "Mconv2_stage2_L1"
}
layer {
name: "Mconv2_stage2_L2"
type: "Convolution"
bottom: "Mconv1_stage2_L2"
top: "Mconv2_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage2_L2"
type: "ReLU"
bottom: "Mconv2_stage2_L2"
top: "Mconv2_stage2_L2"
}
layer {
name: "Mconv3_stage2_L1"
type: "Convolution"
bottom: "Mconv2_stage2_L1"
top: "Mconv3_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage2_L1"
type: "ReLU"
bottom: "Mconv3_stage2_L1"
top: "Mconv3_stage2_L1"
}
layer {
name: "Mconv3_stage2_L2"
type: "Convolution"
bottom: "Mconv2_stage2_L2"
top: "Mconv3_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage2_L2"
type: "ReLU"
bottom: "Mconv3_stage2_L2"
top: "Mconv3_stage2_L2"
}
layer {
name: "Mconv4_stage2_L1"
type: "Convolution"
bottom: "Mconv3_stage2_L1"
top: "Mconv4_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage2_L1"
type: "ReLU"
bottom: "Mconv4_stage2_L1"
top: "Mconv4_stage2_L1"
}
layer {
name: "Mconv4_stage2_L2"
type: "Convolution"
bottom: "Mconv3_stage2_L2"
top: "Mconv4_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage2_L2"
type: "ReLU"
bottom: "Mconv4_stage2_L2"
top: "Mconv4_stage2_L2"
}
layer {
name: "Mconv5_stage2_L1"
type: "Convolution"
bottom: "Mconv4_stage2_L1"
top: "Mconv5_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage2_L1"
type: "ReLU"
bottom: "Mconv5_stage2_L1"
top: "Mconv5_stage2_L1"
}
layer {
name: "Mconv5_stage2_L2"
type: "Convolution"
bottom: "Mconv4_stage2_L2"
top: "Mconv5_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage2_L2"
type: "ReLU"
bottom: "Mconv5_stage2_L2"
top: "Mconv5_stage2_L2"
}
layer {
name: "Mconv6_stage2_L1"
type: "Convolution"
bottom: "Mconv5_stage2_L1"
top: "Mconv6_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage2_L1"
type: "ReLU"
bottom: "Mconv6_stage2_L1"
top: "Mconv6_stage2_L1"
}
layer {
name: "Mconv6_stage2_L2"
type: "Convolution"
bottom: "Mconv5_stage2_L2"
top: "Mconv6_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage2_L2"
type: "ReLU"
bottom: "Mconv6_stage2_L2"
top: "Mconv6_stage2_L2"
}
layer {
name: "Mconv7_stage2_L1"
type: "Convolution"
bottom: "Mconv6_stage2_L1"
top: "Mconv7_stage2_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage2_L2"
type: "Convolution"
bottom: "Mconv6_stage2_L2"
top: "Mconv7_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage3"
type: "Concat"
bottom: "Mconv7_stage2_L1"
bottom: "Mconv7_stage2_L2"
bottom: "conv4_4_CPM"
top: "concat_stage3"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage3_L1"
type: "Convolution"
bottom: "concat_stage3"
top: "Mconv1_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage3_L1"
type: "ReLU"
bottom: "Mconv1_stage3_L1"
top: "Mconv1_stage3_L1"
}
layer {
name: "Mconv1_stage3_L2"
type: "Convolution"
bottom: "concat_stage3"
top: "Mconv1_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage3_L2"
type: "ReLU"
bottom: "Mconv1_stage3_L2"
top: "Mconv1_stage3_L2"
}
layer {
name: "Mconv2_stage3_L1"
type: "Convolution"
bottom: "Mconv1_stage3_L1"
top: "Mconv2_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage3_L1"
type: "ReLU"
bottom: "Mconv2_stage3_L1"
top: "Mconv2_stage3_L1"
}
layer {
name: "Mconv2_stage3_L2"
type: "Convolution"
bottom: "Mconv1_stage3_L2"
top: "Mconv2_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage3_L2"
type: "ReLU"
bottom: "Mconv2_stage3_L2"
top: "Mconv2_stage3_L2"
}
layer {
name: "Mconv3_stage3_L1"
type: "Convolution"
bottom: "Mconv2_stage3_L1"
top: "Mconv3_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage3_L1"
type: "ReLU"
bottom: "Mconv3_stage3_L1"
top: "Mconv3_stage3_L1"
}
layer {
name: "Mconv3_stage3_L2"
type: "Convolution"
bottom: "Mconv2_stage3_L2"
top: "Mconv3_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage3_L2"
type: "ReLU"
bottom: "Mconv3_stage3_L2"
top: "Mconv3_stage3_L2"
}
layer {
name: "Mconv4_stage3_L1"
type: "Convolution"
bottom: "Mconv3_stage3_L1"
top: "Mconv4_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage3_L1"
type: "ReLU"
bottom: "Mconv4_stage3_L1"
top: "Mconv4_stage3_L1"
}
layer {
name: "Mconv4_stage3_L2"
type: "Convolution"
bottom: "Mconv3_stage3_L2"
top: "Mconv4_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage3_L2"
type: "ReLU"
bottom: "Mconv4_stage3_L2"
top: "Mconv4_stage3_L2"
}
layer {
name: "Mconv5_stage3_L1"
type: "Convolution"
bottom: "Mconv4_stage3_L1"
top: "Mconv5_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage3_L1"
type: "ReLU"
bottom: "Mconv5_stage3_L1"
top: "Mconv5_stage3_L1"
}
layer {
name: "Mconv5_stage3_L2"
type: "Convolution"
bottom: "Mconv4_stage3_L2"
top: "Mconv5_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage3_L2"
type: "ReLU"
bottom: "Mconv5_stage3_L2"
top: "Mconv5_stage3_L2"
}
layer {
name: "Mconv6_stage3_L1"
type: "Convolution"
bottom: "Mconv5_stage3_L1"
top: "Mconv6_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage3_L1"
type: "ReLU"
bottom: "Mconv6_stage3_L1"
top: "Mconv6_stage3_L1"
}
layer {
name: "Mconv6_stage3_L2"
type: "Convolution"
bottom: "Mconv5_stage3_L2"
top: "Mconv6_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage3_L2"
type: "ReLU"
bottom: "Mconv6_stage3_L2"
top: "Mconv6_stage3_L2"
}
layer {
name: "Mconv7_stage3_L1"
type: "Convolution"
bottom: "Mconv6_stage3_L1"
top: "Mconv7_stage3_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage3_L2"
type: "Convolution"
bottom: "Mconv6_stage3_L2"
top: "Mconv7_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage4"
type: "Concat"
bottom: "Mconv7_stage3_L1"
bottom: "Mconv7_stage3_L2"
bottom: "conv4_4_CPM"
top: "concat_stage4"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage4_L1"
type: "Convolution"
bottom: "concat_stage4"
top: "Mconv1_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage4_L1"
type: "ReLU"
bottom: "Mconv1_stage4_L1"
top: "Mconv1_stage4_L1"
}
layer {
name: "Mconv1_stage4_L2"
type: "Convolution"
bottom: "concat_stage4"
top: "Mconv1_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu1_stage4_L2"
type: "ReLU"
bottom: "Mconv1_stage4_L2"
top: "Mconv1_stage4_L2"
}
layer {
name: "Mconv2_stage4_L1"
type: "Convolution"
bottom: "Mconv1_stage4_L1"
top: "Mconv2_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage4_L1"
type: "ReLU"
bottom: "Mconv2_stage4_L1"
top: "Mconv2_stage4_L1"
}
layer {
name: "Mconv2_stage4_L2"
type: "Convolution"
bottom: "Mconv1_stage4_L2"
top: "Mconv2_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu2_stage4_L2"
type: "ReLU"
bottom: "Mconv2_stage4_L2"
top: "Mconv2_stage4_L2"
}
layer {
name: "Mconv3_stage4_L1"
type: "Convolution"
bottom: "Mconv2_stage4_L1"
top: "Mconv3_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage4_L1"
type: "ReLU"
bottom: "Mconv3_stage4_L1"
top: "Mconv3_stage4_L1"
}
layer {
name: "Mconv3_stage4_L2"
type: "Convolution"
bottom: "Mconv2_stage4_L2"
top: "Mconv3_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu3_stage4_L2"
type: "ReLU"
bottom: "Mconv3_stage4_L2"
top: "Mconv3_stage4_L2"
}
layer {
name: "Mconv4_stage4_L1"
type: "Convolution"
bottom: "Mconv3_stage4_L1"
top: "Mconv4_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage4_L1"
type: "ReLU"
bottom: "Mconv4_stage4_L1"
top: "Mconv4_stage4_L1"
}
layer {
name: "Mconv4_stage4_L2"
type: "Convolution"
bottom: "Mconv3_stage4_L2"
top: "Mconv4_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu4_stage4_L2"
type: "ReLU"
bottom: "Mconv4_stage4_L2"
top: "Mconv4_stage4_L2"
}
layer {
name: "Mconv5_stage4_L1"
type: "Convolution"
bottom: "Mconv4_stage4_L1"
top: "Mconv5_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage4_L1"
type: "ReLU"
bottom: "Mconv5_stage4_L1"
top: "Mconv5_stage4_L1"
}
layer {
name: "Mconv5_stage4_L2"
type: "Convolution"
bottom: "Mconv4_stage4_L2"
top: "Mconv5_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 3
kernel_size: 7
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu5_stage4_L2"
type: "ReLU"
bottom: "Mconv5_stage4_L2"
top: "Mconv5_stage4_L2"
}
layer {
name: "Mconv6_stage4_L1"
type: "Convolution"
bottom: "Mconv5_stage4_L1"
top: "Mconv6_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage4_L1"
type: "ReLU"
bottom: "Mconv6_stage4_L1"
top: "Mconv6_stage4_L1"
}
layer {
name: "Mconv6_stage4_L2"
type: "Convolution"
bottom: "Mconv5_stage4_L2"
top: "Mconv6_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mrelu6_stage4_L2"
type: "ReLU"
bottom: "Mconv6_stage4_L2"
top: "Mconv6_stage4_L2"
}
layer {
name: "Mconv7_stage4_L1"
type: "Convolution"
bottom: "Mconv6_stage4_L1"
top: "Mconv7_stage4_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 28
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "Mconv7_stage4_L2"
type: "Convolution"
bottom: "Mconv6_stage4_L2"
top: "Mconv7_stage4_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "concat_stage7"
type: "Concat"
bottom: "Mconv7_stage4_L2"
bottom: "Mconv7_stage4_L1"
top: "net_output"
concat_param {
axis: 1
}
}
File added
File added
single.jpeg

99.7 KB

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment