Here's a reply I gave to the same question about the opencv project a
few weeks ago, note that getting data from a camera strictly speaking
isn't really a part of opencv core, but I think it's a useful exercise
in terms of understanding the threading issues and putting together a
nifty demo
Task #8 in this list would be to create a nice QtDemo that can go in our
examples folder and will build when the user asks for Qt/OpenCV support
JB
Just an update on the project from my ‘wish list’
Task #1 : have a lookm at opencv and how the threading backends are
implemented
Task #2: Get a good understanding of the HPX threading framework. Make
sure you appreciate the difference between kernel level threads and
lightweight HPX threads. Reading from a webcam or other device might
make low level calls that need to be done on a kernel thread rather than
an hpx worker/task thread.
Task #3: Implement an HPX backend to replace OpenMP/TBB in openCV and
test out standard opencv algorithms
Task #4: make sure that the threading implementation doesn’t violate the
terms of #2 and that hpc threads are not blocking in wait staes whilst
polling for camera/image data
Task #5: understand that HPX supports thread pools and we can create a
custom thread for any opencv camera poll work so that the problems I
just alluded to do not happen
Task #6: Together a simple Qt demo with a GUI that displays images in a
nice GUI window and overlays some image processing data etc. I have an
application I wrote for monitoring wildlife in my garden that can be
adapted for this - it tracks movement by doing pixel comparisons after
applying bunch of filters to the webcam images - when movement is
detected, it starts recording so I can see what happened whilst I was
asleep etc (infra-red cameras for night vision).
Task #7: Understand that Qt GUI threads can’t always be run on hpx task
threads and/or tht Qt guis are not generally thread safe and we may need
a special thread for GUI updates (or careful use of Qt synchronization),
so a thread pool dedicated for that might/would be a good idea.
Task #0 - learn as much as you can about all of the above before gsoc
starts and write a decent proposal “in your own words” that describes
how you plan to do the above (and insert extra tasks because I wrote
this fast and skipped lots of details).
Feel free to ask questions on IRC or here - I’ll update the task list
above if I think of more - and note that #1-#5 are the main essentials
and #6-#7 are bonus work for anyone who makes good progress on the first
tasks.
JB
On 03/06/2018 12:20 AM, Jakub Golinowski wrote:
Good afternoon,
I am Computer Science student at ETH Zürich in the 2nd semester of my
Master of Science Programme. I already have programming experience
from working in industry and on many academic projects throughout my
studies. However, I have never engaged in the development of the open
source software. Therefore, GSoC is the unparalleled opportunity for
me to fully emerge in the open source community and gain knowledge
necessary to continue open source contributions after the end of the
programme.
I am particularly interested in the HPX library because this is very
close to my research interests and my specialization at ETH Zürich,
which is Distributed Systems. I am familiar with distributed computing
paradigms and problems occurring while managing clusters of machines
both from theoretical courses, reading scientific papers and (most
recently) working on a large-scope semester project. The task was the
design, development and deployment of the network load-balancing
middleware, followed by the series of automated experiments with
synthetic traffic. Conducting experiments allowed me to hone my bash
scripting skills and exposed me to the problems connected with
managing cluster of 8 machines (including scheduling and collecting
data). The above described project was summarized in the report which
I link here (link to project report
<https://drive.google.com/file/d/1_jm8VKXuQ3jF6j7SBvJCH7IX6jKxcHvP/view?usp=sharing>).
In the current semester I will (among other projects) be working on
the project focused on reducing the network traffic in the data centre.
Another reason for my interest in HPX is that I have been on the IRC
channel and mailing list of the Ste||ar Group for a few weeks now and
I am really fascinated by the great atmosphere on the communication
channels. It is at the same time structured and allows for effective
information flow but is also cordial and makes me want to be part of
this community.
The projects of my interest are:
1. HPX Backend for OpenCV.
2. Script Language Bindings.
I am primarily interested in these projects because they both combine
two different technologies and I am convinced that connecting existing
and well-tested technologies is generally of great value. What is more
I am sure that developing backend for OpenCV or script language
bindings will contribute to further increase of the HPX's reach.
I have successfully built the HPX library on my machine (linux) and
went through examples. While building the HPX I discovered interesting
issue with newest boost. It is including the architecture tag in the
library names and consequently cmake is unable to locate the library
files. For now I switched to older version of boost and also created
PR to update documentation (#3214
<https://github.com/STEllAR-GROUP/hpx/pull/3214>)
Finally I would like to ask about suggestions and directions for my
next steps i.e. writing a detailed proposal, including scope of the
projects and detail schedule of development stages.
I have already seen a hint from Adrian Serio about Script Language
Bindings and making myself familiar with other scripting language
bindings is in my schedule:
Look at the work we have completed with other scripting languages
here (https://github.com/STEllAR-GROUP/hpx_script
<https://github.com/STEllAR-GROUP/hpx_script>)
If there were some suggestions about HPX backend for OpenCV I must
have missed them and I will simply start by going over implementation
of parallelism in OpenCV with the use of OpenMP.
Sincerely,
Jakub Golinowski
(IRC nick: jakub_golinowski)
_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users