From 569845291c7176ffef54a8c64a7d8b0315ec6be2 Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Tue, 13 Dec 2022 13:14:33 +0800 Subject: [PATCH] Update info --- examples/dataloader_example.py | 2 +- .../preprocess_video_appearance_example.py | 2 +- web/package-lock.json | 87 +++++++------------ web/src/components/Footer.js | 4 +- web/src/components/PageHome.js | 28 +++--- web/src/components/PlaceholderProfileImg.js | 18 ++-- web/src/components/SectionDatasetDetails.js | 72 +++++++-------- web/src/components/SectionTeam.js | 28 +++--- 8 files changed, 110 insertions(+), 131 deletions(-) diff --git a/examples/dataloader_example.py b/examples/dataloader_example.py index 8f64b96..447e630 100644 --- a/examples/dataloader_example.py +++ b/examples/dataloader_example.py @@ -113,7 +113,7 @@ def __init__(self, **kwargs): print(f"Loading appearance feature from {kwargs['appearance_feat']}") with h5py.File(kwargs["appearance_feat"], "r") as app_features_file: - app_video_ids = app_features_file["ids"][()] + app_video_ids = app_features_file["video_ids"][()] app_feat_id_to_index = {str(_id): i for i, _id in enumerate(app_video_ids)} print(f"Loading motion feature from {kwargs['motion_feat']}") diff --git a/examples/preprocess_video_appearance_example.py b/examples/preprocess_video_appearance_example.py index efdfbd3..954af41 100644 --- a/examples/preprocess_video_appearance_example.py +++ b/examples/preprocess_video_appearance_example.py @@ -227,7 +227,7 @@ def generate_h5(model_res101, model_res18, model_mobilev2, video_ids, outfile): dtype=np.float32, ) video_ids_dset = fd.create_dataset( - "ids", + "video_ids", shape=(video_total_num,), dtype=np.int, ) diff --git a/web/package-lock.json b/web/package-lock.json index 91c91af..6964d69 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -6835,9 +6835,9 @@ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "engines": { "node": ">=0.10" } @@ -13515,9 +13515,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -16245,9 +16245,9 @@ } }, "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "engines": { "node": ">= 12.13.0" } @@ -16508,25 +16508,14 @@ } }, "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dependencies": { - "brace-expansion": "^1.1.7" + "minimatch": "^3.0.5" }, "engines": { - "node": "*" + "node": ">=6.0.0" } }, "node_modules/redent": { @@ -17920,9 +17909,9 @@ } }, "node_modules/terser": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", - "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -24192,9 +24181,9 @@ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" }, "dedent": { "version": "0.7.0", @@ -29114,9 +29103,9 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" }, "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -30918,9 +30907,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" }, "supports-color": { "version": "7.2.0", @@ -31133,21 +31122,11 @@ } }, "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } + "minimatch": "^3.0.5" } }, "redent": { @@ -32169,9 +32148,9 @@ } }, "terser": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", - "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", diff --git a/web/src/components/Footer.js b/web/src/components/Footer.js index 849e853..4178a1e 100644 --- a/web/src/components/Footer.js +++ b/web/src/components/Footer.js @@ -3,10 +3,10 @@ import React from 'react' const Footer = () => { return ( ) diff --git a/web/src/components/PageHome.js b/web/src/components/PageHome.js index 7f574f3..6b29683 100644 --- a/web/src/components/PageHome.js +++ b/web/src/components/PageHome.js @@ -6,9 +6,9 @@ const PageHome = () => { return (
- +
- SUTD-TrafficQA + SUTD-TrafficQA

SUTD-TrafficQA Dataset

