示例#1
0
文件: test.py 项目: Fanseling/-1
posBag = it.getPosBag(X, Y, lenth, width)  #正包
lables = list(np.ones(len(posBag)))  #正包标签
negBag = it.getNegBag(X, Y, lenth, width, 2, 4)  #负包
lables.extend(np.zeros(len(negBag)))  #整个标签
#负包并不是以整个图片出现的,而是以同一个块的组合出现,使每个块都学习到相同的

offsetInfo = []  #这个是块偏移信息,放外面
#print(allInstance)
blocksInfos = []
blockClassifier = []  # 每个块已训练好的的强分类器(adaboost分类器)

for instance in posBag:  #对于每个正示例分块并存储。这个循环只能干这么点事。
    # 分块,第一帧就用target了,没用targetPosition[-1]
    blocksInfo, offsetInfo = it.imageFrag(instance['x'], instance['y'],
                                          instance['lenth'], instance['width'],
                                          2, 4)
    #blocksInfo记录块的起始位置xy以及块的长宽。offsetInfo记录块相对于图像的偏移信息
    blocksInfos.append(blocksInfo)  #所有示例的偏移信息是一样的,不需要在添加一个列表

for i in range(len(negBag)):  #负示例分块,每个示例八个块,每个块内容是一模一样
    blocksInfo = []
    for j in range(8):
        blocksInfo.append(negBag[i])
    blocksInfos.append(blocksInfo)

#**********************测试*********************
'''
tems=[]
blocksInfoTem, offsetInfoTem = it.imageFrag(
    targetPosition[-1]['x'], targetPosition[-1]['y'], targetPosition[-1]['lenth'], targetPosition[-1]['width'], 2, 4)
示例#2
0
文件: tracking.py 项目: Fanseling/-1
    blocksInfos = []                                  # 维护示例的分块信息,每帧需要重置。第一维是示例,第二维是块
    imaMat = it.image2Mat(imagePath+'/'+image,color)  #图像转矩阵
    inteIma = it.getInteIma(imaMat)                   #积分图
    if image == '0001.jpg':                       #第一帧只学习,不分类,单独拿出来
        originIndex = 0
        posBag = it.getPosBag(X,Y,lenth,width)                 #正包
        lables =list(np.ones(len(posBag)))                       #正包标签
        negBag = it.getNegBag(X,Y,lenth,width,2,4)                 #负包
        lables.extend(np.zeros(len(negBag)))                #整个标签


        #上面两个都是二位列表,blocksInfos[0][0][x]是第一个示例的第一个块的起始坐标的x值

        for instance in posBag:                #对于每个正示例分块并存储。这个循环只能干这么点事
            # 分块,第一帧就用target了,没用targetPosition[-1]
            blocksInfo, offsetInfo = it.imageFrag(
                instance['x'], instance['y'], instance['lenth'], instance['width'], 2, 4)
            #blocksInfo记录块的起始位置xy以及块的长宽。offsetInfo记录块相对于图像的偏移信息
            blocksInfos.append(blocksInfo)

        for i in range(len(negBag)):                           #负示例分块,每个示例八个块,每个块内容是一模一样
            blocksInfo = []
            for j in range(8):
                blocksInfo.append(negBag[i])
            blocksInfos.append(blocksInfo)

        #循环结束,数据准备结束,下面开始学习
        randomFerns,dataMats,features = lt.randomFern(inteIma,blocksInfos,lables,numFeat,numFern)
        #所有块都拿去学习建蕨,但只有4个块用来检测。numFeat是每块选择的特征数量,暂没定是多少
        #dataMats第一维是蕨,第二维是块,第三维是示例,第四维是每个蕨的特征值序列
        #randomFerns第一维是建立的数个蕨,第二维是每个块。
        #numFeat是每块选择的特征数量(一个随机蕨多少个特征),暂没定是多少