void init()
{
    //摄像头
    camera.open(0);

    if(!camera.isOpened())
    {
        std::cout << "Can not find camera!" << std::endl;
        exit(-1);
    }

    camera.set(cv::CAP_PROP_FRAME_WIDTH,160);
    camera.set(cv::CAP_PROP_FRAME_HEIGHT,120);

/*    double width = camera.get(cv::CAP_PROP_FRAME_WIDTH);
    double height = camera.get(cv::CAP_PROP_FRAME_HEIGHT);

    std::cout << "width:" << width << "\t";
    std::cout << "height:" << height << "\t" << std::endl;*/

    face_cascade_name = "/usr/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml";

    if(!face_cascade.load(face_cascade_name))
    {
        std::cout << "can not find face_cascade_file!" << std::endl;
        exit(-1);
    }

    running = true;
    pthread_mutex_init(&mutexLock, NULL);
    pthread_create(&grabThread, NULL, grabFunc, NULL);

    //Setup edi robot mraa control lib
    spider_init();

    signal(SIGINT, clear);
    signal(SIGTERM, clear);
}
Ejemplo n.º 2
0
int main(int argc, char* argv[]){
	SpiderConfig cfg;
	ExecutionStat stat;

	initActors();

	DynStack pisdfStack("PisdfStack");
	DynStack archiStack("ArchiStack");

#define SH_MEM 0x00500000
	PlatformK2Arm platform(4, 8, SH_MEM, &archiStack, daq_fft_fcts, N_FCT_DAQ_FFT);
	Archi* archi = platform.getArchi();

	cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR;
	cfg.memAllocStart = (void*)0;
	cfg.memAllocSize = SH_MEM;

	cfg.schedulerType = SCHEDULER_LIST;

	cfg.srdagStack = {STACK_DYNAMIC, "SrdagStack", 0, 0};
	cfg.transfoStack = {STACK_DYNAMIC, "TransfoStack", 0, 0};

	spider_init(cfg);

	printf("Start\n");

	try{

	PiSDFGraph *topPisdf = init_daq_fft(archi, &pisdfStack);
	topPisdf->print("topPisdf.gv");


		for(int i=0; i<2; i++){
			Platform::get()->rstTime();

			spider_launch(archi, topPisdf);

			spider_printGantt(archi, spider_getLastSRDAG(), "dac_fft_group_fixed.pgantt", "dac_fft_group_fixed.tex", &stat);
			spider_getLastSRDAG()->print("dac_fft_group.gv");

			printf("EndTime = %ld ms\n", stat.globalEndTime/1000000);

			printf("Memory use = ");
			if(stat.memoryUsed < 1024)
				printf("\t%5.1f B", stat.memoryUsed/1.);
			else if(stat.memoryUsed < 1024*1024)
				printf("\t%5.1f KB", stat.memoryUsed/1024.);
			else if(stat.memoryUsed < 1024*1024*1024)
				printf("\t%5.1f MB", stat.memoryUsed/1024./1024.);
			else
				printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.);
			printf("\n");

			FILE* f = fopen("timings.csv", "w+");
			fprintf(f, "Actors,c6678,CortexA15\n");

			Time fftTime = 0;

			printf("Actors:\n");
			for(int j=0; j<stat.nbActor; j++){
				printf("\t%12s:", stat.actors[j]->getName());
				fprintf(f, "%s", stat.actors[j]->getName());
				for(int k=0; k<archi->getNPETypes(); k++){
					if(stat.actorIterations[j][k] > 0){
						printf("\t(%d): %8ld (x%ld)",
								k,
								stat.actorTimes[j][k]/stat.actorIterations[j][k],
								stat.actorIterations[j][k]);
						fprintf(f, ",%ld", stat.actorTimes[j][k]/stat.actorIterations[j][k]);
					}else{
						printf("\t(%d):        0 (x0)", k);
						fprintf(f, ",%ld", (Time)-1);
					}
				}

				if(strcmp(stat.actors[j]->getName(), "T_1") == 0){
					fftTime -= stat.actorFisrt[j];
				}

				if(strcmp(stat.actors[j]->getName(), "T_6") == 0){
					fftTime += stat.actorLast[j];
				}

				printf("\n");
				fprintf(f, "\n");
			}

			printf("fftTime = %ld us\n", fftTime/1000);

		}
	free_daq_fft(topPisdf, &pisdfStack);


	}catch(const char* s){
		printf("Exception : %s\n", s);
	}
	printf("finished\n");

	spider_free();

	return 0;
}
Ejemplo n.º 3
0
int main(int argc, char* argv[]){
	SpiderConfig cfg;
	ExecutionStat stat;

	initActors();

	DynStack pisdfStack("PisdfStack");
	DynStack archiStack("ArchiStack");

//#define SH_MEM 0x00500000
#define SH_MEM 0x10000000
	PlatformLinux platform(1, SH_MEM, &archiStack, top_fft_fcts, N_FCT_TOP_FFT);
	Archi* archi = platform.getArchi();

	cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR;
	cfg.memAllocStart = (void*)0;
	cfg.memAllocSize = SH_MEM;

	cfg.schedulerType = SCHEDULER_LIST;

	cfg.srdagStack = {STACK_DYNAMIC, "SrdagStack", 0, 0};
	cfg.transfoStack = {STACK_DYNAMIC, "TransfoStack", 0, 0};

	spider_init(cfg);

	printf("Start\n");

//	try{
	for(int i=1; i<=3; i++){
//		printf("NStep = %d\n", i);
		char ganttPath[30];
		sprintf(ganttPath, "radixFFT_%d.pgantt", i);
		char srdagPath[30];
		sprintf(srdagPath, "radixFFT_%d.gv", i);

		pisdfStack.freeAll();

		PiSDFGraph *topPisdf = init_top_fft(archi, &pisdfStack);
		topPisdf->print("topPisdf.gv");

		Platform::get()->rstTime();

		spider_launch(archi, topPisdf);
//
		spider_printGantt(archi, spider_getLastSRDAG(), ganttPath, "latex.tex", &stat);
		spider_getLastSRDAG()->print(srdagPath);

		printf("EndTime = %d ms\n", stat.globalEndTime/1000000);

		printf("Memory use = ");
		if(stat.memoryUsed < 1024)
			printf("\t%5.1f B", stat.memoryUsed/1.);
		else if(stat.memoryUsed < 1024*1024)
			printf("\t%5.1f KB", stat.memoryUsed/1024.);
		else if(stat.memoryUsed < 1024*1024*1024)
			printf("\t%5.1f MB", stat.memoryUsed/1024./1024.);
		else
			printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.);
		printf("\n");

//		printf("Actors:\n");
//		for(int j=0; j<stat.nbActor; j++){
//			printf("\t%12s:", stat.actors[j]->getName());
//			for(int k=0; k<archi->getNPETypes(); k++)
//				printf("\t%d (x%d)",
//						stat.actorTimes[j][k]/stat.actorIterations[j][k],
//						stat.actorIterations[j][k]);
//			printf("\n");
//		}

		free_top_fft(topPisdf, &pisdfStack);
	}
//	}catch(const char* s){
//		printf("Exception : %s\n", s);
//	}
	printf("finished\n");

	spider_free();

	return 0;
}
Ejemplo n.º 4
0
int main(int argc, char* argv[]) {
    SpiderConfig cfg;
    ExecutionStat stat;

//	initActors();

    StaticStack pisdfStack("PisdfStack", pisdfStackMem, PISDF_SIZE);
    StaticStack archiStack("ArchiStack", archiStackMem, ARCHI_SIZE);

#define SH_MEM 0x04000000
    PlatformK2Arm platform(1, 0, USE_DDR, SH_MEM, &archiStack, stereo_fcts, N_FCT_STEREO);
    Archi* archi = platform.getArchi();

    cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR;
    cfg.memAllocStart = (void*)0;
    cfg.memAllocSize = SH_MEM;

    cfg.schedulerType = SCHEDULER_LIST;

    cfg.srdagStack.type = STACK_STATIC;
    cfg.srdagStack.name = "SrdagStack";
    cfg.srdagStack.size = SRDAG_SIZE;
    cfg.srdagStack.start = srdagStack;

    cfg.transfoStack.type = STACK_STATIC;
    cfg.transfoStack.name = "TransfoStack";
    cfg.transfoStack.size = TRANSFO_SIZE;
    cfg.transfoStack.start = transfoStack;

    spider_init(cfg);

    printf("Start\n");

    try {
        int i=1;
//	for(int i=1; i<=1; i++){
        printf("NStep = %d\n", i);
        char ganttPath[30];
        sprintf(ganttPath, "stereo.pgantt");
        char srdagPath[30];
        sprintf(srdagPath, "stereo.gv");

        pisdfStack.freeAll();

        PiSDFGraph *topPisdf = init_stereo(archi, &pisdfStack);
        topPisdf->print("topPisdf.gv");

        Platform::get()->rstTime();

        spider_launch(archi, topPisdf);
//
        spider_printGantt(archi, spider_getLastSRDAG(), ganttPath, "latex.tex", &stat);
        spider_getLastSRDAG()->print(srdagPath);

        printf("EndTime = %d ms\n", stat.globalEndTime/1000000);

        printf("Memory use = ");
        if(stat.memoryUsed < 1024)
            printf("\t%5.1f B", stat.memoryUsed/1.);
        else if(stat.memoryUsed < 1024*1024)
            printf("\t%5.1f KB", stat.memoryUsed/1024.);
        else if(stat.memoryUsed < 1024*1024*1024)
            printf("\t%5.1f MB", stat.memoryUsed/1024./1024.);
        else
            printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.);
        printf("\n");

        printf("Actors:\n");
        for(int j=0; j<stat.nbActor; j++) {
            printf("\t%12s:", stat.actors[j]->getName());
            for(int k=0; k<archi->getNPETypes(); k++)
                printf("\t%d (x%d)",
                       stat.actorTimes[j][k]/stat.actorIterations[j][k],
                       stat.actorIterations[j][k]);
            printf("\n");
        }

        free_stereo(topPisdf, &pisdfStack);
//	}
    } catch(const char* s) {
        printf("Exception : %s\n", s);
    }
    printf("finished\n");

    spider_free();

    return 0;
}
Ejemplo n.º 5
0
int main(int argc, char* argv[]) {
    SpiderConfig cfg;
    ExecutionStat stat;

    initActors();

    DynStack pisdfStack("PisdfStack");
    DynStack archiStack("ArchiStack");

#define SH_MEM 0x00500000
    PlatformLinux platform(4, SH_MEM, &archiStack, daq_fft_fcts, N_FCT_DAQ_FFT);
    Archi* archi = platform.getArchi();

    cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR;
    cfg.memAllocStart = (void*)0;
    cfg.memAllocSize = SH_MEM;

    cfg.schedulerType = SCHEDULER_LIST;

    cfg.srdagStack = {STACK_DYNAMIC, "SrdagStack", 0, 0};
    cfg.transfoStack = {STACK_DYNAMIC, "TransfoStack", 0, 0};

    spider_init(cfg);

    printf("Start\n");

//	try{

    PiSDFGraph *topPisdf = init_daq_fft(archi, &pisdfStack);
    topPisdf->print("topPisdf.gv");

    Platform::get()->rstTime();

    spider_launch(archi, topPisdf);

    spider_printGantt(archi, spider_getLastSRDAG(), "daq_fft.pgantt", "latex.tex", &stat);
    spider_getLastSRDAG()->print("daq_fft.gv");

    printf("EndTime = %d ms\n", stat.globalEndTime/1000000);

    printf("Memory use = ");
    if(stat.memoryUsed < 1024)
        printf("\t%5.1f B", stat.memoryUsed/1.);
    else if(stat.memoryUsed < 1024*1024)
        printf("\t%5.1f KB", stat.memoryUsed/1024.);
    else if(stat.memoryUsed < 1024*1024*1024)
        printf("\t%5.1f MB", stat.memoryUsed/1024./1024.);
    else
        printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.);
    printf("\n");

    FILE* f = fopen("timings.csv", "w+");
    fprintf(f, "Actors,x86\n");

    printf("Actors:\n");
    for(int j=0; j<stat.nbActor; j++) {
        printf("\t%12s:", stat.actors[j]->getName());
        fprintf(f, "%s", stat.actors[j]->getName());
        for(int k=0; k<archi->getNPETypes(); k++) {
            printf("\t%d (x%d)",
                   stat.actorTimes[j][k]/stat.actorIterations[j][k],
                   stat.actorIterations[j][k]);
            fprintf(f, ",%d", stat.actorTimes[j][k]/stat.actorIterations[j][k]);
        }
        printf("\n");
        fprintf(f, "\n");
    }

    free_daq_fft(topPisdf, &pisdfStack);

//	}catch(const char* s){
//		printf("Exception : %s\n", s);
//	}
    printf("finished\n");

    spider_free();

    return 0;
}
Ejemplo n.º 6
0
int main(int argc, char* argv[]){
	SpiderConfig cfg;
	ExecutionStat stat;

	initActors();

	DynStack pisdfStack("PisdfStack");
	DynStack archiStack("ArchiStack");

#define SH_MEM 0x00500000
	PlatformK2Arm platform(2, 4, SH_MEM, &archiStack, radix2_fft_fcts, N_FCT_RADIX2_FFT);
	Archi* archi = platform.getArchi();

	cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR;
	cfg.memAllocStart = (void*)0;
	cfg.memAllocSize = SH_MEM;

	cfg.schedulerType = SCHEDULER_LIST;

	cfg.srdagStack.type = STACK_DYNAMIC;
	cfg.srdagStack.name = "SrdagStack";
	cfg.srdagStack.size = 0;
	cfg.srdagStack.start = 0;

	cfg.transfoStack.type = STACK_DYNAMIC;
	cfg.transfoStack.name = "TransfoStack";
	cfg.transfoStack.size = 0;
	cfg.transfoStack.start = 0;

	spider_init(cfg);

	printf("Start\n");

	try{
		pisdfStack.freeAll();

		PiSDFGraph *topPisdf = init_Radix2_fft(archi, &pisdfStack);
		topPisdf->print("topPisdf.gv");

		Platform::get()->rstTime();

		spider_launch(archi, topPisdf);

		spider_printGantt(archi, spider_getLastSRDAG(), "radixFFT_2.pgantt", "latex.tex", &stat);
		spider_getLastSRDAG()->print("radixFFT_2.gv");

		printf("EndTime = %ld us\n", stat.globalEndTime/1000);

		printf("Memory use = ");
		if(stat.memoryUsed < 1024)
			printf("\t%5.1f B", stat.memoryUsed/1.);
		else if(stat.memoryUsed < 1024*1024)
			printf("\t%5.1f KB", stat.memoryUsed/1024.);
		else if(stat.memoryUsed < 1024*1024*1024)
			printf("\t%5.1f MB", stat.memoryUsed/1024./1024.);
		else
			printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.);
		printf("\n");

		printf("Actors:\n");
		for(int j=0; j<stat.nbActor; j++){
			printf("\t%18s:", stat.actors[j]->getName());
			for(int k=0; k<archi->getNPETypes(); k++)
				printf("\t%8ld (x%3ld)",
						stat.actorTimes[j][k]/stat.actorIterations[j][k],
						stat.actorIterations[j][k]);
		printf("\n");
		}

		free_Radix2_fft(topPisdf, &pisdfStack);
	}catch(const char* s){
		printf("Exception : %s\n", s);
	}
	printf("finished\n");

	spider_free();

	return 0;
}