当前位置: 首页 > news >正文

外包装设计网站wordpress如何添加模板文件夹

外包装设计网站,wordpress如何添加模板文件夹,黔东南小程序开发公司,宣传视频制作app免费文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 #x1f525; 优质竞赛项目系列#xff0c;今天要分享的是 #x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖#xff0c;适合作为竞赛课题方向#xff0c;学… 文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 优质竞赛项目系列今天要分享的是 基于深度学习的数学公式识别算法实现 该项目较为新颖适合作为竞赛课题方向学长非常推荐 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量4分创新点4分 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 课题说明 手写数学公式识别较传统OCR问题而言是一个更复杂的二维手写识别问题其内部复杂的二维空间结构使得其很难被解析传统方法的识别效果不佳。随着深度学习在各领域的成功应用基于深度学习的端到端离线数学公式算法并在公开数据集上较传统方法获得了显著提升开辟了全新的数学公式识别框架。然而在线手写数学公式识别框架还未被提出论文TAP则是首个基于深度学习的端到端在线手写数学公式识别模型且针对数学公式识别的任务特性提出了多种优化。 公式识别是OCR领域一个非常有挑战性的工作工作的难点在于它是一个二维的数据因此无法用传统的CRNN进行识别。 2 效果展示 这里简单的展示一下效果 3 具体实现 神经网络模型是 Seq2Seq Attention Beam Search。Seq2Seq的Encoder是CNNDecoder是LSTM。Encoder和Decoder之间插入Attention层具体操作是这样Encoder到Decoder有个扁平化的过程Attention就是在这里插入的。具体模型的可视化结果如下 4 关键代码实现 ​ class Encoder(object):Class with a __call__ method that applies convolutions to an imagedef __init__(self, config):self._config configdef __call__(self, img, dropout):Applies convolutions to the imageArgs:img: batch of img, shape (?, height, width, channels), of type tf.uint8tf.uint8 因为 2^8 256所以元素值区间 [0, 255]线性压缩到 [-1, 1] 上就是 img (img - 128) / 128Returns:the encoded images, shape (?, h, w, c)with tf.variable_scope(Encoder):img tf.cast(img, tf.float32) - 128.img img / 128.with tf.variable_scope(convolutional_encoder):# conv max pool - /2# 64 个 3*3 filters, strike (1, 1), output_img.shape ceil(L/S) ceil(input/strike) (H, W)out tf.layers.conv2d(img, 64, 3, 1, SAME, activationtf.nn.relu)image_summary(out_1_layer, out)out tf.layers.max_pooling2d(out, 2, 2, SAME)# conv max pool - /2out tf.layers.conv2d(out, 128, 3, 1, SAME, activationtf.nn.relu)image_summary(out_2_layer, out)out tf.layers.max_pooling2d(out, 2, 2, SAME)# regular conv - idout tf.layers.conv2d(out, 256, 3, 1, SAME, activationtf.nn.relu)image_summary(out_3_layer, out)out tf.layers.conv2d(out, 256, 3, 1, SAME, activationtf.nn.relu)image_summary(out_4_layer, out)if self._config.encoder_cnn vanilla:out tf.layers.max_pooling2d(out, (2, 1), (2, 1), SAME)out tf.layers.conv2d(out, 512, 3, 1, SAME, activationtf.nn.relu)image_summary(out_5_layer, out)if self._config.encoder_cnn vanilla:out tf.layers.max_pooling2d(out, (1, 2), (1, 2), SAME)if self._config.encoder_cnn cnn:# conv with stride /2 (replaces the 2 max pool)out tf.layers.conv2d(out, 512, (2, 4), 2, SAME)# convout tf.layers.conv2d(out, 512, 3, 1, VALID, activationtf.nn.relu)image_summary(out_6_layer, out)if self._config.positional_embeddings:# from tensor2tensor lib - positional embeddings# 嵌入位置信息positional# 后面将会有一个 flatten 的过程会丢失掉位置信息所以现在必须把位置信息嵌入# 嵌入的方法有很多比如加乘缩放等等这里用 tensor2tensor 的实现out add_timing_signal_nd(out)image_summary(out_7_layer, out)return out 学长编码的部分采用的是传统的卷积神经网络该网络主要有6层组成最终得到[N x H x W x C ]大小的特征。 其中N表示数据的batch数W、H表示输出的大小这里WH是不固定的从数据集的输入来看我们的输入为固定的buckets具体如何解决得到不同解码维度的问题稍后再讲 C为输入的通道数这里最后得到的通道数为512。 当我们得到特征图之后我们需要进行reshape操作对特征图进行扁平化代码具体操作如下 ​ N tf.shape(img)[0] H, W tf.shape(img)[1], tf.shape(img)[2] # image C img.shape[3].value # channels self._img tf.reshape(img, shape[N, H*W, C])当我们在进行解码的时候我们可以直接运用seq2seq来得到我们想要的结果这个结果可能无法达到我们的预期。因为这个过程会相应的丢失一些位置信息。 位置信息嵌入Positional Embeddings 通过位置信息的嵌入我不需要增加额外的参数的情况下通过计算512维的向量来表示该图片的位置信息。具体计算公式如下 其中p为位置信息f为频率参数。从上式可得图像中的像素的相对位置信息可由sin()或cos表示。 我们知道sin(ab)或cos(ab)可由cos(a)、sin(a)、cos(b)以及sin(b)等表示。也就是说sin(ab)或cos(ab)与cos(a)、sin(a)、cos(b)以及sin(b)线性相关这也可以看作用像素的相对位置正、余弦信息来等效计算相对位置的信息的嵌入。 这个计算过程在tensor2tensor库中已经实现下面我们看看代码是怎么进行位置信息嵌入。代码实现位于/model/components/positional.py。 ​ def add_timing_signal_nd(x, min_timescale1.0, max_timescale1.0e4):static_shape x.get_shape().as_list() # [20, 14, 14, 512]num_dims len(static_shape) - 2 # 2channels tf.shape(x)[-1] # 512num_timescales channels // (num_dims * 2) # 512 // (2*2) 128log_timescale_increment (math.log(float(max_timescale) / float(min_timescale)) /(tf.to_float(num_timescales) - 1)) # -0.1 / 127inv_timescales min_timescale * tf.exp(tf.to_float(tf.range(num_timescales)) * -log_timescale_increment) # len 128 计算128个维度方向的频率信息for dim in range(num_dims): # dim 0; 1length tf.shape(x)[dim 1] # 14 获取特征图宽/高position tf.to_float(tf.range(length)) # len 14 计算x或y方向的位置信息[0,1,2...,13]scaled_time tf.expand_dims(position, 1) * tf.expand_dims(inv_timescales, 0) # pos [14, 1], inv [1, 128], scaled_time [14, 128] 计算频率信息与位置信息的乘积signal tf.concat([tf.sin(scaled_time), tf.cos(scaled_time)], axis1) # [14, 256] 合并两个方向的位置信息向量prepad dim * 2 * num_timescales # 0; 256postpad channels - (dim 1) * 2 * num_timescales # 512-(1;2)*2*128 256; 0signal tf.pad(signal, [[0, 0], [prepad, postpad]]) # [14, 512] 分别在矩阵的上下左右填充0for _ in range(1 dim): # 1; 2signal tf.expand_dims(signal, 0)for _ in range(num_dims - 1 - dim): # 1, 0signal tf.expand_dims(signal, -2)x signal # [1, 14, 1, 512]; [1, 1, 14, 512]return x得到公式图片xy方向的位置信息后只需要要将其添加到原始特征图像上即可。 5 算法综合效果 6 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://www.huolong8.cn/news/85520/

