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

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

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

3天內不再提示

如何對結構光用格雷碼編碼 如何對編碼的結構光進行解碼

新機器視覺 ? 來源:新機器視覺 ? 作者:新機器視覺 ? 2022-12-21 11:06 ? 次閱讀

格雷碼是一種特殊的二進制碼,在結構光三維視覺中,常常被用于編碼。比起我們常見的二進制碼,格雷碼具有相鄰數字的編碼只有一位不同的優點,這個優點對于解碼而言十分重要,可以減少光解碼的錯誤率。下面我們可以看下如何對結構光用格雷碼編碼,并如何對編碼的結構光進行解碼

以5位格雷碼為例,5位格雷碼可以對32個像素位置進行編碼,由之前的文章可以知道,我們在計算結構光三維重建時,只需要對結構光圖片的一個方向編碼,以常見的列格雷碼為例,如圖所示是5位列格雷碼編碼圖片集。

490d0dac-8044-11ed-8abf-dac502259ad0.png

圖中我們對每個像素點進行了格雷碼編碼,每一張圖片都代表了格雷碼的某一位,以圖片第1列為例,其格雷碼編碼為00001,則前4張圖片中第一列的的格雷碼編碼的條紋都是黑色,代表0,而最后一張圖片第一列的格雷碼編碼是白色,代表1.

格雷碼的解碼很簡單,只要把投影的格雷碼結構光再還原回十進制數字,我們就能知道相機中的像素點(uc,vc)對應的是投影圖片的哪一列(up)了。想要得到一個好的三維重建結果,主要是對相機捕捉到的結構光進行準確的二值化操作,使得相機圖片中每個像素點都能夠正確解碼。

常見的二值化操作有很多,最簡單的是設一個全局灰度閾值,對灰度值高于閾值的像素點置1,對灰度值低于閾值的像素點置0。或者利用局部自適應閾值對圖片進行二值化操作等·。常見的利用每個像素點周邊灰度信息的二值化操作,往往不能夠滿足格雷碼結構光解碼的二值化需求。因為使用結構光的環境往往是未知且復雜的。比如同樣的結構光光強照在黑色物體表面的亮度比照射在白色物體表面的亮度要低。這意味著同樣的光條紋在不同物體上獲取的灰度值不同。由于不能提前預知環境中的物體表面信息,僅僅靠簡單的利用像素點及其周周圍灰度值的分布得出該像素點當前是來自結構光的亮條紋還是暗條紋是及其不準確的。

雖然由于環境光,以及物體表面材質的原因,一幅圖像中像素的亮度(灰度值)通常是不均勻的,無法直接利用一張圖片呈現的灰度信息對結構光解碼,但是我們可以利用結構光系列圖片來幫助獲取像素點當前是亮條紋還是暗條紋的信息。以上圖的格雷碼編碼為例,一個5位的格雷碼編碼需要投影5張結構光圖片,假設有一個編碼為 11011的格雷碼條紋打在物體表面上,,在連續投影的5張格雷碼圖片中,物體表面被編碼照射的位置既經歷過暗條紋(編碼為0)又經歷過亮條紋(編碼為1)。不過由于每張格雷碼編碼圖片的光源編碼不同,而且結構光光源在物體表面上形成的漫反射不同,當結構光編碼圖片不一樣時,即使是同樣經歷亮條紋照射,該位置的亮度(灰度值)也是不同的。總的來說,對于同一個位置,可以近似認為其被亮條紋照射到的亮度總是高于其被暗條紋照射到的亮度。那么對于一個像素點在一張圖片中的二值化可以用如下方法。

首先找到像素點在系列格雷碼圖片中最大的灰度值,記為Imax,并找到該像素點在系列格雷碼圖片中最小的灰度值,記為Imin。對于每張圖片,我們可以這樣計算,

In=(I-Imin)/(Imax-Imin)

其中I是該像素點在當前圖片下的亮度,In可以看做是被歸一化(normalize)后的灰度值,顯然In的取值范圍是[0,1]的。由上述公式可以看出,如果該像素點當前經歷的是暗條紋,其值會接近最小的灰度值,In接近0,反之,In會接近1, 于是我們可以設計一個閾值,比如0.5,即當In大于0.5時,我們認為其值是偏亮的,此時像素經歷的是亮條紋編碼,反之,如果In小于0.5時,該像素此時經歷的是暗條紋編碼。值得注意的是,這個方法對于編碼全為0的點,或者編碼全為1的點,會有影響,因為編碼全0的點和編碼全1的點不會同時經歷明暗變化。解決方法是避開這個編碼,或者額外投圖片讓所有編碼位置都能經歷全0或者全1的過程。

