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 cv::Rect origSize, 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 ()
 
void clearQueue (MLPipelineQueue *thisQueue)
 
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)
 
MLPipelinePackageFoundationqueueEndSignal () const
 
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
 
float minThumbnailSize = 0.33f
 
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
 
QMutex mutex
 
QMap< MLPipelineStage, MLPipelinePerformanceProfileperformanceProfileList
 
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

◆ enqueue()

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

Reimplemented from Digikam::MLPipelineFoundation.