首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV车辆检测

OpenCV车辆检测
EN

Stack Overflow用户
提问于 2019-11-21 17:38:29
回答 1查看 3.7K关注 0票数 2

我正在努力实现一个程序,以识别视频/图片中的车辆。一个主要的要求是性能(几乎是实时的),所以我已经放弃了ImageAI和一个使用Keras 16进行额外培训的模型。

OpenCV为我提供了所需的性能,但accuray远不能被接受:虽然有时它运行良好,但在下一个框架中却失败了。

我正在考虑可能的选择:( A)用我自己的图像重新训练一个模型( b)使用一些图像预处理.?

任何帮助或线索都将不胜感激。

我的代码:

代码语言:javascript
运行
复制
import cv2
import os
car_cascade = cv2.CascadeClassifier('cars3.xml')

#input_path = ...
files = os.listdir(input_path)

for f in files:
    input_file = input_path + '/' + f;
    print(input_file)
    img = cv2.imread(input_file, 1)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    cars = car_cascade.detectMultiScale(gray, 1.1, 1)
    for (x, y, w, h) in cars:
        cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,255), 2)
        ncars = ncars + 1
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

示例:

好与坏结果的例子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-21 19:52:35

你试过dnn对象检测模块了吗?

https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API

有几个可用的模型架构,您可以使用这种权衡速度和准确性。

对于测量速度的尝试执行多个推论和测量速度对以后的推论,通常第一个是缓慢的,因为它是加载模型。

下面是运行在视频上的一些示例代码:

detection.py

如果硬件支持,您可以设置后端以获得进一步的速度。我所见过的最佳表现是今年GSOC的nvidia后端:

https://github.com/opencv/opencv/pull/14827

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58980744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档