상속: MonoBehaviour
예제 #1
0
        private void Registration_Load(object sender, EventArgs e)
        {
            //GPUTest();

            // Inilizations

            cameraSource = new CameraSource();
            face         = new FaceController(FaceIdentification.registrationMinFaceSize);

            // Loading camera list
            cameraSource.FillCBWithCameras(ref cbCameraList);
            cbCameraList.SelectedIndex = 0;

            //
            registeredImages = new List <Image <Gray, byte> >();


            // Timer
            timer          = new Timer();
            timer.Interval = 1000;
            timer.Tick    += new EventHandler(FpsCounter);
            //timer.Enabled = isExpertMode;

            //ExpertModeEnableDisable(true);
        }
    void Start()
    {
        var server = GetComponent <uOSC.uOscServer>();

        server.onDataReceived.AddListener(OnDataReceived);

        window                    = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>();
        faceController            = GameObject.Find("AnimationController").GetComponent <FaceController>();
        window.ModelLoadedAction += (GameObject CurrentModel) =>
        {
            if (CurrentModel != null)
            {
                this.CurrentModel = CurrentModel;
                vrmLookAtHead     = CurrentModel.GetComponent <VRMLookAtHead>();
            }
        };
        window.CameraChangedAction += (Camera currentCamera) =>
        {
            this.currentCamera = currentCamera;
        };

        beforeFaceApply = () =>
        {
            vrmLookAtHead.Target = lookTargetOSC.transform;
            vrmLookAtHead.LookWorldPosition();
            vrmLookAtHead.Target = null;
        };
    }
예제 #3
0
    private void SpawnPlayer(int id, Vector3 pos)
    {
        GameObject player;

        if (id == my_id)
        {
            player  = Instantiate(m_ChanPrefab) as GameObject;
            my_chan = player;
        }
        else
        {
            player = Instantiate(m_ChanOtherPrefab) as GameObject;
        }

        player.name = "player " + id;
        player.transform.position = pos;

        FaceController fc = player.GetComponent <FaceController>();

        face_callbacks.Add(id, fc.ChangeFace);

        UnityChanControlScriptWithRgidBody uc = player.GetComponent <UnityChanControlScriptWithRgidBody>();

        input_callbacks.Add(id, uc.UpdatePosition);

        DebugUtils.Log("spawn player {0} - pos:{1}", id, pos);
    }
        public async Task register_RESULT_OK()
        {
            // arrange - mocking IFormFile using a memory stream
            var           obj        = new FaceController(Services.GetRequiredService <IHostingEnvironment>(), Services.GetRequiredService <IFaceServiceClient>(), _storageService);
            string        sampleFile = Path.Combine(Directory.GetCurrentDirectory(), "data", "joe_family.jpg");
            ResponseModel uploadResult;

            using (var fs = new FileStream(sampleFile, FileMode.Open))
            {
                FormFile f = new FormFile(fs, 0, fs.Length, "file", fs.Name);
                var      uploadResultTemp = await obj.Upload(f);

                uploadResult = ((OkObjectResult)uploadResultTemp).Value as ResponseModel;
            }

            // act
            var registerResult = await obj.Register(uploadResult.Key, 1, "Helen");

            // assert
            var storageObject = _storageService.Get(uploadResult.Key);

            Assert.Null(storageObject);

            // redetect & reidentify
            string sampleFileNext = Path.Combine(Directory.GetCurrentDirectory(), "data", "joe_family.jpg");

            using (var fsNext = new FileStream(sampleFileNext, FileMode.Open))
            {
                FormFile fNext            = new FormFile(fsNext, 0, fsNext.Length, "file", fsNext.Name);
                var      uploadResultTemp = await obj.Upload(fNext);

                Assert.Equal("Helen", (((OkObjectResult)uploadResultTemp).Value as ResponseModel).Faces[1].Candidates[0].PersonName);
            }
        }
예제 #5
0
        public Indentification()
        {
            InitializeComponent();

            cMan = CameraManager.Instance;
            face = new FaceController(FaceIdentification.identificaitonMinFaceSize);
            //face.LoadRecognizer();
            // initialize Camera

            List <CameraInfo> inf = cMan.GetAllIdnCams();

            //if (inf.Count > 0)
            //    videoDevice = new Emgu.CV.Capture(inf[0].URL);
            //else
            videoDevice = new Emgu.CV.Capture(0);


            for (int i = 0; i < 30; i++)
            {
                videoDevice.QueryFrame();
            }


            //videoDevice = new Emgu.CV.Capture(@"C:\Users\Nabeel\Desktop\Arrange it\Test Subjects\Video_Test_1.mp4");
            eh = new EventHandler(ProcessFrame);
            Application.Idle += eh;

            // Timer
            timer          = new Timer();
            timer.Interval = 1000;
            timer.Tick    += new EventHandler(FpsCounter);

            timer.Start();
            sw.Start();
        }
 // Use this for initialization
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     StartCoroutine(startBlinking());
 }
    // Override OnInsepctorGUI() to draw your own editor
    public override void OnInspectorGUI()
    {
        m_Target = (FaceController)target;

        DrawDefaultInspector(); // Draws all the stuff Unity would normally draw
        DrawSearchButton();
        DrawUpdateButton();
        DrawEmotionList();
    }
