1 / 9
文档名称:

计算机视觉提取Cifar10数据集的HOGHSV特征并使用神经网络进行分类.pdf

格式:pdf   大小:421KB   页数:9页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机视觉提取Cifar10数据集的HOGHSV特征并使用神经网络进行分类.pdf

上传人:鼠标 2023/6/8 文件大小:421 KB

下载得到文件列表

计算机视觉提取Cifar10数据集的HOGHSV特征并使用神经网络进行分类.pdf

相关文档

文档介绍

文档介绍:该【计算机视觉提取Cifar10数据集的HOGHSV特征并使用神经网络进行分类】是由【鼠标】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【计算机视觉提取Cifar10数据集的HOGHSV特征并使用神经网络进行分类】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。计算机视觉(?):提取Cifar-10数据集的HOG、HSV特征并使?神经?络进?分类1?-引??之前我们都是将整张图?输?进?分类,要想进?步提升准确率,我们就必须提取出图?更容易区分的特征,再将这些特征当做特征向量进?分类。在之前我们学了?些,在这次实验中,我们使?了两种特征1.?梯度?向直?图(HOG)2.?颜?直?图(HSV)为什么选?这两种特征呢?应为HOG捕捉到的是图像的纹理特征,?忽略了颜?信息,颜?直?图会表?图像的颜?特征?忽略了纹理特征,因此将这两者的特征结合起来可能会得到?个?较好的结果,当然,我们也可以试试选?其他的特征,有可能可以得到更好的效果哦然后把每张图的梯度?向直?图和颜?直?图特征合并形成我们最后的特征向量,将特征向量输?进神经?络中进?训练,并完成分类。2?-具??-?RGB彩?图像转化成灰度图由公式img=?R+?G+?B可得def?rgb2gray(rgb):????"""???将?RGB图?转换成灰度图?:公式img?=??*?R?+??*?G?+??*?B????输???:????????rgb?:?图RGB??????返??回:????????gr灰ay度?:图??????"""????return?(rgb[...,?:3],?[,?,?])我们可以测试?下import?numpy?as?npimport??as?pltdef?rgb2gray(rgb):????return?(rgb[...,?:3],?[,?,?])img?=?('images/')gray?=?(gray,?cmap=('gray'))()?-提?取HOG特征提取HOG特征的步骤如下:1.?计算?平和垂直?向的梯度某个像素点的X?向的梯度计算可以通过这个像素点左右两边的像素值的差值的绝对值计算出来,?y?向的梯度可以通过该像素上下两边的像素值的差值的绝对值计算。我们可以使?来计算gx、gy2.?计算梯度的幅值g和?向theta:22g+gyg=xgyθ=arctangx3.?在88?的?格中计算梯度直?图并且对应到9个bin的直?图中直?图的横轴代表着?向?度纵轴代表着这88个?格中梯度??的和4.?16?16块归?化??个16?16的窗?(4个8?8),也就是4个9?1的直?图组合成36?1的向量,然后做归?化。之后将窗?朝后?挪8个像素,重复这个过程把整张图遍历?遍对向量使?L2归?化:∣v∣∣2∣+εL2?norm,v←v/2(ε是?个极?的常数,避免分母为0)5.?计算HOG特征向量根据这个思想可以构造函数:def?hog_feature(im):????"""???计?算图?的梯度?向直?图(HOG)特征?????从??????修改?来?????????/Python/scikits-image/.hog???????Reference:?????????Histograms?of?Oriented?Gradients?for?Human?Detection?????????Navneet?Dalal?and?Bill?Triggs,?CVPR?2005??????Parameters:????????im灰度?:?图?或者RBG图???????Returns:????????feat:?HOG特征?????"""????如#?果图像维数是3维,则转换成灰度图????if??==?3:????????image?=?rgb2gray(im)????else:????????image?=?(im)????sx,?sy?=????#尺??????orientations?=?梯9度??直#??图的数量????cx,?cy?=?(8,?8)??个?#单?元的像素个数????gx?=?()????gy?=?()????gx[:,?:-1]?=?(image,?n=1,?axis=1)??#?compute?gradient?on?x-direction????gy[:-1,?:]?=?(image,?n=1,?axis=0)??#?compute?gradient?on?y-direction????grad_mag?=?(gx?**?2?+?gy?**?2)??#?gradient?magnitude????grad_ori?=?(gy,?(gx?+?1e-15))?*?(180?/?)?+?90??#?gradient?orientation????n_cellsx?=?int((sx?/?cx))??#?number?of?cells?in?x????n_cellsy?=?int((sy?/?cy))??#?number?of?cells?in?y????#?compute?orientations?integral?images????orientation_histogram?=?((n_cellsx,?n_cellsy,?orientations))????for?i?in?range(orientations):????????#?create?new?integral?image?for?this?orientation????????#?isolate?orientations?in?this?range????????temp_ori?=?(grad_ori?<?180?/?orientations?*?(i?+?1),????????????????????????????grad_ori,?0)????????temp_ori?=?(grad_ori?>=?180?/?orientations?*?i,????????????????????????????temp_ori,?0)????????#?select?magnitudes?for?those?orientations????????cond2?=?temp_ori?>?0????????temp_mag?=?(cond2,?grad_mag,?0)????????orientation_histogram[:,?:,?i]?=?uniform_filter(temp_mag,?size=(cx,?cy))[int(cx?/?2)::cx,?int(cy?/?2)::cy].T????return?()HOG算法重点Dalal提出的HOG特征特区的过程,把样本图像分割为若?个像素的单元(cell),把梯度?向平均划分成9个区间(bin),在每个单元??对所有像素的梯度?向在各个?向区间进?直?图统计,得到?个9维的特征向量,每相邻的4个单元构成?个块(block),把?个块内的特征向量连起来得到36维的特征向量,?块对样本图像进?扫描,扫描步长为?个单元。最后将所有块的特征串联起来。例如?个图?为64?128的图像,每16?16的像素组成?个cell,每2?2个cell组成?个快,因为每个cell有9个特征,所以每个块内?4?9=36个特征,以8个像素为步长,那么,?平?向将有7个扫描窗?,垂直?向有15个扫描窗?,也就是说,64128的图?,总共有367*15=?3780??-提?取HSV特征HSV是?种?较直观的颜?模型,所以在许多图像编辑?具中应??较?泛,这个模型中颜?的参数分别是:?调(H,?Hue),饱和度(S,Saturation),明度(V,?Value)。?调H??度度量,取值范围为0°~360°,从红?开始按逆时针?向计算,红?为0°,绿?为120°,蓝?为240°。它们的补?是:黄?为60°,青?为180°,品红为300°;饱和度S饱和度S表?颜?接近光谱?的程度。?种颜?,可以看成是某种光谱?与??混合的结果。其中光谱?所占的?例愈?,颜?接近光谱?的程度就愈?,颜?的饱和度也就愈?。饱和度?,颜?则深?艳。光谱?的?光成分为0,饱和度达到最?。通常取值范围为0%~100%,值越?,颜?越饱和。明度V明度表?颜?明亮的程度,对于光源?,明度值与发光体的光亮度有关;对于物体?,此值和物体的透射?或反射?有关。通常取值范围为0%(?)到100%(?)。RGB转换HSV公式设max等于r、g、b中的最?者,min为最?者,对应的HSV空间中的(h,s,v)值为:???0°?ifm?ax=min?g?b60°×max?min+0°?ifm?ax=randg≥b?g?b°°?60×max?min+360?ifm?ax=randg<b?g?b??60°×max?min+120°?ifm?ax=gg?b60°×max?min+240°?ifm?ax=b0?ifm?ax=0{max?minminmax=1?max?ifo?therwisev=max(h在0到360°,s在0到100%之间,v在0到max之间)程序如下:def?color_histogram_hsv(im,?nbin=10,?xmin=0,?xmax=255,?normalized=True):????"""???计?算HSV颜?特征???输??:????-?im?:?H?x?W的?Rx?GBC?数组????-?nbin直??:?图柱状的数量????-?xmin最??:?像素值(缺省值:0)????-?xmax最??:?像素值(缺省值:255)????-?normalized是?否:?归?化(缺省值:True)???返?回:????-?imhist图?像:?的颜?直?图????"""????ndim?=?????bins?=?(xmin,?xmax,?nbin?+?1)????hsv?=?(im?/?xmax)?*?xmax????imhist,?bin_edges?=?(hsv[:,?:,?0],?bins=bins,?density=normalized)????imhist?=?imhist?*?(bin_edges)????#?return?histogram????return??-合?并特征向量最后,需要将数据集中每张图?的HOG、HSV的特征向量连接起来,构成?个总的数据集的向量矩阵,维数为(N,F_1+?…?+?F_k),每??是单个图像的HOG+HSV的特征向量def?extract_features(imgs,?feature_fns,?verbose=False):????"""???给?出图?的像素数据和针对单个图?的特征提取函数,可以提取数据集中所有的图?HOG的和HSV特征,并且???将?这些每张图?的特征向量连接起来,存储在?个矩阵中???输??:????-?imgs?:?(N,H_x,W_x,C)????-?feature_fns:K??个特征的列表,第?i个?特征应该输??个维数为(H,W,D)的图?,然后返回?个?????维向量,长度为F_i????-?verbose?:?Boolean;标志量,如果为真则打印特征提取的过程???返?回:?????个数组,维数为(N,F_1?+?...?+?F)_k,每??是单个图像的所有特征向量的连接????"""????num_images?=?[0]????if?num_images?==?0:????????return?([])????#?Use?the?first?image?to?determine?feature?dimensions????feature_dims?=?[]????first_image_features?=?[]????for?feature_fn?in?feature_fns:????????feats?=?feature_fn(imgs[0].squeeze())????????assert?len()?==?1,?'Feature?functions?must?be?one-dimensional'????????()????????(feats)????#?Now?that?we?know?the?dimensions?of?the?features,?we?can?allocate?a?single????#?big?array?to?store?all?features?as?columns.????total_feature_dim?=?sum(feature_dims)????imgs_features?=?((num_images,?total_feature_dim))????imgs_features[0]?=?(first_image_features).T????#?Extract?features?for?the?rest?of?the?images.????for?i?in?range(1,?num_images):????????idx?=?0????????for?feature_fn,?feature_dim?in?zip(feature_fns,?feature_dims):????????????next_idx?=?idx?+?feature_dim????????????imgs_features[i,?idx:next_idx]?=?feature_fn(imgs[i].squeeze())????????????idx?=?next_idx????????if?verbose?and?i?%?1000?==?0:????????????print('Done?extracting?features?for?%d?/?%d?images'?%?(i,?num_images))????return?imgs_features然后将这个向量矩阵当做神经?络的输?,进?最后的分类,并使?交叉验证得到最佳模型超参数。import?randomimport?numpy?as?npfrom??import?load_CIFAR10import??as?pltfrom??import?color_histogram_hsv,?hog_featuredef?get_CIFAR10_data(num_training=49000,?num_validation=1000,?num_test=1000):????#?Load?the?raw?CIFAR-10?data????cifar10_dir?=?'cs231n/datasets/cifar-10-batches-py'????X_train,?y_train,?X_test,?y_test?=?load_CIFAR10(cifar10_dir)????#?Subsample?the?data????mask?=?range(num_training,?num_training?+?num_validation)????X_val?=?X_train[mask]????y_val?=?y_train[mask]????mask?=?range(num_training)????X_train?=?X_train[mask]y_train?=?y_train[mask]????mask?=?range(num_test)????X_test?=?X_test[mask]????y_test?=?y_test[mask]????return?X_train,?y_train,?X_val,?y_val,?X_test,?y_testX_train,?y_train,?X_val,?y_val,?X_test,?y_test?=?get_CIFAR10_data()from??import?*num_color_bins?=?10?#?Number?of?bins?in?the?color?histogramfeature_fns?=?[hog_feature,?lambda?img:?color_histogram_hsv(img,?nbin=num_color_bins)]X_train_feats?=?extract_features(X_train,?feature_fns,?verbose=True)X_val_feats?=?extract_features(X_val,?feature_fns)X_test_feats?=?extract_features(X_test,?feature_fns)#?Preprocessing:?Subtract?the?mean?featuremean_feat?=?(X_train_feats,?axis=0,?keepdims=True)X_train_feats?-=?mean_featX_val_feats?-=?mean_featX_test_feats?-=?mean_feat#?Preprocessing:?Divide?by?standard?deviation.?This?ensures?that?each?feature#?has?roughly?the?same??=?(X_train_feats,?axis=0,?keepdims=True)X_train_feats?/=?std_featX_val_feats?/=?std_featX_test_feats?/=?std_feat#?Preprocessing:?Add?a?bias?dimensionX_train_feats?=?([X_train_feats,?(([0],?1))])X_val_feats?=?([X_val_feats,?(([0],?1))])X_test_feats?=?([X_test_feats,?(([0],?1))])from?.?import?input_dim?=?[1]hidden_dim?=?500num_classes?=?10net?=?(input_dim,?hidden_dim,?num_classes)?=?Noneresults?=?{}best_val?=?-1?=?Nonelearning_rates?=?[1e-2,?1e-1,?5e-1,?1,?5]regularization_strengths?=?[1e-3,?5e-3,?1e-2,?1e-1,?,?1]for?lr?in?learning_rates:????for?reg?in?regularization_strengths:????????net?=?(input_dim,?hidden_dim,?num_classes)????????#?Train?work????????stats?=?(X_train_feats,?y_train,?X_val_feats,?y_val,??????????????????????????num_iters=1500,?batch_size=200,??????????????????????????learning_rate=lr,?learning_rate_decay=,??????????????????????????reg=reg,?verbose=False)?????????=?((X_val_feats)?==?y_val).mean()????????if??>?best_val:????????????best_val?=??????????????=?netresults[(lr,?reg)]?=?#?Print?out??lr,?reg?in?sorted(results):?????=?results[(lr,?reg)]????print('lr?%e?reg?%e?val?accuracy:?%f'?%?(????????lr,?reg,?))print('best?validation?accuracy?achieved?during?cross-validation:?%f'?%?best_val)最后可以得出最佳模型的准确率为58%,与我们上次直接使?图?分类的准确率49%相?提升了9%,证明对图?的特征提取还是很有作?的best?validation?accuracy?achieved?during?cross-validation:??分类问题,我们可以使?属于我们??的特征来进?分类,有可能?HOG+HSV的效果更好哦

