深度学习—利用TensorFlow2实现狗狗品种品种(resnet50实现)

使用深度学习识别狗的品种 作者|Nouman 编译|VK 来源|Towards Data Science 在这篇文章中,我将教你建立你自己的网页应用程序,它将接受你的狗的图片,并输出其品种。准确率超过80%! 我们将使用深度学习来训练一个模型的数据集的狗图像与他们的品种,以学习的特征来区分每一个品种。 数据分析 数据集可以从这里下载(https://s3-us-west-1.amazonaws.com/udacity-aind/dog-project/dogImages.zip)。在成功加载和浏览数据集后,以下是关于数据的一些介 阅读详情

利用TensorFlow2,实现:识别狗狗的113个品种

我是在公众号上看到一个关于使用Python+keras实现狗狗品种分类的推文感觉挺有意思这个是他的博客(https://blog.youkuaiyun.com/woshicver/article/details/108505674),这个推文实现起来还不错的,所以就动手做了。但是,真正做的时候,我发现代码什么的,掐头去尾,我搞了半天都没有复现成功,所以,我按照他的意思,数据集,开发的步骤,自己进行开发。他用resnet50实现模型精度能高达82%,他的博客中具体的没写出来。但是,我自己实现了精度只有70%多。预测狗狗种类的结果极差。但是,我在使用相同的超参数及其他配置,换了densenet121,模型精度有80%,图片预测准确度极高97~99%,mobilenet,模型精度虽然只有70%,但是,预测狗狗品种极为准确resnet121,模型精度有76%,图片预测准确度也和resnet50一样极地。后续我会将densenet121,mobilenet实现的代码发布出来。
我的开发环境是

  1. Ubuntu18.
  2. TensorFlow2

狗狗品种的数据集是: https://s3.cn-north-1.amazonaws.com.cn/static-documents/nd101/v4-dataset/dogImages.zip

狗狗种类识别的开发流程

  1. 加载相关的Python库

  2. 加载数据图片

  3. 对数据进行预处理

  4. 使用预训练网络进行训练

  5. 测试模型的精度

# 引入相关的库
import tensorflow as tf
from tensorflow.keras.preprocessing import image
import pathlib
import os
import numpy as np
import random
import glob
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import pandas as pd
import matplotlib.pyplot as plt

添加GPU的内存分配情况

  1. 我的GPU是2080max,内存是7642 ,我将GPU设置成7000 ,最大利用我自己GPU使用的
  2. 如果不设置,会报UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]

解决图片字节丢失

  1. 不添加 6,7行代码,在训练时我会报image file is truncated (150 bytes not processed)
gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
tf.config.experimental.set_virtual_device_configuration(
    gpus[0],
    [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=7000)])
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

对图片进行数据的预处理

  1. 获取到图片的路径

  2. 定义超参数

  3. 对训练数据,验证数据,测试数据进行数据增强()

# 获取图片路径
train_root = '/home/hyb/狗狗识别/dogImages/train'
test_root = '/home/hyb/狗狗识别/dogImages/test'
valid_root = '/home/hyb/狗狗识别/dogImages/valid'
# 定义超参数,避免在编译,训练的代码中进行硬编码,方便调整超参数
weigth = 224
heigth = 224
channels = 3
batch_size = 28
num_classes = 133
# 数据增强
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
    # 使用resnet50对数据进行处理
    preprocessing_function = tf.keras.applications.resnet50.preprocess_input,
    rotation_range= 40,
    width_shift_range= 0.2,
    height_shift_range= 0.2,
    shear_range= 0.2,
    zoom_range= 0.2,
    horizontal_flip= True,
    fill_mode= 'nearest'
)
# 主要是读取到图片目录下的所以狗狗种类和图片,对图片进行预处理
train_generator = train_datagen.flow_from_directory(
    train_root,
    target_size=(weigth,heigth),
    batch_size=batch_size,
    seed = 7,
    shuffle= True,
    class_mode = "categorical"
)