예제 #8
0
        public FaceControllerTest()
        {
            var client = new HttpClient();

            var jsonFile = Path.Combine(Directory.GetCurrentDirectory(), "..\\..\\..\\appsettings.json");
            var builder  = new ConfigurationBuilder().AddJsonFile(jsonFile);
            var helper   = new FaceApiHelper(client, null, builder.Build());

            _controller = new FaceController(helper);
        }
        public async Task upload_single_face_single_candidate_RESULT_OK()
        {
            // arrange - mocking IFormFile using a memory stream
            var    fileMock   = new Mock <IFormFile>();
            string sampleFile = Path.Combine(Directory.GetCurrentDirectory(), "data", "joe_family.jpg");

            using (var fs = new FileStream(sampleFile, FileMode.Open))
            {
                fs.Position = 0;
                fileMock.Setup(m => m.OpenReadStream()).Returns(fs);
                fileMock.SetupAllProperties();
                fileMock.SetupGet(p => p.FileName).Returns(sampleFile);

                // mocking Face Service
                Guid faceId          = Guid.NewGuid();
                Guid personId        = Guid.NewGuid();
                var  faceServiceMock = new Mock <IFaceServiceClient>();
                faceServiceMock.Setup(f => f.DetectAsync(It.IsAny <Stream>(), true, false, null)).Returns(
                    Task.FromResult(new[] {
                    new Face {
                        FaceId = faceId
                    }
                }));
                faceServiceMock.Setup(f => f.IdentifyAsync(It.IsAny <string>(), It.IsAny <Guid[]>(), 1)).Returns(
                    Task.FromResult(new[] {
                    new IdentifyResult {
                        FaceId     = faceId,
                        Candidates = new [] { new Candidate {
                                                  Confidence = 0.8, PersonId = personId
                                              } }
                    }
                }));
                faceServiceMock.Setup(f => f.GetPersonAsync(It.IsAny <string>(), It.IsAny <Guid>())).Returns(
                    Task.FromResult(
                        new Person {
                    PersonId = personId, Name = "Johannes"
                }
                        ));

                var obj = new FaceController(Services.GetRequiredService <IHostingEnvironment>(), faceServiceMock.Object, _storageService);

                // act
                var result = await obj.Upload(fileMock.Object);

                // assert
                Assert.IsAssignableFrom <IActionResult>(result);
                Assert.IsType(typeof(OkObjectResult), result);
                Assert.IsType(typeof(ResponseModel), ((OkObjectResult)result).Value);
                Assert.True((((OkObjectResult)result).Value as ResponseModel).Faces.Count == 1);
                Assert.True((((OkObjectResult)result).Value as ResponseModel).Faces[0].Candidates.Count == 1);
                Assert.Equal("Johannes", (((OkObjectResult)result).Value as ResponseModel).Faces[0].Candidates[0].PersonName);
            }
        }
예제 #10
0
    public void NextFace()
    {
        if (currentFace)
        {
            AudioManager.instance.Play("Relief3");
            currentFace.gameObject.SetActive(false);
        }

        currentFace = SelectNextFace();
        MoveFaceToStartPos();
        currentState = States.In;
        canAnimate   = true;
    }
예제 #11
0
 private void Start()
 {
     m_head = GetComponent <VRMLookAtHead>();
     if (faceController == null)
     {
         faceController = GameObject.Find("AnimationController").GetComponent <FaceController>();
     }
     if (m_head == null)
     {
         enabled = false;
         return;
     }
     m_head.YawPitchChanged += ApplyRotations;
 }
