WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'allowLegacy2FA'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfls_settings' doesn't exist]
SELECT `name`, `value`, `autoload` FROM `6NZ7TlB_wfls_settings` WHERE `name` IN ('allow-xml-rpc')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfls_settings' doesn't exist]
SELECT `name`, `value`, `autoload` FROM `6NZ7TlB_wfls_settings` WHERE `name` IN ('enable-woocommerce-integration')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfls_settings' doesn't exist]
SELECT `name`, `value`, `autoload` FROM `6NZ7TlB_wfls_settings` WHERE `name` IN ('enable-shortcode')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfls_settings' doesn't exist]
SELECT `name`, `value`, `autoload` FROM `6NZ7TlB_wfls_settings` WHERE `name` IN ('enable-passkeys')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'apiKey'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'howGetIPs'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'detectProxyRecommendation'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'howGetIPs_trusted_proxies'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'howGetIPs_trusted_proxy_preset'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'ipResolutionList'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'whitelistPresets'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'whitelistedServices'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'whitelisted'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'ajaxWatcherDisabled_front'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'ajaxWatcherDisabled_admin'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfblocks7' doesn't exist]
SELECT * FROM `6NZ7TlB_wfblocks7` WHERE `IP` = X'00000000000000000000ffffd849d849' AND `type` = 7 AND (`expiration` = 0 OR `expiration` > UNIX_TIMESTAMP())

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'loginSec_enableSeparateTwoFactor'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'other_hideWPVersion'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'loginSec_disableAuthorScan'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'loginSec_disableApplicationPasswords'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'scanType'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'scan_exclude'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'scan_include_extra'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'liveTrafficEnabled'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'other_hideWPVersion'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'wordfenceCentralConnected'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'wordfenceI18n'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'auditLogMode'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name IN ('apiKey','isPaid','keyType','licenseType')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name IN ('keyExpDays','hasKeyConflict')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'auditLogMode'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'auditLogMode'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'allowLegacy2FA'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'wp_home_url'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'wp_site_url'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'needsGeoIPSync'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'lastPermissionsTemplateCheck'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
INSERT INTO 6NZ7TlB_wfconfig (name, val, autoload) values ('lastPermissionsTemplateCheck', '1793110591', 'yes') ON DUPLICATE KEY UPDATE val = '1793110591', autoload = 'yes'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'previousWflogsFileList'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
INSERT INTO 6NZ7TlB_wfconfig (name, val, autoload) values ('previousWflogsFileList', '[\"config.php\",\"config-synced.php\",\"attack-data.php\",\"config-livewaf.php\",\".htaccess\",\"config-transient.php\",\"rules.php\",\"ips.php\",\"geoip.mmdb\",\"template.php\"]', 'yes') ON DUPLICATE KEY UPDATE val = '[\"config.php\",\"config-synced.php\",\"attack-data.php\",\"config-livewaf.php\",\".htaccess\",\"config-transient.php\",\"rules.php\",\"ips.php\",\"geoip.mmdb\",\"template.php\"]', autoload = 'yes'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'apiKey'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'isPaid'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'whitelisted'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'whitelistedServices'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'howGetIPs'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'howGetIPs_trusted_proxies'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'howGetIPs_trusted_proxy_preset'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'ipResolutionList'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'detectProxyRecommendation'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'other_WFNet'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'serverIP'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'serverDNS'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
INSERT INTO 6NZ7TlB_wfconfig (name, val, autoload) values ('serverDNS', '1793110591;12265;190.92.174.87', 'yes') ON DUPLICATE KEY UPDATE val = '1793110591;12265;190.92.174.87', autoload = 'yes'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
select val from 6NZ7TlB_wfconfig where name='wordfence_chunked_recentServerAddr_header'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
select val from 6NZ7TlB_wfconfig where name='recentServerAddr'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
INSERT IGNORE INTO `6NZ7TlB_wfconfig` (`name`, `val`, `autoload`) VALUES ('recentServerAddr.lock', '1793110591', 'no')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'recentServerAddr.lock'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'blockCustomText'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'disableWAFIPBlocking'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'wordpressVersion'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
select val from 6NZ7TlB_wfconfig where name='wordfence_chunked_wordpressPluginVersions_header'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
select val from 6NZ7TlB_wfconfig where name='wordpressPluginVersions'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
select val from 6NZ7TlB_wfconfig where name='wordfence_chunked_wordpressThemeVersions_header'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
select val from 6NZ7TlB_wfconfig where name='wordpressThemeVersions'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'timeoffset_wf'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfhits' doesn't exist]
SELECT MAX(attackLogTime) FROM 6NZ7TlB_wfhits

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'firewallEnabled'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfls_settings' doesn't exist]
SELECT `name`, `value`, `autoload` FROM `6NZ7TlB_wfls_settings` WHERE `name` IN ('enable-shortcode')

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'other_WFNet'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'other_hideWPVersion'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wflivetraffichuman' doesn't exist]
SHOW FULL COLUMNS FROM `6NZ7TlB_wflivetraffichuman`

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wflivetraffichuman' doesn't exist]
SHOW FULL COLUMNS FROM `6NZ7TlB_wflivetraffichuman`

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'loginSec_disableAuthorScan'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'liveTraf_ignoreIPs'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'liveTraf_ignoreUA'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'firewallEnabled'

