'\n",
" html += '
'\n",
" html += 'Rank #1, Score:{:.2f} | '.format(scores[sorted_ix[0]])\n",
" html += 'Rank #2, Score:{:.2f} | '.format(scores[sorted_ix[1]])\n",
" html += 'Rank #3, Score:{:.2f} |
---|
'.format(scores[sorted_ix[2]])\n",
" for i, idx in enumerate(sorted_ix):\n",
" url = urls[sorted_ix[i]];\n",
" html += ''\n",
" html += ' '.format(url)\n",
" html += ' | '\n",
" html += '
'\n",
" return html\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-31T12:09:34.931704Z",
"iopub.status.busy": "2023-01-31T12:09:34.931492Z",
"iopub.status.idle": "2023-01-31T12:09:35.870948Z",
"shell.execute_reply": "2023-01-31T12:09:35.870288Z"
},
"id": "Ime5V4kDewh8"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://upload.wikimedia.org/wikipedia/commons/b/b0/YosriAirTerjun.gif\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 8192/1207385 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 65536/1207385 [>.............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 327680/1207385 [=======>......................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"1207385/1207385 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://upload.wikimedia.org/wikipedia/commons/e/e6/Guitar_solo_gif.gif\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 8192/1021622 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 65536/1021622 [>.............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 327680/1021622 [========>.....................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"1021622/1021622 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://upload.wikimedia.org/wikipedia/commons/3/30/2009-08-16-autodrift-by-RalfR-gif-by-wau.gif\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 8192/1506603 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 65536/1506603 [>.............................] - ETA: 1s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 327680/1506603 [=====>........................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"1351680/1506603 [=========================>....] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"1506603/1506603 [==============================] - 0s 0us/step\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"
"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# @title Load example videos and define text queries { display-mode: \"form\" }\n",
"\n",
"video_1_url = 'https://upload.wikimedia.org/wikipedia/commons/b/b0/YosriAirTerjun.gif' # @param {type:\"string\"}\n",
"video_2_url = 'https://upload.wikimedia.org/wikipedia/commons/e/e6/Guitar_solo_gif.gif' # @param {type:\"string\"}\n",
"video_3_url = 'https://upload.wikimedia.org/wikipedia/commons/3/30/2009-08-16-autodrift-by-RalfR-gif-by-wau.gif' # @param {type:\"string\"}\n",
"\n",
"video_1 = load_video(video_1_url)\n",
"video_2 = load_video(video_2_url)\n",
"video_3 = load_video(video_3_url)\n",
"all_videos = [video_1, video_2, video_3]\n",
"\n",
"query_1_video = 'waterfall' # @param {type:\"string\"}\n",
"query_2_video = 'playing guitar' # @param {type:\"string\"}\n",
"query_3_video = 'car drifting' # @param {type:\"string\"}\n",
"all_queries_video = [query_1_video, query_2_video, query_3_video]\n",
"all_videos_urls = [video_1_url, video_2_url, video_3_url]\n",
"display_video(all_videos_urls)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NCLKv_L_8Anc"
},
"source": [
"## Demonstrate text to video retrieval\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-31T12:09:35.874420Z",
"iopub.status.busy": "2023-01-31T12:09:35.873820Z",
"iopub.status.idle": "2023-01-31T12:09:43.085645Z",
"shell.execute_reply": "2023-01-31T12:09:43.084892Z"
},
"id": "9oX8ItFUjybi"
},
"outputs": [],
"source": [
"# Prepare video inputs.\n",
"videos_np = np.stack(all_videos, axis=0)\n",
"\n",
"# Prepare text input.\n",
"words_np = np.array(all_queries_video)\n",
"\n",
"# Generate the video and text embeddings.\n",
"video_embd, text_embd = generate_embeddings(hub_model, videos_np, words_np)\n",
"\n",
"# Scores between video and text is computed by dot products.\n",
"all_scores = np.dot(text_embd, tf.transpose(video_embd))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-31T12:09:43.089066Z",
"iopub.status.busy": "2023-01-31T12:09:43.088823Z",
"iopub.status.idle": "2023-01-31T12:09:43.094333Z",
"shell.execute_reply": "2023-01-31T12:09:43.093722Z"
},
"id": "d4AwYmODmE9Y"
},
"outputs": [
{
"data": {
"text/html": [
"Input query: waterfall
Results:
Rank #1, Score:4.71 | Rank #2, Score:-1.63 | Rank #3, Score:-4.17 |
---|
 |  |  |
Input query: playing guitar
Results:
Rank #1, Score:6.50 | Rank #2, Score:-1.79 | Rank #3, Score:-2.67 |
---|
 |  |  |
Input query: car drifting
Results:
Rank #1, Score:8.78 | Rank #2, Score:-1.07 | Rank #3, Score:-2.17 |
---|
 |  |  |
"
],
"text/plain": [
"
"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Display results.\n",
"html = ''\n",
"for i, words in enumerate(words_np):\n",
" html += display_query_and_results_video(words, all_videos_urls, all_scores[i, :])\n",
" html += '
'\n",
"display.HTML(html)"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "Text-to-Video retrieval with S3D MIL-NCE",
"private_outputs": true,
"provenance": [],
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.16"
}
},
"nbformat": 4,
"nbformat_minor": 0
}