Spaces:
Sleeping
Sleeping
void demo_art(char *cfgfile, char *weightfile, int cam_index) | |
{ | |
network *net = load_network(cfgfile, weightfile, 0); | |
set_batch_network(net, 1); | |
srand(2222222); | |
void * cap = open_video_stream(0, cam_index, 0,0,0); | |
char *window = "ArtJudgementBot9000!!!"; | |
if(!cap) error("Couldn't connect to webcam.\n"); | |
int i; | |
int idx[] = {37, 401, 434}; | |
int n = sizeof(idx)/sizeof(idx[0]); | |
while(1){ | |
image in = get_image_from_stream(cap); | |
image in_s = resize_image(in, net->w, net->h); | |
float *p = network_predict(net, in_s.data); | |
printf("\033[2J"); | |
printf("\033[1;1H"); | |
float score = 0; | |
for(i = 0; i < n; ++i){ | |
float s = p[idx[i]]; | |
if (s > score) score = s; | |
} | |
score = score; | |
printf("I APPRECIATE THIS ARTWORK: %10.7f%%\n", score*100); | |
printf("["); | |
int upper = 30; | |
for(i = 0; i < upper; ++i){ | |
printf("%c", ((i+.5) < score*upper) ? 219 : ' '); | |
} | |
printf("]\n"); | |
show_image(in, window, 1); | |
free_image(in_s); | |
free_image(in); | |
} | |
} | |
void run_art(int argc, char **argv) | |
{ | |
int cam_index = find_int_arg(argc, argv, "-c", 0); | |
char *cfg = argv[2]; | |
char *weights = argv[3]; | |
demo_art(cfg, weights, cam_index); | |
} | |