用于YOLO实时对象检测库的易于使用的Python包装器
pyyolo的Python项目详细描述
YOLO的Python包装器
安装
依赖性
- Linux系统
- Python>;=3.6
- Darknet Shared Library
- numpy公司
- 开放式CV
Darknet共享库
您应该首先安装darknet
将BUILD_SHARED_LIBS
设置为ON的库。
安装完成后,应将LIB_nudarknet环境变量设置为
共享库路径。路径在运行时是必需的,所以我的建议是
把这个添加到你的rc文件中。export LIB_DARKNET=<path_to_libdarknet.so>
皮约罗
来自PyPi
pip3 install pyyolo --user
来源
^{pr2}$文档
示例
python sample.py
importcv2importpyyolodefmain():detector=pyyolo.YOLO("./models/yolov3-spp.cfg","./models/yolov3-spp.weights","./models/coco.data",detection_threshold=0.5,hier_threshold=0.5,nms_threshold=0.45)cap=cv2.VideoCapture(0)whileTrue:ret,frame=cap.read()dets=detector.detect(frame,rgb=False)fori,detinenumerate(dets):print(f'Detection: {i}, {det}')xmin,ymin,xmax,ymax=det.to_xyxy()cv2.rectangle(frame,(xmin,ymin),(xmax,ymax),(0,0,255))cv2.imshow('cvwindow',frame)ifcv2.waitKey(1)==27:breakif__name__=='__main__':main()
BBox类
这个类只是一个带有额外属性和函数的numpy数组。在
Python 3.8.0 (default, Oct 23 2019, 18:51:26) [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pyyolo >>> bbox = pyyolo.BBox(x=10, y=20, w=100, h=200, prob=0.9, name='person') >>> bbox BBox([ 10, 20, 100, 200]) >>> print(bbox) x: 10, y: 20, w: 100, h: 200, probability: 0.9, name: person >>> x, y, w, h = bbox >>> print(x, y, w, h) 10 20 100 200 >>> bbox + bbox BBox([ 20, 40, 200, 400]) >>> bbox.prob 0.9 >>> bbox.name 'person' >>> xmin, ymin, xmax, ymax = bbox.to_xyxy() >>> xmin, ymin, xmax, ymax (10, 20, 110, 220)
YOLO类
- detect函数返回BBox实例的列表。有关用法示例,请参见sample.py。在
Python 3.8.0 (default, Oct 23 2019, 18:51:26)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyyolo
>>> detector = pyyolo.YOLO("./models/yolov3-spp.cfg",
"./models/yolov3-spp.weights",
"./models/coco.data",
detection_threshold = 0.5,
hier_threshold = 0.5,
nms_threshold = 0.45)
>>> import cv2
>>> img = cv2.imread('test.png')
>>> detector.detect(img)
[BBox([ 29, 134, 461, 339])]
>>> dets = detector.detect(img)
>>> print(dets[0])
x: 29, y: 134, w: 461, h: 339, probability: 0.6172798275947571, name: person
许可证
PyYOLO是根据麻省理工学院的许可证授权的。在
- 项目
标签: