public override IEnumerable<Face> DetectFaces(Image<Bgr, byte> image)
        {
            var item = this.priorityAlgorithm.Next();
            Image<Bgr, byte> flippedImage = image;

            if (item.ShouldFlip)
            {
                flippedImage = image.Flip(FLIP.HORIZONTAL);
            }

            flippedImage = flippedImage.Mul(item.BrightnessMultiplier);

            var profileFaces = base.DetectFaces(flippedImage);

            if (profileFaces.Any())
            {
                this.priorityAlgorithm.SetFirst();

                foreach (var face in profileFaces)
                {
                    face.Image = image;
                    face.IsRightProfile = !item.ShouldFlip;
                    face.IsLeftProfile = item.ShouldFlip;

                    if (face.IsLeftProfile) {
                        face.FlipZoneHorizontally();
                    }
                }

                return profileFaces;
            }

            return new List<Face>();
        }
        public override IEnumerable<Face> DetectFaces(Image<Bgr, byte> image)
        {
            var result = base.DetectFaces(image);

            result.ToList().ForEach(x => x.IsFrontal = true);

            return result;
        }
 protected override MCvAvgComp[] GetFacesVector(Image<Gray, byte> grayImage)
 {
     return this.DetectVarious(grayImage);
 }