2020機器學習結(jié)構(gòu)化學習(1)

naruto_vs_sasuke.png

結(jié)構(gòu)化學習

簡介

什么樣問題是結(jié)構(gòu)化學習隔箍,輸入和輸出都是結(jié)構(gòu)化數(shù)據(jù),所謂結(jié)構(gòu)化數(shù)據(jù)可以是以下這些數(shù)據(jù)結(jié)構(gòu)

  • 序列
  • 列表
  • 樹結(jié)構(gòu)
  • 定界框(bounding Box)
    在我們之前學習機器學習中輸入與輸出往往不是同的結(jié)構(gòu)梅尤,例如在CNN中我們輸入一張圖柜思,輸出分類的概率。而在結(jié)構(gòu)化學習輸入和輸出往往是同樣數(shù)據(jù)結(jié)構(gòu)巷燥。

結(jié)構(gòu)化學習應(yīng)用

  • 語音辨識(Speech Recognition)
  • 機器翻譯(Translation)
  • 目標檢測(object Detection)
  • 語法分析(Syntactic Paring)
  • 文本總結(jié)(Summarization)
  • 文本檢索(Retrieval)

模型結(jié)構(gòu)

F:X,Y \rightarrow R
表示輸入 X Y 這里用大寫表示一個結(jié)構(gòu)化對象赡盘,例如矩陣
\hat{y} = \arg \max_{y \in Y} F(x,y)
輸入 x 后會遍歷所有Y 中的 y 來最大值

目標檢測

在目標檢測中,我們輸入一張圖片缰揪,輸出BoundingBox 邊框矩形的(左上角點陨享,和右下角點)
X:Image \rightarrow Y:BoundingBox

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
import glob
%matplotlib inline
img = cv.imread("images/naruto_bouding_box.jpg")
img = cv.cvtColor(img,cv.COLOR_BGR2RGB)
print(img.shape)
cv.rectangle(img,(100,80),(350,300),(0,255,0),10)
plt.imshow(img)
(393, 699, 3)





<matplotlib.image.AxesImage at 0x129d9b850>
output_3_2.png

在這個火影識別任務(wù)中,輸入是圖片 img 和 bouding box((100,80),(350,300))

img = cv.imread("images/naruto_bouding_box.jpg")
img = cv.cvtColor(img,cv.COLOR_BGR2RGB)
print(img.shape)
cv.rectangle(img,(530,150),(580,220),(0,0,255),10)
plt.imshow(img)
(393, 699, 3)





<matplotlib.image.AxesImage at 0x12a34bb90>
output_5_2.png
img = cv.imread("images/naruto_bouding_box.jpg")
img = cv.cvtColor(img,cv.COLOR_BGR2RGB)
print(img.shape)
roi_img = img[80:300,100:350,:]
print(roi_img.shape)
plt.imshow(roi_img)
(393, 699, 3)
(220, 250, 3)





<matplotlib.image.AxesImage at 0x12c7e50d0>
output_6_2.png
roi_img_hist = roi_img.reshape((220* 250 *3,1))
print(roi_img_hist.shape)
roi_img_n, bins, patches = plt.hist(roi_img_hist, 10, facecolor='blue', alpha=0.5)
print(roi_img_n)
plt.show()
(165000, 1)
[13130.  7950.  8218. 10143. 11940. 18027. 25068. 37002. 10166. 23356.]
output_7_1.png

這個分數(shù)就會很低邀跃,因為bouding box (藍色矩形)位置不正確

bounding_boxes = np.array([
    [100,80,350,300],
    [530,150,580,220]
])

for rect in bounding_boxes:
    print(type(rect))
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
img_001 = cv.imread("images/naruto_001.jpeg")
img_001 = cv.cvtColor(img_001,cv.COLOR_BGR2RGB)
print(img.shape)
# roi_img = img[80:300,100:350,:]
# print(roi_img.shape)
plt.imshow(img_001)
(436, 474, 3)





<matplotlib.image.AxesImage at 0x12d59bb10>
output_10_2.png
y_001 = np.array([
    [50,250,160,300],
    [100,150,100,150],
    [300,400,120,200]
])
roi_img_001_dict = {}
for idx in range(len(y_001)):
    print(idx)
    print(y_001[idx])
    plt.subplot(1,len(y_001),(idx+1))
    roi_img_ = img_001[y_001[idx][0]:y_001[idx][1],y_001[idx][2]:y_001[idx][3],:]
    roi_img_001_dict[idx] = roi_img_.reshape(((y_001[idx][1] - y_001[idx][0])
                                              *(y_001[idx][3] - y_001[idx][2])*3))
#     roi_img.reshape((220* 250 *3,1))
#     print(roi_img_)
    plt.imshow(roi_img_)
# print(roi_img.shape)
# plt.imshow(roi_img_001)
0
[ 50 250 160 300]
1
[100 150 100 150]
2
[300 400 120 200]
output_11_1.png
# print(roi_img_001_list)
print(type(roi_img_001_dict))
plt.figure(figsize=(16,5))
for key in roi_img_001_list.keys():
    plt.subplot(1,3,(key+1))
    roi_img_001_n, bins, patches = plt.hist(roi_img_001_dict[key], 10, facecolor='blue', alpha=0.5)
<class 'dict'>
output_12_1.png
def generate_img_data(path):
    print(glob.glob(path + "/*.jpg"))
generate_img_data("./source")
['./source/naruto_bouding_box.jpg']

最后希望大家關(guān)注我們微信公眾號


wechat.jpeg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霉咨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拍屑,更是在濱河造成了極大的恐慌途戒,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件僵驰,死亡現(xiàn)場離奇詭異喷斋,居然都是意外死亡,警方通過查閱死者的電腦和手機蒜茴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門星爪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人粉私,你說我怎么就攤上這事顽腾。” “怎么了诺核?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵抄肖,是天一觀的道長。 經(jīng)常有香客問我窖杀,道長漓摩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任入客,我火速辦了婚禮管毙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘桌硫。我一直安慰自己夭咬,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布铆隘。 她就那樣靜靜地躺著皱埠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咖驮。 梳的紋絲不亂的頭發(fā)上边器,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音托修,去河邊找鬼忘巧。 笑死,一個胖子當著我的面吹牛睦刃,可吹牛的內(nèi)容都是我干的砚嘴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼涩拙,長吁一口氣:“原來是場噩夢啊……” “哼际长!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起兴泥,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤工育,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后搓彻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體如绸,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年旭贬,在試婚紗的時候發(fā)現(xiàn)自己被綠了怔接。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡稀轨,死狀恐怖扼脐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奋刽,我是刑警寧澤瓦侮,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站杨名,受9級特大地震影響脏榆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜台谍,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一须喂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧趁蕊,春花似錦坞生、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至任柜,卻和暖如春卒废,著一層夾襖步出監(jiān)牢的瞬間沛厨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工摔认, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逆皮,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓参袱,卻偏偏與公主長得像电谣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抹蚀,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容