使用計(jì)算機(jī)視覺制作停車助手,讓您可以始終如一地將汽車完美對齊地停放在車庫中。
間接傳感
在傳感器領(lǐng)域,為了簡化和降低傳感成本,進(jìn)行間接測量是很常見的。例如,為了檢測人的存在以發(fā)出警報(bào),超聲波或熱傳感設(shè)備用于檢測運(yùn)動。然而,人類不是這樣工作的。雖然我們可能可以使用聲音來檢測周圍是否有人,但視覺是我們確定周圍事物的最佳方式。一般來說,視覺可能是我們最有價(jià)值和最有能力的感覺,它使我們能夠理解世界。
通過計(jì)算機(jī)視覺感知
最近,計(jì)算機(jī)視覺取得了很大進(jìn)展。與機(jī)器學(xué)習(xí)相結(jié)合的新算法使我們能夠從視頻捕獲中確定大量信息。然而,這些解決方案的成本遠(yuǎn)遠(yuǎn)高于其他類型的傳感,因此其用途僅限于監(jiān)控和工業(yè)應(yīng)用。成本主要來自捕獲和分析視頻所需的強(qiáng)大計(jì)算機(jī)。
廉價(jià)的計(jì)算機(jī)視覺 (CV) 傳感器可能會成為傳感技術(shù)的一項(xiàng)突破,原因有很多:
它可以做得比間接傳感器更智能。例如,在占用傳感器中,當(dāng)占用者不移動時(shí),間接傳感器會失效。即使沒有移動,真正的計(jì)算機(jī)視覺占用傳感器也可以檢測占用情況。
只需一個視覺傳感器就可以檢測到許多不同的事物。例如,同一設(shè)備可用于檢測位置、占用情況(即使現(xiàn)在很多人都在一個房間里)、火情、光照水平、設(shè)備狀態(tài)(燈是否亮著?電視是否開著?)、手勢控制,你的名字。如果您可以用自己的眼睛看到它,那么計(jì)算機(jī)視覺傳感器也可以檢測到它。
一旦開始使用,價(jià)格就會自行降低。基本上,這是大規(guī)模生產(chǎn)的結(jié)果。如果不生產(chǎn)占用傳感器、火災(zāi)傳感器、位置傳感器,甚至墻壁開關(guān),用基于攝像頭的手勢檢測代替,一切都只用一個 CV 傳感器完成,那么價(jià)格將比現(xiàn)在間接感應(yīng)的價(jià)格降低得多。
基于攝像頭的停車助手
由于上述原因,我想使用 FRDM-K82F 創(chuàng)建某種基于計(jì)算機(jī)視覺的傳感器。雖然我想到了很多想法,但只有一個是實(shí)用的、有用的,并且可以在比賽截止日期前完成。
將汽車始終停在車庫內(nèi)的同一位置是非常困難的。您最終會在側(cè)面過多,或者在前面或后面沒有留下足夠的空間。或者,也許你非常小心,但你的另一半?yún)s不是,如果你像我一樣,那會讓你發(fā)瘋。目前有解決方案,從低技術(shù)到“偽高科技”。這些是其中的一些:
我的想法是創(chuàng)建對用戶更友好的完全不同的東西。這個想法是使用計(jì)算機(jī)視覺制作一個系統(tǒng),可以始終指導(dǎo)您正確停車。比現(xiàn)有解決方案更類似于此:
如何運(yùn)作?
使用視頻圖像中的運(yùn)動檢測,系統(tǒng)應(yīng)該能夠指示車輛是否需要左移、右移或停止。
對用戶的指示必須來自一個非常簡單的基于燈光的界面,如下所示:
左右箭頭將指示汽車是否必須向左或向右轉(zhuǎn)向。中間的燈會顯示三種顏色,綠色表示前進(jìn),黃色表示謹(jǐn)慎前進(jìn),紅色表示停止。
為什么選擇帶有 FlexIO 的 FRDM-K82F?
像 UV7670 這樣的相機(jī)之前已經(jīng)連接到其他類型的微處理器。然而,在大多數(shù)這些實(shí)現(xiàn)中,微處理器積極參與從圖像中捕獲數(shù)據(jù)。這需要微處理器的大量處理能力。一旦圖像被獲取并在 RAM 中,真正的工作就從圖像處理功能開始。
Kinetis FlexIO 允許從 UV7670 傳感器中檢索圖像,幾乎無需微處理器進(jìn)行處理。一旦圖像被完全捕獲,中斷指示圖像已準(zhǔn)備好并在內(nèi)存中。在處理圖像時(shí),將同時(shí)捕獲下一張圖像。
這使得 FRDM-K82F 成為該項(xiàng)目目標(biāo)的理想平臺:一個非常低成本的圖像處理平臺。
為什么選擇 OV7670 攝像頭模塊?
OV7670 是一款 300Kpixels 相機(jī)。分辨率對于這個應(yīng)用程序來說并不那么重要,實(shí)際上在撰寫本文時(shí),程序以最低分辨率 (120x160) 使用它。OV7670 的關(guān)鍵是規(guī)模經(jīng)濟(jì)。因?yàn)樗谛⌒晚?xiàng)目中被大量使用,所以在包含鏡頭的分線板上組裝相機(jī)的成本約為 10 美元。它還具有其他優(yōu)點(diǎn),例如沒有紅外濾光片,使其適合使用紅外照明進(jìn)行應(yīng)用。
構(gòu)建說明
攝像頭組裝:FRDM-K82F 平臺的設(shè)計(jì)人員很高興能包含一個用于 FlexIO 的連接器,其引腳與 OV7670 完全相同。可以將 OV7670 直接焊接到 FRDM-K82F 板上,但是,我將 0.1” 插座焊接到板上。這樣我以后可以將其他相機(jī)或設(shè)備連接到 FlexIO 接口。
指示燈:這是項(xiàng)目中唯一需要一些人工來復(fù)制它的部分。指示燈是使用帶控制器的 WS2812B RGB LED 制成的,并使用泡沫板進(jìn)行安裝。使用 WS2812B LED 的原因是因?yàn)樗鼈兲峁┝撕艽蟮撵`活性(可以自定義顏色,并且可以連接任意數(shù)量的 LED),只需使用微控制器中的一個簡單 GPIO。指示燈示意圖如下:
LED 安裝在雙面原型穿孔板上,作為三個單獨(dú)的板。三塊板用扁平電纜連接。第一個板是唯一不同的,因?yàn)樗侠?a target="_blank">電阻。
如果有可用的 WS2812B 分線板,使用起來會更容易。
在泡沫板上切割燈的形狀。小心不要完全切開。也就是說,將紙板背面留在一側(cè)。剩余的紙板為 LED 提供了很好的擴(kuò)散器。這樣做兩次,并使用銳器為內(nèi)部邊界著色,以避免光線擴(kuò)散到創(chuàng)建的形狀之外。LED 板安裝在其中一塊泡沫板上,并使用雙面膠帶將所有東西放在一個組件中。
燈總成數(shù)據(jù)線連接到Port C pin 12,即FRDM-K82F板子中的PTC12:
軟件
至此,硬件準(zhǔn)備就緒,是時(shí)候在軟件中工作了。
首先安裝 Kinetis Design Studio。就我而言,我將它安裝在我的 MacBook Pro 上,雖然文檔不能保證它會起作用,但它對我來說完美無缺。
要刷新 FRDM-K82F 板,到處都使用 JLink JTAG 適配器,但是,我使用了 OpenSDAv2.1 接口,或者最常見的 mbed 接口。將 OpenSDA 端口連接到 MAC 后,它將顯示為 USB 驅(qū)動器,其中復(fù)制了 KDS 生成的 .bin 文件。
我這樣做只有一個問題。在某些時(shí)候,由于某種無法解釋的原因,配套的微處理器(實(shí)現(xiàn) OpenSDA 接口的那個)不知何故被擦除了。它沒有作為名為 mbed 的 USB 驅(qū)動器出現(xiàn),而是顯示為 BOOTLOADER。
只需將固件復(fù)制到 USB 驅(qū)動器中,幾分鐘后我就可以重新啟動并運(yùn)行。
我根據(jù)安裝 Kinetis Design Studio 時(shí)復(fù)制到示例文件夾中的 dev_video_flexio_ov7670_lite 示例啟動了我的軟件。有一段時(shí)間,我計(jì)劃完全刪除代碼的 USB 部分,但我沒有這樣做很好,因?yàn)樗兄谡{(diào)試應(yīng)用程序。
通常在計(jì)算機(jī)視覺應(yīng)用中,不是使用 RGB,而是使用黑白視頻。但是,從 RGB 轉(zhuǎn)換為基于強(qiáng)度的視頻需要太多的處理器時(shí)間,我想為圖像處理留下盡可能多的處理能力,所以我更改了演示程序,以便從 OV7670 傳感器捕獲的圖像在 YUV422 中完成。YUV 422 格式再次使用每像素 16 位,一個字節(jié)用于強(qiáng)度,另一個字節(jié)用于顏色信息。
這很容易在 flexio_ov7670.h 文件中更改,只需更改以下行:
.outputFormat = (ov7670_output_format_config_t*)&OV7670_FORMAT_RGB565,
至
.outputFormat = (ov7670_output_format_config_t *)&OV7670_FORMAT_YUV422,
然而,正如預(yù)期的那樣,這搞砸了通過 USB 發(fā)送的視頻。我嘗試了一段時(shí)間將東西的USB端更改為YUV422格式,但我沒有成功,所以為了保持USB視頻可用,我將Intensity轉(zhuǎn)換為RGB圖像,很多比將 RGB 轉(zhuǎn)換為強(qiáng)度更簡單。
在通過 USB 發(fā)送圖像之前,我還在圖像中添加了一些信息,以幫助調(diào)試應(yīng)用程序。這是我的視頻在帶有調(diào)試信息的 PC 端的外觀:
停車助手所需的軟件在parkasst.c文件中,基本上需要用YUV422圖像的緩沖區(qū)調(diào)用。所以這很容易遷移到其他平臺。然而,要復(fù)制整個項(xiàng)目,只需在 FRDM-K82F 板中加載項(xiàng)目中包含的 .bin 文件并按照項(xiàng)目中的說明添加 LED。
總結(jié)
這不算是一個盡如人意的項(xiàng)目。但是,還是有一些今后可以進(jìn)行拓展完善的功能。這些是完成該項(xiàng)目的下一個功能步驟:
使用藍(lán)牙低功耗將圖像上傳到手機(jī),這樣用戶就可以準(zhǔn)確地配置停車限制
將停車區(qū)更改為三角形而不是正方形。它需要是一個三角形來考慮相機(jī)的視角
-
傳感器
+關(guān)注
關(guān)注
2548文章
50664瀏覽量
751939 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1696瀏覽量
45927 -
FRDM
+關(guān)注
關(guān)注
1文章
11瀏覽量
2517
發(fā)布評論請先 登錄
相關(guān)推薦
評論