首页 > 解决方案 > 在无人机图像中识别汽车

问题描述

我正在尝试识别无人机图像中的汽车(比如来自四轴直升机),所以我开始使用 opencv 的 haar 分类器。但是,它会产生很多误报,并且并不总是能正确检测到汽车。我在想 CNN 会更适合这份工作,但是我从来没有做过这样的项目,我不知道如何进行。

代码:

import cv2
import numpy as np 
import sys

img = cv2.imread(sys.argv[1], 1)
print(img)

car_cascade = cv2.CascadeClassifier('cars.xml')

cars = car_cascade.detectMultiScale(img, 1.1, 1)
print(len(cars))

for (x,y,w,h) in cars:
    cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,255), 2)

cv2.imshow('img1', img)
cv2.waitKey(5000)
cv2.destroyAllWindows()

图 1

图 2

图 3

图 4

图 5

标签: pythonopencv

解决方案


如果您可以使用除 opencv 以外的其他工具,那么此解决方案是可行的。

值得庆幸的是,谷歌已经来救援,并制定了一个非常简单和开源的解决方案。

tensorflow对象检测 api使得开始对象检测变得非常容易。你可以使用谷歌提供的模型——检测模型 zoo,甚至可以自己训练。

要开始使用,只需按照安装指南进行操作,您就可以开始运行演示了!

然后按照对象检测演示指南进行操作 - 它应该可以让您检测到许多不同类型的对象 - 从汽车、人、狗甚至风筝!


推荐阅读