digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::FacePipelineBase Class Reference
+ Inheritance diagram for Digikam::FacePipelineBase:

Public Types

enum  FilterMode {
  ScanAll , ScanNew , TrainNew , TrainAll ,
  TrainRemove , TrainReset
}
 
enum  WriteMode { NormalWrite , OverwriteAllFaces , OverwriteUnconfirmed }
 
- Public Types inherited from Digikam::MLPipelineFoundation
enum  MLPipelineNotification { notifySkipped , notifyProcessed }
 
typedef struct Digikam::MLPipelineFoundation::_MLPipelinePerformanceProfile MLPipelinePerformanceProfile
 
typedef SharedQueue< MLPipelinePackageFoundation * > MLPipelineQueue
 
enum  MLPipelineStage {
  Finder , Loader , Extractor , Classifier ,
  Trainer , Writer , None
}
 

Public Member Functions

 FacePipelineBase (const FaceScanSettings &_settings)
 
- Public Member Functions inherited from Digikam::MLPipelineFoundation
virtual void cancel ()
 
bool hasFinished () const
 
virtual bool start ()
 

Protected Member Functions

bool commonFaceThumbnailExtractor (const QString &pipelineName, QThread::Priority stagePriority, MLPipelineFoundation::MLPipelineStage thisStage, MLPipelineFoundation::MLPipelineStage nextStage, bool trainingQualityCheck=false)
 
bool commonFaceThumbnailLoader (const QString &pipelineName, QThread::Priority stagePriority, MLPipelineFoundation::MLPipelineStage thisStage, MLPipelineFoundation::MLPipelineStage nextStage)
 
double detectBlur (const cv::Mat &cvGrayImage) const
 
double detectNoise1 (const cv::Mat &cvGrayImage) const
 
double detectNoise2 (const cv::Mat &cvGrayImage) const
 
bool enqueue (MLPipelineQueue *thisQueue, MLPipelinePackageFoundation *package) override
 
bool useForTraining (const QSize &faceSize, const cv::Mat &image)
 
- Protected Member Functions inherited from Digikam::MLPipelineFoundation
virtual void addMoreWorkers ()=0
 
bool addWorker (const MLPipelineStage &stage)
 
bool checkMoreWorkers (int totalItemCount, int currentItemCount, bool useFullCpu)
 
virtual bool classifier ()=0
 
void clearAllQueues ()
 
virtual MLPipelinePackageFoundationdequeue (MLPipelineQueue *thisQueue)
 
void emitSignalUpdateItemCount (const qlonglong itemCount)
 Helper methods to perform signal emitting through the MLPIPELINE_FINDER_END mocro with the moc processor.
 
virtual bool extractor ()=0
 
virtual bool finder ()=0
 
virtual bool loader ()=0
 
virtual void notify (MLPipelineNotification notification, const QString &_name, const QString &_path, const QString &_displayData, int _processed, const DImg &_thumbnail)
 
virtual void notify (MLPipelineNotification notification, const QString &_name, const QString &_path, const QString &_displayData, int _processed, const QIcon &_thumbnail)
 
virtual void notify (MLPipelineNotification notification, const QString &_name, const QString &_path, const QString &_displayData, int _processed, const QImage &_thumbnail)
 
void pipelinePerformanceEnd (const MLPipelineStage &stage, int totalItemCount, QElapsedTimer &timer)
 
void pipelinePerformanceEnd (const MLPipelineStage &stage, QElapsedTimer &timer)
 
void pipelinePerformanceStart (const MLPipelineStage &stage, QElapsedTimer &timer)
 Methods to profile the Pipeline performance.
 
MLPipelinePackageFoundationqueueEndSignal () const
 Queue helper functions.
 
void showPipelinePerformance () const
 
void stageEnd (MLPipelineStage thisStage, MLPipelineStage nextStage)
 
void stageStart (QThread::Priority threadPriority, MLPipelineStage thisStage, MLPipelineStage nextStage, MLPipelineQueue *&thisQueue, MLPipelineQueue *&nextQueue)
 
virtual bool trainer ()=0
 
void waitForStart ()
 
virtual bool writer ()=0
 

Protected Attributes

double blurThreshold = 4.87F
 
DNNModelBasedetectorModel = nullptr
 
const float minThumbnailSize = 0.4F
 
double noiseThreshold1 = 3.7
 
double noiseThreshold2 = 1.89
 
FaceScanSettings settings
 
- Protected Attributes inherited from Digikam::MLPipelineFoundation
bool cancelled = false
 
QAtomicInteger< int > itemsProcessed = 0
 
quint64 maxBufferSize = 2147483648
 2 GB default
 
QIcon missingIcon = QIcon::fromTheme(QLatin1String("image-missing"))
 
QMutex mutex
 
QMap< MLPipelineStage, MLPipelinePerformanceProfileperformanceProfileList
 
QElapsedTimer pipelineTimer
 
QMap< MLPipelineStage, MLPipelineQueue * > queues
 
QThreadPool * threadPool = nullptr
 
QMutex threadStageMutex
 
const int throttledQueueDepth = 1
 
QAtomicInteger< int > totalItemCount = 0
 
quint64 usedBufferSize = 0
 
QList< QFutureWatcher< bool > * > watchList
 

Additional Inherited Members

- Signals inherited from Digikam::MLPipelineFoundation
void finished ()
 Emitted when the last package has finished processing.
 
void processed (const MLPipelinePackageNotify::Ptr &package)
 Emitted when one package has finished processing.
 
void processing (const MLPipelinePackageNotify::Ptr &package)
 Emitted when one package begins processing.
 
void progressValueChanged (float progress)
 
void scheduled ()
 Emitted when processing is scheduled.
 
void signalAddMoreWorkers ()
 
void signalUpdateItemCount (const qlonglong itemCount)
 
void skipped (const MLPipelinePackageNotify::Ptr &package)
 Emitted when one or several packages were skipped, usually because they have already been scanned.
 
void started (const QString &message)
 Emitted when processing has started.
 

Member Enumeration Documentation

◆ FilterMode

Enumerator
ScanAll 

Will read any given image.

ScanNew 

Scan new images, will skip any image that is already marked as scanned.

TrainNew 

Adds new face(s) to training.

TrainAll 

Retrains the face DB.

TrainRemove 

Removes the face(s) from training.

TrainReset 

Removes all face training, sets all images to not scanned.

◆ WriteMode

Enumerator
NormalWrite 

Write results. Merge with existing entries.

OverwriteAllFaces 

Add new results. Previous all results will be cleared.

OverwriteUnconfirmed 

Add new results. Previous unconfirmed results will be cleared.

Member Function Documentation

◆ commonFaceThumbnailExtractor()

bool Digikam::FacePipelineBase::commonFaceThumbnailExtractor ( const QString &  pipelineName,
QThread::Priority  stagePriority,
MLPipelineFoundation::MLPipelineStage  thisStage,
MLPipelineFoundation::MLPipelineStage  nextStage,
bool  trainingQualityCheck = false 
)
protected

compute the size of the face region in pixels as shown in the original image this is used to check if the image is suitable for training

◆ enqueue()

bool Digikam::FacePipelineBase::enqueue ( MLPipelineQueue thisQueue,
MLPipelinePackageFoundation package 
)
overrideprotectedvirtual

Reimplemented from Digikam::MLPipelineFoundation.