valid_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
    preprocessing_function = tf.keras.applications.resnet50.preprocess_input,
)
# 主要是读取到图片目录下的所以狗狗种类和图片,对图片进行预处理
valid_generator = train_datagen.flow_from_directory(
    valid_root,
    target_size=(weigth,heigth),
    batch_size=batch_size,
    seed = 7,
    shuffle= False,
    class_mode = "categorical"
)

train_num = train_generator.samples
valid_num = valid_generator.samples
print("训练集中的图片数量:",train_num)
print("验证集中的图片数量:",valid_num)

在这里插入图片描述

test_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
    preprocessing_function = tf.keras.applications.resnet50.preprocess_input,
)
# 主要是读取到图片目录下的所以狗狗种类和图片,对图片进行预处理
test_generator = train_datagen.flow_from_directory(
    test_root,
    target_size=(weigth,heigth),
    batch_size=batch_size,

)
test_num = test_generator.samples
print("训练集中的图片数量:",test_num)

在这里插入图片描述

模型

  1. 加载resnet50
  2. 改变输出层,将神经元设置成超参数的133,对应狗狗的种类
  3. 模型编译
  4. 模型训练
# 使用预训练模型 resnet50,是因为 使用预训练模型训练速度快,多层的神经网络压缩成了2成,训练好的+输出层,节约时间。
resnet50_fine_tune = tf.keras.models.Sequential()
resnet50_fine_tune.add(tf.keras.applications.ResNet50(include_top = False,
                                                   pooling = 'avg',
                                                   weights = 'imagenet'))
# 修改输出神经元对应狗狗种类
resnet50_fine_tune.add(tf.keras.layers.Dense(num_classes, activation = 'softmax'))
resnet50_fine_tune.layers[0].trainable = False

# 对模型进行编译
resnet50_fine_tune.compile(loss="categorical_crossentropy",
                           optimizer="Adam", metrics=['accuracy'])
resnet50_fine_tune.summary()

在这里插入图片描述

# 设置哨兵,用来存储quan# 设置哨兵,用来存储权重模型,和数据收敛,模型再也学习不到新内容的时候及时收敛
checkpoint_path = "/home/hyb/狗狗识别/dogImages/saved_models/checkpoint/cp.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)
checkpoint_filepath = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,
                                                 verbose= 1,
                                                 save_weights_only= True,
                                                  save_best_only=True)
callback_dog=tf.keras.callbacks.EarlyStopping(patience=5,min_delta=1e-3)
history = resnet50_fine_tune.fit(train_generator,
                              steps_per_epoch=train_num // batch_size,
                             epochs=50,
                             validation_data=valid_generator,
                             validation_steps= valid_num // batch_size,
                             callbacks=[checkpoint_filepath,callback_dog])

对模型进行测试

  1. 测试模型的精度
  2. 存储模型,进行反向推理
# 加载权重
resnet50_fine_tune.load_weights(checkpoint_path)

# 评估模型
loss,acc = resnet50_fine_tune.evaluate(test_generator,verbose=1)
print("Restored model, accuracy: {:5.2f}%".format(100*acc))

在这里插入图片描述

# 存储模型
resnet50_fine_tune.save('/home/hyb/狗狗识别/dogImages/saved_models/model_h5/my_model.h5') 
# 重新创建完全相同的模型,包括其权重和优化程序
new_model = tf.keras.models.load_model('/home/hyb/狗狗识别/dogImages/saved_models/model_h5/my_model.h5')

# 显示网络结构
new_model.summary()
# 获取狗狗种类,以便后续对狗狗进行识别
files = sorted(os.listdir('./dogImages/test/'))
print(files)
# 狗狗的133个种类
files=['001.Affenpinscher', '002.Afghan_hound', '003.Airedale_terrier', '004.Akita', '005.Alaskan_malamute', '006.American_eskimo_dog', '007.American_foxhound', '008.American_staffordshire_terrier', '009.American_water_spaniel', '010.Anatolian_shepherd_dog', '011.Australian_cattle_dog', '012.Australian_shepherd', '013.Australian_terrier', '014.Basenji', '015.Basset_hound', '016.Beagle', '017.Bearded_collie', '018.Beauceron', '019.Bedlington_terrier', '020.Belgian_malinois', '021.Belgian_sheepdog', '022.Belgian_tervuren', '023.Bernese_mountain_dog', '024.Bichon_frise', '025.Black_and_tan_coonhound', '026.Black_russian_terrier', '027.Bloodhound', '028.Bluetick_coonhound', '029.Border_collie', '030.Border_terrier', '031.Borzoi', '032.Boston_terrier', '033.Bouvier_des_flandres', '034.Boxer', '035.Boykin_spaniel', '036.Briard', '037.Brittany', '038.Brussels_griffon', '039.Bull_terrier', '040.Bulldog', '041.Bullmastiff', '042.Cairn_terrier', '043.Canaan_dog', '044.Cane_corso', '045.Cardigan_welsh_corgi', '046.Cavalier_king_charles_spaniel', '047.Chesapeake_bay_retriever', '048.Chihuahua', '049.Chinese_crested', '050.Chinese_shar-pei', '051.Chow_chow', '052.Clumber_spaniel', '053.Cocker_spaniel', '054.Collie', '055.Curly-coated_retriever', '056.Dachshund', '057.Dalmatian', '058.Dandie_dinmont_terrier', '059.Doberman_pinscher', '060.Dogue_de_bordeaux', '061.English_cocker_spaniel', '062.English_setter', '063.English_springer_spaniel', '064.English_toy_spaniel', '065.Entlebucher_mountain_dog', '066.Field_spaniel', '067.Finnish_spitz', '068.Flat-coated_retriever', '069.French_bulldog', '070.German_pinscher', '071.German_shepherd_dog', '072.German_shorthaired_pointer', '073.German_wirehaired_pointer', '074.Giant_schnauzer', '075.Glen_of_imaal_terrier', '076.Golden_retriever', '077.Gordon_setter', '078.Great_dane', '079.Great_pyrenees', '080.Greater_swiss_mountain_dog', '081.Greyhound', '082.Havanese', '083.Ibizan_hound', '084.Icelandic_sheepdog', '085.Irish_red_and_white_setter', '086.Irish_setter', '087.Irish_terrier', '088.Irish_water_spaniel', '089.Irish_wolfhound', '090.Italian_greyhound', '091.Japanese_chin', '092.Keeshond', '093.Kerry_blue_terrier', '094.Komondor', '095.Kuvasz', '096.Labrador_retriever', '097.Lakeland_terrier', '098.Leonberger', '099.Lhasa_apso', '100.Lowchen', '101.Maltese', '102.Manchester_terrier', '103.Mastiff', '104.Miniature_schnauzer', '105.Neapolitan_mastiff', '106.Newfoundland', '107.Norfolk_terrier', '108.Norwegian_buhund', '109.Norwegian_elkhound', '110.Norwegian_lundehund', '111.Norwich_terrier', '112.Nova_scotia_duck_tolling_retriever', '113.Old_english_sheepdog', '114.Otterhound', '115.Papillon', '116.Parson_russell_terrier', '117.Pekingese', '118.Pembroke_welsh_corgi', '119.Petit_basset_griffon_vendeen', '120.Pharaoh_hound', '121.Plott', '122.Pointer', '123.Pomeranian', '124.Poodle', '125.Portuguese_water_dog', '126.Saint_bernard', '127.Silky_terrier', '128.Smooth_fox_terrier', '129.Tibetan_mastiff', '130.Welsh_springer_spaniel', '131.Wirehaired_pointing_griffon', '132.Xoloitzcuintli', '133.Yorkshire_terrier']
# 对狗狗种类进行预测:我这张是哈士奇,对应的是5号,虽然只有3%,但都比绝大多数的评分要多
from keras.preprocessing.image import load_img, img_to_array
pic_dog = '/home/hyb/下载/f4e72bb4d99229c63223364a094c6f03.jpg'
pic_dog = load_img(pic_dog,target_size=(224,224))
pic_dog = img_to_array(pic_dog)
pic_dog = pic_dog/255
pic_dog = pic_dog.reshape(1,224,224,3)
result = resnet50_fine_tune.predict(pic_dog)
# print(result)
count = 0
for i in result[0]:
    percent = '%.3f%%'%(i*100)
    print("{}的概率:{}".format(files[count],percent))
    count += 1

在这里插入图片描述

# 模型学习曲线
def plot_learning_curves(history, label, epcohs, min_value, max_value):
    data = {}
    data[label] = history.history[label]
    data['val_'+label] = history.history['val_'+label]
    pd.DataFrame(data).plot(figsize=(8, 5))
    plt.grid(True)
    plt.axis([0, 20, min_value, max_value])
    plt.show()
    
plot_learning_curves(history, 'accuracy', 20, 0, 1)
plot_learning_curves(history, 'loss', 20, 0, 2)

在这里插入图片描述

李沐动手学深度学习V2-实战Kaggle比赛:狗的品种识别(ImageNet Dogs)和代码实现 一. 实战Kaggle比赛:狗的品种识别(ImageNet Dogs) 1. 介绍 在这场比赛中,将识别120类不同品种的狗,这个数据集是ImageNet的数据集子集,与 CIFAR-10数据集中的图像不同, ImageNet数据集中的图像更高更宽,且尺寸不一。比赛网址:https://www.kaggle.com/c/dog-breed-identification 比赛数据集分为训练集和测试集,分别包含RGB(彩色)通道的10222张、10357张JPEG图像。 在训练数据集中,有120种犬类,如拉布拉 阅读详情

相关推荐

AI学习实践指南:从零到一的四阶段实战路线图

机器学习与深度学习作为人工智能的核心技术,其学习路径往往遵循从理论到实践的迭代过程。理解算法原理是基础,但真正的掌握源于工程实践。通过构建项目闭环,开发者能够将隐性的技术知识转化为解决实际问题的能力,这一过程对于模型调优、特征工程及部署应用至关重要。无论是计算机视觉中的图像分类,还是自然语言处理中的文本分析,实践驱动的方法都能有效提升学习效率。本文以Kaggle竞赛和真实数据集处理为例,系统阐述了如何通过分阶段实战,快速构建AI工程能力,并自然融入实验思维与解决问题思维,帮助学习者避免完美主义陷阱,实现从入

weixin_30430169的博客 344

「ResNet-18」70 个犬种的图片分类

「ResNet-18」70 个犬种的图片分类

小嗷犬的博客 569

第44步 深度学习图像识别:ResNet50建模(Tensorflow)

第44步 深度学习图像识别:ResNet50建模(Tensorflow)

Jet4505的博客 9147

深度学习之基于Tensorflow2.0实现ResNet50网络

理论上讲,当网络层数加深时,网络的性能会变强,而实际上,在不断的加深网络层数后,分类性能不会提高,而是会导致网络收敛更缓慢,准确率也随着降低。利用数据增强等方法抑制过拟合后,准确率也不会得到提高,出现梯度消失的现象。因此,盲目的增加网络层数会适得其反,因此,ResNet(残差网络)系列网络出现了。本次基于Tensorflow2.0实现ResNet50网络。 1.ResNet50网络简介 ResNet50网络在层数上相比于VGG系列网络更胜一筹。这是何凯明在2015年提出的一种网络结构,获得了ILSVRC-2

starlet_kiss的博客 4865

Python图像分类实战:从数据预处理到模型部署的完整指南

图像分类是计算机视觉的基础任务,其核心原理是通过卷积神经网络(CNN)自动学习图像的特征表示,实现自动化识别与归类。这项技术的价值在于将海量视觉信息转化为结构化数据,广泛应用于安防监控、医疗影像分析、自动驾驶及工业质检等领域。在工程实践中,Python因其简洁语法和强大的库生态成为首选,其中PyTorch和TensorFlow框架大大降低了深度学习项目的开发门槛。通过一个典型的图像分类项目,开发者可以系统掌握数据预处理、模型构建、训练优化及部署上线的全流程,特别是迁移学习技术能显著提升小数据场景下的模型性能

weixin_34279579的博客 438

基于1D CNN的振动信号故障诊断实战:从原理到工业部署

卷积神经网络(CNN)作为深度学习核心技术,通过局部感知、权值共享和层级抽象机制,能自动从原始数据中提取有效特征,极大降低了传统方法对专家经验和手动特征工程的依赖。在工业预测性维护领域,这一技术价值尤为突出,能够实现对设备健康状态的智能感知与早期预警。针对旋转机械振动信号这一关键工业数据,1D CNN因其端到端处理、计算高效和贴近信号物理本质的优势,成为故障智能诊断的理想选择。本文聚焦于1D CNN在振动信号故障分类中的工程实践,详细阐述了数据预处理、模型构建、训练调优及部署上线的完整流程,为工业设备智能运

cuiji1279的博客 388

MATLAB实战:基于ResNet与ArcFace的深度度量学习实现细粒度图像识别

深度度量学习是计算机视觉中的一项核心技术,它旨在学习一个特征嵌入空间,使得相似样本的特征表示彼此靠近,不相似样本的特征表示彼此远离。其核心原理是通过设计特定的损失函数(如对比损失、三元组损失等),直接优化样本在特征空间中的相对距离,而非传统的分类边界。这项技术的价值在于能够解决开放集识别、细粒度分类和相似性检索等复杂问题,在工业质检、电商搜索、医疗影像分析等领域有广泛应用。本文以区分高度相似的吉娃娃与博美犬种为具体场景,详细阐述了如何利用预训练的ResNet网络结合ArcFace损失函数,在MATLAB环境

weixin_30825581的博客 376

120种犬类图像数据集

犬数据集包含来自世界各地的120种犬类的图像。该数据集是使用ImageNet中的图像和注释方法构建的,常用于细粒度图像分类任务 犬数据集(Stanford Dogs)包含来自世界各地的120种犬类的图像。该数据集是使用ImageNet中的图像和注释方法构建的,常用于细粒度图像分类任务。数据集包括: 类别数量:120 图像数量:20,580 注释:类标签,边界框

卷积神经网络(CNN)原理详解:从核心组件到实战调优

卷积神经网络是深度学习处理图像、语音等网格化数据的核心架构,其设计灵感源于生物视觉系统。其核心原理在于通过卷积核的局部连接和权值共享,有效解决了传统全连接神经网络参数爆炸、无法捕捉空间局部关联的问题。这一技术通过卷积层、池化层、激活函数等组件的协同工作,实现了从像素中逐层提取并组合特征的能力,最终通过全连接层完成分类或回归决策,具有极高的技术价值。在应用场景上,CNN不仅是图像分类的基础,更是目标检测、语义分割等高级计算机视觉任务的通用特征提取器。本文以工业质检等实际项目为例,深入剖析了CNN从“黑箱”到“

weixin_34082789的博客 431

ThingsBoard - 设备接入

设备接入笔记

qq_53839898的博客 1454

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈...

mfreesky的专栏 2169

DenseNet实战:tensorflow2.X版本,DenseNet121图像分类任务(大数据集)

摘要 本例提取了猫狗大战数据集中的部分数据做数据集,演示tensorflow2.0以上的版本如何使用Keras实现图像分类,分类的模型使用DenseNet121。本文实现的算法有一下几个特点: 1、自定义了图片加载方式,更加灵活高效,节省内存 2、加载模型的预训练权重,训练时间更短。 3、数据增强选用albumentations。 训练 第一步 导入需要的数据包,设置全局参数 import numpy as np from tensorflow.keras.optimizers import Adam im

AI浩 4834

Goldwasser-Micali 公钥加密系统

1、二次剩余问题 对于整数n ,定义Zn∗={a∈Zn,gcd(a,n)=1}Z^*_n=\{ a∈Z_n,gcd(a,n) =1\}Zn∗​={a∈Zn​,gcd(a,n)=1} 。当存在d∈Znd \in Z_nd∈Zn​ ,使得 d2≡a mod nd^2 \equiv a \, mod \,nd2≡amodn ,称 a 为模 n 的二次剩余;否则称 a 为模 n的二次非剩余。判断 a 是否为模 n 的二次剩余的问题称为模n 的二次剩余问题。 \rule[-10pt]{14.3cm}{0.05em}

不染心的博客 4312

基于tensorflow的ResNet50V2网络识别动物

之前很多人在,如何进行XXX的识别,对应的神经网络如何搭建。对应神经网络怎么搭建,我也是照本宣科,只能说看得懂而已,没有对这块进行深入的研究,但是现在tensorflow,paddle这些工具,都提供了非常成熟的神经网络进行直接使用。本文对过往的一些文章进行改造,使用已经集成的神经网络,简单的实现多个种类的动物识别。

2487

一次携程酒店 phantom-token 逆向实战复盘(附python纯算)

摘要 本文介绍了通过分析携程酒店列表页面的数据接口,使用Python实现抓取的方法。主要内容包括: 目标站点为携程酒店列表页,通过开发者工具发现关键接口fetchHotelList 将浏览器请求转换为Python代码,包含请求头(headers)、Cookies和POST数据 提供完整的请求示例代码,包含日期参数、城市ID等必要信息 特别声明仅供学习交流使用,禁止商业用途 展示了如何获取酒店列表数据,包括排序筛选等参数设置 该方法可用于研究酒店数据采集,但需要注意遵守网站使用条款。

自成背后的博客 3022

51单片机计算器(源程序+流程图+答辩报告+综合设计)

保姆级讲解!C语言编程,使用51单片机及LCD1602显示屏实现!

m0_57007304的博客 2万+

基于Tensorflow2.2 Object detection API使用CenterNet_ResNet50_v2预训练模型训练自己的数据集实现目标检测

基于Tensorflow2.2 Object detection API使用CenterNet_ResNet50_v2预训练模型训练自己的数据集实现目标检测 前面一篇博客介绍了Tensorflow2.2 object detection api训练环境的搭建,如果先看到本篇博客且又需要配置训练环境的话,可以参考 ...

l13022736018的博客 3303

bevformer详解(3): 逐行代码讲解

在这篇文章中,我们将从BEVFormer算法代码入手,深入探究BEV转换的流程。BEVFormer是一种基于Transformer的BEV转换模型,其核心思想是利用自注意力机制和交叉注意力机制,从,并通过Object Query与BEV特征的交互,完成3D目标检测和地图分割等任务。https://developer.baidu.com/article/details/3224715bevformer的网络结构由三部分组成, 模型结构所示,其中的是部分,对于的是的结构,对于部分,沿用的中的decoder部分,

@bangbang的博客 3700

用Tensorflow2搭建经典的卷积神经网络(LeNet,AlexNet,VGG16,ResNet50)

最近看了卷积神经网络的一些经典论文,用Tensorflow2进行了复现,其中包括LeNet,AlexNet,VGG16,ResNet50,并且在数据集上进行了测试,能够正常训练,结果表明搭建的没有问题。 下面进入正题: import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers import numpy as np import matplotlib.pyplot as plt %matpl

QianLong_的博客 1638

代数拓扑与AI架构:AI应用架构师深入探索数学研究如何分析复杂系统的结构特性

随着人工智能技术的飞速发展,AI系统变得越来越复杂。AI应用架构师需要有效的工具和方法来理解、设计和优化这些复杂系统。代数拓扑作为数学的一个分支,提供了独特的视角和技术来分析复杂系统的结构特性。本文旨在帮助AI应用架构师深入了解代数拓扑,以及如何将其应用于AI架构设计中,提升对复杂系统的分析能力。首先,我们会介绍代数拓扑和AI架构相关的核心概念及其联系,通过有趣的故事引入主题,让读者轻松理解复杂概念。接着,深入探讨代数拓扑的核心算法原理,结合具体的编程语言代码示例详细阐述。

大模型应用工坊 670

基于YOLOv10的机器人抓取引导系统:从物体检测到精准抓取

python# 数据标注工具简化版import os"""启动标注工具""""""标注单张图像"""print(f"标注图像: {os.path.basename(img_path)}")print("请在图像上绘制抓取矩形框...")# 这里应该实现交互式标注界面# 简化版本直接返回示例标注# 示例标注数据"""保存标注结果"""# 保存为YOLO格式# 转换为YOLO格式。

YOLO 377

Kaggle狗的种类识别竞赛——基于Pytorch框架的迁移学习方法

本文代码主要参考: https://www.kaggle.com/blankitdl/using-pytorch-resnet/edit https://www.kaggle.com/blankitdl/use-pretrained-pytorch-models/edit 一、基本介绍 比赛题目 Dog Breed Identification 官网对于比赛的介绍 In this playgro...

Blankit1的博客 3406

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ResNet从理论到实践(二)使用ResNet18进行猫狗分类

今天和大家分享一个开源项目,利用ResNet-18进行猫狗分类。整个项目基于Pytorch1.7实现。 项目地址为:https://gitee.com/cv365/cat-dog_classification 1.背景 给定25000张图片,其中一半图片内容为猫,另外一半图片内容为狗,如下图所示: 想要训练一个分类器,用于分类图片中的动物是猫还是狗。 我们将这25000张图片分成2部分,第一部分为20000张,2种类别各10000张,用于训练;第二部分为5000张,2种类别各2500张,用于测试网络性能。

CV计算机视觉 5287

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

狗狗图片识别分类的CNN(卷积网络)实现

项目概述: 一种可用于移动应用或网络应用的算法。 代码将能够接受任何用户提供的图像作为输入。 如果从图像中检测出小狗,该算法将大致识别出小狗品种。 如果检测出人脸,该算法将大致识别出最相似的小狗品种。 项目学习步骤: 导入以及预处理数据集 建立人脸检测模块:采用OpenVC检测人脸(https://docs.opencv.org/trunk/db/d28/tutorial_cascade_...

cfy_goheaven的博客 4654

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

七个值得实践的Kaggle机器学习项目 - 2024更上一层楼

这是一个监督学习问题,我们通过分析欺诈(fraud)和非欺诈(non-fraud)交易案例的信用卡交易数据集,开发一个机器学习模型来检测欺诈性信用卡交易,这对于金融机构增强安全性、保护用户免受欺诈活动并使不同交易的环境变得非常容易至关重要。在这个项目中,我们利用带有标记音频剪辑的数据集,例如包含情感语音录音的“RAVDESS”数据集,开发一个可以识别口语中不同类型的情绪(愤怒、快乐、疯狂等)的模型。应用不同的聚类算法,根据模型形成的其他聚类可视化客户细分,分析每个细分的特征以获得营销数据信息。

加百力 的技术博客 1万+

玩转Kaggle:Dog Breed Identification【识别狗的类别】

文章目录1. Kaggle数据集介绍2. 下载数据和数据整理(kaggle官网即可)3. 图像增广4. 加载数据5.微调模型6.可视化validation数据7. 输出测试结果并提交kaggle 1. Kaggle数据集介绍 狗的类别识别:https://www.kaggle.com/c/dog-breed-identification 我们将识别 120 类不同品种的狗。 这个数据集实际上是著名的 ImageNet 的数据集子集。 数据分布: 2. 下载数据和数据整理(kaggle官网即可) im

Liu Feng's Blog 1万+
上一篇: mysql - 条件判断
下一篇: 深度学习—利用TensorFlow2实现狗狗品种品种(mobilenet实现)
bingbing0607
博客等级 码龄9年 74粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值