c++编写神经网络(二)MTCNN的程序主程序

背景:我们得出了MTCNN的内存调用,内存调用是开辟了一系列的存储空间。

目的:固定相应的存储的大小,编写主程序。

目录

一、MTCNN内存占用表

1.1 权重尺寸

6.2 feature大小

二、程序思路


一、MTCNN内存占用表

1.1 权重尺寸

Pnet

weight

layer name weight data byte weight bias byte total byte
conv1 1080 40 1120
pool1_conv1 5760 64 5824
conv2 18432 128 18560
conv3 36864 128 36992
conv4c1 256 8 264
conv4c2 512 16 528

Rnet

weight

layer name weight data byte weight bias byte total byte
conv1 3024 112 3136
pool_conv1 28224 112 28336
conv2 48384 192 48576
pool2_conv3 82944 192 83136
conv3 110592 256 110848
fc4 294912 512 295424
score 1024 8 1032
location 2048 16 2064

Onet

weight

layer name weight data byte weight bias byte total byte
conv1 3456 128 3584
conv2 36864 128 36992
conv3 73728 256 73984
conv4_ 147456 256 147712
conv5_ 294912 512 295424
conv6_ 589824 512 590336
fc5 1179648 1024 1180672
score 2048 8 2056
location 4096 16 4112

6.2 feature大小

Rnet

feature

feature name bytesize
rgb 6912
rgb_pad 8112
conv1_out 64512
conv1_out_pad 70000
pool_conv1_out 16128
pool_conv1_out_pad 21952
conv2_out 27648
conv2_out_pad 32448
pool2_conv3_out 6912
pool2_conv3_out_pad 9408
conv3_out 2304
fc4_out 512
score_ 8
location_ 16

 

Onet

feature

feature name bytesize
rgb 27648
rgb_pad 30000
conv1_out 294912
conv1_out_pad 307328
conv2_out 73728
conv2_out_pad 86528
conv3_out 147456
conv3_out_pad 160000
conv4_out 36864
conv4_out_pad 43264
conv5_out 18432
conv5_out_pad 25088
conv6_out 4608
fc5_out 1024
score_ 8
location_ 16
//scales 0.400000  h:116  w:142
//scales 0.340000  h:98  w:120
//scales 0.289000  h:84  w:102
//scales 0.245650  h:72  w:88
//scales 0.208803  h:62  w:74
//scales 0.177482  h:52  w:64
//scales 0.150860  h:44  w:54
//scales 0.128231  h:38  w:46
//scales 0.108996  h:32  w:40
//scales 0.092647  h:28  w:34
//scales 0.078750  h:24  w:28
//scales 0.066937  h:20  w:24
//scales 0.056897  h:18  w:22
//scales 0.048362  h:14  w:18
Create Pnet,Read Pnet.bin ,12 pointers
------Start find Face function
scales 0.400000  h:116  w:142
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 197664 ----------------
--------convolution buffer byte size 638400 -------
--------Feature pad buffer byte size 648600 -------
--------convolution buffer byte size 255360 -------
--------convolution buffer byte size 478720 -------
--------convolution buffer byte size 447744 -------
--------convolution buffer byte size 27984 -------
--------convolution buffer byte size 55968 -------
scales 0.340000  h:98  w:120
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 141120 ----------------
--------convolution buffer byte size 453120 -------
--------Feature pad buffer byte size 461720 -------
--------convolution buffer byte size 181248 -------
--------convolution buffer byte size 335616 -------
--------convolution buffer byte size 309760 -------
--------convolution buffer byte size 19360 -------
--------convolution buffer byte size 38720 -------
scales 0.289000  h:84  w:102
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 102816 ----------------
--------convolution buffer byte size 328000 -------
--------Feature pad buffer byte size 335320 -------
--------convolution buffer byte size 131200 -------
--------convolution buffer byte size 239616 -------
--------convolution buffer byte size 217856 -------
--------convolution buffer byte size 13616 -------
--------convolution buffer byte size 27232 -------
scales 0.245650  h:72  w:88
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 76032 ----------------
--------convolution buffer byte size 240800 -------
--------Feature pad buffer byte size 247080 -------
--------convolution buffer byte size 96320 -------
--------convolution buffer byte size 173184 -------
--------convolution buffer byte size 154752 -------
--------convolution buffer byte size 9672 -------
--------convolution buffer byte size 19344 -------
scales 0.208803  h:62  w:74
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 55056 ----------------
--------convolution buffer byte size 172800 -------
--------Feature pad buffer byte size 178120 -------
--------convolution buffer byte size 69120 -------
--------convolution buffer byte size 121856 -------
--------convolution buffer byte size 106496 -------
--------convolution buffer byte size 6656 -------
--------convolution buffer byte size 13312 -------
scales 0.177482  h:52  w:64
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 39936 ----------------
--------convolution buffer byte size 124000 -------
--------Feature pad buffer byte size 128520 -------
--------convolution buffer byte size 49600 -------
--------convolution buffer byte size 85376 -------
--------convolution buffer byte size 72576 -------
--------convolution buffer byte size 4536 -------
--------convolution buffer byte size 9072 -------
scales 0.150860  h:44  w:54
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 28512 ----------------
--------convolution buffer byte size 87360 -------
--------Feature pad buffer byte size 91160 -------
--------convolution buffer byte size 34944 -------
--------convolution buffer byte size 58368 -------
--------convolution buffer byte size 47872 -------
--------convolution buffer byte size 2992 -------
--------convolution buffer byte size 5984 -------
scales 0.128231  h:38  w:46
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 20976 ----------------
--------convolution buffer byte size 63360 -------
--------Feature pad buffer byte size 66600 -------
--------convolution buffer byte size 25344 -------
--------convolution buffer byte size 40960 -------
--------convolution buffer byte size 32256 -------
--------convolution buffer byte size 2016 -------
--------convolution buffer byte size 4032 -------
scales 0.108996  h:32  w:40
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 15360 ----------------
--------convolution buffer byte size 45600 -------
--------Feature pad buffer byte size 48360 -------
--------convolution buffer byte size 18240 -------
--------convolution buffer byte size 28288 -------
--------convolution buffer byte size 21120 -------
--------convolution buffer byte size 1320 -------
--------convolution buffer byte size 2640 -------
scales 0.092647  h:28  w:34
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 11424 ----------------
--------convolution buffer byte size 33280 -------
--------Feature pad buffer byte size 35640 -------
--------convolution buffer byte size 13312 -------
--------convolution buffer byte size 19712 -------
--------convolution buffer byte size 13824 -------
--------convolution buffer byte size 864 -------
--------convolution buffer byte size 1728 -------
scales 0.078750  h:24  w:28
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 8064 ----------------
--------convolution buffer byte size 22880 -------
--------Feature pad buffer byte size 24840 -------
--------convolution buffer byte size 9152 -------
--------convolution buffer byte size 12672 -------
--------convolution buffer byte size 8064 -------
--------convolution buffer byte size 504 -------
--------convolution buffer byte size 1008 -------
scales 0.066937  h:20  w:24
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 5760 ----------------
--------convolution buffer byte size 15840 -------
--------Feature pad buffer byte size 17480 -------
--------convolution buffer byte size 6336 -------
--------convolution buffer byte size 8064 -------
--------convolution buffer byte size 4480 -------
--------convolution buffer byte size 280 -------
--------convolution buffer byte size 560 -------
scales 0.056897  h:18  w:22
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 4752 ----------------
--------convolution buffer byte size 12800 -------
--------Feature pad buffer byte size 14280 -------
--------convolution buffer byte size 5120 -------
--------convolution buffer byte size 6144 -------
--------convolution buffer byte size 3072 -------
--------convolution buffer byte size 192 -------
--------convolution buffer byte size 384 -------
scales 0.048362  h:14  w:18
Start run Pnet
Pnet feature buffer init
----------image to matrix buffer byte size 3024 ----------------
--------convolution buffer byte size 7680 -------
--------Feature pad buffer byte size 8840 -------
--------convolution buffer byte size 3072 -------
--------convolution buffer byte size 3072 -------
--------convolution buffer byte size 1024 -------
--------convolution buffer byte size 64 -------
--------convolution buffer byte size 128 -------

二、程序思路

  • 开辟网络,存入权重,Pnet,Rnet,Onet
  • 开辟Rnet,Onet,Pnet的存储空间,其中Pnet的feaute以最大的实现
  • 读入图片,存入feature
  • 运行程序,直接根据指针来运行

你可能感兴趣的:(机器学习,目标检测,c/c++)