最近有个简单地想法!那就是将在imagenet数据集上训练好的模型,调用模型来为我所用,结合OpenCV所学的知识,于是调用模型在单张图像预测出正确结果,并显示在当前的图像上。
下面附代码:
import numpy as np from keras.applications.imagenet_utils import decode_predictions from keras.applications import * import os import cv2 import numpy as np from keras.utils import image_utils from sympy.abc import z # 忽略硬件加速的警告信息 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' file_path = 'C:/Users/Administrator/Desktop/2.png' img = image_utils.load_img(file_path, target_size=(224, 224)) x = image_utils.img_to_array(img) x = np.expand_dims(x, axis=0) model = ResNet50(weights='imagenet') y = model.predict(x) # print(np.argmax(y)) print('Predicted:', decode_predictions(y, top=2)[0][0][1]) z = decode_predictions(y, top=2)[0][0][1] img2 = cv2.imread(file_path) cv2.putText(img2, z, (20, 50), cv2.FONT_HERSHEY_TRIPLEX, 1.0, (255, 0, 0), 2) cv2.imshow('image with text', img2) cv2.waitKey(0)
测试结果展示:
以上是我的简单应用尝试,希望读者们在我的基础上做更多的工作,好啦!本期的故事就到这里了。如用疑问,私信滴滴我哦。