Bug 105027 - Assembling of frames is broken
Summary: Assembling of frames is broken
Status: RESOLVED FIXED
Alias: None
Product: libfprint
Classification: Unclassified
Component: libfprint (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: libfprint-bugs
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-10 01:17 UTC by Timur Celik
Modified: 2018-05-30 09:18 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Patches to fix this bug (912 bytes, application/x-xz)
2018-02-10 01:17 UTC, Timur Celik
Details
assembling: Fix assembling of frames for non-reverse stripes (1002 bytes, patch)
2018-05-25 11:24 UTC, Bastien Nocera
Details | Splinter Review
assembling: Fix assembling of last frame in reverse mode (966 bytes, patch)
2018-05-25 11:24 UTC, Bastien Nocera
Details | Splinter Review
assembling: Fix assembling of frames for non-reverse stripes (1.51 KB, patch)
2018-05-30 09:17 UTC, Bastien Nocera
Details | Splinter Review
assembling: Fix assembling of last frame in reverse mode (1.09 KB, patch)
2018-05-30 09:17 UTC, Bastien Nocera
Details | Splinter Review

Description Timur Celik 2018-02-10 01:17:26 UTC
Created attachment 137252 [details]
Patches to fix this bug

In forward mode every frame stores the delta from the previous frame, in reverse mode it stores the delta to the next frame. This causes images to use the wrong delta while assembling in forward mode.

In reverse mode is also bug. The last image is always misplaced because the sign of the delta vector isn't corrected.

I attached patches for both bugs.
Comment 1 Bastien Nocera 2018-05-25 11:24:50 UTC
Created attachment 139758 [details] [review]
assembling: Fix assembling of frames for non-reverse stripes
Comment 2 Bastien Nocera 2018-05-25 11:24:54 UTC
Created attachment 139759 [details] [review]
assembling: Fix assembling of last frame in reverse mode
Comment 3 Bastien Nocera 2018-05-29 11:49:10 UTC
Vasily, any chance you could review this?
Comment 4 Bastien Nocera 2018-05-29 11:51:17 UTC
(In reply to Timur Celik from comment #0)
> Created attachment 137252 [details]
> Patches to fix this bug
> 
> In forward mode every frame stores the delta from the previous frame, in
> reverse mode it stores the delta to the next frame. This causes images to
> use the wrong delta while assembling in forward mode.
> 
> In reverse mode is also bug. The last image is always misplaced because the
> sign of the delta vector isn't corrected.
> 
> I attached patches for both bugs.

Would be good if you could mention in which cases you saw the problems (particular device, or method), and the result of each patch (could enroll but not verify, could not enroll, etc.)
Comment 5 Timur Celik 2018-05-29 12:25:43 UTC
The device I use is [04f3:0903] Elan Microelectronics Corp, but both bugs should be noticeable with any device by taking a look at the assembled scan. However the resulting error may be more noticeable for reader's that provide relatively large frames (~96x96px).

The broken assembling in forward mode will create a small error for linear motion, because the delta of all frames is approximately the same in this case. But if you move your finger, stop and then continue moving in a single scan, the misplaced frames should be visible in the assembled output.

The misplaced frame in reverse mode is always there and naturally more visible for a large sensor size.

Both bugs resulted in some false positives and bad authentication in general.
Comment 6 Vasily Khoruzhick 2018-05-29 15:47:32 UTC
(In reply to Bastien Nocera from comment #3)
> Vasily, any chance you could review this?

Looks good to me.
Comment 7 Bastien Nocera 2018-05-30 09:17:36 UTC
Created attachment 139844 [details] [review]
assembling: Fix assembling of frames for non-reverse stripes

Every frame stores the delta from the previous frame, in reverse mode
it stores the delta to the next frame. This causes images to use the
wrong delta while assembling in forward mode.

The broken assembling in forward mode will create a small error for
linear motion, because the delta of all frames is approximately the
same in this case. But if you move your finger, stop and then continue
moving in a single scan, the misplaced frames should be visible in
the assembled output.

This could result in false positives and verification failing.
Comment 8 Bastien Nocera 2018-05-30 09:17:39 UTC
Created attachment 139845 [details] [review]
assembling: Fix assembling of last frame in reverse mode

The last image is always misplaced because the sign of the delta
vector isn't corrected.

This could result in false positives and verification failing.
Comment 9 Bastien Nocera 2018-05-30 09:17:58 UTC
Attachment 139844 [details] pushed as 37bb59d - assembling: Fix assembling of frames for non-reverse stripes
Attachment 139845 [details] pushed as 0215483 - assembling: Fix assembling of last frame in reverse mode


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.