Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Person? Clasify(byte [] image)
- {
- var featureVector = ExractFeatureVector(_waveletTransformer.Transform(image, _settings.Classficator.Ocataves, TransformFunction.Haar));
- var existingVectors = _personService
- .ReadAll(p => p.Include(o => o.Fingerprints).ThenInclude(o => o.Vector))
- .SelectMany(p => p.Fingerprints)
- .Select(f =>
- new {
- Person = f.Owner,
- Vector = TransformFunction.Haar.GetFeatureVectorFiled(f.Vector),
- Distance = CalculateDistance(TransformFunction.Haar.GetFeatureVectorFiled(f.Vector), featureVector)
- });
- return existingVectors?.OrderBy(v => v.Distance).Take(_settings.Classficator.K).GroupBy(v => v.Person).Max().Key;
- }
- public Fingerprint Train(Fingerprint fingerprint)
- {
- var result = new FeatureVector();
- foreach (var function in new TransformFunction[] { TransformFunction.Haar, TransformFunction.D4 })
- {
- var value = _waveletTransformer.Transform(fingerprint.Image, _settings.Classficator.Ocataves, function);
- function.SetFeatureVectorField(result, ExractFeatureVector(value));
- _logger.LogInformation($"Vector generated for {fingerprint.Hand} - {fingerprint.Finger} for function {function.ToString()}.");
- }
- fingerprint.Vector = result;
- return fingerprint;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement