数据集使用的Kaggle中辨别狗狗种类的竞赛

在这个项目中,数据集使用的Kaggle中辨别狗狗种类的竞赛,其中包含了将近10000张经过标记的图像,大约涵盖了120种狗狗,除此之外还有数量相当的测试数据。一般来说,这些图像的分辨率、缩放程度都是不同的,其中也可能不止有一只狗,光线也会有差别。下面是数据集中的几张图像。

数据集中各种种类的狗狗数量大致相同,平均每种狗狗有59张图像。以下是数据集中各种类狗狗的数量分布:

正如我们简单分析过的,经过分析的数据集对深度学习框架来说并不复杂,并且有很多简单结构。所以我们可以从数据集中得到各种类精确的结果。

Bottleneck特征

Sober运算符在单一图像通道上的大致表示

如今的技术可以从数据中直接自动提取特征。为此,我们用的是卷积层。每个卷积层都是具有随机初始值的正方形矩阵堆栈。这些值在训练过程中被更新,最终会收敛到适合数据集的特殊过滤器上。

下图展示了深度学习分类器作为特征模块序列的大致表示,将图像从原始的像素表示转换成更加抽象的表示:

bottleneckfeaturesontodisk.

"""

def__init__(self,build_fn,preprocess_fn,source,

target_size=(299,299,3),batch_size=128):

self.build_fn=build_fn

self.preprocess_fn=preprocess_fn

self.source=source

self.target_size=target_size

self.batch_size=batch_size

stream=self.source(

folder=folder,target_size=self.target_size,

batch_size=self.batch_size,infinite=False)

batches=[]

withtqdm.tqdm_notebook(total=stream.steps_per_epoch)asbar:

forx_batch,y_batchinstream:

x_preprocessed=self.preprocess_fn(x_batch)

batches.append(batch)

bar.update(1)

all_features=np.vstack(batches)

np.save(filename,all_features)

returnfilename

之后,我们可以用FeatureExtractor:

fromkeras.applicationsimportinception_v3

extractor=FeatureExtractor(

build_fn=inception_v3.InceptionV3,

preprocess_fn=inception_v3.preprocess_fn,

source=create_files_iterator_factory())

extractor(folder_name,output_file)

BootstrappedSGD

为了让训练过程更加稳定并且可重复,为了达到最佳精度,我们将用bagging扩展SGD,这种方法可以训练SGD分类器的集合,并且能从多个估算器中对反馈取平均值,得出最终的预测。下图是这一过程的展示:

在SGD分类器上应用bagging技术

下面的代码展示了如何创建一个SGD分类器,以及如何计算能反映模型质量的预测标准:

threshold=VarianceThreshold(variance_threshold)

sgd_classifier=SGDClassifier(

alpha=1./len(x_train),

fit_intercept=False,tol=0.001,n_jobs=-1)

bagging=BaggingClassifier(

base_estimator=sgd_classifier,

bootstrap_features=True,

n_jobs=-1,max_samples=0.5,max_features=0.5)

x_thresh=threshold.fit_transform(x_train)

bagging.fit(x_thresh,y_train)

train_metrics=build_metrics(bagging,x_thresh,y_train)

x_thresh=threshold.transform(x_valid)

valid_metrics=build_metrics(bagging,x_thresh,y_valid)

returnbagging,train_metrics,valid_metrics

defbuild_metrics(model,X,y):

probs=model.predict_proba(X)

preds=np.argmax(probs,axis=1)

metrics=dict(

probs=probs,

preds=preds,

loss=log_loss(y,probs),

accuracy=np.mean(preds==y))

第四行是创建一个SGD分类器的示例,其中有一对正则化参数和运用CPU训练模型的权限。第十行创建了一组分类器,15—20行训练了分类器,并计算了几个表现标准。

SGD基准

现在有很多可用的预训练深度学习结构,它们在我们的数据集上用作特征提取器时是否表现得同样好?下面让我们来看看。

我们选取了以下三种结构来训练SGD分类器:

InceptionV3

InceptionResNetV2

Xception

Keras中都包含这三种架构,每个分类器在9200个样本上进行训练并在1022个图像上进行验证。下表展示了训练和验证自己的预测结果。

这个分数还不错!对于如此简单的实现过程,这个结果已经很令人满意了。

对预训练模型进行微调

在SGD分类器上对bottleneck特征的训练已经表示,这些特征能达到良好的预测效果。然而,我们能够通过重新训练顶层、对模型进行微调来提高分类器的精度呢?同样,我们能否通过对训练集的预处理,让模型在过拟合上更稳定,并且提高它的泛化能力?

微调的目的是让预训练模型适应数据。大多数情况下,重新使用的模型都会在含有不同种类的数据集上训练。所以,你需要将网络顶端的分类层替换掉。如图所示:

微调过程示意

新顶层的训练过程和之前的并没什么不同,我们只用了不同的分类器。但是,我们可以用数据增强的方式提高网络的泛化能力。每个微调过的网络都用稍微改动过的图像训练(例如稍微旋转、缩放等)。

微调基准

为了测试微调后的精确度,我们将添加一个结构:

ResNet50

每个模型进行100次迭代测试,每次有128个样本:

fromkeras.optimizersimportSGD

sgd=SGD(lr=0.001,momentum=0.99,nesterov=True)

下面是数据增强中参数的选择:

transformer=ImageDataGenerator(

width_shift_range=0.2,

height_shift_range=0.2,

zoom_range=0.2,

rotation_range=30,

vertical_flip=False,

horizontal_flip=True)

最后,模型训练过程的实现:

fromkeras.modelsimportModel

fromkeras.layersimportDense

base=create_model(include_top=False)

model=Model(inputs=base.inputs,outputs=x)

train_gen=create_training_generator()

valid_gen=create_validation_generator()

model.fit_generator(train_gen,validation_data=valid_gen)

下表是训练后模型的表现:

与之前的表现相比并没有很大的提升,但是数据增强和预训练InceptionResNetV2网络顶部单一密集层的表现却是最好的。

实际案例

让我们看看模型在陌生图像上的表现到底如何吧,下图是数据集之外的网络图片,模型预测了五种最可能的狗狗品种:

结论

现成的模型在这个项目中的表现十分不错,在狗狗分类数据集上训练之后就能达到精确的结果。我相信如果再增加更多的顶层、“解锁”更多隐藏层、加入正则化技术和更多优化,模型的表现会更好。

但是这一实验的缺点是选择的数据集是从ImageNet上挑选的狗类图片,也就是说我们的网络可能之前就见过它们了。关于这一问题论智君也曾报道过数据集的重复使用所带来的副作用,可能会引起一些偏差。

浏览量

原文标题:拉布拉多还是巴哥?用Keras轻松识别狗子的品种

下载发烧友APP

电子发烧友观察

长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)

THE END
1.国产旗舰AI测试,哪款AI识别的小狗更准确呢?ai测试手机测评国产旗舰AI测试,哪款AI识别的小狗更准确呢?2024-11-05 18:17:10 数科先驱 广东 举报 0 分享至 0:00 / 0:00 速度 洗脑循环 Error: Hls is not supported. 视频加载失败 数科先驱 5288粉丝 专注科技行业技术爆料 02:05 旅行的拍照搭子怎么选?看我这些实拍就知道啦! 00:20 iPhone、OPPO、华为三...https://www.163.com/v/video/VPFANUT0C.html
2.狗品种识别web网页html版基于python深度学习的狗狗种类识别-含图片数据集.zip 本代码是基于python pytorch环境安装的。 下载本代码后,有个环境安装的requirement.txt文本,环境需要自行配置。 或可直接参考下面博文进行环境安装。 https://blog.csdn.net/no_work/article/details/139887346 安装好环境之后, 代码需要依次运行 01数据...https://www.iteye.com/resource/weixin_38629939-13754733
3.狗狗为什么能够辨别草药?一些研究表明,通过训练,狗狗可以识别出几十种甚至上百种不同的草药。这种训练不仅可以增强狗狗的嗅觉能力,还可以提高其认知能力和专注力。 除了基因和训练,狗狗对于草药的辨别能力还与其生活经验有关。在野外生活的狗狗通常会接触到更多的草药,因此对于草药的辨别能力可能更强。而家养狗狗由于环境受限,接触到的草药种类...https://www.isdpp.com/xq-15440.html
4.狗狗鉴定器app下载狗狗鉴定器app下载13.1.0G安卓版安卓版狗狗鉴定器app下载是一款功能非常强大的狗狗品种鉴定软件,用户只需要对狗狗进行拍照就能快速得知狗狗的品种,功能非常强大,而且操作简单方便,只需要一张照片就能解决用户的问题,随便在大街上对不认识的狗狗进行拍照,它都可以快速识别狗狗的品种,即使是混合品种也可以识别,能够轻松满足用户的好奇心,如果不方便拍照也可以直接...http://www.lenosoft.com/down/18285.htm
5.宠物识别API技术文档 私有化部署 将服务部署至客户本地服务器,保障数据私密性,支持分布式高并发业务处理。 联系商务入口 定制开发 定制化业务,为特定业务场景定制软件开发服务,支持多种类识别模型定制开发。 联系商务入口 试用API接口 免费调用,即刻拥有宠物AI识别能力 立即体验...http://www.ybinsure.com/ocrpet
1.狗狗犬种识别狗狗识别狗狗鉴定器 教育 Dog Breed Identifier, Dogs 教育 Puppy Camera Scanning Dogs 教育 猫咪鉴定器 教育 Dog scanner - Dog Breed ID 教育 Hundeo - Puppy & Dog Training 教育 Dog Identifier: AI Dog Scanner 教育 动物识别器-拍照识别虫鸟狗鱼神器 https://apps.apple.com/cn/app/id1585012954?platform=ipad&see-all=customers-also-bought-apps
2.机器学习狗的种类识别代码狗狗种类识别器机器学习狗的种类识别代码 狗狗种类识别器 在这个notebook中,你将迈出第一步,来开发可以作为移动端或 Web应用程序一部分的算法。在这个项目的最后,你的程序将能够把用户提供的任何一个图像作为输入。如果可以从图像中检测到一只狗,它会输出对狗品种的预测。如果图像中是一个人脸,它会预测一个与其最相似的狗的种类...https://blog.51cto.com/u_16099185/9103256
3.狗语翻译器作文(精选6篇)狗语翻译器DOG-BOX2.0是由6号宠物电子科技有限公司独立研发,并拥有自主知识产权的高科技宠物电子产品,用于识别宠物的叫声和肢体语言、翻译成人类语言,并以语音形式播放。目前,识别翻译准确率最高可达70%。本产品意在增添更多养狗乐趣,增进人与狗狗之间的情感交流,给大家带来非一般的生活情趣。 https://www.360wenmi.com/f/file13om0zu8.html
4.狗狗字体识别软件下载狗狗字体识别器下载v1.1免费版没有对应的苹果版,点击下载的是:狗狗字体识别器v1.1 免费版介绍相关推荐评论(0) 识别字体的软件狗狗字体识别工具是第一款中文字体识别软件,里的识别,指的是字的打印(或曰书写)风格,如宋、楷、黑体,而不是字本身;是一款非常强大的实用软件。 狗狗字体识别使用方法 第一,点菜单文件,打开一个包含文字的图像文件; ...https://m.itmop.com/i/10116/
5.养狗新手必看25狗狗皮肤病识别图谱丨螨虫真菌跳蚤脓...全全搜集总结了一下狗狗常见的皮肤病对比图谱,大家可以对照识别一下噢,但实践中经常发现狗狗是混合感染,所以治疗方案仅供参考,必须带给兽医检查确诊之后听从兽医的意见来用药噢! 狗狗常见皮肤病之真菌性皮肤病 患病原因: 1.毛发没有吹干是主要原因 2.营养不良、抵抗力弱 ...https://magapp.bandog.cn/mag/circle/v1/forum/threadWapPage?tid=2471231
6.看图识别皮肤泊图识别皮肤病图解智能看图识别皮肤病 看图识别皮肤病图解智能 看图识病皮肤科 1、看图识病皮肤科,皮肤病的种类是非常多的,人们总是会被各种皮肤病困扰,随着夏天的温度和湿度很适合细菌生长,因此正是各类皮肤病致病菌大量繁殖的季节,以下分享看图识病皮肤科。 2、常见皮肤病图片及名称疥疮疥疮是一种常见的皮肤病,由微小疥螨的雌性引起。https://www.hnzaozhiji.com/9981.html
7.用户手册3、物种识别时有动物特殊处理 ① 人人人(行为): 安装、取卡、采集、盗猎、调查、路过 ② 家养动物:狗狗、家猫、家鸡、家牛、家羊 ③ 无名兽:非鼠类动物 ④ 无名鼠:鼠类动物。但能确认到属时,选本样区的代表种。如都江堰林区,鉴定为白腹鼠属的种类(针毛鼠、社鼠),选物种时统一定为针毛鼠. ...https://www.gscloud.cn/cameradata/articles/article_3.shtml
8.动物语言翻译模拟器2024最新版动物语言翻译模拟器2024最新版是一款创新的模拟类游戏,玩家将在游戏中体验到与各类动物交流的乐趣。通过先进的语音识别和人工智能技术,游戏将真实还原动物的语言特征,让玩家能够理解动物的需求、情感和习性。从猫咪的撒娇到狗狗的吠叫,甚至是鸟儿的鸣唱,游戏为玩家提供了一个与自然生物亲密互动的机会。 游戏特色 1. 多...https://m.91jinjindai.com/game/23174.html
9.银子什么样的最纯怎样鉴定银子的纯度怎么样识别银子的纯度? 一、看颜色 银的纯度越高,银的颜色越洁白,一般纯银的饰品表面看上去均匀发亮,有润色。纯度越低,颜色越容易呈现青灰或者外表比较粗糙。 二、掂重量 银的密度大,重量比一般金属要沉,都说“铝质轻、银质重、铜质不清也不重”,因此银的纯度越大,重量就越大。 http://m.boqii.com/article/123408.html
10.优势定制宠物训狗器止吠器PCBA开发常见问题来电咨询「深圳市钻光...1.需求分析钻光电子首先与客户沟通,详细了解客户的需求,包括但不限于:宠物的种类和体型;训练的目标和期望;使用环境和场景;特殊的功能需求。 2.方案设计(1)功能规划基于需求分析的结果,钻光电子团队制定详细的功能规划,确定设备的功能,如:智能识别技术,用于捕捉狗狗吠声;多种训练模式,如声音警告、震动和轻微刺激;远...https://qiye.8684.com/6q0gmhkd2j-48058253.html
11.狗狗如何识别主人(探秘狗狗的感知机制与行为表现)养宠知识狗狗天生具有极为敏锐的嗅觉器官,其嗅觉细胞比人类多50倍以上,能够侦测到微小的气味变化。而且,狗狗嗅觉器官中存在着一种特殊的结构——雅各布氏器,其可识别分泌物中的挥发性有机物,是狗狗嗅觉敏锐的关键。 狗狗对主人气味的敏感度 狗狗能够记住主人的气味,且对主人气味的敏感度极高。根据研究,狗狗能够分辨出主人身...https://www.pettb.cn/article-30683-1.html
12.未来的我小学作文(精选48篇)它的鼻子里安装有气味识别器,气味识别器由智能信息系统、激光系统、光谱分析系统和相应的其他系统构成。可根据味道,来识别垃圾,并区分垃圾种类。“回收狗”会把可回收的垃圾装进自己的肚子里,通过高科技分解和再生技术进行加工转化为可再利用的资源。接着,“回收狗”从嘴里吐出一张很大的网把不可回收的垃圾装了...https://www.ruiwen.com/zuowen/wo/1962695.html
13.未来的我作文500字(精选30篇)它的鼻子里安装有气味识别器,气味识别器由智能信息系统、激光系统、光谱分析系统和相应的其他系统构成。可根据味道,来识别垃圾,并区分垃圾种类。“回收狗”会把可回收的垃圾装进自己的肚子里,通过高科技分解和再生技术进行加工转化为可再利用的资源。接着,“回收狗”从嘴里吐出一张很大的网把不可回收的垃圾装了...https://www.yuwenmi.com/zuowen/sannianji/386256.html
14.致2035年的我作文600字(精选52篇)它的鼻子里安装有气味识别器,气味识别器由智能信息系统、激光系统、光谱分析系统和相应的其他系统构成。可根据味道,来识别垃圾,并区分垃圾种类。“回收狗”会把可回收的垃圾装进自己的肚子里,通过高科技分解和再生技术进行加工转化为可再利用的资源。接着,“回收狗”从嘴里吐出一张很大的网把不可回收的垃圾装了...https://www.unjs.com/zuowendaquan/zuowenliubaizi/5787110.html
15.2035年后的我作文范文500字(精选49篇)它的鼻子里安装有气味识别器,气味识别器由智能信息系统、激光系统、光谱分析系统和相应的其他系统构成。可根据味道,来识别垃圾,并区分垃圾种类。“回收狗”会把可回收的垃圾装进自己的肚子里,通过高科技分解和再生技术进行加工转化为可再利用的资源。接着,“回收狗”从嘴里吐出一张很大的网把不可回收的垃圾装了...https://www.oh100.com/a/202210/5437701.html