机器视觉:物体识别与跟踪(车辆检测,实战项目)第一部分:HOG+SVM

本文详述了使用HOG特征和SVM分类器进行车辆检测的步骤,包括加载图片集、提取HOG特征、训练LinearSVC分类器、实现车辆检测函数及视频处理。通过Udacity项目实战,探讨了颜色空间转换、滑动窗口等关键技术,并提供了完整代码链接。

HOG + SVM

本文根据梳理Udacity项目vehicle tracking的完成过程,将关键过程描述出来,方便以后复习

HOG (Histogram of Gradient)参考资料:https://blog.csdn.net/abc2412151342/article/details/79904317

 

本文代码地址:https://github.com/Kidra521/CarND-Vehicle-Detection

本文内容在HOG+SVM.ipynb中

1. 主要步骤

image

spatial bin of color

 scale  放大缩小到合适尺寸  cv2.resize    ravel()变成一维

Color Space

RGB / HSV / LUV / HLS / YUV / YCrCb     绘制mpl_toolkits.mplot3d     

Color Histogram

np.histogram   np.concatenate   

Histogram of Gradient

scikit-image  hog  输入只能是单通道  多通道需要逐一输入  ravel()  feature_vector = True

block>cell>pixel

Feature Combine

Normalizing  sklearn.StandardScalar()  fit  transform   

classifier分类

 

Sliding window

先sliding再extract feature

multi scale

 

2. to do list

1)加载小汽车图片集,并随机选64张展示出来

2)完成get_hog_features函数。输入图片img、orient数量、cell大小、block大小、是否可视化vis、是否一维feature_vec

  输出:两种情况  features 和 hog_image。    

  使用:输入两张图片,验证效果。

3)完成extract_features函数。输入(imgs, cspace, orient, pix_per_cell, cell_per_block, hog_channel)

   输出:features = 相关层的hog结果。  功能:将图片集中所有的图片都变成features

   使用:将图片集中所有的图片都变成features存在变量X中,label存在y中,shuffle。对比选择不同参数时的提取时间

4)训练一个classifier。LinearSVC。并验证其预测准确率。对比不同参数下的准确率训练时间。输入的图片只是一个slide window里面的图像

5)完成find_cars函数。该函数使用上文classifier来搜索汽车。

   输入(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, show_all_rectangles)。此处输入img为相机原始图像

   输出rectangles一个list用来存放汽车左上角和右下角的像素坐标。

   过程包含ROI-->颜色空间转换-->图片的缩放-->以block为单位确定x,y方向的steps-->根据hog_channel得到整幅图hog_features-->for循环里每一个block得到小的hog_features,并用svc预测-->找到汽车后,按原图的比例反向缩放-->左上角右下角存在rectangle

   使用:读取一张test_img输入进find_cars函数,将find结果展示出来

6)完成draw_boxes函数,用来将boxes绘制在图片中

7)完成add_heat函数。输入(heatmap, bbox_list)输出heatmap

8)完成apply_threshold函数。输入(heatmap,threshold)输出heatmap

9)完成draw_labeled_bboxes函数。输入(img, labels)输出img和rects

10)完成process_frame函数。输入img,输出:draw_img

过程包括:从1)---9)外加labels = label(heatmap_img)

使用:在6张test image中进行测试。在test_video中进行测试

11)写一个Vehicle_Detect类来存储检测到的汽车数据

12)完成process_frame_for_video函数。输入img,输出draw_img.与process-frame函数基本一致.

使用,对一个video进行测试。   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值