多模態無監督圖像轉換 | 機器視覺工程應用的開發思路 | 機器視覺
更多AI資訊,關注微信公眾號,搜索:九三智能控
前沿引領---多模態無監督圖像轉換
論文PDF全文下載,公眾號回復:20180417
代碼和預訓練模型獲取地址:https://github.com/nvlabs/MUNIt
論文Multimodal Unsupervised Image-to-Image Translation中,奈爾大學的Xun Huang、Serge Belongie聯合英偉達的Ming-Yu Liu與Jan Kautz提出了一種多模態無監督的圖像到圖像轉換問題的標準框架。
研究人員首先假設圖像的潛在空間能夠分解為內容空間和樣式空間,之後再進一步假設,不同領域的圖像內容空間相同,但樣式空間不同。
為了將一張圖像轉換為指定領域的圖像,研究人員在目標樣式空間中將圖像的內容代碼和隨機的樣式代碼重新組合。這樣,內容代碼編碼的信息在轉換過程中將被保留,而樣式代碼代表了與輸入圖像無關的剩餘的變體。
通過抽取不同風格的代碼,這個模型可以輸出風格多樣且多模態的圖像。
實驗表明,這個模型在建立多模態輸出分布時非常高效,並且和目前最先進的方法相比圖像質量更高。
這並不是英偉達在圖像轉換領域的首次探索,這篇論文是在去年英偉達的NIPS論文Unsupervised Image-to-Image Translation Networks中提出的模型基礎上改進的。
案例一:街道場景轉換
案例二:季節畫面轉換
機器視覺工程應用的開發思路
機器視覺工程應用的基本開發思路是:
一、圖像採集
二、圖像分割
三、形態學處理
四、特徵提取
五、輸出結果
下面以Halcon產品為例,對這四個步驟進行講解。
一、圖像採集
Halcon通過imageacquisition interfaces對各種圖像採集卡及各種工業相機進行支持。其中包括:模擬視頻信號,數字視頻信號Camera Link,數字視頻信號IEEE 1394,數字視頻信號USB2.0,數字視頻信號Gigabit Ethernet等。
Halcon通過統一的介面封裝上述不同相機的image acquisition interfaces,從而達到運算元統一化。不同的相機只需更改幾個參數就可變更使用。Halcon圖像獲取的思路:
1、打開設備,獲得該設備的句柄。
2、調用採集運算元,獲取圖像。
1、打開設備,獲得該設備的句柄。
open_framegrabber(DahengCAM, 1, 1, 0, 0, 0, 0, interlaced, 8, gray, -1, false,HV-13xx, 1, 1, -1, AcqHandle) //連接相機,並設置相關參數
Parameter
Values
Default
Type
Description
Name
DahengCAM
string
Name of the HALCON interface.
HorizontalResolution
1
1
1表示水平全部,2為水平1/2,表示圖像截取。
VerticalResolution
1
1
同上,表示垂直方向。
ImageWidth
<width>
0
integer
所需的圖像部分的寬度(0 代表了完整的圖像)。
ImageHeight
<height>
0
integer
所需的圖像部分的高度(0」是完整的圖像)
StartRow
<width>
0
integer
所需的圖像部分左上方的像素行坐標
StartColumn
<column>
0
integer
所需的圖像部分左上方的像素列坐標
Field
忽視
BitsPerChannel
忽視
ColorSpace
default, gray, rgb
gray
string
HALCON圖像的通道模式
Generic
忽視
ExternalTrigger
false, true
false
string
外部觸髮狀態
CameraType
HV-13xx, HV-20xx, HV-30xx, HV-31xx,HV-50xx, SV-xxxx
HV-13xx
string
所連接的攝像機系列型。
Device
1, 2, 3, ...
1
string
相機連接第一個設備號「1」,第二個設備編號「2」。
Port
忽視
LineIn
忽視
2、調用採集運算元,獲取圖像
grab_image (Image, AcqHandle) //(同步採集)完後處理圖像,然後再採集圖像。採集圖像的速率受處理速度影響。
grab_image_async (Image, AcqHandle,MaxDelay) //(非同步採集),一幅畫面採集完後相機馬上採集下一幅畫面,不受處理速度影響。其中第三個參數為:MaxDelay,表示非同步採集時可以允許的最大延時,本次採集命令距上次採集命令的時間不能超出MaxDelay,超出即重新採集。
圖像採集其他相關運算元:
grab_image_start,該運算元開始命令相機進行非同步採集。只能與grab_image_async(非同步採集)一起使用。
例子
* Select a suitable image acquisition interface nameAcqName
open_framegrabber(AcqName,1,1,0,0,0,0,default,-1,default,-1.0,
default,default,default,-1,-1,AcqHandle)
grab_image(Image1,AcqHandle)//進行同步採集
* Start next grab
grab_image_start(AcqHandle,-1.0)//命令相機進行非同步圖像採集開始
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)//讀取非同步採集的圖像
* Process Image2 ...
close_framegrabber(AcqHandle)
3、相機參數讀寫
讀取相機參數:
info_framegrabber( : : Name, Query : Information, ValueList)
寫相機參數:
set_framegrabber_param( : : AcqHandle, Param, Value : )
二、圖像分割
圖像分割的定義: 所謂圖像分割是指將圖像中具有特殊含義的不同區域分割開來,這些區域是互相不交叉的,每個區域都滿足特定區域的一致性。
1、基於閾值的圖像分割
threshold —採用全局閾值分割圖像。
格式: threshold(Image : Region : MinGray, MaxGray : )
自動全局閾值分割的方法:
(1)計算灰度直方圖
(2)尋找出現頻率最多的灰度值(最大值) (3)在threshold中使用與最大值有一定距離的值作為閾值代碼:
gray_histo(Regions, Image,AbsoluteHisto, RelativeHisto) //計算出圖像區域內的絕對和相對灰度值直方圖。
PeakGray := sort_index(AbsoluteHisto)[255] //求出出現頻率最多的灰度值
threshold(Image,Region,0,PeakGray-25)
bin_threshold — 使用一個自動確定的閾值分割圖像。
格式: bin_threshold(Image : Region : : )
dyn_threshold —使用一個局部閾值分割圖像。
格式: dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )
例子
mean_image(Image,Mean,21,21)
dyn_threshold(Image,Mean, RegionDynThresh,15,dark)
var_threshold —閾值圖像局部均值和標準差的分析。
格式: var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
2、基於邊緣的圖像分割:尋找區域之間的邊界
watersheds —從圖像中提取分水嶺和盆地。
格式: watersheds(Image : Basins, Watersheds : : )
watersheds_threshold —使用閾值從圖像中提取分水嶺和盆地。
格式: watersheds_threshold(Image : Basins : Threshold : )
3、基於區域的圖像分割:直接創建區域
三、形態學處理
形態學處理以集合運算為基礎。
腐蝕、膨脹、開操作、閉操作是所有形態學圖像處理的基礎。
開操作(先腐蝕再膨脹)使對象的輪廓變得光滑,斷開狹窄的間斷和消除細的突出物。
閉操作(先膨脹再腐蝕)消彌狹窄的間斷和長細的鴻溝,消除小的孔洞,填補輪廓線的斷裂。
形體學基礎運算元:
erosion1
dilation1 opening closing常用的形態學相關運算元
connection select_shape opening_circle closing_circle opening_rectangle1 closing_rectangle1 complement difference intersection union1 shaps_trans fill_up形態學高級運算元:
boundary skeleton四、特徵提取
1、區域特徵:
area
momentssmallest_rectangle1
smallest_circle
convexity:區域面積與凸包面積的比例
contlength:區域邊界的長度
compactness
2、灰度特徵
estimate_noise
select_gray
五、輸出結果
(1)獲取滿足條件的區域
(2)區域分類,比如OCR
(3)測量
(4)質量檢測
微信群&交流合作
- 加入微信群:不定期分享資料,拓展行業人脈請在公眾號留言:「微信號+名字+研究領域/專業/學校/公司」,我們將很快與您聯繫。
- 投稿、交流合作請留言聯繫。
http://weixin.qq.com/r/AC91bd-EloLprZsO93oS (二維碼自動識別)
推薦閱讀:
※【純乾貨】無監督核心聚類演算法
※不用很麻煩很累,三分鐘看懂「三大學習」
※從零開始實現KMedios聚類演算法
※林倞:Beyond Supervised Deep Learning--後深度學習時代的挑戰