码字不易,如果各位看官感觉该文章对你有所帮助,麻烦点个关注,如果有任何问题,请留言交流。如需转载,请注明出处,谢谢。
文章链接:【深度学习】训练模型结果同时显示,模型结果对比_莫克_Cheney的博客-CSDN博客
目录
目录
一、问题描述
二、解决方案
三、实验结果
四、总结
五、废话(凑字数)
一、问题描述
当我们训练完模型时,常常会选择几个模型,跑完测试代码后,进行结果的对比,但是,类似与beyond compare工具,对比的是二进制的不同,而我们只需要用眼睛观察哪个模型检测的结果好,就可以了。
而测试结果的文件夹结构一致,只是不同模型跑出来的结果。以下图显示的就是我使用不同的深度学习模型,跑出来的结果,每个文件夹的结构都一样,现在想要同时对这四个文件夹的,同一张图进行显示,显示到同一个窗口中,好对比哪个模型的结果最好。
二、解决方案
我们需要同时打开四个文件夹的图像,放在一个窗口里,这样方便我们观察结果。
话不多说,贴代码:
import numpy as np
import cv2
import os
def get_imlist(path):
# return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.png')]
pathend = []
for root,dirs,files in os.walk(path):
for file in files:
path = os.path.join(root,file)
if path.endswith('.png'):
pathend.append(path)
return pathend
def main():
basicdir = "/home/cheney/Project/lane/data/result_20230220/"
imgforder1 = "results_model420"
imgforder2 = "results_model727"
imgforder3 = "results_model1248"
imgforder4 = "results_model1499"
imlist = get_imlist(basicdir + imgforder1)
for imgfile in imlist:
forderstrings = imgfile.split('/')
imgpath1 =imgfile
imgpath2 = basicdir + imgforder2 + '/'+ forderstrings[8]+ '/'+forderstrings[9]+ '/'+forderstrings[10]
imgpath3 = basicdir + imgforder3 + '/'+ forderstrings[8]+ '/'+forderstrings[9]+ '/'+forderstrings[10]
imgpath4 = basicdir + imgforder4 + '/'+ forderstrings[8]+ '/'+forderstrings[9]+ '/'+forderstrings[10]
frame1= cv2.imread(imgpath1)
frame2= cv2.imread(imgpath2)
frame3= cv2.imread(imgpath3)
frame4= cv2.imread(imgpath4)
imghstack1 = np.hstack((frame1, frame2))
imghstack2 = np.hstack((frame3, frame4))
imgfinal = np.vstack((imghstack1, imghstack2))
irow = 30
icol = 30
imgsize = 384
cv2.putText(imgfinal,imgforder1,(icol,irow),cv2.FONT_ITALIC,1,(0,255,255),1)
cv2.putText(imgfinal,imgforder2,(icol + imgsize,irow),cv2.FONT_ITALIC,1,(0,255,255),1)
cv2.putText(imgfinal,imgforder3,(icol ,irow+ imgsize),cv2.FONT_ITALIC,1,(0,255,255),1)
cv2.putText(imgfinal,imgforder4,(icol +imgsize,irow+imgsize),cv2.FONT_ITALIC,1,(0,255,255),1)
cv2.imshow('420*727*1248*1499',imgfinal)
cv2.waitKey(0)
if __name__ == '__main__':
main()
三、实验结果
结果如下:
四、总结
这样同样文件夹结构的结果就能同时显示到一张图上了,非常的ok,非常的方便,选择哪个模型,哪个模型检测的效果好,一目了然!!
五、废话(凑字数)
深度学习(Deep Learning,DL)是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
深度学习是从机器学习中的人工神经网络发展出来的新领域。早期所谓的“深度”是指超过一层的神经网络。但随着深度学习的快速发展,其内涵已经超出了传统的多层神经网络,甚至机器学习的范畴,逐渐朝着人工智能的方向快速发展。
深度学习的基本思想
假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>…..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…, Sn。
对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。
另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想。