來源:ku77
openMV簡介
OpenMV是由美國克里斯團(tuán)隊(duì)基于MicroPython發(fā)起的開源機(jī)器視覺項(xiàng)目,目的是創(chuàng)建低成本,可擴(kuò)展,使用python驅(qū)動(dòng)的機(jī)器視覺模塊。OpenMV搭載了MicroPython解釋器,使其可以在嵌入式端進(jìn)行python開發(fā)。OpenMV基于32位,ARM Cortex-M7內(nèi)核的OpenMV-H7, 并結(jié)合各種攝像頭,可以進(jìn)行多種機(jī)器視覺應(yīng)用的實(shí)現(xiàn),比如人臉檢測(cè),物體分類等。
對(duì)于省錢黨來說這是一個(gè)開源的項(xiàng)目,所以有興趣的可以自己上網(wǎng)找相關(guān)資料自制一個(gè),可以省個(gè)一兩百塊大洋。安利一篇文章
一、硬件準(zhǔn)備
1.OpenMV
2.一根micro usb的數(shù)據(jù)線(一定要有數(shù)據(jù)傳輸功能的)
二、軟件準(zhǔn)備
1.在openMV官網(wǎng)下載openmv IDEhttps://book.openmv.cc/
IDE是由Qt Creator編寫,可以跨平臺(tái)使用,官網(wǎng)提供了windows、mac os、Linux ubuntu 32位和64位,以及樹莓派的版本,滿足各個(gè)平臺(tái)的開發(fā),使得其應(yīng)用更加廣泛。Windows系統(tǒng)就選第一個(gè)啦。
下載得到安裝包:
安裝過程一路Next,值得一提的是默認(rèn)安裝C盤,可以手動(dòng)修改安裝路徑為其它盤,不影響使用。
下一步可以連接上硬件:
電腦將自動(dòng)識(shí)別出一個(gè)U盤:
這是由于單片機(jī)燒入了固件程序?qū)?nèi)部的Flash虛擬成了一個(gè)U盤可以看到這個(gè)U盤容量特別小,因此在后期的使用過程中建議插SD卡。
用SD卡的好處多多:
1.SD卡也是一個(gè)文件系統(tǒng),當(dāng)上電的時(shí)候,如果插入SD卡,那么SD卡的文件系統(tǒng)就會(huì)自動(dòng)取代內(nèi)置的Flash文件系統(tǒng),每次上電,就會(huì)運(yùn)行SD卡中的main.py啦,還可以減少對(duì)stm32flash擦除次數(shù),延長壽命。
2.SD卡最大支持2TB的容量。因此可以保存些大的程序,還可以放置訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,也可以放置需要對(duì)比的圖片等進(jìn)行調(diào)用。
內(nèi)部放置了三個(gè)文件,其中main.py文件就是要運(yùn)行的程序文件。
注:有時(shí)會(huì)出現(xiàn)驅(qū)動(dòng)安裝不完整的情況,打開設(shè)備管理器可以看到有個(gè)感嘆號(hào),我們可以更新驅(qū)動(dòng)程序
官網(wǎng)上有非常詳細(xì)的解決步驟:在這
三、軟件的功能與使用
OpenMV提供了兩者閾值設(shè)置方案。分別是閾值編譯器和直方圖的方式選擇閾值。
閾值編譯器:優(yōu)點(diǎn),所尋找到的目標(biāo)顏色更加合理,其他相似顏色區(qū)域的干擾比較小。缺點(diǎn),調(diào)節(jié)LAB的最大最小值比較花費(fèi)時(shí)間。
直立方圖恰好相反,他很容易找到LAB的最大最小值的大體區(qū)間,但是容易受到相似顏色區(qū)域的干擾。所以,建議兩者配合使用。
先用直立方圖找到LAB的最大最小值的大體區(qū)間,再利用閾值編譯器對(duì)LAB的最大最小值進(jìn)行微調(diào)。
軟件安裝完成后在主菜單可以找到這個(gè)圖標(biāo):
打開這個(gè)軟件會(huì)跳出一個(gè)默認(rèn)的helloworld.py的例程(其它示例在文件選項(xiàng)可以看到),軟件頁面如下:
頁面左邊是代碼區(qū)域,右上角是幀緩沖區(qū)(可以顯示攝像頭拍到的),我們要選擇紅色盒子作為目標(biāo)對(duì)象,只需要在幀緩沖區(qū),拖動(dòng)鼠標(biāo)左鍵即可。右下角直方圖可以選擇四種色彩空間:
·RBG色彩空間:R代表紅色,B代表藍(lán)色,G代表綠色。它是一種線性色彩空間,其中顏色是通過紅色,綠色和藍(lán)色值的線性組合獲得的。(做顏色識(shí)別的功能時(shí)比較方便)
·灰度(GRAY)色彩空間:單通道格式,值為0~255,顏色值為黑白之間,0是黑色,255是白色。(處理識(shí)別數(shù)字或輪廓等二值計(jì)算時(shí)速度比較快)
·LAB色彩空間:Lab顏色空間中,L亮度;a的正數(shù)代表紅色,負(fù)端代表綠色;b的正數(shù)代表黃色,負(fù)端代表藍(lán)色。不像RGB和CMYK色彩空間,Lab顏色被設(shè)計(jì)來接近人類視覺。()
·YUV色彩空間:“Y”表示明亮度,也就是灰階值,“U”和“V”表示的則是色度,作用是描述影像色彩及飽和度,用于指定像素的顏色。
參考:常用色彩空間概念
根據(jù)直方圖(LAB色彩空間)可知,我們的L最大值選擇80,最小值為60。A最大值為40,最小值為-20。B的最大值為20,最小值為-10。(注:這個(gè)只需要包含絕大部分就行)
閾值編譯器只有LAB閾值和灰度閾值設(shè)置,由上述四圖可得,LAB分布值比較集中,所以選用LAB閾值。
之后進(jìn)行閾值編譯器設(shè)置:
左上方工具——>機(jī)器視覺——>閾值編譯器——>幀緩沖區(qū)。
可對(duì)要判斷圖像的LAB值進(jìn)行調(diào)整。注意:這個(gè)時(shí)候OpenMV會(huì)截取幀緩沖區(qū)內(nèi)照片(當(dāng)前的圖片)作為LAB值調(diào)整。所以我們采用閾值編譯器的時(shí)候,需要提前將目標(biāo)識(shí)別單位(紅色盒子)放在OpenMV攝像頭之前。再進(jìn)行操作。
根據(jù)直立方圖的值,我們調(diào)整LAB最大和最小值,盡可能地讓要目標(biāo)識(shí)別對(duì)象變成全白色。(注:即使沒有全部變成白色也不影響,反正最后會(huì)把所有沒有被濾除的白色區(qū)域變成一個(gè)大框)然后復(fù)制下方的LAB閾值。
(58, 80, 19, 51, -10, 21)和直方圖讀取的數(shù)做一個(gè)對(duì)比(60,80,-20,40,-10,20)。
在這里只是舉個(gè)例子,其它識(shí)別中,也可用其它的色彩空間進(jìn)行識(shí)別。
審核編輯:湯梓紅
-
usb
+關(guān)注
關(guān)注
60文章
7878瀏覽量
263723 -
機(jī)器視覺
+關(guān)注
關(guān)注
161文章
4321瀏覽量
119997 -
開源
+關(guān)注
關(guān)注
3文章
3218瀏覽量
42329 -
openMV
+關(guān)注
關(guān)注
3文章
39瀏覽量
9784 -
Micropython
+關(guān)注
關(guān)注
0文章
68瀏覽量
4703
原文標(biāo)題:OpenMV 初識(shí)
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論