人身上多少cc血:为什么我的自定义HOG检测器总是在图像中心绘制一个矩形 而不是在人身上

我已经从 hog.compute 函数中提取了特征,然后使用这些特征来训练 SVM 分类器。我使用了一个我在网上找到的脚本来从分类文件中分离 rho 和支持向量。

tree = ET.p('svm_data.xml')
root = tree.getroot()
SVs = root.getchildren()[0].getchildren()[-2].getchildren()[0]
rho = float( root.getchildren()[0].getchildren()[-1].getchildren()[0].getchildren()[1].text)
svmvec = [float(x) for x in re.sub( '\s+', ' ', SVs.text).strip().split(' ')]
svmvec.append(-rho)
pickle.dump(svmvec, open("svm.pickle", 'wb'))

这段代码将 rho 和支持向量保存到我提供给 hog.DetectMultiScale 函数的不同文件中。最初我得到了 CheckDetectorSize 错误,但不知何故我处理了它们。但现在它终于执行了,为什么它总是在中心而不是在人上绘制一个矩形?Check here使用从上述代码生成的文件的最终代码,在检测到的区域上绘制

hog = cv2.HOGDescriptor("hog.xml") svm =
pickle.load(open("svmcoeff.pickle", 'rb'))
hog.setSVMDetector(np.array(svm))
for i in range(1,9): image = cv2.imread('test-'+str(i)+'.png') image =
imutils.resize(image, width=min(300, image.shape[1])) orig =
image.copy()
(rects, weights) = hog.detectMultiScale(image)
for (x, y, w, h) in rects: cv2.rectangle(orig, (x, y), (x + w, y + h), (0, 0, 255),2)
rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects])
pick = non_max_suppression(rects, probs=None,overlapThresh=0.65)
for (xA, yA, xB, yB) in pick: cv2.rectangle(image, (xA, yA), (xB, yB), (0, 255, 0), 2)
cv2.imshow("Before NMS", orig) cv2.imshow("After NMS", image)
key = cv2.waitKey(0) if key == 27: continue
0

我不能直接回答你的问题,但我可以建议调试步骤。

首先,您是否检查了 SVM 系数是什么样子 (上层代码 post)?您正在进行大量的内容相关操作,例如选择数组中的最后一个元素,以及其中的文本字段,以及文本替换等。我不知道你的svm_data.xml的格式,也不能说任何关于这些步骤的正确性。但你应该肯定检查输出在这个代码的每一步,特别是1你产生的这些

你应该纠正你的第二个代码帖子的格式,这对于 python 代码来说意义重大。我猜你不知何故缺少换行符。

在这里,第一步应该是检查您读入的值svm并与原始值进行比较。

确保 HoG 检测器返回的矩形参数和 cv.rectangle 使用的参数是兼容的。你的代码看起来 OK (并用在线示例检查)。但我仍然会尝试手动绘制几个矩形只是为了检查

你也做一个非最大抑制。之前和之后有区别吗?你应该首先验证你之前得到了一些有意义的东西。首先检查 HoG 检测器返回rects中有意义的东西,而不是图像中心的矩形。如果它没有这样做,那么你的问题就在这个过程中的那个点之前。

如果问题出在rects中,那么您应该返回并事先验证每个步骤。我已经提到从生成它们的位置跟踪 SVM 参数,直到将它们设置为 HoG 检测器。然后,您可以尝试使用其默认人员检测器运行 HoG 检测器,以查看整个检测过程是否正常。

这些是我现在能想到的。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(226)
Caps标记:CamelCapsSOAP方法名称
上一篇
事业编岗位代码:Logcat中编舞信息的含义
下一篇

相关推荐

  • cv小敢:如何利用CV小敢提升职业技能?

    cv小敢(Computer Vision Tiny-YOLO)是一种轻量级的物体检测算法,它可以在资源受限的设备上运行,如嵌入式设备、智能手机等。它是基于YOLO(You Only Look Once)算法的一个变体,由Joseph Redmon和Ali Farhadi开发,旨在提高深度学习模型的性能,同时减少模型的大小和计算复杂度。…

    2023-02-09 13:08:59
    0 17 25
  • cviu期刊:基于深度学习的图像复原算法研究

    Computer Vision and Image Understanding(CVIU)是一本国际学术期刊,专注于计算机视觉和图像理解的研究。它发表有关计算机视觉、图像处理和图像理解的原创性研究论文,以及有关这些领域的应用。CVIU的目标是推动计算机视觉和图像理解的发展,为读者提供最新的研究成果和思想。…

    2023-02-23 05:50:40
    0 59 95
  • cv领域是什么意思最新的发展趋势与应用

    cv领域是计算机视觉的缩写,是指使用计算机来识别、理解和处理图像信息的领域。它可以帮助计算机“看”到世界,并从图像中提取有用的信息。…

    2023-02-01 02:20:34
    0 11 41
  • cv紫枫儿广播剧一个追求梦想的故事

    cv紫枫儿广播剧是一款由紫枫儿团队开发的虚拟广播剧,它使用虚拟现实技术来创造一个真实的广播剧环境。紫枫儿团队在这款游戏中使用了多种技术,包括3D模型、动画、声音和虚拟现实。玩家可以在这款游戏中体验到真实的广播剧环境,就像自己置身于一个真实的广播剧录制现场。…

    2023-01-30 05:26:44
    0 28 91
  • pvd和cvd的区别比较物理气体化学沉积法的优势与劣势

    PVD(Physical Vapor Deposition)是物理蒸发沉积的缩写,它是一种利用物理方法将源材料从固体直接转化为气态,然后在被涂层表面形成薄膜的技术。CVD(Chemical Vapor Deposition)是化学蒸发沉积的缩写,它是一种利用化学反应将源材料从气态直接转化为固态,然后在被涂层表面形成薄膜的技术。…

    2023-02-27 02:45:17
    0 49 81
  • cookie路径:如何使用Cookie路径来提升网站安全性?

    示例示例Cookie路径是一个可选的属性,用于指定可以访问cookie的URL路径。如果未指定,则默认为当前文档位置的路径。例如,如果你想让cookie可以被www.example.com/foo/bar.html访问,你可以使用下面的代码:…

    2023-03-18 15:31:32
    0 13 79
  • cvc留置时间:观察CVC留置时间的影响

    CVC留置时间是指在支付过程中,银行将支付金额暂时留存在客户账户中的一段时间。这段时间可以是几分钟,也可以是几天,具体取决于银行的政策。…

    2023-02-17 08:13:51
    0 14 46
  • cookie的特点:如何利用Cookie提升网站用户体验

    示例示例Cookie的特点:Cookie是一种小型文本文件,由Web服务器存储在用户计算机中的特殊文件夹中,每当用户浏览器向服务器发送请求时,它会附带cookie信息。…

    2023-03-09 02:59:37
    0 32 98

发表评论

登录 后才能评论

评论列表(72条)