coco

设计模式之建造者模式

十年热恋 提交于 2020-03-28 12:41:34
Builder(建造者模式) 一、建造者模式简介 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 注意: 1、一些基本部件不会变,而其组合经常变化的时候。 2、建造者:创建和提供实例,导演:管理建造出来的实例的依赖关系。 3、肯德基组合套餐、StringBuilder 4、核心作用:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示 二、建造者模式优缺点比较 优点: 1、建造者独立,易扩展。 2、便于控制细节风险。 缺点: 1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类。 使用场景: 1、StringBuilder类的append方法 2、SQL中的PreparedStatement 3、JDOM中,DomBuilder、SAXBuilder 注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。 三、实现UML类图 四、实现 步骤1:创建复杂产品的实体类 public class McDonaldMeal { private Bacon bacon; private Chicken chicken; private

百度开源口罩检测项目,小编教你30分钟搞定模型训练

淺唱寂寞╮ 提交于 2020-03-26 21:08:28
3 月,跳不动了?>>> 史上最长春假结束,全国各地企业陆续复工。机场、火车站等地又将迎来人流高峰,我们对疫情防护仍然不能有所懈怠。如何实时检测人群口罩佩戴情况从而快速发现未按要求佩戴口罩的人,对于防疫工作来说,是个头大的问题。 目前AI人脸口罩检测方案已成为返工潮中众多社区、企业、商场解决该问题的首选方案,并得到了较好的应用。各大企业也积极为AI战“疫”做出贡献,百度开源了业界首个口罩人脸检测及分类模型,滴滴随后也免费开放了口罩佩戴识别技术。那么,它们是如何建立口罩检测模型的呢?其背后原理是什么?今天小编将为你揭开TensorFlow模型训练的秘密,让你看完本篇文章,就能学会自己训练模型。 知识点 TensorFlow™ 是一个采用数据流图(data flow graphs)对数值予以计算的开源软件库。数据流图根据“节点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般表示施加的数学操作,但也可以代表数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以传递“size可动态调整”的多维数据数组,即“张量”(tensor)。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行运算。

AI 快车道-图像语义分割

邮差的信 提交于 2020-03-26 15:21:59
3 月,跳不动了?>>> 课程描述 图像语义分割可以说是图像理解的基石性技术,在自动驾驶系统(具体为街景识别与理解)、无人机应用(着陆点判断)以及穿戴式设备应用中举足轻重。 PaddleSeg是基于百度飞桨深度学习框架实现的 工业级图像语义分割模型库 ,具备高性能、丰富数据增强、工业级部署、端到端体验的特性。目前已经覆盖了DeepLabv3+、U-Net、ICNet三套主流分割模型,并内置了 ImageNet、COCO、CityScapes 等数据集下的 15 个预训练模型,满足不同场景下的不同精度需求和性能需求! 百度视觉技术部资深研发工程师为你详解PaddleSeg技术要点及应用案例剖析。 明星讲师 课程目标 适合深度学习一年以上,CV方向的研发人员 课程列表 【飞桨图像分割库PaddleSeg】 飞桨全景介绍 图像分割任务及解决方案 PaddleSeg全景介绍 PaddleSeg应用场景 【PaddleSeg深度技术解读及实战应用分享】 分割任务解决方案设计 图像分割案例讲解:人像分割/车道线分割 图像分割进阶:实例分割/视频分割 图像分割应用案例 【基于DeepLabv3+模型的应用实战-人像分割】 参考资料 项目地址:https://github.com/PaddlePaddle/PaddleSeg 15 个预训练模型:https://github.com

【论文笔记 Detection】(2017 ICCV)Deformable Convolutional Network

こ雲淡風輕ζ 提交于 2020-03-25 10:25:21
3 月,跳不动了?>>> Abstract I’ve writen many paper reviews in Chinese before, so to get more fun, English will be used for latter paper reviews gradually. A few days ago, we have reviewed STN . We all know that becaus of Pooling layer, CNN has spatial invariance(such as translation invariance, rotation invariance). And as the larger the pooling kernel and conv kernel are, invariance of CNN will get more and more powerful. But at the same time, the larger the pooling kernel and conv kernel are, CNN wil lost more and more local information. As a result, downsampling ratio needs to be adjusted

20年的目标检测大综述(第2期)

☆樱花仙子☆ 提交于 2020-03-23 18:40:03
3 月,跳不动了?>>> 今天我们接着上次综述章节1继续来大家来说说,本次主要说说20年内的目标检测,感谢大家的关注与支持。 OBJECT DETECTION IN 20 YEARS 我们将从多个方面回顾对象检测的历史,包括里程碑检测器、目标检测数据集、指标和关键技术的发展。在过去的二十年中,人们普遍认为,目标检测的发展大致经历了两个历史时期:“ 传统的目标检测时期 ” ( 14年以前 ) 和 “ 基于深度学习的检测时期 ” ( 2014年以后 ),如下图所示。 01 . 传统检测器 如果我们把今天的物体检测看作是深度学习力量下的一种技术美学,那么回到20年前,我们将见证“冷兵器时代的智慧”。早期的目标检测算法大多是基于手工特征构建的。由于当时缺乏有效的图像表示,人们别无选择,只能设计复杂的特征表示,以及各种加速技术来用尽有限的计算资源。 (1)Viola Jones Detectors 18年前,P. Viola和M. Jones在没有任何约束条件(如肤色分割)的情况下首次实现了人脸的实时检测。在700MHz Pentium III CPU上,在同等的检测精度下,检测器的速度是其他算法的数十倍甚至数百倍。这种检测算法,后来被称为“维奥拉-琼斯”(VJ)检测器”,在此以作者的名字命名,以纪念他们的重大贡献。 VJ检测器采用最直接的检测方法,即,滑动窗口

在JavaScript中使用动态变量名称

孤人 提交于 2020-03-16 15:31:12
某厂面试归来,发现自己落伍了!>>> 在PHP中,您可以执行以下令人惊奇/可怕的事情: $a = 1; $b = 2; $c = 3; $name = 'a'; echo $$name; // prints 1 有没有办法用Java做类似的事情? 例如,如果我有一个 var name = 'the name of the variable'; 如何获得名称为 name 的变量的引用? #1楼 他们的意思是不,你不能。 没有办法完成它。 所以有可能你可以做这样的事情 function create(obj, const){ // where obj is an object and const is a variable name function const () {} const.prototype.myProperty = property_value; // .. more prototype return new const(); } 具有与ECMAScript 5中实现的功能相同的创建功能。 #2楼 eval()在我的测试中不起作用。 但是可以向DOM树添加新的JavaScript代码。 因此,这是一个添加新变量的函数: function createVariable(varName,varContent) { var scriptStr = "var "+varName

基于opencv和mask-rcnn的视频目标检测和实例分割

只愿长相守 提交于 2020-03-12 06:30:45
@ mask-rcnn实现视频实时检测OC 基于opencv和mask-rcnn的目标检测和实例分割 mask-rcnn是一个two-stage的目标检测和实例分割的框架,但官方的github代码只给出了照片的检测,本文主要利用opencv调用mask-rcnn实现视频检测。本文在jupyter notebook中实现。 原来的demo.ipynb #import各种包,将文件夹的各种路径添加进来 import os import sys import random import math import numpy as np import skimage.io import matplotlib import matplotlib.pyplot as plt # Root directory of the project ROOT_DIR = os.path.abspath("../") # Import Mask RCNN sys.path.append(ROOT_DIR) # To find local version of the library from mrcnn import utils import mrcnn.model as modellib from mrcnn import visualize # Import COCO config sys.path

Hi,我们用飞桨做了一个“AI无人售货柜”

社会主义新天地 提交于 2020-03-09 19:42:06
【飞桨开发者说】 白浩杰,鸥若教育CEO,北航软件工程硕士,美国佛罗里达国际大学高性能数据库研究中心助理研究员,百度深度学习布道师,主要研究方向深度学习、数据可视化等。 我在教授AI课程中发现,学生们学习AI的热情高涨,但是很难有一个场景能够给学员们提供一个直观的感受。 而智能货柜恰恰能够解决学员们的这个问题,为学员们提供了一个学以致用的好机会。 为了方便AI教学与普及,为学员提供看得见摸得着的真实AI体验,因此,我用深度学习技术,用了大概2个月的时间,几百行代码制作了这款“AI无人售货柜”,目前已能识别5种饮料。 在下文中,我将为大家揭秘这款“AI无人售货柜”的具体实现过程和效果。 在商场购物或餐厅就餐,经常会遇到排队结账的困扰。 如果能有无人售货装置,实现“不排队,秒收银”,完全无需人工干预,就能极大地提升结算效率,缓解结算排队拥堵的问题。 现今常见的的无人售货机,有感应式和红外扫描式两大类。 这两类无人售货机,大多集成了射频读写装置、红外扫描等多种设备,结构复杂,成本普遍较高,维护及更新换代困难。 然而,随着人工智能的发展,计算机视觉领域取得了许多超越常人的成就。 尤其是深度学习算法的引入,解决了许多实际问题。 本次,我们就突破常规,不再研究感应式和红外扫描式这两类无人结算系统,而是利用深度学习技术,结合计算机视觉,来研制一款基于计算机视觉的“AI无人售货柜”。

Google开源框架AutoFlip 实现视频智能剪裁

走远了吗. 提交于 2020-03-03 14:58:16
Photo by Kyle Loftus from Pexels Google宣布开源视频剪裁框架AutoFlip,实现智能化自动裁剪视频。 编译:郑云飞 & Coco Liang 技术审校:郑云飞 原文链接:https://ai.googleblog.com/2020/02/autoflip-open-source-framework-for.html 随着移动设备的进一步普及,越来越多的消费者选择在移动设备上观看视频。 据eMarketer2019年的数据,美国消费者每天平均在移动设备上花费3小时43分钟,比花在看电视上的时间还多了8分钟 ,这也是人们第一次被发现花费在移动设备上的时间多于看电视的时间。 然而,传统的内容生产设备制作的视频大多数是 横屏(landscape) 的,而移动显示设备默认是 竖屏的(portrait) ,这就导致横屏内容在竖屏设备上的播放体验并不是很好。 视频裁剪是解决这个问题的方法之一。然而,人工的视频裁剪是一件非常枯燥、耗时且精细的工作,普通人很难胜任。因此,诞生了许多智能视频裁剪的算法,期望通过算法可以自动、快速地完成优质的视频裁剪。Google AI 13日在官博宣布开源框架AutoFlip,就是实现影片智能化自动剪裁的一个解决方案。 AutoFlip是一个基于MediaPipe框架的智能视频剪裁工具。它可以根据指定的宽高比,对影片内容进行分析

jumpserver

醉酒当歌 提交于 2020-02-27 09:32:51
堡垒机介绍 搭建简单的堡垒机 搭建简易堡垒机 – jailkit chroot 搭建简易堡垒机 – 日志审计 开源堡垒机jumpserver介绍 jumpserver安装 Jumpserver使用 Jumpserver里面的用户 1. 堡垒机介绍 在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。 我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。 比较优秀的开源软件jumpserver,认证、授权、审计、自动化、资产管理。 商业堡垒机:齐治, Citrix XenApp 2. 搭建简单的堡垒机 具备堡垒机的条件是,该机器有公司和私网,其中私网和机房其他机器互通 设计堡垒机思路 跳板机安全设置(iptables端口限制、登录限制sshd_config) 用户、命令权限限制(jailkit) http://blog.chinaunix.net/uid-28310119-id-3503318.html 客户机器日志审计 http://www.68idc.cn/help/server/linux/2014042190951.html 3. 搭建简易堡垒机 – jailkit chroot wget https:/