Vision - 理解 Character Region Awareness for Text Detection (CRAFT) 文本检测算法

本文深入探讨CRAFT网络结构,包括其不同尺度的特征图和逐步上采样过程,以及在ICDAR2015数据集上的训练数据处理,如无效数据处理和置信度计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/118522515

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


CRAFT

Character Region Awareness for Text Detection (CRAFT),文本检测算法,通过每个字符区域,以及字符之间的亲和力,检测文本区域。CRAFT 算法的核心,在于处理任意形状的文本,包括弯曲、长形或变形的文字。基于 VGG16 的全卷积神经网络模型,计算区域分数和亲和力分数,其中区域分数用于定位单个字符,而亲和力分数则用于将单个字符组合成文本区域。提高对于复杂自然场景下,文本检测的灵活性和准确性,而且还能适应不同尺度的文本,从大型广告牌到小型标签都能有效识别。CRAFT 算法的实现简单,通过在二值化后的字符区域和亲和力分数图上,找到最小边界矩形来获得文本的边界框。

本文主要分析 CRAFT 最重要的网络结构和训练数据。

<think>好的,我现在需要回答用户关于Tomcat 9.0 Connector配置的问题。用户提供了几个配置参数,如relaxedPathChars、relaxedQueryChars、useBodyEncodingForURI和URIEncoding,并希望确认给定的配置代码是否适用于Tomcat 9.0,同时需要示例和兼容性说明。 首先,我要回忆Tomcat 9的文档。Tomcat 9的Connector配置在server.xml中,通常使用HTTP/1.1或APR协议。用户给出的示例配置中使用了Http11AprProtocol,这需要APR库支持,而Tomcat 9确实支持这个协议,但需要正确安装APR库,否则可能无法启动。 接下来看用户提供的配置代码,里面有几个参数需要检查。比如executor="tomcatThreadPool",这在Tomcat 9中是合法的,前提是定义了该Executor。port、protocol等属性都是基础配置,没有问题。然后检查用户提到的特定参数: 1. relaxedPathChars和relaxedQueryChars:这两个参数在Tomcat 7.0.73之后引入,用于放宽URL中对路径和查询字符的校验。Tomcat 9继续支持这些参数,允许用户指定哪些字符不被转义,例如允许一些特殊字符如^、`等,这在处理非标准URL时有用。需要确认用户是否需要这些字符,否则默认设置即可。 2. useBodyEncodingForURI:这个参数在Tomcat中用于指定是否使用请求体的编码来处理URI查询参数,默认为false。当设置为true时,会覆盖URIEncoding的设置。Tomcat 9支持此参数,但需要注意如果同时设置URIEncoding和useBodyEncodingForURI=true,后者可能覆盖前者,需要根据文档说明正确配置。 3. URIEncoding:这个参数设置URI查询参数的解码字符集,默认是ISO-8859-1。用户示例中设置为UTF-8,这在Tomcat 9中是有效的,可以正确处理UTF-8编码的URL参数。但要注意,useBodyEncodingForURI设置为true时,URIEncoding可能被忽略,需参考引用[2]中的说明。 然后,用户提供的示例配置里还有compression相关设置,如compression="on"和compressionMinSize="1024",这些在Tomcat 9中也是支持的,但需要注意compressibleMimeType的默认值是否符合需求。另外,acceptCount、maxThreads等参数需要结合线程池配置,确保Executor正确配置,否则可能不会生效。 还需要检查协议配置,protocol="org.apache.coyote.http11.Http11AprProtocol"在Tomcat 9中有效,但必须安装APR和OpenSSL库,否则启动会报错。如果用户没有安装,应建议改用NIO或NIO2协议,如HTTP/1.1的默认NIO实现。 总结用户的问题,需要给出一个适用于Tomcat 9的Connector配置示例,包含提到的参数,并解释每个参数的兼容性和注意事项。同时指出用户提供的示例是否适用,可能需要调整的地方,如APR依赖、参数组合的影响等。 最后,根据用户提供的引用内容,特别是引用[2]和[5]中关于URIEncoding和useBodyEncodingForURI的说明,强调这些参数的正确使用方式,避免配置冲突。例如,如果同时设置了useBodyEncodingForURI=true和URIEncoding,实际可能以useBodyEncodingForURI为准,需要根据应用需求决定如何配置。</think>根据Tomcat 9.0的官方文档和配置特性,以下是适用于Tomcat 9.0的Connector配置示例及关键参数解析: ### 标准Connector配置示例(Tomcat 9.0兼容) ```xml <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" acceptCount="900" maxThreads="200" URIEncoding="UTF-8" relaxedPathChars="[]|{}^\`"<>" relaxedQueryChars="[]|{}^\`"<>" useBodyEncodingForURI="true" compression="on" compressionMinSize="1024" disableUploadTimeout="true" enableLookups="false"/> ``` ### 关键参数兼容性说明 1. **relaxedPathChars / relaxedQueryChars** - 用于放宽URL路径/查询参数的字符校验规则,支持特殊字符如`^`、`{`、`}`等 - 自Tomcat 7.0.73+引入,Tomcat 9.0完全兼容[^2][^5] - 需用HTML实体编码表示特殊字符(如`<`需写为`<`) 2. **useBodyEncodingForURI** - 当设置为`true`时,URI查询参数解码优先使用请求头`Content-Type`中的编码,而非`URIEncoding` - 默认值为`false`,Tomcat 9.0保持对该参数的支持[^2][^5] 3. **URIEncoding** - 定义URI查询参数的默认解码字符集(默认`ISO-8859-1`) - 若`useBodyEncodingForURI="true"`,此参数会被覆盖[^2] 4. **protocol="Http11AprProtocol"** - 需APR库支持(需安装`tomcat-native`和OpenSSL) - 若未安装APR,建议改用`Http11Nio2Protocol`(默认协议) ### 原配置代码的兼容性分析 - **兼容部分** `URIEncoding="UTF-8"`、`compression`、`acceptCount`等基础参数在Tomcat 9.0中仍有效[^1][^5] - **需验证部分** 1. `executor="tomcatThreadPool"`需在`<Executor>`标签中明确定义线程池 2. `Http11AprProtocol`需服务器安装APR库,否则启动报错[^3] ### 推荐优化方向 1. **性能调参** - 根据实际负载调整`maxThreads`(建议500-800)和`acceptCount`(建议与`maxThreads`一致)[^5] - 启用NIO2协议以提升并发能力:`protocol="org.apache.coyote.http11.Http11Nio2Protocol"` 2. **安全增强** ```xml <!-- 禁止高风险符号 --> relaxedQueryChars="-" relaxedPathChars="-" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ManonLegrand

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值