yolov 3大解像度ピクチャカットの問題を認識(解決済み)


画像認識の過程をして、yolov 3は416*416の認識効果だけに対して比較的に良いことを発見して、大きい解像度の画像を訓練する効果は比較的に悪くて、画像を切断して訓練することができて、更に操作を行って、以下は大きい解像度の画像の切断の方法です
 
# -*- coding:utf-8 -*-


from PIL import Image

'''
   @author:xunalove
          
        id

'''
def cut(id,vx,vy):
    #      1.jpg
    name1 = "D:/python/tire defects/source/xraytire/XrayImages/slidingwindow/"+ id + ".jpg"
   # name2 = "/Users/DSOcmy/PycharmProjects/untitled/test/"+ id +"_cut_"
    name2 = "D:/python/tire defects/source/xraytire/XrayImages/slidingwindow/" + id + "."
    im =Image.open(name1)
    w = im.size[0]
    h = im.size[1]
    print(w, h)
    #   
    dx = 300
    dy = 300
    n = 1

    #     
    x1 = 0
    y1 = 0
    x2 = vx
    y2 = vy
    #  
    while x2 <= h:
        while y2 <= w:
            name3 = name2 + '%06d' % (n) + ".jpg"
            print n, x1, y1, x2, y2
            im2 = im.crop((y1, x1, y2, x2))
            im2.save(name3)
            y1 = y1 + dy
            y2 = y1 + vy
            n = n + 1
        if y2 >= w:
            name3 = name2 + '%06d' % (n) + ".jpg"
            print n, x1, y1, x2, y2
            y1 = w - vy
            y2 = w
            im2 = im.crop((y1, x1, y2, x2))
            im2.save(name3)
            # print n, x1, y1, x2, y2
            n = n + 1
        x1 = x1 + dx
        x2 = x1 + vx
        y1 = 0
        y2 = vy
    x1 = h-vx
    x2 = h
    y1 = 0
    y2 = vy
    while y2 <= w:
        name3 = name2 + '%06d' % (n) + ".jpg"
        print n, x1, y1, x2, y2
        im2 = im.crop((y1, x1, y2, x2))
        im2.save(name3)
        y1 = y1 + dy
        y2 = y1 + vy
        n = n + 1
    if y2 >= w:
        name3 = name2 + '%06d' % (n) + ".jpg"
        print n, x1, y1, x2, y2
        y1 = w - vy
        y2 = w
        im2 = im.crop((y1, x1, y2, x2))
        im2.save(name3)
        n = n + 1

    print "      ,          "
    return n - 1


if __name__ == "__main__":
    #    id    
    id = "zz89"

    #         vx,vy
    #  
    res = cut(id, 416, 416)

    #  
    # res = cut(id,120,120)

    #  
    # res = cut(id,80,80)

    print res