예제 #12
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            FaceController c = new FaceController();

            c.OnShift += (s, ea) =>
            {
                Dispatcher.Invoke(() =>
                {
                    Point3D position = new Point3D(
                        Camera.Position.X + (ea.Coords.Item1 / 100),
                        Camera.Position.Y + (ea.Coords.Item2 / 100),
                        12);
                    Vector3D direction = new Vector3D(
                        Camera.LookDirection.X + (ea.Coords.Item1 / 600) * -1,
                        Camera.LookDirection.Y + (ea.Coords.Item2 / 600) * -1,
                        Camera.LookDirection.Z
                        );
                    Camera.LookDirection = direction;
                    Camera.Position      = position;
                    View.Camera          = Camera;

                    Canvas.SetLeft(BG, Canvas.GetLeft(BG) + (ea.Coords.Item1 / 10));
                    Canvas.SetTop(BG, Canvas.GetTop(BG) + (ea.Coords.Item2 / 10) * -1);

                    Title = ea.Coords.Item1 + " : " + ea.Coords.Item2;
                });
            };
            c.OnReset += (s, ea) =>
            {
                Dispatcher.Invoke(() =>
                {
                    Point3D position     = new Point3D(0.5, 1.5, 12);
                    Vector3D direction   = new Vector3D(0, 0, -3.5);
                    Camera.LookDirection = direction;
                    Camera.Position      = position;
                    View.Camera          = Camera;
                    Canvas.SetLeft(BG, -100);
                    Canvas.SetTop(BG, -100);
                });
            };
            new Thread(() =>
            {
                c.Start();
            })
            {
                IsBackground = true
            }.Start();
        }
예제 #13
0
 private FaceController SelectNextFace()
 {
     if (currentIndex >= faces.Count)
     {
         Debug.Log(currentIndex);
         Debug.Log(faces.Count);
         EndGame();
         return(currentFace);
     }
     else
     {
         FaceController result = faces[currentIndex];
         result.gameObject.SetActive(true);
         currentIndex++;
         return(result);
     }
 }
예제 #14
0
    void Update()
    {
        if (stateMachine.currentState == GameController.GameState.Calibrate)
        {
            if (timeLeft > 0)
            {
                FaceController face = GetComponent <FaceController> ();
                if (timeLeft == 4)
                {
                    update1g = face.getInstantaniousVec3();
                    update1m = face.getInstantaniousMagVec3();
                }
                if (timeLeft == 3)
                {
                    update2g = face.getInstantaniousVec3();
                    update2m = face.getInstantaniousMagVec3();
                }
                if (timeLeft == 2)
                {
                    update3g = face.getInstantaniousVec3();
                    update3m = face.getInstantaniousMagVec3();
                }
                if (timeLeft == 1)
                {
                    update4g = face.getInstantaniousVec3();
                    update4m = face.getInstantaniousMagVec3();
                }
            }
            if (timeLeft <= 0)
            {
                FaceController face           = GetComponent <FaceController> ();
                Vector3        averageRefGrav = (update1g + update2g + update3g + update4g) / 4.0f;
                face.applyReferenceGravity(averageRefGrav);
                Vector3 averageRefMag = (update1m + update2m + update3m + update4m) / 4.0f;
                face.applyReferenceMag(averageRefMag);

                StopCoroutine("timer");
                countdownText.text    = "Ready!";
                countdownText.enabled = false;

                stateMachine.SetCurrentState(GameController.GameState.Orange);
            }
        }
    }
예제 #15
0
    public void Init(int slotNumber)
    {
        this.slotNumber = slotNumber;

        faces = new GameObject[Machine.instance.GetNumFaces()];

        for (int i = 0; i < Machine.instance.GetNumFaces(); i++)
        {
            faces[i] = Instantiate(Machine.instance.GetFace(i).facePrefab) as GameObject;

            faces [i].transform.position += new Vector3((float)slotNumber, i, 0);


            faces [i].transform.parent = this.gameObject.transform;

            FaceController faceScript = faces [i].GetComponent <FaceController> ();
            faceScript.SetSlotRef(this);
        }
    }
        public void acknowledge_RESULT_OK()
        {
            // arrange
            var key = "test_key";

            _storageService.Add(key, "whatever object", null);
            Guid faceId          = Guid.NewGuid();
            Guid personId        = Guid.NewGuid();
            var  faceServiceMock = new Mock <IFaceServiceClient>();
            var  obj             = new FaceController(Services.GetRequiredService <IHostingEnvironment>(), faceServiceMock.Object, _storageService);

            // act
            var result = obj.Acknowledge(key);

            // assert
            var storageObject = _storageService.Get(key);

            Assert.Null(storageObject);
        }
        public async Task upload_single_face_single_candidate_RESULT_OK()
        {
            // arrange - mocking IFormFile using a memory stream
            string sampleFile = Path.Combine(Directory.GetCurrentDirectory(), "data", "joe_family.jpg");

            using (var fs = new FileStream(sampleFile, FileMode.Open))
            {
                FormFile f   = new FormFile(fs, 0, fs.Length, "file", fs.Name);
                var      obj = new FaceController(Services.GetRequiredService <IHostingEnvironment>(), Services.GetRequiredService <IFaceServiceClient>(), _storageService);

                // act
                var result = await obj.Upload(f);

                // assert
                Assert.IsAssignableFrom <IActionResult>(result);
                Assert.IsType(typeof(OkObjectResult), result);
                Assert.IsType(typeof(ResponseModel), ((OkObjectResult)result).Value);
                Assert.True((((OkObjectResult)result).Value as ResponseModel).Faces.Count == 4);
            }
        }
 void Start()
 {
     faceController = GameObject.Find("AnimationController").GetComponent <FaceController>();
 }
 void Start()
 {
     faceController = GetComponentInParent <FaceController>();
 }
예제 #20
0
 // Use this for initialization
 void Start()
 {
     mPos            = transform.position;
     mSpeed          = kParam.NeutralInitSpeed;
     mFaceController = new FaceController(mFace);
 }
예제 #21
0
    public void TrigerPii(float presure, FaceController faceController, PiiController piiController, GameObject score_Text_func)
    {
        //Если у мочи достаточно инерции и если у предмета еще есть здоровье
        if (presure >= MinPresure && heath != 0)
        {
            float score_plus_now = 0;

            if (heath > 0)
            {
                //Сперва проверяем напрягся ли игрок
                if (player_save != null && player_save.bolt.GetComponent <PiiController>().ChargeOn)
                {
                    heath -= presure;
                    if (!gameplayParametrs.GameOver)
                    {
                        score_plus_now = score * 1.5f;
                        player_save.PlusScore(score_plus_now);
                    }
                }
                else if (player_save != null && !player_save.bolt.GetComponent <PiiController>().ChargeOn)
                {
                    score_plus_now = score;
                    player_save.PlusScore(score_plus_now);
                }
                heath -= presure;

                if (heath < 0)
                {
                    heath = 0;
                }
                heath_percent = heath / (start_heath / 100);
                //Если есть частицы то воспроизводим их
                if (particle != null)
                {
                    particle.Play();
                }

                SetColorNeed(heath_percent);

                //Если здоровье закончилось
                if (heath <= 0)
                {
                    DeathTarget();
                    test_lvl_target(player_save.gameplayParametrs);

                    score_plus_now = score * score_destroy;
                    player_save.PlusScore(score_plus_now);

                    if (faceController != null && fear_emotion_dead && Random.Range(0, 100) < 50)
                    {
                        faceController.set_fear(3f);
                    }

                    helicopter helicopterObj = gameObject.GetComponent <helicopter>();
                    if (helicopterObj != null)
                    {
                        player_save.SetFullCharge();
                    }
                }
                //Иначе звук попадания
                else
                {
                    //Воспросизводим звук попадания
                    TargetSound sounds = gameObject.GetComponent <TargetSound>();
                    if (sounds != null)
                    {
                        gameObject.GetComponent <TargetSound>().PlaySoundPii();
                    }

                    //Если цель автомобиль воспроизводим сигнализацию
                    CarStatic CarSiren = gameObject.GetComponent <CarStatic>();
                    if (CarSiren != null)
                    {
                        CarSiren.StartSignal();
                    }
                    //Если цель полиция то запускаем сирену
                    police_car police = gameObject.GetComponent <police_car>();
                    if (police != null && !police.police_active_now)
                    {
                        police.police_active_now = true;
                        police.need_sound_yn     = true;
                    }
                }
            }

            if (faceController != null && !piiController.ChargeOn)
            {
                if (Random.Range(0, 100) < 1.1f)
                {
                    faceController.set_bliss_voice(1.2f);
                }
                if (Random.Range(0, 100) < 0.1f)
                {
                    faceController.set_surprise_voice(1.2f);
                }

                if (Random.Range(0, 100) < 0.1f && fear_emotion)
                {
                    faceController.set_choked_voice();
                }
            }


            if (score_Text_func != null)
            {
                if (score_text != null)
                {
                    GameObject.Destroy(score_text);
                }

                score_text = Instantiate(score_Text_func);
                Score_text_3d score_Text_3D = score_text.GetComponent <Score_text_3d>();

                ScoreSum += score_plus_now;
                //Проверка того что нужно написать в зависимости от здоровья
                if (heath > 0)
                {
                    Color color_new = new Color(1f, 0.92f, 0, 0.62f);
                    score_Text_3D.inicialize(player_save.gameObject, ((int)heath_percent).ToString() + "%", gameObject.transform.position, color_new);
                }
                else
                {
                    Color color_new = new Color(1f, 0.47f, 0, 0.62f);
                    score_Text_3D.inicialize(player_save.gameObject, ((int)ScoreSum).ToString(), gameObject.transform.position, color_new);
                }
            }
        }
    }
 public ViewAttendence()
 {
     InitializeComponent();
     faceController = new FaceController();
 }