CN111880821A - 一种基于容器化的交通算法标准化封装方法 - Google Patents
一种基于容器化的交通算法标准化封装方法 Download PDFInfo
- Publication number
- CN111880821A CN111880821A CN202011036713.5A CN202011036713A CN111880821A CN 111880821 A CN111880821 A CN 111880821A CN 202011036713 A CN202011036713 A CN 202011036713A CN 111880821 A CN111880821 A CN 111880821A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- traffic
- interface
- gunicorn
- mirror image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Abstract
一种基于容器化的交通算法标准化封装方法,属于智能交通数据处理技术领域。本发明包括步骤S1.完成交通算法核心内容开发;步骤S2.采用python的Flask,开发HTTP协议的算法RESTful接口;步骤S3.将算法和运行的环境进行Docker镜像制作;步骤S4.镜像部署到交通大数据平台的算法仓库上;步骤S5.在交通大数据平台上申请接口服务,输入数据后成功调用算法接口并返回输出结果。本发明实现封装后的交通算法统一存放在大数据平台内,不需要分别存储在平台子系统中,用户可以从统一的算法池里调用交通算法,容器化交通算法镜像启动避免了交通算法运行的参数、接口混乱,用完即释放容器,减少了信息传输量。
Description
技术领域
本发明涉及一种交通算法的独立封装方法,属于智能交通数据处理技术领域。
背景技术
近年来,智能交通领域依托大数据技术的发展得到了迅速发展,为了服务智慧交通的监测、管理和研判诞生了许多交通大数据平台。这些交通大数据平台不仅会采集来自于某地区的信号管控、交通流监测、人员出行等多方多源交通数据,还会收集经济、环境等跨领域数据。为了给综合交通治理赋能,除了收集和统计数据之外,还需要利用这些数据进行分析和计算。因此,大数据平台也会部署交通系统算法,如信号调控、交通流和交通指数计算与预测、人口职住关联分析、人员出行监测等算法。交通算法在交通大数据平台上的应用不仅对交通实时与离线的监测预警提供可靠的数据服务,还为交通治理与决策提供了强力的数据支持,是大数据平台运作的骨架。
交通大数据平台上的算法会根据平台接入数据的变动,进行多次调用、调参或反复训练,对比和观察不同结果,如果直接调用算法代码在一台服务器上运作,会带来大量的时间消耗;而为了得到更精准的计算结果,同一个数据还需要调用不同的算法进行计算对比,更进一步地说,这些算法是不在同一个大数据平台上的算法,迁移或调用需要消耗大量资源。此外,对于为不同客户提供算法和数据服务的一方,如果不能提供统一标准,直接调取,每次都需要定制开发,是一个巨大的挑战。
目前云平台服务模式主要分为三大类,分别是基础设施即服务(Infrastructureas a Service, IaaS)、平台即服务(Platform as a Service, PaaS)和软件即服务(Software as a Service, SaaS)。IaaS主要提供物理数据中心和物理基础设施服务,SaaS主要提供完整的业务层面的应用服务,如目前大部分交通大数据平台,能直接为用户提供数据分析与展示,PaaS为中间层服务,提供标准化的组件,如标准监控、数据库、各种开发组件、标准数据、标准算法,服务于业务层面的需求。
Docker是一个PaaS提供商dotCloud的基于LXC的一个开源高级容器引擎,该容器引擎基于Go语言并遵循Apache2.0进行开发,源代码托管在Github上。开发者使用Docker,将代码以及需要的依赖环境打包到一个可移植镜像中,即可发布到任何一台机器上或虚拟化运行,这样的代码处理被称容器化处理,。容器化处理的代码之间相互之间不会有任何接口,属于隔离状态,满足目前大数据平台对于算法快速交付的需求。
现有“交通大数据平台”的技术发展情况如下:
(1)申请号为201710958539.1的专利,“公共交通出行服务大数据平台”公开包括实时数据流处理子系统与大数据深度分析子系统;其中大数据深度分析子系统运用数据处理技术,根据各交通子系统的需求和它们之间的内在联系,对来自多来源渠道、格式不一致的数据在综合交通信息的基础上进行抽取、集成,并进行深度分析与处理,获得可用于决策的模式、模型、规则和知识;运用的数据处理技术为数据集成技术、人工智能与数据挖掘技术或决策支持与专家系统。
(2)申请号为201610587725.4的专利,“一种智能城市交通管理平台”,包括智能车辆系统、高精度地图系统、交通管理系统及车辆云系统;其中,交通管理系统,对高精度地图系统和智能车辆系统提供的信息进行整合,表征交通情况;自我学习优化,根据请求向其发送交通信息;所述车辆云系统,对不同智能车辆系统上采集的数据进行识别学习和融合,将学习情况发送到智能车辆系统。
交通管理系统包括交通规划学习模块、交通流信息模块及交通标志与信号模块;其中,交通规划学习模块,用于交通管理系统根据历史规划数据(通过交通流信息计算出来的通行效率、通行能力和车辆通行时间等)进行自我学习优化;交通流信息模块,用于接收高精度地图系统提供的实时交通地图和智能车辆系统提供的车辆的状态、动作和规划信息,将信息进行整合,表征实时和未来一段时间内交通情况;所述交通标志及信号模块,用于接收交通流信息模块和交通规划学习模块传送的信息,根据信息结果动态规划整个交通系统的控制规则,即交通标志和信号,并在智能车辆系统发送请求时将其发送给请求车辆。
车辆云系统包括图像识别离线学习模块、驾驶模式离线学习模块及智能学习交流融合模块;其中,图像识别离线学习模块,根据智能车辆系统上的相机采集的数据进行学习训练;驾驶模式离线学习模块,根据车辆实际运行时车辆的状态、动作和乘员的驾乘感受进行驾驶模式学习,找到类似于人的合适的驾驶模式;所述智能学习交流融合模块,是车辆云系统学习和智能车辆系统学习之间的相互交流与借鉴的模块,将车辆云系统学习的结果和众多的智能车辆系统的学习结果进行比较与综合,使得不同车辆之间可以通过数据的离线交互学习实现优势互补。
高精度地图系统、交通管理系统及车辆云系统均是相对独立地设置在平台上,每个系统中的各个模块均是通过平台上的终端服务器在接收智能车辆系统的无线发送模块通过无线网络发送的信息,并且通过平台上的终端服务器对接收到的信息进行处理;终端服务器同时也根据智能车辆系统发送的请求通过无线网络将信息发送出去。高精度地图系统与交通管理系统之间的信息传输也是采用上述方式进行的。
(3)申请号为201510518249.6,“基于Docker的人工交通系统大规模计算实验方法”,提供的一种基于Docker的人工交通系统大规模计算实验方法,包括:获取Docker基础镜像;将人工交通系统计算实验引擎封装在所述Docker基础镜像中得到所述人工交通系统计算实验引擎的镜像;在Docker基础镜像中安装Mono,利用计算实验设计器设计计算实验,并存储到数据服务中;从所述数据服务中获取所述计算实验,并进行部署和管理,可以利用数据平台运行人工交通系统的计算实验。
现有技术的缺点:
(1)申请号201710958539.1专利,“公共交通出行服务大数据平台”,使用单一平台的定制开发算法对数据进行分析处理,开发成本高;
(2)申请号201610587725.4专利,“一种智能城市交通管理平台”,使用不同的系统独立设置在平台上,算法独立存在于每个系统中,通过平台的终端服务器对不同系统的信息和算法进行传输,传输成本大;
(3)申请号201510518249.6专利,“基于Docker的人工交通系统大规模计算实验方法”,使用单一的算法引擎,基础镜像安装Mono后需要进行一次封装,算法引擎需要与第一次封装的镜像进行的二次封装后才能运行,不提供对外调用接口;
基于上述陈述,亟需提出一种交通算法引擎的封装方法,以解决交通算法在交通大数据管理平台中被不同用户调用时运行的参数、接口混乱,导致信息传输量过大,消耗大量资源,带来大量的时间消耗的问题。
发明内容
本发明提供了一种基于容器化的交通算法标准化封装方法,在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。
本发明的技术方案:
一种基于容器化的交通算法标准化封装方法,包括以下步骤:
步骤S1.完成交通算法核心内容开发;
步骤S2.采用python的Flask,开发HTTP协议的算法RESTful接口;
步骤S3.将算法和运行的环境进行Docker镜像制作;
步骤S4.镜像部署到交通大数据平台的算法仓库上;
步骤S5.在交通大数据平台上申请接口服务,输入参数后成功调用算法接口并返回输出结果。
优选的:使用步骤S6替换步骤S5,步骤S6为申请镜像下载服务,镜像申请可以通过交通大数据平台的算法申请功能提交申请,经过平台管理员审批,管理员同意下载,平台即给用户邮箱发送邮件,内附下载连接。
优选的:步骤S2中采用python的Flask,开发HTTP协议的算法RESTful接口的具体步骤是:
步骤S21.配置算法调用接口开发工具;
步骤S22.完成算法调用接口框架安装和算法调用接口生成。
优选的:配置算法调用接口开发工具过程,选定gunicorn和gevent组合来装载运行Flask应用,具体方法是:
步骤S211.安装插件gunicorn和gevent;
步骤S212.通过进程参数worker、工作方式参数worker_class、监听的端口和IP参数bind书写gunicorn的配置文件,完成设置gunicorn内部参数;
步骤S213.运行插件,在运行插件过程中,使用gunicorn命令测试是否可以正确运行。
优选的:完成算法调用接口框架安装和算法调用接口生成的具体步骤是:
步骤S221.通过pip来下载并安装Flask模块;
步骤S222.创建一个叫run.py的脚本测试示例并将其初始化;
步骤S223. Flask通过python装饰器实现构建映射,构建从URL到python函数的映射关系;
步骤S224.启动服务器,启动Flask项目的RESTful接口服务;
步骤S225. 根据步骤S222-S223完成MapMatchAPIFrame.py算法文件的接口框架开发。
优选的:所述步骤S3中,将算法和运行的环境进行Docker镜像制作的具体步骤是:
步骤S31.创建Dockerfile,选择基础镜像、镜像目标路径;
步骤S32.在Dockerfile中设置执行Flask框架的接口配置文件;
步骤S33.设置镜像中生成接口所需的gunicorn.conf.py的启动命令和gunicorn的配置参数;
步骤S34.编写执行命令:gunicorn MapMatchAPIFrame:app -c gunicorn.conf.py,再运行镜像制作指令,生成算法镜像,MapMatchAPIFrame是算法py文件的名字。
优选的:步骤S33中,gunicorn的配置参数包括进程参数worker、工作方式参数worker_class、监听的端口和IP参数。
本发明具有以下有益效果:
1. 本发明遵循算法封装规范,将标准接口封装与交通算法进行封装,制作镜像,通过启动容器来使用交通算法,有利于隔离同时运行的不同的交通算法;同时,通过镜像命名规范能够将交通算法分为不同类别,方便查询和部署;
2.本发明实现封装后的交通算法统一存放在大数据平台内,不需要分别存储在平台子系统中,用户可以从统一的算法池里调用交通算法,容器化交通算法镜像启动避免了交通算法运行的参数、接口混乱,用完即释放容器,减少了信息传输量;
3.本发明提供的一种基于容器化的交通算法标准化封装方法,满足了不同业务平台或客户对交通算法的快速部署需求,不同平台只需要在存储封装好算法的PaaS平台上选择并快速部署自己需要的算法,节省开发成本;
4.本发明的一种基于容器化的交通算法标准化封装架构里提供了对外调用接口服务,满足客户端对不同交通算法的调用需求,没有指定计算引擎,方便了用户的二次开发。
附图说明
图1是一种基于容器化的交通算法标准化封装方法中交通算法镜像封装与部署的步骤图;
图2是交通算法模块封装的整体架构图;
图3是配置算法调用接口开发工具的示意图;
图4是完成交通算法调用接口框架安装和算法调用接口生成的示例;
图5为设置镜像的requirements.txt文件示例;
图6为设置镜像的gunicorn.conf.py文件示例;
图7为Dockerfile配置示例;
图8是具体实施方式四中,上传算法镜像示例;
图9是具体实施方式四中,登录服务器并下载镜像示例;
图10是启动算法容器示例。
具体实施方式
下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本发明公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
具体实施方式一,结合图1-图5说明本实施方式:目前算法采用Flask框架实现基本的接口服务,Flask是python的一种web框架,最大的特征是轻便好用,能让开发者自由灵活的兼容要开发的应用;
本实施方式中选定gunicorn和gevent的组合来装载运行Flask应用,因此Dockerfile中需要设置执行gunicorn配置文件。
算法都需要封装成RESTful接口并打包成Docker镜像,托管到交通大数据平台上统一运行与管理;
如说明书附图1和图2所示,图1为算法镜像封装与部署的步骤图,图2为算法模块封装的整体架构图,其中算法核心功能指的是算法实现的核心代码;RESTful HTTP表示算法接口基于HTTP协议采用RESTful架构进行开发,Docker镜像表示算法和运行环境进行镜像的封装和部署。
基于容器化的交通算法标准化封装方法流程包括:
步骤S1.完成算法核心内容开发;
步骤S2.采用python的Flask,开发HTTP协议的算法RESTful接口;
步骤S3.将算法和运行的环境进行Docker镜像制作;
步骤S4.镜像部署到大数据平台的算法仓库上;
步骤S5.在交通大数据平台上申请接口服务,申请通过后输入参数后成功调用算法接口并返回输出结果;
其中步骤S2中采用python的Flask,开发HTTP协议的算法RESTful接口步骤中,Flask应用是一个符合WSGI规范的python应用,不能独立进行生产环境的部署与运行,需要依赖其他的组件提供服务器功能,因此选定gunicorn和gevent的组合来装载运行Flask应用。
具体实施方式二,本实施方式的一种基于容器化的交通算法标准化封装方法中,用python的Flask,按RESTful架构开发HTTP协议的算法调用接口的具体步骤是:
步骤S21.配置交通算法调用接口开发工具;
步骤S22.完成交通算法调用接口框架安装和算法调用接口生成。
其中,结合说明书附图3解释说明步骤S21配置交通算法调用接口开发工具的具体步骤是:
步骤S211.安装插件gunicorn和gevent;
步骤S212.配置文件;
书写gunicorn的配置文件(文件名gunicorn.conf.py),设置gunicorn内部参数,包括进程参数worker、工作方式参数worker_class、监听的端口和IP参数bind等,例子如下:
步骤S213.运行插件;
使用gunicorn命令来测试是否可以正确运行,命令如下:gunicorn run:app -cgunicorn.conf.py,其中run为Flask的启动算法文件测试例子run.py,app是Flask的一个运行实例,-c gunicorn.conf.py 是启动Flask时指定的配置文件,详细配置见步骤S212。
结合说明书附图4解释说明步骤S22完成交通算法调用接口框架安装和算法调用接口生成的具体步骤:
步骤S221.通过pip下载并安装Flask模块;
步骤S222.创建一个叫run.py的脚本测试示例并将其初始化;
Flask程序需创建一个实例对象,建立一个run.py脚本测试示例,脚本内常用Flask方法如图4,具体为:首先,建立测试脚本run.py;其次,创建实例app ;再次,编写内容;最后,直接运行启动服务或通过gunicorn启动RESTful接口服务;
步骤S223. Flask通过python装饰器实现构建映射,构建从URL到python函数的映射关系;
程序实例需要知道所有URL对应的执行代码,所以要有从URL到python函数的映射关系,即路由(Router)。Flask通过python装饰器来实现映射,具体操作如图4:
程序从程序化实例app开始,构建了根目录‘/’的路由,其实现的程序是hello()函数,返回了一段‘hello docker&flask’字符型,具体算法实现程序将写在此模块下;
步骤S224.启动服务器,启动Flask项目的RESTful接口服务。
程序实例用run方法来启动服务器,其中debug参数可以设定是否接受调试,是否返回错误信息,还可以通过host和port的参数指定绑定IP和端口,省略指定IP和端口的操作例子如图4;
启动服务后,通过调用接口返回‘hello docker&flask’的信息,进一步地,通过启动gunicorn run:app -c gunicorn.conf.py,启动Flask项目的RESTful接口服务。
步骤S225.根据步骤S222-S223完成MapMatchAPIFrame.py算法文件的接口框架开发。
接口的请求方式:主要使用Requests下的POST方式发送和接收请求。
接口的命名规范:
编写接口命名规范为:用正斜杠(/)表示层级,如“域名地址/主题/算法名称/版本号”,其中功能名称采用驼峰式命名方法,第一个单词以小写字母开始,第二个单词首字母大写,算法名称采用“主谓”结构,以精简明了为原则,API地址接口必须加版本号。需要规范使用自定义的交通算法主题对算法进行分类,如车辆主题下的地图匹配算法接口名称为:“http://127.0.0.1/vehicle/mapMatch/v1.0”,其中vehicle为主题名称,mapMatch指接口算法功能为地图匹配,v1.0指算法版本号。
接口异常标准:算法接口异常标准设计如下所示。
具体实施方式三,本实施方式的一种基于容器化的交通算法标准化封装方法中,
镜像名称规范:
镜像名称(Repository)是指镜像全名在冒号(:)之前的部分,冒号(:)之后的部分是镜像的标签(tag),用来区分镜像的版本。如名为my-app:3.1.4的镜像,my-app就是镜像的Repository部分。
镜像名称用正斜杠(/)分隔开,‘/’之前的部分是可选的DNS格式的主机名。主机名必须符合DNS规则,但不得包含下划线‘_’字符,主机名可以有如:8080格式的端口号。
镜像名称命名规范为:“主机名/镜像仓库名称/主题/算法名称”,算法名称采用“主谓”结构,单词全为小写字母,以短横线‘-’分割单词,以精简明了为原则。镜像名不允许以分隔符开头或结尾。主题与数据标准手册主题相对应,如车辆主题下的地图匹配镜像名称为:“http://nexus.sutpc.cc:9091/sutpc/transpaas/vehicle/map-match”其中http:// nexus.sutpc.cc:9091指主机名,sutpc/transpaas指镜像仓库名称,vehicle为主题名称,map-match为镜像算法名称。
将算法文件MapMatchAPIFrame.py和算法接口运行的环境进行Docker镜像制作的具体步骤是:
步骤S31.创建Dockerfile,选择基础镜像、镜像目标路径;
步骤S32.在Dockerfile中设置镜像的requirements.txt文件
设置requirements.txt目的是为了设置Flask框架的接口配置文件参数(如图5所示),requirements里面的列表为需要安装的算法包列表,有等号的为指定版本号,在Dockerfile里使用RUN命令读取并安装该文件的列表,按顺序运行的安装命令为:
Pip3 install –no-cache-dir -r flask==0.12.2
Pip3 install –no-cache-dir -r flask-cors==3.0.2
Pip3 install –no-cache-dir -r flask-assets
……
步骤S33.设置镜像中生成接口所需的gunicorn.conf.py的启动命令和gunicorn的配置参数;
如图6所示,设置gunicorn的配置参数,包括进程参数worker、工作方式参数worker_class、监听的端口和IP参数bind;
workers = 10 ,进程数10个;
worker_class= “gevent”,选择“gevent”方式工作;
bind= “0.0.0.0:8888”,放宽监听IP,任何服务器的8888端口均能访问;
步骤S34.在Dockerfile里编写命令:gunicorn MapMatchAPIFrame:app -cgunicorn.conf.py, 再运行镜像制作指令,生成算法镜像;
如图7所示,以官方算法包geopandas作为基础镜像python3-geopandas-v3为例,为MapMatchAPIFrame.py这个算法文件制作镜像需要按S31、S32和S33的步骤创建Dockerfile、设置执行Flask框架的接口配置文件requirements.txt,并设置镜像中生成接口所需的gunicorn.conf.py的启动命令和参数;然后编写生成接口的命令:gunicornMapMatchAPIFrame:app -c gunicorn.conf.py,再运行镜像制作指令:docker build -t‘python-geopandas-v2’,生成一个名叫python-geopandas-v2的算法镜像。
具体实施方式四,本实施方式的一种基于容器化的交通算法标准化封装方法中,步骤S4.镜像部署到大数据平台的算法仓库上;步骤S5.在交通大数据平台上申请接口服务,输入数据后成功调用算法接口并返回输出结果,其中步骤S4和步骤S5依照以下方式实现:
算法启动
将算法镜像上传到镜像仓库进行统一管理和算法服务启动。
(1)将算法镜像上传到镜像仓库
登录nexus.sutpc.cc:9091主机服务器并将算法镜像加tag命名为python-geopandas-v2:1c5546c9a053。
执行语句“docker push nexus.sutpc. cc:9091/sutpc/transpaas/ python-geopandas-v2: 1c5546c9a053” ,将镜像上传至镜像仓库。
(2)登录镜像服务器,下载算法镜像python-geopandas-v2:1c5546c9a053,图9中python-geopandas-v2:latest指下载最新版本的python-geopandas-v2,等同于python-geopandas-v2:1c5546c9a053。
(3)启动算法容器
启动由python-geopandas-v2:1c5546c9a053生成的一个算法服务容器python-geopandas-v2-server,-d指后台运行容器设定,-p指定主机8080端口到容器8888端口的映射,-it是开启了容器的容器输入功能,能够通过一个终端连接容器,用户能通过这个终端输入命令执行容器内容,-m和—cpus指定了容器执行最大使用的内存的CPU数量,如图10所示。启动算法容器后,用户可通过输入参数调用接口返回计算结果。
结合具体实施方式一至具体实施方式五,根据上述封装步骤,交通算法封装分类为,设计以下交通算法封装成手机信令、车辆分析、公共交通、道路运行、交通安全、交通环境6个算法主题。
手机信令主题(类别命名phone)主要包括人口类型、居住地识别、工作地识别和岗位识别等算法。
车辆分析主题(类别命名vehicle)主要包括浮动车的OD算法以及轨迹提取、停留计算等算法。
公共交通主题(类别命名transit)主要包括公交线路指标计算、公交到站匹配、客流量推算等算法。
道路运行主题(类别命名road)主要包括地图匹配算法和路段速度融合算法,以及路段速度算法,进而有道路积水预测和道路通行能力计算。
交通安全主题(类别命名safety)主要包括事故风险指数计算和事故多发点识别等算法。
道路环境主题(类别命名environment)主要包括道路速度流量推算、路段尾气排放和噪声排放等相关算法。
需要说明的是,在以上实施例中,只要不矛盾的技术方案都能够进行排列组合,本领域技术人员能够根据排列组合的数学知识穷尽所有可能,因此本发明不再对排列组合后的技术方案进行一一说明,但应该理解为排列组合后的技术方案已经被本发明所公开。
本实施方式只是对本专利的示例性说明,并不限定它的保护范围,本领域技术人员还可以对其局部进行改变,只要没有超出本专利的精神实质,都在本专利的保护范围内。
Claims (7)
1.一种基于容器化的交通算法标准化封装方法,其特征在于,包括以下步骤:
步骤S1.完成交通算法核心内容开发;
步骤S2.采用python的Flask,开发HTTP协议的算法RESTful接口;
步骤S3.将算法和运行的环境进行Docker镜像制作;
步骤S4.镜像部署到交通大数据平台的算法仓库上;
步骤S5.在交通大数据平台上申请接口服务,输入参数后成功调用算法接口并返回输出结果。
2.根据权利要求1所述的一种基于容器化的交通算法标准化封装方法,其特征在于:步骤S2中采用python的Flask,开发HTTP协议的算法RESTful接口的具体步骤是:
步骤S21.配置算法调用接口开发工具;
步骤S22.完成算法调用接口框架安装和算法调用接口生成。
3.根据权利要求2所述的一种基于容器化的交通算法标准化封装方法,其特征在于:配置算法调用接口开发工具过程,选定gunicorn和gevent组合来装载运行Flask应用,具体方法是:
步骤S211.安装插件gunicorn和gevent;
步骤S212.通过进程参数worker、工作方式参数worker_class、监听的端口和IP参数bind书写gunicorn的配置文件,完成设置gunicorn内部参数;
步骤S213.运行插件,在运行插件过程中,使用gunicorn命令测试是否可以正确运行。
4.根据权利要求2所述的一种基于容器化的交通算法标准化封装方法,其特征在于:完成算法调用接口框架安装和算法调用接口生成的具体步骤是:
步骤S221.通过pip下载并安装Flask模块;
步骤S222. 创建一个叫run.py的脚本测试示例并将其初始化;
步骤S223. Flask通过python装饰器实现构建映射,构建从URL到python函数的映射关系;
步骤S224.启动服务器,启动Flask项目的RESTful接口服务;
步骤S225. 根据步骤S222-S223完成MapMatchAPIFrame.py算法文件的接口框架开发。
5.根据权利要求1所述的一种基于容器化的交通算法标准化封装方法,其特征在于:所述步骤S3中,将算法接口运行的环境进行Docker镜像制作的具体步骤是:
步骤S31.创建Dockerfile,选择基础镜像、镜像目标路径;
步骤S32.在Dockerfile中设置执行Flask框架的接口配置文件;
步骤S33.设置镜像中生成接口所需的gunicorn.conf.py的启动命令和gunicorn的配置参数;
步骤S34. 编写执行命令:gunicorn MapMatchAPIFrame:app -c gunicorn.conf.py,再运行镜像制作指令,生成算法镜像。
6.根据权利要求5所述的一种基于容器化的交通算法标准化封装方法,其特征在于:步骤S33中,gunicorn的配置参数包括进程参数worker、工作方式参数worker_class、监听的端口和IP参数。
7.根据权利要求5所述的一种基于容器化的交通算法标准化封装方法,其特征在于:步骤S33中,gunicorn的配置参数包括进程参数worker、工作方式参数worker_class、监听的端口和IP参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011036713.5A CN111880821A (zh) | 2020-09-28 | 2020-09-28 | 一种基于容器化的交通算法标准化封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011036713.5A CN111880821A (zh) | 2020-09-28 | 2020-09-28 | 一种基于容器化的交通算法标准化封装方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111880821A true CN111880821A (zh) | 2020-11-03 |
Family
ID=73199184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011036713.5A Pending CN111880821A (zh) | 2020-09-28 | 2020-09-28 | 一种基于容器化的交通算法标准化封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880821A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112382122A (zh) * | 2020-11-17 | 2021-02-19 | 珠海大横琴科技发展有限公司 | 一种交通信息处理的方法和装置 |
CN112486495A (zh) * | 2020-11-23 | 2021-03-12 | 珠海格力电器股份有限公司 | 一种工业视觉算法部署方法、系统及存储介质 |
CN113918232A (zh) * | 2021-09-07 | 2022-01-11 | 深圳云天励飞技术股份有限公司 | 一种算法服务的调用方法、装置、服务器和存储介质 |
CN114064155A (zh) * | 2022-01-17 | 2022-02-18 | 深圳市华付信息技术有限公司 | 基于容器的算法调用方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370796A (zh) * | 2017-06-30 | 2017-11-21 | 香港红鸟科技股份有限公司 | 一种基于Hyper TF的智能学习系统 |
CN110458000A (zh) * | 2019-06-28 | 2019-11-15 | 安徽四创电子股份有限公司 | 一种基于docker的视频车辆识别方法 |
US10599460B2 (en) * | 2017-08-07 | 2020-03-24 | Modelop, Inc. | Analytic model execution engine with instrumentation for granular performance analysis for metrics and diagnostics for troubleshooting |
-
2020
- 2020-09-28 CN CN202011036713.5A patent/CN111880821A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370796A (zh) * | 2017-06-30 | 2017-11-21 | 香港红鸟科技股份有限公司 | 一种基于Hyper TF的智能学习系统 |
US10599460B2 (en) * | 2017-08-07 | 2020-03-24 | Modelop, Inc. | Analytic model execution engine with instrumentation for granular performance analysis for metrics and diagnostics for troubleshooting |
CN110458000A (zh) * | 2019-06-28 | 2019-11-15 | 安徽四创电子股份有限公司 | 一种基于docker的视频车辆识别方法 |
Non-Patent Citations (2)
Title |
---|
_WUJIAN: "完整Python使用docker打包部署flask项目(flask+gunicorn+gevent)", 《HTTPS://BLOG.CSDN.NET/WUJIAN_HOME/ARTICLE/DETAILS/98969009》 * |
PYTHON从入门到放弃: "基于Python的Flask的开发实战(第二节程序的基本结构)", 《HTTPS://WWW.CNBLOGS.COM/PYTHONORG/P/5498573.HTML》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112382122A (zh) * | 2020-11-17 | 2021-02-19 | 珠海大横琴科技发展有限公司 | 一种交通信息处理的方法和装置 |
CN112486495A (zh) * | 2020-11-23 | 2021-03-12 | 珠海格力电器股份有限公司 | 一种工业视觉算法部署方法、系统及存储介质 |
CN113918232A (zh) * | 2021-09-07 | 2022-01-11 | 深圳云天励飞技术股份有限公司 | 一种算法服务的调用方法、装置、服务器和存储介质 |
CN113918232B (zh) * | 2021-09-07 | 2024-05-03 | 深圳云天励飞技术股份有限公司 | 一种算法服务的调用方法、装置、服务器和存储介质 |
CN114064155A (zh) * | 2022-01-17 | 2022-02-18 | 深圳市华付信息技术有限公司 | 基于容器的算法调用方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111880821A (zh) | 一种基于容器化的交通算法标准化封装方法 | |
US11743357B2 (en) | Message pushing method, storage medium, and server | |
CN113034095B (zh) | 结合rpa和ai的人机互动方法、装置、存储介质及电子设备 | |
CN110378463B (zh) | 一种人工智能模型标准化训练平台及自动化系统 | |
CN109408800B (zh) | 对话机器人系统及相关技能配置方法 | |
CN107656996B (zh) | 基于人工智能的人机交互方法和装置 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN113778871A (zh) | Mock测试方法、装置、设备及存储介质 | |
CN106547516A (zh) | 航天器遥控指令上行控制方法及装置 | |
CN113641414A (zh) | 物联网设备接入方法、装置、计算机设备及存储介质 | |
CN112015374B (zh) | 一种基于自然语言的跨编程语言微服务集成系统 | |
CN116467607B (zh) | 信息匹配方法和存储介质 | |
CN111338717B (zh) | 接口调用方法、应用程序升级方法及服务器和客户端 | |
CN106161157B (zh) | 智能家居系统的搭建方法、装置、智能家居系统及终端 | |
CN114531334A (zh) | 意图处理方法、装置、电子设备和可读存储介质 | |
US20190325322A1 (en) | Navigation and Cognitive Dialog Assistance | |
CN116360768A (zh) | 一种软件集成装置、方法、电子设备及存储介质 | |
CN115514787A (zh) | 用于车联网环境的智能无人机辅助决策规划方法及装置 | |
CN116232910A (zh) | 开放云平台及其构建方法、存储介质 | |
CN114637517A (zh) | 智能模型的部署方法及装置、存储介质和电子设备 | |
CN114676705A (zh) | 一种对话关系处理方法、计算机及可读存储介质 | |
CN107818122A (zh) | 一种代理组件、搜索管理方法及搜索管理系统 | |
CN112288133A (zh) | 一种算法服务处理方法和装置 | |
CN108595166A (zh) | 一种分布式物联网应用执行引擎实现方法及系统 | |
CN113935100B (zh) | 一种云建模方法、云建模装置以及云建模系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |