Пример #1
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nDiffs two xml face files.\n\n \t example: xml_diff file1 file2',
        formatter_class=lambda prog: argparse.HelpFormatter(
            prog, max_help_position=50))
    # parser.formatter.max_help_position = 50
    parser.add_argument('-filetype',
                        '--filetype',
                        default="faces",
                        help='type of xml file: <imgs,chips,faces,pairs> .')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='2 will generate count per label')
    # choices=[0, 1, 2, 3], help=argparse.SUPPRESS)
    # help="increase output verbosity"
    parser.add_argument('file', nargs=2)
    args = parser.parse_args()
    # print "ls : ", args.ls
    # print "files: ", args.files

    u.set_verbosity(args.verbosity)
    u.diff_face_files(args.file[0], args.file[1])
Пример #2
0
def main(argv):
    parser = argparse.ArgumentParser(
        description='\nWrite html to display images grouped by day per label',
        formatter_class=RawTextHelpFormatter)

    parser.add_argument('file')
    parser.add_argument('-out',
                        '--output',
                        default="same_dates.html",
                        help='write files using this base name.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_argv(argv)
    verbose = 0
    if verbose > 0:
        print("files: ", args.files)

    #TODO : prevent clobbering previous default output
    # if args.output == 'images' :
    # args.output = u.get_new_filename (args.output)
    u.html_same_date_from_csv(args.file, args.output)
Пример #3
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nWrite xml file for each of zero, one and multi faces.\n\n\tExample: xml_group_by_face_count -out bc2018  bc2018_faces.xml',
        formatter_class=RawTextHelpFormatter)

    parser.add_argument('files', nargs='+')
    parser.add_argument('-out',
                        '--output',
                        default="images",
                        help='write files using this base name.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_argv(argv)
    u.set_filetype('faces')
    verbose = 0
    if verbose > 0:
        print("files: ", args.files)

    #TODO : prevent clobbering previous default output
    # if args.output == 'images' :
    # args.output = u.get_new_filename (args.output)
    u.split_faces_by_count(args.files, args.output)
Пример #4
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nCreate xml from images in specified files and directories.\n \t example: create_images_xml -out imgs.xml abc.jpg bc/images ./bf/images\n',
        formatter_class=RawTextHelpFormatter)
    # parser.formatter.max_help_position = 50
    parser.add_argument('files', nargs='+')
    parser.add_argument(
        '-out',
        '--output',
        help='write output to specified file. Defaults to imgs.xml')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='print more messages')
    # choices=[0, 1, 2, 3], help=argparse.SUPPRESS)
    # help="increase output verbosity"
    args = parser.parse_args()

    # print "ls : ", args.ls
    # print "files: ", args.files

    if not args.output:
        args.output = 'imgs.xml'

    u.set_verbosity(args.verbosity)
    u.create_imgs_xml(args.files, args.output)
Пример #5
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nRun tensorflow model via docker to find bears in images. \n \t example: find_bears -mod tf-md -min 0.9 images',
        formatter_class=RawTextHelpFormatter)
    # parser.formatter.max_help_position = 50
    parser.add_argument('files', nargs='+')
    parser.add_argument('-mod',
                        '--model',
                        default='tf-frcnn',
                        help='one of: tf-md, tf-frcnn')
    parser.add_argument('-min',
                        '--min_score',
                        default="0.9",
                        help='sets mininum score for detection.')
    parser.add_argument('-abs',
                        '--absolute_path',
                        action="store_true",
                        default=False,
                        help='write files with absolute path.')
    parser.add_argument('-out',
                        '--output',
                        help='write output into specified file.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='print more messages')
    # choices=[0, 1, 2, 3], help=argparse.SUPPRESS)
    # help="increase output verbosity"
    args = parser.parse_args()

    # print "ls : ", args.ls
    # print "files: ", args.files

    if not args.output:
        if (args.model == 'tf-md'):
            args.output = 'multibears_md'
        else:
            args.output = 'multibears_frcnn'
    u.set_verbosity(args.verbosity)
    print('\n------------------------------')
    print('... Using image:', args.model)
    print('------------------------------')
    docker_cmd = "sudo docker ps -a | awk '/tf-*/ {print $2}'"
    docker_result = os.popen(docker_cmd).read()
    img_files = u.get_img_files(args.files, args.absolute_path)
    print('running:', docker_cmd)
    print('... docker ps:', docker_result)
    print('... min score:', args.min_score)
    print('... output   :', args.output)
    print('... input    :', args.files)
    print('... # files    :', len(img_files))
    print('... files    :', img_files)
    # print ('files: ', img_files)

    u.do_find_bears(img_files, args.output, args.min_score, args.model)
Пример #6
0
def main(argv):
    parser = argparse.ArgumentParser(
        description='Create file with matched and unmatched chip pairs.',
        formatter_class=lambda prog: argparse.HelpFormatter(
            prog, max_help_position=50))
    # parser.formatter.max_help_position = 50
    parser.add_argument('-m',
                        '--matched',
                        default=0,
                        help='Number of matched pairs. 0 for all.')
    parser.add_argument('-u',
                        '--unmatched',
                        default=0,
                        help='Number of unmatched pairs. 0 for all.')
    parser.add_argument(
        '-t',
        '--triplets',
        default=0,
        help=
        'Number of triplets of un/matched sets. Overides --unmatched and --matched.'
    )
    parser.add_argument('chipfile', nargs='+')
    parser.add_argument(
        '-out',
        '--output',
        default="",
        help='Output file basename. Defaults to "part_<date><time>_"')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help=argparse.SUPPRESS)
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_filetype('pairs')
    verbose = args.verbosity
    if not args.output:
        args.output = datetime.datetime.now().strftime("pairs_%Y%m%d_%H%M.xml")
    if verbose > 0:
        print("matched   : ", args.matched)
        print("unmatched : ", args.unmatched)
        print("triplets  : ", args.triplets)
        print("output    : ", args.output)
        print("chipfile  : ", args.chipfile)
    '''
	filetype = args.filetype
	if (filetype != "chips") and (filetype != "faces") :
		print 'unrecognized filetype :', filetype, ', setting filetype to "chips".'
		filetype = "chips"
	'''
    if (args.triplets > 0) and ((args.matched > 0) or (args.unmatched > 0)):
        print(
            'triplets argument will override matched and unmatched arguments')
    xml_files = u.generate_xml_file_list(args.chipfile)
    u.generate_chip_pairs(xml_files, int(args.matched), int(args.unmatched),
                          int(args.triplets), args.output)
Пример #7
0
def main(argv):
    parser = argparse.ArgumentParser(description='Partitions data.',
                                     formatter_class=lambda prog: argparse.
                                     HelpFormatter(prog, max_help_position=50))
    # parser.formatter.max_help_position = 50
    parser.add_argument('n', default=5, help='Number of paritions to create. ')
    parser.add_argument('files', nargs='+')
    parser.add_argument('-out',
                        '--output',
                        default="",
                        help='Output file basename.')
    parser.add_argument(
        '-m',
        '--mode',
        type=int,
        default=0,
        choices=[0, 1, 2],
        help=
        'Mode for split chips.  0: shuffle all, then split. 1: split each label evenly. 2: split by label - i.e. each label is only in one fold.'
    )
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_argv(argv)
    u.set_filetype('chips')
    # pdb.set_trace ()
    verbose = args.verbosity
    if verbose > 0:
        print("n: ", args.n)
        print("output: ", args.output)
        print("files: ", args.files)
        if args.mode == 0:
            print("mode 0: splitting after shuffling all...")
        elif args.mode == 1:
            print("mode 1: splitting each label evenly...")
        elif args.mode == 2:
            print("mode 2: separting each into different fold ... ")

    if not args.output:
        args.output = datetime.datetime.now().strftime("%Y%m%d_%H%M")
        if verbose > 0:
            print("new output: ", args.output)
    xml_files = u.generate_xml_file_list(args.files)
    u.do_generate_folds(xml_files, args.n, args.output, args.mode)
