Code Monkey home page Code Monkey logo

lacmus-app's People

Contributors

dependabot[bot] avatar gosha20777 avatar ievgeniy88 avatar rstm-sf avatar sharov-am avatar worldbeater avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

lacmus-app's Issues

Create logging control.

We need to create control where it is possilbe to see current events -- warn messages, error, info . Just some TextBox or similar control where logs are collected for current user session. It doesn't exclude file logs which are persisted among all user sessions and probably should be more verbose -- contain debug messages.

Add hotkeys

  • next photo (ctrl+pageDown)
  • prev photo (ctrl+pageUp)
  • show detect Box (example space)
  • zoom (+ or -)
  • show full image (autozoom for full work area) (example ctrl+0)
  • move image (arrows)

Add listBox pagination control

Thumbnails of Photos are stored in the standard ListBox and are displayed all at once.
Avalonia is not able to discard more than 10,000 elements at a time. For this reason, the application freezes if the user uploads more than 10,000 photos.

It is necessary to display the photographs in a box box in portions - that is, to make the list pagination.
Here's how it goes in the WPF:

The selected photo is not always displayed

When uploading new photos or switching between pages or completing a prediction using a neural network, the selected photo is shown in the photo collection, but there is no full picture in the preview. You have to click on the next photo and go back.

This is because the update ui function is called and does not redraw the selected photo. It is necessary to track this moment.

Add global application settings.

Add global application settings.

The application needs settings where the user can select and configure a number of functions such as:

  • choose a theme
  • choose the option of using a neural network (cpu / gpu / remote server)
  • Ui language
  • it is possible to add more functions

Note1: It is necessary to think and add here those functions that the user can configure.

Note2: We should add this option after refactoring the code.

The filter is not applied when changing the original collection

If we stay inin the “Photos with objects” filtering mode, and then start processing the next batch of photos, then upon completion this list is not updated, you need to manually enable the display of all photos and then return to the filter.

In short, the filter is not automatically applied when updating the original image collection. In order for the filter to be updated, you need to call it explicitly.

Не открывается первое фото сразу после загрузки папки

Действия:

  • запустить приложение
  • нажать кнопку Open, выбрать папку с фотографиями; в левой части отображаются фото
  • нажать на первую фотографию в левой части (одинарный или двойной клик)

Выбранная фотография не отображается в правой части

Примечание:

  • Проблема существует, только если выбирать в самом начале первое фото
  • Если после выбора первого фото выбрать друге фото, то другое фото отобразится как нужно. После этого действия выбор первого фото приводит к нормальному поведению (фото отображается)

The name of files in leаt panel is very small

For example DJI {~} 6.JPG omitted a significant part of the name. There is more than enough space for a full name (less than half of the available space is used).

And in general, the available space is not used optimally: images can be much larger, the active element can be highlighted with the color of the entire background, and not take away 8px border.

Urls does not open in windows

cann not open url at windows 10

I have already tried several times to solve this problem and for some reason, somewhere, opening links still does not work. Personally, on my test machine with Windows everything works fine. It is obvious that it is tedious to carry out additional testing of this function.

[02:28:47 ERR] Unable to ope url https://yandex.ru/maps/?ll=37.788036%2C55.91099&z=15&mode=whatshere&whatshere%5Bpoint%5D=37.788036%2C55.91099&whatshere%5Bzoom%5D=15.
System.ComponentModel.Win32Exception (2): Не удается найти указанный файл.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)
   at LacmusApp.ViewModels.MetadataViewModel.OpenUrl(String url) in /home/gosha20777/files/projects/lacmus-app/src/ViewModels/MetadataViewModel.cs:line 119

Cancel long-running operations

Functionality for canceling long-running operations should be introduced. For example, loading 200 img files(gpa_01) took more than 1 minute. Long-running operations should be cancelable -- predict all, open and so on...

"Unknown runtime specified nvidia" errer when using GPU ml model

Unable to create docker container: invalid id Error response from daemon: Unknown runtime specified nvidia
GPU ml model dose not worked.
Actions:

  • use mlConfig-gpu.json
  • run the application and download the ml model
  • click Predict All

Get an error:

[13:56:21 ERR] Unable to get prediction.
System.Exception: Unable to initialize ml model
---> System.Exception: Unable to create docker container: invalid id Error response from daemon: Unknown runtime specified nvidia
   at RescuerLaApp.Models.Docker.Docker.CreateContainer(IDockerImage image) in /home/gosha20777/files/projects/lacmus-app/Models/Docker/Docker.cs:line 168
   at RescuerLaApp.Models.ML.MLModel.Init() in /home/gosha20777/files/projects/lacmus-app/Models/ML/MLModel.cs:line 44
   --- End of inner exception stack trace ---
   at RescuerLaApp.Models.ML.MLModel.Init() in /home/gosha20777/files/projects/lacmus-app/Models/ML/MLModel.cs:line 65
   at RescuerLaApp.ViewModels.MainWindowViewModel.PredictAll() in /home/gosha20777/files/projects/lacmus-app/ViewModels/MainWindowViewModel.cs:line 404

Add program settings window

The following settings are required

  • configuration settings of the ml model
    • ml model configuration
    • ml model manage (download/install/remove versions)
    • ml model repositories configuration
  • color scheme settings
  • interface language settings

Add loger

