halcon小結

持更html

應用範圍

(羅列自官方幫助文檔,之後有空了按照需求展開敘述)

1. 安全系統
2. 表面檢測
3. 定位
4. 二維測量比較
5. 二維碼識別
6. 二維位置定位
7. 二維物體識別
8. 光學字符識別
9. 機器人視覺
10. 交通監視和駕駛輔助系統
11. 三維測量比較
12. 三維物體定位
13. 三維物體識別
14. 特徵檢測
15. 完整性檢測
16. 顏色檢測
17. 一維碼識別
18. 印刷檢測

方法

  1. Blob分析 對前景/背景分離後的二值圖像,進行連通域提取和標記。核心思想是將一塊區域內 灰度突變 的範圍找出來。 threshold, connection, union, select_shape 這個用得太多了,就不舉例了。算法

  2. Hough轉換 霍夫變換,一種使用參數估計作特徵提取的技術。結合邊緣檢測使用,有的規則的邊緣,好比近似直線或者圓可能有部分小區域被擋住了,使用霍夫變換能夠估計出邊緣實際的形狀。 舉例: 這張圖上面的邊緣附近有一些特別亮的區域,致使這個邊緣檢測到的結果會與實際咱們關心的邊緣不一致,使用邊緣檢測結合霍夫變換,能夠估計出上邊緣的實際狀況,近似的是下圖中的這條紅線: 使用霍夫變換獲得邊緣線的同時,還能夠獲得邊緣線相對於垂直方向的角度。安全

    算子多以hough開頭
  3. 邊緣提取app

    1. 像素精度 sobel_amp:使用sobel算法求邊界,這裏用來求邊界的卷積模板是已經定義好的3*3模板,若是給大於3的模板尺寸,會自動先用S-2的其餘定義的模板對圖像作光滑處理。這裏求邊緣時作卷積在對應位置乘積以後還有一些操做,可選; derivate_gauss:經過求導求邊緣,這裏的求導方法有多種可選,有的能夠用來求垂直邊緣,有的求水平邊緣,有的都能求出來 edges_image:使用Deriche,Lanser,Shen或者Canny過濾器求邊緣,網上關於這些算法究竟是怎麼回事的介紹幾乎找不到,只能知道有這些選項 edges_color,frei_amp,kirsch_amp, laplace,prewitt_amp,roberts,robinson_amp等等,這些不一樣的求邊緣算法主要在定義的卷積核不一樣上。 舉例:
    2. 亞像素精度,精度上比像素精度更高一些,不羅列了,算子名稱中多包含contours,sub pix,xld edges_sub_pix:使用Deriche,Lanser,Shen或者Canny過濾器求邊緣
  4. 變化的模板 1. create_variation_model相關算子。 使用沒有問題的圖片建立模板,或者使用一些沒有問題的圖片訓練模板,再在目標圖像上找匹配,能夠用於識別單一的變化不大的物體,可以準確的識別出匹配的圖像,經過與模板圖像作比對,可以找出缺陷。 直接拿halcon中的圖舉例: 2. create_shape_model/create_scaled_shape_model相關算子。 3. create_metrology_model相關算子。ide

  5. 定位 主要仍是結合圖片上一些已知特徵作特徵篩選來作定位,或者經過模板匹配來作定位函數

  6. 對焦測距 利用多倍聚焦提取深度 depth_from_focus,同一物體不一樣聚焦下的圖組成的多通道圖片提取深度(是否能夠用在對理論上是同一平面的物體檢測凹陷或凸起上?這個模型可能只是一個估計出來的模型,是否可以發現細小的凹陷或凸起?須要解決的問題還有怎樣一次性快速獲取到不一樣倍數聚焦下的圖片,感受上有點相似於3d建模) 學習

  7. 多目立體視覺 須要在攝像機標定獲得的參數的基礎上作。 經過不徹底相同的角度拍攝的多張標定後的圖片重建3d表面,reconstruct_surface_stereo編碼

  8. 二維碼識別 用於二維圖像上的二維碼識別和解析,支持五種主流的編碼和3種GS1編碼模式的二維碼。spa

  9. 分類器3d

    1. 根據內部已經定義好的特徵(6大類:顏色,灰度,區域,旋轉,縮放,紋理),自動選擇合適的特徵作訓練,訓練的對象是屬於某一種類的那個區域的特徵(相關算子:get_feature_names,calculate_features,create_class_train_data,add_sample_class_train_data,select_feature_set_knn,classify_class_knn等)
    2. 使用各類分類器作分類,須要把模板圖片本身分好類,用模板圖片作訓練,各類分類器的使用都是差很少的,都是create_class_xxx,add_samples_image_class_xxx, train_class_xxx, classify_image_class_gmm。
    3. 二維多通道圖像根據兩個通道的特徵結合起來基於二維直方圖作分類
    4. 兩張單通道圖像基於二維直方圖作聚類分割
  10. 光度立體法 用多張不一樣光源拍攝的同一物體的圖片重建物體表面,經過對重建表面後獲取到的梯度圖像或者反射圖像再處理可以相對容易的找出凹凸的缺陷 photometric_stereo 更適合用在表面漫反射的物體上,不適合表面有較強鏡面反射的物體上。

  11. 光學字符檢測和識別

    1. 本身訓練並檢測須要識別的字符:create_ocv_proj, train_ocv_proj, do_ocv_simple
    2. 使用各類分類器作光學字符檢測:create_ocr_class_xxx, write_ocr_trainf, append_ocr_trainf, train_ocr_class_xxx
    3. 根據已有的模型直接檢測圖片種的字符,已有的模型有多種可選:create_text_model_reader, find_text
    4. 直接作字符檢測:select_characters
  12. 基於樣本的識別 經過一些圖片做爲樣本訓練以後再識別同類物體,每張圖片是一種物體 create_sample_identifier, add_sample_identifier_object_info, prepare_sample_identifier, train_sample_identifier, apply_sample_identifier, get_sample_identifier_object_info

  13. 激光三角測量 運用線結構光,舉的例子代碼太長了,還待研究。。。

  14. 幾何測量 角度測量,圖上的各類距離測量(這個可能能夠用於測量缺陷長度)

  15. 幾何轉換 縮放,旋轉,扭曲,平移

  16. 快速傅里葉變換 將圖片轉換到頻率域上,使用特定的過濾器作卷積,達到某種效果。可能用到的濾波器:平滑濾波器(gauss filter, binomial filter能夠用來抑制細小的噪聲),帶通濾波器(bandpass filter容許特定的波形經過)等。 在頻率域上作處理,去除除了中心點以外的高亮點能夠去除圖象上的噪聲。 處理先後: 處理前頻譜圖: 處理後頻譜圖:

  17. 輪廓線處理,和邊緣有點相似,不過輪廓線通常是亞像素精度的 找輪廓線,分割輪廓線,根據輪廓作圖形擬合 gen_contours_skeleton_xld

  18. 模板匹配 基於點,灰度值,描述符,相關性,形狀,組件的模板匹配,能夠處理輕微的變形 參考:http://www.javashuo.com/article/p-nypakgqi-dg.html

  19. 偏折術 能夠應用於3d建模,適合於表面有反光的物體的建模。具體用法待研究。

  20. 拼接 針對不在同一平面的物體或不能一次性拍攝完整的物體,拍攝多張照片後,將這些圖像拼接到一個平面上。 例如柱狀塑料瓶的包裝紙,一個很大的房間的全局圖。 這裏面用到的一個技術是將座標轉換到世界座標系中,這個技術也要求攝像機已經作過標定。

  21. 三維匹配

    1. 表面變形
    2. 基於表面
    3. 基於形狀
  22. 攝像機標定 目的是爲了創建空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關係,須要創建攝像機成像的幾何模型,求解這個模型的參數。須要求解出攝像頭的畸變參數。 通常圖像的四邊畸變得比較厲害,拍攝的用於標定的圖片應儘可能將標定板放在四周的都有一些。

    根據標定後的參數,能夠用於校訂拍攝到的畸變圖片,校訂過的圖片能夠用來作測量等處理。 標定後作校訂舉例: 校訂前: 校訂後:

  23. 深度學習 處理分類,目標檢測,語義分割。halcon中提供了三種預訓練好的模型可供再訓練。

  24. 特徵提取及分析 經過提取到區域的中心,孔洞,紋理,離心率,緻密性,面積,凸度,等一系列特徵作分析

  25. 形態學 膨脹,腐蝕,開,閉,區域填充,擴展,連通

  26. 一維碼識別 一維條形碼的檢測

  27. 運動檢測 針對同一場景下的連續拍照,有幾種經常使用的手段:

    1. 作光流檢測,定位移動的物體
    2. 作圖像減法,經過減到的結果檢測發生位移的物體
    3. 對兩張圖片作動態閾值分割,可以找出不一樣區域
    4. 作場景流檢測,定位

縮寫詞

  1. HNF:Hesse normal form,第一次在hough變換中遇到。
  2. ROI:region of interest,感興趣區域
  3. DFF:depth from focus

附錄:

  1. 已經定義好的過濾器大類:
    1. 算數相關:灰度的加減乘除,乘方,開方,三角函數,正反變換
    2. 位運算
    3. 顏色變換,圖像通道處理
    4. 求邊緣
    5. 圖像加強
    6. 傅里葉變換
    7. 幾何變換:縮放,移動,鏡像,旋轉
    8. 圖像修復相關
    9. 尋找線條
    10. 噪聲相關:添加噪聲
    11. 光流
    12. 角點檢測
    13. 場景流
    14. 光滑圖像
    15. 提取紋理
    16. 維納濾波:下降平穩噪聲
相關文章
相關標籤/搜索