色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于 OpenCV 的氣體泵掃描儀數字識別系統

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-14 23:12 ? 次閱讀
來源:小白學視覺
作者:努比


綜述

2012年iOS應用商店中發布了一個名為FuelMate的Gas跟蹤應用。小伙伴們可以使用該應用程序跟蹤汽油行駛里程,以及有一些有趣的功能,例如Apple Watch應用程序、vin.li集成以及基于趨勢mpg的視覺效果。

燃料伴侶

對此我們有一個新想法,該如何添加一個功能幫助我們在泵中掃描燃油,并在應用程序中輸入燃油信息?讓我們深入研究如何實現這一目標。

技術

對于這個項目的我們首先應該編寫一個簡單的Python應用程序以拍攝汽油泵的圖像,然后嘗試從中讀取數字。OpenCV是用于計算機視覺應用程序的流行的跨平臺庫。它包括各種圖像處理實用程序以及某些機器學習功能。除此之外我們希望可以先使用Python對其進行原型設計,然后將處理代碼轉換為C ++以在iOS應用程序上運行。

目標

我們首先要考慮以下兩個問題:

1.我們可以從圖像中分離出數字嗎?

2.我們可以確定圖像代表哪個數字嗎?

數字分割

如何確定圖像中的數字有多種方法,但是我提出了使用簡單的圖像閾值法來嘗試查找數字的方法。

圖像閾值化的基本思想是將圖像轉換為灰度,然后說灰度值小于某個常數的任何像素,則該像素為一個值,否則為另一個。最后,您得到的二進制圖像只有兩種顏色,在大多數情況下只是黑白圖像。

這個概念在OCR應用中非常有效,但是主要問題是決定對該閾值使用什么。我們可以選擇一些常量,也可以使用OpenCV選擇其他一些選項。我們可以使用自適應閾值而不是使用常數,這將使用圖像的較小部分并確定要使用的不同閾值。這在具有不同照明情況的應用中特別有用,特別是在掃描氣泵中。

將圖像設置為閾值后,可以使用OpenCV的findContours方法查找圖像中連接了白色像素部分的區域。繪制輪廓后,便可以裁剪出這些區域并確定它們是否可能是數字以及它是什么數字。

基本圖像處理流程

這是我在測試圖像處理中使用的原始圖像。它有一些眩光點,但是圖像相當干凈。讓我們逐步完成獲取此源圖像的過程,并嘗試將其分解為單個數字。


原始圖片

影像準備

在開始圖像處理流程之前,我們決定先調整一些圖像屬性,然后再繼續。這有點試驗和錯誤,但注意到,當我們調整圖像的曝光度時,可以獲得更好的結果。下面是使用Python調整后的圖像,相當于曝光(阿爾法)的圖像cv::Mat::convertTo這是剛剛在圖像墊乘法操作cv2.multiply(some/_img, np.array([some/_alpha]),


調整曝光

灰階

將圖像轉換為灰度。

轉換為灰度

模糊

模糊圖像以減少噪點。我們嘗試了許多不同的模糊選項,但僅用輕微的模糊就找到了最佳結果。

稍微模糊

閾值圖像轉換為黑白圖像

在下圖中,使用cv2.adaptiveThreshold帶有cv2.ADAPTIVE/_THRES/_GAUSSIAN/_C選項的方法。此方法采用兩個參數,塊大小和要調整的常數。確定這兩者需要一些試驗和錯誤,更多有關優化部分的內容。

閾值為黑/白

填補空白

由于大多數燃油泵都使用某種7段LCD顯示屏,因此數字中存在一些細微的間隙,無法使用輪廓繪制方法,因此我們需要使這些段看起來相連。在這種情況下,我們將轉到erode圖像來彌補這些差距。由于大家可能希望使用,所以這似乎向后看,dilate但是這些方法通常適用于圖像的白色部分。在我們的案例中,我們正在“侵蝕”白色背景以使數字看起來更大。

反轉圖像

在嘗試在圖像中查找輪廓之前,我們需要反轉顏色,因為該findContours方法將找到白色的連接部分,而當前的數字是黑色。


顏色反轉

在圖像上找到輪廓

下圖顯示了我們的原始圖像,該圖像在上圖的每個輪廓上都有包圍框。大家可以看到它找到了數字,但也找到了一堆不是數字的東西,因此我們需要將它們過濾掉。

輪廓過濾

1.現在我們有了許多輪廓,我們需要找出我們關心的輪廓。瀏覽了一堆氣泵的顯示和場景后,使用一套適用于輪廓的快速規則。

2.收集所有我們將分類為潛在小數的正方形輪廓。

3.扔掉任何不是正方形或高矩形的東西。

4.使輪廓與某些長寬比匹配。LCD顯示屏中的十個數字中有九個數字的長寬比類似于下面的藍色框高光之一。該規則的例外是數字“ 1”,其長寬比略有不同。通過使用一些樣本輪廓,我將0–9!1方面確定為0.6,將1方面確定為0.3。它將使用這些比率和+/-緩沖區來確定輪廓是否是我們想要的東西,并收集這些輪廓。

5.對潛在數字應用一組附加規則,在這里我們將確定輪廓邊界是否偏離所有其他潛在數字的平均高度或垂直位置。由于數字的大小應相同,并且在相同的Y上對齊,因此我們可以丟棄它認為是數字的任何輪廓,但不能像其他輪廓那樣將其對齊和調整大小。

預測

有兩個等高線輪廓,一個帶潛在位數,一個帶潛在小數位,我們可以使用這些輪廓邊界裁剪圖像,并將其輸入經過訓練的系統中以預測其值。有關此過程的更多信息,請參見“數字培訓”部分。

查找小數

在圖像中查找小數點是要解決的另一個問題。由于它很小,有時會連接到它旁邊的手指,因此使用我們在手指上使用的方法來確定它似乎有問題。當我們過濾輪廓時,我們收集了可能是十進制的正方形輪廓。從上一步獲得經過驗證的數字輪廓之后,我們將找到數字的最左x位置和最右x位置,以確定我們期望的小數位數。然后,我們將遍歷那些潛在的小數,確定它是否在該空間以及該空間的下半部分,并將其分類為小數。找到小數點后,我們可以將其插入到我們上面預測的數字字符串中。

數字培訓

在機器學習的世界中,解決OCR問題是一個分類問題。我們建立了一組訓練有素的數據,例如圖像處理中的數字,將它們分類為某種東西,然后使用該數據來匹配任何新圖像。一旦基本的圖像隔離功能開始工作,我就創建了一個腳本,該腳本可以遍歷圖像文件夾,運行數字隔離代碼,然后將裁剪的數字保存到新文件夾中供我查看。運行完之后,我會有一個未經訓練的數字文件夾,然后可以用來訓練系統。


由于OpenCV已經包含了k近鄰(k-NN)實現,因此無需引入任何其他庫。為了進行訓練,我們瀏覽了數字作物的文件夾,然后將其放入標有0–9的新文件夾中,因此每個文件夾中都有一個數字的不同版本的集合。我們沒有大量的這些圖像,但是有足夠的證據來證明這是可行的。由于這些數字是相當標準的,我認為我不需要大量訓練有素的圖像就可以相當準確。

k-NN工作原理的基礎是,我們將以黑白方式加載每個圖像,將該圖像存儲在每個像素處于打開或關閉狀態的數組中,然后將這些打開/關閉像素與特定的數字相關聯。然后,當我們要預測一個新圖像時,它將找出哪個訓練圖像與這些像素最匹配,然后向我們返回最接近的值。

整理好數字后,將創建一個新的腳本,該腳本將遍歷這些文件夾,獲取每個圖像并將該圖像與數字關聯。到目前為止,在大多數代碼中,一般的圖像處理概念在Python和C ++中都應用相同,但是在這里會有細微的差別。

在大多數此類應用程序的Python示例中,分類被寫入兩個文件,一個包含分類,另一個包含該分類的圖像內容。通常使用NumPy和標準文本文件完成此操作。但是,由于我想在iOS應用程序上重用該系統,因此我需要想出一種可以擁有跨平臺分類文件的方式。當時,我什么都找不到,因此最終編寫了一個快速實用程序,該實用程序將從Python中獲取分類數據并將其序列化為JSON文件,我可以在OpenCV的FileStorage系統的C ++端使用它。這不漂亮,但是我寫了一個簡單的MatPython中的序列化方法,它將為OpenCV創建合適的結構以在iOS端讀取。現在,當我訓練數字時,我將獲得NumPy文件供我的Python測試使用,然后獲取一個JSON文檔,我可以將其拖到我的iOS應用程序中。您可以在此處看到該代碼。

優化

一旦確定了數字隔離和預測的兩個目標,就需要對算法進行優化,以預測泵的新圖像上的數字。

在優化的初始階段,創建了一個簡單的Playground應用程序,其中使用了OpenCV提供的一些簡單的UI組件。使用這些組件,可以創建一些簡單的軌跡欄,以左右滑動并更改不同的值并重新處理圖像。圍繞該cv2.imshow方法創建了一個小包裝程序,該方法可以平鋪顯示的窗口,因為我討厭總是重新放置它們,

嘗試不同的變量

我們可以加載不同的圖像,并在圖像處理中嘗試變量的不同變化,并確定最佳的組合。

自動化

在每個圖像上測試不同的變量是上手的好方法,但是我們想要一種更好的方法來驗證是否更改了一個圖像的變量是否會對其他任何圖像產生影響。為此,我們想出了針對這些圖像進行一些自動化測試的系統。

我拍攝了每個測試圖像,并將它們放在文件夾中。然后,我用圖像中期望的數字來命名每個文件,并用小數點“ A”表示。應用程序可以加載該目錄中的每個圖像并預測數字,然后將其與文件名中的數字進行比較以確定是否匹配。這使我們可以針對所有不同的圖像快速嘗試更改。

自動測試輸出

更進一步,我創建了此腳本的不同版本,該腳本將嘗試對這組圖像進行模糊,閾值等變量的幾乎每種組合,并找出最優化的變量集將具有最佳的性能。準確性。該腳本在計算機上花費了相當長的時間才能運行,大約需要7個小時,但是最后提出了一組不同的變量,這些變量在我們手動測試時找不到。

結論

這是否是任何人實際上都會使用的功能尚待確定,但這在實現某些機器學習概念和使用OpenCV方面是一個有趣的練習。到目前為止,在我們的測試中,應用程序最大的問題是泵顯示屏上的眩光。根據泵上的照明和手機的角度,可能會導致某些掃描失效。

代碼鏈接:https://github.com/kazmiekr/G...

聲明:轉載請說明出處
推薦專欄文章

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1791

    文章

    47183

    瀏覽量

    238266
  • 數字識別
    +關注

    關注

    2

    文章

    19

    瀏覽量

    10140
收藏 人收藏

    評論

    相關推薦

    微軟已修復掃描儀USB連接問題

    微軟對其支持文檔予以更新,并宣告已將 Windows 11 版本 24H2 中的掃描儀 USB 連接問題處理好。 在此之前,Windows 11 24H2 的 eSCL 協議出現了故障,設備在需要
    的頭像 發表于 12-12 16:55 ?225次閱讀

    國產純硅振蕩器替換SITime用于三維掃描儀

    國產純硅振蕩器替換SITime用于三維掃描儀
    的頭像 發表于 12-04 10:18 ?113次閱讀
    國產純硅振蕩器替換SITime用于三維<b class='flag-5'>掃描儀</b>中

    如何將三維激光掃描儀與BIM結合使用

    將三維激光掃描儀與BIM(建筑信息模型)結合使用,可以充分發揮兩者的優勢,提高工程測量的精度和效率。以下是將三維激光掃描儀與BIM結合使用的具體步驟和注意事項: 一、前期準備 確定掃描目標 : 明確
    的頭像 發表于 11-28 10:18 ?179次閱讀

    三維激光掃描儀與無人機結合的應用

    三維激光掃描儀與無人機結合的應用為多個領域帶來了革命性的變化。以下是對這種結合應用的具體分析: 一、應用概述 三維激光掃描儀與無人機技術的結合,通過無人機搭載三維激光掃描儀進行空中作業,能夠
    的頭像 發表于 11-28 10:10 ?296次閱讀

    三維激光掃描儀使用技巧 三維激光掃描儀測量精度分析

    三維激光掃描儀使用技巧 三維激光掃描儀的使用技巧涵蓋了多個方面,旨在確保掃描過程的準確性和高效性。以下是一些關鍵的使用技巧: 穩定操作環境 :確保掃描過程中有一個穩定的操作環境,避免震
    的頭像 發表于 11-28 10:07 ?211次閱讀

    三維激光掃描儀應用領域 三維激光掃描儀與傳統測量工具比較

    三維激光掃描儀應用領域 三維激光掃描儀因其高精度、高效率和非接觸式的測量方式,在多個領域得到了廣泛應用: 測繪領域 :用于地形、公路鐵路、河道及建筑基地的測繪,提供精確的空間數據。 工業測量 :在
    的頭像 發表于 11-28 10:04 ?212次閱讀

    大幅掃描儀掃描地圖怎么操作

    1. 準備掃描儀和地圖 在開始掃描之前,確保您的大幅掃描儀已經安裝并正確配置。您可能需要安裝特定的驅動程序或軟件,以便掃描儀能夠與您的計算機通信。 檢查
    的頭像 發表于 10-14 15:47 ?572次閱讀

    蔡司激光三維掃描儀有效掃描金屬材料

    蔡司激光三維掃描儀因其高精度和多功能性,在工業檢測、逆向工程、質量控制等領域得到了廣泛應用。對于金屬材料的掃描,用戶常常關心的是ZEISS激光三維掃描儀是否能夠有效地完成這項任務。本文蔡司代理-三本
    的頭像 發表于 09-26 15:08 ?463次閱讀
    蔡司激光三維<b class='flag-5'>掃描儀</b>有效<b class='flag-5'>掃描</b>金屬材料

    何為電磁干擾(EMI)掃描儀,哪里需要它?

    什么是電磁干擾掃描儀?電磁干擾掃描儀(Electromagneticinterferencescanner)又稱EMI掃描儀,是屬于電磁兼容(EMC)測所試設備,具備干擾頻譜分析、定頻干擾成像功能
    的頭像 發表于 08-30 13:02 ?398次閱讀
    何為電磁干擾(EMI)<b class='flag-5'>掃描儀</b>,哪里需要它?

    如何選擇電磁干擾(EMI)掃描儀,看看這幾點

    在上期講完了電磁干擾(EMI)掃描儀的定義和應用以后,我們應該如何去選擇一款合適的電磁干擾(EMI)掃描儀?在當今復雜的電子設備環境中,選擇合適的電磁干擾(EMI)掃描儀對于確保產品質量、符合標準
    的頭像 發表于 08-30 13:02 ?500次閱讀
    如何選擇電磁干擾(EMI)<b class='flag-5'>掃描儀</b>,看看這幾點

    lidar激光雷達掃描儀有什么用

    于各個領域。 LiDAR激光雷達掃描儀的基本原理 LiDAR激光雷達掃描儀通過發射激光脈沖并接收反射回來的激光信號,來測量物體與掃描儀之間的距離。激光雷達掃描儀通常包括激光發射器、接收
    的頭像 發表于 08-29 16:58 ?782次閱讀

    基于OpenCV的人臉識別系統設計

    基于OpenCV的人臉識別系統是一個復雜但功能強大的系統,廣泛應用于安全監控、人機交互、智能家居等多個領域。下面將詳細介紹基于OpenCV的人臉識別
    的頭像 發表于 07-11 15:37 ?1.2w次閱讀

    工業級gom三維掃描儀的工作原理

    工業級gom三維掃描儀(如ATOS系列)的檢測原理主要基于結構光掃描技術(StructuredLightScanning)和光學三角測量原理。以下是其基本的檢測原理:1.結構光投射:掃描儀首先通過
    的頭像 發表于 05-14 16:45 ?883次閱讀
    工業級gom三維<b class='flag-5'>掃描儀</b>的工作原理

    泰來三維|如何輕松玩轉三維掃描儀中手持快速掃描模式

    如何輕松玩轉三維掃描儀中手持快速掃描模式,EinScan Pro 2X 2020系列EinScan Pro 2X plus三維掃描儀包含普通模式和精細模式
    的頭像 發表于 01-11 15:44 ?480次閱讀
    泰來三維|如何輕松玩轉三維<b class='flag-5'>掃描儀</b>中手持快速<b class='flag-5'>掃描</b>模式
    主站蜘蛛池模板: 天天狠狠色综合图片区| 成人亚洲视频| 日韩亚射吧| 国产亚洲精品久久无亚洲| 伊人伊人伊人| 欧美特级特黄AAAAA片| 国产VA精品午夜福利视频| 亚洲乱码中文字幕久久孕妇黑人| 久久伊人中文字幕有码| 爱人 qvod| 亚洲精品免播放器在线观看| 免费毛片在线播放| 国产97精品久久久天天A片| 亚洲欧美一区二区三区久久| 免费人成在线观看视频不卡| 国产成人mv 在线播放| 亚洲一日韩欧美中文字幕在线| 99精品99| 亚洲欧美日本国产在线观18| 国内精品久久久久久西瓜色吧| 最新2017年韩国伦理片在线| 三叶草未满十八岁| 久99视频精品免费观看福利| WRITEAS塞红酒瓶| 亚洲精品网址| 欧美性爱 先锋影音| 国产一级做a爰片久久毛片男| 90后美女乳沟| 午夜伦理伦理片在线观| 两个人看的www免费高清直播 | 久久精品中文騷妇女内射| younv 学生国产在线视频| 亚洲精品www久久久久久| 欧美 亚洲 有码中文字幕| 国产无遮挡色视频免费观看性色 | 小便japanesewctv| 免费光看午夜请高视频| 国产婷婷色综合AV蜜臀AV| 99热最新在线| 亚洲一区国产| 色综合久久中文色婷婷|