我有一張汽車的影像和一個相應的邊界框。例如:
(xmin, ymin, xmax, ymax)
(504.8863220214844, 410.2454833984375,
937.6451416015625, 723.9139404296875)
這就是我畫框的方式:
def plot_results(pil_img, prob, boxes):
plt.figure(figsize=(16,10))
plt.imshow(pil_img)
ax = plt.gca()
for p, (xmin, ymin, xmax, ymax), c in zip(prob, boxes.tolist(), COLORS * 100):
ax.add_patch(plt.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin,
fill=False, color=c, linewidth=3))
cl = p.argmax()
text = f'{CLASSES[cl]}: {p[cl]:0.2f}'
ax.text(xmin, ymin, text, fontsize=15,
bbox=dict(facecolor='yellow', alpha=0.5))
plt.axis('off')
plt.show()
我想測量從汽車到相機的距離。如果汽車在附近,距離值應該在0.2-0.4左右 如果汽車離相機很遠,距離值應該在0.6-0.8左右。
我還為我的問題找到了解決方案:
此代碼與您提供的示例之間的主要區別在于,您提供的邊界框值(504.8863220214844, 410.2454833984375, 937.6451416015625, 723.9139404296875)表示像素。但是,示例中的代碼具有邊界框值,這些值已經相對于影像大小在 0 和 1 之間進行了標準化。這就是我以英寸和像素為單位詳細定義影像寬度和高度的原因(也用于自我解釋代碼)。需要它們來標準化基于像素的寬度和位置,因此它們介于 0 和 1 之間以匹配您示例中的邏輯以及您請求的邏輯。在嘗試實際測量尺寸和距離時,這些值也很有幫助。
如果您有興趣進一步研究。我建議閱讀透視法則。這是一個有趣的起點:https : //www.handprint.com/HP/WCL/perspect2.html#distance
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/385047.html
上一篇:為什么我的保存功能沒有完全執行?
