See README for description of the Dove-eye project (poor man's Hawk-Eye).

The main goal is to make 2D object tracking from a single camera more stable, so that it's reliable for 3D localization.

Minor goal 1 is to extend calibration with definition of custom frame of reference.

Another minor (minor by importance, not difficulty) goal is to modify pipeline and GUI in such a way that it'll allow offline tracking (from video files) and frame-by-frame processing -- this might be prerequisite for making the 2D tracking work properly.

Update after Hackweek 13

  • naïve approach to tracking proved to work in simple setups only -> identified need for more sophisticated tracking
  • implemented video files tracking
  • implemented frame-by-frame processing
  • refactored Tracker code

Plan for Hackweek 14

Georg Nebehay published two very promising tracking algorithms OpenTLD and CMT. The plan is to compile these two in openSUSE (and learn some of packaging stuff) and see the announced result for myself. The next step is to integrate at least on of these tracking algorithms into Dove-eye. If time permits, it'd be nice to also to implement the minor goal 1 from previous HW.

Update after Hackweek 14

  • (not as much time spent as projected)
  • OpenTLD packaged for openSUSE distributions
  • integrated OpenTLD based tracker into Dove-eye
  • Dove-eye is now able to track a pendulum (on a desk, ~0.4 m long) quite reliably, the precision is not so great though (the bounding box changes size, is slightly moved -> noise)
  • this seems to be sufficient to move attention to data processing (and then perhaps back to tracking, tick-tock)

Looking for hackers with the skills:

opencv qt

This project is part of:

Hack Week 13 Hack Week 14

Activity

  • over 8 years ago: michal-m liked this project.
  • over 8 years ago: mkoutny added keyword "opencv" to this project.
  • over 8 years ago: mkoutny added keyword "qt" to this project.
  • about 9 years ago: mkoutny started this project.
  • about 9 years ago: mkoutny originated this project.

  • Comments

    • mkoutny

    Similar Projects

    Create an Android app for Syncthing as part of the Syncthing Tray project by mkittler

    Description

    There's already an app but code/features already in Syncthing Tray could be reused to create a nicer app with additional features like managing ignore patterns more easily. The additional UI code for the app could then in turn be re-used by other parts of Syncthing Tray, e.g. to implement further steps in the wizard as requested by some users. This way one "UI wrapper codebase" could serve GNU/Linux, Windows and Android (and in theory MacOS) at the same time which is kind of neat.

    Goals

    • DONE: Learn more about development for Android and development of UIs with Qt Quick
    • DONE: Create an experimental app reusing as much existing Syncthing Tray code as possible
    • DONE: Build Syncthing as a library also for Android and use it in the app (already done but needs further testing and integration with the rest of the app configuration)
    • DONE: Update the Syncthing Tray website, documentation
    • Extend the app so it has at least a start page and an import that can cope with an export of the other app
    • Update forum thread
    • Upload an experimental build on GitHub
    • Extend the Syncthing API to download single files on demand (instead of having to sync the whole directory or use ignore patterns)

    Resources

    • Android SDK/NDK and emulator
    • Qt Quick


    YQPkg - Bringing the Single Package Selection Back to Life by shundhammer

    tl;dr

    Rip out the high-level YQPackageSelector widget from YaST and make it a standalone Qt program without any YaST dependencies.

    See section "Result" at the bottom for the current status after the hack week.

    Current Status

    See the development status issue at the GitHub repo.

    tl;dr: It's usable now with all the key features.

    It does real package installation / removal / update with reasonable user feedback.

    The Past and the Present

    We used to have and still have a powerful software selection with the YaST sw_single module (and the YaST patterns counterpart): You can select software down to the package level, you can easily select one of many available package versions, you can select entire patterns - or just view them and pick individual packages from patterns.

    You can search packages based on name, description, "requires" or "provides" level, and many more things.

    The Future

    YaST is on its way out, to be replaced by the new Agama installer and Cockpit for system administration. Those tools can do many things, but fine-grained package selection is not among them. And there are also no other Open Source tools available for that purpose that even come close to the YaST package selection.

    Many aspects of YaST have become obsolete over the years; many subsystems now come with a good default configuration, or they can configure themselves automatically. Just think about sound or X11 configuration; when did you last need to touch them?

    For others, the desktops bring their own tools (e.g. printers), or there are FOSS configuration tools (NetworkManager, BlueMan). Most YaST modules are no longer needed, and for many others there is a replacement in tools like Cockpit.

    But no longer having a powerful fine-grained package selection like in YaST sw_single will hurt. Big time. At least until there is an adequate replacement, many users will want to keep it.

    The Idea

    YaST sw_single always revolved around a powerful high-level widget on the abstract UI level. Libyui has low-level widgets like YPushButton, YCheckBox, YInputField, more advanced ones like YTable, YTree; and some few very high-level ones like YPackageSelector and YPatternSelector that do the whole package selection thing alone, working just on the libzypp level and changing the status of packages or patterns there.

    For the YaST Qt UI, the YQPackageSelector / YQPatternSelector widgets work purely on the Qt and libzypp level; no other YaST infrastructure involved, in particular no Ruby (or formerly YCP) interpreter, no libyui-level widgets, no bindings between Qt / C++ and Ruby / YaST-core, nothing. So it's not too hard to rip all that part out of YaST and create a standalone program from it.

    For the NCurses UI, the NCPackageSelector / NCPatternSelector create a lot of libyui widgets (inheriting YWidget / NCWidget) and use a lot of libyui calls to glue them together; and all that of course still needs a lot of YaST / libyui / libyui-ncurses infrastructure. So NCurses is out of scope here.

    Preparatory Work: Initializing the Package Subsystem

    To see if this is feasible at all, the existing UI examples needed some fixing to check what is needed on that level. That was the make-or-break decision: Would it be realistically possible to set the needed environment in libzypp up (without being stranded in the middle of that task alone at the end of the hack week)?

    Yes, it is: That part is already working:

    https://github.com/yast/yast-ycp-ui-bindings/pull/71