第 10 天:深度学习在计算机视觉中的应用

文章目录

  • 第 10 天:深度学习在计算机视觉中的应用
    • 学习目标
    • 一、深度学习与计算机视觉的关系
      • 1.1 卷积神经网络(CNN)概述
        • CNN的基本组成:
    • 二、实践:使用预训练模型进行图像分类
    • 三、卷积神经网络(CNN)原理解析
    • 四、实践练习任务
    • ✅ 总结

第 10 天:深度学习在计算机视觉中的应用

本篇为《计算机视觉 CV 十天入门基础》系列 Day10。今天我们将学习深度学习在计算机视觉中的基础应用,包括图像分类与目标检测的核心原理,卷积神经网络(CNN)的基本结构与应用,简要介绍主流深度学习框架(如 TensorFlow、Keras、PyTorch),以及如何使用预训练模型进行实际的分类与检测任务。


学习目标

  • 理解基于深度学习的图像分类与目标检测原理
  • 掌握卷积神经网络(CNN)的基本结构及应用场景
  • 了解主流深度学习框架(如 TensorFlow、Keras 或 PyTorch)及其使用方法

一、深度学习与计算机视觉的关系

深度学习是通过多层神经网络学习数据特征的技术。在计算机视觉中,深度学习特别适用于图像分类、目标检测、分割等任务。

1.1 卷积神经网络(CNN)概述

卷积神经网络(CNN)是一种深度神经网络,擅长处理具有网格结构的输入数据,尤其在图像分类、目标检测和语义分割等视觉任务中取得了巨大成功。

CNN的基本组成:
  • 卷积层(Convolutional Layer):提取局部特征
  • 池化层(Pooling Layer):降维并减少计算量
  • 全连接层(Fully Connected Layer):进行分类或回归

二、实践:使用预训练模型进行图像分类

# pip install tensorflow opencv-python matplotlib

import cv2
import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input, decode_predictions

# 加载预训练的 MobileNetV2 模型
model = MobileNetV2(weights='imagenet')

# 读取并预处理输入图像
img_path = 'example.jpg'  # 替换为你的图像路径
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_resized = cv2.resize(img, (224, 224))  # 调整为 MobileNetV2 输入尺寸

# 预处理图像并预测
img_array = image.img_to_array(img_resized)
img_array = np.expand_dims(img_array, axis=0)
img_array = preprocess_input(img_array)

# 获取预测结果
predictions = model.predict(img_array)
decoded_predictions = decode_predictions(predictions, top=3)[0]

# 打印前3个预测类别及其概率
for i, (imagenet_id, label, score) in enumerate(decoded_predictions):
    print(f"{i+1}. {label}: {score*100:.2f}%")

三、卷积神经网络(CNN)原理解析

卷积层(Convolutional Layer):通过卷积核对图像进行滤波操作,从局部到全局提取特征。

激活函数(ReLU):非线性激活函数,通常使用 ReLU(Rectified Linear Unit)进行处理。

池化层(Pooling Layer):通过池化操作降低图像维度,减少计算量与过拟合。

全连接层(Fully Connected Layer):将特征映射到输出空间,进行最终的分类任务。

常见CNN架构:
LeNet:用于数字识别的早期CNN模型

AlexNet:通过ReLU加速训练,显著提高图像分类精度

VGGNet:采用更深的网络结构,显著提升性能

ResNet:通过残差连接解决深度网络训练难题

四、实践练习任务

任务1:使用其他预训练模型(如 VGG16、ResNet50)对图像进行分类,比较不同模型的预测效果。
任务2:修改上面的代码,加载自己的图片并查看分类结果,记录模型分类性能。
任务3:尝试将 Keras 的模型转换为 TensorFlow 模型,并进行目标检测。
任务4:利用 TensorFlow 或 PyTorch 在公开数据集(如 CIFAR-10)上进行训练,尝试优化模型性能。

✅ 总结

今天我们深入了解了深度学习在计算机视觉中的应用,尤其是图像分类与目标检测:

介绍了卷积神经网络(CNN)如何提取图像特征

实践了如何利用预训练的深度学习模型(如 MobileNetV2)进行图像分类任务

掌握了 TensorFlow 中的 MobileNetV2 模型的基本用法

这些技术为后续的目标检测、图像分割等任务打下了坚实的基础。

你可能感兴趣的:(深度学习,计算机视觉,人工智能)