最近更新

2024年浙江邮电职业技术学院单招数学模拟试题.. 11页

2024年河北高职单招四类联考专业基础考试英语.. 5页

生态学视角下我国建筑产业集群发展研究的中期.. 2页

2024年广东省深圳市普通高校高职单招数学自考.. 25页

2024年安徽省初中学业水平考试英语 模拟试题(.. 2页

《植物的茎》导学案-2023-2024学年科学粤教版.. 4页

2024年体育单招文化课新政策 3页

2024-2025年芜湖职业技术学院单招语文考试试题.. 3页

2024-2025年河南物流职业学院单招面试模拟试题.. 7页

2024-2025年广西物流职业技术学院单招职业技能.. 4页

2024-2025年体育专业单招数学试题分类汇编立体.. 5页

2024-2025-2023学年山西省太原市普通高校对口.. 21页

现代首饰设计元素初探的综述报告 2页

2023年安徽省合肥市高三单招语文自考测试卷(含.. 9页

环芳烷骨架衍生化及衍生产物在不对称催化反应.. 2页

环境犯罪若干问题研究的综述报告 2页

王尔德与二十世纪爱尔兰文学中的“艺术与现实.. 2页

2024年员工试用期转正工作总结集合 7页

2024年员工自我评价12篇 16页

2024年员工绩效考核方案15篇 56页

2024年员工离职证明(热门) 9页

2024年员工离职申请书[优选] 22页

2024年员工旷工检讨书(精选15篇) 28页

2024年员工工作总结(优秀) 49页

2024年员工培训计划集合(10篇) 50页

2024年员工半年工作总结集合15篇 38页

食堂一周七天菜谱 4页

2024—2024学年度第二学期七年级数学期中考试.. 6页

2024年注安安全生产技术知识点 17页

小学六年级语文期中试卷及答案 3页