深度学习是检测图片中人物的唯一方法吗?
Is deep learning the only way to detect humans in a picture?
我正在寻找一种检测图片中人物的方法。比如下图,我想粗略判断一下场景中有多少人。我必须能够检测站立和坐着的人。我不介意不检测位于物理对象(例如公共汽车图片中的玻璃)后面的人。
据我所知,这样的问题可以很容易地通过训练深度神经网络来解决。但是,我的同事希望我也能实现一种基于通用图像处理技术的检测技术。我花了几天时间寻找研究人员设计的技术,但除了基于显着性的技术之外我找不到其他任何东西(这可能很好,但我想测试几种基于老式图像处理的技术)。
我想提一下,我对图像分割这个话题并不陌生,我曾经在医学扫描中分割主动脉。然而,恕我直言,这项任务更容易,因为扫描仪具有相似的功能:在这种用例中(例如,在公共汽车上进行人体检测),图片将具有非常不同的特征(例如,图像对比度可能会发生很大变化,无论是在拍摄过程中拍摄的)白天或晚上)。
长话短说,考虑到图像特征差异很大,我想知道是否有一些人体检测分割技术值得一试?
Is deep learning the only way to detect humans in a picture?
没有。这是我们知道的最好的方式吗?看你的情况。
最简单的检测方法是生成大量随机边界框,然后解决裁剪的class化问题。这是一些 pythonic pseudo-code:
def detect_people(image):
"""
Find all people in image.
Parameters
----------
image : image object
Returns
-------
people : list of axis-aligned bounding boxes (aabb)
Each bounding box contains a person
"""
people = []
for aabb in generate_random_aabb(image):
crop = crop_image(image, aabb)
if is_person(crop):
people.append(crop)
return people
在这种情况下 is_person
可以是任何 class 符,例如Viola–Jones object detection framework 中使用的提升决策树桩。说到这:这可能是没有 DL 的方法,但解释起来要复杂得多。
对象检测与分割
你的问题混合了两者。对象检测为您提供实例的边界框(粗略)。语义分割通过 classes 标记所有像素,但不区分相同 class 的不同实例(例如不同的人)。实例分割类似于对象检测,但是 fine-grained 并且旨在获得 pixel-exact 结果。
如果你对分割感兴趣,可以推荐我的论文:A Survey of Semantic Segmentation
我正在寻找一种检测图片中人物的方法。比如下图,我想粗略判断一下场景中有多少人。我必须能够检测站立和坐着的人。我不介意不检测位于物理对象(例如公共汽车图片中的玻璃)后面的人。
据我所知,这样的问题可以很容易地通过训练深度神经网络来解决。但是,我的同事希望我也能实现一种基于通用图像处理技术的检测技术。我花了几天时间寻找研究人员设计的技术,但除了基于显着性的技术之外我找不到其他任何东西(这可能很好,但我想测试几种基于老式图像处理的技术)。
我想提一下,我对图像分割这个话题并不陌生,我曾经在医学扫描中分割主动脉。然而,恕我直言,这项任务更容易,因为扫描仪具有相似的功能:在这种用例中(例如,在公共汽车上进行人体检测),图片将具有非常不同的特征(例如,图像对比度可能会发生很大变化,无论是在拍摄过程中拍摄的)白天或晚上)。
长话短说,考虑到图像特征差异很大,我想知道是否有一些人体检测分割技术值得一试?
Is deep learning the only way to detect humans in a picture?
没有。这是我们知道的最好的方式吗?看你的情况。
最简单的检测方法是生成大量随机边界框,然后解决裁剪的class化问题。这是一些 pythonic pseudo-code:
def detect_people(image):
"""
Find all people in image.
Parameters
----------
image : image object
Returns
-------
people : list of axis-aligned bounding boxes (aabb)
Each bounding box contains a person
"""
people = []
for aabb in generate_random_aabb(image):
crop = crop_image(image, aabb)
if is_person(crop):
people.append(crop)
return people
在这种情况下 is_person
可以是任何 class 符,例如Viola–Jones object detection framework 中使用的提升决策树桩。说到这:这可能是没有 DL 的方法,但解释起来要复杂得多。
对象检测与分割
你的问题混合了两者。对象检测为您提供实例的边界框(粗略)。语义分割通过 classes 标记所有像素,但不区分相同 class 的不同实例(例如不同的人)。实例分割类似于对象检测,但是 fine-grained 并且旨在获得 pixel-exact 结果。
如果你对分割感兴趣,可以推荐我的论文:A Survey of Semantic Segmentation