CN103837135B - 工件检测方法及其系统 - Google Patents
工件检测方法及其系统 Download PDFInfo
- Publication number
- CN103837135B CN103837135B CN201210490612.4A CN201210490612A CN103837135B CN 103837135 B CN103837135 B CN 103837135B CN 201210490612 A CN201210490612 A CN 201210490612A CN 103837135 B CN103837135 B CN 103837135B
- Authority
- CN
- China
- Prior art keywords
- workpiece
- straight line
- grid
- marginal point
- overall
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000007689 inspection Methods 0.000 title claims abstract description 13
- 241000193935 Araneus diadematus Species 0.000 claims description 8
- 238000004088 simulation Methods 0.000 claims description 5
- 239000003086 colorant Substances 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 34
- 238000010586 diagram Methods 0.000 description 50
- 238000000034 method Methods 0.000 description 17
- VAYOSLLFUXYJDT-RDTXWAMCSA-N LSD Chemical compound data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwLjAnIGhlaWdodD0nMzAwLjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjMyLjksMjE3LjIgTCAyMDUuMCwyMDMuNScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMCBhdG9tLTAgYXRvbS0xJyBkPSdNIDIzMS41LDIwOS42IEwgMjExLjksMTk5LjknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIzIGF0b20tMjMgYXRvbS0wJyBkPSdNIDI1OC44LDE5OS45IEwgMjMyLjksMjE3LjInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEgYXRvbS0xIGF0b20tMicgZD0nTSAyMDUuMCwyMDMuNSBMIDIwMi45LDE3Mi40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yIGF0b20tMiBhdG9tLTMnIGQ9J00gMjAyLjksMTcyLjQgTCAxNzUuMCwxNTguNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTcgYXRvbS0yIGF0b20tMTgnIGQ9J00gMjAyLjksMTcyLjQgTCAyMjguOCwxNTUuMScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTcgYXRvbS0yIGF0b20tMTgnIGQ9J00gMjEwLjMsMTc1LjAgTCAyMjguNCwxNjIuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMyBhdG9tLTMgYXRvbS00JyBkPSdNIDE3NS4wLDE1OC43IEwgMTczLjAsMTI3LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI0IGF0b20tMyBhdG9tLTknIGQ9J00gMTc1LjAsMTU4LjcgTCAxNDkuMiwxNzYuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjQgYXRvbS0zIGF0b20tOScgZD0nTSAxNjcuNywxNTYuMSBMIDE0OS42LDE2OC4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC00IGF0b20tNCBhdG9tLTUnIGQ9J00gMTczLjAsMTI3LjYgTCAxNjQuMSwxMjMuMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNCBhdG9tLTQgYXRvbS01JyBkPSdNIDE2NC4xLDEyMy4yIEwgMTU1LjIsMTE4LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE2IGF0b20tNCBhdG9tLTE3JyBkPSdNIDE3My4wLDEyNy42IEwgMTk4LjksMTEwLjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI3IGF0b20tNCBhdG9tLTI0JyBkPSdNIDE3My4wLDEyNy42IEwgMTc0LjksMTA5LjUgTCAxNjguNywxMTAuMCBaJyBzdHlsZT0nZmlsbDojM0I0MTQzO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtNSBhdG9tLTUgYXRvbS02JyBkPSdNIDE0NC40LDEwMy4xIEwgMTQzLjcsOTIuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNSBhdG9tLTUgYXRvbS02JyBkPSdNIDE0My43LDkyLjkgTCAxNDMuMCw4Mi44JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC02IGF0b20tNSBhdG9tLTcnIGQ9J00gMTM1LjQsMTIwLjMgTCAxMjcuMywxMjUuNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNiBhdG9tLTUgYXRvbS03JyBkPSdNIDEyNy4zLDEyNS43IEwgMTE5LjIsMTMxLjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTcgYXRvbS03IGF0b20tOCcgZD0nTSAxMTkuMiwxMzEuMSBMIDEyMS4yLDE2Mi4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC04IGF0b20tOCBhdG9tLTknIGQ9J00gMTIxLjIsMTYyLjIgTCAxNDkuMiwxNzYuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtOSBhdG9tLTggYXRvbS0xMCcgZD0nTSAxMjEuMiwxNjIuMiBMIDkzLjYsMTc2LjkgTCA5Ny4xLDE4Mi4xIFonIHN0eWxlPSdmaWxsOiMzQjQxNDM7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCBhdG9tLTEwIGF0b20tMTEnIGQ9J00gOTIuMiwxNzkuNyBMIDkyLjksMTg5LjknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEwIGF0b20tMTAgYXRvbS0xMScgZD0nTSA5Mi45LDE4OS45IEwgOTMuNiwyMDAuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAgYXRvbS0xMCBhdG9tLTExJyBkPSdNIDk4LjUsMTc5LjMgTCA5OS4xLDE4OS41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCBhdG9tLTEwIGF0b20tMTEnIGQ9J00gOTkuMSwxODkuNSBMIDk5LjgsMTk5LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTExIGF0b20tMTAgYXRvbS0xMicgZD0nTSA5NS40LDE3OS41IEwgODYuNCwxNzUuMScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTEgYXRvbS0xMCBhdG9tLTEyJyBkPSdNIDg2LjQsMTc1LjEgTCA3Ny41LDE3MC43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMiBhdG9tLTEyIGF0b20tMTMnIGQ9J00gNTcuNywxNzIuMiBMIDQ5LjcsMTc3LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEyIGF0b20tMTIgYXRvbS0xMycgZD0nTSA0OS43LDE3Ny42IEwgNDEuNiwxODMuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTQgYXRvbS0xMiBhdG9tLTE1JyBkPSdNIDY2LjcsMTU1LjAgTCA2Ni4xLDE0NC44JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNCBhdG9tLTEyIGF0b20tMTUnIGQ9J00gNjYuMSwxNDQuOCBMIDY1LjQsMTM0LjcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEzIGF0b20tMTMgYXRvbS0xNCcgZD0nTSA0MS42LDE4My4wIEwgMTMuNiwxNjkuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTUgYXRvbS0xNSBhdG9tLTE2JyBkPSdNIDY1LjQsMTM0LjcgTCAzNy41LDEyMC45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNSBhdG9tLTE5IGF0b20tMTcnIGQ9J00gMjI2LjgsMTI0LjAgTCAxOTguOSwxMTAuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTggYXRvbS0xOCBhdG9tLTE5JyBkPSdNIDIyOC44LDE1NS4xIEwgMjI2LjgsMTI0LjAnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI2IGF0b20tMjIgYXRvbS0xOCcgZD0nTSAyNTYuNywxNjguOSBMIDIyOC44LDE1NS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOSBhdG9tLTE5IGF0b20tMjAnIGQ9J00gMjI2LjgsMTI0LjAgTCAyNTYuNywxMTUuNicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTkgYXRvbS0xOSBhdG9tLTIwJyBkPSdNIDIzMy4wLDEyOC44IEwgMjUzLjksMTIyLjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIwIGF0b20tMjAgYXRvbS0yMScgZD0nTSAyNTYuNywxMTUuNiBMIDI2Mi4xLDEyMy43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMCBhdG9tLTIwIGF0b20tMjEnIGQ9J00gMjYyLjEsMTIzLjcgTCAyNjcuNiwxMzEuOCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjEgYXRvbS0yMSBhdG9tLTIyJyBkPSdNIDI2Ni4zLDE1My44IEwgMjYxLjUsMTYxLjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIxIGF0b20tMjEgYXRvbS0yMicgZD0nTSAyNjEuNSwxNjEuMyBMIDI1Ni43LDE2OC45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMiBhdG9tLTIyIGF0b20tMjMnIGQ9J00gMjU2LjcsMTY4LjkgTCAyNTguOCwxOTkuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjIgYXRvbS0yMiBhdG9tLTIzJyBkPSdNIDI1MC44LDE3My45IEwgMjUyLjMsMTk1LjcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+Cjx0ZXh0IHg9JzE0MS4zJyB5PScxMjAuMScgY2xhc3M9J2F0b20tNScgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzQyODRGNCcgPk48L3RleHQ+Cjx0ZXh0IHg9JzkzLjcnIHk9JzIxNi44JyBjbGFzcz0nYXRvbS0xMScgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzYzLjcnIHk9JzE3Mi4wJyBjbGFzcz0nYXRvbS0xMicgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzQyODRGNCcgPk48L3RleHQ+Cjx0ZXh0IHg9JzI3MC4zJyB5PScxNDcuNycgY2xhc3M9J2F0b20tMjEnIHN0eWxlPSdmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiM0Mjg0RjQnID5OPC90ZXh0Pgo8dGV4dCB4PScyNzguOScgeT0nMTQ3LjcnIGNsYXNzPSdhdG9tLTIxJyBzdHlsZT0nZm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojNDI4NEY0JyA+SDwvdGV4dD4KPHRleHQgeD0nMTY3LjInIHk9JzEwMi44JyBjbGFzcz0nYXRvbS0yNCcgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzNCNDE0MycgPkg8L3RleHQ+Cjwvc3ZnPgo= data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NS4wJyBoZWlnaHQ9Jzg1LjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gNjMuOSw2MC4xIEwgNTYuMiw1Ni4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gNjMuNSw1OC4wIEwgNTguMSw1NS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMyBhdG9tLTIzIGF0b20tMCcgZD0nTSA3MS4xLDU1LjMgTCA2My45LDYwLjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEgYXRvbS0xIGF0b20tMicgZD0nTSA1Ni4yLDU2LjMgTCA1NS42LDQ3LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIgYXRvbS0yIGF0b20tMycgZD0nTSA1NS42LDQ3LjggTCA0Ny45LDQ0LjAnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE3IGF0b20tMiBhdG9tLTE4JyBkPSdNIDU1LjYsNDcuOCBMIDYyLjgsNDMuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTcgYXRvbS0yIGF0b20tMTgnIGQ9J00gNTcuNyw0OC41IEwgNjIuNyw0NS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0zIGF0b20tMyBhdG9tLTQnIGQ9J00gNDcuOSw0NC4wIEwgNDcuNCwzNS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNCBhdG9tLTMgYXRvbS05JyBkPSdNIDQ3LjksNDQuMCBMIDQwLjgsNDguNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjQgYXRvbS0zIGF0b20tOScgZD0nTSA0NS45LDQzLjIgTCA0MC45LDQ2LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTQgYXRvbS00IGF0b20tNScgZD0nTSA0Ny40LDM1LjQgTCA0NC41LDM0LjAnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTQgYXRvbS00IGF0b20tNScgZD0nTSA0NC41LDM0LjAgTCA0MS43LDMyLjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE2IGF0b20tNCBhdG9tLTE3JyBkPSdNIDQ3LjQsMzUuNCBMIDU0LjUsMzAuNicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjcgYXRvbS00IGF0b20tMjQnIGQ9J00gNDcuNCwzNS40IEwgNDcuOSwzMC4wIEwgNDYuMSwzMC4xIFonIHN0eWxlPSdmaWxsOiMzQjQxNDM7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8cGF0aCBjbGFzcz0nYm9uZC01IGF0b20tNSBhdG9tLTYnIGQ9J00gMzkuNSwyOS42IEwgMzkuMywyNi4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC01IGF0b20tNSBhdG9tLTYnIGQ9J00gMzkuMywyNi4zIEwgMzkuMSwyMy4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC02IGF0b20tNSBhdG9tLTcnIGQ9J00gMzcuNiwzMi45IEwgMzUuMSwzNC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC02IGF0b20tNSBhdG9tLTcnIGQ9J00gMzUuMSwzNC42IEwgMzIuNSwzNi40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC03IGF0b20tNyBhdG9tLTgnIGQ9J00gMzIuNSwzNi40IEwgMzMuMSw0NC45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC04IGF0b20tOCBhdG9tLTknIGQ9J00gMzMuMSw0NC45IEwgNDAuOCw0OC43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC05IGF0b20tOCBhdG9tLTEwJyBkPSdNIDMzLjEsNDQuOSBMIDI1LjQsNDkuMCBMIDI2LjQsNTAuNCBaJyBzdHlsZT0nZmlsbDojM0I0MTQzO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAgYXRvbS0xMCBhdG9tLTExJyBkPSdNIDI1LjEsNDkuOCBMIDI1LjMsNTMuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAgYXRvbS0xMCBhdG9tLTExJyBkPSdNIDI1LjMsNTMuMCBMIDI1LjUsNTYuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAgYXRvbS0xMCBhdG9tLTExJyBkPSdNIDI2LjgsNDkuNyBMIDI3LjAsNTIuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAgYXRvbS0xMCBhdG9tLTExJyBkPSdNIDI3LjAsNTIuOSBMIDI3LjIsNTYuMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTEgYXRvbS0xMCBhdG9tLTEyJyBkPSdNIDI1LjksNDkuNyBMIDIzLjEsNDguMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTEgYXRvbS0xMCBhdG9tLTEyJyBkPSdNIDIzLjEsNDguMyBMIDIwLjIsNDYuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTIgYXRvbS0xMiBhdG9tLTEzJyBkPSdNIDE2LjIsNDcuMyBMIDEzLjYsNDkuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTIgYXRvbS0xMiBhdG9tLTEzJyBkPSdNIDEzLjYsNDkuMCBMIDExLjEsNTAuNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTQgYXRvbS0xMiBhdG9tLTE1JyBkPSdNIDE4LjEsNDMuOSBMIDE3LjksNDAuNicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTQgYXRvbS0xMiBhdG9tLTE1JyBkPSdNIDE3LjksNDAuNiBMIDE3LjcsMzcuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTMgYXRvbS0xMyBhdG9tLTE0JyBkPSdNIDExLjEsNTAuNyBMIDMuNCw0Ni45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNSBhdG9tLTE1IGF0b20tMTYnIGQ9J00gMTcuNywzNy4zIEwgOS45LDMzLjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI1IGF0b20tMTkgYXRvbS0xNycgZD0nTSA2Mi4yLDM0LjQgTCA1NC41LDMwLjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE4IGF0b20tMTggYXRvbS0xOScgZD0nTSA2Mi44LDQzLjAgTCA2Mi4yLDM0LjQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI2IGF0b20tMjIgYXRvbS0xOCcgZD0nTSA3MC41LDQ2LjggTCA2Mi44LDQzLjAnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE5IGF0b20tMTkgYXRvbS0yMCcgZD0nTSA2Mi4yLDM0LjQgTCA3MC41LDMyLjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE5IGF0b20tMTkgYXRvbS0yMCcgZD0nTSA2My45LDM1LjcgTCA2OS43LDM0LjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIwIGF0b20tMjAgYXRvbS0yMScgZD0nTSA3MC41LDMyLjEgTCA3Mi4yLDM0LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIwIGF0b20tMjAgYXRvbS0yMScgZD0nTSA3Mi4yLDM0LjYgTCA3My45LDM3LjInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIxIGF0b20tMjEgYXRvbS0yMicgZD0nTSA3My4yLDQyLjQgTCA3MS45LDQ0LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIxIGF0b20tMjEgYXRvbS0yMicgZD0nTSA3MS45LDQ0LjYgTCA3MC41LDQ2LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIyIGF0b20tMjIgYXRvbS0yMycgZD0nTSA3MC41LDQ2LjggTCA3MS4xLDU1LjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIyIGF0b20tMjIgYXRvbS0yMycgZD0nTSA2OC45LDQ4LjIgTCA2OS4zLDU0LjInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+Cjx0ZXh0IHg9JzM3LjknIHk9JzM0LjYnIGNsYXNzPSdhdG9tLTUnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzQyODRGNCcgPk48L3RleHQ+Cjx0ZXh0IHg9JzI0LjcnIHk9JzYxLjMnIGNsYXNzPSdhdG9tLTExJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScxNi40JyB5PSc0OC45JyBjbGFzcz0nYXRvbS0xMicgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojNDI4NEY0JyA+TjwvdGV4dD4KPHRleHQgeD0nNzMuNScgeT0nNDIuMicgY2xhc3M9J2F0b20tMjEnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzQyODRGNCcgPk48L3RleHQ+Cjx0ZXh0IHg9Jzc3LjYnIHk9JzQyLjInIGNsYXNzPSdhdG9tLTIxJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiM0Mjg0RjQnID5IPC90ZXh0Pgo8dGV4dCB4PSc0NS4wJyB5PScyOS44JyBjbGFzcz0nYXRvbS0yNCcgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojM0I0MTQzJyA+SDwvdGV4dD4KPC9zdmc+Cg== C1=CC(C=2[C@H](N(C)C[C@@H](C=2)C(=O)N(CC)CC)C2)=C3C2=CNC3=C1 VAYOSLLFUXYJDT-RDTXWAMCSA-N 0.000 description 12
- 229950002454 Lysergide Drugs 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 10
- 238000003860 storage Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000005291 magnetic Effects 0.000 description 5
- 230000000875 corresponding Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 101700032951 SWM1 Proteins 0.000 description 1
- 230000001154 acute Effects 0.000 description 1
- 230000003044 adaptive Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- -1 device or device Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000003365 glass fiber Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 210000003702 immature single positive T cell Anatomy 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 101700056991 lsd2 Proteins 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
Abstract
本发明的实施方式总体上涉及检测,进一步本发明的实施方式涉及工件检测方法及其系统。为了在保证目标检测质量的同时降低直线检测的复杂度,从而提高检测的速度和效率。本发明创造性的提出了一种工件检测方案。具体而言,本发明提出了一种工件检测方法,包括:生成工件的检测区域的边缘图;将所述边缘图划分为多个网格;对网格中的边缘点进行局部方向拟合以获得所述网格中的边缘点的局部主方向;对所述多个网格的局部主方向进行聚类;以及对聚类后的边缘点进行全局直线拟合以便对所述工件进行定位。
Description
技术领域
[0001] 本发明的实施方式总体上涉及检测(detection),进一步本发明的实施方式涉及 工件检测(artifact detection)方法及其系统。
背景技术
[0002] 在计算机视觉和图像处理领域,边缘检测(edge detection)是指给定一幅图片, 从里面自动抽取出边缘的位置,往往生成一幅由边缘点构成的灰度图像(颜色深浅代表边 缘的强度)。边缘检测的挑战在于如何设计一个自适应的检测器,既能提取出真实的边缘 点,又能避免提取噪声导致的虚假边缘。边缘检测最经典和常用的方法是CANNY算子方 法(CANNY 算子方法的具体内容可以参见 http://en. wikipedia. org/wiki/Canny_edge_ detector)。还有一些现有技术提出对CANNY算子方法的改进。然而CANNY算子方法仅仅对 图像中的基本象素的边缘点(edge point)进行检测,并不能直接用于分辨图像中的形状。
[0003] 为了进一步分辨图像中的具体形状,在边缘检测的基础上,提出了直线检 测(line detection)的概念。在计算机视觉和图像处理领域,直线检测也有广泛的 应用。相比边缘检测,是更高一级的应用。对于任意直线的检测,一种常用的方法是 LSD算法(参见LSD:带有错误检测控制的快速线段检测器,LSD :A Fast Line Segment Detector with a False DetectionControl, IEEE Transactions on Pattern Analysis and Machinelntelligence? Author:Rafael Grompone von Gioi,Je ! re ! mie Jakubowicz,Jean-Michel Morel,and Gregory Randall,Volume:32,Issue:4,Page:722 - 732,以下简称LSD技术h然而,这种方法理论上虽然可以用来进行直线检测,但是计算量 相对较大,而且经常将一条直线检测成多条。
[0004] 直线检测的应用之一就是进行目标检测(object detection)。目标检测是指利用 物体的某种视觉特征,在图像或者视频中对物体进行检测与进行定位。目标检测所面临的 挑战之一就是如何在保证检测质量的同时提高检测效率,从而实现对物体的实时检测与定 位。
发明内容
[0005] 为了在保证目标检测质量的同时降低直线检测的复杂度,从而提高检测速度与效 率。本发明创造性的提出了一种工件检测方案。
[0006] 具体而言,本发明提出了一种工件检测方法,包括:生成工件的检测区域 (detection area)的边缘图,其中所述边缘图(edge map)包括边缘点;将所述边缘图划 分为多个网格;对网格中的边缘点进行局部方向拟合(localorientation fitting)以获 得所述网格中的边缘点的局部主方向(localdominant orientation);对所述多个网格的 局部主方向进行聚类(clustering);以及对聚类后的边缘点进行全局直线拟合(global straight linefitting)以便对所述工件进行定位。
[0007] 本发明还提出了一种工件检测系统,包括:生成装置,被配置为生成工件的检测区 域的边缘图,其中所述边缘图包括边缘点;划分装置,被配置为将所述边缘图划分为多个网 格;第一拟合装置,被配置为对网格中的边缘点进行局部方向拟合以获得所述网格中的边 缘点的局部主方向;聚类装置,被配置为对所述多个网格的局部主方向进行聚类;以及第 二拟合装置,被配置为对聚类后的边缘点进行全局直线拟合以便对所述工件进行定位。
[0008] 利用本发明可以对流水线上的工件(artifact)进行准确、实时定位,从而对定位 后的工件准确、快速的采取相应处理措施。
附图说明
[0009] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0010] 图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
[0011] 图2示出了按照本发明的一个实施例的工件检测方法流程图;
[0012] 图3示出了按照本发明的另一个实施例的工件检测方法流程图;
[0013] 图4A示出了按照本发明的一个实施例的工件示意图;
[0014] 图4B示出了按照本发明的一个实施例的工件的检测区域的示意图;
[0015] 图4C示出了按照本发明的一个实施例的工件边缘图的示意图;
[0016] 图4D示出了按照本发明的一个实施例的划分了网格的工件边缘图的示意图;
[0017] 图4E示出了按照本发明的一个实施例的拟合出的一个网格中的一条直线的示意 图;
[0018] 图4F示出了按照本发明的一个实施例的利用柱状图对多个网格的局部主方向进 行聚类的示意图;
[0019] 图4G示出了按照本发明的一个实施例的去噪后的边缘图的示意图;
[0020] 图4H示出了按照本发明的一个实施例的进行直线拟合后的边缘图示意图;
[0021] 图5A示出了按照本发明的一个实施例的工件在流水线上位置发生倾斜的示意 图;
[0022] 图5B示出了按照本发明的一个实施例的工件在流水线上位置发生偏移的示意 图;
[0023] 图5C示出了按照本发明的另一个实施例的工件在流水线上位置发生偏移的示意 图;
[0024] 图f5D示出了按照本发明的又一个实施例的工件在流水线上位置发生偏移的示意 图;
[0025] 图6示出了按照本发明的一个实施例的工件检测系统框图;
[0026] 图7示出了按照本发明的另一个实施例的工件检测系统框图。
具体实施方式
[0027] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整的传达给本领域的技术人员。通过结合附图对本公开示例性实施方式进行更详细 的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性 实施方式中,相同的参考标号通常代表相同部件。
[0028] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。
[0029] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。
[0030] 所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括 固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0031] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限 于一一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(DPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(⑶-R0M)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0032] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一一但 不限于一一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0033] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一一但不限 于一一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0034] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言一诸如" C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一一包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。
[0035] 下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或 框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方 框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专 用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指 令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中 规定的功能/操作的装置。
[0036] 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
[0037] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备 上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0038] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使 用范围带来任何限制。
[0039] 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0040] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VDSA)局域总线以及外围组件互连(PCI)总线。
[0041] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0042] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管图 1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器,以及对 可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些 情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以 包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被 配置以执行本发明各实施例的功能。
[0043] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包括一一但不限于一一操作系统、一个或者多个应用程序、其它 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0044] 计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设 备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的 任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22 进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如 局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20 通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以 结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱 动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0045] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以 基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行 规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
[0046] 图2示出了按照本发明的一个实施例的工件检测方法流程图。图2所示的工件检 测方法,包括:步骤201,生成工件的检测区域的边缘图,其中所述边缘图包括边缘点;步骤 203,将所述边缘图划分为多个网格;步骤205,对网格中的边缘点进行局部方向拟合以获 得所述网格中的边缘点的局部主方向;步骤207,对所述多个网格的局部主方向进行聚类; 以及步骤209对聚类后的边缘点进行全局直线拟合以便对所述工件进行定位。
[0047] 所述工件可以是任何有固定形状的物体,比如芯片、其它货物、或货物的包装等。 图2所示的方法通过对工件上的特定线条的检测从而可以实现对工件进行定位。对流水线 上的工件进行实时定位可以便利后续对工件进行相应处理操作,比如在发现芯片在流水线 上的位置发生偏移后,机械手臂可以根据偏移的工件位置对工件进行抓取,也可以通过机 械手臂纠正芯片的位置。流水线上的工件传送速度直接影响流水线的生成效率,而工件的 快速定位直接影响流水线的速度。并且工件定位是流水线上其他作业的一个基础,其决定 了后续其他操作是否能够成功(比如机械手臂对物件的操作)。通过应用本发明,可以实现 工件的快速、有效定位。虽然在后续实施例中主要以流水线(pipeline)上的工件为例进行 说明,但是本发明并不只限于应用于流水线上的工件,而是可以应用于对任何工件进行定 位。所述检测区域可以包括工件的一角、工件中的某一边的至少一部分、或者工件中的一个 特定区域等。
[0048] 下面对图2中的各个步骤进行详细说明。在步骤201,生成工件的检测区域的边 缘图,其中所述边缘图包括边缘点。步骤201可以利用任何已知的或未知的边缘检测技术 生成边缘图。所述边缘图例如可以包括由边缘点与非边缘点构成的灰度图像。在一个实施 例中所述边缘图为二值图像,并且所述边缘点和非边缘点分别用不同的颜色表示。图4A示 出了按照本发明的一个实施例的工件示意图。图4A中示意性的标出了三个区域,分别为区 域A、B、C。假设区域A为检测区域。图4B示出了检测区域A的示意图。图4C示出了检测 区域A的边缘图,其中用白色表示边缘点,黑色表示非边缘点。比如现有的CANNY算子方法 可以实现对原始图像进行平滑处理,然后对平滑后的图像进行阈值分割以生成二值化的图 像。进行边缘检测的计算量相对较小(比如对于20*20像素的区域利用canny算子方法进 行边缘检测,只需要0. 5ms左右的时间),因此进行边缘检测的速度不会对工件实时定位产 生实质性影响。
[0049] 接下来,在步骤203将所述边缘图划分为多个网格。将所述边缘图划分为多个网 格并不改变二值图像中边缘点的位置,而是在原有边缘图的基础上进行网格划分。图4D示 出了将图4C中的边缘图划分为多个网格(23X28)的示意图。划分网格是为了在后续的局 部方向拟合的步骤中减少计算量,从而提高工件定位速度。本发明对网格的划分粒度不做 限定,其可以按照实际需要进行划分。
[0050] 接下来,在步骤205中对网格中的边缘点进行局部方向拟合以获得所述网格中的 边缘点的局部主方向。在图4D的例子中,步骤205为每个网格确定一个倾斜角或斜率,作为 局部方向。进一步,步骤205包括根据网格中的所有边缘点的坐标拟合出网格中的一条局 部直线使得网格中的各个边缘点到所述局部直线的距离总和最小。例如,在一个网格中拟 合出一条局部直线,并且使得这条局部直线的方向代表这个网格中所有边缘点的方向。图 4E不出了按照本发明的一个实施例的拟合出的一个网格中的一条局部直线的不意图。在 图4E所示的网格中,存在三个边缘点,分别是0、P、Q。拟合出的局部直线L使得网格中的 三个边缘点到直线L的距离总和最小。假设一个网格中存在Z个边缘点,每个边缘点的坐 标表示SXl、yi,其中i为1到Z的整数。那么该网格中的所有边缘点的局部主方向的倾斜 角α和斜率k可以用下述公式1表示。通过计算公式1可以得到每个网格中的边缘点的 局部主方向。
[0052] 除法是四则运算里计算复杂度最高的操作,因此除法的个数决定了整个的计算复 杂度。现有的直线检测方法都因算法中除法过多导致其计算复杂度急剧上升从而无法满足 对工件进行实时定位的要求。比如,LSD技术中使用了区域生长(region growing)的方法 进行直线检测。区域生长的方法,需要对每个边缘点周围的边缘点逐个遍历(如深度优先的 遍历),在发现不符合预定的直线判断标准(直线判断标准如边缘点的梯度方向一致性)后, 则放弃当前的形成的搜索路径(searching path)和梯度方向(gradientdirection),重新 从另一个初始点(initial point)出发,按一个新的梯度方向进行搜索和遍历邻域。这种 方式,计算复杂度随着边缘点的数目成指数型增长,因此其计算速度无法满足快速进行工 件检测的需求。所述LSD技术的方法需要首先计算每个边缘点的主方向(梯度),而每次主 方向的计算都需要一次除法运算,因此假设图像中边缘点的总数是N,则由于计算每个边缘 点的主方向引起的计算复杂度是(\SD1(N),其中0表示计算复杂度的算法。此外,LSD技术 中由于使用了区域生长的算法,其需要迭代搜索临近的边缘点,由此所引起的计算复杂度 为(W (eN)。因此,LSD技术的总计算复杂度为(\SD (N+eN)。
[0053] 相比之下,本发明中的计算复杂度明显低于LSD技术中的计算复杂度。在本发明 的公式1所示的实施例中仅对每个网格做一次除法计算,假设网格的数目为M,则关于除法 的计算复杂度是〇(M)。因此本发明中计算复杂度与网格数量成正比,而现有技术中计算复 杂度取决于网格数量的指数,因此本发明中的计算复杂度远远小于现有技术中的计算复杂 度,从而使得本发明中的工件检测速度得到大大提高。
[0054] 接下来,在步骤207对所述多个网格的局部主方向进行聚类。聚类是为了确定边 缘图中的全局主方向。聚类分析的算法可以分为划分法(Partitioning Methods)、层次 法(Hierarchical Methods)、基于密度的方法(density-based methods)、基于网格的方法 (grid-based methods)、基于模型的方法(Model-based Methods)。在下面的实施例中,仅 以柱状图的方式描述一种划分法。但是可以理解的是,本发明并不限于这种聚类方法。
[0055] 图4F示出了按照本发明的一个实施例的利用柱状图对多个网格的局部主方向进 行聚类的示意图。其中横坐标(Orientation)表示各个网格的局部主方向的倾斜角,纵坐 标(Frequency)表示局部主方向出现在某一倾斜角上的数量。图4F表示倾斜角为5度的 局部主方向出现的次数为600次,倾斜角为99度的局部主方向出现的次数为700次。由此 可以确定所述边缘图的两个全局主方向的倾斜角分别为5度和99度。
[0056] 按照本发明的一个实施例,所述步骤207对所述多个网格的局部主方向进行聚类 进一步包括:确定所述边缘图的全局主方向;以及按照所述全局主方向对所述边缘图中的 边缘点进行去噪,从而将偏离全局主方向一定阈值以上的边缘点作为噪声点从边缘图中去 除。部分噪声点在图4F中用椭圆形的圈表示。对边缘点进行去噪可以去除那些对后续直 线拟合构成干扰的不规则边缘点,比如可以去除图4C中的很多小圆圈。这些噪声边缘点 可能是工件设计中原本包含的图案或花纹,也可能是工件在制造过程中产生的污损所造成 的。去噪后的边缘图的示意图如图4G所示。在图4G中,去噪后的边缘图中仅包含竖线和 横线,而不再包含图4C中的小圆圈,图4G中的竖线包括两处间断。
[0057] 接下来,在步骤209对聚类后的边缘点进行全局直线拟合以便对所述工件进行定 位。所述全局直线拟合包括对间断的边缘点进行相互连接与延伸。图4H示出了对图4G中 的边缘点进行全局直线拟合后的边缘图示意图。拟合后的全局直线包括两条相互交叉的 "十字形"直线。在另一个实施例中,拟合后的全局直线可以是"T字形"的直线(图中未示 出),即拟合的竖线只延伸到横线的交叉点处,拟合出"T字形"直线更符合边缘点的实际分 布情况。
[0058] 在本发明的一个实施例中,步骤209进一步包括计算所述被拟合的全局直线的倾 斜程度以便根据所述倾斜程度确定所述工件在流水线上的位置倾斜情况。其中所述位置倾 斜情况反映了所述工件在流水线上摆放的方向与预订方向之间的偏差。并且其中拟合出的 全局直线的倾斜程度可以用下列各项中的至少一项进行衡量:被拟合的直线的斜率、被拟 合的直线的倾斜角。计算拟合出的全局直线的斜率的公式可以如下面公式2所示。
[0060] 公式2中,\和Y j别表示拟合出的全局直线上的边缘点的横坐标与纵坐标。其 中所述拟合出的全局直线上的边缘点包括距离被拟合的直线一定阈值以内的边缘点。其中 K表示被拟合的直线的斜率。拟合出的全局直线的倾斜角可以进一步用β =arctan(K)来 表示。对图4H中的两条拟合的直线进行计算可以得出,其中竖线的斜率为一 5. 98,倾斜角 为99. 5度,横线的斜率为0. 098,倾斜角为5. 6度。
[0061] 图5A示出了按照本发明的一个实施例的工件在流水线上位置发生倾斜的示意 图,图5A中示出了流水线上的5个工件,其中工件2发生了位置倾斜(具体而言,工件2沿 逆时针方向发生倾斜),通过对检测区域(在图中由虚线所示)中的拟合直线的倾斜程度进 行计算可以确定工件2的位置倾斜情况。
[0062] 在本发明的另一个实施例中,步骤209进一步包括计算所述拟合出的全局直线的 截距以便根据所述截距确定所述工件在流水线上的位置偏移情况。其中所述位置偏移情况 反映了所述工件在流水线上摆放的位置与预订位置之间的偏差。进一步,所述位置包括所 述工件上的一点到下列各项中至少一项的距离:流水线上沿、流水线下沿,前一个工件、后 一个工件。计算所述拟合出的全局直线的截距的公式可以如下面公式3所示。
[0064] 公式3中,\和Y j别表示拟合出的全局直线上的边缘点的横坐标与纵坐标。同 样,其中所述拟合出的全局直线上的边缘点包括距离拟合出的全局直线一定阈值以内的边 缘点。b表示被拟合的直线的截距。对图4H中的两条拟合的直线进行计算可以得出,其中 竖线的截距是2032. 45象素,横线的截距是31. 28象素。
[0065] 图5B示出了按照本发明的一个实施例的工件在流水线上位置发生偏移的示意 图,图5B中示出了流水线上的5个工件,其中工件2发生了位置偏移(具体而言,工件2向 流水线上沿方向发生偏移),通过对检测区域(在图中由虚线所示)中的拟合直线的截距进 行计算可以确定工件2的位置偏移情况。
[0066] 在本发明的有一个实施例中,步骤209进一步包括计算所述拟合出的全局直线的 截距以及倾斜程度以便根据所述拟合出的全局直线的截距确定所述工件在流水线上的位 置偏移情况并且根据所述倾斜程度确定所述工件在流水线上的位置倾斜情况。计算所述拟 合出的全局直线的截距和斜率的公式可以如下面公式4所示:
[0068] 公式4中,XjPYi分别表示被拟合的直线上的边缘点的横坐标与纵坐标。同样, 其中所述被拟合的直线上的边缘点包括距离被拟合的直线一定阈值以内的边缘点。其中K 表示被拟合的直线的斜率。b表示被拟合的直线的截距。
[0069] -旦确定了工件的位置偏移和位置倾斜情况,就可以采取后续的相应步骤,比如 机械手臂可以根据工件的位置对工件进行抓取,也可以通过机械手臂纠正工件的位置。本 发明通过图2中的各个步骤降低了工件检测中的计算复杂度,实现了工件的快速、有效的 检测,从而可以支持在实际工业应用中进行工件的迅速、准确定位。
[0070] 为了进一步验证本发明与现有技术相比的技术效果。发明人将本发明中的工件检 测方案和LSD技术中的检测方案进行实验对比。本实验采用2. 53HZ CPU的笔记本电脑,利 用C++语言进行编程,对尺寸为200*200象素的工件检测区域进行检测。为了避免CPU计 算本身的不稳定性导致每次实验结果的差异,本对比实验分别用两种方法对同一样本(检 测区域)连续重复实验100次。实验结果表明,使用现有LSD技术进行检测的平均耗时为 16. 47ms,而使用本发明进行检测的平均耗时为4. 38ms。可见,本发明比LSD技术速度提高 了 4倍左右。本发明更能够满足对流水线上的工件进行检测的实时性需求。
[0071] 图3示出了按照本发明的另一个实施例的工件数据处理方法流程图。图3中步骤 305 - 313与图2中步骤201---209对应,对其内容,在此不再赘述。下面重点对图3中 与图2不同的步骤进行详细描述。
[0072] 在步骤301中获得工件的目标区域。所述目标区域可以包括工件的全部图像,也 可以包括工件的部分图像。以工件的部分图像作为目标区域可以在后续步骤中获得更清晰 的拍摄效果,并且减少在工件检测中的计算量。但是所述工件的部分图像不能过小,如果图 像过小可能因为工件存在轻微的位置偏移或位置倾斜就无法在后续步骤中拍摄到相应的 工件上的直线。
[0073] 所述目标区域中工件上直线的信息量越大,就越有利于进行有效和准确的工件检 测。比如带有"十字形"图案的目标区域的直线信息量比带有"T字形"图案的目标区域的 直线信息量大,带有"T字形"图案的目标区域的直线信息量比带有"L形"(直角形)图案的 目标区域的直线信息量大,带有"L形"图案的目标区域的直线信息量比带有单一直线型的 目标区域的直线信息量大,等等。
[0074] 按照本发明的一个实施例,所述检测区域可以由人为确定,比如通过观察图4A中 的区域A、B、C,发现区域A中包含"T字形"图案,而区域B、C中仅包含"L形"图案,因此选 择区域A作为目标区域。当然,本发明对目标区域的图案形状不做限定,目标区域中可以包 含"十字形"、"T字形"、"L形"、锐角形、钝角形、甚至非交叉直线等任何含有至少一条直线 的图形。
[0075] 按照本发明的另一个实施例,所述工件包括训练工件,所述目标区域可以自动获 得。首先,以训练工件的整个区域作为目标区域执行图2中描述的工件检测方法。然后,确 定拟合出的全局直线中包含的边缘点的数量(比如拟合出的全局直线的单位长度内包含的 边缘点的数量)。按照本发明的一个实施例,所述拟合出的全局直线中包含的边缘点包含在 距离所述被拟合的直线一定阈值内的边缘点。因此,单位长度内包含的边缘点的数量越多 说明这条直线上所含有的信息量越丰富,越适合被纳入到目标区域中。最后,根据所述边缘 点的数量确定后续步骤中的目标区域,比如选择图4H中的区域A作为目标区域。按照本发 明的一个实施例,在所述后续步骤中,所述训练工件可以和其它后续工件一起以所述目标 区域进行检测;按照本发明的另一个实施例,在所述后续步骤中,所述训练工件不再作为工 件以所述目标区域进行检测。
[0076] 按照本发明的一个实施例,可以离线获得所述目标区域,也就是在流水线处于不 工作状态时获得所述目标区域,从而在获得所述目标区域后再进行其余的在线工件检测步 骤。
[0077] 在步骤303中根据工件在流水线上的移动速度对所述工件的目标区域进行拍摄 以获得检测区域的图形。按照本发明的一个实施例,可以对于每个工件拍摄一副图片,按照 本发明的另一个实施例,可以对每个工件拍摄多幅图片,然后选取最清楚的一张。
[0078] 接下来,进行步骤305 - 313的步骤以获得拟合出的全局直线。
[0079] 在步骤315中,根据拟合出的全局直线所表示的图形判断所述检测区域是否是目 标区域,比如原本以包括工件的左下角中的"L形"的区域作为目标区域进行拍摄,但是由于 某一工件发生位置偏移,从而使得检测出的区域不包含目标区域中的"L形"图形,因此判断 检测出的区域是否是目标区域可以进一步判断工件的位置偏移或位置倾斜情况。
[0080] 图5C示出了按照本发明的另一个实施例的工件在流水线上位置发生偏移的示意 图。图5C中的流水线上包含5个工件,其中工件2发生位置偏移使得工件2与工件1的一 部分重叠。因此本来以工件的左下角的区域作为目标区域(如图中虚线所示),但是对工件2 进行检测后所拟合出的"L形"图形并非是工件2左下角的直角图形,而是工件2右下角的 直角图形,由此可以进一步判断工件2向工件1方向发生了位置偏移,从而进行相应操作以 纠正工件2的位置。
[0081] 按照本发明的一个实施例,所述根据拟合出的全局直线所表示的图形判断所述检 测区域是否是目标区域进一步包括以下三个步骤。(i)统计拟合出的全局直线上的边缘点 的数量。按照本发明的一个实施例,由于在直线拟合的步骤中可能对间断的边缘点进行相 互连接与延伸,因此即便是"L形"的图形在直线拟合后也可能拟合出十字形的形状。所以 需要统计拟合出的全局直线上的边缘点的数量以此判断所述直线是否是工件上真实存在 的直线,还是被虚构出来的直线。(ii)根据所述边缘点的数量确定拟合出的全局直线所表 示的图形,比如判断"L形"、T字形、十字形或者其它形状。(iii)根据所述图形判断所述检 测区域是否是目标区域,比如判断图5C中对工件2检测出的区域就不是目标区域。
[0082] 按照本发明的一个实施例,所述检测区域中包括至少两条交叉线,并且步骤313 中的对所述工件进行定位进一步包括:根据所述图形以及所述交叉线的交叉点的坐标确定 所述工件在流水线上的位置偏移。图f5D示出了按照本发明的又一个实施例的工件在流水 线上位置发生偏移的示意图。图f5D所示的流水线上包括3个工件,其中工件2比预订位置 向工件1偏移了一点,而工件3在工件2偏移的基础上又比预订位置向工件2偏移了一点, 导致工件的左下角本来应该靠近检测区域(图中由虚线示出)的右侧(如工件1中所示),但 是实际上工件2的左下角位于检测区域的中间,而工件3的左下角靠近检测区域的左侧。通 过步骤313根据拟合出的全局直线所表示的图形以及交叉点(如图f5D中的每个工件的左下 角的顶点)在检测区域中的坐标,可以准确确定工件在流水线上的位置偏移,包括偏移的方 向与偏移的程度。
[0083] 上文描述了本发明中的工件检测方法,下面将结合图6、图7描述在同一发明构思 下的工件检测系统,其中相同或相应的实现细节由于在上文中已经进行了详细和完整的描 述,因此在下文中将不再进行赘述。
[0084] 图6示出了按照本发明的一个实施例的工件检测系统框图。所述工件检测系统包 括生成装置、划分装置、第一拟合装置、聚类装置以及第二拟合装置。其中生成装置被配置 为生成工件的检测区域的边缘图,其中所述边缘图包括边缘点。划分装置被配置为将所述 边缘图划分为多个网格。第一拟合装置被配置为对网格中的边缘点进行局部方向拟合以获 得所述网格中的边缘点的局部主方向。聚类装置被配置为对所述多个网格的局部主方向进 行聚类。第二拟合装置,被配置为对聚类后的边缘点进行全局直线拟合以便对所述工件进 行定位。
[0085] 按照本发明的一个实施例,其中所述边缘图为二值图像,并且所述边缘图的边缘 点和非边缘点分别用不同的颜色表示。
[0086] 按照本发明的一个实施例,所述第一拟合装置进一步被配置为:根据网格中的所 有边缘点的坐标拟合出网格中的一条局部直线使得网格中的各个边缘点到所述局部直线 的距离总和最小。
[0087] 按照本发明的一个实施例,其中所述聚类装置进一步包括:第一确定子装置,被配 置为确定所述边缘图的全局主方向;以及去噪子装置,被配置为按照所述全局主方向对所 述边缘图中的边缘点进行去噪。
[0088] 按照本发明的一个实施例,其中所述第二拟合装置进一步被配置为:计算所述拟 合出的全局直线的倾斜程度以便根据所述倾斜程度确定所述工件在流水线上的位置倾斜 情况。
[0089] 按照本发明的一个实施例,其中所述第二拟合装置进一步被配置为:计算所述拟 合出的全局直线的截距以便根据所述截距确定所述工件在流水线上的位置偏移情况。
[0090] 图7示出了按照本发明的另一个实施例的工件检测系统框图。图7中的生成装 置、划分装置、第一拟合装置、聚类装置、第二拟合装置与图6中的各个装置功能相同,在此 不再进行赘述。
[0091] 进一步图7中还包括获得装置、拍摄装置。其中所述获得装置被配置为获得工件 的目标区域。所述拍摄装置被配置为根据工件在流水线上的移动速度对所述工件的目标区 域进行拍摄以获得检测区域的图形。
[0092] 按照本发明的一个实施例,所述工件包括训练工件,所述获得装置进一步包括:应 用子装置被配置为以训练工件的整个区域作为检测区域应用图6中的工件检测系统;第二 确定子装置被配置为确定拟合出的全局直线中包含的边缘点的数量;以及第三确定子装置 被配置为根据所述数量确定工件的目标区域。
[0093] 图7中的工件检测系统进一步包括判断装置。所述判断装置被配置为根据拟合出 的全局直线所表示的图形判断所述检测区域是否是目标区域。
[0094] 按照本发明的一个实施例,所述检测区域中包括至少两条交叉线,并且所述对所 述工件进行定位进一步包括根据所述图形以及所述交叉线的交叉点的坐标确定所述工件 在流水线上的位置偏移。
[0095] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也 不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技 术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨 在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领 域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1. 一种工件检测方法,包括: 生成工件的检测区域的边缘图,其中所述边缘图包括边缘点; 将所述边缘图划分为多个网格; 对网格中的边缘点进行局部方向拟合以获得所述网格中的边缘点的局部主方向; 对所述多个网格的局部主方向进行聚类;以及 对聚类后的边缘点进行全局直线拟合以便对所述工件进行定位。
2. 如权利要求1所述的方法,其中所述边缘图为二值图像,并且所述边缘图中的边缘 点和非边缘点分别用不同的颜色表示。
3.如权利要求1所述的方法,其中所述对网格中的边缘点进行局部方向拟合进一步包 括: 根据网格中的所有边缘点的坐标拟合出网格中的一条局部直线使得网格中的各个边 缘点到所述局部直线的距离总和最小。
4.如权利要求1所述的方法,其中所述对所述多个网格的局部主方向进行聚类进一步 包括: 确定所述边缘图的全局主方向;以及 按照所述全局主方向对所述边缘图中的边缘点进行去噪。
5.如权利要求1所述的方法,其中所述对聚类后的边缘点进行全局直线拟合以便对所 述工件进行定位进一步包括:计算拟合出的全局直线的倾斜程度以便根据所述倾斜程度确 定所述工件在流水线上的位置倾斜情况。
6. 如权利要求1所述的方法,其中所述对聚类后的边缘点进行全局直线拟合以便对所 述工件进行定位进一步包括:计算拟合出的全局直线的截距以便根据所述截距确定所述工 件在流水线上的位置偏移情况。
7.如权利要求1所述的方法,进一步包括: 获得工件的目标区域;以及 根据工件在流水线上的移动速度对工件的目标区域进行拍摄以获得检测区域的图形。
8. 如权利要求1所述的方法,进一步包括: 根据拟合出的全局直线所表示的图形判断所述检测区域是否是目标区域。
9. 如权利要求8所述的方法,其中所述检测区域中包括至少两条交叉线,并且所述对 所述工件进行定位进一步包括: 根据所述图形以及所述交叉线的交叉点的坐标确定所述工件在流水线上的位置偏移。
10. -种工件检测方法,包括: 获得工件的目标区域;以及 根据工件在流水线上的移动速度对工件的目标区域进行拍摄以获得检测区域的图形, 其中所述获得工件的目标区域进一步包括: 以训练工件的整个区域作为检测区域执行权利要求1中的方法; 确定拟合出的全局直线中包含的边缘点的数量;以及 根据所述数量确定工件的目标区域。
11. 一种工件检测系统,包括: 生成装置,被配置为生成工件的检测区域的边缘图,其中所述边缘图包括边缘点; 划分装置,被配置为将所述边缘图划分为多个网格; 第一拟合装置,被配置为对网格中的边缘点进行局部方向拟合以获得所述网格中的边 缘点的局部主方向; 聚类装置,被配置为对所述多个网格的局部主方向进行聚类;以及 第二拟合装置,被配置为对聚类后的边缘点进行全局直线拟合以便对所述工件进行定 位。
12. 如权利要求11所述的系统,其中所述边缘图为二值图像,并且所述边缘图的边缘 点和非边缘点分别用不同的颜色表示。
13.如权利要求11所述的系统,其中所述第一拟合装置进一步被配置为: 根据网格中的所有边缘点的坐标拟合出网格中的一条局部直线使得网格中的各个边 缘点到所述局部直线的距离总和最小。
14.如权利要求11所述的系统,其中所述聚类装置进一步包括: 第一确定子装置,被配置为确定所述边缘图的全局主方向;以及 去噪子装置,被配置为按照所述全局主方向对所述边缘图中的边缘点进行去噪。
15.如权利要求11所述的系统,其中所述第二拟合装置进一步被配置为:计算拟合出 的全局直线的倾斜程度以便根据所述倾斜程度确定所述工件在流水线上的位置倾斜情况。
16.如权利要求11所述的系统,其中所述第二拟合装置进一步被配置为:计算拟合出 的全局直线的截距以便根据所述截距确定所述工件在流水线上的位置偏移情况。
17.如权利要求11所述的系统,进一步包括: 获得装置,被配置为获得工件的目标区域;以及 拍摄装置,被配置为根据工件在流水线上的移动速度对所述工件的目标区域进行拍摄 以获得检测区域的图形。
18.如权利要求11所述的系统,进一步包括: 判断装置,被配置为根据拟合出的全局直线所表示的图形判断所述检测区域是否是目 标区域。
19.如权利要求18所述的系统,其中所述检测区域中包括至少两条交叉线,并且所述 对所述工件进行定位进一步包括: 根据所述图形以及所述交叉线的交叉点的坐标确定所述工件在流水线上的位置偏移。
20. -种工件检测系统,包括: 获得装置,被配置为获得工件的目标区域;以及 拍摄装置,被配置为根据工件在流水线上的移动速度对所述工件的目标区域进行拍摄 以获得检测区域的图形, 其中所述工件包括训练工件,并且所述获得装置进一步包括: 应用子装置,被配置为以训练工件的整个区域作为检测区域应用权利要求11中的系 统; 第二确定子装置,被配置为确定拟合出的全局直线中包含的边缘点的数量;以及 第三确定子装置,被配置为根据所述数量确定工件的目标区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210490612.4A CN103837135B (zh) | 2012-11-27 | 2012-11-27 | 工件检测方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210490612.4A CN103837135B (zh) | 2012-11-27 | 2012-11-27 | 工件检测方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103837135A CN103837135A (zh) | 2014-06-04 |
CN103837135B true CN103837135B (zh) | 2016-03-02 |
Family
ID=50800865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210490612.4A Expired - Fee Related CN103837135B (zh) | 2012-11-27 | 2012-11-27 | 工件检测方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103837135B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573713B (zh) * | 2014-12-31 | 2017-12-26 | 天津弘源慧能科技有限公司 | 一种基于图像纹理特征的互感器红外图像识别方法 |
CN105066892B (zh) * | 2015-08-05 | 2017-07-28 | 哈尔滨工业大学 | 一种基于直线聚类分析的bga元件检测与定位方法 |
CN111354038A (zh) * | 2018-12-21 | 2020-06-30 | 广东美的白色家电技术创新中心有限公司 | 锚定物检测方法及装置、电子设备及存储介质 |
CN110766876A (zh) * | 2019-03-14 | 2020-02-07 | 王沛然 | 一种共享打火机装置、系统及方法 |
CN113554648B (zh) * | 2021-09-18 | 2021-11-30 | 四川太平洋药业有限责任公司 | 生产线检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216895A (zh) * | 2007-12-26 | 2008-07-09 | 北京航空航天大学 | 一种复杂背景图像中椭圆图像特征的自动提取方法 |
CN101635049A (zh) * | 2009-06-04 | 2010-01-27 | 北京中星微电子有限公司 | 图像区域的聚类方法和装置以及轮廓搜索方法和装置 |
CN102473307A (zh) * | 2010-03-15 | 2012-05-23 | 松下电器产业株式会社 | 用于轨迹估计的方法和装置以及用于分割的方法 |
EP2500864A1 (en) * | 2011-03-15 | 2012-09-19 | Agfa Healthcare | Irradiation field recognition |
-
2012
- 2012-11-27 CN CN201210490612.4A patent/CN103837135B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216895A (zh) * | 2007-12-26 | 2008-07-09 | 北京航空航天大学 | 一种复杂背景图像中椭圆图像特征的自动提取方法 |
CN101635049A (zh) * | 2009-06-04 | 2010-01-27 | 北京中星微电子有限公司 | 图像区域的聚类方法和装置以及轮廓搜索方法和装置 |
CN102473307A (zh) * | 2010-03-15 | 2012-05-23 | 松下电器产业株式会社 | 用于轨迹估计的方法和装置以及用于分割的方法 |
EP2500864A1 (en) * | 2011-03-15 | 2012-09-19 | Agfa Healthcare | Irradiation field recognition |
Also Published As
Publication number | Publication date |
---|---|
CN103837135A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103837135B (zh) | 工件检测方法及其系统 | |
CN109242903A (zh) | 三维数据的生成方法、装置、设备及存储介质 | |
US10354402B2 (en) | Image processing apparatus and image processing method | |
CN104933738B (zh) | 一种基于局部结构检测和对比度的视觉显著图生成方法 | |
EP3113078A1 (en) | Method and system for detecting regular shape | |
EP3910543A2 (en) | Method for training object detection model, object detection method and related apparatus | |
CN105069453A (zh) | 一种图像校正方法及装置 | |
CN107895377A (zh) | 一种前景目标提取方法、装置、设备及存储介质 | |
Fazan et al. | Rectilinear building roof contour extraction based on snakes and dynamic programming | |
CN111833237A (zh) | 基于卷积神经网络和局部单应性变换的图像配准方法 | |
CN103765477A (zh) | 通过图形匹配和环形检测而用自动模型初始化进行线跟踪 | |
CN110059637B (zh) | 一种人脸对齐的检测方法及装置 | |
CN110263713B (zh) | 车道线检测方法、装置、电子设备及存储介质 | |
JPWO2019064599A1 (ja) | 異常検知装置、異常検知方法、及びプログラム | |
CN107256540A (zh) | 图像修复方法、装置及三维重建系统 | |
CN105354816A (zh) | 一种电子元件定位方法及装置 | |
US8270770B1 (en) | Region-based dense feature correspondence | |
US11113836B2 (en) | Object detection method, device, apparatus and computer-readable storage medium | |
CN102938156B (zh) | 一种基于积分图像的面状注记配置方法 | |
CN109829469A (zh) | 一种基于深度学习的车辆检测方法 | |
WO2015151553A1 (ja) | 異動検出支援装置、異動検出支援方法、及びコンピュータ読み取り可能な記録媒体 | |
CN109934185B (zh) | 数据处理方法及装置、介质和计算设备 | |
US20220092756A1 (en) | Feature detection based on neural networks | |
CN109840609B (zh) | 拣货点数据校验方法及装置、存储介质、电子设备 | |
CN113822278B (zh) | 一种无受限场景车牌识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160302 Termination date: 20201127 |