【行業介紹】
機器視覺(Machine Vision)屬于人工智能(AI)和計算機科學(Computer Science)的交叉領域,具體涉及以下幾個核心學科和技術方向:
1. 人工智能(AI)的子領域
機器視覺是AI的重要分支,尤其是與計算機視覺(Computer Vision)緊密相關,專注于讓機器通過圖像或視頻數據“看懂”世界。應用場景包括:物體識別、人臉識別、自動駕駛、工業檢測等。
2. 計算機科學的核心技術
圖像處理:對圖像進行降噪、增強、分割等操作。模式識別:從圖像中提取特征并分類(如OCR文字識別)。深度學習:使用卷積神經網絡(CNN)等模型解決復雜的視覺任務。
3. 工程與自動化的結合
在工業領域,機器視覺常與自動化控制、機器人技術結合,用于生產線上的質量檢測、定位抓取等(如工業機器人分揀物品)。
4. 多學科交叉
光學工程:涉及相機、鏡頭、光源等硬件設計。傳感器技術:如3D視覺中的激光雷達(LiDAR)、紅外傳感器。數學:算法依賴線性代數、概率統計、幾何變換等。
【課程內容介紹】
(1)熟練掌握 C#語言,halcon 圖像處理、visionMaster 軟件。
(2)熟悉多線程運用,掌握 C# 和 halcon 聯合編程. (3)熟悉面陣相機、線陣相機、鏡頭、光源的選型。
(4)熟練掌握機器視覺識別定位、檢測測量、缺陷檢測。
(5)OCR 識別、碼字識別等圖像處理方法,能獨立完成視覺軟件開發。
(6)熟練雷賽固高運動控制卡編程。
(7)豐富的代碼經驗及現場經驗,代碼規范。
(8)熟練使用辦公軟件,PPT、Word、Excel。
(9)熟悉設備各種機構硬件電氣硬件。
【上課方式】
全日制(周一至周六,課堂講解、復習、預習、作業點評、實操, 晚上自習。
特點優勢:小班式授課,主抓基礎點,學會為止,課程終身有效,師資力量雄厚,服務有質量。合
作企業定期推送,就業容易行業經驗豐富的老師授課,學習效率高。
【學習內容】
C#基礎:
1.變量 用于存儲數據的容器。變量必須先聲明再使用,聲明時需要指定數據類型
2.運算符 算術運算符、關系運算符、邏輯運算符、賦值運算符
3.控制語句 用于控制程序的執行流程。包括 if、else、switch等
4.數組 用于存儲相同類型數據的集合。數組的大小在聲明時確定,且不可改變
5.List/泛型 List 是 NET 框架中的一個動態數組,可以動態調整大小。泛型允許在定義類、接口和方法時指定類型參數
6.循環 for/foreach/while for 循環用于循環固定次數。foreach 循環用于遍歷集合。while 循環用于條件滿足時循環
7.值類型/引用類型 值類型存儲實際數據,賦值時復制數據。引用類型存儲對象的引用,賦值時復制引用
8.方法 用于封裝代碼塊,實現特定功能。方法可以有參數和返回值
9.類/Class 是對象的藍圖,定義了對象的屬性和行為
10.封裝將類的成員變量和方法封裝在一起,隱藏內部實現細節,只暴露必要的接口
11.繼承允許一個類繼承另一個類的屬性和方法。派生類可以擴展或修改基類的行為
12.多態允許子類對象替換父類對象,且調用的方法會根據對象的實際類型動態決定
13.接口定義了一組方法和屬性的契約,類實現接口時必須實現接口中的所有成員
14.單例確保一個類只有一個實例,并提供一個全局訪問點。單例模式的線程安全問題
15.單步調試/異常處理 單步調試用于逐行執行代碼以查找問題。異常處理用于處理運行時錯誤
16.命名規范規定代碼中變量、方法、類等的命名規則,以提高代碼可讀性。命名規則類名首字母大寫,方法名首字母大寫,變量名首字母小寫等
Winform:
1.常規控件 介紹 Winform 中的常用控件,如 Button、Label、TextBox、ComboBox等。學習如何在設計器中添加和配置控件。了解控件的基本屬性和事件。
2.控件布局 學習如何使用布局控件(如 Panel、FlowayoutPanel、TableLayoutPanel)來組織界面。掌握控件的對齊、錨定和??繉傩?。實現響應式布局設計。
3.高級控件 了解 ListView控件的用途和功能。學習如何添加、刪除和編輯 ListView 中的項。掌握 ListView的視圖模式(如詳細信息、列表、小圖標等)。介紹如何使用 Chart 控件繪制圖表。學習如何添加數據點、設置圖表類型(如柱狀圖、折線圖、餅圖等)。配置圖表的標題、圖例和坐標軸。
4.線程頏看Task了解線程的基本概念和用途。學習如何創建和啟動線程。使用 Task 類實現異步編程。掌握線程的基本操作,如啟動、暫停、終止。
5.事件/委托/匿名委托/回調 介紹事件的概念和用途。學習委托的定義和使用。匿名委托的使用方法?;卣{函數的實現和應用。
6.線程同步 了解線程同步的概念和重要性。使用 lock、Monitor、Mutex 等實現線程同步。避免線程沖突和死鎖。
7.DII 了解動態鏈接庫(DLL)的概念和用途。學習如何創建和使用 DLL。調用外部 DLL中的函數。
8.多窗體應用,模態非模態對話框 學習如何創建和管理多個窗體。區分模態對話框和非模態對話框的使用場景。實現窗體之間的數據傳遞。
9.ini 文件 了解 INI文件的格式和用途。學習如何讀取和寫入 INI 文件。使用System,Configuration 命名空間操作 INI 文件。
10.序列化反序列化 介紹序列化和反序列化的概念。學習如何使用 BinaryFormatter、XmlSerializer 等進行序列化和反序列化。應用場景:對象持久化、網絡傳輸等。
11.xmL文件 了解 XL,文件的結構和用途。學習如何讀取和寫入 XL, 文件。使用XmlDocument、XElement 等類操作 XML。
12.文件夾操作學習如何使用 System, 10 命名空間中的類進行文件夾操作。創建、刪除、移動文件夾。遍歷文件夾中的文件和子文件爽。
13.串口通信 介紹串口通信的基本概念。學習如何使用 SerialPort 類進行串口通信。實現數據的發送和接收
14.TCP/IP 通信 了解TCP/IP 協議的基本概念。學習如何使用 Socket 類進行 TCP/IP 通信。實現客戶端和服務器端的通信。
15.Log4net 理解日志在軟件開發中的重要性,例如用于記錄程序運行時的錯誤信息、用戶操作行為、系統性能數據等,方便問題的排查和系統的維護,學習 log4net的基本架構,包括日志記錄器(Logger)、日志輸出位置(Appender)、日志格式化器(Layout)等核心組件
16.自定義控件 用戶控件:通過組合現有的控件來創建新的控件,例如將一個文本框和一個按鈕組合成一個簡單的登錄控件。自定義控件:從頭開始創建控件,通常需要繼承自現有的控件類并重寫其方法和屬性,用于實現更復雜的功能和外觀。
17.10卡 了解I0卡的基本功能和用途。學習如何通過I〇卡進行硬件控制。使用相關驅動或庫進行 I0 卡操作。
18.光源控制器 了解光源控制器的基本功能和通信協議。學習如何通過串口或其他通信方式控制光源。實現光源的開關、亮度調節等功能。19.相機 SDK 學習相機常用參數,相機二次開發的過程及不同的相機 SDK 方式
VisionMaster:
1.VM 軟件概述 介紹V 軟件的基本功能和界面布局。學習如何安裝和配置 VM 軟件。了解WM 支持的硬件設備和驅動程序。
2.圖像采集與預處理 學習如何配置相機參數,進行圖像采集。掌握圖像預處理方法,如灰度變換、濾波、邊緣增強等。使用V 的圖像處理工具進行實際操作。
3.區域與輪廓分析 介紹區域(Region)和輪廓(Contour)的概念。學習如何創建、操作和分析區域和輪廓。應用區域和輪廓進行圖像分割和特征提取。
4.形態學操作 介紹數學形態學的基本概念,包括膨脹、腐蝕、開運算、閉運算等。學習如何使用形態學操作進行圖像去噪、邊緣增強和形狀分析。應用形態學算子進行圖像預處理。
5.特征提取與測量 學習如何提取圖像中的特征,如面積、周長、形狀因子等。掌握一維和二維測量方法,包括長度、寬度、面積、角度等。使用V進行特征提取和測量的實際操作。
6.模板匹配與目標定位 介紹模板匹配的概念和方法。學習如何使用 V進行模板匹配包括模板的創建和匹配算法的選擇。應用模板匹配進行目標定位和識別。
7.缺陷檢測 介紹缺陷檢測的基本方法和流程。學習如何使用 VM 進行簡單的缺陷檢測(如斑點檢測、邊緣缺陷檢測等)。掌握缺陷檢測的參數設置和結果分析。
8.相機標定與測量精度 介紹相機標定的基本概念和方法。學習如何使用比例尺和標定板進行相機標定。掌握標定參數的計算和應用,提高測量精度。
9.條碼與二維碼識別 介紹條碼和二維碼識別的基本原理和方法。學習如何使用 VM 進行條碼和二維碼識別,包括條碼的檢測和解碼。掌握條碼和二維碼識別的參數設置和結果分析。
10.0CR字符識別 介紹0CR(光學字符識別)的基本原理和方法。學習如何使用VM進行0CR 識別,包括字符的檢測和識別。掌握 0CR識別的參數設置和結果分析。
11.機器人手眼標定 介紹機器人手眼標定的基本概念和方法。學習如何使用 VM進行機器人手眼標定,包括標定流程和參數計算。掌握標定結果的應用。
12.自動化與集成 介紹如何將VM視覺系統與自動化設備(如機器人、傳送帶等)集成學習如何通過 PLC、TCP/IP 等通信協議進行數據交互。實現視覺系統的自動化運行。
13.項目實戰與優化 通過實際項目案例,學習如何設計和實現完整的視覺檢測系統。掌握項目開發流程,包括需求分析、系統設計、調試與優化。學習如何提高系統的穩定性和效率。
halcon:
1.相機 介紹相機的成像原理,學習相機分辨率、幀率、傳感器類型、動態范圍和接口類型。分辨率影響圖像細節和檢測精度:幀率決定動態場景的捕捉能力:傳感器類型(如 CIOS或 COD)影響圖像質量和噪聲水平:動態范圍影響在不同光照條件下的成像效果;接口類型(如 USB、GigE、Camera Link)影響數據傳輸速度和距離等
2.鏡頭 介紹鏡頭的焦距、光圈、分辨率、畸變和工作距離。焦距決定成像的放大倍數和視野范圍:光圈控制進入鏡頭的光量,影響景深和成像亮度:分辨率影響成像的清晰度:畸變影響測量精度和成像質量:工作距離影響成像的清晰度和視野大小。
3.光源 光源的光譜特性、光照強度、光照角度、光源類型和光源控制。光譜特性影響成像的對比度和特定材料的響應:光照強度影響成像的亮度和對比度:光照角度影響陰影和反射效果:光源類型、影響光源的壽命和穩定性等
4. Halcon 軟件基礎 介紹 Halcon 軟件的基本功能和界面布局。學習如何安裝和配置Halcon 軟件。了解 Halcon 支持的硬件設備和驅動程序。掌握 Halcon 的基本操作,包括項目創建、圖像加載和顯示。
5.圖像處理 Blob 分析 介紹 Blob分析的基本概念和方法。學習如何使用 Halcon 進行 Bloh分析,包括 Blob 的提取、特征計算(如面積、周長、形狀因子等)。應用 Blob 分析進行目標檢測和分類。介紹 Region(區域)和Contour(輪廓)的概念。學習如何創建
6.Region 及Contour操作和分析區域和輪廓。應用區域和輪廓進行圖像分割和特征提取。掌握區域和輪的常用算子。
7.模板匹配 介紹模板匹配的概念和方法。學習如何使用 Halcon 進行模板匹配,包括模板的創建和匹配算法的選擇。應用模板匹配進行目標定位和識別。掌握模板匹配的參數設置和優化。
8.顏色識別 介紹顏色識別的基本原理和方法。學習如何使用 Halcon 進行顏色識別,包括顏色空間的選擇(如 RGB、HSV 等)和顏色閾值的設置。應用顏色識別進行目標檢測和分類。
9.0CR 識別 介紹 0CR(光學字符識別)的基本原理和方法。學習如何使用Halcon 進行 0CR識別,包括字符的檢測和識別。掌握 0CR 識別的參數設置和結果分析。應用0CR 識別進行文本提取。
10.幾何測量 介紹幾何測量的基本方法和應用。學習如何使用 Halcon 進行幾何測量,包括長度、寬度、面積、角度等的測量。掌握測量參數的設置和結果分析。應用幾何測量進行尺寸檢測。
11.標定(比例尺標定,標定板標定) 介紹相機標定的基本概念和方法。學習如何使用比例尺和標定板進行相機標定。掌握標定參數的計算和應用,提高測量精度。應用標定結果進行實際測量。
12.卡尺介紹卡尺工具的使用方法。學習如何使用 Halcon 的卡尺工具進行精確測量。掌握卡尺的配置和測量參數的設置。應用卡尺進行高精度測量。
13.目標定位 介紹目標定位的基本方法和應用。學習如何使用 Halcon 進行目標定位,包括模板匹配、特征匹配等方法。掌握目標定位的參數設置和優化。應用目標定位進行自動化檢測。
14.條碼識別 介紹條碼識別的基本原理和方法。學習如何使用 Halcon 進行條碼識別,包括條碼的檢測和解碼。掌握條碼識別的參數設置和結果分析。應用條碼識別進行物流和庫存管理。
15.二維碼識別 介紹二維碼識別的基本原理和方法。學習如何使用 Halcon 進行二維碼識別,包括二維碼的檢測和解碼。掌握二維碼識別的參數設置和結果分析。應用二維碼識別進行信息提取。
16.支持向量機 介紹支持向量機(SVM)的基本原理和應用。學習如何使用Halcon 進行SVM 分類,包括特征提取、模型訓練和分類。掌握SV 的參數設置和優化。應用SVM進行圖像分類和缺陷檢測。
運動控制卡:
1.運動控制項目分析
分析運動控制的項目需求,系統功能結構及系統的業務流程
2.運動控制卡基礎
運動控制卡驅動安裝、接線端子板的使用,控制卡Demo的使用
3.控制卡基礎編程控制
打開關閉控制卡,初始化,系統復位,控制卡清除狀態等,且實現對電機的控制
4.控制卡 I0 輸入輸出實現對控制卡的 I0輸入點進行監控,實時監控設備的 10 狀態。
對 10 輸出點實現對氣缸或繼電器等元器件進行控制
5.運動及運動模式
學習控制卡的運動模式,相對運動,點動、Jog運動6.插補
直線插補,圓弧插補
7.點位
業務流程中的點位示教及其點位的保存
8.業務邏輯
常規業務邏輯實現,實現自動運行
運動控制卡
【聯合編程項目實戰】
1.光學硬件選型
項目目標:根據需求選出適合的相機、鏡頭、光源,根據需求制定硬件的安裝方案(方案中需明確出具體的鏡頭物距,光源安裝高度,及高度或角度可調的范圍等重要參數)
1.測量項目
項目目標:使用 C# + Halcon 開發一個自動化測量系統,用于測量零件的尺寸和形狀。
功能模塊:
相機標定:使用標定板進行相機標定,確保測量精度。
圖像采集:配置相機參數,采集高質量圖像。
圖像預處理:去噪、邊緣增強等預處理操作。
特征提?。禾崛×慵妮喞^域等特征。
幾何測量:測量零件的長度、寬度、角度等幾何參數。
結果輸出:將測量結果輸出到用戶界面。
應用場景:工業生產中的質量檢測和尺寸測量。
2.零件分揀項目
項目目標:使用 C# + Halcon 開發一個自動化零件分揀系統,根據零件的形狀、顏色等特征進行分類。
功能模塊:
圖像采集:配置相機參數,采集高質量圖像。
相機標定:九點標定法標定
特征提?。禾崛×慵念伾?、形狀、尺寸等特征。
結果輸出:將分類結果輸出到用戶界面或控制機械臂進行分揀。
應用場景:自動化生產線上的零件分類和分揀。
3.定位抓取項目
項目目標:開發一個機器人視覺定位抓取系統,用于精確抓取和放置零件。
功能模塊:
相機標定:九點標定
圖像采集:配置相機參數,采集高質量圖像。
圖像預處理:去噪、邊緣增強等預處理操作。
目標定位:使用模板匹配或特征匹配進行目標定位。
機器人控制:將定位結果發送給機器人控制系統,實現精確抓取。
結果反饋:將抓取結果反饋到用戶界面或控制系統。
應用場景:機器人自動化生產線上的零件抓取和裝配。
4.條碼及二維碼識別項目
項目目標:開發一個條碼和二維碼識別系統,用于快速讀取物流信息。
功能模塊:
圖像采集:配置相機參數,采集高質量圖像。
條碼識別:使用 Halcon 的條碼識別功能,檢測并解碼條碼。
二維碼識別:使用 Halcon 的二維碼識別功能,檢測并解碼二維碼。
結果輸出:將識別結果輸出到用戶界面或數據庫。
應用場景:物流、倉儲管理中的信息讀取和跟蹤。
【我們的項目經驗】
獨立開發完成電感正反檢測,液面高度測量,電芯正反檢測,牙模 OCR 識別,FPC 切割定位, 轉子角度定位,激光清洗線掃測量,自動焊錫機程序,參與過多線掃相機視覺軟件開發,期間還使用易淵圖像處理庫完成與運動控制卡結合的 PCB 插件針腳檢測。
以下為自主完成的項目截圖:
FPC 邊緣視覺定位(主要用到 blob 分析,邊檢出,九點標定)
電感正反檢測(振動盤上檢測,篩選出反面電感,主要運用 blob 分析,IO 卡)
液面高度實時監測
電池正反檢測
牙模 OCR 識別
拉鏈視覺檢測
轉子角度定位
視覺對位
針痕檢測
【實訓現場】
實訓現場展示
【教學現場】
教學現場
教學現場
教學現場
【適合對象】
1.自動化行業從業者,有意向轉行于機器視覺;想提升技能的人員;
2.沒有工作經驗,學校學習基礎薄弱,利用大學時光充實自己(實習或實踐);
3.零基礎或初學者,想系統學習機器視覺(需要會計算機基礎操作,有邏輯思維,愿意靜下心來學習);
4.目前在自學,學習找不到方向,遇到問題沒有指導。