AssertionError:预期为202335260字节,找到203934260使用YOLOv2的足球检测(暗流)

时间:2019-03-18 15:18:20

标签: assertion yolo darkflow

https://github.com/deep-diver/Soccer-Ball-Detection-YOLOv2

我正在加载yolo.weights ....然后

  

AssertionError:期望202335260字节,找到203934260

但是,当我使用默认数据集运行相同的命令时,它将起作用。我从https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU

下载了权重文件

我修改@csrf_exempt @require_http_methods(['POST', 'GET']) @login_required() def getUserContext(request): 文件中的行self.offset = 16,并替换为./darkflow/utils/loader.py。但是无法解决问题。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并在Ign0reLee的帮助下解决了。 您可以在https://github.com/deep-diver/Soccer-Ball-Detection-YOLOv2/issues/3

中找到详细信息

基本上,发生在您的网络配置(.cfg)和重量文件(.weights)不匹配时。,我认为此仓库中的cfg文件不适用于官方重量文件。< / p>

请尝试此重量文件

https://pjreddie.com/media/files/yolov2.weights

将此cfg文件Ign0reLee放在问题页面中

祝你好运

答案 1 :(得分:0)

您需要将1620更改为self.offset的方法。 此错误的唯一有效方法是:

updated self.offset = old_offset_value + (found_value - expected_value)

例如,在您的情况下,将其放置在self.offset中,而不是16个:

16+(203934260-202314760)

让我知道!

答案 2 :(得分:0)

只需添加到@Zrufy的答案中darkflow / utils / loader.py

class weights_walker(object):
"""incremental reader of float32 binary files"""
def __init__(self, path):
    self.eof = False # end of file
    self.path = path  # current pos
    if path is None: 
        self.eof = True
        return
    else: 
        self.size = os.path.getsize(path)# save the path
        major, minor, revision, seen = np.memmap(path,
            shape = (), mode = 'r', offset = 0,
            dtype = '({})i4,'.format(4))
        self.transpose = major > 1000 or minor > 1000
        self.offset = 16 + 203934260 - 202335260

进行更改,以使最后一行的格式为

self.offset = 16 + found_value - expected_value

found_value和Expected_value可以从您遇到的断言错误中获取。