HALCON高級篇:圖像分類

2021-02-23 新機器視覺

點擊上方「新機器視覺」,選擇加"星標"或「置頂」

重磅乾貨,第一時間送達

分類

分類是對一組類別中單個實例對象劃分的技術術語。對象,還有現有的類別,是用特定的特徵來描述的,例如像素的顏色或者區域的形狀。為了定義類別,特徵必須被指定,例如通過已知對象的類別。在訓練之後,分類器將對象的特徵與有關類別的特徵做比較,並返回最大匹配的類別。根據所選的分類器,類別的可能性或者分類的可行度等可能額外的信息將被給出。

一般來說,可以區分兩種對圖像數據的分類方法。一種方法是基於單純的像素分類,並且基於顏色或者紋理去分割圖像。另一種方法則更廣泛,分類任意特徵,例如你可以基於區域特徵去分類區域,如形狀,大小,或者顏色。對於這裡介紹的編程方法,找重點放在第一種方法上。需要注意的是,實際上HALCON提供的OCR及時一種廣義的分類方法,其具有特定的算子。

HALCON提供了不同的分類器,最重要的分類器識神經網絡(多層感知機或者MLP)分類器,支持向量機(SVM)分類器,高斯混合模型(GMM)分類器,和K最近鄰(KNN)分類器。另外,盒分類器也是可行的,但是由於GMM分類會引起可比性的結果且也更穩定,這裡僅僅去描述GMM分類器。再者,更「簡單」的分類器也能用於圖像的分割,這些分類器中包含了2維像素分類class_2dim_sup或者class_ndim_norm,其可以被用來僅僅歐式分類,但這些方法的不靈活的,所以重點還是放在MLP,SVM,GMM,和k-NN分類器。如果你想用「簡單」分類器之一,請查看對應的例子即可。

對於特定任務,決定使用哪個分類器,且對於所選分類選擇合適的參數則更具有挑戰性,因為每個分類任務是不同的,因而需要不同的處理。HALCON提供了一些算子用於分類,在許多情況下,對於特定的任務和特定的訓練數據,你必須嘗試使用不同的分類器。除了所選用的方法,在幾乎任何情況下,你必須去結合參數去得到一個滿意的結果。允許額外的時間去測試,如果第一次測試沒有立刻得到滿意的結果,請不要灰心,分類是複雜的。

基本概念

分兩類由下面幾個基本步驟組成:

獲取圖像

當分類圖像的實收,對於訓練數據的產生和分類圖像,必須被獲取。

創建分類器

分類的第一步就是去創建一個新的分類器。這裡,你必須決定哪個分類器應用於你特定的分類任務。4個分類器(假設參數有一個最優的調整)的主要優勢和劣勢如下:

多層感知機:MLP分類器會有一個好的識別率且分類速度更快。作為交換,其訓練沒有SVM分類快,尤其對於巨大量的訓練集。如果分類是時間關鍵的,但訓練可以連線應用的話,MLP方法是一個好的選擇。一個拒絕類被返回,但是相比於GMM分類器,它可能會被利群點所影響,因而,推薦對拒絕類有一個額外精確的訓練。除此之外,如果你想額外的訓練樣本,你不應該追加再一個訓練,而是用老的和新的訓練樣本重複訓練。支持向量機:相比於MLP分類器,SVM分類會取得稍微更好的識別率和更快的訓練,尤其對於巨大量的訓練集。另外,新的訓練樣本的訓練可以被簡單的添加到先前的訓練。作為交換,其分類沒有MLP方法快,且並不能自動的獲取一個拒絕類。高斯混合模型:GMM分類的優勢是,由參數設置來控制,不匹配訓練類的特徵向量將被分配到一個拒絕類。另外,你可以在第一次訓練上應用第二次訓練,例如為了添加新的訓練樣本。GMM分類器的缺點是識別率沒有MLP或者SVM方法的好。還有,長度為15的特徵向量是被建議的,然而對於MLP和SVM分類器,500維的特徵向量也是可以的。K最近鄰:k-NN分類器的優勢之一是它具有很少且直觀的參數,同時,k-NN分類器可以用很少的訓練數據工作。原則上,每一類僅一個樣本就足夠得到合理的結果。K-NN分類器的訓練時所有分類器中最快的,其讓k-NN分類器對於自動特徵選擇和快速評估成為了首要選擇。缺點就是分類是相對較慢的,且分類結果沒有SVM和MLP分類器的好。根據所選的分類方法,你可用ceate_class_mlp,create_class_svm,create_class_gmm或者create_class_knn來創建分類器。

當創建了分類器,正確的參數設置對於後續分類的成功是至關重要的,對於不同的方法這些設置是很明確的。

訓練分類器

訓練由兩個重要的步驟組成,首先,用算子add_sample_class_mlp,add_sample_class_svm,add_sample_class_gmm,或者add_sample_class_knn將有代表性的訓練樣本,如每一類的一組特徵向量,添加到分類器中。如果你想用像素分類,如你想分割圖像為不同顏色或者紋理的區域,你可以用算子add_samples_image_class_mlp,add_samples_image_class_svm,add_samples_image_class_gmm,或者add_samples_image_class_knn。然後,你可以立馬插入一個單獨的多通道圖像,而不是許多特徵向量(每個像素一個)。在第二步,分類器可以用train_class_mlp,train_class_svm,train_class_gmm,或者train_class_knn訓練。需要注意的是在訓練階段複雜的計算被執行,因此,根據訓練樣本的數量和一些特定方法的影響,例如用於MLP分類的MLP大小,訓練可能花費數秒到幾個小時不等。

銷毀分類器

當你不再需要分類器的時候,依據所用的分類器,你可以用算子clear_class_mlp,clear_class_svm,clear_class_gmm,或者clear_class_knn去銷毀它。

來源:百家號  作者:老白說圖像

 End 

聲明:部分內容來源於網絡,僅供讀者學習、交流之目的。文章版權歸原作者所有。如有不妥,請聯繫刪除。

