【计算机视觉40例】案例21:图像分类

导读】本文是专栏《计算机视觉40例简介》的第21个案例《图像分类》。该专栏简要介绍李立宗主编《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书的40个案例。

目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。

大家可以在公众号“计算机视觉之光”回复关键字【案例21】获取本文案例的源代码及使用的测试图片等资料。

针对本书40个案例的每一个案例,分别录制了介绍视频。如果嫌看文字版麻烦,可以关注公众号“计算机视觉之光”直接观看视频介绍版。

本文简要介绍了本案例的一些基础知识,更详细的理论介绍、代码实现等内容请参考《计算机视觉40例简介》第24章《深度学习应用实践》以获取更详细信息。

图像分类是计算机视觉最基础的任务之一。开始,人们对较简单的具有10个数字类别的手写数字数据集MNIST进行分类。后来,人们对更加复杂的具有10个分类的CIFAR10和100个分类的CIFAR100进行分类。再后来,ImageNet成为人们在分类时所使用的主要数据集。

图像分类,简单来说就是将不同的图像划分到不同的类别内,并保证最小的分类误差。

【例题】使用GoogleNet完成图像分类。

# -*- coding: utf-8 -*-
"""
Created on Mon Sep  6 14:16:58 2021
@author: 李立宗  lilizong@gmail.com
微信公众号:计算机视觉之光(微信号cvlight)
计算机视觉40例——从入门到深度学习(OpenCV-Python)
李立宗 著     电子工业出版社
"""
import numpy as np
import cv2
#=======读取原始图像=============
image=cv2.imread("tower.jpg")
#=======调用模型=============
# 依次执行四个函数:
# readNetFromeCaffe/blogFromImage/setInput/forward
config='model/bvlc_googlenet.prototxt'
model='model/bvlc_googlenet.caffemodel'
net = cv2.dnn.readNetFromCaffe(config, model)
#与readnet不同,需要注意参数的先后顺序
blob = cv2.dnn.blobFromImage(image, 1, (224, 224), (104, 117, 123))
net.setInput(blob)
prob = net.forward()
#=======读取分类信息============
classes =  open('model/label.txt', 'rt').read().strip().split("\n")
#=======确定分类所在行============
rowIndex = np.argsort(prob[0])[::-1][0]
#=======绘制输出结果============
result = "result: {}, {:.0f}%".format(classes[rowIndex],prob[0][rowIndex]*100)
cv2.putText(image, result, (25, 45),  cv2.FONT_HERSHEY_SIMPLEX,1, (0, 0, 255), 2)
#====显示原始输入图像======
cv2.imshow("result",image)
cv2.waitKey()
cv2.destroyAllWindows()

运行程序,显示如图1所示图像。

 

图1  结果展示

从运行结果可以看到识别结果为“灯塔(beacon, lighthouse, beacon light, pharos)”,置信度为:98.69%。

欢迎大家阅读《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中第24章《深度学习应用实践》获取详细内容。

《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值