使用深度学习识别狗的品种人工智能遇见磐创

我们将使用深度学习来训练一个模型的数据集的狗图像与他们的品种,以学习的特征来区分每一个品种。

犬种总数:133

狗图片总数:8351(训练集:6680,验证集:835,测试集:836)

最受欢迎的品种:阿拉斯加:96,博德牧羊犬:93

按图片数量排序的前30个品种如下:

我们还可以在这里看到一些狗的图片和它们的品种:

经过分析,为机器学习算法准备数据。我们将把每个图像作为一个numpy数组加载,并将它们的大小调整为224x224,因为这是大多数传统神经网络接受图像的默认大小。我们还将为图像的数量添加另一个维度

fromkeras.preprocessingimportimagefromtqdmimporttqdmdefpath_to_tensor(img_path):'''将给定路径下的图像转换为张量'''img=image.load_img(img_path,target_size=(224,224))x=image.img_to_array(img)returnnp.expand_dims(x,axis=0)defpaths_to_tensor(img_paths):'''将给定路径中的所有图像转换为张量'''list_of_tensors=[path_to_tensor(img_path)forimg_pathintqdm(img_paths)]returnnp.vstack(list_of_tensors)最后,我们将使用ImageDataGenerator对图像进行动态缩放和增强

train_datagen=tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255,horizontal_flip=True,vertical_flip=True,rotation_range=20)valid_datagen=tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255.)test_datagen=tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255.)train_generator=train_datagen.flow(train_tensors,train_targets,batch_size=32)valid_generator=train_datagen.flow(valid_tensors,valid_targets,batch_size=32)test_generator=train_datagen.flow(test_tensors,test_targets,batch_size=32)CNN我们将在预处理数据集上从头开始训练卷积神经网络(CNN),如下所示:

现在,我们将看到如何使用预训练的特征可以产生巨大的不同。下载ResNet-50。你可以通过运行下面的代码单元来提取相应的训练集、测试和验证集:

bottleneck_features=np.load('Data/bottleneck_features/DogResnet50Data.npz')train_Resnet50=bottleneck_features['train']valid_Resnet50=bottleneck_features['valid']test_Resnet50=bottleneck_features['test']我们现在将再次定义模型,并对提取的特征使用GlobalAveragePooling2D,它将一组特征平均为一个值。最后,如果验证损失在两个连续的epoch内没有增加,我们使用额外的回调来降低学习率,降低平台,并且如果验证损失在连续的5个epoch内没有增加,也可以提前停止训练。

Resnet50_model=tf.keras.models.Sequential()Resnet50_model.add(tf.keras.layers.GlobalAveragePooling2D(input_shape=train_Resnet50.shape[1:]))Resnet50_model.add(tf.keras.layers.Dense(1024,activation='relu'))Resnet50_model.add(tf.keras.layers.Dense(133,activation='softmax'))Resnet50_model.compile(loss='categorical_crossentropy',optimizer='rmsprop',metrics=['accuracy'])checkpointer=tf.keras.callbacks.ModelCheckpoint(filepath='saved_models/weights_best_Resnet50.hdf5',verbose=1,save_best_only=True)early_stopping=tf.keras.callbacks.EarlyStopping(patience=5,monitor='val_loss')reduce_lr=tf.keras.callbacks.ReduceLROnPlateau(patience=2,monitor='val_loss')Resnet50_model.fit(train_Resnet50,train_targets,validation_data=(valid_Resnet50,valid_targets),epochs=50,batch_size=20,callbacks=[checkpointer,early_stopping,reduce_lr],verbose=1)###训练模型在测试集上的准确率为82.65%。与我们白手起家训练的模型相比,这是一个巨大的进步。

对于web应用程序,我们将首先编写一个helper函数,该函数接受图像路径并返回品种。label_to_cat字典将每个数字标签映射到它的狗品种。

defpredict_breed(img_path):'''预测给定图像的品种'''#提取特征bottleneck_feature=extract_Resnet50(path_to_tensor(img_path))bottleneck_feature=tf.keras.models.Sequential([tf.keras.layers.GlobalAveragePooling2D(input_shape=bottleneck_feature.shape[1:])]).predict(bottleneck_feature).reshape(1,1,1,2048)#获得预测向量predicted_vector=Resnet50_model.predict(bottleneck_feature)#模型预测的犬种returnlabel_to_cat[np.argmax(predicted_vector)]对于web应用程序,我们将使用flaskweb框架来帮助我们用最少的代码创建web应用程序。我们将定义一个接受图像的路由,并用狗的品种呈现一个输出模板

@app.route('/upload',methods=['POST','GET'])defupload_file():ifrequest.method=='GET':returnrender_template('index.html')else:file=request.files['image']full_name=os.path.join(UPLOAD_FOLDER,file.filename)file.save(full_name)dog_breed=dog_breed_classifier(full_name)returnrender_template('predict.html',image_file_name=file.filename,label=dog_breed)predict.html是分别显示图像及其犬种的模板。

祝贺你!你已经成功地实现了一个狗品种分类器,并且可以自信地分辨出狗的品种。让我们总结一下我们在这里学到的:

我们对数据集进行了分析和预处理。机器学习算法需要单独的训练集、测试集和验证集来进行置信预测。

我们从零开始使用CNN,由于未能提取特征,所以表现不佳。

然后我们使用迁移学习,准确度大大提高

最后,我们构建了一个Flaskweb应用程序来准备我们的项目产品

我们确实学到了很多东西,但还有很多其他的事情你可以尝试。你可以在heroku上部署web应用程序,也可以尝试使用不同的层(如Dropout层)来提高准确性。

THE END
1.用照片查狗的品种3. 拍照识物神器:这是一款可以随时随地拍照查询的软件,只需要简简单单的拍下照片就能帮忙用户识别狗狗的品种。4. 万物识别:这是一款能辨别狗品种的软件,用户可以通过下载该软件,然后选择相机符号,进入新界面后,点击左下角的符号,然后选择所要鉴定的狗狗照片,经过一系列步骤后,可以鉴定出狗狗的品种。5. 根据图片...https://page.sm.cn/blm/midpage-317/index?id=24_b54473598033b3a92d8937c75d53fa74
2.狗品种识别Android-一款从图片识别狗的类别的应用包括Android版和微信小程序版。 一款从图片识别狗的类别的应用,包括Android版和微信小程序版。 上传者:weixin_39841848时间:2019-08-13 狗品种图像识别算法CNN 狗的品种识别,人脸检测,tensofflow,cnn,迁移学习, 有些模板代码已经提供给你,但还需要实现更多的功能来完成这个项目...https://www.iteye.com/resource/weixin_38629939-13754733
3.狗狗的品种怎么识别有三种方法。第一、手机百度搜索狗狗品种大全,对照比较进行识别,但是网上有些图片可能不太准确。第二、到附近宠物医院或宠物美容店找专业人员询问,通常这种方式得到的准确性最高,建议采取。第三、问周围懂的人或直接问狗贩子,也会得到结果,但是准确性不一定高。枕...https://edu.iask.sina.com.cn/jy/kxssdKm2M7.html
4.鉴定狗狗品种app排行榜前十名识图 图片搜索 立即下载 识物大师 2023-09-07 立即下载 拍照识物全能王 2024-10-15 立即下载 万能识图王app 2024-08-29 识图 立即下载 犬易 2023-10-26 立即下载 拍图识物 2023-06-15 立即下载 十大相关软件专辑 鉴定狗狗品种app有哪些?几款可以识别宠物品种软件推荐鉴定护肤品真假app化妆品鉴...https://m.pianwan.com/s/zj-2767483
1.CNN识别120种狗的品种扫一扫识狗品种我心依旧的技术博客CNN 识别120种狗的品种 扫一扫识狗品种 项目介绍 小狗分类器可以做什么? 通过这个分类器,你只需要上传照片,就可以得到小狗的品种,以及更多的信息。 这就是所谓的「机器学习」,让机器自己去“学习”。我们今天要做的这个分类任务,是一个“监督学习”的过程。https://blog.51cto.com/u_14224/11134078
2.找图不求人!10个以图搜图的识图网站推荐9、你的狗是什么品种? 地址:https://www.what-dog.net/ 如名称,微软的狗狗品种识别网站。 10、SauceNAO Image Search 地址:https://saucenao.com/ 专用于图片网站 Pixiv (pixiv.net) 的以图识图搜索引擎,上传图片,即可获得该图片的来源以及 Pixiv ID 和作者链接。 结语 结合上面 10 个图片反向搜索引擎,应...https://www.wang1314.com/doc/topic-21429498-1.html
3.Kaggle项目实战记录狗的品种识别实战kaggle比赛:狗的品种识别这是一个动手学深度学习原课程的一个比赛项目(狗的品种识别)。课程的地址。 自己顺便记录一下这个项目自己的实现流程和思考,以巩固熟悉关于图片分类项目的整个流程。 用到的都是最基本的技术,初学者都会。 1 查看原数据 先浏览一下原数据长什么样子。 https://blog.csdn.net/takedachia/article/details/126505832
4.一网打尽!全面汇总热门搜索引擎网站中国科学院植物研究所看图识花,中国科学院植物研究所的花朵种类名称搜索引擎。 11.你的狗是什么品种? 地址:https://www.what-dog.net 微软狗狗品种识别网站 google谷歌学术镜像网站收集分享了最新可用谷歌学术(google scholar)搜索引擎镜像导航入口地址,我们会及时更新最新可用的谷歌学术镜像网站地址以方便大家查找相关学...https://www.afxw5.com/47671/
5.哈狗万能拍照识别免费下载狗狗品种识别助手,精准识别,方便快捷。应用截图应用介绍 哈狗识别-识别狗狗品种软件,能够识别照片中的狗狗品质,专业可靠,爱狗人士必备狗狗识别助手。哈狗识别app,拍照识别狗狗品种,精准又便捷。 哈狗万能拍照识别软件介绍 哈狗万能拍照识别是一款狗狗品类的识别。 基于成熟的图片识别技术,成功创建“在线学习”的架构,...https://www.qqtn.com/azsoft/558214.html
6.mhfx.menhoo.cn/apfccd84452636/757272.shtml人狗高潮大BB丰满 国内精品一战二战三战成都 训服的小?子2 军警大J8正装灰裤子踩裆 天天干在线观看 一道本免费高清中字幕1V1 经典老头同性恋大几巴打手冲 农村同性壮汉野外互交H 荫蒂添的好舒服嗯快嗯呢视频 6A主管 雀7IIII2扣安稳 张柏芝艳照400张图 黄色视频小说图片 白丝校花被大鸡巴操爽了 ...http://mhfx.menhoo.cn/apfccd84452636/757272.shtml
7.小型宠物狗品种图片大全我带你认识这些可爱的小球球小型宠物狗品种图片大全,带你认识这些可爱的小球球! 在我们生活的喧嚣中,有一种温柔而又不失活力的存在,那就是小型宠物狗。它们以其清澈的大眼睛、蓬松的毛发和无与伦比的亲昵性赢得了人们的心。今天,我们就来一起来看看那些最受欢迎的小型宠物狗品种,它们是如何用它们那迷人的外表和优雅的举止征服了我们的世界。https://www.wazxzpm.cn/geng-duo-chong-wu/111226.html
8.怎么鉴定狗种怎么辨别狗的品种?没有照片怎么看,把照片地址发上来吧,记得不要QQ空间的,不然看不了。鉴别狗的品种是靠很多的,你朋友说的泰迪熊,根本没有这个犬种,泰迪只是贵宾犬的一种造型、一种美容方式,她说的有可能是贵宾犬,贵宾犬有很多颜色,白色、灰色、黑色、红色、香槟色等。 http://m.boqii.com/article/79110.html
9.狗盲不存在!印度小哥实战搭建狗品种识别算法,只要7步然后就可以拍摄图像并预测狗的品种啦!当然,如果是人类,则预测与此人最相似的狗品种。 狗品种预测 输入图像后,softmax分类器会将最大概率的索引定为最终品种。 此外,算法还会显示5个最有可能的犬种及其softmax概率。 最终算法 输入狗和人脸的图片后,上述函数将调用final_breed_prediction方法进行预测,并显示相关信息...https://cloud.tencent.com/developer/article/1867550
10.怎样识别狗狗是什么样的品种爱宠网注意狗狗的鼻子、眼睛、耳朵和尾巴的形状。 通过狗狗的年龄和体型来判断。每种狗狗品种都有独特的年龄和体型特征,例如是否为成年狗或小狗,是否为大型犬或小型犬等。注意狗狗的年龄和体型。 如果你还是不能准确地识https://www.lovepet.cn/ask/72947.html
11.闻“耳”识狗,1分钟认识不同耳朵的狗狗我们知道狗的品种高达170多种,就算是专业的爱狗人士,他们也很难一秒就知道眼前的狗是什么品种。 如果你是一个爱狗人士,当身边有朋友问你“这只狗耳朵很大,是什么品种?”,如果你回答不出来岂不是很尴尬。 接下来,小爱同学教您通过耳朵来分辨狗的品种,让你在朋友面前化解尴尬。 长耳朵的品种 1、金毛犬 2、比格...https://www.douban.com/group/topic/146075699/
12.狗的品种大全常见宠物狗种类有哪些→MAIGOO知识摘要:现在好多人喜欢养狗,宠物狗的类型也多了起来,有的狗养起来非常复杂,有的狗没什么讲究。市面上常见的宠物狗品种有很多,包括哈士奇、藏獒、金毛、贵宾、萨摩耶、博美、雪纳瑞、苏牧、松狮犬、北京犬、吉娃娃、阿拉斯加雪橇犬、喜乐蒂牧羊犬等等,接下来就和小编一起来看看吧。 https://m.maigoo.com/goomai/182080.html
13.大丹犬狗狗品种介绍狗狗百科市场有多种专门为幼狗设计的狗粮,家长可根据它们的需要选择购置。喂食大丹幼犬应遵循少食多餐原则。 读完这篇文章,我们来总结下本文共涉及到了哪些知识点,包括有大丹犬的图片、狗狗品种、宠物狗、饲养大丹犬、大丹犬的血统、大丹犬好养吗等方面的知识,希望这些能够帮您更好地了解文章主题。https://www.ibabubu.com/ziran/14845.html
14.乖宠网乖宠网(www.guaichong.cn)提供各种宠物的品种知识,猫咪狗狗图片视频,还有关于宠物猫狗的喂养护理、训练和病症问题百科大全,想了解更多喂养宠物的注意事项就上乖宠网。https://www.guaichong.cn/