首页 文章 精选 留言 我的

精选列表

搜索[碰撞求解器],共10023篇文章
优秀的个人博客,低调大师

飞桨与PyQt的碰撞,图形化目标检测So Easy

还记得3月份的时候我给大家介绍了PaddleDetection的环境部署、训练及可视化、模型导出。但那只是一个算法程序,一个完整的项目需要在算法的基础上将可视化操作开发成型。今天我给大家带来如何利用Py-Qt编一个显示界面,并结合工业相机实时采集并进行目标检测。 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu 本文用到的软件有PyQt5、Pycharm、Hikvision工业相机。 本文内容如下: 1、在Pycharm下搭建pyqt环境 2、介绍通过飞桨进行模型保存和模型加载 3、如何利用飞桨检测单帧图像 4、PyQt5效果展示 Pycharm下搭建PyQt5的环境 该过程见此链接https://zhuanlan.zhihu.com/p/110224202,作者将飞桨和PyQt5安装在了同一个虚拟环境下面。 通过飞桨保存模型和加载模型 介绍模型的保存和加载,目的是更好地了解飞桨预测过程。本文主要介绍模型保存函数:fluid.io.save_params;fluid.io.save_inference_model和模型加载函数 ;fluid.io.save_params ;fluid.io.load_inference_model。 1. 模型的保存 1)fluid.io.save_params fluid.io.save_params:从字面意思来理解,表示保存参数。而该函数的主要目的也确实是保存训练过程中生成的各个节点之间的参数(权重、偏置等),使用fluid.io.save_params进行模型的保存,其保存的内容如下图所示: 2)fluid.io.save_inference_model fluid.io.save_inference_model:从字面上理解,表示保存可进行后续预测的模型。而该函数的主要目的也确实是保存可进行预测的模型。即调用save_inference_model函数,可在save_params所保存的参数基础上融合网络结构生成的可进行预测的模型。这一点类似于tensorflow将训练出来的ckpt文件固化成pb文件。从我们git中下载的PaddleDetection代码,在PaddleDetection-release/tools/export_model中就是利用save_inference_model导出结合后的模型。 利用export_model.py保存下来的文件如下所示:生成了两个文件,__model__和__params__文件,其中__model__表示网络结构,__params__表示训过程产生的参数。 2.模型的加载 1)fluid.io.load_params fluid.io.load_params:根据上文得知,该函数表示加载训练过程中的参数进行预测,如果要加载参数进行预测,则需要将网络结构也加载进来,PaddleDetection给出的官方预测示例就是利用该方式进行预测。 2) fluid.io.load_inference_model fluid.io.load_inference_model:根据上文得知,该函数表示加载参数和网络结构的融合体进行预测。作者在如下的内容中就是使用该方式进行预测。 3. 备注 1) 备注一 前面生成的模型文件中,__model__文件包含了NMS部分(这一点和tensorflow的pb文件不同,pb文件是没有NMS节点的)。关于__model__文件,我们可以使用Netron进行展开。Netron使用地址https://lutzroeder.github.io/netron/。打开以后可看到网络结构,在最下端发现有NMS节点。 2) 备注二 除了上述谈到的模型加载和保存的方式,还有另外一组即fluid.io.save_persistables和fluid.io.load_persistables。 如何利用飞桨进行预测? PaddleDetection里面已经有了相应的预测代码infer.py,该代码利用paddle的reader机制进行图像的预测,同时该代码使用的加载模型的方式是fluid.io.load_params。作者个人为了能配合后续在qt下运行检测,使用fluid.io.load_inference_model作为模型的加载方式,从paddle的AI Studio上截取一部分代码重新构造了预测代码。本段预测代码加载的模型是yolov3(主干网络MobileNet)训练出来的模型。 作者构造自身的预测代码思路如下图所示: 代码如下: 说明: 1. 该代码由于使用参数和网络结构融合的模型,因此对于其他库的依赖比较少,只需要将飞桨导入即可, 2. 该代码由于使用的模型文件是《__model__和__params__》,因此在使用load_inference__model时候,必须在该函数的参数中指明这两个名字。 3. 该代码中需要着重注意一下一点:由于预测加载的模型是使用yolov3训练出来的模型,因此在进行预测时要考虑图像归一化的操作,数据归一化的操作来源训练该模型的config文件,输入图像大小需要和export model时设置的图像大小保持一致 iimportnumpyasnp importtime importpaddle.fluidasfluid fromPILimportImage fromPILimportImageDraw train_parameters={ "label_dict":{0:"apple",1:"banana",2:"orange"}, "use_gpu":True, "input_size":[3,608,608],#原版的边长大小为608,为了提高训练速度和预测速度,此处压缩为448 } target_size=train_parameters['input_size'] anchors=train_parameters['anchors'] anchor_mask=train_parameters['anchor_mask'] label_dict=train_parameters['label_dict'] print(label_dict[1]) #class_dim=train_parameters['class_dim'] #print("label_dict:{}classdim:{}".format(label_dict,class_dim)) place=fluid.CUDAPlace(0)iftrain_parameters['use_gpu']elsefluid.CPUPlace() exe=fluid.Executor(place) path="C:\\Users\\zhili\\Desktop\\2"#_mobilenet_v1 [inference_program,feed_target_names,fetch_targets]=fluid.io.load_inference_model(dirname=path,executor=exe,model_filename='__model__',params_filename='__params__') classinference(): def__init__(self): print("8888888888") defdraw_bbox_image(self,img,boxes,labels,scores,save_name): """ 给图片画上外接矩形框 :paramimg: :paramboxes: :paramsave_name: :paramlabels :return: """ draw=ImageDraw.Draw(img) forbox,label,scoreinzip(boxes,labels,scores): print(box,label,score) if(score>0.9): xmin,ymin,xmax,ymax=box[0],box[1],box[2],box[3] draw.rectangle((xmin,ymin,xmax,ymax),3,'red') draw.text((xmin,ymin),label_dict[label],(255,255,0)) img.save(save_name) defresize_img(self,img,target_size):#将图片resize到target_size """ 保持比例的缩放图片 :paramimg: :paramtarget_size: :return: """ img=img.resize(target_size[1:],Image.BILINEAR) returnimg defread_image(self,img_path): origin=Image.open(img_path) img=self.resize_img(origin,target_size) resized_img=img.copy() ifimg.mode!='RGB': img=img.convert('RGB') img=np.array(img).astype('float32').transpose((2,0,1))#HWCtoCHW让矩阵进行方向的转置 img=img/255.0 img[0,:,:]-=0.485 img[1,:,:]-=0.456 img[2,:,:]-=0.406 img[0,:,:]/=0.229 img[1,:,:]/=0.224 img[2,:,:]/=0.225 img=img[np.newaxis,:] returnorigin,img,resized_img definfer(self,image_path): """ 预测,将结果保存到一副新的图片中 :paramimage_path: :return: """ origin,tensor_img,resized_img=self.read_image(image_path) input_w,input_h=origin.size[0],origin.size[1] image_shape=np.array([input_h,input_w],dtype='int32') t1=time.time() batch_outputs=exe.run(inference_program, feed={feed_target_names[0]:tensor_img, feed_target_names[1]: image_shape[np.newaxis, :]},备注:此时送入网络进行预测的图像大小是原图的尺寸大小。 fetch_list=fetch_targets, return_numpy=False) period=time.time()-t1 print("predictcosttime:{0}".format("%2.2fsec"%period)) bboxes=np.array(batch_outputs[0]) ifbboxes.shape[1]!=6: print("Noobjectfoundin{}".format(image_path)) return labels=bboxes[:,0].astype('int32') scores=bboxes[:,1].astype('float32') boxes=bboxes[:,2:].astype('float32') last_dot_index=image_path.rfind('.') out_path=image_path[:last_dot_index] out_path+='-result.jpg' self.draw_bbox_image(origin,boxes,labels,scores,out_path) if__name__=='__main__': image_path="C:\\Users\\zhili\\Desktop\\123\\2.jpg" a=inference() a.infer(image_path) PyQt5检测效果 1. 首先通过步骤1配置好的PyQt中QT Designer,创建两个Button对象,分别为“打开相机”、“开始检测”,然后创建两个Label对象,分别用于显示相机原图和显示检测后图像。 2. 创建多线程检测机制,分别给两个Button设置不同的槽函数,分别用于触发相机拍照和调用检测函数。运行infe_video.py可得到如下结果。由于作者使用的是黑白相机拍摄电脑屏幕上百度搜索出来的橘子照片,检测效果质量不高。 特别说明:该文章受到了高松鹤同学和百度飞桨团队的大力支持,表示感谢。 该项目Github地址: https://github.com/yzl19940819/Paddle_infer_python 如果您加入官方QQ群,您将遇上大批志同道合的深度学习同学。官方QQ群:703252161。 如果您想详细了解更多飞桨的相关内容,请参阅以下文档。 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu 官网地址:https://www.paddlepaddle.org.cn 飞桨开源框架项目地址: GitHub:https://github.com/PaddlePaddle/Paddle Gitee:https://gitee.com/paddlepaddle/Paddle >> 访问 PaddlePaddle 官网,了解更多相关内容。

优秀的个人博客,低调大师

新基建与智慧城市相遇 会碰撞出什么样的“火花”?

云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 近期,新基建被政府、民间、资本广泛看好,各省市相继公布投资计划,最终的数据或许会远超34万亿。这些相当于三分之一2019年国内GDP的资金全部涌入新基建建设的时候,智慧城市将获得什么样的益处? 智慧城市离不开新基建支持 数字经济以物联网、云计算、大数据、人工智能、5G等新兴技术的应用为代表,而据《智慧城市技术参考模型》显示,智慧城市产业可分为感知物联层、网络通信层、计算存储层、数据与服务融合层、智慧应用层。从本质上来看,智慧城市建设的内容就是数字经济。 而“新基建”就是服务于数字经济的新型基础设施,智慧城市相关系统和设备的稳定高效运行,离不开5G、人工智能、大数据中心等“新基建”的支持。 新基建有利于缩小数字鸿沟和地区差距 新基建的建设为智慧城市提供了一个缩小数字鸿沟和地区差距的机会。 智慧城市中的新基建,核心是将人工智能、大数据、5G等相关技术的基础设施与交通、金融、环保等具体应用领域进行连接,推动各产业的数字化发展。这有利于构建城市级数据中心,发挥人工智能效能,打破数据孤岛,促进智慧城市万物互联。 而对于基础基础设施尚不完善的小城市,智慧城市新基建也将推动经济、教育、人才等社会资源再分配,缩小与大城市之间的差距。具体而言,如果小城市也有智能服务和高速网络等服务,那么各类人才和项目就有更高的可能选择小城市,进而推动城市发展,提升我国的城镇化率。 新基建支撑城市智慧化变革 铁路、公路、电网分别支撑了机械化、电气化和自动化城市革命,而智慧化城市变革,将由新基建支撑。 目前,智慧城市建设有两个标杆:一是深圳,二是号称“智慧国家2.0”的新加坡。二者有一个共同点,那就是对通信基础设施和整体传输效率的提升。 我国未来会大力推进的智慧城市3.0时代的建设重点就是5G和云计算,不仅重视基建和信息传输效率,更加重视万物互联以及基于软件定义的城市服务。 目前,已有省市发布了相关政策,例如:重庆市住建委发布关于统筹推进城市基础设施物联网建设的指导意见,提出建设城市基础设施物联网标准体系,赋能排水、路网、停车、海绵城市等领域;河南发布674项以数字经济、先进制造业为核心的产业转型发展类项目,并提出要实现县城以上城区5G全覆盖,启动全省5G规模化商用;云南也将“5G网络全覆盖”作为十大项目之一。 发改委基础司副司长郑剑亦表示,未来将构建适应智能经济、智能社会发展需求的基础设施体系。 总而言之,新基建实现城市数字化、网络化和智能化发展,推动城市运营和治理的精细化、现代化。 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/live 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK 原文发布时间:2020-04-09本文作者:安防展览网本文来自:“51CTO”,了解相关信息可以关注“51CTO”

优秀的个人博客,低调大师

使用Java调用Apache commons-text求解字符串相似性实战

在之前的一篇漂亮国的全球的基地博客中,我们曾经对漂亮国的全球基地进行了一些梳理。博文中使用的数据来源,重点是参考以为博主分享的KML的数据,同时针对其国内的基地部署信息,我们从互联网百科的数据中搜寻到一些。其实拿到这两份数据的时候,是存在一些问题的,比如,KML的数据它的基地名称都是英文的,而在互联网上公开的数据中,良莠不齐,有的是中文的,有的是英文,有的中英文都有,而且可能还存在同样的英文,它的描述不一样的情况,比如下面的场景:

优秀的个人博客,低调大师

当安全团队在寻求解决方案的时候,他们在寻找什么?

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 虽然我们很难准确地指出信息安全市场的确切规模,但可以肯定的是,即其规模日渐增长。无论是对人力、过程,还是技术方面的投资,在未来的几年都将继续增长。但是,对于所有这些投资,如果你问一些安全购买者在找什么样的方案或产品,其中的多数可能会说还没有找到正在找的东西。 信息安全市场由大量的厂商以及子市场组成。让我们做一个大胆的假设:信息安全的购买者成功地记住了名片资料、电子邮件、职业社交网站的邀请。那么,问题就变成:企业要传达什么样的卖点,如何引起购买者的共鸣? 某厂商所强调的产品或服务也许在激烈的市场竞争中只是比竞争者稍微好一点。或者,可能厂商宣传中所描述的产品或服务并不适合购买者的策略计划或预算?或者,厂商详细描述的产品或服务,但购买者已经投资购买了呢? 这种问题还可以举出很多,真正的问题是:安全购买者在找什么呢?进一步讲,卖方如何理解购买者正在寻找的东西,从而决定自己提供的产品或服务是否适合,以及如何用适当的方式来传达服务或产品的价值?因此,测试、评估、审核在买卖双方的会话中可以起巨大作用。 拥有大型安全团队的大型企业经常对自身进行评级和测试,执行评估和自我审计,用以确认需要解决的挑战和问题。因而,这些大型企业一般都确切的知道哪些问题需要解决。因而,卖方就可以直接问买方他们在找些什么。购买者往往会非常高兴地分享自己优先考虑的问题以及近期和将来的计划。如果卖方认真倾听,就会找到所需要的信息。 但是,中小型企业怎么办?当然,中小型企业也有需要解决的问题和挑战。不幸的是,在多数情况下,这些企业并没有评测自身的资源、财力和人力,很难客观地评估其安全项目的状态,也不能有效和客观地审核安全项目的功能。 这是不是意味着中小型企业必然无法洞察应当投资的资源和时间呢?或者除了大型企业外,买方和卖方就应当总是处于不同的高度呢?当然不是,但是如何克服这种困难? 而这种情况正是自动评测和评估发挥功能的时机。中小型企业需要和大型企业一样多的评测、评估和审计能力。问题是当前的技术涉及到大量的人工过程。这个过程对大型企业来说还是不错的,但对于中小型企业来说,存在两个限制其使用这些服务的因素: 成本:无疑,这种需要人工的劳动密集型过程要求高度熟练的高级人才。这就使得人工的评测、评估、审计成本高昂,而这必然不是中小型企业的财力所能承担的。 带宽:除了依赖熟练的技术人才,这种服务还自然存在一个带宽的限制问题。即使价格不是很高,中小型企业也没有足够的带宽来执行评测、评估、审计服务。 这些问题的解决都需要评测、评估、审计过程的自动化,只有这样,中小型企业才能从中受益。 现在又回到了最初的问题上:安全购买者在找什么?在厂商们问这个问题之前,首先需要给予购买者回答这个问题的能力。而使其能够自动评测、评估和审计是完成这个任务的一个好方法。

