gpt4 book ai didi

python - OpenCV BackgroundSubtractor 在与背景颜色相似的对象上产生较差的结果

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:13 24 4
gpt4 key购买 nike

我有一项具有挑战性的任务,花了很多时间,但没有令人满意的结果。

意义是为 future 的人数统计做一个背景减法。我正在使用 Python 3 和 OpenCV 3.3 执行此操作。我已经应用了 cv2.createBackgroundSubtractorMOG2 但面临两个主要困难:

  1. 由于背景几乎是黑暗的,而且一些在视频中行走的人戴着深色法杖,减法器有时无法正确检测到他们,它只是跳过他们(看看下图)。将图像从 BGR 转换为 HSV 几乎没有变化,但我希望得到更好的结果。 enter image description here正如你所看到的,一个穿灰色衣服的人没有被很好地检测到。如何改善这一点?如果有更有效的方法,请提供此信息,我很感激并欢迎任何帮助!也许使用立体相机并尝试使用图像深度来处理对象是有意义的?

  2. 另一个让我担心的问题是,如果几个人在交通拥堵的情况下会彼此靠近怎么办?该区域将被简单地合并并算作简单。遇到这种情况怎么办?

提前感谢您提供任何信息!

更新:

我用HSV颜色空间对图像的每个 channel 进行了直方图均衡,但即使现在我也无法吸收一些颜色接近背景颜色的人。

这里是代码更新:

import cv2
import numpy as np
import imutils


cap = cv2.VideoCapture('test4.mp4')
clahe = cv2.createCLAHE(2.0, (8,8))

history = 50
fgbg = cv2.createBackgroundSubtractorMOG2(history=history, detectShadows=True)

while cap.isOpened():
frame = cap.read()[1]
width, height = frame.shape[:2]
frame = imutils.resize(frame, width=min(500, width))
origin = frame.copy()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

for channel in range(3):
hsv[:,:,channel] = clahe.apply(hsv[:,:,channel])

fgmask = fgbg.apply(hsv, learningRate=1 / history)
blur = cv2.medianBlur(fgmask, 5)

cv2.imshow('mask', fgmask)
cv2.imshow('hcv', hsv)
cv2.imshow('origin', origin)
k = cv2.waitKey(30) & 0xff
if k == 27 or k == ord('q'):
break

cap.release()
cv2.destroyAllWindows()

enter image description here

最佳答案

我相信按照以下步骤将在很大程度上解决您的第一个问题:

1.预处理:

图像预处理非常重要,因为计算机看不到我们人类感知的图像。因此,始终建议寻找增强图像的方法,而不是直接处理图像。

对于给定的图像,穿夹克的男人似乎与背景具有相同的颜色。我对图像的所有三个 channel 应用了直方图均衡化并将它们合并以获得以下结果:

enter image description here

这个人比以前稍微好一些。

2。色彩空间:

您选择使用 HSV 颜色空间是正确的。但是为什么要限制到三个 channel 一起呢?我获得了 hue channel 并得到了以下信息:

enter image description here

3。微调

现在对于上图,您将必须应用一些最佳阈值,然后用形态侵 eclipse 跟进 操作以获得画面中男人的更好轮廓。

注意:为了解决您的第二个问题,您还可以在应用阈值后进行一些形态学操作。

关于python - OpenCV BackgroundSubtractor 在与背景颜色相似的对象上产生较差的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com