上述方法的前提是近似認為被亮條紋照射到的亮度總是高于該位置被暗條紋照射到的亮度。實際上這個假設成立的前提是物體間沒有漫反射,以及投影投射的光之間不會互相干擾。在一些特殊的位置,是有可能物體在經歷亮條紋時其亮度值比其經歷暗條紋時要暗。因為每張格雷碼圖片總體的光分布是不一樣的,如上圖的第一張和最后一張,第一張光主要分布在右邊半邊,而最后一張條紋光很細,是明暗相間的。不一樣的格雷碼圖片的光強分布,會造成物體間漫反射的光強不一樣,導致其經歷暗條紋時周圍物體間漫反射到的光遠大于結構光光源發出來的光。實際上這是有可能的,比如該像素點處于某個物體對的陰影部分,一般情況下這樣的點是沒有光變化的,因為結構光本身無法直射到該位置,但是因為其周邊物體漫反射的光有可能導致這個位置的光強發生劇烈變化。出現該位置經歷暗條紋時光強比經歷亮條紋時還要強。為了解決這類特殊的點,論文[2] 給出其思路如下:

49283276-8044-11ed-8abf-dac502259ad0.png

如圖所示,我們可以對每幅格雷碼編碼的條紋做一個逆向圖,把原來編碼條紋中的1的位置變為0,0的位置成1。這樣我們把每一幅編碼圖片變成了一對編碼圖. 我們可以通過比較一對編碼圖中每個像素的灰度差值來判斷其值為0還是為1。這個很容易理解,因為如果編碼是亮條紋,則其逆向編碼是暗條紋,則圖片上編碼是亮條紋的時候對應的點比編碼是暗條紋(逆向)的時候對應的像素點更亮,即灰度值更高。反之亦然, 這樣就可以簡單地對相機圖片上的結構光條紋解碼了。

這個思路很簡單,對大部分相機圖片上的點,這樣的解碼效果就足夠好了。但是仍然不能解決上述提到的問題。對于部分點,其經歷暗條紋時仍舊可能比經歷亮條紋時灰度值要更高。于是論文【2】在上述思路上,再增加了一部分想法,如果我們能求出當前灰度值中可能的來自結構光直接光源的成分的比例,就可以幫助我們辨別出該點是否經歷暗條紋或者亮條紋。具體計算規則如下:

493f74e0-8044-11ed-8abf-dac502259ad0.png

其中p指像素坐標,Lp+ 是像素在格雷碼系列圖中灰度最大值,Lp-是像素在格雷碼系列圖中灰度最小值。Ld可以看作是該像素點來自直接光源的灰度值,Lg可以看作來自其他光源(物體間漫反射和環境光)等的光源的灰度值。對于大部分情況,顯然來自投影光的光強較強,Ld>Lg。但是對于部分點Ld

對每個像素點p和其灰度值I,有如下二值化規則其中m是一個比較小的常數閾值,I_inv是條紋結構光的逆向圖。

I

Ld>Lg 且滿足 I>I_inv 該點二值化為1

Ld>Lg 且滿足I

ILg 該點二值化為0

I>Lg 且滿足I_inv

不符合以上所有條件的點為不確定點

有了以上的二值化方法,格雷碼的編碼和解碼都不是什么太大的問題,解碼后可以根據筆者之前文章提供的三維數據計算方法得到較為準確的物體三維信息。

在文章的最后,筆者想討論下為什么格雷碼編碼比一般的二進制編碼要好。我們知道格雷碼最大的優點是十進制相鄰數字編碼只相差一位。那為什么這樣就比普通二進制編碼好呢?我們知道,解碼最容易出錯的點,往往是黑白相間的邊界點,相機拍攝到的黑白相間的邊界點往往是一個過渡灰度,很容易導致解碼錯誤,所以相鄰的數字間位數差別越多,其黑白相間的變化越多,自然出錯的概率也更大。對于這一點,其實有一個圖片很直觀感受到,如果我們對每個像素進行格雷碼編碼,那么無論多少位編碼,在其編碼的最后一張圖片上,條紋通常是非常細的,如果是普通二進制編碼,其最后一張細條紋圖片是每個像素之間編碼都不一樣,對一幅圖片從左到右呈現010101…的變化,而如果用格雷碼編碼則會呈現0110011…的變化,明顯格雷碼編碼其投影條紋更粗,更不容易解碼出錯。

本文解碼方法參考論文:

[1] High-accuracy, high-speed 3D structured light imaging techniques and potential applications to intelligent robotics

[2] Robust Pixel Classification for 3D Modeling with Structured Light

編輯:黃飛

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

    關注

    6

    文章

    940

    瀏覽量

    54814
  • 格雷碼
    +關注

    關注

    2

    文章

    34

    瀏覽量

    13185

原文標題:結構光 | 格雷碼解碼方法

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是

    (Gray code),又叫循環二進制或反射二進制 在數字系統中只能識別0和1,各種數據要轉換為二進制代碼才能
    發表于 11-11 09:34 ?7339次閱讀
    什么是<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    常用編碼(BCD編碼、余3反射、奇偶校驗)

    反射(循環)十進制數 二進制數 十進制數 二進制數
    發表于 04-11 10:00

    簡介及格與二進制的轉換程序

    ] 。  屬于可靠性編碼,是一種錯誤最小化的編碼,因為它大大地減少了由一個狀態到下一個狀態時電路中的混淆。由于這種
    發表于 04-22 09:00

    什么是BCD、8421、余三

    的是8421BCD,無權用得較多的是余三,我們通常所說的BCD
    發表于 11-03 17:36

    的規則和應用問題?

    今天看到一個計數的程序,搜了下定義,覺得還是云里霧里,定義寫的是若任意兩個相鄰的代碼只有一位二進制數不同,則這種編碼
    發表于 08-20 14:41

    運算研究

    運算研究 在數字系統中只能識別0和1,各種數據要轉換為二進制代碼才能進行處理,
    發表于 03-18 14:07 ?1459次閱讀

    常用編碼(BCD編碼、余3反射、奇偶校驗)

    常用編碼1、BCD編碼    例 寫出十進數563.97D對應的8421BCD。     563.97D=0101 0110 0011 . 1001 01118421BCD   例 寫出8421BCD
    發表于 09-19 11:23 ?9472次閱讀

    編碼規則_有什么規律

    典型的二進制簡稱,因1953年公開的弗蘭克·
    的頭像 發表于 03-02 14:29 ?5.6w次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b><b class='flag-5'>編碼</b>規則_<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>有什么規律

    編碼器功能實現

    編碼器是將信號或數據進行編制、轉換為可用以通訊、傳輸和存儲的信號形式的設備。屬于可靠性編碼
    的頭像 發表于 03-02 16:13 ?1.3w次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b><b class='flag-5'>編碼</b>器功能實現

    編碼器基礎——這樣圖案化編碼的好處

    (Gray Code)因1953年公開的弗蘭克.的專利而得名。
    的頭像 發表于 01-11 10:28 ?1.6w次閱讀
    <b class='flag-5'>編碼</b>器基礎——<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>這樣圖案化<b class='flag-5'>編碼</b>的好處

    轉換為二進制編碼器的方法

    絕對編碼器中的傳感器輸出格序列,需要一些復雜的轉換方法才能正確使用。本文展示了如何獲取絕對編碼器使用的
    的頭像 發表于 05-05 15:41 ?6535次閱讀
    將<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>轉換為二進制<b class='flag-5'>編碼</b>器的方法

    一文詳解編碼

    本文介紹,這是絕對編碼器與控制器通信所必需的一種特殊二進制排列。
    的頭像 發表于 05-05 15:47 ?1.1w次閱讀

    結構|解碼方法

    是一種特殊的二進制,在結構三維視覺中,常常被用于
    的頭像 發表于 12-21 11:14 ?1237次閱讀

    如何使用純進行三維重建?

    對于新手來說,使用做單目結構三維重建是一個入門級的訓練。但是在復現時往往會遇到一個問題,明明解碼
    的頭像 發表于 01-13 11:41 ?1140次閱讀

    三維重建之結構編碼方案研究

    接下來進入主題,正式介紹結構編碼方案。結構三維重建按照所投影的圖案一般可以分為以下三類,點結構
    的頭像 發表于 08-16 16:52 ?1718次閱讀
    三維重建之<b class='flag-5'>結構</b><b class='flag-5'>光</b><b class='flag-5'>編碼</b>方案研究
    主站蜘蛛池模板: chinesevideos原创麻豆| 91精品国产高清久久久久久| 长篇高h肉爽文丝袜| 插我一区二区在线观看| 果冻传媒2021在线观看| 女人高潮了拔出来了她什么感觉 | 91精品免费久久久久久久久| 日日踫夜夜爽无码久久| 双性将军粗壮H灌满怀孕| 日韩在线中文字幕无码| 老妇xxxxbbbb| 久久精品国产欧美日韩99热| 国产香蕉九九久久精品免费| www.av在线| caoporn超碰在线| 99热热在线精品久久| 最近中文字幕MV免费看 | 黄色直接观看| 国产一区二区免费在线观看| 国产精品99精品无码视亚| 麻豆国产MV视频| 亚洲AV无码乱码在线观看浪潮| 97精品一区二区视频在线观看| 国产呻吟久久久久久久92| 欧美精品XXXXBBBB| 野花日本大全免费高清完整版| 东北疯狂xxxxbbbb中国| 毛片免费播放| 亚洲人成电影网站| 国产AV天堂一区二区三区| 免费三级播放器| 亚洲视频成人| 国产精品久久久久久久伊一| 美艳人妻在厨房翘着屁股| 亚洲免费无码av线观看| 国产成人高清在线观看播放| 美国色情三级欧美三级纸匠情挑| 亚洲精品拍拍央视网出文| 国产成人精品免费视频大| 欧美午夜精品一区二区蜜桃| 在线精品一卡乱码免费|