Bug 105027

Summary: Assembling of frames is broken
Product: libfprint Reporter: Timur Celik <clktmr>
Component: libfprintAssignee: libfprint-bugs
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: anarsoul, bugzilla, ia.filatov
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Patches to fix this bug
assembling: Fix assembling of frames for non-reverse stripes
assembling: Fix assembling of last frame in reverse mode
assembling: Fix assembling of frames for non-reverse stripes
assembling: Fix assembling of last frame in reverse mode

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.