相關焦點

  • Halcon入門
    相對於opencv開源圖像庫而言,halcon的入門更加簡單。學習opencv需要一定的c++基礎。即使是學習opencv對應的c#版本emgucv,也需要c#編程基礎。因此,對於想快速上手機器視覺應用的人而言,學習halcon也不失為一種好的選擇。但是,如果想用好halcon這個視覺平臺,還是需要一定的圖像處理基礎。
  • Halcon實戰之基於MLP多層神經網絡的訓練學習
    早前已經學習了感知器學習算法,主要通過對那些錯分類的樣本進行求和來表示對錯分樣本的懲罰,但明顯的它是一個線性的判別函數;而感知器神經元(閾值邏輯單元),對於單個的感知器神經元來說,儘管它能夠實現線性可分數據的分類問題(如與、或問題),但是卻無法解決非線性問題,如邏輯學裡的異或(XOR)問題甚至是高階,那麼這樣的問題該如何利用簡單學習機器來解決呢?
  • Halcon編程語法
    本課介紹數字圖像處理技術原理及算子編程案例的課程,針對視覺軟體halcon的數據結構、圖像運算、圖形增強、圖形分割、形態學圖像處理、圖像測量進行了教學,結合大量的案例程序解說、編程示範與課後思考題,幫助學習者掌握各項圖像處理技術的原理
  • ​深度學習-關於圖像分類的經典10篇文章
    在計算機視覺任務中,圖像分類是最基本的任務之一,它不僅可以用於許多真實的產品,比如googlephoto的標籤和AI內容調節,而且還是許多更高級的視覺任務奠定了基礎,比如目標檢測和視頻理解。自從深度學習技術爆發以來,由於該領域的快速變化,初學者往往會覺得學習起來太困難,與典型的軟體工程學科不同,使用DCNN進行圖像分類的好書並不多,理解這一領域的最好方法是閱讀學術論文。但讀什麼論文呢?
  • 10篇論文帶你入門深度學習圖像分類(附下載)
    利用這些信號,程式設計師可以基於這種高級理解來進一步控制機器的行為。在許多計算機視覺任務中,圖像分類是最基本的任務之一。它不僅可以用於許多實際產品中,例如Google Photo的標籤和AI內容審核,而且還為許多更高級的視覺任務(例如物體檢測和視頻理解)打開了一扇門。自從深度學習的突破以來,由於該領域的快速變化,初學者經常發現它太笨拙,無法學習。
  • 盤點圖像分類的竅門
    實際上,由於目前的照相技術,我們大多數都在處理1080p或與1080p相差不大的圖像。     為了克服這點小困難,你可以小圖像大批量開始訓練。通過降採樣訓練圖像得到。然後,你可以將更多的它們組合成一個批次。使用大批量+小圖像,你應該能得到一些不錯的結果。為了完成網絡訓練,使用較小的學習速率和較小批量的大圖像對網絡進行微調。
  • halcon測量手繪圖形的面積
    先自己隨意畫一個線團,用halcon將其進行填充處理,測量出填充後的面積。
  • 今日Paper|小樣本學習;視覺情感分類;神經架構搜索;自然圖像摳像等
    為了解決這個問題,這篇論文提出了一個新的名為多源情感生成對抗網絡的多源域自適應方法,用於處理視覺情感分類。為了處理來自多個源域的數據,新模型通過端到端的循環一致對抗學習,學習如何找到一個統一的情感潛在空間,在該空間來自源域和目標域的數據共享相似的分布。在四個基準數據集上的實驗證明,在情感分類任務上,這篇論文提出的新模型顯著優於目前的最佳模型。
  • C#和halcon的混編程序出現序內存洩露、句柄持續增加、視覺程序運行越來越慢等問題的處理
    接下來排除C#  混編halcon代碼時可能的內存洩漏的地方在混編時,最重要的一個原則見下面的說明:摘自halcon文檔:The .net philosophy is to let the garbage collector remove unused objes.
  • 使用卷積神經網絡進行圖像分類
    為什麼使用CNN進行圖像分類?圖像分類通過從圖像中提取特徵,以觀察數據集中的某些模式。由於可訓練參數變得非常大,因此使用ANN進行圖像分類最終會在計算上造成很高的成本。例如,如果我們有一張50 X 50的貓圖像,並且我們想在該圖像上訓練傳統的ANN,以將其分類為狗或貓,則可訓練參數變為–(50 * 50)* 100圖像像素乘以隱藏層 + 100 偏差+ 2 * 100 輸出神經元+ 2 偏差= 2,50,302我們在使用CNN時使用了過濾器,過濾器根據其用途而存在許多不同類型。過濾器通過在神經元之間執行局部連接模式來幫助我們利用特定圖像的空間局部性。
  • 使用ResNet在iOS上進行AI圖像分類
    在這裡,我們將設置您的示例應用程式,設置模型,弄清楚如何處理應用程式中的分類請求,並將轉換後的ResNet模型添加到項目中。介紹深度神經網絡在諸如圖像分類等任務上非常出色。擁有一半像樣的GPU的任何人現在都可以輕鬆獲得十年前耗資數百萬美元的結果以及整個研究團隊。但是,深度神經網絡有一個缺點。
  • 簡單到出人意料的CNN圖像分類策略
    新智元報導  在這篇文章中,作者展示了為什麼最先進的深度神經網絡仍能很好地識別亂碼圖像,探究其中原因有助於揭示DNN使用讓人意想不到的簡單策略
  • TensorFlow圖像分類教程
    (本文使用預先標記好的數據以提高效率)訓練:將標記好的數據(圖像)提供給模型。有一個工具將隨機抓取一批圖像,使用模型猜測每種花的類型,測試猜測的準確性,重複執行,直到使用了大部分訓練數據為止。最後一批未被使用的圖像用於計算該訓練模型的準確性。分類:在新的圖像上使用模型。例如,輸入:IMG207.JPG,輸出:雛菊。這個步驟快速簡單,且衡量的代價小。
  • halcon深度學習 缺陷標記教程
    halcon深度學習 缺陷標記教程創作只為分享,分享在於相互學習,共同進步。
  • 手把手教你用PyTorch實現圖像分類器(第一部分)
    最後一個項目是用PyTorch創建一個102種不同類型的花的圖像分類器。在做這個final project的時候,很多同學都遇到了類似的問題和挑戰。當我接近完成的時候,我決定與大家分享一些在未來對他人有益的建議和見解。通過3篇短文,介紹如何實現圖像分類器的概念基礎——這是一種能夠理解圖像內容的算法。
  • 深度學習算法用於黑色素瘤圖像分類
    近期的研究成功論證了深度學習算法在皮膚科專家級水平上的可疑病變分類的應用,這些研究使用了大量的圖像和數據。首次研究是僅用圖像訓練出來的深度學習算法與大量不同臨床等級皮膚病專家得出的數據進行比較。1.引言  皮膚癌是皮膚白皙的人群易患的惡性腫瘤,黑色素瘤則是引發皮膚癌患者死亡的主要原因。
  • 圖像分類:一個更魯棒的場景分類模型
    如何根據圖像的視覺內容為圖像賦予一個語義類別(例如,教室、街道等)是圖像場景分類的目標,也是圖像檢索、圖像內容分析和目標識別等問題的基礎。但由於圖片的尺度、角度、光照等因素的多樣性以及場景定義的複雜性,場景分類一直是計算機視覺中的一個挑戰性問題。本次任務從400萬張網際網路圖片中精選出8萬張圖片,分屬於80個日常場景類別,例如航站樓、足球場等。每個場景類別包含600-1100張圖片。
  • 圖像分類入門,輕鬆拿下90%準確率|教你用Keras搞Fashion-MNIST
    原作 Margaret Maynard-Reid王小新 編譯自 TensorFlow的Medium量子位 出品 | 公眾號 QbitAI這篇教程會介紹如何用TensorFlow裡的tf.keras函數,對Fashion-MNIST數據集進行圖像分類
  • 圖像分類任務中的損失
    classification task 作 者 |Evgeny Semyonov 翻 譯 |天字一號、Zinuo、invictus maneo 審 校| 鳶尾、唐裡、Pita 圖像分類是機器學習中的一項重要任務
  • 我用Python實現了12500張貓狗圖像的精準分類
    在這篇文章中,我們將展示如何建立一個深度神經網絡,能做到以 90% 的精度來對圖像進行分類,而在深度神經網絡,特別是卷積神經網絡興起之前,這還是一個非常困難的問題