在一段時間內使用微控制器

閱讀賓果球第一和第二次曝光的群體。

這使得該過程顯著較慢,現在我們不僅具有兩種曝光,而且在兩個曝光之間的虛擬幀時間中,以允許在照明變化之後允許CMOS傳感器的恢復和容納。這就是為什麼整個成像過程實際上需要100毫秒。

掃描圖像的分辨率為220×220像素,具有8位像素深度。模擬灰度圖像僅由六位組成,其中剩餘的兩個位用於監視器上的藍色和紅色表示,因為灰度實際上是Greenscale。這些額外像素用作處理步驟之間的特殊標誌像素,在單步模式下可見,如藍色和紅色區域。在計劃開發和調試期間,這[原來是非常有用的。

整個過程分為17個步驟,也可以在單步模式下進行開發和調試目的。步驟顯示在屏幕的左上角(見下文),以及右上角有1毫秒分辨率的秒錶的當前狀態。這樣,很容易按照執行時間遵循並優化每個步驟。

球位置和伸展

要準確定位球,計算Formulas CX =ΣCixai/Σai和Cy =ΣCiyai/ΣAI的X,Y坐標,其中CX,CY是X,Y坐標和A是每個像素的值。由於背景主要是黑色,在該步驟之前,CX,Cy將大致在球的中心。然後,整個幀緩衝器被稱為2D塊,使得質心在坐標x = 110,y = 110處,其位於幀的中心。該中心標有2×2紅色像素(位7),僅用於開發人員方便,因為許多情況下的處理固件忽略位6和7。

接下來,測量球直徑,計算用於不同直徑的周邊上的平均像素值。然後,背景(直徑外部的每個像素)被設置為“白色”,或者更具體地,更具體地,綠色(值0x3F),以便更好地隔離黑區域。在處理過程中,背景將設置為白色或黑色的幾次,每次需要選擇黑色(墨水)或白色(紙張)區域。

不可能完美地將球形變為平坦的表面,但如果圖像是非線性變形的,則可以改善形狀,如步驟3圖像。小型16位微控制器沒有算術協處理器,並且使用標準三角網站將消耗太多的處理器時間。這就是為什麼使用三角查找表,您可以在秒錶(最佳最佳藍色數字)上看到,在這種情況下,拉伸程序的執行時間僅為11毫秒。您還可以看出球的中心部分大多是不變的,並且邊緣是非線性拉伸的,使得球形變形被最小化。

在步驟4中,類似於Photoshop中的Unsharp掩碼功能,創建了一個新的模糊圖像。由於另一個全幀緩衝器的RAM空間沒有足夠的RAM空間,它在輔助圖像上執行,該輔助圖像被縮放到分辨率44×44。 unsharp掩模的功能非常重要,因為它保證了相對於“紙張”像素的更好地選擇“墨水”像素。選擇意味著“位7的設置”,它將導致VGA屏幕上的紅色區域。

現在在同一幀緩衝區中存在兩個圖像,灰度一(比特0-5)和二進制1(位7)。後者用於預處理步驟6,其中消除了小孔和划痕。所選圖像首先擴展和收縮,然後重複該過程隨著購買的操作反轉 – 這導致邊緣正在平穩圓形和無垃圾。

組件操縱

經過更多預處理步驟之後,發生了更多的主要業務。第一個被稱為“連接的組件”,其中選擇隔離區域,並且獲取每個孤立區域。這包括x和y尺寸,x和y中心坐標,選擇的像素數,以及距離框架中心的歐幾里德距離。這將有助於將每個組件作為數字,大圓圈,下劃線或背景進行分類。在此階段,如果數字包括一兩位數,則也會清楚。

此步驟需要大量處理時間,大約200毫秒。另一個問題是連接組件的標準算法需要相同大小的輔助幀緩衝器,因此我必須創建一個新的算法,該算法利用相同的幀緩衝區,以及用於短期坐標的小表。

此時,處理器很容易選擇最佳的識別候選人 – 它是距離球中心最小的歐幾里德距離的圓圈。截至此圓圈內的連接組件被考慮在內,還有其他一切都會曝光。

有問題的球是特殊的OCR球,下劃線數字,So可以測量旋轉角度。現在,圓的中心是已知的,程序旋轉虛擬“T”形式,該形式對應於下劃線形狀,在360°圓周圍的512步,計算它包含的許多“墨水”像素。最高額定計數決定了旋轉角度,然後將幀緩衝器的2D塊移動到圖像的底部最佳角(步驟12在最左側圖像上),並且執行旋轉,將位圖移動到相對角的旋轉幀緩衝區。由於對數查找表,這組操作只需要50毫秒。

每一步都會保持更好。使用不同顏色選擇數字,然後將一個數字移動到安全距離,然後將每個數字縮放到已知分辨率為30×46。

認出

正如這個讀者是我的第一個OCR項目,我天真地認為,識別過程將是解決的最艱難的部分。在每一步完全調試並逐一檢查後,我達到了第17次和最後一步。正如我已經指出的那樣,我的初步計劃是選擇一個神經網絡,但是我嘗試了一個簡單的算法並與之播放。我用幾個球評估它,你無法想像我看到它完美的工作有多震驚!最後,位圖已正確呈現為兩個ASCII編號。

算法非常簡單。每個數字的位圖實際上分為三個部分,首先水平地分為三個部分,然後垂直地劃分。然後在每個列或行中計算活動像素,並創建直方圖。還有一個添加的第7直方圖,其傾斜,以幫助更好地檢測位點4和7處的橫向線。

只需3毫秒來為每個數字構建七個直方圖,並將它們與預先記錄的表進行比較,計算暗示中斷錯誤的總和並對結果進行排序。要使開發和調試更容易,所有直方圖都繪製到屏幕上。

在比較結果進行分類後,我們將獲勝者獲得每個數字(在本案件8和5)中,但我們的工作並未完成,直到一個更多的事情發生。必須評分的讀數質量,因此控制器可以估計結果是否足夠可靠。

如果球上的數字只有一個數字,則每個數字(0 … 9)的錯誤表被排序,並將“獲獎者”與第二個(近代)進行比較。如果比率很高,這意味著識別成功。在我們的情況下,它是147%,這意味著第二額定候選人比最好的候選人更多的錯誤更多。例如,第一個有100個“錯誤單位”,第二個有247.這是一個很好的評級,雖然許多評級是北北300%。通常,高於80%的評級應該被認為足夠安全。

但如果有兩位數是怎麼辦?鏈條只有其最薄弱的聯繫,所以該計劃將忽略更成功的識別數字(比率較高),並使用較弱的一個來實現成功的最終決定。

控制器有兩種基本的操作模式。在快速模式下,只有一個讀數,只有在第一次讀數不足的情況下才會重複(在球旋轉之後)。在較慢(“安全”)模式中,有兩種​​讀數的結果應該匹配。

讀者在Eleks-M公司在貝爾格萊德評估,生產賭場設備。測試是用一個額外的靜止式攝像機進行,該攝像機自動記錄每個球讀數,然後是按字母順序排序圖像(除了識別的球號而包含的文件名)進行了按字母順序排序,並且最終檢查手動進行。

整個測試持續了240小時,除了讀者之外,這將有助於壓力測試賓果鼓風機的耐用性。 10天后讀出115,000次,只有一個錯誤的讀數(球37被讀為7),讀者設置為快速模式。在安全模式下測試將毫無意義,因為可能永遠不會發生錯誤。

機械概念

賓果球的物理路徑是c

Leave a Reply

Your email address will not be published.

Related Post

機器人木琴使MIDI魔術機器人木琴使MIDI魔術

MIDI格式長期以來一直用於創造一些敲打電子音樂,所以看看[John P. Miller]如何在他明確的模擬自行車機器人木琴上應用標準時令人耳目一新。 在取出的紅色橡木外殼內部框架,25鍵儀器使用每個鑰匙的單個螺線管,這意味著它沒有同時醒目多個條的問題。這種額外的保真度真的有助於通過MIDI格式重建熟悉的旋律。軌道本身可以通過SD卡加載到設備上,並選擇與字符LCD和旋鈕的播放。 該軟件將特定曲目的全MIDI音樂譜轉換為與木琴兼容的25音符版本。考慮到鋼琴通常有88個鍵,需要一些音樂特許權來產生可識別的播放,但總體而言,這是一種令人愉快的音樂體驗。 也許很多關於這個項目的驚人是文件。如果您想構建自己的,您需要知道的所有內容都可以在線獲得,並且禁止焊接方法使該項目非常可訪問。幾年前發生了許多寫作,我們真的很興趣看看自從以來的改進是什麼。 機器人木琴在前段時間開始讓人想起這些自動管狀鐘聲。這些音樂黑客可以特別鼓舞人心,我們迫不及待地想看到更多。 [謝謝Assad Ebrahim的偉大尖端。]

廁所的日誌廁所的日誌

的網頁,最初想像於約會到90年代早期的論文中,是一個精彩的概念。可穿戴小工具將報告您的位置,健康和健康統計數據,以及對個人服務器的生理信息。如果鼴鼠變得更大,你的淋浴中的攝像機會告訴你的醫生。當時間到達時,您的汽車和卡車將篩選機艙空氣過濾器的使用壽命,並在抵達時獲得新的壽命。 Nanobots最終將是可編程的物質,變成椅子,房屋以及廚房區用品。笨拙的計算會使人類成為一個看不見的蜂巢。它是天堂,由較小的計算機,傳感器以及先進的機器人提供。 未來並沒有像我們計劃的那樣結果。雖然科學家們和工程師詢問他們如何讓他們如何製作互聯網連接的烤箱,但沒有人願意問為什麼任何人都想要那樣。至少我們有一個3Com奧黛麗出了這筆交易。 快速到今天,我們發現[克里斯托弗希爾]互聯網上的廁所。他為什麼這樣做?即使他不知道,它也可以從廁所的雙關語產生一個優秀的日誌。 此小工具的硬件是Digistump Oak,一個簡潔的Arduino兼容WiFi的推進板。 Digistump橡樹能夠發佈到粒子云,以及只有五行代碼,[Chris]能夠發佈到互聯網。該開發的傳感器是一種實惠的塑料浮動開關。該構建中只有三個元素,以及其中一個是4k7電阻。 現在,構建有一些問題。它是電池供電,但由於[克里斯]’廁所不足以足夠的牆壁出口。浴室裡有一點濕潤,而Clingfilm現在解決了這個問題,但是一些愚蠢的圓錐甘蔗會解決這個問題的理想方式。 [克里斯]同樣有兩個廁所,所以他將要求再開發一個。