【Python】OpenCV-使用ResNet50进行图像分类

使用ResNet50进行图像分类

如何使用ResNet50模型对图像进行分类。

python 复制代码
import os
import cv2
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image

# 设置代理
os.environ["HTTP_PROXY"] = "http://127.0.0.1:1080"
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:1080"

# 加载ResNet50模型
model = ResNet50(weights='imagenet')

# 读取和预处理图像
def preprocess_image(img_path):
    # 加载图像并调整大小为(224, 224)
    img = image.load_img(img_path, target_size=(224, 224))
    
    # 将图像转换为numpy数组
    img_array = image.img_to_array(img)
    
    # 在第0轴上添加维度,将其变为(1, 224, 224, 3)
    img_array = np.expand_dims(img_array, axis=0)
    
    # 对图像进行预处理,以适应ResNet50模型的输入要求
    img_array = preprocess_input(img_array)
    
    return img_array

# 加载图像
img_path = 'pandas.jpg'
img = preprocess_image(img_path)

# 进行预测
predictions = model.predict(img)

# 解码预测结果,获取前三个预测结果
decoded_predictions = decode_predictions(predictions, top=3)[0]

# 打印结果
print("Predictions:")
for i, (imagenet_id, label, score) in enumerate(decoded_predictions):
    print(f"{i + 1}: {label} ({score:.2f})")

# 显示图像
img = cv2.imread(img_path)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 测试图片:

  • 运行效果:

  • 翻译一下

相关推荐
松☆14 小时前
10分钟上手pypto:用Python直接调PTO虚拟指令集
开发语言·python
晚烛14 小时前
CANN 大模型推理优化实战:FlashAttention、推测解码与连续批处理的工程实现
开发语言·人工智能·python·深度学习·数据挖掘
*愿风载尘*14 小时前
Python多重继承MRO报错问题处理
开发语言·python
子午14 小时前
基于YOLO的PCB电路板缺陷检测系统~Python+目标检测+深度学习+YOLOV8算法+模型训练+人工智能
人工智能·python·yolo
码界筑梦坊14 小时前
144-基于Flask的电商超市数据可视化分析系统
开发语言·python·信息可视化·数据分析·flask
掘根14 小时前
【openCV】cv::Mat的创建和赋值,图像像素的读写,算术操作
人工智能·opencv·计算机视觉
彦为君14 小时前
Spring定时任务开发指南(动态实现)
java·开发语言·后端·python·spring·wpf
是三旬老汉。14 小时前
从传感器到推理端:VLA 机器人 TCP 通信与 msgpack 序列化深度解析
python·网络协议·tcp/ip·机器人
Everybody_up14 小时前
大模型开发中format_messages、invoke、format三种方法的对比
人工智能·python·大模型
晚烛14 小时前
CANN 分布式通信与 HCCL:多 NPU 协作的底层机制
开发语言·人工智能·分布式·python·深度学习