Traffic Distribution



这里整理一下四阶段法中交通分布预测阶段中的重要预测方法。具体包括:平均系数法、底特律法、Frater法、Funess法、单约束重力模型法、双约束重力模型法,并对比一下各种方法的求解收敛速度

import numpy as np
import matplotlib.pyplot as plt
import math


  首先输入所需数据,包括现状OD表规划年发生吸引量以及小区间阻抗矩阵

#定义初始OD矩阵
init_OD=np.array([[200, 100, 100],[150, 250, 200],[100, 150, 150]],dtype=float)
init_O=np.array([400, 600, 400],dtype=float)
init_D=np.array([450, 500, 450],dtype=float)
#定义规划年数据
later_O=np.array([1000,1000,1250])
later_D=np.array([1250,900,1100])
#阻抗矩阵
cost_mat=np.array([[14, 32, 40],[32, 16, 22],[40, 22, 16]])
stop = 0.03


 再通过几种方法求解远景年OD矩阵 (各方法具体步骤及代码封装在最后)

 并记录各种方法求解的收敛速度,进行比较。各个算法收敛效率比较如下图。

x_ave,y_ave=ave_para(init_OD, init_O, init_D, later_O, later_D, stop)
x_de,y_de=detroit(init_OD, init_O, init_D, later_O, later_D, stop)
x_fra,y_fra=frator(init_OD, init_O, init_D, later_O, later_D, stop)
x_fu,y_fu=funes(init_OD, init_O, init_D, later_O, later_D, stop)
x_gra_single,y_gra_single=gravity_model_single(init_OD, init_O, init_D, later_O, later_D, stop, cost_mat)
x_gra_double,y_gra_double=gravity_model_double(init_OD, init_O, init_D, later_O, later_D, stop, cost_mat)
plt.figure(figsize=(8, 6))
plt.title('收敛曲线(系数法)')  # 折线图标题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
plt.xlabel('迭代次数')  # x轴标题
plt.ylabel('指标')  # y轴标题
plt.xlim([0, 10])
plt.ylim([0, 2.5])
plt.plot(y_ave, label='平均系数法')  # 绘制折线图,添加数据点,设置点的大小
plt.plot(y_de,label='底特律法')
plt.plot(y_fra,label='福莱特法')
plt.plot(y_fu,label='福尼斯法')
plt.plot(y_gra_single,label='单约束重力')
plt.plot(y_gra_double,label='双约束重力')
plt.axhline(0.03, color='red',linestyle='--')
plt.legend()
plt.show()

平均系数法

该方法思路为:qijq_{ij}qij​ 的增长与 iii 区产生量的增长及jjj分区吸引量的增长同时相关,而且相关的程度也相同。即 fave(FpiFaj)=12(Fpi+Fai){f_{{\rm{ave}}}}\left( {{F_{pi}}{F_{aj}}} \right) = \frac{1}{2}\left( {{F_{pi}} + {F_{ai}}} \right)fave​(Fpi​Faj​)=21​(Fpi​+Fai​)

def ave_para(init_OD, init_O, init_D, later_O, later_D, stop):f_O=later_O/init_Of_D=later_D/init_Drecord=[]a=np.vstack((f_O,f_D))-1a=np.maximum(a, -a)record.append(np.max(a))while np.max(a)>stop:for i in range(init_OD.shape[0]):init_OD[i,:]=init_OD[i,:]*(f_O[i]+f_D)/2init_O=init_OD.sum(axis=1)init_D=init_OD.sum(axis=0)f_O=later_O/init_Of_D=later_D/init_Da=np.vstack((f_O,f_D))-1a=np.maximum(a, -a)record.append(np.max(a))return init_OD,record

Detroit法

此方法思路为,qijq_{ij}qij​的增长与i分区产生量增长率 FpiF_{pi}Fpi​成正比,而且还与jjj分区吸引量增长占整个区域吸引量增长的相对比率成正比。全区域在现年和规划年的吸引总量分别为∑jAj/∑jAj0\sum_{j} A_{j} / \sum_{j} A_{j}^{0}∑j​Aj​/∑j​Aj0​。于是Detroit增长函数为 fD(Fpi,Faj)=Fpi⋅FajQ/Q0=PiPi0⋅Aj/Aj0∑jAj/∑jAj0f_{D}\left(F_{p i}, F_{a j}\right)=F_{p i} \cdot \frac{F_{a j}}{Q / Q^{0}}=\frac{P_{i}}{P_{i}^{0}} \cdot \frac{A_{j} / A_{j}^{0}}{\sum_{j} A_{j} / \sum_{j} A_{j}^{0}}fD​(Fpi​,Faj​)=Fpi​⋅Q/Q0Faj​​=Pi0​Pi​​⋅∑j​Aj​/∑j​Aj0​Aj​/Aj0​​

def detroit(init_OD, init_O, init_D, later_O, later_D, stop):f_O=later_O/init_Of_D=later_D/init_Drecord=[]a=np.vstack((f_O,f_D))-1a=np.maximum(a, -a)record.append(np.max(a))while np.max(a)>stop:for i in range(init_OD.shape[0]):init_OD[i,:]=init_OD[i,:]*f_O[i]*f_D/(np.sum(later_D)/np.sum(init_D))init_O=init_OD.sum(axis=1)init_D=init_OD.sum(axis=0)f_O=later_O/init_Of_D=later_D/init_Da=np.vstack((f_O,f_D))-1a=np.maximum(a, -a)record.append(np.max(a))return init_OD,record

Frator法

1954年Frator提出了分别从产生区和吸引区两个角度分析计算qijq_{ij}qij​,然后平均的方法。
先从产生区考虑:
① Frator认为,qijq_{ij}qij​与 iii区出行量中j分区的“相对吸引增长率” bijb_{ij}bij​成正比。由于规划年从 iii区产生的出行量中被分区j吸引去的出行量为 ,因此,这个相对吸引增长率为:
bij=qij0Faj∑jqij0Faj{b_{ij}} = \frac{{q_{ij}^0{F_{aj}}}}{{\sum\limits_j {q_{ij}^0{F_{aj}}} }}bij​=j∑​qij0​Faj​qij0​Faj​​
② Frator还认为:qijq_{ij}qij​也应与i分区规划年的产生量 成正比;
③ 综上两点,得qij1′=Pi⋅bij=Pi0⋅Fpi0⋅qij0⋅Faj0∑jqij0⋅Faj0q_{ij}^{1'} = {P_i} \cdot {b_{ij}} = P_{i}^{0} \cdot F_{pi}^{0} \cdot \frac{{q_{ij}^{0} \cdot F_{aj}^{0}}}{{\sum\limits_j {q_{ij}^{0} \cdot F_{aj}^{0}} }}qij1′​=Pi​⋅bij​=Pi0​⋅Fpi0​⋅j∑​qij0​⋅Faj0​qij0​⋅Faj0​​
再从吸引区j分区的角度分析,同样,类似于以上三步,得qij1"=Aj0⋅Faj0⋅qij0⋅Fpi0∑jqij0⋅Fpi0q_{ij}^{1"} = A_{j}^{0} \cdot F_{aj}^{0} \cdot \frac{{q_{ij}^{0} \cdot F_{pi}^{0}}}{{\sum\limits_j {q_{ij}^{0} \cdot F_{pi}^{0}} }}qij1"​=Aj0​⋅Faj0​⋅j∑​qij0​⋅Fpi0​qij0​⋅Fpi0​​
由于上两式的 、 是表示同一个量 ,故预测值应取其平均值:

def frator(init_OD, init_O, init_D, later_O, later_D, stop):f_O=later_O/init_Of_D=later_D/init_Drecord=[]a=np.vstack((f_O,f_D))-1a=np.maximum(a, -a)record.append(np.max(a))while np.max(a)>stop:for i in range(init_OD.shape[0]):init_OD[i,:]=init_OD[i,:]*(f_O[i]*f_D)*(init_O[i]/(init_OD[i,:]*f_D).sum()+init_D/np.array([(init_OD[:,0]*f_O).sum(),(init_OD[:,1]*f_O).sum(),(init_OD[:,2]*f_O).sum()]))/2init_O=init_OD.sum(axis=1)init_D=init_OD.sum(axis=0)f_O=later_O/init_Of_D=later_D/init_Da=np.vstack((f_O,f_D))-1a=np.maximum(a, -a)record.append(np.max(a))return init_OD,record

Fueness约束条件法

Fueness1956年提出另一种增长率法。他认为,两个分区之间出行分布量qijq_{ij}qij​的预测值与此两个分区之间出行分布的现状值 qij0q_{ij}^0qij0​成正比,还与产生分区的规划年产生量预测值、吸引分区的规划年吸引量预测值有关,这种关系可用两个系数uiu_{i}ui​、vjv_{j}vj​表示(分别称之为产生系数、吸引系数),即qij=qij0⋅uivjq_{ij} = q_{ij}^0 \cdot {u_i}{v_j}qij​=qij0​⋅ui​vj​
但这两个系数不是简单地等于产生量或吸引量的增长率Pi / P0i、Aj / A0j,而是必须满足两个约束条件:
∑iqij=ui∑jqij0⋅vj=Pi\sum\limits_i {q_{ij}} = {u_i}\sum\limits_j {q_{ij}^0 \cdot {v_j}} = {P_i}i∑​qij​=ui​j∑​qij0​⋅vj​=Pi​
∑jqij=vj∑iqij0⋅ui=Aj\sum\limits_j {q_{ij}} = {v_j}\sum\limits_i {q_{ij}^0 \cdot {u_i}} = {A_j}j∑​qij​=vj​i∑​qij0​⋅ui​=Aj​
算法:
Step1:初始化。令所有的ui0=1.0u_{i}^{0}=1.0ui0​=1.0,k=0k=0k=0。
Step2:用方程组求解vjv_{j}vj​。此时方程组简化为:∑jqij0⋅vj=Pi\sum\limits_j {q_{ij}^0 \cdot {v_j}} = {P_i}j∑​qij0​⋅vj​=Pi​,这其实是一个线性方程组,用线性代数的知识不难求解
Step3:用vjkv_{j}^{k}vjk​代入方程组(5-16b)求解uik+1u_{i}^{k+1}uik+1​,这仍是一个解线性方程组的问题。
Step4:再用新求出的uik+1u_{i}^{k+1}uik+1​,代入方程组求解vjk+1v_{j}^{k+1}vjk+1​。
Step5:检验收敛性。对所有的iii、jjj,考察ujku_{j}^{k}ujk​与ujk+1u_{j}^{k+1}ujk+1​、vjkv_{j}^{k}vjk​与vjk+1v_{j}^{k+1}vjk+1​的相对偏差<3%?若是,ujku_{j}^{k}ujk​与vjkv_{j}^{k}vjk​为之所求,停止;否则返回第3步。

def funes(init_OD, init_O, init_D, later_O, later_D, stop):record=[]f_O=later_O/init_Ofor i in range(init_OD.shape[0]):init_OD[i,:]=init_OD[i,:]*f_O[i]init_D=init_OD.sum(axis=0)a=later_D/init_D-1a=np.maximum(a, -a)record.append(np.max(a))while np.max(a)>stop:f_D=later_D/init_Dfor j in range(init_OD.shape[1]):init_OD[:,j]=init_OD[:,j]*f_D[j]init_O=init_OD.sum(axis=1)a=later_O/init_O-1a=np.maximum(a, -a)record.append(np.max(a)) if np.max(a)<stop:breakf_O=later_O/init_Ofor i in range(init_OD.shape[0]):init_OD[i,:]=init_OD[i,:]*f_O[i]init_D=init_OD.sum(axis=0)a=later_D/init_D-1a=np.maximum(a, -a)record.append(np.max(a))    return init_OD,record

