草莓味的棉花糖|使用HOG对卫星图像中的船舶进行分类
我在浏览Kaggle数据集时发现了这个有趣的机器学习数据集() 。 该机器学习数据集包括从卫星图像中提取的船舶图像以及一些负面实例 。 查看此机器学习数据集 , 我们就可以看到正实例被裁剪为具有相同的宽度和高度 。
机器学习数据集由2000个图像样本组成 。 我们可以使用HOG特征和SVM实现分类器 , 可以提供相当好的结果 。 由于船舶的外观统一、简单 , 所以我们无需依靠复杂的模型就能得到良好的结果 。
方向梯度直方图方向梯度的直方图 , 也称为HOG , 在计算机视觉任务中被大量使用 , 特别是在检测行人和类似任务时
Hala特征表示由Dalal和Triggs引入 , 作为行人检测任务的表示方法 。 该方法建立在图像的局部强度梯度或边缘方向可以表征局部物体外观的思想的基础上 。 HOG特征在行人检测等各种目标识别任务中都取得了成功 。 当我们考虑将其用作开发更复杂的特征方法(如DPM)的基础时 , 该方法的重要性是显而易见的 。
图像被分成小单元 , 例如8×8像素 。 在单元内的每个像素处计算梯度向量 。 梯度向量被分类为直方图 。 梯度向量的方向决定了它将落入哪个区域 。 向量的大小有助于直方图的频率 。 因此 , 梯度越大 , 对直方图值的影响越大 。
块归一化在原始论文中 , 作者提出了一种归一化方法 , 使该表示方法对光照具有更强的不变性 。 该方法是通过组合多个单元来创建块 , 即:可以通过组合两行和两列单元来创建块 。 将单元的直方图连接在一起 , 并通过将直方图除以连接的矢量的大小来归一化 。 以这样的方式创建块:在两个块之间存在一行或一列单元的重叠 。
实现HOG特征分类器出于我们的目的 , 让我们使用scikit-image中的hog实现 , 因为我们可以在其他分类器中使用计算的HOG特征 。
importnumpyasnpimportjsonfrommatplotlibimportpyplotaspltfromskimage.featureimporthogfromskimageimportcolor,img_as_floatfromskimage.ioimportimreadfromsklearnimportsvmfromsklearn.metricsimportclassification_report,accuracy_scorefromskimage.transformimportpyramid_gaussian#Thisportiondealswithextractingthecodefromthekaggledatasetf=open(r'../input/shipsnet.json')dataset=json.load(f)f.close()data=https://pcff.toutiao.jxnews.com.cn/p/20200813/np.array(dataset['data']).astype('uint8')img_length=80#Bitofreshapingtogetthedatasetinorderdata=https://pcff.toutiao.jxnews.com.cn/p/20200813/data.reshape(-1,3,img_length,img_length).transpose([0,2,3,1])
推荐阅读
- 航天器|中国可重复使用航天器刚发射成功,美媒就来乱弹琴:或是太空武器
- 航天器|热烈祝贺!我国可重复使用试验航天器成功着陆!
- 精彩球坛|适合追剧党使用的蓝牙耳机有哪些推荐啊?日常听歌看剧必备神器!
- 航天器|任务完成了都没一张照片,我国“可重复使用航天器”为何这么神秘
- 苹果|网友使用iOS13.7后真实感受:真后悔购买
- 柠檬少年|一加8pro的使用开箱及初体验
- Java|马化腾登顶中国首富,微信、QQ却都免费使用,腾讯到底咋赚钱的?
- 卫星|以前用的“卫星锅”,它到底能看到些什么?怪不得要禁止使用
- 草莓味的棉花糖|四个价位段,笔记本电脑推荐,还没买电脑的,进来吧,大一新生
- 光一样的少年|必须试试,受够了电脑弹窗广告的你