使用opencv python进行对象检测

时间:2017-05-15 21:42:09

标签: python opencv image-processing object-detection

fig:Shoe in the red circle is to be detected 我正在尝试使用cv2创建一个python脚本,它可以识别出球员的鞋子,并确定鞋子是否在白线之外,之上或之前(参见图像)。 我不知道任何使用方法,什么样的算法可能会有所帮助。需要一些指导,请帮忙! (附图)

1 个答案:

答案 0 :(得分:1)

我意识到这会更好地作为评论,因为它不是一个完整的答案,但我还没有足够的代表留下评论,哈哈。

您可能对OpenCV的Canny Edge检测算法感兴趣: http://docs.opencv.org/trunk/da/d22/tutorial_py_canny.html 这样您就可以在图像中找到形状。

此外,您可以使用SimpleBlobDetector找到类似颜色的blob: https://www.learnopencv.com/blob-detection-using-opencv-python-c/

这样可以很容易地检测出白线。

为了检测像鞋子这样的更复杂的物体,您可能需要制作类似物体检测级联文件的东西并使用CascadeClassifier来找到它: http://docs.opencv.org/2.4/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier

http://johnallen.github.io/opencv-object-detection-tutorial/

基本上,你会把一堆照片带到"教导"该对象的外观,并将该信息输出到CascadeClassifier可用于检测输入图像中的对象的文件。如果你需要它,那么可能很难区分不同品牌的鞋子。此外,您可能需要在尝试检测对象之前调整输入图像(饱和度,亮度等)以获得良好的效果。