Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New arch devel #32

Closed
wants to merge 15 commits into from
Closed

Conversation

JsonSadler
Copy link
Contributor

Hi,

I have designed the new architecture in which processor's concept is separated into an API and a CORE, both running in a container which actually represents the "processor"'s concept (now runs only on x86 using OpenVino, other platforms should be added). Dashboard is separated based on branch of separate_components.

Please see how the code works, and let me know where the architecture may improve.

Next, I am going to write support for all other platforms, and then I will try to merge #17 into my branch.

Also thanks @emma-w-dev , @mats-claassen and @mhejrati for their help.

Maybe it is a good idea to make a branch for the new-architecture development and remove/merge extra branches into it so we can test all the changes afterwards.

Instructions:
(I suppose you already have the image for frontend)

./download_openvino_model.sh docker build -f frontend.Dockerfile -t "neuralet/smart-social-distancing:latest-frontend" . docker build -f x86-openvino.Dockerfile -t "neuralet/smart-social-distancing:latest-x86_64_openvino" . docker run -it -p 8002:8002 -v "$PWD/data":/repo/data neuralet/smart-social-distancing:latest-run-frontend docker run -it -p 8001:8001 -v "$PWD/data":/repo/data neuralet/smart-social-distancing:latest-x86_64_openvino
You can see the dashboard on http://127.0.0.1:8002 - not showing anything.

Now open your browser and send this request with entering it in the address bar:
http://127.0.0.1:8001/process-video-cfg
Now refresh your dashboard and you see the video being processed and played.
send this to stop processing:
http://127.0.0.1:8001/stop-process-video

  • note that this does not stop the part of stream already created on the server, so you may continue watching the output. This is a TODO.
    and send this to restart the engine - not starting the processing but just restarts it, usefull when you have changed the config for example, let's say the video path (online, without stopping the dockers):
    http://127.0.0.1:8001/restart-engine

I appreciate your feedback.

undefined-references and others added 11 commits June 20, 2020 15:24
…i.Dockerfile, as well as x86-openvino.Dockerfile - IP address of api server [processor] in config-frontend.ini should be carefully resolved. IP and port should be reachable from where the dashboard is runnning - e.g. if you are forwarding local ports on your server, proper ports also should be forwarded for the api, as it currently looks for 0.0.0.0:8003 from the user's browser ... I also changed a few other things including yarn's timeout and som dockerfile modifications to avoid multiple copies of files related to frontend, it was messing up the dockers if one did not want to build all related dockers [I added scripts for building and running, a good idea is to add them to a docker compose or sth.
New arch working, separate UI, API, and Engine.
…d problems using openvino so moved the _serve out of thread. Let's see when this will cause problems. Added some logic, merged back all the files to the same dockerfile, and made this huge commit. See the diff. It is now working with openvino's dockerfile, and you have to manually send get requests to api to make it work.
result = self._result_queue.get()
return result

@app.get("/stop-process-video")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have implemented get-config and set-config methods in my new-arch branch, I suggest to merge our codes first and then send a PR on the main repo. @JsonSadler

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!! I just made it undefined-references#2 and resolved the conflicts, assuming you were using your amd64-usbtpu config file, hope I have not messed up anything in there. Please review and make the PR.

@JsonSadler
Copy link
Contributor Author

Okay I close this PR too as I made lots of fixes and made another PR to @emma-w-dev , merged the work there and she will make the final PR after she is done with her tests.

@JsonSadler JsonSadler closed this Jul 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants