Featured Video
Our most popular and informative content
Featured
Tutorial
AI & Deep Learning
Deep Learning for Machine Vision: Complete Implementation Guide
A comprehensive walkthrough of implementing deep learning algorithms for defect detection in manufacturing environments, with practical code examples and real-world case studies.
PRESENTER
Dr. Emily Richardson
Director of AI Research
Watch Now
Deep Learning for Machine Vision: Complete Implementation Guide
Dr. Emily Richardson
Director of AI Research
Your browser does not support the video tag.
Download Resources
Download Resources
Some resources require login to download
Download All (ZIP)
Code Samples & Implementation Guide
Complete source code and step-by-step implementation guide for deep learning model training
25.4 MB
•
Python, Jupyter Notebook
Download
Presentation Slides
Detailed slides covering machine vision concepts and implementation details
Download
Sample Dataset
Training dataset with annotated images for model development
156 MB
•
1000+ Labeled Images
Login Required
Technical Documentation
API reference, configuration guide, and best practices documentation
Download
Latest Uploads
Sort by:
Newest First
Newest First
Oldest First
Most Viewed
Most Liked
PCB Inspection: Setting Up Your First Vision System
Learn how to configure and optimize machine vision systems for printed circuit board inspection with this step-by-step guide.
Michael Chen
Principal Vision Engineer
3D Laser Profiling: Advanced Measurement Techniques
Discover how to use laser profiling for precise 3D measurements in manufacturing quality control applications.
Dr. Sarah Williams
3D Imaging Specialist
Vision Software: Advanced Image Processing Filters
Master the use of specialized image processing filters to enhance detection capabilities in challenging inspection environments.
Alex Thompson
Software Development Manager
PCB Inspection: Setting Up Your First Vision System
Learn how to configure and optimize machine vision systems for printed circuit board inspection with this step-by-step guide.
3D Laser Profiling: Advanced Measurement Techniques
Discover how to use laser profiling for precise 3D measurements in manufacturing quality control applications.
Vision Software: Advanced Image Processing Filters
Master the use of specialized image processing filters to enhance detection capabilities in challenging inspection environments.
Load More Videos
Introduction to Neural Networks for Vision Applications
Lighting Techniques for Optimal Machine Vision Results
Integrating Vision Systems with Robotic Automation
Choosing the Right Lens for Your Vision Application
Browse by Category
Find exactly what you need with our organized video collections
Tutorials & How-tos
Step-by-step guides to master machine vision techniques
Getting Started with Machine Vision
Optimizing Camera Settings for Inspection
Basic Image Processing Techniques
View All Tutorials
Product Demonstrations
See our latest vision technologies in action
Next-Gen Smart Camera Series Overview
3D Profiling System Live Demo
Vision Software 5.0 New Features
View All Product Demos
Customer Case Studies
Real-world applications and success stories
Automotive Parts Inspection Automation
Pharmaceutical Quality Control Solutions
Electronics Manufacturing Defect Detection
View All Case Studies
Beginner's Guide to Machine Vision
8 videos
A comprehensive introduction to machine vision technology and applications for newcomers to the field.
7:15
1. Introduction to Machine Vision Concepts
Understanding the fundamentals and key components
12:30
2. Choosing the Right Camera for Your Application
Camera types, resolutions, and specifications explained
15:45
3. Lighting Fundamentals for Vision Systems
How proper lighting impacts inspection quality
View Playlist
Deep Learning for Vision Applications
6 videos
Learn how to implement deep learning algorithms for advanced inspection and classification tasks.
18:20
1. Deep Learning vs. Traditional Machine Vision
Understanding the key differences and advantages
22:15
2. Preparing Training Data for Vision Models
Best practices for image collection and annotation
25:40
3. Training Your First Defect Detection Model
Step-by-step guide to model creation and training
View Playlist
Industry Applications
Discover how our vision solutions are transforming different industries
Automotive
Quality inspection and assembly verification
Surface Defect Detection for Auto Parts
Electronics
PCB inspection and component verification
Automated PCB Component Inspection
Pharmaceutical
Package verification and product inspection
Pharmaceutical Package Verification
Food & Beverage
Contamination detection and packaging inspection
Foreign Object Detection in Food Processing
Semiconductor
Wafer inspection and die verification
High-Speed Wafer Defect Detection
Medical & Life Sciences
Sample analysis and medical device inspection
Automated Cell Analysis with Machine Vision
Video Content Analytics
Insights into our most popular content categories and viewer engagement
Most Viewed Video Categories
Viewer Engagement by Industry
245+
Total Videos Available
48+ hrs
Total Content Duration
Stay Updated with New Videos
Subscribe to our video newsletter to receive notifications about new uploads, featured content, and exclusive tutorials
Subscribe
We respect your privacy. Unsubscribe at any time.
Frequently Asked Questions
Common questions about our video library and resources
How can I download video resources?
Most of our tutorial and educational videos include downloadable resources such as code samples, configuration files, or documentation. Look for the "Download Resources" button below each video. You'll need to be logged in to access these materials. Some premium content may require a subscription or purchase.
Can I request a specific video topic?
Yes! We welcome topic suggestions from our community. You can submit your video topic requests through our Contact form or by emailing video-requests@example.com. Our content team regularly reviews these suggestions and prioritizes topics based on community interest and relevance to current industry trends.
Are closed captions available for videos?
Yes, all our videos include English closed captions. Many videos also offer captions in additional languages including Spanish, German, French, Japanese, and Chinese. You can enable captions by clicking the CC button in the video player. If you need captions in a language that isn't currently available, please contact our support team.
How often are new videos added to the library?
We typically add 3-5 new videos each week, including tutorials, product demonstrations, and industry-specific content. Major product launches and special events may include additional video releases. Subscribe to our newsletter to receive notifications when new content is published.
Can I share these videos with my team or colleagues?
Yes, you can share our videos with colleagues by using the share button below each video. This provides options to share via email, link, or social media. For corporate training purposes, we offer special licensing options that allow unlimited internal sharing and integration with your LMS. Contact our sales team for more information.
onnl
Leading provider of advanced machine vision solutions for industrial applications since 1989. Our technology enables precision inspection and automation across diverse industries.
© 2025 onnl. All rights reserved.
if (videoPlayer) {
videoPlayer.addEventListener('loadedmetadata', () => {
duration.textContent = formatTime(videoPlayer.duration);
});
videoPlayer.addEventListener('timeupdate', () => {
const progress = (videoPlayer.currentTime / videoPlayer.duration) * 100;
progressBar.style.width = `${progress}%`;
currentTime.textContent = formatTime(videoPlayer.currentTime);
});
}
if (playPauseBtn) {
playPauseBtn.addEventListener('click', () => {
if (videoPlayer.paused) {
videoPlayer.play();
playPauseBtn.querySelector('i').classList.replace('ri-play-fill', 'ri-pause-fill');
} else {
videoPlayer.pause();
playPauseBtn.querySelector('i').classList.replace('ri-pause-fill', 'ri-play-fill');
}
});
}
if (progressBarContainer) {
progressBarContainer.addEventListener('click', (e) => {
const rect = progressBarContainer.getBoundingClientRect();
const pos = (e.clientX - rect.left) / rect.width;
videoPlayer.currentTime = pos * videoPlayer.duration;
});
}
if (volumeBtn) {
volumeBtn.addEventListener('click', () => {
videoPlayer.muted = !videoPlayer.muted;
volumeBtn.querySelector('i').classList.toggle('ri-volume-up-fill', !videoPlayer.muted);
volumeBtn.querySelector('i').classList.toggle('ri-volume-mute-fill', videoPlayer.muted);
volumeSlider.value = videoPlayer.muted ? 0 : videoPlayer.volume * 100;
});
}
if (volumeSlider) {
volumeSlider.addEventListener('input', () => {
const volume = volumeSlider.value / 100;
videoPlayer.volume = volume;
videoPlayer.muted = volume === 0;
volumeBtn.querySelector('i').classList.toggle('ri-volume-up-fill', !videoPlayer.muted);
volumeBtn.querySelector('i').classList.toggle('ri-volume-mute-fill', videoPlayer.muted);
});
}
if (fullscreenBtn) {
fullscreenBtn.addEventListener('click', () => {
if (!document.fullscreenElement) {
videoContainer.requestFullscreen();
} else {
document.exitFullscreen();
}
});
}
function formatTime(seconds) {
const minutes = Math.floor(seconds / 60);
seconds = Math.floor(seconds % 60);
return `${minutes}:${seconds.toString().padStart(2, '0')}`;
}
// Video player functionality
function initializeVideoPlayer(videoElement) {
const playPauseBtn = document.getElementById('playPauseBtn');
const progressBar = document.getElementById('progressBar');
const progressBarContainer = document.getElementById('progressBarContainer');
const currentTimeDisplay = document.getElementById('currentTime');
const durationDisplay = document.getElementById('duration');
const volumeBtn = document.getElementById('volumeBtn');
const volumeSlider = document.getElementById('volumeSlider');
const fullscreenBtn = document.getElementById('fullscreenBtn');
const videoContainer = document.getElementById('videoContainer');
const closeModalBtn = document.getElementById('closeVideoModal');
const modal = document.getElementById('videoModal');
const watchNowBtn = document.getElementById('watchNowBtn');
if(watchNowBtn) {
watchNowBtn.addEventListener('click', () => {
const videoModal = createVideoModal();
document.body.appendChild(videoModal);
document.body.style.overflow = 'hidden';
const videoPlayer = document.getElementById('videoPlayer');
if(videoPlayer) {
videoPlayer.play();
}
});
}
function createVideoModal() {
const modal = document.createElement('div');
modal.id = 'videoModal';
modal.className = 'fixed inset-0 bg-black/50 flex items-center justify-center z-50';
modal.innerHTML = `
Deep Learning for Machine Vision: Complete Implementation Guide
Dr. Emily Richardson
Director of AI Research
Your browser does not support the video tag.
`;
// Add event listeners for the modal
modal.addEventListener('click', (e) => {
if(e.target === modal) {
const videoPlayer = document.getElementById('videoPlayer');
if(videoPlayer) {
videoPlayer.pause();
}
document.body.removeChild(modal);
document.body.style.overflow = '';
}
});
const closeBtn = modal.querySelector('#closeVideoModal');
if(closeBtn) {
closeBtn.addEventListener('click', () => {
const videoPlayer = document.getElementById('videoPlayer');
if(videoPlayer) {
videoPlayer.pause();
}
document.body.removeChild(modal);
document.body.style.overflow = '';
});
}
return modal;
}
let isPlaying = false;
let currentProgress = 0;
let progressInterval;
// Initialize play/pause button
if (playPauseBtn) {
const playPauseIcon = playPauseBtn.querySelector('i');
playPauseIcon.classList.remove('ri-pause-fill');
playPauseIcon.classList.add('ri-play-fill');
playPauseBtn.addEventListener('click', function() {
const icon = this.querySelector('i');
if (isPlaying) {
clearInterval(progressInterval);
icon.classList.remove('ri-pause-fill');
icon.classList.add('ri-play-fill');
} else {
icon.classList.remove('ri-play-fill');
icon.classList.add('ri-pause-fill');
progressInterval = setInterval(updateProgress, 50);
}
isPlaying = !isPlaying;
});
}
// Handle video end
function handleVideoEnd() {
if (playPauseBtn) {
const icon = playPauseBtn.querySelector('i');
icon.classList.remove('ri-pause-fill');
icon.classList.add('ri-play-fill');
isPlaying = false;
clearInterval(progressInterval);
currentProgress = 0;
progressBar.style.width = '0%';
currentTimeDisplay.textContent = '0:00';
}
}
// Handle modal close
if (closeModalBtn && modal) {
closeModalBtn.addEventListener('click', function() {
if (videoElement) {
videoElement.pause();
}
modal.remove();
document.body.style.overflow = '';
});
// Close modal when clicking outside
modal.addEventListener('click', function(e) {
if (e.target === modal) {
if (videoElement) {
videoElement.pause();
}
modal.remove();
document.body.style.overflow = '';
}
});
// Prevent modal close when clicking modal content
modal.querySelector('.bg-white').addEventListener('click', function(e) {
e.stopPropagation();
});
// Handle ESC key press
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && modal) {
if (videoElement) {
videoElement.pause();
}
modal.remove();
document.body.style.overflow = '';
}
});
}
let isPlaying = false;
// Initialize play/pause button state
const playPauseIcon = playPauseBtn.querySelector('i');
playPauseIcon.classList.remove('ri-pause-fill');
playPauseIcon.classList.add('ri-play-fill');
// Add click event listener to play/pause button
playPauseBtn.addEventListener('click', function() {
if (isPlaying) {
videoElement.pause();
playPauseIcon.classList.remove('ri-pause-fill');
playPauseIcon.classList.add('ri-play-fill');
} else {
videoElement.play();
playPauseIcon.classList.remove('ri-play-fill');
playPauseIcon.classList.add('ri-pause-fill');
}
isPlaying = !isPlaying;
});
// Add video event listeners to update button state
videoElement.addEventListener('play', function() {
isPlaying = true;
playPauseIcon.classList.remove('ri-play-fill');
playPauseIcon.classList.add('ri-pause-fill');
});
videoElement.addEventListener('pause', function() {
isPlaying = false;
playPauseIcon.classList.remove('ri-pause-fill');
playPauseIcon.classList.add('ri-play-fill');
});
videoElement.addEventListener('ended', function() {
isPlaying = false;
playPauseIcon.classList.remove('ri-pause-fill');
playPauseIcon.classList.add('ri-play-fill');
});
function togglePlayPause() {
const icon = playPauseBtn.querySelector('i');
if (isPlaying) {
videoElement.pause();
icon.classList.remove('ri-pause-fill');
icon.classList.add('ri-play-fill');
} else {
videoElement.play();
icon.classList.remove('ri-play-fill');
icon.classList.add('ri-pause-fill');
}
isPlaying = !isPlaying;
}
function formatTime(seconds) {
const minutes = Math.floor(seconds / 60);
seconds = Math.floor(seconds % 60);
return `${minutes}:${seconds.toString().padStart(2, '0')}`;
}
function updateProgress() {
const progress = (videoElement.currentTime / videoElement.duration) * 100;
progressBar.style.width = `${progress}%`;
currentTimeDisplay.textContent = formatTime(videoElement.currentTime);
durationDisplay.textContent = formatTime(videoElement.duration);
}
function setProgressByClick(e) {
const rect = progressBarContainer.getBoundingClientRect();
const x = e.clientX - rect.left;
const percentage = (x / rect.width);
videoElement.currentTime = percentage * videoElement.duration;
}
function toggleVolume() {
const icon = volumeBtn.querySelector('i');
if (videoElement.muted) {
videoElement.muted = false;
icon.classList.remove('ri-volume-mute-fill');
icon.classList.add('ri-volume-up-fill');
volumeSlider.value = videoElement.volume * 100;
} else {
videoElement.muted = true;
icon.classList.remove('ri-volume-up-fill');
icon.classList.add('ri-volume-mute-fill');
volumeSlider.value = 0;
}
}
function handleVolumeChange() {
const value = volumeSlider.value;
videoElement.volume = value / 100;
const icon = volumeBtn.querySelector('i');
if (value == 0) {
icon.classList.remove('ri-volume-up-fill');
icon.classList.add('ri-volume-mute-fill');
} else {
icon.classList.remove('ri-volume-mute-fill');
icon.classList.add('ri-volume-up-fill');
}
}
function toggleFullscreen() {
if (!document.fullscreenElement) {
videoContainer.requestFullscreen();
} else {
document.exitFullscreen();
}
}
function updateProgress() {
if (currentProgress < 100) {
currentProgress += 0.5;
progressBar.style.width = `${currentProgress}%`;
// Update current time display
const totalSeconds = Math.floor((currentProgress / 100) * 1112); // 18:32 = 1112 seconds
const minutes = Math.floor(totalSeconds / 60);
const seconds = totalSeconds % 60;
currentTimeDisplay.textContent = `${minutes}:${seconds.toString().padStart(2, '0')}`;
if (currentProgress >= 100) {
handleVideoEnd();
}
}
}
function setProgressByClick(e) {
const rect = progressBarContainer.getBoundingClientRect();
const x = e.clientX - rect.left;
const percentage = (x / rect.width) * 100;
currentProgress = Math.min(Math.max(percentage, 0), 100);
progressBar.style.width = `${currentProgress}%`;
// Update time display for clicked position
const totalSeconds = Math.floor((currentProgress / 100) * 1112);
const minutes = Math.floor(totalSeconds / 60);
const seconds = totalSeconds % 60;
currentTimeDisplay.textContent = `${minutes}:${seconds.toString().padStart(2, '0')}`;
}
playPauseBtn.addEventListener('click', togglePlayPause);
progressBarContainer.addEventListener('click', setProgressByClick);
}
// Initialize video player when modal opens
const watchButtons = document.querySelectorAll('button:has(.ri-play-circle-line)');
watchButtons.forEach(button => {
button.addEventListener('click', () => {
setTimeout(initializeVideoPlayer, 100); // Wait for modal to be added to DOM
});
});
const videoCards = document.querySelectorAll('.video-card');
videoCards.forEach(card => {
card.addEventListener('mouseenter', function() {
this.classList.add('shadow-md');
});
card.addEventListener('mouseleave', function() {
this.classList.remove('shadow-md');
});
});
// Video thumbnails hover effect
const videoThumbnails = document.querySelectorAll('.video-thumbnail');
videoThumbnails.forEach(thumbnail => {
thumbnail.addEventListener('mouseenter', function() {
const playButton = this.querySelector('.play-button');
if (playButton) {
playButton.style.opacity = '1';
}
});
thumbnail.addEventListener('mouseleave', function() {
const playButton = this.querySelector('.play-button');
if (playButton) {
playButton.style.opacity = '0';
}
});
});
// Video Modal
const body = document.body;
function createVideoModal(title = "Deep Learning for Machine Vision: Complete Implementation Guide", presenter = "Dr. Emily Richardson", role = "Director of AI Research") {
const modal = document.createElement('div');
modal.id = 'videoModal';
modal.className = 'fixed inset-0 bg-black/50 flex items-center justify-center z-50';
modal.innerHTML = `
Your browser does not support the video tag.
`;
return modal;
}
function openVideoModal() {
const modal = createVideoModal();
body.appendChild(modal);
body.style.overflow = 'hidden';
const videoElement = document.getElementById('videoPlayer');
const closeBtn = document.getElementById('closeVideoModal');
const playPauseBtn = document.getElementById('playPauseBtn');
const progressBarContainer = document.getElementById('progressBarContainer');
const volumeBtn = document.getElementById('volumeBtn');
const volumeSlider = document.getElementById('volumeSlider');
const fullscreenBtn = document.getElementById('fullscreenBtn');
initializeVideoPlayer(videoElement);
videoElement.addEventListener('timeupdate', updateProgress);
playPauseBtn.addEventListener('click', togglePlayPause);
progressBarContainer.addEventListener('click', setProgressByClick);
volumeBtn.addEventListener('click', toggleVolume);
volumeSlider.addEventListener('input', handleVolumeChange);
fullscreenBtn.addEventListener('click', toggleFullscreen);
videoElement.addEventListener('loadedmetadata', () => {
durationDisplay.textContent = formatTime(videoElement.duration);
});
closeBtn.addEventListener('click', () => {
videoElement.pause();
body.removeChild(modal);
body.style.overflow = '';
});
modal.addEventListener('click', (e) => {
if (e.target === modal) {
videoElement.pause();
body.removeChild(modal);
body.style.overflow = '';
}
});
}
watchButtons.forEach(button => {
button.addEventListener('click', openVideoModal);
});
});