python读取多张图片_用101000张食物图片实现图像识别(数据的获取与处理)-python-tensorflow框架...

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

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

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

AI菜品分析机器人:

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

这里给出部分结果:

1785247-20190919102949410-2009853181.png

2.关于图像识别:

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

1785247-20190919103818811-558236273.png

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

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

将图片处理成大小一样:我们训练数据的时候是将图片矩阵化,如果图片大小不一样,我们得矩阵大小就不一样,所以在训练得时候会有问题,为了简单方便,我们直接将其同一化:

importnumpy as npfrom PIL importImage

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,最后保存:

1785247-20190919110344177-1200731101.png

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

3.我们将我们获取的灰度图片矩阵化:

for i in range(512):for j in range(512):

pixel=1.0-float(img.getpixel((j,i)))/255.0

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

1785247-20190919111043201-1839337595.png

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

具体的代码,还在测试中,目前遇到得问题比较多,正在一步一步处理,后面会继续更新,下面给出我遇到的一些问题和解决:

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

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

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

4.在实现矩阵算法的时候,每次带入100张图片进行训练,注意图片维度,以及图片长度。

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

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

文章来源: www.cnblogs.com,作者:,版权归原作者所有,如需转载,请联系作者。

原文链接:https://www.cnblogs.com/lh9527/p/9527-3.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值