我想在照片中提取人物的轮廓并删除背景.照片可以拍摄全身,只有上半身或仅下半身.
到目前为止我所做的是使用Haar Cascades追踪脸部,但我使用的算法在脸上做了一个矩形,我需要整个身体的形状.我也尝试了HOG,但它也给了我一个矩形,它不适用于所有照片.
如果有人可以帮助我会很棒.我正在使用OpenCV和C++.
有人在另一个论坛上问我这个问题,但我想将它发布给任何在TFRecords上遇到麻烦的人。
如果TFRecord文件中的标签与labels.pbtxt文件中的标签不对齐,TensorFlow的对象检测API可能会产生奇怪的行为。它会运行,损失可能会减少,但网络将无法产生良好的检测结果。
另外,我总是会在XY,行列空间之间感到困惑,因此我总是想仔细检查以确保我的注释实际上在注释图像的正确部分。
我发现最好的方法是解码TFRecord并用TF工具绘制它。下面是一些代码:
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from object_detection.utils import visualization_utils as vu
from object_detection.protos import string_int_label_map_pb2 as pb
from object_detection.data_decoders.tf_example_decoder import TfExampleDecoder as TfDecoder
from google.protobuf import text_format
def main(tfrecords_filename, label_map=None):
if label_map is not None:
label_map_proto = pb.StringIntLabelMap()
with tf.gfile.GFile(label_map,'r') as f:
text_format.Merge(f.read(), label_map_proto)
class_dict = {}
for entry in label_map_proto.item:
class_dict[entry.id] = {'name':entry.display_name}
sess = tf.Session()
decoder = TfDecoder(label_map_proto_file=label_map, use_display_name=False)
sess.run(tf.tables_initializer())
for record in tf.python_io.tf_record_iterator(tfrecords_filename):
example = decoder.decode(record) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种最快,更有效的方法来检测移动视频中的对象.有关此视频的注意事项:它非常颗粒感和低分辨率,背景和前景也同时移动.
注意:我正试图在移动视频中检测道路上移动的卡车.
方法我尝试过:
训练哈尔级联 - 我试图训练分类器通过拍摄所需物体的多个图像来识别物体.这被证明产生许多错误检测或根本没有检测到(期望的物体从未被检测到).我使用了大约100张正面图像和4000张底片.
SIFT和SURF关键点 - 当尝试使用基于特征的这些方法中的任何一种时,我发现我想要检测的对象的分辨率太低,因此没有足够的特征来匹配以进行准确的检测.(从未检测到期望的对象)
模板匹配 - 这可能是我尝试过的最好的方法.它是最准确的,尽管它们都是最黑的.我可以使用从视频裁剪的模板检测一个特定视频的对象.但是,没有保证准确性,因为所有已知的是每个帧的最佳匹配,没有对与帧匹配的百分比模板进行分析.基本上,它仅在对象始终在视频中时才有效,否则会产生错误检测.
所以这些是我尝试过的三大方法,都失败了.什么是最好的是模板匹配,但具有缩放和旋转不变性(这使我尝试SIFT/SURF),但我不知道如何修改模板匹配功能.
有没有人有任何建议如何最好地完成这项任务?
我正在开展一个项目,我可以在移动环境中"实时"检测场景中的已知图片(这意味着我正在使用智能手机相机捕捉帧并将帧大小调整为150x225).图片本身可能相当复杂.现在,我正在平均1.2s处理每个帧(使用OpenCV).我正在寻找改善处理时间和全球准确性的方法.我目前的实施工作如下:
我的方法可能不是正确的方法,但即使有很大的改进空间,结果仍然可以.我已经注意到SURF提取太慢而且我无法使用单应性(它可能与ORB有关).欢迎所有建议!
我想知道在计算其特征之前建议应用于图像的一些预处理实践,以便尽可能地提高过程的效率.(例如裁剪,改变格式等......)
提前致谢 :)
我决定深入研究ML并且通过大量的试验和错误能够使用TS'开始创建模型.
为了更进一步,我想使用他们的Object Detection API.但他们的输入准备说明,参考Pascal VOC 2012数据集的使用,但我想在我自己的数据集上进行培训.
这是否意味着我需要将我的数据集设置为Pascal VOC或Oxford IIT格式?如果是,我该怎么做呢?
如果不是(我的直觉就是这种情况),那么在我自己的数据集中使用TS对象检测的替代方案是什么?
旁注: 我知道我训练过的初始模型不能用于本地化,因为它是一个分类器
编辑:
对于那些仍在寻求实现这一目标的人来说,这就是我去做的方式.
Tensorflow API提供了一些预先训练的模型,并允许我们使用任何数据集对它们进行训练.
我想知道如何在一个tensorflow会话中初始化和使用多个图.我想在两个图中导入两个经过训练的模型并将它们用于对象检测,但我在一次会话中尝试运行多个图表时迷失了方向.
是否有任何特定方法可以在一个会话中使用多个图形?
另一个问题是,即使我为2个不同的图创建两个不同的会话并尝试使用它们,我最终会在第一个实例化会话中获得与第二个类似的结果.
我想使用Tensorflow Object Detection API来识别一系列网络摄像头图像中的对象.在COCO数据集上预训练的更快的RCNN模型似乎是合适的,因为它们包含我需要的所有对象类别.
但是,我想在识别每个图像中相当小的对象时提高模型的性能.如果我理解正确,我需要编辑配置文件中的锚scales参数,以使模型使用较小的边界框.
我的问题是:
我目前正在向模特提供1280x720张图像.大约200x150像素,我发现检测物体更难.
我正在尝试实现Tensorflow对象检测API示例.我正在关注sentdex视频以便开始使用.示例代码运行完美,它还显示用于测试结果的图像,但不显示检测到的对象周围的边界.只显示平面图像没有任何错误.
我正在使用此代码:此Github链接.
这是运行示例代码后的结果.
没有任何检测的另一个图像
我在这里缺少什么?代码包含在上面的链接中,没有错误日志.
框,分数,类,数字顺序的结果.
[[[ 0.74907303 0.14624023 1. 1. ]
[ 0. 0. 1. 1. ]
[ 0. 0.20880508 1. 1. ]
[ 0.74907303 0.14624023 1. 1. ]
[ 0. 0. 1. 1. ]
[ 0. 0. 1. 1. ]
[ 0. 0. 1. 1. ]
[ 0. 0. 1. 1. ]
[ 0. 0. 1. 1. ]
[ 0.74907303 0.14624023 1. 1. ]
[ 0.74907303 0.14624023 1. 1. ]
[ 0.74907303 0.14624023 1. …Run Code Online (Sandbox Code Playgroud) object-detection ×10
opencv ×5
tensorflow ×5
python ×3
ios ×1
models ×1
session ×1
tfrecord ×1