美文网首页
使用Python调用YOLOv3 libdarknet.so的接

使用Python调用YOLOv3 libdarknet.so的接

作者: 几时见得清梦 | 来源:发表于2019-07-31 15:28 被阅读0次

    一、基本用法

    示例文件为:~darknet/python/darknet.py

    1. 在最后修改配置文件和权重;
    2. 修改libdarknet.so的调用路径(若修改后还是找不到,则修改文件权限);
      • 报错:ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
      • 原因:net = load_net(“cfg/tiny-yolo.cfg”, “tiny-yolo.weights”, 0)这个函数最后会将”cfg/tiny-yolo.cfg”, “tiny-yolo.weights”这些参数传给libdarknet.so这个库中,而这个库是用c/c++来写的,所以出现了这个错误。
      • 解决方法:在出错的字符串前面添加一个b即可,即改为:
    net = load_net(b"cfg/yolov3.cfg", b"backup/yolov3.weights", 0)
    meta = load_meta(b"cfg/voc.data")
    r = detect(net, meta, b"img.jpg")
    

    或者

    net = load_net("cfg/tiny-yolo.cfg".encode('utf-8'), "tiny-yolo.weights".encode('utf-8'), 0)
    meta = load_meta("cfg/coco.data".encode('utf-8'))
    r = detect(net, meta, "data/dog.jpg".encode('utf-8'))
    

    二、添加自己的功能

    darknet.py返回的结果的坐标是:(b.x, b.y, b.w, b.h)即(中心点x,中心点y,宽,高)

    相关文章

      网友评论

          本文标题:使用Python调用YOLOv3 libdarknet.so的接

          本文链接:https://www.haomeiwen.com/subject/mdktdctx.html