<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當下基本所有的目標檢測類的任務都會選擇基於深度學習的方式,諸如:YOLO、SSD、RCNN等等,這一領域不乏有很多出色的模型,而且還在持續地推陳出新,模型的迭代速度很快,其實最早實現檢測的時候還是基於機器學習去做的,HOG+SVM就是非常經典有效的一套框架,今天這裡並不是說要做出怎樣的效果,而是基於HOG+SVM來實踐機器學習檢測的流程。
這裡為了方便處理,我是從網上找的一個資料集,主要是行人檢測方向的,當然了這個用車輛檢測、火焰檢測等等的資料集都是可以的,本質都是一樣的。
首先看下資料集,資料集主要分為兩個類別,一個類別是包含行人的,另一個類別是不包含行人的,首先看下不包含行人的:
接下來看下包含行人的:
看到這裡,其實就不難理解,這裡的SVM扮演的主要作用就是二分類模型了。
接下來我們需要對原始影象的資料集進行特徵提取計算,這裡是基於HOG的方式實現的,可以自行實現HOG特徵向量提取方法,也可以直接使用skimage提供的HOG提取器來一步實現,這裡為了方便,我是直接使用的skimage提供的HOG方法,核心實現如下:
def img2Feature(dataDir="data/",save_path="feature.json"): """ 特徵提取計算 """ feature=[] for one_label in os.listdir(dataDir): print("one_label: ", one_label) oneDir=dataDir+one_label+'/' for one_pic in os.listdir(oneDir): one_path=oneDir+one_pic print("one_path: ", one_path) #載入影象 one_img = imread(one_path, as_gray=True) one_vec = hog(one_img, orientations=orientations, pixels_per_cell=pixels_per_cell, cells_per_block=cells_per_block, visualize=visualize, block_norm=normalize) one_vec=one_vec.tolist() one_vec.append(one_label) feature.append(one_vec) print("feature_length: ", len(feature)) with open(save_path,"w") as f: f.write(json.dumps(feature))
HOG提取得到的向量維度很大,這裡就不進行展示了。
之後就可以訓練模型了,核心實現如下:
resDir = "results/" if not os.path.exists(resDir): os.makedirs(resDir) data = "feature.json" dict1 = DTModel(data=data, rationum=0.25, model_path=resDir + "DT.model") dict2 = RFModel(data=data, rationum=0.25, model_path=resDir + "RF.model") dict3 = SVMModel(data=data, rationum=0.25, model_path=resDir + "SVM.model") res_dict = {} res_dict["DT"], res_dict["RF"], res_dict["SVM"] = dict1, dict2, dict3 with open(resDir + "res_dict.json", "w") as f: f.write(json.dumps(res_dict)) comparePloter(dict1, dict2, dict3, save_path=resDir + "comparePloter.jpg")
這裡,我是同時使用了決策樹DT、隨機森林RF、支援向量機SVM三種模型來進行分類和對比視覺化,對比結果如下:
{ "DT": { "precision": 0.7573482282561567, "recall": 0.7597846737437716, "F1": 0.7584933696379963, "accuracy": 0.7584933696379963 }, "RF": { "precision": 0.9156160607479066, "recall": 0.8801773928046967, "F1": 0.893107332148193, "accuracy": 0.893107332148193 }, "SVM": { "precision": 0.9281402443868877, "recall": 0.9272928963585789, "F1": 0.9277128372009962, "accuracy": 0.9277128372009962 } }
為了直觀展示,這裡對三種模型的效能進行視覺化展示,如下所示:
接下來我們對訓練好的模型呼叫進行測試,檢視具體的效果,隨機選取了幾張網上的影象,測試結果如下:
整體看下來,效果表現一般,不過這個也只是主要以實踐流程為目的,並不是實際做專案的,而且各個環節都有優化提升的空間,模型的引數也都沒有調過。
到此這篇關於Python基於HOG+SVM/RF/DT等模型實現目標檢測[行人檢測]的文章就介紹到這了,更多相關Python目標檢測內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45