digiKam
Loading...
Searching...
No Matches
dnnmodelmanager.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2024-10-13
7 * Description : digiKam DNN Model Manager
8 *
9 * SPDX-FileCopyrightText: 2024 by Michael Miller <michael underscore miller at msn dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QObject>
20#include <QSettings>
21
22// Local includes
23
24#include "digikam_export.h"
25#include "filesdownloader.h"
26#include "dnnmodelbase.h"
27#include "dnnmodeldefinitions.h"
28
29namespace Digikam
30{
31
32class DIGIKAM_EXPORT DNNModelManager : public QObject
33{
34 Q_OBJECT
35
36public:
37
42 static DNNModelManager* instance();
43
47 const QList<DownloadInfo>& getDownloadInformation(DNNModelUsage usage);
48
56 DNNModelBase* getModel(const QString& modelName, DNNModelUsage usage) const;
57
58private:
59
62
63 // Disable
64
65 explicit DNNModelManager(QObject*) = delete;
66
67private:
68
69 const std::map<std::string, DNNLoaderType> str2loader
70 {
71 { "net", DNNLoaderType::DNNLoaderNet },
72 { "config", DNNLoaderType::DNNLoaderConfig },
73 { "yunet", DNNLoaderType::DNNLoaderYuNet },
74 { "sface", DNNLoaderType::DNNLoaderSFace }
75 };
76
81 void loadConfig();
82 void getSettings();
83
84private:
85
86 class Private;
87 Private* const d = nullptr;
88
89 friend class DNNModelManagerCreator;
90};
91
92} // namespace Digikam
Definition dnnmodelbase.h:35
Definition dnnmodelmanager.h:33
Definition datefolderview.cpp:34
enum Digikam::_DNNModelUsage DNNModelUsage