Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - DFRICHARD/ComputerPointerController: This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes. · GitHub
Skip to content

Repository files navigation

Computer Pointer Controller

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Model data pipeline

Project Set Up and Installation

  • Device Specifications
Details
Operation SystemWindows 10 Pro
ProcessorIntel(R) Core(TM) i5-5200U CPU @ 2.20 GHz
OpenVINO™ Toolkit versionv2020.1
DeviceCPU
  • Install Intel® Distribution of OpenVINO™ toolkit. Guide to install on your platform HERE

  • Create a virtual environment to work in and activate it: python3 -m venv cpcenv

  • cd to environment path and active it cpcenv\Scripts\activate.bat

  • Install necessary libraries pip install -r requirements.txt

  • set the openvino environment variable. (Since i'm using openvino 2020.1, On my Windows PC it will be): C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\bin\setupvars.bat

  • Download models

     cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader\intel
    
    1. Face Detection Modelpython downloader.py --name face-detection-adas-binary-0001 -o <directory to save the model>
    2. Facial Landmarks Modelpython downloader.py --name landmarks-regression-retail-0009 -o <directory to save the model>
    3. Head Pose Estimation Modelpython downloader.py --name head-pose-estimation-adas-0001 -o <directory to save the model>
    4. Gaze Estimation Model python downloader.py --name gaze-estimation-adas-0002 -o <directory to save the model>

Demo

Project directory structure

Directory structure

Sample code to run the project
python3 app.py -fd <project directory>/intel/face-detection-adas-binary-0001/FP32-INT1/face-detection-adas-binary-0001.xml -hpe <project directory>/intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml -fld <project directory>/intel/landmarks-regression-retail-0009/FP32/landmarks-regression-retail-0009.xml -ge <project directory>/intel/gaze-estimation-adas-0002/FP32/gaze-estimation-adas-0002.xml -i <project directory>/bin/demo.mp4

Documentation

TODO: Include any documentation that users might need to better understand your project code. For instance, this is a good place to explain the command line arguments that your project supports.

App arguments

Benchmarks

TODO: Include the benchmark results of running your model on multiple hardwares and multiple model precisions. Your benchmarks can include: model loading time, input/output processing time, model inference time etc.

INT8FP16FP32
Total Model loading time (s)3.021.391.29
Inference time (ms)40.1542.1350.01

Results

  • The lower the precision, the faster the inferenece. Though there is no much difference in inference time for the various precisions, with FP16 precision inference time is higher than with INT8, and FP32 higher than FP16.
  • The lower the precision, the more model loading time. At INT8 precision models took more time to load compared to FP16 and FP32 models.

Stand Out Suggestions

This is where you can provide information about the stand out suggestions that you have attempted.

Edge Cases

When running the app using camera input I made sure I was under good lighting conditions in order to avoid input errors.

About

This is a computer vision application making use of a blend of several computer vision models. This app enables controlling a mouse pointer through the movement of the head and eyes.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages