OpenCV 基础作业问题求代码解决

本文干货满满,介绍了用BFF层(Back-end For Front-end)中间层提升性能的整体解决方案和思路,涉及前期技术调研,聚合业务分析,聚合方法,验收,最后向同学们普及node、koa基础知识,以及如何通过中间层做优化等一系列的内容,形成 发起问题——解决问题——复盘学习推广 的完整闭环。

我们负责的系统,既有内部各细分领域的功能分支,也有大量的功能交集,展示和交互要求极高。

  1. 后端微服务化,使得数据更加碎片化,请求数量增加,创建更多连接,且数据包大,传输耗费带宽。
  2. 微前端技术的应用,使前端文件也变得碎片化。
  1. 页面有效内容的展示发生延迟。
  2. 并且功能交互产生卡顿。

通过以下截图,可以看到,一个页面的请求数可轻松超过100个,其中接口类的请求有30个。

减少请求数量,以及缩小数据包体积,可以有效提升用户体验。

想要减少请求,可以建设BFF层。

通过建设BFF层,提升用户体验:

  1. 提升加载性能,更快地呈现核心内容。
  2. 提升交互的流畅度,更快地响应用户操作。

验收目标:聚合后,页面性能,TTI提升10%

我在此次迭代中做的工作:

  • 系统需要聚合业务和接口调研,以及文档整理
  • 配合后端和运维,域名转发处理
  • 性能监控,对比,与测试配合验收

接口聚合在开发时要注意的原则:
    b. 在逻辑有相关性,参数相同的接口,比较适合做聚合
    c. 不要把过慢的接口和其他正常接口放在一起,会影响整体性能

最终效果,通过我们的努力,BFF层聚合接口以后,请求时间和接口数降低,达到了预期的目标。

原理是,node采用事件驱动、异步编程,为网络服务而设计。Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。用户,特别是电脑配置特别低的用户,通过这波优化,他们体验会更好(cpu资源降低,请求时长缩小),用服务端资源换用户的时间和空间,最终提升了用户体验。

在此次项目完成以后,进行了前端分享,本次分享的目的:

  • 让大家对node不再陌生,了解bff层构成
  • 能上手利用node,koa参与一些性能优化,
  • 提升个人的技术能力和技术视野

Node.js 是 JavaScript 后端开发语言。从诞生之初就备受关注,到如今说到最火的后端 Web 开发,Node 说自己是第二,没有人敢说他是第一。

前端有必要进行技术赋能,使用node对业务和团队进行提升,包括以下几个方面的提升:

1、 一切为了用户——提升用户体验

2、职责明确——提高开发团队生产力

3、团队赋能——提高前端团队的想象和成长空间

以下内容,是对node介绍。

在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能。

可以理解为 Node.js 就是一个服务器端的、非阻塞式I/O的、事件驱动的JavaScript运行环境。

Nodejs采用了非阻塞型I/O机制(基本原理结合服务器演进史,详细看思维导图),在做I/O操作的时候不会造成任何的阻塞,当完成之后,以时间的形式通知执行操作。

例如在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。

事件驱动就是当进来一个新的请求的时,请求将会被压入一个事件队列中,然后通过一个循环来检测队列中的事件状态变化,如果检测到有状态变化的事件,那么就执行该事件对应的处理代码,一般都是回调函数。

比如读取一个文件,文件读取完毕后,就会触发对应的状态,然后通过对应的回调函数来进行处理。

1、提供数据给浏览器展示

2、保存用户提交过来的数据

服务器Node.js和浏览器js的区别是什么?

2、javascript是客户端编程语言,需要浏览器的javascript解释器进行解释执行;

4、node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在node.js上运行。

1、采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。

2、Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。

3、Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

因为Nodejs是单线程,带来的缺点有:

  • 不适合CPU密集型应用

  • 只支持单核CPU,不能充分利用CPU

  • 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃

借助Nodejs的特点和弊端,其应用场景分类如下:

  • 善于I/O,不善于计算。因为Nodejs是一个单线程,如果计算(同步)太多,则会阻塞这个线程

  • 大量并发的I/O,应用程序内部并不需要进行非常复杂的处理

  • 与 websocket 配合,开发长连接的实时交互应用程序

具体场景可以表现为如下:

  • 第一大类:用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序

  • 第二大类:基于web、canvas等多人联网游戏

  • 第三大类:基于web的多人实时聊天客户端、聊天室、图文直播

  • 第四大类:单页面浏览器应用程序

  • 第五大类:操作数据库、为前端和移动端提供基于json的API

其实,Nodejs能实现几乎一切的应用,只考虑适不适合使用它。

以上内容,仅仅是node.js的一点皮毛,下面推荐部分内容,有兴趣的同学可以进行深入了解和探究实践。

Koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。

Koa 是一种简单好用的 Web 框架,node可以在ssr服务端渲染,bff层,接口聚合,削减api,或处理api数据等方面应用,减小前端代码复杂度,为企业节省成本,让吞吐率更高。

koa 非常小巧,总共就 4 个文件,每个文件的功能也十分单一,文件名也清楚的反应了文件功能。

  • koa 引入了上下文对象的概念,即 ctx,这里所谓的上下文对象实际上是 request 和 response 两个对象的并集,request 和 response 分别通过代理的形式,将自己的方法委托给 ctx。那样我们就可以用 ctx 同时操作两个对象,来简化操作。

  • 该文件是整个 koa 的核心,简单来说主要有两大功能: 挂载真实请求到 ctx 下,封装中间件的执行顺序

于是二者的使用区别通过表格展示如下:

上表展示了二者的使用区别,从初始化就看出koa语法都是用的新标准。在挂载路由中间件上也有一定的差异性,这是因为二者内部实现机制的不同。其他都是大同小异的了。

与 express,hapi,eggjs 比起来,koa 真的十分小巧,以至于不能称作一种框架,可以看做一种库,但这并不妨碍 koa 生态的发展。

express 当初也是大而全的框架,慢慢的把各种功能已中间件的形式抽离出来,koa 可以看做这种思想的一种实现。大而全的框架主要存在起初的学习成本高,功能冗余等问题,使用 koa 对于初次使用 nodejs 开发 web 的人员非常友好,对于初学者来说,建议从 koa 入手,使用不同的中间件来实现不同的功能,对于了解 web 开发有很大帮助。

中间件就是匹配路由(匹配任何路由或者特定的路由,其作用比如打印日志,查看权限)之前或者匹配路由完成之后所得一系列操作,功能有:

2.修改请求和和响应对象
3.终结请求-响应循环
4.调用堆栈中的下一个中间件


经典的洋葱图概念能很好的解释next的执行,请求从最外层进去,又从最里层出来。

  • 修改请求和响应请求对象

  • 调用堆栈中的下一个中间件

如果get、post回调函数中,没有next参数,那么就匹配上第一个路由,就不会往下匹配了。如果想往下匹配的话,那么就需要写next()。

Koa应用可以使用如下几种中间件:

可以写两个参数,第一个是匹配的路径,第二个是回调函数,第一个参数可以省略

Koa 必须使用 7.6 以上的版本。如果你的版本低于这个要求,就要先升级 Node。

你可以使用自己喜欢的版本管理器快速安装支持的 node 版本:

显示Not Found,因为我们没有给内容,所以显示这个。

Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。

上面代码中,根路径/的处理函数是main/about路径的处理函数是about

// app.use('/',function(){}); //可以写两个参数,第一个是匹配的路径,第二个是回调函数,第一个参数可以省略 // 匹配任何路由之前打印日期 // 匹配带news路由以后继续向下匹配路由

在浏览器里输入 ,可以看到运行结果:

可以看到区别,.query返回的结果是对象,而.querystring返回的是字符串,这个很好理解。(chrome插件显示成json格式)

如果遵从 RESTful 规范,比如请求要以 '/user/:id'的方式发出的话,我们可以用下面的例子来获取到想要的数据。

// 也从ctx中拿到我们想要的数据,不过使用的是params对象

 以上,我们通过上面的代码和描述,已经对koa及node有一个初步的印象和概念。

用koa框架实现一个web页面。

进阶:本地json存储,实现增删改查。

  • 第一章 理论篇: 初识AI发展简史 了解AI产业生态

    本章介绍了计算机视觉、语音识别、自然语言处理在现实生活中的应用,描述了人工智能的定义和三大注意学派。其次简述了人工智能发展简史,介绍了专用人工智能和通用人工智能的发展情况。最后,从知识表示、机器感知、机器思维、机器学习、机器行为等方面说明了人工智能研究范畴,并描述了人工智能产业生态

  • 1.1 人工智能概述

    计算机视觉、语音识别、自然语言处理都是当前人工智能技术研究及应用落地较为集中的领域。人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能有三大主义学派,即符号主义、连接主义、行为主义。

  • 1.2 人工智能发展简史

    达特茅斯会议是人工智能发展史上的里程碑,标志着人工智能的诞生。自达特茅斯会议之后,人工智能的研究在机器学习、定理证明、模式识别、问题求解、专家系统及人工智能语言等方面都取得了许多引人瞩目的成就。2011年以后,人工智能进入以深度学习为代表的大数据驱动的飞速发展期。

  • 1.3 人工智能研究范畴及产业生态

    人工智能研究范畴包括知识表示、机器感知、机器思维、机器学习、机器行为等,人工智能的四个要素:数据、算法、算力、场景都在AI产业生态图中得以体现,场景其实就是最顶层的人工智能在金融、医疗、安防、娱乐、教育、零售、农业等行业的应用。

  • 第二章 理论篇:分析AI发展形势 探索行业AI新价值

    AI技术的应用也成为了一股潮流。本章将从AI技术的发展趋势出发,介绍AI技术在智能行业和计算产业的应用,并从AI+专业的学生素质培育和未来就业前景讲述AI行业的发展趋势。

  • 2.1 人工智能行业发展趋

    5G时代的到来,让大数据时代向前迈进了一个新的阶段。本章将从AI技术在智能行业的应用,以及AI技术对于行业和教育的影响进行论述,详细的介绍AI技术的发展。

  • 2.2 计算产业洞察及鲲鹏计算战略

    以鲲鹏为例阐述算力的发展及重要性

  • 2.3 AI+专业的学生素养培育

    从AI 领域架构、AI 技术架构、AI工程师成长之路、AI人才能力架构以及人工智能认证,反射人工智能需要哪些知识能力,从而引导AI人才的培养。

  • 2.4 AI+专业的未来就业前景

    本节概述人工智能人才薪资及需求量,解读人工智能就业岗位需求及岗位能力指标、工作领域,就业前景。

  • 第三章 应用篇:智能家居

    智能家居是在互联网影响之下物联化的体现。智能家居通过物联网技术将家中的各种设备连接到一起,提供家电控制、照明控制、电话远程控制等,本章简单从小智能产品开始,讲述智能家居及发展前景。

  • 本节引入小度、扫地机器人智能小家电,阐述对生活的便利,激发对智能家居的学习兴趣。

  • 3.2 智能家居设计方案

    智能家居具备哪些特点,设计遵循哪些原则,需要哪些技术,本节给展现分析。未来的家装的趋势必将智能化。

  • 3.3 智能家居现状及发展前景

    智能家居让我们生活便捷、安全、节能环保,未来可期!

  • 第四章 应用篇:智能建造

    本章介绍大数据、物联网等新技术的浪潮正在席卷全球,“智能建筑”的发展也迎来了它的黄金时期。智能建造作为一种新兴技术,在建筑智能化领域发挥其自身价值和广泛应用。如今我国建筑面积不断增加,建筑智能化的市场需求也处于持续扩张的状态,智能建造也正从概念逐渐走向落地。本章从建筑智能化出发,介绍智能建筑的起源与发展以及未来的发展方向,并从智慧社区和智慧城市两方面介绍我国在智能建造领域中的应用。

  • 4.1 建筑智能化:赋能建筑、人与空间

    智能建造现已成为建筑业发展的必然趋势和转型升级的重要抓手。本节从智能建筑的世界第一楼开始分析了智能建造的发展,以及未来智能建造的发展方向。

  • 4.2 智慧社区:赋能城市有机更新

    智慧社区是以智慧政务提高办事效率,以智慧民生改善人民生活,以智慧家庭打造智能生活,以智慧小区提升社区品质的一种全方位提供便捷服务的社会管理创新的新模式。它将“智慧城市”的概念引入了社区,以社区群众的幸福感为出发点,通过打造智慧社区为社区百姓提供便利,从而加快和谐社区建设,推动区域社会进步。基于物联网、云计算等高新技术的“智慧社区”是“智慧城市”的一个“细胞”,它将是一个以人为本的智能管理系统,有望使人们的工作和生活更加便捷、舒适、高效。

  • 4.3 智慧城市:引领创新

    随着物联网、云计算、大数据、人工智能等新一代信息技术和实体经济深度融合,智慧城市建设进入发展黄金期,智慧建筑行业也迎来新的发展机遇。根据2018年~2023年中国建筑智能化工程行业市场规模预测以及分析,未来,国内智能建筑占新建建筑的比例将不断提高,所以智能建筑是智慧城市的重要组成部分,是发展智慧城市良好发展的核心基础。

  • 第五章 应用篇:人工智能与医学

    本章内容主要是介绍人工智能在医疗上的应用,包含其在新药研发、医学诊断、疾病预测、图像分析、机器人助手、健康管理、医学统计学和人类生物学、治疗效果和预后预测等方面。同时从两个服务维度上--智慧医疗和智慧养老,介绍了人工智能与医学的结合应用。最后从技术、数据、应用、法规4个方面阐述了目前人工智能的面临的挑战并做了展望。

  • 5.1 人工智能在医学中的应用

    近年来,人工智能快速发展,它在医学上的应用激增,主要应用于新药研发、医学诊断、疾病预测、图像分析、机器人助手、健康管理、医学统计学和人类生物学、治疗效果和预后预测等。

  • 5.2 智慧医疗与智慧养老

    “智慧医疗”是最近兴起的专有医疗名词,是一套融合物联网、云计算等技术,以患者数据为中心的医疗服务模式。 “智慧养老”是面向居家老人、社区及养老机构的传感网络系统与信息平台,并在此基础上提供实时、快捷、高效、低成本的,物联化、互联化、智能化的养老服务。

  • 5.3 人工智能在医学应用中的挑战

    人工智能医学应用中面临技术、数据、应用、法规4个方面的挑战。我们相信随着人工智能的不断发展,将会越来越利好于人类。

  • 第六章 应用篇:基于“颐康互联网”的虚拟养老院

    为了更好的满足广大老年人口的居家养老需求,在“互联网+”时代智能养老日渐“落地实施”的推动下,互联网+智慧养老日益提上日程。本章将讲述基于互联网发展下的虚拟养老院的构建,其以网络通讯平台和信息服务系统为支撑,采用政府引导、企业运作、专业人员服务与社会志愿者服务相结合的方式,虚拟养老院网约护士上门为老人提供所需服务,使老人足不出户,就能享受到多元化的养老服务。

  • 6.1 智能养老——为了 2.5 亿中国老人

    根据中国的国情,结合现代化的信息技术,催生虚拟养老产物。

  • 6.2 基于“颐康互联网”的虚拟养老院

    建立信息服务系统,借助互联网技术实现虚拟养老。

  • 6.3 虚拟养老院的网约护士

    "网约护士"是指用手机 App 下单,就能预约一位护士上门提供居家护理。

  • 第七章 技术篇:编程思维

    本章介绍的主要是借助生活中的一些案例,由浅入深锻炼同学们的编程思维能,而编程语言,是和“机器”沟通的语言,不论是开发人工智能,还是与它们协同工作,你都要会用“机器”听得懂的语言和它们交流。因此,从技能层面来说,编程将是人工智能时代的必备基础。

  • 7.1 走进编程思维

    本节让学生能够认识到编程思维的重要性,特别是如何提升编程思维能力。

  • 7.2 编程实现判断三角形

    本节让学生利用编程思维来解决三角形的实现过程。

  • 7.3 循环编程思维实现九九乘法表

    本节让学生利用编程思维来解决九九乘法表的实现过程。

  • 7.4 循环编程思维输出等腰三角形与菱形

    本节让学生利用编程思维来解决图形(等腰三角形和菱形)的实现过程。

  • 第八章 技术篇:机器学习

    本章介绍了机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。本章我们从机器学习的发展开始讲起,回顾其发展历程,介绍目前常用的算法与应用特点。对机器学习的通用模型进行介绍,最后列举机器学习在目前生活中的应用,展望未来的发展。

  • 8.1 机器学习概述

    本节主要介绍机器学习的基本定义,了解什么是机器学习。然后回顾机器学习的发展历程,初步介绍各类方法与目前的应用情况。对本章节内容进行整体梳理,建立知识脉络。

  • 8.2 典型机器学习算法

    本节主要介绍了回归算法、决策树、SVM、集成学习和神经网络等常见的机器学习算法与特点。每种算法的提出是为了解决专门领域的问题,自身有着独特的结构与组建方式。

  • 8.3 机器学习实现过程

    本节主要介绍了机器学习实现的四个过程:机器学习的目标、模型评估与选择、构建损失函数、选择最优化方法。大部分机器学习算法都可以分解成这四个步骤,掌握这个流程有助于我们学习、改进和应用算法。

  • 8.4 机器学习的应用

    本节主要介绍了机器学习的应用领域与挑战。在当今的许多分支学科领域,无论是多媒体、图像学,还是网络通信,软件工程,乃至芯片设计,都能找到机器学习技术的身影。尤其是在计算机视觉、自然语言处理领域,机器学习已经成为最重要的技术进步源泉。

  • 本章介绍了物联网的定义、技术标准、产业政策等概念,在此基础上详细分析物联网三层体系结构,并对每一层所涉及的关键技术作比较全面的介绍,然后介绍物联网应用场景,介绍一些在工业、农业、交通、家居等领域的典型应用,让我们更清晰认识到物联网技术在我们身边无处不在。最后,将对物联网系统开发所涉及的开发平台做了一些简单介绍。

  • 9.1 物联网基本概念

    主要介绍物联网的基本概念、物联网的由来,物联网体系的相关标准,以及各个国家的产业政策等。通过本章的学习,我们将基本了解物联网的概貌,对技术、标准、产业的发展有基本的认识。

  • 9.2 物联网体系构架

    主要介绍物联网三层体系结构,即感知层、传输层与应用层。并具体介绍每一层涉及的关键技术,以及物联网在标识、跟踪与控制方面的应用。通过本章的学习,我们将对整个物联网体系的关键技术有比较全面的了解。

  • 9.3 物联网典型应用

    主要介绍物联网在工业、农业、交通、家居等领域的典型应用,以及在这些应用中所用的相关技术。针对我们比较熟悉的应用,探析所涉及物联网的技术和器件,对物联网技术和应用有更加深入的认识。

  • 9.4 物联网开发平台

    主要介绍物联网应用开发平台。涉及基础的树莓派开发板,华为、百度等综合性开发平台等。通过物联网开发平台可以大大降低系统开发难度与成本,是我们开发物联网系统过程中非常关键的一环。

  • 第十章 人工智能数据挖掘实战

    本章介绍了数据挖掘是从大量数据中挖掘出隐含的、先前未知的、对决策有潜在价值的关系、模式和趋势,并利用这些知识和规则建立用于决策支持的模型,提供预测性决策支持方法、工具和过程。人工智能数据挖掘技术有助于发现业务的趋势,揭示已知的事实,预测未知的结果,因此,人工智能数据挖掘技术已成为当前必要的方法。

  • 10.1 九九归一:线性回归

    回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态及进行模型预测的一种有效工具。在工商管理、经济、社会、医学和生物学等领域应用十分广泛。

  • 10.2 智慧互通:人工神经网络

    人工神经网络是一种模拟大脑神经突触连接结构处理信息的数学模型,其目的在于模拟大脑的某些机理与机制,实现一些特定的功能。在工业界和学术界都有广泛的应用。

  • 10.3 物以类聚:聚类分析

    聚类分析是研究“物以类聚”的一种现代统计分析方法,是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。在社会、管理、地质勘探、天气预报、生物分类、医学等许多方面的应用卓有成效。

  • 10.4 拨云见日:主成分分析(补录)

    主成分分析可以通过降维技术把多个指标简化为几个综合性指标。在经济管理中用主成分分析法将一些复杂的数据综合成几个商业指数形式,如物价指数、生活费用指数、商业活动指数等。

  • 第十一章 人脸识别案例

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。本章通过实例、编码实现人脸识别技术。

  • 人脸识别首先可以彩色图片转换为黑白图片

  • 识别人脸需要的函数代码重点掌握

  • 眼睛如何识别,编码实现需要灵活贯通。

  • 借助摄像头现场直接识别自己,展示识别人脸技术。

  • 本章介绍了PyQt5以一套Python模块的形式来实现功能,包含了超过620个类,600个方法和函数。它是一个多平台的工具套件,它可以运行在所有的主流操作系统中。本章主要介绍PyQt5的一些常用基本功能,使学生能够掌握PyQt5的一些基础操作。再熟悉了基础操作之后,本章也在此基础上给出了PyQt5与人工智能相结合的两个实际案例,借此激发学生了解与进一步深入探讨研究的兴趣。

  • pyqt5基础介绍与安装,掌握如何搭建pyqt5环境。

  • pyqt5常用基本功能实现,逐步掌握pyqt5的一些基本操作,如窗口的搭建。

  • 介绍如何调整窗口在屏幕中的位置,是居中还是左上又或者其他什么位置,主要让学生学会灵活设置窗口。

  • 进一步进行窗口设置,如内容填充与标签尺寸等,掌握优化窗口的一般方法。

  • 12.5 基于pyqt5 的动物识别与车道可视化案例实现

    pyqt5与人工智能的结合案例。通过具体案例介绍了人工智能环境下的一些有关pyqt5的实际应用问题。

我要回帖

更多关于 6b蓝屏代码解决方法 的文章

 

随机推荐