本文將引見界說成績(jī)的方法,和我處理成績(jī)的方法。
目次
為何選擇“椅子成績(jī)”?
成績(jī)簡(jiǎn)略化:在清楚的圖象中停止“椅子辨認(rèn)”
進(jìn)一步的挑釁:找到椅子的地位
一個(gè)先輩的“對(duì)象辨認(rèn)”技巧——YOLO概述
將YOLO運(yùn)用于“椅子辨認(rèn)”
面對(duì)的挑釁和將來將采用的步調(diào)
為何選擇“椅子成績(jī)”?
起首我將論述我為何想要在一張照片中“數(shù)椅子”。
在Analytics Vidhya的辦公室里,平日會(huì)有10到15小我。但到了炎天,練習(xí)生們就會(huì)“涌入”我們的辦公室。所以,假如我們要在炎天開全員年夜會(huì),我們就必需要從其他房間里拉出一切空的椅子。
我是一個(gè)特殊懶的人,所以我想,有無一種算法可以或許直接告知我們哪間房間有余暇的椅子。如許一來,我們就不消挨個(gè)房間找椅子了,省時(shí)又省力。
這看上去是個(gè)再簡(jiǎn)略不外的成績(jī),但我可以用它來測(cè)驗(yàn)考試我取得的新技巧。深度進(jìn)修可以或許處理這個(gè)成績(jī)嗎?誠(chéng)實(shí)說,我也不肯定深度進(jìn)修畢竟能不克不及用來處理這一成績(jī),然則試一下總沒有害處,不是嗎?
成績(jī)中需完成的義務(wù)
既然你曾經(jīng)懂得了我們須要處理的成績(jī),那末接上去我會(huì)向你引見我處理成績(jī)的進(jìn)程。我會(huì)把這個(gè)成績(jī)分化為四個(gè)分歧的義務(wù)——
假設(shè)我們有一個(gè)房間的視頻資本,那末在視頻中有無涌現(xiàn)一把椅子?
假如視頻中涌現(xiàn)了椅子,那末這把椅子在房間的甚么地位呢?
這把椅子能否被占用了?假如有未被占用的椅子,那末未被占用的椅子數(shù)目是若干呢?
我們應(yīng)當(dāng)從哪間房間里搬空椅子?
我決議先處理一個(gè)絕對(duì)簡(jiǎn)略的成績(jī),然后再測(cè)驗(yàn)考試處理更龐雜的成績(jī)。按部就班,一步步到達(dá)我的目的。這也是我將這個(gè)成績(jī)分化為四個(gè)分歧的義務(wù)的緣由。在本文,我將具體引見前兩個(gè)義務(wù)的完成進(jìn)程;在后續(xù)文章中,我會(huì)持續(xù)引見后兩個(gè)義務(wù)的完成進(jìn)程。
成績(jī)簡(jiǎn)略化:在清楚的圖象中停止“椅子辨認(rèn)”
處理“椅子成績(jī)”的第一步,也是最簡(jiǎn)略的一步,就是斷定圖片中的房間內(nèi)能否有椅子。如今,我將這個(gè)成績(jī)進(jìn)一步簡(jiǎn)化——我將收集對(duì)視頻資本的需求疏忽,給收集輸出了我拍攝的幾張照片。
假定我給你兩張照片,你能告知我哪一張照片中有椅子嗎?
謎底是第一張,而你畢竟是怎樣曉得的呢?
由于你見過椅子許多許多次了,所以對(duì)你來講斷定圖片里有無椅子其實(shí)不難。換言之,你關(guān)于實(shí)際中的椅子長(zhǎng)甚么樣曾經(jīng)有了懂得。異樣的,我們可以練習(xí)一個(gè)神經(jīng)收集,讓收集幫我們完成這個(gè)辨認(rèn)的任務(wù)。
趁便提一下,我們之所以應(yīng)用神經(jīng)收集而不消其他的算法,是由于神經(jīng)收集是在圖象處置成績(jī)方面最壯大、最早進(jìn)的技巧。
所以,我將一個(gè)經(jīng)由ImageNet數(shù)據(jù)集預(yù)練習(xí)的神經(jīng)收集運(yùn)用到這些圖象上。
然則當(dāng)我讓模子辨認(rèn)圖象中的對(duì)象時(shí),涌現(xiàn)了一個(gè)成績(jī)——它不克不及精確地分離圖象中的對(duì)象。例如,下圖是模子針對(duì)圖象的輸入成果。
[[('n03179701', 'desk', 0.56483036), ('n03337140', 'file', 0.14689149), ('n04550184', 'wardrobe', 0.03918023)]]
它將圖片中的“椅子”毛病地?cái)喽ǔ闪?ldquo;書桌”。如許的成果其實(shí)使人很掉望,由于書桌和椅子的類似度不高,按理來講長(zhǎng)短常輕易辨別的。
處理“椅子照樣書桌”的成績(jī)
正如我在之前的文章中提到的,每當(dāng)我在樹立神經(jīng)收集時(shí)碰到成績(jī),我就會(huì)慢慢處理這個(gè)成績(jī)。我會(huì)將每一個(gè)步調(diào)列成一個(gè)清單:
第一步:檢討收集架構(gòu)
第二步:檢討神經(jīng)收集的超參數(shù)
第三步:檢討收集的龐雜性
第四步:檢討輸出數(shù)據(jù)的構(gòu)造
第五步:檢討數(shù)據(jù)的散布
在一番檢討評(píng)價(jià)以后,我發(fā)明模子的圖象輸出是不準(zhǔn)確的,由于我沒有準(zhǔn)確地處置圖象的縱橫比例。所以,為懂得決這個(gè)成績(jī),我添加了一個(gè)自界說代碼,該自界說代碼之前在GitHub上的一個(gè)keras成績(jī)中涌現(xiàn)過。更新的圖象以下圖:
[[('n02791124', 'barber_chair', 0.77817303), ('n03179701', 'desk', 0.090379775), ('n03337140', 'file', 0.033129346)]]
處置完這個(gè)成績(jī)今后,模子就可以開端正常地任務(wù),輸入準(zhǔn)確的成果了。
進(jìn)一步的挑釁:找到椅子的地位
如今,我們?cè)?jīng)斷定出了圖象中有一把椅子,那末接上去我們就要辨認(rèn)這把椅子在甚么地位。除這把椅子,我們還要辨認(rèn)出圖象中的人。我們須要經(jīng)由過程辨認(rèn)這小我來斷定這把椅子能否被占用了。這兩個(gè)義務(wù)(義務(wù)二和義務(wù)三)將有助于我們處理和處置更年夜的義務(wù),斷定作這把椅子能否被占用了。
與后面的義務(wù)一樣,我們將應(yīng)用一個(gè)預(yù)練習(xí)的收集,這個(gè)收集將給我們供給一個(gè)可接收的分?jǐn)?shù)。今朝,YOLO收集是“對(duì)象檢測(cè)”的最好模子,它可以或許及時(shí)地展現(xiàn)相當(dāng)不錯(cuò)的機(jī)能。在本文,我對(duì)YOLO收集做了簡(jiǎn)略的引見。上面,我們來看看若何應(yīng)用YOLO處理這個(gè)成績(jī)。
應(yīng)用YOLO停止“椅子檢測(cè)”
在體系中設(shè)置YOLO收集,我們可以依照以下簡(jiǎn)略的步調(diào):
第一步:
git clone https://github.com/pjreddie/darknet
cd darknet
make
第二步:
wget https://pjreddie.com/media/files/yolo.weights
用YOLO來處理我們的成績(jī),你須要輸出以下指令,而且供給你本身圖象的地位
./darknet detect cfg/yolo.cfg yolo.weights //data/image.jpg
在我們的圖象上運(yùn)用了YOLO以后,我發(fā)明其成果異常不錯(cuò)。上面是一些例子:
面對(duì)的挑釁和將來將采用的步調(diào)
固然開始停頓得異常順?biāo)欤粍t依然有成績(jī)會(huì)障礙這個(gè)項(xiàng)目標(biāo)成長(zhǎng)。以下是個(gè)中一些成績(jī):
成績(jī)一:這個(gè)YOLO模子照樣會(huì)涌現(xiàn)一些毛病,它其實(shí)不是一個(gè)100%準(zhǔn)確的模子。好比,鄙人面的這張圖片中,一個(gè)渣滓桶居然被毛病地辨認(rèn)成了一小我!
成績(jī)二:假如在一張圖象中,一把椅子蓋住了別的一把椅子,算法還能辨認(rèn)出這把被蓋住的椅子嗎?這是個(gè)值得思慮的成績(jī)。
除這些能夠涌現(xiàn)的成績(jī)以外,還有一些加倍現(xiàn)實(shí)的細(xì)節(jié)須要斟酌,好比說,算法推舉一個(gè)處理計(jì)劃須要多長(zhǎng)時(shí)光?算法須要運(yùn)轉(zhuǎn)甚么類型的硬件?等等。這些都是在把算法作為商品出售之前須要斟酌息爭(zhēng)決的成績(jī)。
異樣,像之前所說的,在這篇文章中只評(píng)論辯論后面兩個(gè)義務(wù),還沒有觸及到前面兩個(gè)義務(wù)。那末,接上去的義務(wù)就是盤算出房間內(nèi)的椅子數(shù)目,然后樹立起一個(gè)“端到端”的產(chǎn)物。
尾注
本文內(nèi)容涵蓋了圖象中的“物體檢測(cè)和辨認(rèn)”,個(gè)中的物體就是“椅子”。針對(duì)物體辨認(rèn),我們用了一個(gè)簡(jiǎn)略的預(yù)練習(xí)的模子來辨認(rèn)圖象中的物體。另外一方面,針對(duì)物體檢測(cè),我們應(yīng)用了YOLO收集——一項(xiàng)異常先輩的對(duì)象及時(shí)檢測(cè)技巧。
