Tensorflow 基于YOLO的不同dpi图像目标检测
我正在训练YOLOV2学习电域对象。 如变压器、配电盘等。 我以200 DPI的速度训练了多个物体。当我使用测试图像集运行模型时,它给了我很好的精确度(.94),但当我使用不同的DPI(300 DPI)模型进行测试时,却找不到任何对象 用于训练的对象是 我错过了什么?模型是否需要使用所有可能的DPI进行培训 注:当我的损失率达到0.2时,我停止了训练。训练98张图片。333注释Tensorflow 基于YOLO的不同dpi图像目标检测,tensorflow,object-detection,dpi,yolo,Tensorflow,Object Detection,Dpi,Yolo,我正在训练YOLOV2学习电域对象。 如变压器、配电盘等。 我以200 DPI的速度训练了多个物体。当我使用测试图像集运行模型时,它给了我很好的精确度(.94),但当我使用不同的DPI(300 DPI)模型进行测试时,却找不到任何对象 用于训练的对象是 我错过了什么?模型是否需要使用所有可能的DPI进行培训 注:当我的损失率达到0.2时,我停止了训练。训练98张图片。333注释 请让我知道,如果我可以与其他一些机器学习技术去检测像上面这样的小物体 我认为这是因为大图像被缩小到固定大小的图像,例
请让我知道,如果我可以与其他一些机器学习技术去检测像上面这样的小物体 我认为这是因为大图像被缩小到固定大小的图像,例如416x416,这样就可以将其输入YOLOv2。如果我们缩小图像的比例,有时薄薄的谎言会从原始图像中消失 让我用以下例子来说明:
是的,您应该在不同的DPI上对您的模型进行培训,尽管并非所有可能的DPI都需要。一般来说,训练和测试数据应该来自类似的分布,除非你实现了一些其他方法使其通用化。另一个选择是将你的测试图像转换为200DPI,因为你在更高的维度上有它。是的,这就是我的例子中的问题。线条在这里确实非常重要。那怎么办?!
import numpy as np
import matplotlib.pyplot as plt
import cv2
# for i in range(10):plt.close()
img_original = np.zeros((100, 100, 3)) # 100 x 100 RGB Black image
img_original[::10, :, :] = 255 # add some white lines
img_resized = cv2.resize(img_original, (10, 10)) # resize into 10 x 10 RGB
fig = plt.figure(figsize=(6, 3))
ax1 = fig.add_subplot(121)
ax1.imshow(img_original)
plt.xlabel('Original 100 x 100')
ax2 = fig.add_subplot(122)
ax2.imshow(img_resized)
plt.xlabel('Resized 10 x 10')
fig.savefig('./demo.jpg')
plt.show()