相关文章:

  • 招生型网站建设有没有免费的crm系统
  • e通网网站建设wordpress nikkon
  • iis如何添加网站广州网站定制多少钱
  • 如何做一个门户网站seo营销技巧
  • 企炬网站网站如何查看降权原因
  • 网站备案过期中国乐清网
  • 安徽教育平台网站建设首钢建设工资网站
  • 北京专业网站营销网红营销李佳琦案例分析
  • 经销商城建站怎样用编程语言做网站
  • 做网站如何计算工资wordpress png 压缩
  • 团队介绍网站模板长沙多地发布最新通告
  • 济南长清网站建设建站平台加盟
  • 免费建站的方法流程wordpress+三主题
  • 有哪些做淘宝素材的网站有哪些获取网站缩略图的asp代码
  • 手机网站asp免费商标设计软件
  • 检测asp网站死循环有没有如何做网站的书
  • 用vs做网站如何连接数据库手机网站发号系统源码
  • 宽屏网站设计网站宽屏图片怎么做
  • 深网网络网站网络组建与安全通知
  • 贵州省建设厅公示网站源码网站模板
  • 做调查赚钱的网站有哪些网上购物平台口碑排名
  • 网站建设课程教学计划网站维护 网站建设属于什么
  • 佛山的网站建设如何写网站开发需求文档
  • 山西建设部网站查询wordpress 3.8 侧边栏 仪表盘
  • 湘潭网站建设 诚信磐石网络淘宝指数网站
  • 网站群建设招标学中文网站
  • 智慧团建网站链接国外seo网站
  • 网站如何绑定虚拟主机佛山找人做网站
  • 网站建设与管理 自考小程序搭建平台免费
  • 深圳建设网站排名设计一个网站页面需要多少钱