由于数据量较大,在划分训练集,测试集和验证集时,需要借助程序进行。代码如下:
(实现了图片和对应的json文件同时转移)
##深度学习过程中,需要制作训练集和验证集、测试集。
#此文件用来随机转移图片和json文件至新文件夹
import os, random, shutil
import glob
type1 = '.png'
type2 = '.json'
type3 = '.jpg'
def moveFile(fileDir,tarDir,fileDir1,tarDir1):
#a = ['69 (1).json', '76 (41).json', '93 (11).json', '73 (2).json', '16 (41).json', '57 (19).json', '48 (39).json', '2 (44).json', '20 (9).json', '62 (3).json', '24 (20).json', '94 (17).json', '77 (15).json', '45 (20).json', '11 (14).json', '75 (36).json', '31 (37).json', '1 (9).json', '50 (30).json', '96 (8).json', '62 (38).json', '22 (14).json', '28 (20).json', '38 (41).json', '19 (20).json', '23 (30).json', '18 (37).json', '34 (34).json', '77 (37).json', '9 (22).json', '81 (2).json', '27 (25).json', '17 (12).json', '59 (34).json', '72 (21).json', '31 (40).json', '53 (20).json', '8 (40).json', '50 (32).json', '57 (24).json', '38 (19).json', '93.json', '30 (30).json', '26 (17).json', '65 (6).json', '76 (9).json', '79 (39).json', '0 (20).json', '97 (3).json', '91 (19).json', '16 (30).json', '1 (28).json', '52 (21).json', '71 (25).json', '71 (12).json', '88 (29).json', '74 (19).json', '70 (25).json', '38 (27).json', '86 (16).json', '26 (23).json', '58 (36).json', '46 (21).json', '74 (3).json', '8 (44).json', '98 (27).json', '13 (18).json', '73 (22).json', '14 (7).json', '60 (11).json', '98 (20).json', '65 (27).json', '63 (1).json', '25 (3).json', '24 (34).json', '92 (19).json', '56 (22).json', '15 (9).json', '83 (21).json', '92 (29).json', '69 (25).json', '12 (13).json', '71 (14).json', '34 (14).json', '73 (35).json', '53 (39).json', '8 (29).json', '13 (37).json', '43 (16).json', '26 (3).json', '28 (31).json', '28 (35).json', '1 (14).json', '69 (23).json', '10 (24).json', '59 (19).json', '13 (28).json', '68 (12).json', '26 (10).json', '7 (14).json', '34 (27).json', '53 (11).json', '0 (28).json', '75 (20).json', '22 (23).json', '78 (26).json', '60 (15).json', '35 (4).json', '30 (10).json', '92 (18).json', '85 (7).json', '88 (13).json', '25 (39).json', '92 (33).json', '17 (6).json', '12 (24).json', '38 (12).json', '20 (37).json', '3 (5).json', '45 (17).json', '29 (21).json', '50 (20).json', '44 (29).json', '19 (36).json', '17 (29).json', '20 (38).json', '13 (10).json', '26 (19).json', '3 (28).json', '17.json', '22 (34).json', '35 (22).json', '62 (2).json', '97 (9).json', '61 (11).json', '62 (41).json', '93 (12).json', '36 (5).json', '53 (43).json', '38 (8).json', '97 (29).json', '31 (28).json', '56 (29).json', '16 (28).json', '47 (28).json', '23 (16).json', '98 (36).json', '34 (28).json', '39 (31).json', '59 (24).json', '95 (24).json', '96 (5).json', '6 (29).json', '86 (34).json', '91 (25).json', '4 (28).json', '44 (36).json', '35 (8).json', '83 (3).json', '24 (2).json', '25 (5).json', '82 (4).json', '62 (26).json', '98 (10).json', '32 (4).json', '7 (9).json', '24 (8).json', '85 (39).json', '90 (3).json', '85 (42).json', '34 (16).json', '31 (42).json', '88 (36).json', '44 (35).json', '60 (37).json', '10 (18).json', '74 (23).json', '52 (19).json', '36 (27).json', '34.json', '69 (34).json', '8 (20).json', '96 (16).json', '34 (31).json', '44 (13).json', '72 (12).json', '98 (11).json', '68 (25).json', '6 (1).json', '11 (6).json', '68 (36).json', '66 (29).json', '63 (3).json', '68 (29).json', '69 (15).json', '50 (36).json', '49 (2).json', '82 (10).json', '79 (13).json', '99 (15).json', '22 (28).json', '72 (24).json', '18.json', '28 (18).json', '31 (5).json', '20 (1).json', '79 (16).json', '31 (4).json', '56 (35).json', '75 (4).json', '83 (28).json', '27 (15).json', '74 (1).json', '50 (11).json', '18 (33).json', '10 (19).json', '70 (16).json', '28 (4).json', '38 (3).json', '45 (12).json', '85 (32).json', '77 (33).json', '21 (27).json', '32.json', '23 (5).json', '29 (14).json', '41 (22).json', '64 (20).json', '58 (22).json', '76 (2).json', '66 (23).json', '14 (2).json', '62 (21).json', '86 (10).json', '88 (1).json', '70 (39).json', '20 (7).json', '48 (35).json', '11 (20).json', '11 (34).json', '36 (25).json', '80 (32).json', '57 (12).json', '24 (37).json', '39 (6).json', '77 (16).json', '9 (1).json', '88 (16).json', '29 (36).json', '38 (21).json', '50 (22).json', '7 (2).json', '90 (35).json', '48 (17).json', '99 (29).json', '98 (37).json', '15 (15).json', '2 (30).json', '69 (39).json', '55 (34).json', '58 (14).json', '2 (34).json', '4 (37).json', '48 (1).json', '47 (24).json', '3 (24).json', '22 (1).json', '60 (10).json', '55 (30).json', '50 (18).json', '93 (1).json', '53 (38).json', '98 (33).json', '24 (14).json', '47 (1).json', '27 (4).json', '17 (11).json', '88 (6).json', '15 (8).json', '26 (2).json', '27 (26).json', '43 (34).json', '48 (32).json', '54 (32).json', '24 (28).json', '31 (34).json', '59 (17).json', '76 (33).json', '27 (10).json', '80 (4).json', '40 (37).json', '72 (37).json', '0 (4).json', '7 (20).json', '64 (2).json', '55 (39).json', '35 (6).json', '15 (37).json', '93 (31).json', '48 (16).json', '59 (26).json', '99 (32).json', '81 (29).json', '98 (26).json', '66 (11).json', '20 (35).json', '62 (35).json', '22 (33).json', '25 (15).json', '39 (22).json', '88 (4).json', '52 (24).json', '29 (19).json', '8 (39).json', '33 (19).json', '81 (7).json', '4 (25).json', '79 (27).json', '59 (32).json', '27 (6).json', '75 (38).json', '97 (19).json', '84 (10).json', '19 (19).json', '45 (29).json', '25 (4).json', '85 (20).json', '79 (25).json', '61 (5).json', '59 (37).json', '91 (36).json', '97 (25).json', '74.json', '92 (38).json', '57 (29).json', '96 (40).json', '56 (18).json', '5 (42).json', '33 (17).json', '21 (4).json', '40 (36).json', '79 (32).json', '39 (19).json', '87 (11).json', '34 (44).json', '7 (22).json', '93 (24).json', '45 (19).json', '64 (15).json', '59 (8).json', '82 (11).json', '1 (37).json', '39 (20).json', '72 (1).json', '89 (24).json', '60 (25).json', '20 (19).json', '65 (8).json', '18 (31).json', '24 (5).json', '38 (4).json', '27 (28).json', '87 (13).json', '24 (33).json', '47 (9).json', '44 (32).json', '80 (3).json', '21 (37).json', '19 (26).json', '7 (3).json', '12 (6).json', '70 (15).json', '35 (35).json', '49 (3).json', '4 (30).json', '49.json', '64 (17).json', '72 (6).json', '39 (35).json', '56 (20).json', '18 (3).json', '6 (18).json', '26 (21).json', '27 (29).json', '78 (34).json', '30 (32).json', '12 (4).json', '51 (19).json', '82 (9).json', '35 (23).json', '31 (3).json', '15 (6).json', '69 (20).json', '13 (2).json', '2 (22).json', '42 (20).json', '32 (31).json', '60 (14).json', '80 (36).json', '43 (26).json', '52 (4).json', '76 (43).json', '16 (40).json', '82 (28).json', '67 (23).json', '45.json', '58 (21).json', '31 (9).json', '1 (36).json', '14 (4).json', '81 (6).json', '61 (23).json', '0 (25).json', '15 (1).json', '5 (8).json', '8 (5).json', '67 (27).json', '53 (9).json', '2 (29).json', '39 (4).json', '74 (34).json', '47 (2).json', '51 (23).json', '56 (33).json', '29 (13).json', '94 (30).json', '86 (14).json', '98 (3).json', '33 (9).json', '31 (11).json', '17 (21).json', '67 (41).json', '32 (2).json', '90 (16).json', '11 (29).json', '14 (6).json', '34 (4).json', '7 (32).json', '23 (35).json', '17 (31).json', '12 (12).json', '5 (10).json', '97 (28).json', '29 (6).json', '75 (24).json', '8 (35).json', '46 (6).json', '14.json', '38 (44).json', '24 (25).json', '7 (29).json', '74 (37).json', '28 (2).json', '68 (19).json', '17 (13).json', '27 (35).json', '86 (11).json', '14 (20).json', '93 (25).json', '10 (41).json', '19 (15).json', '36 (14).json', '59 (39).json', '34 (41).json', '10 (11).json', '71 (31).json', '15 (17).json', '47 (23).json', '84 (28).json', '70 (11).json', '15 (24).json', '71 (42).json', '71 (22).json', '78 (2).json', '17 (1).json', '87 (39).json', '9 (17).json', '24 (30).json', '80 (11).json', '45 (24).json', '20 (17).json', '79 (26).json', '88 (10).json', '36 (18).json', '36 (30).json', '6 (10).json', '18 (32).json', '68 (32).json', '48 (29).json', '52 (10).json', '96 (10).json', '19 (16).json', '75.json', '20 (25).json', '2 (15).json', '97 (17).json', '9 (9).json', '89 (28).json', '31 (26).json', '27 (9).json', '77 (27).json', '94 (12).json', '92 (7).json', '23 (19).json', '26 (39).json', '9.json', '60 (28).json', '23 (13).json', '23 (22).json', '7 (18).json', '6 (9).json', '94 (25).json', '37 (23).json', '36 (1).json', '24 (35).json', '99 (25).json', '49 (23).json', '97 (31).json', '44 (34).json', '60 (21).json', '74 (14).json', '8 (12).json', '91 (31).json', '13 (30).json', '54 (6).json', '65 (20).json', '6 (19).json', '98 (19).json', '32 (36).json', '32 (34).json', '19 (32).json', '90 (2).json', '36 (15).json', '97 (33).json', '79 (9).json', '64 (36).json', '41 (30).json', '95 (17).json', '68 (27).json', '28 (25).json', '75 (14).json', '22 (40).json', '58 (15).json', '94 (39).json', '9 (18).json', '30 (9).json', '4 (32).json', '29 (28).json', '42 (3).json', '96 (28).json', '95 (30).json', '67 (22).json', '19 (23).json', '79 (18).json', '88 (23).json', '15 (2).json', '78 (29).json', '98 (12).json', '53 (24).json', '34 (15).json', '33 (37).json', '2 (41).json', '84 (2).json', '6 (12).json', '37 (35).json', '22 (30).json', '50 (33).json', '45 (26).json', '7 (23).json', '69 (41).json', '0 (10).json', '49 (8).json', '91 (4).json', '40 (8).json', '30 (37).json', '36 (31).json', '28 (34).json', '66.json', '33 (14).json', '36 (7).json', '89 (3).json', '22 (15).json', '70 (40).json', '87 (18).json', '66 (5).json', '35 (37).json', '69 (10).json', '59 (12).json', '54 (31).json', '88 (39).json', '74 (22).json', '45 (6).json', '0 (26).json', '40 (13).json', '1 (12).json', '50 (16).json', '51 (21).json', '56 (25).json', '11 (15).json', '22 (8).json', '82 (1).json', '30 (17).json', '24 (1).json', '15 (30).json', '99 (31).json', '85 (15).json', '8 (27).json', '73 (14).json', '54 (15).json', '37 (28).json', '39 (39).json', '67 (18).json', '31 (23).json', '9 (34).json', '10 (15).json', '6 (7).json', '52 (35).json', '4 (6).json', '38 (34).json', '95 (14).json', '42 (27).json', '79 (8).json', '46 (37).json', '77 (25).json', '46 (5).json', '28 (38).json', '91 (9).json', '94 (6).json', '97 (32).json', '71 (10).json', '80 (35).json', '5 (6).json', '46 (20).json', '15 (11).json', '71 (8).json', '38 (5).json', '73 (6).json', '90 (33).json', '36 (35).json', '61 (31).json', '21 (16).json', '2 (25).json', '38 (11).json', '17 (2).json', '89 (41).json', '44 (22).json', '52 (7).json', '43 (25).json', '99 (14).json', '32 (10).json', '33 (15).json', '31 (38).json', '97.json', '32 (9).json', '42 (4).json', '34 (19).json', '72 (33).json', '54 (25).json', '14 (10).json', '15 (5).json', '98 (22).json', '80 (30).json', '18 (40).json', '19 (2).json', '83 (1).json', '73 (3).json', '3 (6).json', '21 (1).json', '63 (28).json', '81 (26).json', '75 (7).json', '16 (32).json', '25 (42).json', '32 (1).json', '14 (11).json', '27 (23).json', '57 (26).json', '55 (15).json', '58 (20).json', '34 (18).json', '74 (20).json', '63 (25).json', '58 (2).json', '83 (12).json', '5 (32).json', '21 (28).json', '6 (6).json', '90 (29).json', '87 (6).json', '87 (14).json', '68 (5).json', '80 (38).json', '80 (24).json', '93 (4).json', '48 (12).json', '32 (23).json', '17 (17).json', '51 (16).json', '52 (20).json', '1 (1).json', '58 (27).json', '85 (8).json', '78 (10).json', '99 (27).json', '50 (38).json', '33 (31).json', '82 (7).json', '48 (23).json', '64 (29).json', '5 (19).json', '40 (5).json', '29 (26).json', '10 (10).json', '54 (14).json', '28 (32).json', '66 (35).json', '89 (17).json', '58 (41).json', '51 (40).json', '46 (7).json', '76 (27).json', '1 (26).json', '89 (34).json', '51 (14).json', '92 (20).json', '9 (20).json', '42 (9).json', '16 (37).json', '22 (38).json', '83 (34).json', '67 (44).json', '87 (24).json', '47 (34).json', '76 (36).json', '40 (30).json', '21 (5).json', '34 (2).json', '63 (14).json', '45 (28).json', '69 (22).json', '58 (30).json', '33 (5).json', '71 (38).json', '96 (20).json', '6 (8).json', '22 (31).json', '97 (16).json', '57 (1).json', '56 (15).json', '38 (1).json', '26 (14).json', '76 (8).json', '53 (2).json', '37 (30).json', '94 (28).json', '86 (37).json', '95 (28).json', '78 (4).json', '16 (42).json', '34 (10).json', '64 (40).json', '13 (7).json', '81 (28).json', '46.json', '40 (7).json', '39 (11).json', '86 (9).json', '42 (28).json', '91 (37).json', '15 (26).json', '50 (19).json', '61 (18).json', '51 (1).json', '9 (30).json', '64 (28).json', '91 (32).json', '48 (15).json', '52 (33).json', '24 (15).json', '79 (11).json', '26 (28).json', '77 (4).json', '86 (40).json', '96 (21).json', '46 (35).json', '33 (32).json', '86 (4).json', '47 (29).json', '50.json', '13 (15).json', '89 (22).json', '73 (8).json', '77 (17).json', '20 (33).json', '65 (14).json']
#b = ['41 (29).json', '35 (24).json', '90 (11).json', '38 (17).json', '76 (37).json', '13 (24).json', '34 (8).json', '18 (27).json', '22 (6).json', '8 (9).json', '31 (2).json', '40 (10).json', '87 (27).json', '46 (30).json', '94 (26).json', '43 (14).json', '10 (27).json', '75 (28).json', '19 (7).json', '56 (1).json', '8 (8).json', '63.json', '67 (20).json', '15 (25).json', '9 (36).json', '8 (34).json', '18 (17).json', '22 (35).json', '90 (1).json', '29 (10).json', '11 (18).json', '91 (17).json', '51 (7).json', '70 (31).json', '61.json', '91 (12).json', '14 (32).json', '25 (37).json', '24 (27).json', '36 (20).json', '88 (7).json', '89.json', '19 (14).json', '92 (26).json', '57 (9).json', '54 (8).json', '48 (41).json', '7 (16).json', '80 (17).json', '12 (15).json', '62 (17).json', '10 (14).json', '75 (34).json', '42 (8).json', '33 (1).json', '18 (21).json', '57 (21).json', '77 (41).json', '15 (18).json', '86 (23).json', '76 (32).json', '9 (13).json', '50 (39).json', '59 (20).json', '97 (5).json', '74 (31).json', '66 (10).json', '62 (18).json', '96 (27).json', '40 (23).json', '84 (8).json', '11 (5).json', '94 (36).json', '77 (11).json', '11 (4).json', '12 (2).json', '57 (31).json', '26 (30).json', '22 (29).json', '74 (28).json', '78 (22).json', '43 (22).json', '1 (6).json', '71 (15).json', '22 (17).json', '94 (13).json', '7.json', '17 (30).json', '24 (19).json', '9 (24).json', '23 (20).json', '74 (9).json', '61 (3).json', '17 (19).json', '88 (3).json', '82 (24).json', '6 (35).json', '18 (13).json', '60 (5).json', '35 (25).json']
#c = ['32 (7).json', '64 (18).json', '74 (39).json', '32 (19).json', '61 (9).json', '83 (15).json', '78 (21).json', '1 (31).json', '29 (7).json', '87 (3).json', '72 (3).json', '61 (6).json', '65 (10).json', '37 (36).json', '79 (38).json', '46 (12).json', '52 (5).json', '82 (22).json', '18 (22).json', '97 (26).json', '4 (12).json', '87 (2).json', '40 (27).json', '83 (36).json', '88 (37).json', '19 (30).json', '13 (14).json', '12 (3).json', '61 (14).json', '34 (23).json', '50 (17).json', '15 (7).json', '76 (34).json', '75 (12).json', '26 (8).json', '55 (27).json', '69 (38).json', '61 (24).json', '43 (5).json', '90 (19).json', '82 (26).json', '95 (18).json', '0 (14).json', '84 (34).json', '86 (7).json', '68 (18).json', '13 (19).json', '42 (34).json', '75 (17).json', '25 (32).json', '51 (20).json', '68 (1).json', '75 (37).json', '39 (36).json', '47 (6).json', '74 (25).json', '14 (3).json', '49 (10).json', '74 (30).json', '17 (24).json', '4 (9).json', '28 (13).json', '38 (9).json', '3 (35).json', '12 (18).json', '1 (8).json', '64 (34).json', '85 (19).json', '71 (35).json', '43 (20).json', '20 (10).json', '90 (21).json', '17 (34).json', '45 (33).json', '90 (24).json', '22 (18).json', '97 (23).json', '64 (8).json', '10 (13).json', '42 (11).json', '92 (12).json', '8 (19).json', '54 (33).json', '21 (32).json', '86 (19).json', '35 (1).json', '99 (37).json', '45 (31).json', '60 (38).json', '53 (35).json', '39 (14).json', '27 (8).json', '65 (15).json', '55 (8).json', '71 (13).json', '7 (12).json', '85 (24).json', '62 (6).json', '17 (35).json']
#train = a ,val = b , test = c
#path1 = []
#for a1 in a:
# b = fileDir + a1
# path1.append(b)
pathDir = os.listdir(fileDir) #取图片的原始路径
#pathDir1 = os.listdir(fileDir1)
filenumber=len(pathDir)
rate=1 #自定义抽取图片的比例,比方说100张抽10张,那就是0.1
picknumber=int(filenumber*rate) #按照rate比例从文件夹中取一定数量图片
#picknumber = 28
sample = random.sample(pathDir, picknumber) #随机选取picknumber数量的样本图片
#path1 = fileDir + '*.jpg'
#sample = glob.glob(path1)
print (sample)
#pathDir = glob.glob(fileDir)
#pathDir2 = glob.glob(fileDir1)
for name in sample:
path = name[:-4]
#path1 =path[21:]
#path2 = path[:12]
#path3 = '_groundtruth_(1)_'+path2 + path1
#print(path1,path2,path3)
#DJI_0001_0_0_original_DJI_0001_0_0.jpg_4d94b177-3327-43f8-b9f1-c441d0a20959.jpg
#_groundtruth_(1)_DJI_0001_0_0_DJI_0001_0_0.jpg_4d94b177-3327-43f8-b9f1-c441d0a20959.json
#print(path)
# print(fileDir + path + type3)
#shutil.move(fileDir + path + type1, tarDir + path + type1)
shutil.move(fileDir1 + path + type2, tarDir1 + path + type2)
shutil.move(fileDir + path + type3, tarDir + path + type3)
#break
#shutil.move(fileDir + path + "_json/label"+ type1, tarDir + path + type3)
#shutil.move(name,tarDir)
# shutil.move(name, tarDir)
#for name1 in pathDir2:
# shutil.move(name1, tarDir1)
return
if __name__ == '__main__':
#fileDir = 'G:/npp/pywenjian/labelme/try_dataaugment/json/data_augment/save_kuozengimage/' #源图片文件夹路径
#tarDir = 'G:/npp/pywenjian/labelme/try_dataaugment/json/data_augment/kuozeng/kuozeng_val/' #移动到新的文件夹路径
#fileDir1 = 'G:/npp/pywenjian/labelme/try_dataaugment/json/data_augment/save_kuozengjson/' #源json文件夹路径
#tarDir1 = 'G:/npp/pywenjian/labelme/try_dataaugment/json/data_augment/kuozeng/kuozeng_val_json/'#移动到新的json文件夹路径
#fileDir = 'H:/kuozeng_image2/use_image/coco_tmp_path/'
#tarDir = 'H:/kuozeng_image2/use_image/coco_tmp_json/'
#fileDir1 = 'F:/youcha/suoxiao/trans_new_json/'
#tarDir1 = 'F:/youcha/suoxiao/dataset/suo_val_json/'
fileDir = 'H:/camellia/Aug/image/'
tarDir = 'H:/camellia/Aug/训练/val/'
fileDir1 = 'H:/camellia/Aug/labelme_json/'
tarDir1 = 'H:/camellia/Aug/训练/val_json/'
#path1 = 'H:/kuozeng_image2/use_image/coco_images/'
#wenjians = glob.glob(path1 + '*.jpg')
#names = []
#for wenjian in wenjians:
# wenjian1 = os.path.split(wenjian)[1]
# wenjian2 = os.path.splitext(wenjian1)[0]
# names.append(wenjian2)
#new_names = []
#for name123 in names:
# for i in range(8):
# for j in range(8):
# name1 = fileDir + name123 + '_{0}_{1}/output/'.format(i,j)
# new_names.append(name1)
#for new_name in new_names:
# moveFile(new_name,tarDir,fileDir1,tarDir1)
#for i in range(0,100):
# fileDir2 = 'H:/image/'
# fileDir = fileDir2 + str(i) + '/output/'
# tarDir2 = 'H:/kuozeng_image2/image/'
# tarDir = tarDir2
# moveFile(fileDir,tarDir,fileDir1,tarDir1)
moveFile(fileDir,tarDir,fileDir1,tarDir1)
注:代码注释太多,自己懒得删了,复制以后更改路径和划分比例直接使用即可。