找回密码
 立即注册
搜索

用101000张食物图片完成图像辨认,数据的获取与处理

前段工夫,日剧 《轮到你了》 大火,作为程序员的我,看到了另外一个 程序员 —二阶堂,他的生活作息,以及饮食规律,让我感同身受,最让我感触的是他做的 AI聊天机器人,AI菜品分析机器人,AI罪犯分析。

这让作为程序员的我忽然萌生了一股攀比和一种激情,我也得做一个出来(小声bb,都得尝试下):

Python资源共享群:626017123

于是,我想从相对简单的做起,《AI菜品分析机器人》:

AI菜品分析机器人:

1.建立语料库,爬取各个网站的对话和问答,这里我采用的是知乎以及调用api获取实时对话,至于代码的话我这里就不放了,触及比较多,我这里侧重点是图像辨认,大概获取了将近4万条数据,

这里给出部分结果:

2.关于图像辨认:

1.图像训练需求极大的数据,我这里找了很久,经过各种手腕,找到了kaggle比赛曾用过的101000张图片,外面有101种食物图片,如下(部分)

相似于上述图片,每一个图片都是都是对应得食物,我们需求提取每一张图片的特征值。

2.我们可以看出上述图片,大小不一,还具有颜色,我们特征值提取,是将图片停止矩阵化,所以我们在这里需求将图片变成大小一样,并且灰度处理。这里我们解释下:

将图片处理成大小一样:我们训练数据的时分是将图片矩阵化,假如图片大小不一样,我们得矩阵大小就不一样,所以在训练得时分会有成绩,为了简单方便,我们直接将其同一化:
\timport numpy as np
from PIL import Image
img =Image.open("F:/images/baby_back_ribs/"+i).convert('L')
img=img.resize((512,512))
img.save("F:/baby_back_ribs28/"+i)

这里,我们经过 img =Image.open( " F:/images/baby_back_ribs/ "+i).convert( ' L ' )将图片灰度处理,然后 img=img.resize((512,512 ))处理图片为512,512,最后保存:

可以看出,我们处理过后得图片如上,得出这样的图片后,我们就可以用来作为数据了

3.我们将我们获取的灰度图片矩阵化:
for i in range(512):
for j in range(512):
pixel=1.0-float(img.getpixel((j,i)))/255.0

所以我们可以将其矩阵化:

每张图片有512*512个数据,我们这里是将一个二维矩阵扁平化为一维矩阵。所以我们可以将这101000张图片一切数据都矩阵化,然后测试算法。

详细的代码,还在测试中,目前遇到得成绩比较多,正在一步一步处理,后面会继续更新,下面给出我遇到的一些成绩和处理:

1.数据的获取:这101000张图片我找了很久才找到的数据(约有5个g)。

2.数据量比较大,在处理的时分容易出错,所以大家在写的时分一定要细心,最好把源图复制一份,保留上去。

3.图片特征比较多,普通的算法难以满足,容易出现过拟合现象,而且1000张图也不算特别多,准确率较低,容易辨认出错。

4.在完成矩阵算法的时分,每次带入100张图片停止训练,留意图片维度,以及图片长度。

等数据测试波动后会放出源码让大家学习。

持续更新中,希望大家留意后面的博客.....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

遂宁趣闻 2019-9-19 20:42:56 显示全部楼层
沙发???
回复

使用道具 举报

竹咏潇湘 2019-9-20 22:10:43 显示全部楼层
楼主永远支持你,无论怎样
回复

使用道具 举报

sky5377 2019-9-22 09:04:05 显示全部楼层
那个啥吧。。。就是这个。。。你知道我要说啥吧。。。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies