本文参考:1.https://blog.csdn.net/qq_16234613/article/details/78909839
2.https://www.cnblogs.com/justany/archive/2012/12/06/2804211.html
1.GIST特点:GIST对场景进行识别分类不需要对图像进行分割和局部特征提取,相对于局部特征,该特征是更为“宏观”的特征描述方式,忽略图片的局部特点。
我们注意到:大多数城市看起来就像天空和地面由建筑物外墙紧密连接;大部分高速公路看起来就像一个大表面拉伸天际线,里面充满了凹型(车辆);而森林场景将包括在一个封闭的环境中,有垂直结构作为背景(树),并连接到一定纹理的水平表面(草)。
而空间包络可以在一定程度表征这些信息。
五种对空间包络的描述方法:
- 自然度(Degree of Naturalness):场景如果包含高度的水平和垂直线,这表明该场景有明显的人工痕迹,通常自然景象具有纹理区域和起伏的轮廓。所以,边缘具有高度垂直于水平倾向的自然度低,反之自然度高。
- 开放度(Degree of Openness):空间包络是否是封闭(或围绕)的。封闭的,例如:森林、山、城市中心。或者是广阔的,开放的,例如:海岸、高速公路。
- 粗糙度(Degree of Roughness):主要指主要构成成分的颗粒大小。这取决于每个空间中元素的尺寸,他们构建更加复杂的元素的可能性,以及构建的元素之间的结构关系等等。粗糙度与场景的分形维度有关,所以可以叫复杂度。
- 膨胀度(Degree of Expansion):平行线收敛,给出了空间梯度的深度特点。例如平面视图中的建筑物,具有低膨胀度。相反,非常长的街道则具有高膨胀度。
- 险峻度(Degree of Ruggedness):即相对于水平线的偏移。(例如,平坦的水平地面上的山地景观与陡峭的地面)。险峻的环境下在图片中生产倾斜的轮廓,并隐藏了地平线线。大多数的人造环境建立了平坦地面。因此,险峻的环境大多是自然的。
基于这五点对图像进行特征描述。
2.GIST512的计算方法:
1.32Gabor 滤波在4个尺度,8个方向上进行卷积,得到32个feature map 大小和输入图像一致;
2.把每个feature map 分成4*4=16的区域,计算每个区域内的均值;
3.一幅featuremap的区域均值数(16)乘以featuremap数量(32),得到512维GIST特征。
不同维度的GIST特征在于Gabor滤波器的个数,确切的说是滤波器方向的个数和尺度个数的不同。
3.代码
附上几位大神实现的GIST代码链接(版权信息请查看链接中作者标注):
https://github.com/Kalafinaian/python-img_gist_feature (python代码)
https://github.com/imoken1122/GIST-feature-extractor (python代码)
https://github.com/amr4i/EmotionDetection (c++代码)
文中若有不妥或错误之处,还望指出!