summaryrefslogtreecommitdiff
path: root/megapixels/commands/processor/cluster.py
blob: 419091a04ce0de04a280c3d89b84021d26ffc232 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import click

from app.settings import types
from app.utils import click_utils
from app.settings import app_cfg as cfg
from app.utils.logger_utils import Logger

@click.command()
@click.option('--data_store', 'opt_data_store',
  type=cfg.DataStoreVar,
  default=click_utils.get_default(types.DataStore.NAS),
  show_default=True,
  help=click_utils.show_help(types.Dataset))
@click.option('--dataset', 'opt_dataset',
  type=cfg.DatasetVar,
  required=True,
  show_default=True,
  help=click_utils.show_help(types.Dataset))
@click.option('--metadata', 'opt_metadata', required=True,
  type=cfg.MetadataVar,
  show_default=True,
  help=click_utils.show_help(types.Metadata))
@click.pass_context
def cli(ctx, opt_data_store, opt_dataset, opt_metadata):
  """Display image info"""
    
    # cluster the embeddings
  print("[INFO] clustering...")
  clt = DBSCAN(metric="euclidean", n_jobs=args["jobs"])
  clt.fit(encodings)
   
  # determine the total number of unique faces found in the dataset
  labelIDs = np.unique(clt.labels_)
  numUniqueFaces = len(np.where(labelIDs > -1)[0])
  print("[INFO] # unique faces: {}".format(numUniqueFaces))
  # load and display image
  im = cv.imread(fp_im)
  cv.imshow('', im)

  while True:
    k = cv.waitKey(1) & 0xFF
    if k == 27 or k == ord('q'):  # ESC
      cv.destroyAllWindows()
      sys.exit()
    elif k != 255:
      # any key to continue
      break