单约束引力模型

以下以 f(Rij)=e−bRijf\left( {{R_{ij}}} \right) = {e^{ - b{R_{ij}}}}f(Rij​)=e−bRij​ 为例说明单约束引力模型的参数的标定步骤,用被称为“试算法”的算法。意思是首先试探性地给参数bbb取一个初值,用现状PA表和阻抗矩阵进行检验,若不合乎精度要求,分析其原因是因为 bbb值太大还是太小了,据此调整 bbb值,进一步再作检验,直到合乎精度要求为止。

Step1:给 bbb一个初值,如 b=1b=1b=1

Step2: 从模型qij∧=Pi⋅Aj⋅e−Rij∑jAj⋅e−Rij\mathop{{q_{ij}}}\limits^ \wedge = \frac{{{P_i} \cdot {A_j} \cdot {e^{ - {R_{ij}}}}}}{{\sum\limits_j {{A_j}} \cdot {e^{ - {R_{ij}}}}}}qij​∧​=j∑​Aj​⋅e−Rij​Pi​⋅Aj​⋅e−Rij​​ 算得现状的出行量“理论值”qij∧{\mathop q\limits^ \wedge _{ij}}ijq∧​(现状PA表中的qijq_{ij}qij​被称为“实际值”),得现状理论分布表。

Step3: 计算现状实际PA分布表的平均交通阻抗R‾=1Q⋅∑i∑jqijRij\overline R = \frac{1}{Q} \cdot \sum\limits_i {\sum\limits_j {{q_{ij}}} } {R_{ij}}R=Q1​⋅i∑​j∑​qij​Rij​ 再计算理论分布表的平均交通阻抗
R^^=∑i∑j∧qij⋅RijQ\hat{\hat{R}}=\frac{\sum_{i} \sum_{j}{ }^{\wedge} q_{i j} \cdot R_{i j}}{Q}R^^=Q∑i​∑j​∧qij​⋅Rij​​求两者之间相对误差:

Step4:当δ<0\delta < 0δ<0 ,即R^‾<Rˉ\overline{\hat{R}}<\bar{R}R^<Rˉ,这说明理论分布量小于实际分布量,这是因为参数b太大的缘故,因此应该减少bbb值,令b=b/2b=b/2b=b/2;反之增加b值,令b=2bb=2bb=2b。返回第2步。

def gravity_model_single(init_OD, init_O, init_D, later_O, later_D, stop, cost_mat):b=0.5record=[]delt_R=1while abs(delt_R)>0.03:if delt_R<0:b=b/2else:b=b*2cost_mat_e=np.zeros([3,3],dtype=float)for i in range(init_OD.shape[0]):for j in range(init_OD.shape[1]):cost_mat_e[i,j]=math.exp((-b)*cost_mat[i,j])temp_OD=np.zeros([3,3],dtype=float)for i in range(init_OD.shape[0]):for j in range(init_OD.shape[1]):temp_OD[i,j]=init_O[i]*init_D[j]*cost_mat_e[i,j]/(cost_mat_e[i,:]*init_D).sum()R_temp=(temp_OD*cost_mat).sum()/temp_OD.sum()R_init=(init_OD*cost_mat).sum()/init_OD.sum()delt_R=(R_temp-R_init)/R_initrecord.append(abs(delt_R))#求出了 b,通过远景年P、A求下远景年OD分布吧for i in range(init_OD.shape[0]):for j in range(init_OD.shape[1]):init_OD[i,j]=later_O[i]*later_D[j]*cost_mat_e[i,j]/(cost_mat_e[i,:]*later_D).sum()return init_OD,record

双约束引力模型

同时引进行约束系数和列约束系数的引力模型叫双约束引力模型。双约束引力模型的形式是:
qij=Ki⋅Kj′⋅Pi⋅Aj⋅f(Rij){q_{ij}} = {K_i} \cdot K{'_j} \cdot {P_i} \cdot {A_j} \cdot f({R_{ij}})qij​=Ki​⋅Kj′​⋅Pi​⋅Aj​⋅f(Rij​)
Ki=(∑jKj′⋅Aj⋅f(Rij))−1{K_i} = {\left( {\sum\limits_j {K{'_j} \cdot {A_j} \cdot f({R_{ij}})} } \right)^{ - 1}}Ki​=(j∑​Kj′​⋅Aj​⋅f(Rij​))−1
Kj′=(∑iKi⋅Pi⋅f(Rij))−1K{'_j} = {\left( {\sum\limits_i {{K_i} \cdot {P_i} \cdot f({R_{ij}})} } \right)^{ - 1}}Kj′​=(i∑​Ki​⋅Pi​⋅f(Rij​))−1
式中,Ki{K_i}Ki​、Kj′K{'_j}Kj′​分别为行约束系数、列约束系数。
下面是以 f(Rij)=R−rijf(R_{ij})=R_{-r_ij}f(Rij​)=R−ri​j​为例的参数标定算法。

算法步骤:
Step1:给参数γγγ取初值,可参照已建立该模型的类似城市的参数作为估计初值,此处令:γ=1γ=1γ=1。
Step2:用迭代法求约束系数Ki{K_i}Ki​、Kj′K{'_j}Kj′​:
2-1、首先令各个列约束系数Kj′=1K{'_j}=1Kj′​=1;
2-2、将各列约束系数Kj′(j=1,…,n)K{'_j}(j=1, …, n)Kj′​(j=1,…,n)代入(2)式求各个行约束系数Ki{K_i}Ki​;
2-3、再将求得的各个行约束系数Ki(i=1,…,n){K_i}(i=1, …, n)Ki​(i=1,…,n),代入(3)式求各个列约束系数Kj′K{'_j}Kj′​;
2-4、比较前后两批列约束系数,考察:它们的相对误差小于3/%?若是,转至第3步;否则返回2-2步。

Step3:将求得的约束系数Ki{K_i}Ki​、Kj′K{'_j}Kj′​代入(1)式,用现状Pi{P_i}Pi​、AjA{_j}Aj​值求现状的理论分布表[q^ij{\hat q_{ij}}q^​ij​]。
Step4:计算现状实际PA分布表的平均交通阻抗 R‾=1Q⋅∑i∑jqijRij\overline R = \frac{1}{Q} \cdot \sum\limits_i {\sum\limits_j {{q_{ij}}} } {R_{ij}}R=Q1​⋅i∑​j∑​qij​Rij​;再计算理论分布表的平均交通阻抗:R^=∑i∑jqij⋅RijQ\hat{R}=\frac{\sum_{i} \sum_{j} q_{i j} \cdot R_{i j}}{Q}R^=Q∑i​∑j​qij​⋅Rij​​ 。求两者之间相对误差δδδ(见上式)。当∣δ∣<3%∣δ∣<3\%∣δ∣<3%, 接受关于γγγ值得假设,否则执行下一步。
步5:当 δ<0\delta < 0δ<0,即 $ \hat R < \overline R ,这说明理论分布量小于实际分布量,这是因为参数,这说明理论分布量小于实际分布量,这是因为参数,这说明理论分布量小于实际分布量,这是因为参数γ太大的缘故,因此应该减少太大的缘故,因此应该减少太大的缘故,因此应该减少γ值,令值,令值,令γ=γ/2;反之增加;反之增加;反之增加γ值,令值,令值,令γ=2γ$。返回第2步。
算法结束。

def gravity_model_double(init_OD, init_O, init_D, later_O, later_D, stop, cost_mat):b=0.5record=[]delt_R=1while abs(delt_R)>0.03:if delt_R<0:b=b/2else:b=b*2 #初始Ki,Kj,b=1K_i=np.zeros((3),dtype=float)K_j=np.ones((3),dtype=float)temp_K_i=np.zeros((3),dtype=float)temp_K_j=np.zeros((3),dtype=float)delt_K=np.ones([2,3],dtype=float)#阻抗函数cost_mat_f=np.zeros([3,3],dtype=float)temp_K=np.zeros([3,3],dtype=float)for i in range(cost_mat.shape[0]):for j in range(cost_mat.shape[1]):cost_mat_f[i,j]=math.pow(cost_mat[i,j],-b)#求Ki1for i in range(K_i.shape[0]):for j in range(K_j.shape[0]):temp_K[i,j]=K_j[j]*init_D[j]*cost_mat_f[i,j]K_i[i]=1/temp_K[i,:].sum()#求kj1for i in range(K_i.shape[0]):for j in range(K_j.shape[0]):temp_K[i,j]=K_i[j]*init_O[j]*cost_mat_f[i,j]K_j[i]=1/temp_K[i,:].sum()while np.max(delt_K)>0.03:#存放系数Ki,Kjfor i in range(K_i.shape[0]):temp_K_i[i]=K_i[i]temp_K_j[i]=K_j[i]#求Kifor i in range(K_i.shape[0]):for j in range(K_j.shape[0]):temp_K[i,j]=K_j[j]*init_D[j]*cost_mat_f[i,j]K_i[i]=1/temp_K[i,:].sum()#求kjfor i in range(K_i.shape[0]):for j in range(K_j.shape[0]):temp_K[i,j]=K_i[j]*init_O[j]*cost_mat_f[i,j]K_j[i]=1/temp_K[i,:].sum()#求相对误差a=np.vstack(((K_i-temp_K_i)/temp_K_i,(K_j-temp_K_j)/temp_K_j))delt_K=np.maximum(a, -a)#得到Ki、Kjtemp_OD=np.zeros([3,3],dtype=float)for i in range(init_OD.shape[0]):for j in range(init_OD.shape[1]):temp_OD[i,j]=init_O[i]*init_D[j]*cost_mat_f[i,j]*K_i[i]*K_j[j]R_temp=(temp_OD*cost_mat).sum()/temp_OD.sum()R_init=(init_OD*cost_mat).sum()/init_OD.sum()delt_R=(R_temp-R_init)/R_initrecord.append(abs(delt_R))#求出了Ki、Kj、b,通过远景年P、A求下远景年OD分布吧for i in range(init_OD.shape[0]):for j in range(init_OD.shape[1]):init_OD[i,j]=later_O[i]*later_D[j]*cost_mat_f[i,j]*K_i[i]*K_j[j]return temp_OD,record

结语

这里方法也不多,方法对应的算法也不唯一,大家有什么问题,欢迎评论区或私信交流嗷

四阶段法-交通分布预测方法-算法复现相关推荐

  1. 四阶段法-出行分布计算 底特律法

    底特律法计算未来出行分布 % trans_planning 计算未来出行量分布 function main() clc;clear; confirm = 0; while confirm == 0in ...

  2. 基于四元素法的捷联惯导姿态更新算法

    摘要          本文主要介绍了机载捷联惯导系统常用的姿态更新算法--四元素法,并重点介绍了利用四元素法进行姿态更新的一般过程.        关键词:四元素法,连贯导,姿态 1 引言      ...

  3. 综合评价模型的缺点_浅谈交通影响评价中不同交通预测方法的特性

    目前,据小编经验觉得,我国交通影响评价的工作中仍有很多问题未得到很好的解决,主要表现在:交通需求预测模型有待进一步精细.交通的影响程度评价内容与指标不够明确.报告中提出的交通改善措施很难落实到位等方面 ...

  4. 运筹学两阶段法编程c语言,运筹学上机实验 - 单纯形方法的两阶段法

    理论部分不解释了, 就是粘个实验课的代码,按照书上的算法写的,仅仅是把课本上的样例过了,有bug可能难免,欢迎指出. Sample 1. $$ \left\{ \begin{aligned} min ...

  5. 运筹学上机实验 - 单纯形方法的两阶段法

    理论部分不解释了, 就是粘个实验课的代码,按照书上的算法写的,仅仅是把课本上的样例过了,有bug可能难免,欢迎指出. Sample 1. $$ \left\{ \begin{aligned} min ...

  6. 【TransCad】采用重力模型法实现交通分布预测

    目录 前言 回顾 准备工作 小区质心层的导入 制作小区连杆 建立质心选择集和路网文件 重力模型法进行交通分布预测 建立阻抗矩阵 修改索引 题外话 重力模型运用 写在最后 前言 明天就要上机练习重力模型 ...

  7. 四象限法推导lm曲线_试用几何方法推导IS曲线(四象限法)

    [简答题]请根据自己的实际情况,撰写一份适合自己的"征婚启事".内容积极健康.文体,字数等不限 [填空题]由一棵二叉树的前序序列和 序列可唯一确定这棵二叉树. (1.0分) [判断 ...

  8. 用四级法测量计算机土壤电阻率,四极法测量土壤电阻率的方法详解

    1.四极法测量土壤电阻率的步骤 (1)在测量区沿直线等距离插入四根金属电极,电极彼此相距S米,S米为测量深度,插入地表深度为1/20S为宜. (2)将仪表稳定平放地面,调整仪表指针在标准黑线上. (3 ...

  9. 基于马尔可夫过程的一种新型混合PSO粒子群算法(SCI二区高被引文献)介绍及算法复现(使用chatgpt)

    以下是一篇算法领域的SCI二区文献(原文见附件),介绍了一种使用Markov概率转移矩阵对种群拓扑结构进行加权的粒子群算法,相比于标准PSO算法该算法提高了全局覆盖率,更容易跳出局部最优,但是在局部最 ...

  10. 基于Aidlux平台的智慧交通AI安全算法实战

    一. 通常来说,智慧交通行业主要是对交通场景内的行人,机动车,非机动车进行识别分析. 行人识别分析包括对行人的姿态,方向,外观,以及基于行人的交通事件识别分析,(行人闯红灯等). 机动车识别分析包括对 ...

最新文章

  1. linux下oracle启动关闭
  2. .Net orm 开源项目 FreeSql 2.0.0
  3. JAVA获取Classpath根路径的方法
  4. 你的周末时光是什么样的?
  5. 【华为云技术分享】MongoDB经典故障系列五:sharding集群执行sh.stopBalancer()命令被卡住怎么办?
  6. Leetcode: Palindrome Linked List
  7. 企业实战|CentOS8安装Zabbix 4.4
  8. Java解析魔兽争霸3录像W3G文件(二):压缩数据块解压合并
  9. 机器学习十大算法(一)
  10. 统计数组中英文大写字母,小写字母,数字,空格的个数。
  11. 计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上
  12. ipad分屏功能怎么开启_iPad 重大更新!14个新功能,每个都很实用
  13. 即席和即兴_即席和即兴_新员工参加会议,即兴发言赢得好感
  14. Android studio 仿微信朋友圈页面(简单版)
  15. DetailsView
  16. PS吸管工具用不了?
  17. 如何修改pdf文件中文字的大小及颜色
  18. 新松机器人产业小镇_湘潭新松机器人产业园项目开工建设 点亮千亿级别产业...
  19. 【selenium3+JAVA】界面自动化测试教程(一)——浏览器启动之firefox浏览器的启动
  20. php class 混合,extend/Extend/Library/ORG/Util/String.class.php at master · liu21st/extend · GitHub...

热门文章

  1. 关于AD15中恢复默认菜单的快捷操作
  2. 山东理工大学2021年下半年实验室安全考试
  3. STM32F1开发指南笔记20----数码管驱动芯片TM1640解析
  4. java+MySQL 基于ssm的眼镜销售购物商城
  5. 佳博GP1124T的安装向导
  6. IP冲突,中国移动光猫路由-中兴F673A之修改IP篇
  7. Android 自带截屏命令 screencap 的使用
  8. ceph部署-纠删码
  9. java 泛型去重_泛型,list集合去重
  10. C6678/C6657+ZYNQ/K7/A7 FPGA+AD+北斗的软硬件设计方案