1. 自學機器視覺應該怎麼入門
要回答這個問題,我們可以分解一下機器視覺系統,來逐個分析。
一套最簡單的機器視覺系統包括
視覺成像部分
圖像處理部分
運動控制部分
1. 視覺成像部分
視覺成像又包含幾個典型組件: 光源,鏡頭,工業相機。
光源和鏡頭都需要我們掌握光學知識,不同的打光方式,可以讓相機對物體產生完全不同的成像;而鏡頭的倍率,焦距,視野等的選擇不同直接決定了成像的逼真度。對於一名機器視覺工程師來說,掌握如何選擇鏡頭,如何選擇光源,如何確定打光方式是最基本的技能。
工業相機需要我們掌握光電知識,掌握相機感測器的區別,掌握圖像成像的基本知識如清晰度,動態范圍,視場角等等,這樣我們才能根據需求和場景選擇正確的相機,最快速的掌握這些知識的方法是買一台入門級單反來研究透這些成像參數和成像的關系。
2. 圖像處理部分
圖像處理我們一般理解是在PC機器上進行的,實際上在工業領域,大部分採用工控機,因為它穩定,加上有成本優勢。
近些年的發展,嵌入式硬體也在蓬勃發展,很多工廠對於小的需求比如控制幾百台儀表盤的開關和狀態監控,完全可以利用樹莓派等開源硬體實現。
對於入門者來說,可以優先掌握PC平台,X86平台的開發,在熟悉之後可以延展到嵌入式平台。
在軟體部分,大部分應用層採用C#,.net,QT,C++來實現,因此掌握這其中的一門編程語言是必備的;而在圖像演算法層面,典型的開源演算法有opencv,商用的有halcon,visionpro等,建議最開始可以先以halcon入門;如果在演算法層面想進一步深入,可以研究一下機器學習,這可能是未來的主要方向。
對於理論方面,更多的是掌握圖像處理的基本概念,這本書《機器視覺演算法與應用》,值得一看。
3. 運動控制部分
典型的運動控制卡如固高,可以入手研究一下。更為高級一點的PLC,也可以玩起來,這部分的難點在於,精度的矯正,因為很多場景和需求對精度的要求是非常高的。
除了以上三點,整體方案的搭建能力是至關重要的, 因為方案需要把這些部分都串起來,並且能夠和現實場景聯系起來,滿足實際的生產自動化需求。
而整體方案的搭建能力取決於
對生產工藝的深度理解
對所有組成部分之間的銜接,關系有深刻理解
這兩點都需要經過多個項目的經驗累積,才能給出一套好的方案。關於經驗方面可以參考我的其他幾篇文章:
2. delphi 和 C#到底選擇哪個比較適合開發機器視覺!!!!
在我的理解:
機器視覺當前的比較流行的開發模式是「軟體平台+工具包」
軟體平台:
1.VC:最通用,功能最強大。用戶多,和windows搭配,運行性能較好,可以自己寫演算法,也可以用工具包,而且基本上工具包都支持VC的開發。是大家主要選擇的平台。
2.C#:比較容易上手,特別是完成界面等功能比用VC+MFC難度低了很多,已經逐漸成為流行的使用平台了,演算法在調用標準的庫或者使用C#+C++混合編程。可以看到目前很多相機廠商的SDK都已經開始使用C#做應用程序了。
3.LabVIEW:NI的工具圖形化開發平台,開發軟體快,特別是做工控行業或者自動化測試行業的很多工程師,由於使用labview進行測試測量的廣泛性,所以都有labview的基礎,再調用NI的Vision圖像工具包開發,開發周期短,維護較為容易。
4.VB、delphi:用的人越來越少了。
5.其他:java等沒有看到人用過。
工具包:
1.halcon:出自德國MVTech。底層的功能演算法很多,運算性能快,用其開發需要一定軟體功底和圖像處理理論。
2.VisionPro:美國康耐視的圖像處理工具包。性能大多數演算法性能都很好,性能上沒有和halcon直接對比過,但是開發上手比halcon容易。
3.NI Vision:NI的特點是自動化測試大多數需要的軟硬體都有解決方案,有點事軟體圖形化編程,上手快,開發周期快,缺點是並不是每個軟體都非常厲害。視覺工具包的優勢是售價比大多數工具包或者演算法的天文數字便宜了不少,而且整個工具包一個價格,而不是一個演算法一個演算法地賣,性能方面在速度和精度沒有前兩種軟體好。
4.MIL:加拿大maxtrox的產品,是Matrox Imaging Library 的簡寫。早期推廣和普及程度不錯,當前似乎主要用戶還是早期的做激光設備的一些用戶在用,所以用於定位的較多。
5.CK Vision。創科公司的軟體包,相對前面幾個工具包來說價格優勢比較明顯,另外機器視覺需要的功能也基本都有,所以在國內自動化設備特別是批量設備同時需要保護版權的企業而言,用量很大,推廣也不錯。
6.邁斯肯:邁斯肯的視覺主要產品還是條碼閱讀一類,圖像工具包沒有用過,不了解,不評價。
7.OpenCV:感覺openCV更多的還是用在計算機視覺領域,在機器視覺領域其實不算太多,應為機器視覺領域當前主要的應用還是定位、測量、外觀、OCR/OCV,感覺這幾項都不是opencv的專長。
8.其他:其他還有一些廠家的圖像工具包,要麼市場影響力不大,要麼本人沒有用過,不評價
3. 人工智慧程序設計語言主要有哪些
典型的人工智慧語言主要有LISP、Prolog、Smalltalk、C++等。
在人工智慧手冊中介紹了七種人工智慧語言:
LISP,PLANNER,CINNIVER,QLISP,POP-2,SAIL,FUZZY。近百種人工智慧語言中,只有LISP和後起之秀Prolog是人工智慧研究和應用中占重要地位的兩種人工智慧程序設計語言。
4. 要做機器視覺,學LABVIEW還是VB好些
labvieW學的比較快,是可以提供成套的軟體和硬體設備驅動,適合做機器視覺,只是價格上有點。而VB只是基礎的編程語言,你需要自己編寫圖像處理程序,圖像採集還有設備驅動,比較復雜,不從事基層軟體開發,周期太長,不建議從這里開始。
國產的採集卡行,不建議使用國產的相機,全用國產的當然能降低成本
5. 適合人工智慧程序開發的編程語言有哪些
「人工智慧」這個詞一開始是在1956 年Dartmouth學會上提出的。從那以後,研究者們發展了眾多理論和原理,人工智慧的概念也隨之擴展。人工智慧是對人的意識、思維的信息過程的模擬。人工智慧開發主要學哪門語言?
據了解,人工智慧目前主要是機器學習實現的,而目前做機器學習和數據挖掘的主要語言是python。但主要原因並不是python效率高或者python和人工智慧有什麼不可分割的聯系,而是因為python是一門很好的膠水語言,可以方便的調用別人(用各種語言)寫的庫,而且表達清晰靈活。
實際上,機器學習的核心知識和python並沒有本質關系,python只是因為表達能力強,所以被廣泛用於機器學習開發而已。因此目前來看,Python是人工智慧的首選語言。
人工智慧時代的到來,讓人們不禁產生了一些思考,不管是好是壞。但是無論結果如何,這個時代究竟還是來了:
搭台,唱戲,台下的吃瓜群眾懵懂生活、不知不覺間被捲入,在技術迭代發展的洪流中,向來如此。在基礎技術維度,大數據管理和雲計算技術已經在國內生根發芽,從IaaS、PaaS到SaaS,逐漸轉變為大眾化服務的基礎平台:
騰訊、阿里、網路、華為等巨頭們依託自身數據、演算法、技術和伺服器優勢正著力構建各自的產業鏈閉環。而在應用技術維度,在機器學習、模式識別和人機交互三條技術路線下附著的機器視覺、指紋識別、人臉識別、智能搜索、語言和圖像理解、遺傳編程等眾多領域,正蓬勃興盛,也誕生了多家代表性企業。
也因為各企業的誕生,也有越來越多的企業需要人工智慧人才。所以,如果大家掌握了Python,是否就能更好地在人工智慧行業大展拳腳呢?
6. 機器視覺怎樣開始學halcon與c++還是c#搭配好
HALCON是德國MVtec公司開發的一套完善的標準的機器視覺演算法包,擁有應用廣泛的機器視覺集成開發環境維視圖像開發定製軟體維視圖像開發定製軟體。它節約了產品成本,縮短了軟體開發周期——HALCON靈活的架構便於機器視覺,醫學圖像和圖像分析應用的快速開發。在歐洲以及日本的工業界已經是公認具有最佳效能的MachineVision軟體。[1]HALCON源自學術界,它有別於市面一般的商用軟體包。事實上,這是一套imageprocessinglibrary,由一千多個各自獨立的函數,以及底層的數據管理核心構成。其中包含了各類濾波,色彩以及幾何,數學轉換,型態學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能,由於這些功能大多並非針對特定工作設計的,因此只要用得到圖像處理的地方,就可以用HALCON強大的計算分析能力來完成工作。應用范圍幾乎沒有限制,涵蓋醫學,遙感探測,監控,到工業上的各類自動化檢測。HALCON支持Windows,Linux和MacOSX操作環境,它保證了投資的有效性。整個函數庫可以用C,C++,C#,Visualbasic和Delphi等多種普通編程語言訪問。HALCON為大量的圖像獲取設備提供介面,保證了硬體的獨立性。它為百餘種工業相機和圖像採集卡提供介面,包括GenlCam,GigE和IIDC1394。
7. 機器視覺檢測系統編程用的什麼語言
一般二次開發用vb.net或者c#即可,如果想要自己寫演算法做開發,或者定製現有的演算法,建議使用C++