本文,用Mathematica来制作一个简单的蔬菜分类器。我从网上下载了25张蔬菜单品的照片。为什么是单品,因为要确保每张图片里面的蔬菜只有一种。用这25张蔬菜的图片,来训练一个蔬菜分类器。
工具/原料
1
电脑
2
Mathematica11.2
方法/步骤
1
把所有的图片放到同一个文件夹里面,这样便于Mathematica批量读取图片。imgs = Import[#] & /@ FileNames['*', 'D:\\我的图片\\a', Infinity];下面的图片,是使用这些图片制作的拼图。
2
提取图片的特征。fe = FeatureExtraction[imgs]这是在Mathematica内部执行的,我还不清楚具体算法,耗时比较长。
3
构造最接近函数:nf = Nearest[fe[imgs] -> Automatic]near = imgs[[First@nf[fe[#]]]] &
4
从网上复制一张西红柿的图片,就可以从这25章图片里面找出与之最接近的图片。
5
再换一张。你会发现,就算图片的角落里面有些许水印,也不妨碍图片的分类。
6
再换成圆葱。如果形状相近,颜色反而成了次要特征。
注意事项
由于样本的数目太少,所以这个分类器并不靠谱。怎么说呢?每种蔬菜至少需要20张图片作为样本。
下一篇:识花如何进行拍照识花