技術論壇
發文時間 2020/02/19 作者 linda.lin
瀏覽次數 2227 留言數量 14 按讚 0
電腦視覺類 視覺辨識採果機器人
說到電腦視覺系統大家應該會想到採果機器人,或是辨識植物花朵名稱的APP等等,
其實就是讓機器學習如何看、辨識等是覺化的理解
但是你真的知道從0到100的辨識系統該如何建立嗎?
有哪些必備的軟體需要學習?又或者一定要哪些硬體呢?
歡迎曾經學過電腦視覺辨識的大家來分享一下吧!
發文時間 2020/02/20 作者 omnixri
按讚 1
電腦視覺發展至今已有數十年,近年來隨著硬體計算能力提升,產品價格下降,相關函式庫開發成熟,所以入手門檻就相對降低不少。從下面這張圖就可知道一個基本電腦視覺系統組成要有攝像頭、計算用主機、作業系統、開發工具,另外可搭配輸出入控制、通訊傳輸介面及顯示介面,如果需要運用深度學習這類較耗計算能力的算法時還可加上一些硬體加速裝置。
發文時間 2020/02/20 作者 omnixri
按讚 1
說到電腦視覺,以前要讀一堆數學加上學習各種程式寫作技巧才有機會實現,1990年開源電腦視覺函式庫OpenCV推出後就大大降低學習門檻,如今包含了各式各樣的應用,甚至也開始支援起深度學習這類的應用。
有興趣的朋友可以參考一下這份簡報,介紹了OpenCV的基本應用及開源深度學習工具OpenVINO。
參考資料來源:https://omnixri.blogspot.com/2019/12/20191225opencv.html
發文時間 2020/02/26 作者 laisan86
按讚 1
版主這麼問, 這坑很大耶! 我自己這幾年就跟著MakerPro、LASS社團裡面幾位專門做機器視覺的大大一邊玩一邊學
假如說需要的軟體、硬體, 那其實得問你的目標是甚麼以及你計畫要做到甚麼程度, 比方講我之前用來訓練辨識水果影像的, 就是我們北科大電子所的nVIDIA DGX-1! 因為我剛好有帳號~~但一般大大們恐怕沒有辦法用, 要不然的話光華商場賣有提供GPU的筆電其實也不錯, 像我的筆電還沒GPU, 也是可以跑訓練, 只是天荒地老而已...
所以, 得看你是要否自己訓練你要的標的物影像, 假設沒有而你都是使用已經訓練好的模型去跑, Intel NCS2神經棒對大多數應用來說就很夠了!
至於軟體方面, 我是自己都用Python3加上Inetl OpenVINO工具組, 另外我也用Google的Colab跑過好幾個, 看你要玩甚麼囉!
發文時間 2020/02/27 作者 allen chen
按讚 0
雖然我沒有實際建立或是使用的經驗,不過還蠻常在網路上滑到相關的資訊,就有人說到其實2012年是電腦視覺的一大突破年,因為有了深度學習的出現以及相關應用。因此衍伸出人臉辨識、物件偵測、車輛追蹤和街景分析等等。
發文時間 2020/02/27 作者 junwei01
按讚 0
就我的認知,電腦視覺其實就是許多領域的結合,像是有AI、數學計算、模型辨識、圖像辨識等,當然還有重要的深度學習以及機器學習拉~如果説到軟硬體方面,就有MATLAB、Python、Intel OpenVINO等。
發文時間 2020/02/27 作者 zhoujieren8
按讚 0
哇噻!版主的這個問題也太廣了吧!
有點難回答,不過我超推Jack大大所整理的資料
之前在台北有參加過大大分享的課程,覺得很受用
好像就是這一場的內容:https://omnixri.blogspot.com/search/label/OpenVINO
是有關機器手臂配合3D感測視覺系統的介紹!
感謝分享,裡面解決了我在實作上遇到的一些問題!
作者 kyriehong 發文時間 2020/03/20 按讚 0
發文時間 2020/03/01 作者 bioasura
按讚 0
說到電腦視覺系統大家應該會想到採果機器人,或是辨識植物花朵名稱的APP等等,
其實就是讓機器學習如何看、辨識等是覺化的理解
要做電腦視覺首先其實要懂一些影像基本的組成跟記錄方式, 過去會需要有許多的檔案格式讀取函示庫,
現在的時代似乎不用這些工具了, 比較有效的方法可以用OpenCV,裡面有許多已經寫好的影像檔案格式匯入函式指令.
當影像檔案匯入記憶體以後, 要懂得是RGBA影像內各個點紀錄的概念,
不同的程式語言或函式讀取完的每個點存在記憶體的顏色順序不一定相同(RGBA, BGRA... 不同函式最原始發展時候可能格式不一定相同,
但是通常就是會回到電腦記憶體格式可以依照順序存取的每個點的狀態),
所以其實這時候就可以把所有點的某一個顏色記憶體取出來, 例如RGBA這樣的方式儲存一個點的時候, 可以就單獨讀取R(紅色顏色) 在每個點的多紅的程度,
通常R(0-255),G(0-255),B(0-255), A(0-255), 分別就是紅,綠,藍,透明度的每一個點所記錄的數值,
到這裡其實用簡單的矩陣存取的方式, 不管哪個程式語言, 只要能處理到這樣, 就可以算是完整的讀出一張影像了,
後面可以將這樣的影像資料在丟到OpenCV的各個不同的影像處理函式,
例如各種不同的濾鏡, 就可以進行傳統的影像處理, 例如變成灰階, 或是去除雜訊的節點,
以及找出顏色差異相鄰的點, 進行找出可能是物件邊緣區域的偵測演算法等濾鏡,
而這些濾鏡其實跟哪種語言並沒有關係,
只要OpenCV有提供, 去github上面找, 就會有機會找到不同程式語言轉換成呼叫OpenCV相對應API的程式開發套件,
這樣其實重點可能會回到你對那一個程式語言比較熟悉, 然後有沒有人替你寫好可以直接用那個程式語言寫好的程式呼叫開發函式,
舉例來說, NodeJS有OpenCV4NodeJS, 看起來會寫NodeJS就可以呼叫OpenCV, 其實也只是別人寫好了一個函式套件,
讓你可以用NodeJS呼叫OpenCV4NodeJS之後, 再呼叫了OpenCV底層真正的影像處理函式.
而影像處理函式過去其實是許多的研究論文對於影像訊號分析的研究成果,
現在OpenCV已經把常用的論文所發展好的數學矩陣的操作方式寫好變成了一套函式庫,
所以其實不用完全懂原始的影像處理的概念也可以透過OpenCV呼叫某一個指令,
就相當於透過了某一篇論文的方法操作了一張原始儲存在記憶體裡面的影像,
了解了上面的概念以後, 其實我們就可以用許多OpenCV的濾鏡指令, 分別的針對同一張圖片透過幾次的濾鏡的操作, 就有機會得到一些有趣的應用.
目前比較方便的作法是使用Python去呼叫OpenCV的函式, 相對的可以透過Python其他矩陣轉換的指令,
以及圖表輸出的工具, 會比較容易觀察在處理前的原圖與處理過後的每個指令的輸出結果所產生的變化,
以上這些過程我們一般可以稱為影像處理, 一張圖在大部份的時候會需要先進行部份的影像處理以後, 會比較容易進行後面的分析跟比較 (找出相關可用的特徵),
過去OpenCV 3.x發展的版本大部分圍繞在濾鏡的操作, 而在OpenCV 4.x之後, 加入了類神經網路的分析套件, 可以比較方便的進行影像資料的預測與操作,
其實過去OpenCV 4.x之前, 大部分的人會將自行的將影像資料透過SVM, 或是自己找一個類神經網路的套件, 將影像資料自行加上類別的標示, 之後透過機器學習的方式,
開始進行資料訓練, 以及後續預測的演算法, 而前面描述的影像資料濾鏡的操作過程, 就是有效的幫助在進行影像資料進行標記之前, 可進行一些資料的雜訊處理或特徵抽取的有效方式.
發文時間 2020/03/02 作者 shuechang886
按讚 0
在還不認識視覺辨識系統之前,我就看過用excel去做AI影像辨識的文章,在這裡(https://buzzorange.com/techorange/2018/08/13/excel-ai/),不過說實在的現在技術越來越發達,只要透過OpenVINO這個大家常常使用的開源電腦視覺推論及神經網路工具包,電腦視覺辨識就可以上手,並且進行一系列的開發與測試,真的超級方便!
發文時間 2020/03/02 作者 hannibal34
按讚 0
python可以應用在許多領域上面,
從機器人研發、TensorFlow、人工智慧平台、網頁開發以及多媒體處理
以上這些都可以透過學習python來進一步利用
然而python也是建立電腦視覺系統強大的使用工具
你可以結合python、Arduino與OpenCV來整合以製作出視覺辨識的應用與物件!
發文時間 2020/03/03 作者 ypei91510
按讚 0
以上各位大大分享的觀點和想法都讓小的非常受用,但是其實我覺得想要建立視覺辨識系統,首先需要先想清楚你的目的以及使用的場域和對象等等,才能從中更有效的挑選學習的資訊。
發文時間 2020/03/04 作者 bioasura
按讚 0
當影像資料取得以後, 同時會了OpenCV部分重要的概念以後(先不要求全部都會, 可以針對某一些問題常用的部分練習), 例如erosion dilation (https://ithelp.ithome.com.tw/articles/10205488), 或者是彩色轉灰階, 或是最簡單的histogram的繪製方式, 然後了解如何將灰階轉換成二元影像的一些概念
後面其實可以直接練習用OpenVINO來做一些影像識別跟影片動態物件偵測的練習. (感覺這樣會比較有效率, 真正要做事情的話), OpenVINO的資料可以在github上面取得(教學文件與練習用的資料), https://github.com/opencv/dldt, 這裡面有程式碼, 有教學文件(pdf), 有練習用的影片資料(video), intel本身對於OpenVINO最新的版本的資料也全部都在裡面, 是持續更新的.
https://software.intel.com/en-us/openvino-toolkit
這一個是openvino的官方網站, 感覺透過openvino的架構來學習影像部分的應用, 會相對的比較簡單的可以知道目前有哪些已經訓練好的各種影像人工智慧模型可以使用, openvino是一個開發架構, 可以配合open model zoo來做大量更種不同影像或攝影機即時資料的練習.
https://github.com/opencv/open_model_zoo
這個網站的資料搭配openvino , 可以省下非常多自己找訓練資料模型的時間
發文時間 2020/03/20 作者 kyriehong
按讚 0
之前在資策會的智慧系統整合人才養成班時曾經上過一個月有關樹莓派OpenCV影像辨識的課程,當時練習的是以攝像鏡頭辨識靜態車牌,其實辨識率已經滿不錯的,但還是對背後的原理很感興趣,謝謝上面各位大大的資訊分享!
發文時間 2020/03/20 作者 laisan86
按讚 0
其實說起來實際開發倒也沒挺難啦~像這個就是我們LASS社團大大們去收集的彩色辣椒照片,然後用labelImg這類軟體自己一個個去標示,再透過Yolo V3訓練以後,就成了能在Windows 10 PC上執行的彩色辣椒影像辨識程式 ==> https://www.youtube.com/watch?v=bEMSMA1HgZg
比較麻煩是訓練的時候,剛好我是有我們台北科大電子所的nVIDIA DGX-1帳號可以用,所以訓練起來還好,不然要是有興趣的大大們可以找台有GPU的自己訓練起來看看
假如像我來說, 我平時主要就用Windows 10筆電, 至於Linux平台下目前機器視覺的方案比較多, 所以Windows 10下可以裝一些虛擬機器像是VMWare那種的軟體, 跑Linux然後掛那些方案看看
那像我是有人會給我免費單板玩的, 那就單板的SD掛Ubuntu最快! 不過要小心RAM夠不夠大就是, 假如是我建議, 64 bits的ARM系列微處理機加上至少2GB RAM, 當應用端可能很OK吧!
作者 laisan86 發文時間 2020/02/26 按讚 0