用101000张食物图片实现图像识别(数据的获取与处理)-python-tensorflow框架
前段时间,日剧《轮到你了》大火,作为程序员的我,看到了另外一个程序员—二阶堂,他的生活作息,以及饮食规律,让我感同身受,最让我感触的是他做的AI聊天机器人,AI菜品分析机器人,AI罪犯分析。
这让作为程序员的我突然萌生了一股攀比和一种激情,我也得做一个出来(小声bb,都得尝试下):
于是,我想从相对简单的做起,《AI菜品分析机器人》:
AI菜品分析机器人:
1.建立语料库,爬取各个网站的对话和问答,这里我采用的是知乎以及调用api获取实时对话,至于代码的话我这里就不放了,涉及比较多,我这里侧重点是图像识别,大概获取了将近4万条数据,
这里给出部分结果:

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

类似于上述图片,每一个图片都是都是对应得食物,我们需要提取每一张图片的特征值。
2.我们可以看出上述图片,大小不一,还具有色彩,我们特征值提取,是将图片进行矩阵化,所以我们在这里需要将图片变成大小一样,并且灰度处理。这里我们解释下:
将图片处理成大小一样:我们训练数据的时候是将图片矩阵化,如果图片大小不一样,我们得矩阵大小就不一样,所以在训练得时候会有问题,为了简单方便,我们直接将其同一化:
import 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张图片进行训练,注意图片维度,以及图片长度。
等数据测试稳定后会放出源码让大家学习。
持续更新中,希望大家留意后面的博客.....
用101000张食物图片实现图像识别(数据的获取与处理)-python-tensorflow框架的更多相关文章
- 食物图片变菜谱:这篇CVPR论文让人人都可以学习新料理
根据 Facebook 的统计,Instgram 上的美食图片数量已经超过 3 亿张.然而,获取食物烹饪方法的途径依然有限,例如,通过烹饪网站或相关教程.怎样能够挖掘丰富食物图片背后的烹饪方法,让每个 ...
- Atitit 判断判断一张图片是否包含另一张小图片
Atitit 判断判断一张图片是否包含另一张小图片 1. keyword1 2. 模板匹配是在图像中寻找目标的方法之一(切割+图像相似度计算)1 3. 匹配效果2 4. 图片相似度的算法(感知哈希算 ...
- 【Python网络爬虫四】通过关键字爬取多张百度图片的图片
最近看了女神的新剧<逃避虽然可耻但有用>,同样男主也是一名程序员,所以很有共鸣 被大只萝莉萌的一脸一脸的,我们来爬一爬女神的皂片. 百度搜索结果:新恒结衣 本文主要分为4个部分: 1.下载 ...
- 读取多张MNIST图片与利用BaseEstimator基类创建分类器
读取多张MNIST图片 在读取多张MNIST图片之前,我们先来看下读取单张图片如何实现 每张数字图片大小都为28 * 28的,需要将数据reshape成28 * 28的,采用最近邻插值,如下 def ...
- 音视频入门-18-手动生成一张GIF图片
* 音视频入门文章目录 * GIF 编码知识 GIF 包含的数据块: 文件头(Header) 逻辑屏幕标识符(Logical Screen Descriptor) 全局颜色表(Global Color ...
- (第二章第二部分)TensorFlow框架之读取图片数据
系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html 本文概述: 目标 说明图片 ...
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...
- java图片处理——多张图片合成一张Gif图片并播放或Gif拆分成多张图片
1.多张jpg图合成gif动画 /** * 把多张jpg图片合成一张 * @param pic String[] 多个jpg文件名 包含路径 * @param newPic String 生成的gif ...
- 一张png图片 上面有多个图标,如何用CSS准确的知道其中某个图片的坐标
一张png图片 上面有多个图标,如何用CSS准确的知道其中某个图片的坐标 ,如下图 可以使用 background background:url(images/xx.png) 40px 10px n ...
随机推荐
- 前端面试题集锦(二)之CSS部分
1.CSS中的选择器都有哪些?权限情况如何? 解答: (1)类选择器 .className (2) ID选择器 #id (3) 元素选择器 div 可以多个,以逗号隔开 (4)父子选择器 以空格隔 ...
- Linux 终端命令格式
Linux 终端命令格式 一.目标 了解终端命令格式 知道如何查阅终端命令帮助信息 二. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相 ...
- springCould:使用Feign 实现声明式服务调用
一.Spring Cloud Feign概念引入通过前面的随笔,我们了解如何通过Spring Cloud ribbon进行负责均衡,如何通过Spring Cloud Hystrix进行服务断路保护,两 ...
- idea 开发中常用的26个快捷键!
------- udea中窗口最大化---->Windows 上: Ctrl+Shift+F12 -------- ctrl+z撤回代码 ------- c ...
- 解读BloomFilter算法(转载)
1.介绍 BloomFilter(布隆过滤器)是一种可以高效地判断元素是否在某个集合中的算法. 在很多日常场景中,都大量存在着布隆过滤器的应用.例如:检查单词是否拼写正确.网络爬虫的URL去重.黑名单 ...
- Mybatis的一级缓存和二级缓存的理解以及用法
程序中为什么使用缓存? 先了解一下缓存的概念:原始意义是指访问速度比一般随机存取存储器快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.对于我们编程来说,所谓的 ...
- d3.js制作蜂巢图表带动画效果
以上是效果图,本图表使用d3.js v4制作.图表主要功能是在六边形格子中显示数据,点击底部图标可以切换指定格子高亮显示,图表可以随浏览器任意缩放. 1.图表的主体结构是由正六边形组成,使用d3生成六 ...
- Codeforces 814D
题意略. 思路: 由于不重合这个性质,我们可以将每一个堆叠的圆圈单独拿出来考虑,而不用去考虑其他并列在同一层的存在, 在贪心解法下,发现,被嵌套了偶数层的圆圈永远是要被减去的,而奇数层的圆圈是要加上的 ...
- MSIL实用指南-类相关生成
一.创建class用MethodBuilder的DefineType方法,可以指定父类,得到一个TypeBuilder对象. 二.实现继承接口用TypeBuilder的AddInterfaceImpl ...
- 使用WPF为Powershell程序制作GUI界面
1. 使用Xaml创建应用界面 打开visual studio,创建一个新的项目,在已安装模板中选择Visual C# →Wpf应用. 完成创建后,我们得到如下图所示的应用界面. wpf界面是基于xa ...