@@ -17,18 +17,18 @@ const PageHome = () => {
- +
-

Paper

+

Paper

-
- + { />
-

Example

+

Example

- exampleImg + exampleImg
diff --git a/web/src/components/PlaceholderProfileImg.js b/web/src/components/PlaceholderProfileImg.js index 5ee2858..d773d8a 100644 --- a/web/src/components/PlaceholderProfileImg.js +++ b/web/src/components/PlaceholderProfileImg.js @@ -3,15 +3,15 @@ import PropTypes from 'prop-types' const PlaceholderProfileImg = (props) => { return ( - Placeholder diff --git a/web/src/components/SectionDatasetDetails.js b/web/src/components/SectionDatasetDetails.js index 85706b6..3ad4919 100644 --- a/web/src/components/SectionDatasetDetails.js +++ b/web/src/components/SectionDatasetDetails.js @@ -3,7 +3,7 @@ import DownloadButton from "./DownloadButton" const SectionDatasetDetails = () => { return (
-
+

Annotations (Text QAs)

@@ -89,12 +89,12 @@ const SectionDatasetDetails = () => {
- Note: - In the dataset, we provide 4 options for every question. + Note: + In the dataset, we provide 4 options for every question. But for some Yes-or-No questions, we may use empty strings as padding in the annotation, so that you could treat every question as a 4-class classification problem. -

- For instance, such a question could be: "Did a vehicle violate the traffic light?", +

+ For instance, such a question could be: "Did a vehicle violate the traffic light?", the four options provided could be ["", "No", "", "Yes"] in random order.
    @@ -108,43 +108,43 @@ const SectionDatasetDetails = () => {

    Video Features are in HDF5 (.h5) format.

    1. Appearance Feature
    2. -
      - Note: - For appearance features, we uniformly sample 128 frames for each video and use the pre-trained networks to compute the appearance feature of each frame. - -
      +
      + Note: + For appearance features, we uniformly sample 128 frames for each video and use the pre-trained networks to compute the appearance feature of each frame.
        -
      • - trafficqa_resnet18_feat.h5 (2.6 GB) extracted using ResNet-18. -
      • -
      • - trafficqa_resnet101_feat.h5 (10.6 GB) extracted using ResNet-101. -
      • -
      • - trafficqa_mobilenetv2_feat.h5 (6.6 GB) extracted using MobileNetV2. -
      • - +
      • View preprocessing source code: preprocess_video_appearance_example.py
      +
      +
        +
      • + trafficqa_resnet18_feat.h5 (2.6 GB) extracted using ResNet-18. +
      • +
      • + trafficqa_resnet101_feat.h5 (10.6 GB) extracted using ResNet-101. +
      • +
      • + trafficqa_mobilenetv2_feat.h5 (6.6 GB) extracted using MobileNetV2. +
      • + +
    3. Motion Feature
    4. -
      - Note: - For motion features, we divide each video into 8 clips, and use the pre-trained ResNext-101 model to compute the motion features of each clip. - -
      +
      + Note: + For motion features, we divide each video into 8 clips, and use the pre-trained ResNext-101 model to compute the motion features of each clip. +
      +
        +
      • + trafficqa_motion_feat.h5 (668.2 MB) extracted using ResNeXt101. +
      • +
    - Note: + Note: To use the features stored in HDF5 file:
    • @@ -154,7 +154,7 @@ const SectionDatasetDetails = () => { Use the top-level keys to access the list of features: "resnet18_features", "resnet101_features", "mobilenetv2_features", and "resnext101_features".
    • - Use the top-level key "ids" to access a list of corresponding vid_ids in the exact same order as the list of features. + Use the top-level key "video_ids" or "ids" to access a list of corresponding vid_ids in the exact same order as the list of features.
    • View Example Data-loader: dataloader_example.py @@ -173,10 +173,10 @@ const SectionDatasetDetails = () => {

      Download Dataset

      Our dataset is completely open-source, you just need to fill in the request form and agree to our terms and conditions, download it now!

      - +
    - +
) diff --git a/web/src/components/SectionTeam.js b/web/src/components/SectionTeam.js index 995f671..0cd4853 100644 --- a/web/src/components/SectionTeam.js +++ b/web/src/components/SectionTeam.js @@ -2,20 +2,20 @@ import React from 'react' import PersonProfileSimple from "./PersonProfileSimple" const SectionTeam = () => { - return ( -
- - - - - - - - - - -
- ) + return ( +
+ + + + + + + + + + +
+ ) }