python车辆识别硬件_【辅助驾驶】Python OpenCV实现车辆检测

一、功能

对车辆前方的车辆进行检测,效果如图:

二、算法

1、传统检测方法

常规的机器学习方法,包括训练和应用两个过程。

训练:需要构建训练集(包括正负样本),使用HOG、SIFT等特征描述获取特征,使用SVM(支持向量机)、决策树等对上一步获取的特征和对应的标签(标签指:正样本或者负样本)进行训练(训练指:自动生成SVM或者决策树等的参数,使其可以用来分类)。

应用:提取需要识别的图片的HOG、SIFT等特征,使用训练好的SVM或者决策树对提取的特征进行分类。

2、神经网络

通过神经网络训练正负样本,可以直接识别。

考虑到应用场景为辅助驾驶,神经网络有两个缺陷,第一、神经网络需要大量的并行计算,占用大量的空间,在FPGA、ARM等硬件上运行速度很慢;第二、神经网络本身相当于黑盒,中间数据无法获取、调试起来无从入手,增加了不确定性。所以,这里使用OpenCV进行图像处理。

三、代码

1)提取HOG特征,以下为实现方法:

# Define a function to return HOG features and visualization

def get_hog_features(img, orient, pix_per_cell, cell_per_block, vis=False, feature_vec=True):

if vis == True:

features, hog_image = hog(img, orientations=orient, pixels_per_cell=(pix_per_cell, pix_per_cell),

cells_per_block=(cell_per_block, cell_per_block), transform_sqrt=False,

visualise=True, feature_vector=False)

return features, hog_image

else:

features = hog(img, orientations=orient, pixels_per_cell=(pix_per_cell, pix_per_cell),

cells_per_block=(cell_per_block, cell_per_block), transform_sqrt=False,

visualise=False, feature_vector=feature_vec)

return features

2)训练分类器

这里使用SVM分类器,以下为代码:

t = time.time()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值