Python中如何进行图像识别,有相关经验的大佬吗?

就是想做一个能识别出当前界面是广告界面,还是登陆界面,还是弹窗的功能程序。其中一种思路是将图片中的文字识别出来,根据文字来判断,第二种直接是根据图像转换成 ndarray,请问一下第二种有什么比较好的思路推荐么,感觉用 SVM,KNN,Logistic 什么的准确率好低,有什么更好的方法么?


Python中如何进行图像识别,有相关经验的大佬吗?
14 回复

这种工作不应该由图像识别来做,速度慢,要做成普适性的算力要求又高。个人意见:根据 html 标签和元数据去识别更合适吧


用Python做图像识别,主要就靠几个成熟的库。最直接的就是用OpenCV做基础处理(比如边缘检测、模板匹配),但做真正的“识别”通常得用深度学习。

现在主流就两条路:

  1. 直接用预训练模型:比如用PyTorch或TensorFlow加载ResNet、MobileNet这类在ImageNet上训好的模型,改改最后一层就能做自己的分类任务。这是最快上手的办法。
  2. 自己训练模型:如果任务特殊(比如识别特定工业零件),那就得自己标注数据,然后用YOLO、Faster R-CNN做目标检测,或者用U-Net做分割。

给你个最简例子,用torchvision的预训练模型快速实现图像分类:

import torch
from torchvision import models, transforms
from PIL import Image

# 1. 加载预训练模型
model = models.resnet18(pretrained=True)
model.eval()  # 切换到评估模式

# 2. 预处理图像
preprocess = 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]),
])

# 3. 处理单张图片
img = Image.open("your_image.jpg")
img_tensor = preprocess(img).unsqueeze(0)  # 增加batch维度

# 4. 预测
with torch.no_grad():
    outputs = model(img_tensor)
    _, predicted = outputs.max(1)
    print(f"预测类别索引: {predicted.item()}")

建议:先跑通预训练模型,再根据任务需求决定要不要自己训练。

楼上加 1,OCR 关键词>图像分类,但是这种类型图像识别数据自己搞太麻烦,也不知道有没有公开数据集

上面的要这样,我也没有太多办法。

这是为了融资强行 AI 啊…

有大数据集直接上神经网络大力出奇迹吧,没有数据集老老实实 OCR

数据量有多大呢?

分类就 3 种不是很难,关键得有样本数据集,而且以后业务场景出现的同类新图不能差异太大

数据集大概只有 7、8 百张吧

这点数据量的话,还是用 OCR 关键词吧

就是广告弹窗什么的图像没有太大的特征性,直接用普通算法识别准确率肯定不是很好,关键是各种类型图片的文字看图就比较明显,所以才会直接根据文本来建立相关的模型。

强行创新不可取,把简单问题复杂化了

SVM 效果按说对这种简单分类人物效果已经很不错了,感觉像是特征没选对

不知道你需求是什么?三张 png 图片要识别么?感觉你把东西复杂化了。你需求可能用别的方法实现更简单

回到顶部