小编Pet*_*tru的帖子

使用 OpenCV 从谷歌街景中检测路灯

我正在尝试使用 OpenCV 从 Google 街景中检测路灯。

现在作为样本,我有 2000 张正图像,但只有 1200 张的比例大致相同,所以我仅使用它进行训练。

还有另外 2300 张负片图像。

正面图像示例: 路灯 路灯 路灯 路灯 路灯

我尝试将它们采样到不同的大小,并训练它们,但现在当我用这样的图像进行测试时,检测效果非常差: 测试图像[6]

根据detectMultiScale参数,我要么得到很多矩形,包括灯,要么得到一些矩形,但不包括实际的灯。

在训练中,我主要修改高度和宽度参数,参数示例:(200, 10) (150, 30),(120, 30)。我也尝试将算法从 LBP 更改为 HAAR,但结果相似。

  1. 你认为我需要超过 1000 个阳性样本吗?

  2. 在创建矢量文件之前我应该​​进行任何额外的预处理吗?

  3. 您知道我应该更改哪些参数才能使其正常工作吗?

  4. OpenCV 是否可以检测谷歌街景图像中的灯?

python opencv computer-vision google-street-view

5
推荐指数
1
解决办法
1217
查看次数

LambdaExpression.CompileToMethod无法与System.Type一起使用?

我正在尝试制作一种编程语言。尝试将lambda编译为模块时,更确切地说,当尝试使用Convert.ChangeType而不是t.Parse从字符串转换为t(某些类型)时,会出现问题。如果我使用LambdaExpression.Compile并在委托上使用DynamicInvoke,则可以使用,但如果我使用CompileToMethod并生成一个模块(abc.exe)并使用Convert.ChangeType进行转换,则在运行模块时会引发异常: System.TypeAccessException未处理消息=通过方法'Foo.Main()'尝试访问类型'System.RuntimeType'失败。


转换方法:

        private static Expression ConvertExpression<T>(Expression exprToConvert)
    {
        Type[] types = new Type[] { typeof(object), typeof(Type) };
        MethodInfo changeTypeMethod = typeof(System.Convert).GetMethod("ChangeType", types);
        Expression convertedExprAsObject = Expression.Call(changeTypeMethod, exprToConvert, Expression.Constant(typeof(T)));      
        return Expression.Convert(convertedExprAsObject, typeof(T));
    }
Run Code Online (Sandbox Code Playgroud)

c# compiler-construction expression-trees

3
推荐指数
1
解决办法
833
查看次数