Surface Defect Detection – Genesys

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'other_hideWPVersion'

Home / Applications

Surface Defect Detection

Detect scratches, dents, cracks, stains, burrs, contamination, marks, coating defects, and surface irregularities — before they leave the line, not after a customer finds them.

Catching the flaw that a human inspector eventually misses

Surface defects rarely show up the same way twice — a scratch catches light differently than a dent, a stain behaves differently than contamination, and a coating defect might only be visible at a specific angle. Manual inspection catches most of it, most of the time, which is exactly the problem at production speed and volume.

We build surface defect detection around the specific defect and material, not a generic camera setup — the lighting geometry usually matters more than the camera resolution, and getting that wrong is the most common reason a defect detection system underperforms.

Defects we detect

Each defect type tends to call for a different lighting angle and image processing approach.

Scratches

Fine linear marks, usually best revealed with low-angle dark-field lighting.

Dents

Localized deformation, often picked up through shading and shape analysis.

Cracks

Fracture lines that need high resolution and consistent contrast to isolate reliably.

Stains

Discoloration or residue detected through color or contrast deviation from a reference.

Burrs

Raised edge material along cut or formed edges, checked with edge-profile lighting.

Contamination

Foreign particles or residue found via texture and color anomaly detection.

Marks

Print, handling, or process marks distinguished from acceptable surface variation.

Coating Defects

Uneven thickness, bubbles, or gaps in a coating, often needing angled or UV lighting.

Surface Irregularities

General texture or finish deviations flagged against a known-good reference surface.

How the setup changes with the defect

A quick sense of how lighting and camera choice shift depending on what needs to be caught — the full setup is tuned during commissioning.

Scratches & Burrs

Dark-field lighting at a grazing angle makes fine surface disruptions stand out against a flat background.

Dents & Cracks

Directional bar or dome lighting to create consistent shading across the deformation.

Stains & Marks

Diffused lighting with color or monochrome contrast analysis against a reference image.

Contamination

High-resolution area scan imaging paired with diffuse lighting to avoid false positives from glare.

Coating Defects

Angled or UV-responsive lighting to reveal thickness and coverage variation.

Real Data

Fewer defect escapes reported in sample deployments
0 %
Defect categories covered across projects
0 +
Industries represented in case studies below
0
Continuous inspection on deployed lines
0 /7

Case studies

Surface defect detection in the field

Catching edge burrs before final assembly

A metal stamping line was passing occasional burred edges through to assembly, caught only later by hand inspection. A dark-field lit area scan station was added directly after the stamping press to flag parts before they reached the next process step.

~40%

Fewer escapes to assembly

<150ms

Inspection cycle time

100%

Parts inspected in-line

Related products for this application

Have a surface defect that keeps slipping through?

Send us a sample part and the defect you’re trying to catch. Our application engineers will recommend the camera, lighting, and lens combination to detect it reliably.

Book an Application Consultation

Share your requirement, our expert will be in touch with you on same day

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'liveTrafficEnabled'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'liveTraf_ignoreIPs'

WordPress database error: [Table 'wp_j0sg2.6NZ7TlB_wfconfig' doesn't exist]
SELECT name, val, autoload FROM 6NZ7TlB_wfconfig WHERE name = 'liveTraf_ignoreUA'