CARVIEW |
Select Language
HTTP/2 200
date: Thu, 24 Jul 2025 15:09:32 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"0e18e0ca390c0ba86ec18761bf78a404"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=3H3tePOJHInFjqkr3HHt%2F3QSuFw5%2BkXeFV%2FpVAr%2BnqtK9AqV0zZsOG%2ByV%2BcEr0f3PXfMfsIMYyMHg8A8rasIW%2B18nZpiowoXyHSMefKP3ZTk1NWAaMrtVX%2Bn5AuCxHg%2FVJhI%2FITIG3GKntrXsNO0clQSApYf%2FRLsYbHaI5JGp%2B0HD3sS9PunpAFABUuS28ZzpU8AO1uUm6iup%2BexAdXE9uzFlRez2ZoFh%2FU45Xy1y6FxglLaK77ZbIHP53s6Jr4UgUqdaeAaHCuKgGEfTp2SGg%3D%3D--gN%2BI7tkwfmO3DqRQ--WkDZwFz%2BYjZbBJWddgjaRw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1364398174.1753369772; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 15:09:32 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 15:09:32 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: CCC0:30EE65:5D005:6C414:68824CAC
OpenCV GSoC 2020 Proposal · huningxin/opencv Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
forked from opencv/opencv
-
Notifications
You must be signed in to change notification settings - Fork 11
OpenCV GSoC 2020 Proposal
Ningxin Hu edited this page Mar 14, 2020
·
8 revisions
-
- Description: Through GSoC 2019 project Improve the performance of JavaScript version of OpenCV (OpenCV.js), the performance of some kernels, e.g. threshold, are improved significantly by applying WebAssembly (WASM) SIMD intrinsics and WebWorker/SharedArrayBuffer threads. However as WASM SIMD spec was still under active development in 2019, there were some remaining issues that include low performance for some kernels, e.g. cvtColor and resize, and lack of 64bit intrinsics support. And due to limited GSoC duration, only 3 kernels were tested and optimized specifically. With WASM SIMD spec will be in stable in 2020, it would be useful to improve the WASM SIMD optimization of OpenCV.js by fixing the remaining issues and targeting more kernels.
-
Expected Outcomes:
- Implement 64bit intrinsics
- Improve the performance of cvtColor and resize kernels
- Refactory the js perf test framework for better code reuse
- Add more perf tests for kernels of imgproc, dnn and objectdetect modules
- Fix any potential perf issues due to new perf tests
- Create sample code of OpenCV.js loader that can detect browser features and load according OpenCV.js build, e.g. SIMD-enabled or SIMD-disabled.
- Resources:
- Skills Required: C++, JavaScript, HTML, WebAssembly, performance optimization, multi-threading and SIMD. Fluent in written English.
- Mentors: Vitaly Tuzov, Ningxin Hu
- Difficulty: Medium to Hard
-
- Description: OpenCV.js has JavaScript API of dnn module that allows web apps to do deep learning model inference in browser. However, except a face identification tutorial, there are lack of comprehensive tutorials about the deployment and inference of models in different formats, for promising usages like image classification and object detection with interactive web content like HTML5 video and WebRTC video streams.
-
Expected Outcomes:
- Develop comprehensive tutorials about the end-to-end deployment and inference of deep learning models on the Web with OpenCV.js. The model formats include ONNX, TensorFlow, Caffe, Darknet and Pytorch.
- Develop reusable sample code and helper functions for processing visual contents on Web including image, video (HTML5 video) and camera capture (WebRTC video stream) with dnn JS API.
- Develop interactive samples for the deep learning usages including image classification, object detection, segmentation, pose estimation and image processing.
- Resources:
- Skills Required: C++, JavaScript, HTML, image, canvas, video, WebRTC and experience with deep neural networks. Fluent in written English.
- Possible Mentors: Ningxin Hu
- Difficulty: Medium
-
- Description: Today's OpenCV.js compiles kernels into WebAssembly format, so Web browsers can execute them on CPU efficiently. With the recent development of WebGPU and Web Shading Language(WSL), Web browser is adding the capability to run GPU compute shader for general purpose computing. Some web-based frameworks, like TensorFlow.js, are adopting WebGPU support for better performance. OpenCV has sophisticated GPU backends include Cuda, OpenCL, Vulkan and Halide. It would be useful to start prototyping OpenCV.js GPU backend with WebGPU by investigating different solutions.
-
Expected Outcomes:
- Create a prototype of OpenCV.js GPU backend with WebGPU. Explore the possible solutions include (but not limited):
- Translating Vulkan compute shader (SPIR-V) of OpenCV.js Vulkan backend to WSL and execute by WebGPU API.
- Supporting WebGPU in Halide, so the OpenCV.js Halide backend can generate WSL for WebGPU execution.
- Create a prototype of OpenCV.js I/O module with WebGPU support for more efficient buffer sharing between video/image and OpenCV.js WebGPU kernels.
- Develop a benchmark to compare OpenCV.js CPU (WASM) and GPU (WebGPU) backends.
- Create a prototype of OpenCV.js GPU backend with WebGPU. Explore the possible solutions include (but not limited):
- Resources:
- Skills Required: C++, JavaScript, HTML, WebGL, WebGPU, OpenCL, Vulkan, Halide.
- Possible Mentors: (OpenCV GPU expert to be added), Ningxin Hu
- Difficulty: Hard
Clone this wiki locally
You can’t perform that action at this time.