Git Product home page Git Product logo

ifsearch's People

Contributors

totto-eclipseir avatar to85 avatar eirtony avatar

Stargazers

 avatar

Watchers

 avatar

ifsearch's Issues

ReFACTOR

Repository

  • Bring IfSearch repository into INDI6
    • Use and extend eir* libraries in INDI6
    • Bring code to c++-11 level at minimum (or 17)
    • Setup doxygen for project

Cleanup code smells while accomplishing goals needed for #8.

  • Breakup Monolithic initialization, frame, and face processing
  • Document with doxygen while in neighborhood
  • Pull from OttoCODE libraries as needed

Mark Images without QPainter

Qt6 no longer can use QPainter on a QImage with QCoreApplication (console with no UI). Work around by creating mostly transparent mark layers above the base image (frame, face, normal, other) and reducing to one layer for output.

  • New LayerImage : QImage class
  • Refactor MarkImage to take LayerImage as its base class
  • Mimic the current MarkImage methods
    • rect(QRect, QColor color=Qt::yellow, int penWidth=0)
    • rects(QList, QColor color=Qt::yellow, penWidth=0, int darker NotSupported, opacity=1.0);
    • centerLines(QRect r, QColor color=Qt::yellow, int penWidth=0);
    • horizontalLine(const QPoint, length, color=Qt::yellow, penWidth=0);
    • eyes(Eyes eyes, QColor color=Qt::yellow, int penWidth=0, int length=4);
  • Note: Will lose the ability to title mark with text
  • Note: Will lose the ability to lighten/darken mark unless absolutely necessary

Deployment

Targets

(Details on each in separate comments below.)

  • Windows - 32bit v4
    Existing years old deployment based upon Qt4. Rock solid performance (with a few exceptions: #2, #6, #7). MSVC-based with OpenCV2.

    • Runtime Environment
    • Baseline for Regression Testing
  • Linux - 64bit v4
    Bring forward source code and build in 64-bit Linux (Ubuntu 20.4 LTS for now). Qt6-based, GCC-toolchain, with OpenCV4 (v4.5.1 at the moment) build from source with CMake.

    • Ubuntu Host
    • Development Environment
      • gcc
      • Qt6
      • CMake
      • OpenCV from Sources
    • Runtime Environment
      • Ubuntu
      • INDI, OpenCV, Qt, gcc, etc. binaries
    • Regression Testing

  • Windows - 64bit v4
    Bring forward source code and build in 64-bit Linux (Ubuntu 20.4 LTS for now). Qt6-based, GCC-toolchain, with OpenCV4 (v4.5.1 at the moment) build from source with CMake.

    • Ubuntu Host
    • Development Environment
      • gcc
      • Qt6
      • CMake
      • OpenCV from Sources
    • Runtime Environment
      • Ubuntu
      • INDI, OpenCV, Qt, gcc, etc. binaries
    • Regression Testing
  • Linux - 64bit v6
    Bring forward source code and build in 64-bit Linux (Ubuntu 20.4 LTS for now). Qt6-based, GCC-toolchain, with OpenCV4 (v4.5.1 at the moment) build from source with CMake.

    • Ubuntu Host
    • Development Environment
      • gcc
      • Qt6
      • CMake
      • OpenCV from Sources
    • Runtime Environment
      • Ubuntu
      • INDI, OpenCV, Qt, gcc, etc. binaries
    • Regression Testing
  • Windows - 64bit v6

Other Issues

  • [] Unable to mark images in QCoreApplication-based console, therefore #8

Normalized Face Output

Continue Port

  • Linux Build
    • Detect
      • Get Input Frame to cvMat_Grey for detection
      • Cleanup GroupMethods
    • Generate
      • Ensure Detect Quality and Generate Consistency
      • Generate Normalized Image and mark via #12
      • [ ]

Implement

  • In addition to Output / NormalFaceDir:
  • () Output / NormalFaceDir
  • () Output / NormalXmlDir
  • () Output / MatchFaceDir

GuiConsole Widget

INDI6 eirWgt Library

  • Start Desktop GuiConsole application (GUI with QWidgets) from QApplication
    • Basic GuiConsoleMain from QMainWindow
    • Use QGridLayout central widget
      • Build with QT_MESSAGELOGCONTEXT
    • Future:
      • Create Console Toolbar : QToolbar class
      • Display gallery of frames in queue
      • Display current frame as marked
      • Display faces detected in frame on to normalized and reconstruction
  • Create ConsoleWidget : QWidget class
    • For now, QtDebug only
    • Implement with read-only QTextEdit
    • QtMessageHandler hook to get QtDebug messages
      • Color / Font to distinguish message type
      • Filter on message type
      • Record / filter onQMessageLogContext
    • Each line is a paragraph managed by QTextCursor and QTextDocument
    • Use maximumBlockCount to prevent memory overload.
    • Later:
      • stdin inline or separate QLineEdit input
      • stdout pane
      • stderr pane
      • Merge all output panes

Port to Qt6

Port IfSearch to Qt6.2.x

  • Reinstall Qt v6.2.2
  • Build OpenCV v4 or v5
  • Build IfSearch for Qt6

Re-enable Clothes Matcher

Compile error in ClothesMatcher.cpp,156: ClothesMatcher::calculate() upperPrimary_.setValue(upperHistogram_.sortBin(1));
Rebuild Histogram Template Class to fix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.