项目开发中如何写说明文档

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎交流,QQ:896922782,微信:15058133936 https://blog.csdn.net/zhubenfulovepoem/article/details/78595614

第一节 总流程
一、(原理介绍)
XXXXXXXXXXXXXXXXXX
二、(总的流程图)

第二节:主接口1
一、(原理介绍)
XXXXXXXXXXXXXXXXXXXXXXXXX
二、(总的流程图)

例子:
流程图
这里写图片描述

步骤描述:步骤描述需要一定的逻辑性。但不一定是纯文字形式,可以用公式,便于理解的伪代码+文字等方式进行步骤描述
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

三、分模块介绍
1、逻辑模块一:
1.1 代码
1.2 流程图
1.3 详细说明

例子:
1、 三个框相交,则去掉中间的
这里写图片描述
这里写图片描述

1.  if(detectResult.size() > 1)  
2.      for(int i=1;i<detectResult.size()-1;i++){  
3.          if (((detectResult[i].x + detectResult[i].width + 2) >= detectResult[i + 1].x) &&  
4.              (detectResult[i].x <= (detectResult[i - 1].x + detectResult[i - 1].width - 2))){  
5.          }  
6.          if (((detectResult[i].x + detectResult[i].width + 2) >= detectResult[i + 1].x) &&  
7.              (detectResult[i].x <= (detectResult[i - 1].x + detectResult[i - 1].width - 2))  
8.              && ((detectResult[i + 1].x - detectResult[i - 1].x - detectResult[i - 1].width) < (0.7*(ROIWIDTH + avg_distance_of_chars)))){  
9.              detectResult.erase(detectResult.begin() + i);  
10.             i--;  
11.         }                     
12.     }

2、接口模块:
2.1 代码
2.2 功能描述
2.3 接口描述
2.4 核心原理

例子1:
以cifar-10为例说明,具体的运算过程,对应代码:
这里写图片描述
1、卷积:
1.

inline void Conv(const int *restrict pSrc, int *restrict pDst, const int *restrict pKer, const int input_w, const int input_h, int k_size, int stride)  
2.  {  
3.      int   y, i, j, k;  
4.      int tSum;  
5.      const int *pSS = pSrc;  
6.    
7.    
8.      for (y = 0; y< (input_h + stride - 1) - k_size + 1; y += stride, pSS += (stride*input_w))  
9.      {  
10.         for (i = 0; i<(input_w + stride - 1) - k_size + 1; i += stride)  
11.         {  
12.             tSum = 0;  
13.             for (j = 0; j<k_size; j++)  
14.             {  
15.                 for (k = 0; k<k_size; k++)  
16.                 {  
17.                     tSum += pSS[j * input_w + i + k] * pKer[j * k_size + k];                      
18.                 }  
19.             }  
20.   
21.             *pDst++ = tSum;   
22.         }  
23.     }  
24. }  

1.1 功能描述
宽为input_w、高为input_h的输入图像pSrc,与k_size x k_size的卷积核pKer进行卷积,得到宽为input_w、高为input_h特征图pDst。

1.2 接口描述
这里写图片描述

名称  In/out/Par  Size/precision  Description/value
pSrc    in  input_w* input_h    输入图像
pDst    out input_w* input_h    输出图像
pKer    in  k_size * k_size 卷积核
input_w parameter   int 输入图像宽
input_h parameter   int 输入图像高
k_size  parameter   int 卷积核宽,一般为奇数
stride  parameter   int 卷积核在图像上上下左右滑动的平移像素幅度

1.3 核心原理(以cifar-10为例进行说明):
(1)输入是3个32*32, 共3*1024=3072。每条边padding为2,则内存里实际为3个36*36.
(2)卷积核个数是3维的5*5分别与3个输入进行卷积运算,得到3维的32*32的输出,这里将3维的32*32对应位相加得到一张32*32的feature Map
(3)输出:如果有64个3维的5*5卷积核就有64张feature Map
具体过程图示为:
这里写图片描述
卷积的权值读取方式为:
(1)第1个5*5作用于第一张输入全图,
(2)第2个5*5作用于第二张输入全图,
(3)第3个5*5作用于第三张输入全图,
(4)再把这三个对应位置相加,在加上biases,得到第一张feature map
(5)最后64个5*5*3重复上面的过程,得到64个featuremap
(6)这里weights有3*5*5*64个,biases有64个.
这里输入是3 个图像,输出是64个特征图,卷积核是5*5权值个数是64* 5*5*3

例子2:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhubenfulovepoem/article/details/78595614