河道污染物识别系统

河道污染物识别系统通过python+yolo深度学习技术,河道污染物识别系统对现场画面中河道污染物以及漂浮物进行全天候实时监测,当河道污染物识别系统监测到出现污染物漂浮物时,立即抓拍存档触发告警。与C / C++等语言相比,Python速度较慢。也就是说,Python可以使用C / C++轻松扩展,这使我们可以在C / C++中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C++代码一样快(因为它是在后台工作的实际C++代码),其次,在Python中编写代码比使用C / C++更容易。

YOLO系列算法是一类典型的one-stage目标检测算法,其利用anchor box将分类与目标定位的回归问题结合起来,从而做到了高效、灵活和泛化性能好。Yolo意思是You Only Look Once,它并没有真正的去掉候选区域,而是创造性的将候选区和目标分类合二为一,看一眼图片就能知道有哪些对象以及它们的位置。

Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个bounding box。我们将其理解为98个预测区,很粗略的覆盖了图片的整个区域,就在这98个预测区中进行目标检测。YOLO的结构非常简单,就是单纯的卷积、池化最后加了两层全连接,从网络结构上看,与前面介绍的CNN分类网络没有本质的区别,最大的差异是输出层用线性函数做激活函数,因为需要预测bounding box的位置(数值型),而不仅仅是对象的概率。所以粗略来说,YOLO的整个结构就是输入图片经过神经网络的变换得到一个输出的张量。

本文转载于网络 如有侵权请联系删除

相关文章

  • 配置JAVA的环境变量「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。在win10系统下配置JAVA的环境变量为什么配置path?希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。例如:我们在C:\Users\Irene目录下使用java命令,结果如下: 我们在JDK的安装目录的bin目录下使用java命令,结果如下:我们不可能每次使用java.exe,javac.exe等工具的时候都进入到JDK的安装目录下,太麻烦了。我们希望在任意目录下都可以使用JDK的bin目录的开发工具,因此我们需要告诉操作系统去哪里找这些开发工具,这就需要配置path环境变量。1.只配置path步骤: 打开文件资源管理器,进入后在左侧找到此电脑,单击鼠标右键,选择属性,如图所示:选择高级系统设置,如图所示: 在高级选项卡,单击环境变量,如图所示: 在系统变量中,选中Path环境变量,双击或者点击编辑,如图所示: 点击右侧新建按钮,键入D:\jdk1.8.0_51\bin。如图所示: 环境变量配置完成,重新开启DOS命令行,在任意目录下输入javac命令,运行成功。 2.配置JAVA_HOME+path建议

  • Linux-MySQL数据备份和定时清理

    最近接了个新需求,需要将我们经常使用的几个数据库,MySQL、influxdb在Linux系统上实现定时自动备份,比如每天备份一次,间隔31天清理31天之前备份的数据,研究了一下,准备先从MySQL实现。MySQL自己已经提供了命令行导出数据库数据以及文件的一种工具mysqldump,其实可以通过命令行直接导出数据库数据实现备份。#mysqldump用法 mysqldump-uuser-hlocalhost-ppassworddatabase_name>test.sql #如果MySQL属于单机版本安装,可能会找不到mysqldump,可以将需要的命令添加软链接,可以使用通配符 sudoln-s/server/mysql/mysql-5.7.31-linux-glibc2.12-x86_64/bin/mysqldump/usr/bin复制mysqldump常用操作示例备份全部数据库的数据和结构mysqldump-uuser-hlocalhost-ppassword-A>test.sql复制备份全部数据库的结构(加-d参数)mysqldump-uuser-hlocalhost

  • MySQL Shell ——MySQLDBA的最佳工具

    MySQLShell是目前MySQL最新的命令行客户端,它是一款全新的工具,支持使用下面的这些功能: MySQLDocumentStore(NoSQL,XDevAPI)JSON文档/SQL表SQL,Python和JavaScript定制化除此之外,您可以将MySQLShell当做DBA和开发人员的工具箱。支持SQL,JavaScript和Python输入命令自动补全历史命令集成内置帮助系统可定制的提示/颜色内置APIs和工具可扩展开源MySQLShell支持使用三种语言对数据库进行操作。MySQLShell提供了友好的用户交互体验,包括命令补全,定制提示与颜色等等。MySQLShell还支持历史命令、终端页面显示调整,并内置了帮助系统。MySQLShell内置了三种API,包括XDevAPI、ShellAPI和AdminAPI,可以通过API对数据库进行直接操作和管理。全部的APIs在JavaScript和Python中均可使用。MySQLShell提供了许多DBA关注的工具箱,包括:升级检查器检查升级至MySQL8的兼容性问题5.7-8.0+(当前的Shell版本支持)对要求的行为发

  • URLEncode和URLDecode的注意事项

    packagecom.bigaka.common.utils; importjava.io.ByteArrayInputStream; importjava.io.ByteArrayOutputStream; importjava.io.IOException; importjava.io.UnsupportedEncodingException; importjava.net.URLDecoder; importjava.net.URLEncoder; importjava.util.zip.GZIPInputStream; importjava.util.zip.GZIPOutputStream; importorg.apache.commons.codec.DecoderException; importorg.apache.commons.codec.binary.Base64; importorg.apache.commons.codec.binary.Hex; importorg.apache.commons.lang.StringEscapeUtils; /** *

  • 【JavaWeb】112:收藏功能的实现

    今天是刘小爱自学Java的第112天。感谢你的观看,谢谢你。话不多说,开始今天的学习:收藏,一个很常见很重要的功能。看到一篇文章,可以选择收藏。看到一个商品,也可以选择收藏。包括本次案例中的旅游路线也是一样的。这也是一个被频繁使用的功能。我写了一百多篇的文章,有一个重大发现就是:文章被收藏数,远远大于点赞和评论。正所谓收藏从未停止,学习从未开始。这是我某平台的后台截图:我们今天要学的就是这个收藏功能的实现,当然我们项目不是文章,而是旅游线路的收藏。一、业务分析收藏有什么特点呢?用户收藏之后,在他的收藏夹可以快速访问。同一旅游路线,可以有多个用户收藏。同一个用户,可以收藏多条旅游路线它们之间的关系是多对多,所以在设计数据表时,会设计一个中间表来关联它们。这是可视化工具中的视图功能,这样一看的话,表与表之间的关系就很清楚了。在中间表中,有另外两张表的主键,分别为uid和rid:uid可以确定是哪个用户。rid可以确定是哪条路线。其中主要牵扯到两个功能:1判断该路线是否能够被用户收藏想要收藏旅游路线,肯定需要用户登录的。如果用户没有登录,则无法收藏。如果用户已经收藏了,也没法收藏。2可以收藏

  • 2020-5-8-repository模式

    今天和大家介绍一下一种特殊的设计模式——仓库模式(repositorypattern)什么是仓库模式(repositorypattern)MartinFlower对此的定义是领域模型层和数据映射层中间的间接层。它封装了一系列数据库对象以及对应的操作。实现了领域模型和数据访问层的解耦。Repository模式作用试想一下,在你的程序中,有多处地方需要查询,修改数据。你肯定不希望在各个地方重复书写数据访问代码,所以你会将其放置在同一处地方(数据访问层)。这在大部分场景下都能够满足要求。但是如果你是使用模型驱动开发的方式进行软件开发,那么就很容易发现这样一个问题——领域模型的格式和数据库的格式不一致。例如上面的这张图,Buyer和Order是领域模型的两个聚合根,其中Order中包含了OrderItem这一实体对象。然而在数据层中,Order和OrderItem分别存储在不同的表中。这就意味着在对Order进行更改时,需要同时更新两张表中的数据。而这个逻辑不应该是领域层应该关心的事情。Repository就充当了这一个中间层,封装了从Order这个聚合根到Orders和OrderItems这

  • 多云架构的3个常见性能挑战和解决方案

    多云架构可带来许多好处,但它们也会带来一些特殊的性能挑战,特别是如何设计和管理,很多部署多云的团队可能并没有注意多云架构中的性能瓶颈。企业需要认真进行前期规划,以帮助确保其多云体系结构不会造成性能瓶颈。多云架构可带来许多好处,但它们也会带来一些特殊的性能挑战,特别是如何设计和管理,很多部署多云的团队可能并没有注意多云架构中的性能瓶颈。以下介绍多云架构的三种最常见的性能难题,以及克服这些难题的技巧。多云架构性能概述到目前为止,许多IT专业人员都熟悉多云策略的优势。通过允许企业一次在一个以上的云平台上运行工作负载,多云为提高成本效率和可靠性提供了机会。此外,多云策略在某些情况下还可以帮助提高整体工作负载性能。很多企业可能会选择使用一个云计算供应商提供的一项服务,并使用另一云计算供应商提供的另一项服务来部署应用程序,因为与采用单个云计算供应商的服务相比,这种方法虽然成本更高,但可以获得更高的性能。多云架构中的性能挑战然而,尽管多云架构提供了一些潜在的性能优势,但它们也可能导致性能缺陷。企业混合使用的云平台越多,就越容易以产生性能瓶颈的方式将它们连接在一起,从而减慢了将它们托管在同一云平台中时

  • Kubernetes之YAML文件

    YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。后文会说明定义YAML文件创建Pod和创建Deployment。 YAML语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tal键,只允许使用空格 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 ”#”表示注释,从这个字符一直到行尾,都会被解析器忽略在Kubernetes中,只需要知道两种结构类型即可: Lists Maps使用YAML用于K8s的定义带来的好处包括:便捷性:不必添加大量的参数到命令行中执行命令 可维护性:YAML文件可以通过源头控制,跟踪每次操作 灵活性:YAML可以创建比命令行更加复杂的结构复制YAMLMapsMap顾名思义指的是字典,即一个Key:Value的键值对信息。例如:--- apiVersion:v1 kind:Pod复制注:—为可选的分隔符,当需要在一个文件中定义多个结构的时候需要使用。上述内容表示有两个键apiVersion和kind,分别对应的值为v1和Pod。Maps的value既能够对应字符串也能够对应一个Maps。

  • 分享我如何在7年时间里成长为阿里Java架构师

    如何更高效的学习?1.架构师应不应该写代码总的来说,架构师和程序员在某些方面上有点像产品经理和用户的关系,大部分程序员并不会主动告诉你他们想要什么、哪里需要优化,甚至自己也不知道这些。想要做出好的产品,捷径之一就是跟用户做同样的事情。2.为什么别人的系统总是那么烂很多公司应该都会有一些遗留系统,它们庞大、笨重、难用、几乎无法维护,所有人都在抱怨这些系统,并且每天都在想方设法换掉那些遗留系统。但是一段时间过去之后,又会发现身边的新人又开始吐槽当时替代遗留系统的那个系统了。“大多数系统当初都很好使,功能当时够用,扩展性看起来也可以,但是这些系统都是开发的人离职之后变坏的。”3.成为架构师最困难的门槛是什么?很多人自称架构师的人跟你讲一个架构时简直滔滔不绝,各种技术名词像是说相声一样从他嘴里说出来,三句话不离高并发大数据,但是稍微追问一下,就会发现很多基本概念的缺失,例如自称精通高并发的人说不清楚他所谓的高并发系统的瓶颈在哪里,自称精通架构设计的人说不明白他的系统怎么保证高可用,自称超大数据量的系统实际上只有不到100万条数据,等等。4.如何更高效的学习?大多数人每天能留给自己学习的时间有限

  • 【PPT干货】企业自媒体怎样做是对的?

    导读赵家鹏之前是海尔新媒体核心成员之一。也许你也留意到海尔的微信订阅号在最近一年内的不寻常做法,它不仅是企业信息的传声筒,更有“媒体”属性,而在处理企业信息时,手法也更高级。昨天的那篇《另一个海尔》模仿《猎奇之旅》的写法,写得很好。有情有趣有用有品的干货家鹏在这30页PPT里分享了他的实践和思考。我同意他的诸多观点。特别是最后一点:企业做社交媒体应该警惕“内卷化”——仍只把微博、微信当作渠道,尤其是当你的微信订阅号拥有几十万读者后,那个最初拥护你进行新探索的决策人,会更轻易地随手扔给你一篇企业宣传稿让你发布。一如沙丘之城,建成需要很长时间,毁掉只需一刻。社交媒体的企业逻辑人人都在谈论它,究竟什么是新媒体和社交媒体新媒体是更高效的传播工具,建立在新媒体基础上的社交媒体是可以聆听用户的信息流通介质。社交媒体不仅是微博、微信。社交媒体是一种介质空间,其中的介质我们可以称为“社交情绪”,打个比方,它如同构成空气圈的氧气。传统的媒体生产,其内容是封闭的精英管道,几个人可能为几万人输出审美,内容是单向辐射的;社交媒体上的内容是开放的大众节点,一个节点去连接别的节点,别的节点再去连接更多的节点,内容

  • 关于Ubuntu16.04上N卡驱动导致滚动屏幕卡顿问题

    环境Ubuntu16.041080ti显卡问题屏幕显示正常,但是在打开网页或者进行跑深度学习程序的时候画面会发生一卡一下的情况,严重时出现类似于死机的情况。查看系统monitor并不现实显存和内存爆表,于是推断为nvidia显卡驱动不兼容的问题。解决更换显卡驱动,首先删除有关原来驱动的一些信息:sudoapt-getremove--purgenvidia*复制在setting中的软件更新中查看当前可以更新的nvidia驱动使用如下命令添加GraphicDriversPPAsudoadd-apt-repositoryppa:graphics-drivers/ppa sudoapt-getupdate复制寻找合适的驱动版本(选择recommend即可)ubuntu-driversdevices复制按ctrl+alt+F1进入tty文本模式 关闭(图形)桌面显示管理器LightDMsudoservicelightdmstop复制安装nvidiadriver,如果网速度不好,可能要花比较长的时间 安装完成后重启sudoapt-getinstallnvidia-390 sudoreboot复制重

  • 与EMS服务商的有效沟通

    过去几十年,OEM公司通过将生产外包给EMS服务商制造各种产品,涉及从PCBA到整信机箱及电缆组件。有效沟通是成功实现从概念到产品的关键。对于希望与EMS服务商形成良好工作关系的OEM公司,应遵循以下几个步骤来确保产品成功构建。如果与全球各地的供应商合作,这点尤为重要。本文将重点讨论OEM和EMS供应商之间的有效沟通方法,并讨论一些非常简单的方法,以避免发生与外包服务相关的一些问题。工作说明书(SOW)SOW(StatementofWork,工作说明书)是电子制造行业军事和航天方面非常常见的文件。SOW明确说明了客户对EMS服务商的期望。详细信息包括:需遵守的技术规范、ITAR限制、流程、版本级别、质量说明、可交付成果、报告要求、FAI(FailAsIs,故障状况)要求以及任何其他文件中未找到的其他特殊指导书。在制造行业的商用产品领域,通常不存在SOW,EMS服务商需要将大量电子邮件说明和指导作业书拼凑在一起才能形成SOW。某些信息不可避免地会被遗漏,或传达不到车间。实质上,SOW定义了参与规则。除了详细的SOW,完整的输入文件包是报价和生产过程中最重要的组成部分,且应该包含尽可能多的

  • 腾讯云低代码互动课堂更新历史

    第5次发布发布时间:2022-10-1906:31:50 本次发布包含了以下内容: 改善已有的文档。 新增接口: BindDocumentToRoom DescribeRoomStatistics ModifyApp UnbindDocumentFromRoom 修改接口: DescribeRoom 新增出参:RecordUrl 新增数据结构: MemberRecord 第4次发布发布时间:2022-10-1806:36:52 本次发布包含了以下内容: 改善已有的文档。 新增接口: DeleteRoom 第3次发布发布时间:2022-10-1406:37:15 本次发布包含了以下内容: 改善已有的文档。 新增接口: CreateDocument SetAppCustomContent 新增数据结构: AppCustomContent 第2次发布发布时间:2022-09-2210:11:52 本次发布包含了以下内容: 改善已有的文档。 新增接口: CreateRoom CreateSupervisor DescribeRoom DescribeUser Lo

  • IdentityServer4 中文文档 -3- (简介)已支持的规范

    IdentityServer4中文文档-3-(简介)已支持的规范 原文:http://docs.identityserver.io/en/release/intro/specs.html 目录 上一篇:IdentityServer4中文文档-2-(简介)相关术语 下一篇:IdentityServer4中文文档-4-(简介)打包和构建 IdentityServer实现了以下规范: OpenIDConnect OpenIDConnectCore1.0(规范) OpenIDConnectDiscovery1.0(规范) OpenIDConnectSessionManagement1.0–draft22(规范) OpenIDConnectHTTP-basedLogout1.0–draft03(规范) OAuth2.0 OAuth2.0(RFC6749) OAuth2.0BearerTokenUsage(RFC6750) OAuth2.0MultipleResponseTypes(规范) OAuth2.0FormPostResponseMode(规范) OAuth2.0TokenRevo

  • 推荐几个学习Node的网址:

    推荐几个学习Node的网址:     Nodejs安装教程 http://jingyan.baidu.com/article/a948d6515d4c850a2dcd2e18.html   http://nodejs.org/      http://cnodejs.org/   由淘宝人建立的社区,内有Node中文文档   http://www.oschina.net/p/nodejs/   http://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html  作者:聂微东出处:http://www.cnblogs.com/Darren_code/

  • 【Linux基础】正则表达式

    1.正则表达式 正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),是由普通字符(例如字符a到z)以及特殊字符(称为"元字符")组成的文字模式。常用用途如下: (1)字符串是否包含某子串 (2)匹配子串替换 (3)取出符合某条件子串 正则表达式测试工具:百度网盘 提取码:w8bt 2.普通字符 包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号(非特殊字符)。 3.特殊字符 匹配特殊字符使用反转义  \ ,例如匹配  {},使用  \{和\} 。 (1)限定符 限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。 *前面一个子表达式,匹配零次或一次或多次。 +前面一个子表达式,匹配一次或多次。 ?前面一个子表达式,匹配零次或一次。 {n}

  • MVC框架中的值提供机制(一)

       在MVC框架中action方法中的Model数据的绑定的来源有很多个,可能是http请求中的get参数或是post提交的表单数据,会是json字符串或是路径中的相关数据;MVC框架中针对这些不同的数据来源抽象了IValueProvider接口;     publicinterfaceIValueProvider { boolContainsPrefix(stringprefix); ValueProviderResultGetValue(stringkey); }复制 IValueProvider接口中的ContainsPrefix方法返回是否包含指定的前缀,GetValue方法时根据指定的key来获取相应的值数据结果;NameValueCollection复制 NameValueCollection类时key和value都是字符串的字典,与Dictionary类型不同的是,一个key是可以对应多个值;复制 NameValueCollectioncollection=newNameValueCollection()

  • Jmeter常用插件

    一、下载及安装 下载地址:https://jmeter-plugins.org/install/Install/ 下载后文件为一个jar包,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。 启动jemter,点击选项,最下面的一栏,如下图所示: 打开插件的界面如下图: InstalledPlugins(已安装的插件):即插件jar包中已经包含的插件,可以通过选中勾选框,来使用这些插件; AvailablePlugins(可下载的插件):即该插件扩展的一些插件,可以通过选中勾选框,来下载你所需要的插件; Upgrades(可更新的插件):即可以更新到最新版本的一些插件,可以通过点击截图右下角的ApplyChangesandRestartJmeter按钮来下载更新;  二、常用插件 1、TransactionsperSecond(TPS) 即TPS:每秒事务数,性能测试中,最重要的2个指标之一。该插件的作用是在测试脚本执行过程中,监控查看服务器的TPS表现————比如整体趋势、实时平均值走向、稳定性等。 这个插件包含在BasicGraphs中,

  • HBase TableExistsException: hbase:namespace

    这个报错一般存在于独立安装Zookeeper集群中。 报这个错的操作时这样的, 先停掉了了Hbase formatZK后重启Hbase 启动hbaseshell后HMaster挂掉,看log里就有这个报错 TableExistsException:hbase:namespace 这个时候需要输入zkCli.sh,把Zookeeper里的/hbase目录删除。   这个报错的意思有可能是指hbase的namespace已存在,无法再建一个。所以需要把之前的那个namespace删除,然后再启动HBase,接下来操作就没问题了。 Zookeeper中存储了HBase的元数据表,即hbase:meta,如果再启动HBase就需要更新元数据。   但有几个问题要解决: 我HBase重启为什么不能用之前的namespace? 我之前命名有操作formatZK,为什么还会存在之前的/hbase文件夹?

  • blockchain guide notes

    2014年开始,比特币背后的区块链(Blockchain)技术受到大家关注,并正式引发了分布式记账本(DistributedLedger)技术的革新浪潮。 目前,区块链技术已经脱离开比特币,在包括金融、贸易、征信、物联网、共享经济等诸多领域崭露头角。现在当人们提到“区块链”时,往往已经与比特币网络没有直接联系了,除非特别指出是承载比特币交易系统的“比特币区块链”。 1,区块链是一个放在非安全环境中的分布式数据库(系统)。 2,区块链采用密码学的方法来保证已有数据不可能被篡改。 3,区块链采用共识算法来对于新增数据达成共识。   区块链的基本原理理解起来并不难。基本概念包括:交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。   分类根

  • 关于 i & (1<<j) 和 1 & (i>>j) 的解释

    一、i&(1<<j)   1<<j表示二进制表示的1(即0001)的所有位向左平移j个单位后的数,如j=1,则平移后的结果是0010,此时得到数2。若j=3,平移后的结果是1000,此时得到数8。向左平移j位,即表示将原来的数乘上2^j。可以类比十进制,所有位左移j位,相当于在后面添了j个0,即乘上10^j,在二进制中,即乘上2^j。   &在此处表示按位与,即两个二进制表示的数,在对应位置上进行取并的操作,都为1时取1,否则取0。如1010(十进制的10)和0101(十进制的5)进行按位与操作后,得到的是0000(十进制的0)。   i&(1<<j)则表示i和1<<j(即2^j)按位与后得到的数。1<<j的二进制表示只有第j个位置(从右往左数,从0开始)上的数是1,其余位置上的数是0,i和1<<j进行按位与操作时,i的第j个位置是1就返回1<<j(判断语句中即为true),i的第j个位置是0就返回0(判断语句中即为false)。 ex:i=18,j=3 00010010 000

相关推荐

推荐阅读