2019-12-22-7.0.0-beta1_release_announcement.md 9.92 KB
Newer Older
Gilles Caulier's avatar
Gilles Caulier committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
---
date: "2019-12-22T00:00:00"
title: "digiKam 7.0.0-beta1 is released"
author: "digiKam Team"
description: "Dear digiKam fans and users, we are proud to announce the first beta of digiKam 7.0.0."
category: "news"
---

[![](https://i.imgur.com/dCBXnPrh.jpg "digikam 7.0.0 and Canon CR3 support")](https://imgur.com/dCBXnPr)

Dear digiKam fans and users,

Just in time to get you into the holiday spirit, we are now proud to release digiKam 7.0.0-beta1 today.
This first version start the test stages for next 7.x series planing while next year.
Have a look at some of the highlights listed below, to discover all those changes in detail.

### Deep-Learning Powered Faces Management

While many years, digiKam has provided an important feature dedicated to detect and recognized faces in photo.
The algorithms used in background (not based on deep learning) was older and unchanged since the first revision
including this feature (digiKam 2.0.0). It was not enough powerful to facilitate the faces management workflow automatically.

[![](https://i.imgur.com/BEIAMAsh.png "digiKam Faces Icon-view After Detection Process")](https://imgur.com/BEIAMAs)

Until now, the complex methodologies to analyze image contents in goal to isolate and tags people faces, was performed
using the classical feature-based [Cascade Classifier](https://docs.opencv.org/3.4/db/d28/tutorial_cascade_classifier.html)
from the OpenCV library. This older way works but do not provide an high level of true positive results.
Faces detection was able to give 80% of good results while analysis, which is not too bad but requires a lots
of users feedback to confirm or not the detected faces. Also, with the user feedbacks from
bugzilla, the Faces Recognition do not provides a good experience in auto-tags mechanism for people.

While summer 2017, we have mentored a first student named [Yingjie Liu](https://community.kde.org/GSoC/2017/StatusReports/YingjieLiu)
to work on Neural Network integration in Face management pipeline based on [Dlib library](http://dlib.net/).
The result was mostly demonstrative and very experimental, with a poor computation speed results. This can be considered as a
technical proof of concept, but not usable in production. The approach to resolve the problem has take a wrong way, and this is why the deep
learning option in Face management have never been activated. We have try again this year, and a complete rewrite of
these codes have been done with success by a new student named [Thanh Trung Dinh](https://community.kde.org/GSoC/2019/StatusReports/ThanhTrungDinh).

The Goal of project was to left all these technics and to port the detection and the recognition engine on more modern
deep-learning approaches. The new codes based on recent [Deep Neural Network](https://docs.opencv.org/master/d2/d58/tutorial_table_of_content_dnn.html)
feature from OpenCV library, use neuronal networks with pre-learned data model dedicated
for the faces management. No learning stage was required to perform faces detection and recognition. We have gain time to code,
run-time speed, and a better level of success rate which reach 97% of true positive.
Another one is to be able to detect non-human faces, as dog like you can see in this screenshot.

[![](https://i.imgur.com/lmNd1mSh.png "digiKam Faces Dog Detection Compared in Light Table")](https://imgur.com/lmNd1mS)

But there are more improvements about face detection. The neural network model that we use is really a good one as it can detected blurred face,
covered faces, profile faces, printed faces, returned faces, partial faces, etc. The results processed over huge collections give excellent results
with a low level of false positive items. See below the examples of face detection challenges performed by the neural network:

[![](https://i.imgur.com/vNyellnh.png "digiKam Faces Detection Chalenge")](https://imgur.com/vNyelln)

About the Recognition, the workflow still the same than previous versions but it include few improvements.
You need to teach to the neural network some faces to automatically recognize on the collection. User must tag some images with the same
person and run the recognition process. The neural network will parse the faces already detected as unknown and compare to ones already tagged.
If new items are recognized, the automatic workflow will highlight new faces with a green border around thumbnail and will report how many new
items are registered in face-tag. See the screenshot below taken while a faces recognition.

[![](https://i.imgur.com/HHF4T9Xh.png "digiKam One New Dog-Face Recognized While Parsing Collections")](https://imgur.com/HHF4T9X)

Recognition can start to work with just one face tagged, where at least 6 items was necessary to obtain results with previous algorithms.
But of course, if more than one faces are already tagged, recognition will have more chances to give good results. The true positive measurements
about recognition with deep learning is really excellent and raise to 95%, where older algorithms cannot be able to reach 75% in better cases.
Recognition include also a Sensitivity/Specificity settings to tune results accuracy, but we tip to lets default settings in first to experiment
this feature over your collection.

About performance, all is better than previous versions as implementations supports multi-cores to speed-up computations. We have also work hard to fix
serious and complex memory leaks in the face management pipeline. This hack was take many mounths to be completed as the dysfunctions was very difficult
to reproduce. You can read the long story from [this bugzilla entry](https://bugs.kde.org/show_bug.cgi?id=399923). Resolving this issue permit to close
a long list of older reports around Face Management.

For the future, the new code structure will permit to use other pre-learned data model, to detect and recognize forms in images as monuments, plants,
annimals, The difficulty is to found the pre-learned data adapted for the neural network. Writing codes to teach no-human forms will be a time consuming
task. The neural network learning stage is complex and very sensible to errors. 

To complete the project, Thanh Trung Dinh has presented the new deep learning faces management to Akademy 2019 in September at Milan. The talk was recorded
and [available here](http://www-ftp.lip6.fr/pub/X11/kde-applicationdata/akademy/2019/127-AI_Face_Recognition_with_OpenCV_in_digiKam.mp4) as video stream.

### New RAW files Support Including Famous Canon CR3 and Sony A7R4

digiKam try to be the most powerful with all files provided by digital camera. Raw files support is a big challenge. Some applications
have been especially created only to support RAW files from camera, as this kind of support is complex, long and hard to maintain
in time.

Raw files are not like JPEG. Nothing is standardized, and camera makers are free to change everything inside these digital containers
without documentation. Raw files permit to re-invent the existing, to implement hidden features, to cache metadata, to require a powerful
computer to process data. When you buy an expensive camera, you must expect that the image provided are seriously pre-processed by the
camera firmware and ready to use immediately.

This is true for JPEG, not RAW files. Even if JPEG is not perfect, it's well standardized and well documented.
For Raw, for each new camera release, the formats can change as it depends in-depth on camera sensor data not processed by camera firmware.
This require an intensive reverse-engineering that digiKam team cannot support as well. This is why we use [the powerful Libraw library](https://www.libraw.org)
to post-process the Raw files on the computer. This library include complex algorithms to support all different Raw file formats.

[![](https://i.imgur.com/dYTbknSh.png "digikam 7.0.0 and Canon 90D CR3 RAW support")](https://imgur.com/dYTbknS)

In this 7.0.0, we use the new version libraw 0.20 which introduce more than 40 new Raw formats, especially the
most recent camera models available on the photo market, including the new Canon CR3 format and the Sony A7R4 (61 Mpx!).
See the list given below for details:

 * Canon: PowerShot G5 X Mark II, G7 X Mark III, SX70 HS, EOS R, EOS RP, EOS 90D, EOS 250D, EOS M6 Mark II, EOS M50, EOS M200
 * DJI Mavic Air, Osmo Action
 * FujiFilm GFX 100, X-A7, X-Pro3
 * GoPro Fusion, HERO5, HERO6, HERO7
 * Hasselblad L1D-20c, X1D II 50C
 * Leica D-LUX7, Q-P, Q2, V-LUX5, C-Lux / CAM-DC25
 * Olympus TG-6, E-M5 Mark III.
 * Panasonic DC-FZ1000 II, DC-G90, DC-S1, DC-S1R, DC-TZ95
 * PhaseOne IQ4 150MP
 * Ricoh GR III
 * Sony A7R IV, ILCE-6100, ILCE-6600, RX0 II, RX100 VII
 * Zenit M
 * and multiple smartphones...


This Libraw version is able to process in totality more than [1100 RAW formats](https://www.libraw.org/supported-cameras-snapshot-201910).
You can find the complete list in digiKam and Showfoto through the Help/Supported Raw Camera dialog.
Thanks to Libraw team to share and maintain this experience.

[![](https://i.imgur.com/bZkP4J1h.jpg "digikam 7.0.0 and Sony A7R4 support")](https://imgur.com/bZkP4J1)

### On The Road To 7.0.0

Next major version 7.0.0 will look promising. [The bugzilla entries closed](https://bugs.kde.org/buglist.cgi?f1=cf_versionfixedin&limit=0&o1=equals&order=bug_id&product=digikam&v1=7.0.0)
for this release are already impressive and nothing is completed yet, as we plan few beta before next spring, when we publish officially the stable version.
It still bugs to fix while this beta campain and all help will be welcome to stabilize codes.

Thanks to all users for [your support and donations](https://www.digikam.org/donate/),
and to all contributors, students, testers who allowed us to improve this release.

digiKam 7.0.0 source code tarball, Linux 32/64 bits AppImage bundles, MacOS
package and Windows 32/64 bits installers can be downloaded from [this repository](https://download.kde.org/unstable/digikam/).
Don't forget to not use this beta in production yet and thanks in advance for your feedback in Bugzilla.

We which you a Merry Christmas and a Happy new year 2020 using digiKam...