目的:读懂MTCNN的c程序相关代码。(此篇无用)
参考:代码地址https://github.com/dlunion/mtcnn
此代码仅作参考,后续项目中运用的其他版本的MTCNN-light版的代码。https://github.com/AlphaQi/MTCNN-light
该代码与后续代码类似。
目录
函数 vector mtcnn::detectObject ( Mat & image)
函数 void Pnet::run(Mat &image, float scale)
函数 void Rnet::run(Mat &image, float scale)
函数 void Onet::run(Mat &image, float scale)
整体描述
定义四个namespace: mtcnn,Pnet,Rnet,Onet
每个namespace中的函数分别是四种网络的定义,内存释放,运行
namespace中的变量主要存储该网络需要存储的参数和变量。
函数mtcnn::mtcnn()
描述:用于定义Pnet网络结构及开辟相应网络空间。
调用的子函数:
Pnet::Pnet()
Rnet::Rnet()
Onet::Onet()
函数 mtcnn::~mtcnn()
描述:用于释放mtcnn所占用的网络空间。
调用的子函数:
Pnet::~Pnet()
Rnet::~Rnet()
Onet::~Onet()
函数 vector<Rect> mtcnn::detectObject ( Mat & image)
描述:该函数运用mtcnn对输入的图像进行目标的检测。
输入参数:
Mat &image 输入的图像
输出参数:
return objs
类型:vector<Rect>,即长方体的向量组,每个包含了备选框的相关信息。
调用的子函数:
void Pnet::run(Mat &image, float scale)
void Rnet::run(Mat &image, float scale)
void Onet::run(Mat &image, float scale)
函数 Pnet::Pnet()
描述:用于定义Pnet网络结构及开辟相应网络空间。
函数 Pnet::~Pnet()
描述:用于释放Pnet占用的内存空间。
函数 void Pnet::run(Mat &image, float scale)
描述:用于运行Pnet并且根据输入的图像生成相应的候选框
输入参数:
Mat &image 输入的图像
float scale 输入图像的大小
输出参数:
this->score_
类型:Pnet namespace之中的参数 struct pBox *
作用:输出的备选框的宽,高
this->location_
类型:Pnet namespace之中的参数 struct pBox *
作用:输出备选框在图像中的位置
函数 Rnet::Rnet()
描述:用于定义Rnet网络结构及开辟相应网络空间。
函数 Rnet::~Rnet()
描述:用于释放Rnet占用的内存空间。
函数 void Rnet::run(Mat &image, float scale)
描述:用于运行Rnet并且根据输入的图像生成相应的候选框
输入参数:
Mat &image 输入的图像
float scale 输入图像的大小
输出参数:
this->score_
类型:Rnet namespace之中的参数 struct pBox *
作用:输出的备选框的宽,高
this->location_
类型:Rnet namespace之中的参数 struct pBox *
作用:输出备选框在图像中的位置
函数 Onet:: Onet ()
描述:用于定义Onet网络结构及开辟相应网络空间。
函数 Onet::~ Onet ()
描述:用于释放Onet占用的内存空间。
函数 void Onet::run(Mat &image, float scale)
描述:用于运行Onet并且根据输入的图像生成相应的候选框
输入参数:
Mat &image 输入的图像
float scale 输入图像的大小
输出参数:
this->score_
类型:Onet namespace之中的参数 struct pBox *
作用:输出的备选框的宽,高
this->location_
类型:Onet namespace之中的参数 struct pBox *
作用:输出备选框在图像中的位置