联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2019-10-29 09:45

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)


版权所有:留学生编程辅导网 2018 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。