在这里,我们将了解如何使用Python OpenCV直接通过图像、网络摄像头或视频文件进行对象检测。
让我们来了解一下什么是物体检测
对象检测是一种从图像或视频文件中识别对象的计算机视觉技术。
它指的是计算机和软件系统在图像/场景中定位对象并识别每个对象的潜力。目标检测已广泛应用于人脸检测、车辆检测、行人计数、网络图像、安全系统和无人驾驶汽车等领域。在许多实践领域中也经常使用一些方式来检测对象。像所有其他技术一样,物体检测的大量创造性和令人惊叹的用途肯定来自计算机程序员和软件开发人员的努力。
首先,您需要安装OpenCV。我们将使用完整的Python编程语言完成本教程,所以让我们开始吧。
要安装,请执行以下操作
pip install opencv-python
OpenCV Python
OpenCV是一个图像处理库。它是为解决计算机视觉问题而设计的。OpenCV是在Python中扩展的C/C++库。
现在创建一个类似objectDetection.py的文件
import cv2
cv2.VideoCapture(VIDEO_PATH)
在这里,如果您在参数中定义了您的视频路径,则会有所帮助。
cap = cv2.VideoCapture(0) #depends on your system 0, -1 or 1
如果使用图像文件,则遵循以下代码。
img = cv2.imread(‘/home/python/OpenCV/objectDetection/image1.jpg’)
对于对象检测,指定图像中多个对象的位置
著名的目标检测算法:
SSD-MobileNetv2、SSD-MobileNetv3
用于目标检测的著名数据集:
可可
下面是导入这些文件的方法
configPath = 'ssd_mobilenet_v3_large_coco_2020_01_14.pbtxt'
请在此处下载configPath、weight tPathconfigPath weightPath
设置一个类文件coco.ames
这是下面的清单
- 人
- 自行车
- 小汽车
- 摩托车
- 飞机
- 红绿灯
- 消火栓
- 路牌
- 停车标志
- 停车计时器
- 斑马
- 长颈鹿
- 帽子
- 背包
- 雨伞
- 网球拍
- 瓶
- 盘子
- 酒杯
- 杯子
- 甜甜圈
- 蛋糕
- 椅子
- 沙发
- 盆栽植物
- 微波
- 烤箱
- 烤面包机
- 水槽
- 冰箱
如下所示设置classFile。
classFile = 'coco.names'
设置dnn_dectionModel值
net = cv2.dnn_DetectionModel(weightPath, configPath)
cv2.imread(Filename)函数:
imread(filename[,flag])从文件加载图像。
函数imread从指定的文件加载图像并返回该图像。
cv2.cvtColor(src,code[,dst[,dstCn]])将图像从一种颜色空间转换为另一种颜色空间。在变换的情况下,该函数将输入图像从一种颜色空间转换到另一种颜色空间。至-自RGB颜色空间,应明确指定通道的顺序(RGB或BGR)。请注意。OpenCV中的默认颜色格式通常称为RGB,但它实际上是BGR(字节颠倒)。
cv2.putText(img,text,org,fontFace,fontScale,color[,ickness[,lineType[,bottomLeftOrigin])
show image cv2.imshow()函数。
完整源代码:
结论
当您要使用对象检测创建另一个项目时,这可能会对您很有帮助。只需复制代码并根据需要对其进行自定义即可。
谢谢。
祝您今天过得愉快。
更多内容请访问Playenglish.ioplainenglish.io
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/18/%e5%9c%a8python%e4%b8%ad%e4%bd%bf%e7%94%a8opencv%e8%bf%9b%e8%a1%8c%e5%af%b9%e8%b1%a1%e6%a3%80%e6%b5%8b%ef%bc%8c%e5%b9%b6%e7%bb%93%e5%90%88%e4%b8%80%e4%b8%aa%e9%a1%b9%e7%9b%ae%e8%bf%9b%e8%a1%8c-2/