python - 如何比较深度学习的真实图像和预测图像
问题描述
我有两个列表,其中包含基本事实和预测图像。两个列表都包含二进制图像。我需要获得这两个列表之间的准确性、f1-score、召回和精度报告。
sklearn.metrics.classification_report 可用于获取预测值和真值之间的分类报告,但它只接受一维数组。
http://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html
如何修改它以获得包含二值图像的两个图像列表之间的分类报告?还是有更好的方法来执行此操作?我的代码:
import os
import cv2
import numpy as np
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
path_pred = "absolute_path/pred"
pred_list = next(os.walk(path_pred))[2]
true_list_new=[]
pred_list_new=[]
for img in pred_list:
pred_img=cv2.imread("absolute_path/pred/%s" % img)
true_img=cv2.imread("absolute_path/true/%s" % img)
true_list_new.append(true_img)
pred_list_new.append(pred_img)
print("Confusion Matrix: ",
confusion_matrix(true_list_new, pred_list_new))
print ("Accuracy : ",
accuracy_score(true_list_new,pred_list_new)*100)
print("Report : ",
classification_report(true_list_new, pred_list_new))
ps解决方案
import os
import cv2
import numpy as np
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
path_pred = "absolute_path/pred"
pred_list = next(os.walk(path_pred))[2]
true_list_new=[]
pred_list_new=[]
for img in pred_list:
pred_img=cv2.imread("absolute_path/pred/%s" % img)
true_img=cv2.imread("absolute_path/true/%s" % img)
true_list_new.append(true_img)
pred_list_new.append(pred_img)
true_list_new=np.array(true_list_new)
pred_list_new=np.array(pred_list_new)
true_list_new=true_list_new.flattern()
pred_list_new=pred_list_new.flattern()
print("Confusion Matrix: ",
confusion_matrix(true_list_new, pred_list_new))
print ("Accuracy : ",
accuracy_score(true_list_new,pred_list_new)*100)
print("Report : ",
classification_report(true_list_new, pred_list_new))
解决方案
最简单的解决方案是读取图像,然后将它们重塑为单行向量。如果您不必显示它们,则可以执行image.reshape(-1):使用这一行,由 cv2 作为具有多列的 numpy 数组加载的图像然后转换为具有单维的 numpy 数组。
图形化:
[[1, 2, 3],
[4, 5, 6], ==> [1, 2, 3, 4, 5, 6, 7, 8, 9]
[7, 8, 9]]
推荐阅读
- gurobi - 如何限制 Gurobi 整数程序消耗的内存
- excel - 我怎样才能得到#DIV/0!计算误差?
- python-sphinx - 转义索引指令中的特殊字符
- android - 当我在 Android 中使用自定义字体时,布局编辑器不显示自定义视图
- telerik - 无法在 Telerik 报告中加载文件或程序集 microsoft.mshtml
- python - train_test_split 用于多个目标
- python-xarray - xarray 使用 cfgrib 在 s3 上读取远程 grib 文件
- python - 如何让我的不和谐机器人转发其 dms
- c# - 如何使用 moq 设置 Dispatcher InvokeAsync 方法
- javascript - 如何使响应不渲染也不重定向?