优秀的个人博客,低调大师

SIGIR2020|KEPS:知识图谱和个性化搜索碰撞的火花

前言 今天给大家分享一篇 SIGIR 2020 的文章:KEPS,用图谱来辅助优化个性化搜索。整篇文章首先充满学术风,充分且完备的设计了模型和实验,其次很多思路也可以在工业界中进行借鉴。一开始我只是大概扫了一下作者列表,看的过程中就觉得应该是学术界和工业界合作的一篇文章,果然是人大和微软都有署名~ 顾名思义,这篇文章的主要工作是一个基于知识图谱来优化的个性化搜索模型,命名为 KEPS。整个工作可以分为四部分:首先是构建一个个性化的实体链接网络;然后再进行用户画像的构建;接下来就可以利用搜索意图和用户画像对文档进行个性化排序;最后再根据用户的点击结果对实体链接进行调整。 首先是个性化搜索的情况,本质上是根据用户的历史行为来判断现在搜索的目的。这种做法的缺点是不能利用到一些外部信息,比如樱花和日本之间的关系就无法获得;另外一方面是利用实体链接的方法,可以获得外部信息,但是不善于处理模糊语义,比如 cherry 到底是在说樱桃,还是说键盘? 直觉上很容易想到,将这两者结合起来,就可以互相弥补,实现一个有效的个性化搜索功能 上面这幅图展示了用户输入 “cherry review” 时的一个流程,从用户的历史行为可以看到这里 cherry 这个实体指的是樱桃花。接着通过实体链接图谱,找到樱花和 Tokyo,Sakura 之间的联系,进而就可以得到一些相关的文档了。 整体流程 接下来我们简单的介绍一下文章整体的思路,下面这幅图给出了本文四部分主要的流程框架: 首先是 personalized entity linking,主要是为了更好的识别 query 意图;接下来是 user profile constructing,根据 query 意图来构建用户偏好模型;第三部分是 personalized ranking,根据前面得到的 query 意图和用户偏好来构建一个对文档相关性进行个性化排序的模型;最后是 post ranking entity linking adjustment,根据用户点击的反馈来调整前面 query 实体链接的概率,进一步优化本次搜索序列中接下来的搜索结果。 personalized entity linking 首先我们搞清楚一个实体链接网络是什么形式的,一张图,节点是不同的实体,边是实体之间的链接关系。在本文中边就是两个实体之间链接的概率,更具体的说,本文中的边表示的是「用户输入的 query 中提到的实体 i 和某个实体意图 j 链接的概率」: 上面的式子是一个计算过程,在给定 query 和历史行为 H 的情况下,实体 i 是 意图 j 的概率为 p_ij。所谓的个性化的实体链接,其实就是针对不同的用户历史,这里的 p_ij 都会是不同的取值,那么问题就转变到了如何构建出来个性化的 p_ij,具体的内容通过下面这幅图进行介绍: 以中间为界,可以将上下两部分分为 query 的实体和文档的历史交互记录,以及 query 的实体和对应意图之间的历史交互记录。而每一部分又可以左右分为长期的历史行为和短期的历史行为。 在这里需要补充一个作者提到的关键点,作者认为用户的历史查询可以分为多个 session,每个 session 是一个短期历史行为,而整个历史行为则是作为长期历史。比如用户当前想搜索一些关于旅游的信息,那么当前这个 session 中他搜索的行为都是一个主要目的,本次搜索就对下一次起到重要影响。 上面 p_ij 公式中的 f(*) 函数的内容就如下: 这两个式子分别计算了当前 e_ij 和当前 query 的关联程度,以及 e_ij 和历史行为的关联程度,在历史行为部分也分别考虑了长期和短期。 通过这种办法可以构建出一个个性化的实体链接图,实体与意图之间的边就是 p_ij。接下来介绍用户画像的构建方法。 user profile constructing 使用前面的实体链接来反映用户的搜索意图,对应的来检索用户与此意图相关的搜索历史,通过相应的文档点击历史来构建用户偏好。在本文中,使用 key-value memory network 来保存用户的历史。与第一部分类似,本文既考虑实体的历史记录,也考虑文档的历史记录。整体结构如下: 这里作者利用 memory network 来构建用户偏好,分别从实体的 memory network 和文本的 memory network 两部分来构建,以前者为例,我们简单的介绍一下。 entity memory network 这里将用户历史行为中的 query 「实体」向量作为 key,然后点击过的文本向量作为 value,然后利用下面的公式来计算用户短期历史的实体偏好,长期历史只需要将公式中所有的 s 换成 l ,同样的计算思路。 这里的 k 表示 memory network 中的 key, v 表示 value,所以简单点理解计算思路就是,利用实体 key 和前面的实体链接概率图来作为权重,再对 value 进行加权,获得最终的偏好表示。 文章中对得到结果进行了进一步处理,但是和这个思路一致,将得到的偏好和当前 query 结合起来再查询一次 memory network,也就是图中标注的 read 2 hop。 text memory network 文本的 memory network 也是类似的思路,不同之处在于前面的 entity memory network 将 query 的实体向量和文档的向量分别作为 key 和 value,而这里将 query 本身的向量作为 key,将对应点击过的所有文本向量的平均值作为 value。 不同的 key 和 value 其实是提供了不同的特征表达方式,而考虑到直接用 query 的 embedding 不能充分的表示当次搜索的意图,作者还添加了 t_s 短期兴趣作为 query 的补充。所以计算方法就成了如下这样: 计算思路和前面一致,这里是用短期历史作为例子,长期也是同样的思路。 personalized ranking 通过前面的两个部分,可以得到用户的意图概率,用户的偏好画像,然后就可以进一步来对候选的 item 进行排序,这里以文档排序为例,计算公式可以简化为这样: 相当于分别计算文档和用户意图的相关性,候选文档和用户偏好的相关性,以及候选文档与输入的 query 之间的相关性。三部分的 embedding 向量进行拼接,经过一个 MLP 层就是最终的排序得分。 以文档与意图的相关性进行示例: 每次的计算中,同时考虑了文档和长期与短期,文本与实体,共两个维度,四种组合的相关性,并将最终结果拼接起来作为最后的计算结果。 这样就充分考虑了前面的工作成果,并将其结合起来作为对候选文档的个性化打分的依据,输出一个个性化的排序结果。 post ranking entity linking adjustment 在给用户展示了排序好的文档后,根据用户的当次点击情况,可以再作为标签反馈,对实体链接图进行调整。 作者在文中举了这样一个例子,首先,每次搜索的一个 session 中,用户搜索的意图背景可以看做是相似的。在这样的前提下,假如用户搜了 Java 相关的内容,当他再搜编程书的时候,我们就可以优先展示 Java 相关的编程书籍。 具体的调整思路,也就是根据用户点击的文档,以及其中提到的实体,来更新前面构建的个性化实体链接图: 训练与实验 最终作者将所有的内容整合起来,用一个 pair-wise 的损失函数来直接进行训练,一次传播中对涉及的所有参数都进行更新,具体的 loss 就比较简单了: d+ 和 d- 两个分别表示正样本和负样本,也就是给用户展示了以后,用户点击与每点击的文档。 实验部分作者做了很多工作,感兴趣的同学可以去找论文看看,作者除了对比了一些 baseline 的搜索方法,也对比了一些 sota 的工作。 除了与别的工作作对比之外,作者也进行了很多自身的对比,比如删除自己模型的不同部分,分别进行效果的验证。大家可以在后台输入关键词获得论文,再自行欣赏。 总结 这篇文章整体的思路还是比较清晰,很多设计不是非常新颖,但却考虑的很周到,事业设计也很完备。我们组做搜索,感觉对于长短期历史行为的设计,的确得到了一些启发,可以做的更精细些。相关从业者的小伙伴可以灵活借鉴其中的一些思路,对自己的工作提供帮助, 想看论文的小伙伴,可以在后台输入「KEPS」,获得论文的网盘链接(PS:因为之前下载的比较早,后来有朋友想看这篇文章说找不到,不知道是啥原因,我后来也没找到,所以放到了网盘里,供大家有需要的小伙伴学习。 喜欢文章的同学点个再看哟~ 往期回顾 一篇文章告诉你搜索引擎是如何工作的 【Embedding】GraphSAGE:不得不学的图网络 本文分享自微信公众号 - 机器学习与推荐系统(ml-recsys)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

3D打印与大数据会碰撞出什么样的火花?

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 现如今,投资界纷纷将目光聚焦在移动互联网应用、互联网金融以及智能穿戴设备等项目,似乎它们将是一批风口上的“猪”。而小编将要阐述和挖掘的这座金矿,就是一头能真正能飞起来的“猪”——以3D打印和大数据为基础的分布式制造。这种制造模式将彻底打通互联网业和制造业,给人类带来深刻的社会变革。 新技术下的争议 3D打印技术,是先在计算机上设计好CAD三维模型,然后3D打印机将材料逐层叠加,最终生成产品。3D打印技术具有按需制造、减少废弃副产品、材料多种组合、精确实体复制、便携制造等多种优势。这些优势可以降低约50%制造费用,缩短加工周期70%,实现设计制造一体化和复杂制造。 目前3D打印技术已广泛应用于国防军工、航空航天、船舶汽车等工业领域,在建筑行业、医疗卫生、人偶玩具、服装服饰、食品加工等民用级行业则刚刚起步。 2012年4月,英国《经济学人》刊文认为,3D打印技术是第三次工业革命***标志性的生产工具,该技术与其他数字化生产模式结合,将会推动第三次工业革命的实现。此论一出,反对的声音层出不穷。 最让业界耳熟能详的事例,莫过于富士康科技集团董事长郭台铭的“倒写论”。这位制造业的大鳄尖锐地指出,3D打印只是噱头,如果真的能颠覆产业,“那我的‘郭’字倒过来写”。 TCL董事长李东生认为,关于3D打印大部分说法言过其实,他不相信用3D打印技术能够做出一台电视机来,从哪个角度来看都没有可能性,这只是神话色彩。 比较温和一点的观点则认为,3D打印技术是现有制造业的补充和创新,而非完全颠覆性的革命。例如塞富亚洲投资基金合伙人阎炎说:“我不认为马上对产业会有革命性、风暴般的影响,但会逐步改变。它不像互联网技术、干细胞技术,深刻改变整个人类生存方式。 为什么《经济学人》与这些专家学者的观点有着如此大的反差? 单从产生制造工具的角度来看,3D打印技术的确只是制造业的补充,目前还存在一些技术上的缺点。 首先是精度不够高。在逐层制造过程中,虽然每个层次会被计算机软件切得很薄,但在一定微观尺度下,仍会形成一定厚度的一级级“台阶”,这就是所谓台阶效应。 其次是打印速度慢。3D打印受制于“三次方定律”,即随着体积的增加,打印时间、材料数量都会成三次方增长。如果想要打印两倍于原体积的物体,就需要花费8倍的时间和成本。 第三是机械强度差。受材料和成型技术的影响,一些产品的耐久性和可靠性还存问题,在长期应用、耐疲劳等方面是弱项。用于航空航天业、汽车制造业的金属3D打印除外。 除了上述主要缺点之外,目前3D打印技术还存在材料种类较少、材料昂贵、机器无法通用等问题。 沃顿商学院教授卡尔.乌尔里希(KarlUlrich)在《华尔街日报》撰写的一篇专栏文章中指出,“3D打印每个材料单位都必须层层叠加。所以,3D打印的速度很慢。”根据乌尔里希的说法,工厂中一台注塑机每15秒就可生产100个***无缺的塑料勺子,但性能***大的3D打印机每10分钟只能生产一个勺子,“这样使生产效率降低了4000倍。”由此看来,3D打印技术在批量制造中的确不占优势。 3D打印真正的颠覆性力量 那么,3D打印技术的优势到底在哪里呢?为什么《经济学人》会认为“3D打印技术是第三次工业革命***标志性的生产工具”呢?我们先来看看传统制造业的产生、销售模式是怎样的。 传统的制造和销售模式,是在工厂里通过流水线作业,将产品生产制造出来,然后通过线上的电商平台、线下的销售渠道(批发商、零售商)将产品发送到世界各地的消费者手中。主要缺点如下: 一是在设计阶段,存在大量设计作品浪费。厂家难以准确把握市场的具体需求,但又因为昂贵的开模费用,只得从众多的设计作品中挑选一个来生产,很多优秀的设计作品无法通过生产来实现价值。 二是在产品生产与流通过程中,会消耗大量的资源。在生产之前,原材料要通过物流环节运送到工厂;在生产过程中,主要采取模具铸造和机械加工等方法,其造型能力受制于所使用的工具,物体形状越复杂,制造成本越高;产品生产出之后,需要将产品运送到各地,会占用能源、交通、仓储、人力等很多资源。 三是在消费端,产品不一定能真正受到用户的喜欢。通过传统制造方式生产的产品,一般具有一定的刚性需求,但在创意、设计方面,却未必受到用户的欢迎。用户能接受,是因为没有更多的选择。特别是用户需要的个性化定制的产品,传统制造方式因为本成原因很难现实。 而解决传统制造业这些痼疾的***方式,就是建立以大数据为支撑的设计师平台,结合3D打印“个性化定制”的优点,打造出遍布世界各地的分布式制造点。其主要思想如下: 3D打印目前存在的“打印速度慢、难以批量成品”的问题,可以通过分布式制造来解决。分布式的概念,在《第三次工业革命》的作者,美国经济学家杰里米.里夫金的思想中已有体现,只不过他提出第三次工业革命的代表是分布式能源。笔者认为,分布式制造与分布式能源并不矛盾,只不过一个是未来工业的生产方式,另一个是工来生产的原动力。幂派mip.ai,这个区块链3D打印平台,链接了全球的3D打印机,变成一个个制造节点。 在分布式制造的基础上,产品生产的单位时间消耗变得无足轻重,1万个分布式制造点生产出单个成品,与1万个成品在1个加工厂制造,其产能一样。而且前者无需仓储、物流的环节。 要打造分式制造点,要解决的核心问题之一,就是必须拥有以庞大的设计作品为基础的设计师平台。 在这个平台上,任何人即使不具备建模的知识,但只要有产品设计的创意,就可以和设计师及时进行沟通,设计出自己想要的数字模型,然后通过3D打印机来实现;另一方面,这个平台必须能够确保证设计师赢利,设计师的创造力、创意思维才能源源不断地发挥出来。 一旦解决了这些问题,互联网与制造业就可以彻底打通。有了完善的设计师平台,在人群聚集的互联网上,创新创新思想就可以得到实现;有了以3D打印机为工具的分布式制造点,可以为制造点周边的普通用户提供个性化定制的产品。 这些分布式制造点如何去打造,笔者认为有三种可能。 一是传统的小商品店、零售店,就是分布式制造点,比如文具店、灯具店、饰品店、眼镜店、蛋糕店等等,在当下和未来,都可以结合3D打印技术和传统制造方式,完成一些产品的实现,比如创意U盘、笔筒、灯罩等等; 二是具有创新能力的“创客”,他们将是未来分布式制造点的一个分支,他们可以完成一些新产品的实现; 三是具有一定经济实力的企业,他们能购置价格昂贵的工业级3D打印机,能生产制造出材料多样的汽车配件、建筑、装修、服装、鞋类等产品。 这种以创意设计平台与分布式制造的方式,将会形成一种全新的D2U(DesignertoUser)的商业模式。即线上的设计师直接与用户对接,从而省去大量的中间环节。 而3D打印产品本身,如果与大数据平台相对接,会产生更大的价值。下面以笔者团队研发的三维定制鞋为例,简单介绍一下这种产品的优势。 以大数据平台为基础的三维定制鞋是3D打印技术在垂直商业领域中的具体落地项目之一。通过对广泛人群的足部特征扫描、采样,将信息汇聚到云计算中心,形成规模庞大、可详尽分析的抽象数据,再结合3D打印定制化生产的特点和传统制造批量生产的优势,将虚拟的数据对象转化为实体成品。 精确的市场定位。人类的足部三维数据因地域、人种、个体特征等因素差异较大。传统的制鞋模式只能以尺码进行估计,无法对各类足部疾病,如平足、高足弓、先天性足部缺陷等进行长期的数据跟踪。而三维定制鞋加上大数据的模式,前端精确地对个体的足部形态进行数据采集,后端的分布式存储集群对海量数据(603138)进行汇总。用户可以利用大数据平台的查询检索功能,找到真正适合自己的鞋类,实现个性化定制;鞋类厂商则可以根据特殊人群的脚型数据,更加精确地批量生产。 良好的用户黏度。传统电商的优势主要体现在交易的便捷性,但用户在交易完成后,很少因为平台本身而产生依赖,同样服务质量的电商,用户的选择余地很大。而对于以人体大数据为支撑的平台,比如三维鞋类电商,则可以根据人的足部生长发育变化随时进行调整;不仅如此,一旦提供某个阶段的足部数据,用户就可以适应不同品牌、不同类型的鞋子。这两方面的特点,会使用户在线上线下不断地参与交互,所产生的用户黏度远远超过传统电商。 平台的垄断优势。大数据实施的对象是人,当某家公司掌握了足够多的人类数据时,也就意味掌握了足够多的变现可能,“谁掌握了大数据,谁就掌握了人类”。三维定制鞋与大数据平台的结合,是大数据落地的优良的入口。未来不论是鞋类厂商还是其他传统电商,想要获得用户的足部数据,都要依赖以大数据为支撑的三维鞋类电商提供支持;谁率先将这种平台推向市场,谁就拥有数据垄断的先机。 综上所述,一旦形成以大数据平台为基础的3D打印分布式制造模式,将会产生颠覆性力量: 冲击传统电商。现在的电商运营模式是,在网上促成用户交易,通过物流将产品发售到用户手中。而未来,分布式制造方式,虽然不能达到人手一台3D打印机的程度,但人们居住周围的分布式制造点,可以就近提供相应的产品。人们无需在网上下单,就可以在分布式制造点的电脑里选择数字模型,然后打印出来。按照目前美国的“每4公里范围内有一台”3D打印的普及程度,在中国这种人口众多的地方,分布式制造点的辐射范围,会大大缩短。可以预见,这种制造方式的影响下,未来电商的作用会大大缩减,只能销售3D打印技术无法完成的产品,而物流的作用,更多的体现在对3D打印耗材的配送上。 改变制造模式和就业模式。从政治经济学的角度来看,现有的资本主义生产关系的实质是以生产资料私有制为基础的雇佣劳动制度。资本家占有生产资料,包括土地、厂房、机器设备、工具、原料等等,由被雇佣的劳动者付出劳动获得薪酬。分布式制造方式的重要意义在于:生产工具(3D打印机)不再被少数资本家独占,每一个个体劳者拥有极大的生产工业化产品的能力,并且会极大地提升他们的创新创意能力,这种模式是对传统工业化大生产、特别是劳动密集型制造业的重要破突,将会极大的提升人类社会的生产力,会改变当前的产业结构,甚至社会结构。 3D打印技术的未来与前景 我们可以想象一下,未来的服装店,将会把顾客的身材数据扫描之后传输到云端数据库,配合设计师的设计方案,以最贴身、最舒服的结果,将产品打印出来。这种在家里就可以完成的服装设计、生产方式,值得各界广泛关注和思考。 当然,现有的3D打印技术,特别是桌面级的技术,还不能达到无所不能的程度,但同样也是遵守摩尔定律的,相信在未来5至10年,3D打印技术将会有巨大的突破。

优秀的个人博客,低调大师

当阿里技术小哥遇见设计师妹纸,会碰撞出什么火花?

以往,阿里巴巴也会用一些简单的需求分发系统来应对。但由于实际业务场景的复杂性,需求在分配上无法做到合理与精准。加上缺乏评价和追踪体系,外包同学的执行效果得不到监控,最后形成的素材也难以沉淀。最重要的是,外包需求的分发与结算步骤完全隔离,外包素材的审核与结算只能依靠财务同学在线下进行人工方式核算,审核难度与工作量可想而知。 因此,阿里巴巴UED计件平台项目正式建立,通过技术手段解决上述痛点。 UED计件平台 从分发到结算全程可控 阿里使用SOLID设计原则搭建起了UED计件平台架构。整个架构的层次设计参考DDD模式,采用DIP的方式,将总体结构分为接口(Interface)层、基础设施(Infrastructure)层、API层以及命令查询职责分离(CQRS)模式。 UED计件平台基础架构 基础设施层打通了ACL、财务系统、采购平台、工作流、支

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册