Exemplo n.º 1
0
        void _trainBW_DoWork(object sender, DoWorkEventArgs e)
        {
            if (e == null)
            {
                return;
            }

            var arg = e.Argument as Object[];

            var name = arg[0] as String;

            var image = arg[1] as Bitmap;

            var imgName = Guid.NewGuid() + "kin.jpg";



            var detectionResult = _faceRest.faces_detect(null, imgName, null, "", image);

            var tags = detectionResult.photos[0].tags;

            var tagList = new List <string>();



            if (tags == null || tags.Count != 1)
            {
                e.Cancel = true;
                return;
            }

            var tag = tags[0];

            if (tag.attributes["face"].confidence < 80)
            {
                e.Cancel = true;
                return;
            }

            tagList.Add(tag.tid);
            if (!_users.Contains(name + "@" + _namespace[0]))
            {
                _users.Add(name + "@" + _namespace[0]);
            }

            _faceRest.tags_save(tagList, name + "@" + _namespace[0], "", "kinectHome");
            var trainRes = _faceRest.faces_train(new List <string> {
                name
            }, _namespace[0], string.Empty);

            var result = new object[2];

            result[0] = image;
            result[1] = detectionResult;
            e.Result  = result;

            var trainStatus = _faceRest.faces_status(_users, _namespace[0]);
        }