Add the logger with file and console handlers instad of Console.Writeline() method.

Beautiful window about the program

Currently, aboutiinformation is only displayed using the messagebox window. Lets make it more nice!

Avalonia ui added svg support. We can make the application information window more similar to what it looks like on Mac OS / ubuntu / Windows.
We can also add a donate button;-)

Developer documentation wiki update

Update developer documentation and bring it up to date (in Russian).
The Page link
Add the following sections to the page:

  • building and dependenses
  • class diagram (after refactoring)
  • how to contribute

Maybe something esle...

Upgrade TargetFrameworks to netcoreapp3.1

Hello!

We can upgrade TargetFrameworks to netcoreapp3.1?

In addition, it would be better if everything except a few files (.gitignore, CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE, README.md, RescuerLaApp.sln, mk-release.sh, nuget.config) was in the src / source folder for clarity :)

GPU and CPU are poorly utilized.

When the program is running, the gru or cpu are utilized jerkily - (0 - 100%).
This is due to the fact that during the loading of data and the formation of the request, the resources brighten.

It is necessary to analyze 2 facts

  1. How forte byte array as base64 strings affects performance.
  2. It is likely to load the photo into memory asynchronously until it is sent to the neural network for processing.

image

Remove user authorization!

Open source should be free! To hell with passwords and restrictions.

P.s. Authorization was introduced first at the request of Lisa Alert. However, then after much persuasion and explanation, we convinced them that there was no point in authorization.

Add wizard view

Users need a simpler way to manage and use the application.

I propose to make a wizard for detecting objects according to what Windows OS and its method of installing programs use for us.

The master plans 3 steps.

  1. Set input data.
  2. Set the place where to save the processed data.
  3. Configure the neural network model.

After that a status bar should be displayed and some statistics of the prediction process should be written.

At the end, export the final statistics and offer to close the window or repeat the operation.

This window should work on top of the main window and duplicate its functionality. The user is free at any time to close the wizard window and continue working in the main window.

Below is a diagram of how this might look.
photo_2020-03-02_21-31-11

Beautiful photo metadata

Currently, metadata is only displayed using the messagebox window. However, it is necessary:

  • make a friendlier interface
  • put this code in a separate vm
  • add the function "copy coordinates to the clipboard" so that later they can be pasted into Google maps for example
  • add a tabular view for this data

Add function "Report image processing result"

It is necessary to automate the collection of false positives and people not found in the lacmus photo storage.

It will be a plus to give the opportunity to mark up directly in the application.


Нужно автоматизировать сбор ложных срабатываний и не найденных людей в хранилище лакмуса.

Будет плюсом дать возможность размечать прямо в приложении.

Predict This function is not worked

  • run the application
  • upload a photo
  • select photo
  • select menu Image -> Predict This
    Search for an object in the photo does not occur. In the log - no mention of the beginning of the prediction.

User documentation wiki

Add user documentation to the wiki of the Lacmus project in Russian.

Добавить документацию следующей структуры

  • заглавная страница - краткое описание приложения и его компонент. Снимки экрана ссылки на подразделы ссылки на донат нам на хлебушек и пивас.
    • системные требования (готово)
    • процедура установки - пошаговая инструкция установки приложения на поддерживаемые платформы: Linux (debian based), OS X, `Windows (отдельно для Windows 10 pro, (с использованием docker desktop) и для Windows 10/8/7 с использованием docker tools)
    • обзор интерфейса - документация по использованию
    • информация о том как обновить ПО
    • информация о том как помочь проекту
      • как отправить bug report
      • как отправить нам данные
      • информация как задонатить в проект

Примечание: будет здорово везти документацию в стиле вопрос - ответ подобно тому как это сделано во freeBSD

Wizard: add bound boxes to output images

It doesn’t hurt to add parameters of format-modifying output files:

  • Generate XML.
  • Overlay frames indicating areas of detection on photographs.
  • Cut detection zones as small images (for example, 500x500 pixels).

Невозможно посмотреть обработанные фотографии

Действия:

  • Запустить Wizard, пройти все шаги. На одном из шагов выбрать место для сохранения фото
  • Закрыть приложение и запустить заново
  • Выбрать меню File - Import all from XML..., выбрать папку, в которых ранее сохранились фото

Фото загрузились, но отметки о найденных людях на фото не отображаются.
Включение/выключение кнопки Border ничего не изменяет

Code refactoring

It is necessary to separate the logic of some parts of the application and refactor the application code. Here are the key issues in the code:

  • The MainViewModel.cs class is overloaded with logic. It is necessary to divide this class into several classes and transfer the logic to other classes.
  • it is necessary to remove the logic of loading the neural network model from the Docker class and share its responsibilities
  • It is necessary to process the class of the neural model and implement its configuration using the configuration file (for example, which version to use, cpu, gpu how to call the neural network model using docker locally or using a remote server)
  • Rewrite code as recommended by ReactiveUI
  • Identify other defects and fix them.

The main goal of refactoring is to provide a higher level of modularity of the application and allow you to quickly implement new functions and look for bugs.

Note: for a number of iconic points in the code refactoring, individual issues will be entered.

Good readme file

Add the following blocks to the readme file:

  • brief description of the application
  • screenshot
  • links to user documentation
  • links to development documentation
  • information on how to compile the application from source
  • release notes
  • license information

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.