用于YOLO实时对象检测库的易于使用的Python包装器

pyyolo的Python项目详细描述


YOLO的Python包装器

logo

安装

依赖性

Darknet共享库

您应该首先安装darknetBUILD_SHARED_LIBS设置为ON的库。 安装完成后,应将LIB_nudarknet环境变量设置为 共享库路径。路径在运行时是必需的,所以我的建议是 把这个添加到你的rc文件中。export LIB_DARKNET=<path_to_libdarknet.so>

皮约罗

来自PyPi
pip3 install pyyolo --user
来源
^{pr2}$

文档

示例

python sample.py

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是根据麻省理工学院的许可证授权的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Box2D销毁正文原因:FailedToWriteCoreDumpCoreDumpsShaveBeenDisabled   java如何使用maven构建spring boot应用程序的jar库   java How-to-know项目是使用Eclipse或NetBeans创建的   应用程序未运行时的java推送计划通知   GSON将json值反序列化为Java对象   java如何使用javamail添加内联图像?   java在同一战争中从另一个Web服务调用Web服务apache cxf   java如何在没有OutOfMemory错误的情况下从Android上传大文件?   javajavax。加密。BadPaddingException:给定的最后一个块未正确填充完整示例   java OpenGL矩阵乘法导致奇数浮点行为   java如何以编程方式更改网格窗格的行数?   如何根据java中的字母顺序对对象数组[包含名称、地址等详细信息]进行排序?   java构造函数类不能应用于给定的类型;必需:int,int found:无参数原因:实际参数和以前的参数长度不同   firebase在Java代码注释中使用方括号的目的是什么?   spring boot Java Hibernate继承和onetomany   使用jackson将json数组转换为数组中具有不同对象元素的java对象   java希望将数据库中的数据存储在lucene索引文件中,并检索表信息和数据