Пример #8
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nPrint combined stats for all input files/directory.\n\texample: xml_obj_stats  xxx_*_xml outputdir',
        formatter_class=RawTextHelpFormatter)
    # parser.formatter.max_help_position = 50
    parser.add_argument('files', nargs='+')
    parser.add_argument('-filetype',
                        '--filetype',
                        default="chips",
                        help='type of xml file: <images,chips,faces,pairs> .')
    parser.add_argument('-write',
                        '--write',
                        default="",
                        action="store_true",
                        help='write stats into file stats_*_<currentDate> .')
    parser.add_argument('-p',
                        '--print_all_labels',
                        default=False,
                        action="store_true",
                        help='print ordered list of filenames.')
    parser.add_argument('-l',
                        '--ls',
                        default="",
                        action="store_true",
                        help='print ordered list of filenames.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='2 will generate count per label')
    # choices=[0, 1, 2, 3], help=argparse.SUPPRESS)
    # help="increase output verbosity"
    args = parser.parse_args()
    # print "ls : ", args.ls
    # print "files: ", args.files
    filetypes = ['chips', 'faces', 'pairs', 'images']
    filetype = args.filetype
    if filetype not in filetypes:
        print('unrecognized filetype :', filetype, 'should be one of:',
              filetypes)
        return

    u.set_verbosity(args.verbosity)
    xml_files = u.generate_xml_file_list(args.files)
    u.get_obj_stats(xml_files, args.ls, args.filetype, args.verbosity,
                    args.write, args.print_all_labels)
Пример #9
0
def main(argv):
    parser = argparse.ArgumentParser(
        description='write faces from different locale to different xmls.',
        formatter_class=RawTextHelpFormatter)
    parser.add_argument('files', nargs='+')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_argv(argv)
    u.set_filetype('faces')
    verbose = 0
    if verbose > 0:
        print("files: ", args.files)

    u.split_objects_by_locales(args.files)
Пример #10
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '    Downscale images and writes them to parallel directories.\n    Also write new xml with updated content.\n\n    Example: \n\tdownscale_images -xy 640 480 -replace imageSource imageSourceTiny x.xml',
        formatter_class=RawTextHelpFormatter)
    grp = parser.add_mutually_exclusive_group()
    parser.add_argument('files', nargs='+')
    grp.add_argument('-xy', '--xy_max', nargs=2, help='max x and y of image.')
    grp.add_argument('-max',
                     '--max_area',
                     default=30000,
                     help='max size of image.')
    parser.add_argument('-replace',
                        '--replace_path',
                        nargs=2,
                        default=['', './'],
                        help='replace old with new.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_filetype('faces')
    verbose = 0
    if verbose > 0:
        print("files: ", args.files)
    if args.xy_max:
        args.max_area = int(args.xy_max[0]) * int(args.xy_max[1])
    # print ('max_area: ', args.max_area)
    # print ('replace_path: ', args.replace_path)
    # print ('replace_path: ', args.replace_path[0], args.replace_path[1])
    for face_xml in args.files:
        u.downscale_face_file(face_xml, args.max_area, args.replace_path)
Пример #11
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nPrint combined stats for all input files/directory.\n \t example: xml_obj_stats -l xxx_*_xml outputdir',
        formatter_class=lambda prog: argparse.HelpFormatter(
            prog, max_help_position=50))
    # parser.formatter.max_help_position = 50
    parser.add_argument('files', nargs='+')
    parser.add_argument('-filetype',
                        '--filetype',
                        default="chips",
                        help='type of xml file: <chips,faces,pairs> .')
    parser.add_argument('-write',
                        '--write',
                        default="",
                        action="store_true",
                        help='write stats into file stats_*_<currentDate> .')
    parser.add_argument('-l',
                        '--ls',
                        default="",
                        action="store_true",
                        help='print ordered list of filenames.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help=argparse.SUPPRESS)
    # help="increase output verbosity"
    args = parser.parse_args()
    # print "ls : ", args.ls
    # print "files: ", args.files

    u.set_verbosity(args.verbosity)
    xml_files = u.generate_xml_file_list(args.files)
    u.get_obj_stats(xml_files, args.ls, args.filetype, args.verbosity,
                    args.write)
Пример #12
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        'Downscale face images, cropping to maintain face close to mininum size.\n\tCreates new images to parallel directories and generates new xml with updated content.\n\n\tExample:\n\tresize_images.py -x_max 640 -y_max 480 faces.xml',
        formatter_class=RawTextHelpFormatter)
    parser.add_argument('files', nargs='+')
    parser.add_argument('-x_max',
                        '--x_max',
                        default=1500,
                        help='max width of image, defaults to 1500.')
    parser.add_argument('-y_max',
                        '--y_max',
                        default=2000,
                        help='max heigth of image, defaults to 2000.')
    parser.add_argument('-min_face',
                        '--min_face',
                        default=200,
                        help='max heigth of image, defaults to 2000.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_argv(argv)
    u.set_filetype('faces')
    verbose = 0
    if verbose > 0:
        print("files: ", args.files)

    for face_xml in args.files:
        u.resize_face_file(face_xml, args.x_max, args.y_max, args.min_face)
Пример #13
0
def main(argv):
    parser = argparse.ArgumentParser(
        description='Plot dimension-reduced embeddings.',
        formatter_class=lambda prog: argparse.HelpFormatter(
            prog, max_help_position=50))
    parser.add_argument('files', nargs='+')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='')
    # help="increase output verbosity"
    u.set_argv(argv)
    args = parser.parse_args()
    u.set_verbosity(args.verbosity)
    u.set_argv(argv)
    u.set_filetype('embeddings')
    verbose = 0
    if verbose > 0:
        print("files: ", args.files)

    xml_files = u.generate_xml_file_list(args.files)
    u.plot_embeddings(xml_files)
Пример #14
0
def main(argv):
    parser = argparse.ArgumentParser(
        description=
        '\nRun tensorflow model via docker to find bears in images. Takes file which lists all images (e.g. from create_imgs_file) \n \t example: '
        + argv[0] + ' -mod tf-md -min 0.9 images.txt',
        formatter_class=RawTextHelpFormatter)
    # parser.formatter.max_help_position = 50
    parser.add_argument('inputfile')
    parser.add_argument('-mod',
                        '--model',
                        default='tf-frcnn',
                        help='one of: tf-md, tf-frcnn')
    parser.add_argument('-min',
                        '--min_score',
                        default="0.9",
                        help='sets mininum score for detection.')
    parser.add_argument('-abs',
                        '--absolute_path',
                        action="store_true",
                        default=False,
                        help='write files with absolute path.')
    parser.add_argument('-out',
                        '--output',
                        help='write output into specified file.')
    parser.add_argument('-v',
                        '--verbosity',
                        type=int,
                        default=1,
                        choices=[0, 1, 2, 3],
                        help='print more messages')
    # choices=[0, 1, 2, 3], help=argparse.SUPPRESS)
    # help="increase output verbosity"
    args = parser.parse_args()

    # print "ls : ", args.ls
    # print "files: ", args.files

    models = ['tf_md', 'tf-frcnn']
    if args.model not in models:
        print('\nError: unknown model.  Needs to be one of', models, '\n')
        return

    if not args.output:
        if (args.model == 'tf-md'):
            args.output = 'multibears_md'
        else:
            args.output = 'multibears_frcnn'
    u.set_verbosity(args.verbosity)
    print('\n------------------------------')
    print('... Using image:', args.model)
    print('------------------------------')
    docker_cmd = "sudo docker ps -a | awk '/tf-*/ {print $2}'"
    docker_result = os.popen(docker_cmd).read()
    # img_files = u.get_img_files (args.files, args.absolute_path)
    print('running:', docker_cmd)
    print('... docker ps:', docker_result)
    print('... min score:', args.min_score)
    print('... output   :', args.output)
    print('... input    :', args.inputfile)
    # print ('files: ', img_files)

    # curtime = datetime.datetime.now().strftime("%Y%m%d %H:%M:%S")
    # print ('single detects:', curtime)
    u.do_find_bears(args.inputfile, args.output, args.min_score, args.model)