CV学习:利用opencv进行行人识别(实战)

本文通过Pycharm+python3.7+opencv4.6实现行人识别项目,运用HOG特征提取和SVM模型。实战过程中暴露了基础知识掌握不足、HOG算法理解不深、SVM参数理解不全等问题。虽然存在挑战,如缺少负样本,但整体上仍能完成行人检测。项目总结提到,HOG特征向量用于SVM训练,SVMType选择需根据任务类型,如本项目采用单分类。
摘要由CSDN通过智能技术生成

实战工具:Pycharm+python3.7+opencv4.6

算法知识:HOG特征提取、SVM模型构建

实战目的:本次实战的目的是熟悉HOG+SVM工作流算法,初步掌握图像分类的传统算法。

实战记录:本以为在学习原理、算法应用、动手实操后会很顺利的实现行人检测项目,但实战过程却差强人意,所以结果嘛就马马虎虎了。实战过程中所爆露出的不足有以下几点:

  • 对opencv、numpy、python的基础知识掌握的不够全面、牢固;
  • 对HOG算法的输出数据形式理解不深刻;
  • 对SVM模型的相关参数、函数方法一知半解,特别是数据在svm中的作用、输出更是理解的浅显;网上的有关svm的知识过于零散,导致查相关资料的时候很痛苦。

实战不足:没有收集负样本。

实战评价:虽然坎坎坷坷,但还过得去。


1. 准备工作

本次实战使用的数据是MIT行人数据库(有现成的资料,懒得找啦),该数据库为较早公开的行人数据库,共924张行人图片(ppm格式,宽高为64x128),肩到脚的距离约80象素。该数据库只含正面和背面两个视角,无负样本,未区分训练集和测试集。Dalal等采用“HOG+SVM”,在该数据库上的检测准确率接近100%。该数据库的下载链接见这里

2. 实战代码

"""
加载并整理数据集-->图像的预处理-->图像的特征提取
-->设计分类器-->输出分类器准确率-->测试图像
"""
import cv2
import random
import glob
import numpy as np


# 加载本地图像数据集,并将数据集全部添加到列表中,然后打乱数据顺序
def load_image(filename):
    paths = glob.glob(filename)
    persons, labels = [], []
    for i in paths:
        persons.append(cv2.imread(i))
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值