Skip to content

Instantly share code, notes, and snippets.

@haojian
Last active February 29, 2016 05:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haojian/054902f6886de32c4ca8 to your computer and use it in GitHub Desktop.
Save haojian/054902f6886de32c4ca8 to your computer and use it in GitHub Desktop.
elastic_play
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"#### Problem definition:\n",
"\n",
"Given a video at duration: $ D $,\n",
"\n",
"By running a shot-detection algorithm, we get the information of n shots: $ v_1, v_2, v_3...v_n$ . (each shot length varies from 2 sec - 5 sec.)\n",
"\n",
"Based on the computer vision algorithm, we also have the score of each shot: $ s_1, s_2, s_3, ...s_n $ and the duration of each shot: $ d_1, d_2, .... d_n $.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From the prior research, people have reported the correlation between the playback rate and the understand rate:\n",
"\n",
"Understand rate is referenced to the ratio of people can well understand the content for certain speed.\n",
"\n",
"\n",
"for silent parts: $ u_s = -0.1 * (v_s -1 ) + 1 $ \n",
"\n",
"for non-silent parts: $ u_n = - (v_n - 1) + 1 $"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Our preliminary study shows users prefer a universal constant speed across the video.\n",
"\n",
"Based on this finding, we maintain a universal $v_s$ and $v_n$ for all the shots.\n",
"\n",
"Meanwhile, we want to maintain an equal understanding for the silent parts and non-silent parts. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we speed up the content, the actual score ${s_k}^*$ can be perceived by the user is:\n",
"\n",
"${s_k}^* = u_s * {s_k} $\n",
"\n",
"The actual length for each shot is:\n",
"\n",
"$ {d_k}^* = \\frac{{d\\_{ks}}}{v_s} + \\frac{{d\\_{kn}}}{v_n} $"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The final question is:\n",
"\n",
"How can we maximum the total scores of different shots under a certain time budget?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Solution description:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Run a dynamic programming over the different speedup case.\n",
"- $v_s$ range: 1x-6x; $v_n$ range: 1x-1.5x. \n",
"- speed up step count: 100.\n",
"- actual speedup case [$v_s, v_n$]: [1x, 1x], [1.5x, 1.05x], [2x, 1.1x].... [6x, 1.5x]\n",
" \n",
" \n",
"Maintain a hashmap of dynamic map for that 10 speedup case.\n",
"\n",
"\n",
"For any time budget, we iterate different speedup cases and find the optimal solution."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Change to the evaluation:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- how should we evaluate the different recall in the current case?\n",
"\n",
"- what's the ground truth strategy for different time budgets now?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment