提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本文主要介绍如何使用python搭建:一个基于深度残差网络(ResNet)的水果图像分类识别系统。
提示:以下是本篇文章正文内容,下面案例可供参考
一.背景含义项目说明
1.本文主要介绍如何使用python搭建:一个基于深度残差网络(ResNet)的水果图像分类识别系统。
项目只是用水果分类作为抛砖引玉,其中包含了使用ResNet进行图像分类的相关代码。(主要功能 如下):
- 数据预处理,生成用于输入TensorFlow模型的TFRecord的数据。
- 模型构建及训练,使用tensorflow.keras构建深度残差网络。
- 预测水果分类并进行模型评估。
二、数据预处理
1.数据介绍:
数据大小 | 81类水果数据集共计14124张图片 |
---|---|
数据条目 | 训练集11331张图片–测试集2793张图片 |
数据格式 | jpg格式,ImageNet数据集格式 |
数据集格式为ImageNet数据集格式。该数据集包含81个种类的水果,数据集共81个类别:人参果、佛手瓜、哈密瓜、圣女果、山楂、山竹、无花果、木瓜、李子、杏、杨桃、杨梅、枇、枣、柚子、柠檬、柿子、树莓、桂圆、桑葚、梨、椰子、榴莲等
2.读取/获取数据:
使用pytorch工具类DataLoader读取该数据集,其中对数据按照224*224进行了随机裁剪、随机水平翻转、转化为张量、并按照均值mean=[0.485, 0.456, 0.406]标准差std=[0.229, 0.224, 0.225]进行了归一化处理。训练集与测试集按照8:2的比例进行划分。
3.部分代码展示:
- 导入包
import streamlit as st
import cv2
from PIL import Image,ImageDraw,ImageFont
import tempfile
import torch
from torchvision import transforms
import torch.nn.functional as F
import numpy as np
import config
- 采用PTL读取数据集
nput:PIL读取的image
return:经过模型预测的带有类别标签、置信度的PIL格式的图片
'''
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
#图片前处理
val_transforms = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
uploaded_image=uploaded_image.convert('RGB')
transform_image = val_transforms(uploaded_image)
predict_image = transform_image.unsqueeze(0).to(device)
pred_logits =