Home Page > > Details

COMP3419 Assignment, Multimedia Assignment,Help With Python Course Assignment,Python Programming AssignmentDebug Prolog| C/C++ Programming

Graphics and Multimedia
Assignment Option 1
(Semester 2, 2019)
Option 1: Multimedia Computing (MC)
1 Key Information
• The mark of "COMP3419 Assignment Option 1: Multimedia Computing (MC)" will be
given as two parts, namely the canvas submission and the live demonstration:
– Canvas Submission [Due Time] before 23:59 Sunday of Week 11 (2019-10-27).
– Live Demonstration [Demo Time] timetable-allocated lab session on Week 12 (2019-
10-28).
• This individual assignment is worth 18% of your final assessment. For this Option 1, there
are three tasks to be completed, which are:
– Task A: Motion Estimation and Visualization (6%)
– Task B: Digital Video Processing (4%)
– Task C: 3D Animation Scene (8%)
• Sample Data can be downloaded from the assessment information page on Canvas, which are
monkey_TaskA.mov required for Task A and monkey_TaskB.mov required for Task B.
• Submission Deliverables: You are asked to create a zip file of all deliverables, including the
video outputs produced (Task A and B), texture images (Task C), technical report (Task A, B
and C) and the source code (Task A, B and C). There should be three folders (Task A, Task
B and Task C) in your zip file submitted, and all these deliverables (except for the technical
report) should be divided and saved into these three folders accordingly. Within each task
folder, a README txt file (to describe the steps/instructions regarding how to get your source
code running to derive the expected output) is suggested if you find it helpful for the marker to
get familiar with your submission.
• Your assignment will only be marked if all deliverables can be accessed from the Canvas
System, and they can be runnable from a lab machine. Once plagiarism detected by the
Canvas system, the student will receive no mark immediately, as well as other related penalties
from university.
2 General Marking Policy 3
2 General Marking Policy
Demonstration Rules: During the demonstration, students may be asked to provide tutor with
explanations on their solutions if necessary. If you can not finish all these requirements below, you
could provide a live demo for the workable parts to seek for some partial marks awarded.
Late Submission & Demonstration Policy:
• For the late submission cases, penalties will be assigned according to the university wide late
penalties for assignment Clause 7A of the Assessment Procedures.
• Late demonstration will not be allowed for this assignment. For students being absent for the
on-site live demonstration, tutors would still mark their zip file submitted to Canvas with a
penalty of 5 marks received.
Special Consideration and Arrangements: While you are studying, there may be circumstances
or essential commitments that impact your academic performance. Our special consideration and
special arrangements process is there to support you in these situations. More information on how to
lodge the special consideration application, can be found from this webpage.
3 Task A - Motion Estimation and Visualization[6%]
Task A requires students to capture and then visualize the motion of the object in a given video clip
(monkey_TaskA.mov).
Figure 1: Some example frames of the input video (monkey_TaskA.mov).
Figure 2: Motion estimated and visualized by block-matching algorithm.
The basic premise of motion capture is that in most cases, consecutive video frames will be similar
except for the changes induced by objects moving within the frames. The basic idea of motion
4
capture is to firstly define grids of block regions on two adjacent frames and then calculate the 2D
displacement vector between the matched blocks. To describe the block-matching algorithm step by
step:
1. Define a grid block of size K ×K, where K is preferred to be odd to make it easier to determine
the central coordinate of each grid block; Within the video data provided, each frame of size
H ×W can be divided into (H ×W)/K
2 grid blocks in total.
2. For convenience, we use Fi and Fi+1 to represent the i−th frame and the frame next to it.
3. For each grid block Bi at location (x, y) in frame Fi
, we need to search for its matched grid block in frame Fi+1 (the next frame), with the minimum sum squared distance
(SSD) calculated between Bi and B. The SSD can be computed as, (1)
where x, y, c indicate the height index, width index and color-channel index, respectively.
The displacement from Bi, can be represented by a 2D vector as (x0 −x, y0 −y). To
speed up the process of finding the matched block from Fi+1 for Bi
in Fi
, we can search the
neighbouring blocks (in Fi+1) of Bi within a certain radius only, rather than all candidate grid
blocks in Fi+1.
4. Represent the displacement vectors of frame Fi as a 3D matrix of size (H/K,W/K,2).
5. Visualise the displacement vectors computed for Fi and place this visualization over the frame
Fi
. You need to draw arrows to represent the extracted displacement vectors.
6. Repeat step 3-5 for all frames.
Figure 3: Illustration of the block-matching algorithm.
R Hint: We prepare a supporting function arrowdraw() for you to draw these arrows in Python,
which can be found within option1_appendix.py from Canvas.
4 Task B - Digital Video Processing [4%] 5
R Recommended Language: Python is recommended to be used for this task (you are welcome
to use any other language for this task if you are familiar with it).
R Deliverables: The deliverables for Task A should include all the files (source code and
output video produced) used to perform motion estimation and visualization, together with a
README file to describe how to run these files in order to derive your output scene. All the
corresponding files should be put in the "Task A" folder.
4 Task B - Digital Video Processing [4%]
Task B requires students to replace the background and the marionette of the sample video provided
(monkey_TaskB.mov).
Figure 4: Some example frames of the input video (monkey_TaskB.mov).
Expected Outcomes: Replace the blue background with another dynamic background, which can
be programmed animations or your own video found on Internet. In the new video, render your
own character to replace the moving monkey, whose behaviour should follow the behaviour of the
monkey, and simulate the gestures of the monkey as much as you could. The replaced character
should have at least five connected components, including a body, two arms and two legs.
There could be various approaches to solve the task of marionette replacement, however, the general
instructions can be given as follows:
1. The body of a monkey is labelled with five red markers, indicating its hands, feet and body.
2. Segment these red markers and the monkey first.
3. Use their spatial-temporal coordinates to track and represent the body motions.
4. It is a good practice to design a data structure to record the sequence of the captured body
motions.
5. Assign these motion sequences captured as the spatial-temporal coordinates of your new
character (and its parts).
R Hint: Some morphological operations might be needed to enhance the segmentation of the red
markers.
R Recommended Language: Python is recommended to be used for this task (you are welcome
to use any other language for this task if you are familiar with it).
6
R Deliverables: The deliverables for Task B should include all the files (source code and output
video produced) used to complete the background and marionette replacement, together with a
README file to describe how to run these files in order to derive your output scene. All the
corresponding files should be put in the "Task B" folder.
5 Task C - 3D Animation Scene [8%]
Task C requires students to program an interactive 3D animation scene with 3D rendering techniques
applied. Your 3D animation scene should include the following scenarios:
• After clicking mouse at (x, y) on the screen, shoot a 3D ball with a random texture. This
texture should be randomly loaded from your texture pool and the number of the images from
your texture pool should not exceed 10. You can feel free to find your preferred images from
Internet to build your own customized texture pool. New balls can be shot into the screen
while the previous balls are travelling.
• The space is constrained by 6 walls (left, right, ceiling, floor, the wall far ahead facing the
screen and the wall where the camera is placed).
• Any ball shot by clicking mouse flies away from the screen along the Z axis (the direction that
moving away from the camera) with a random direction according to the XY plane. It means
the balls does not go straight ahead, but instead are shot away in a random direction.
• When the ball touches any of the wall, it bounces back and its new direction is re-computed
based on its previous direction.
• The effects caused by gravity and friction should be modeled appropriately through the entire
process.
• The potential energy (speed and height) of the balls should decay, according to the travelling
time as well as the number of bounces, therefore they will fall down to the ground eventually.
• You program should be able to resolve the collision between the moving balls. You do not
have to follow the exact physics equation of elastic collision and momentum conservation
principle, but the collision should be modeled smoothly.
R Hint: Please note that it might be easier if you use object-oriented programming skill to model
the ball object as a class and define its class contents carefully.
R Recommended Language: Processing is recommended to be used for this task (you are
welcome to use any other language for this task if you are familiar with it).
R Deliverables: The deliverables for Task C should include all the files (source code and texture
images) used to generate the 3D scene, together with a README file to describe how to run
these files in order to derive your output scene. All the corresponding files should be put in the
"Task C" folder.
6 Technical Report 7
Figure 5: An easy example of Task C.
6 Technical Report
The report should record the details of these tasks completed. It should be 5 - 10 pages, maximum
15 pages (single column, 1.5 line spacing, Word or PDF). Tables and figures can help you present
your ideas clearly. For each task above, there will be a different topic to be focused on and be
demonstrated in this technical report:
• The topic of Task A is about the efforts paid in increasing the accuracy and efficiency of
your block-matching algorithm implemented. For example, hyper-parameter K could be
considered as a trade-off between accuracy and efficiency. This part of the report could be
presented as a set of experiments over these different implementation details, and their results
might be seen as a guidance toward the final implementation of the block-matching algorithm.
• The topic of Task B is regarding your own method designed for achieving the marionette
replacement and how did you address the potential issues met during the development.
• The topic of Task C should focus on the final effects reached. For this request, you can
simply use screenshots with well-written image captions, to explain what your algorithm
would react under different cases (specified as the seven bullet points in the section of Task C),
such as when bouncing with other balls, when touching the walls and etc.
COMP3419 (Semester 2, 2019)

Contact Us - Email:99515681@qq.com    WeChat:codinghelp
Programming Assignment Help!