李萬益,區濟初,黃靖敏,鄺 蕓,鄒 領,黃曉潔,許偉輝,廖理想
(1.廣東第二師范學院計算機學院,廣州 510303;2.廣東第二師范學院數學學院,廣州 510303;3.湖南農業大學信息與智能科學技術學院,長沙 410125)
目前,人體動作識別是計算機視覺和人機交互領域的熱點問題,在虛擬現實、智能控制和終端設備上具有廣泛的應用[1],并且精準識別人體動作所表達的語義信息可以為人們生產生活提供便利,在人類生活的各個方面都具有重大意義[2]。此外,姿態識別的目的是使計算機能夠通過自主理解和運算,分析出當前人體呈現的姿態并根據當前姿態預測出接下來最有可能會呈現的姿態,它在可穿戴計算、智能監控、行為分析、動畫建模等行業都有著廣泛的應用,無論是實際還是學術應用,都具有重要的研究意義[3-4]。同時,姿態識別是計算機科學和語言技術的主題,在人機交互智能領域發揮著重要作用,但由于在相對復雜的環境難以處理,因此有必要探索更合適的方法[5-6]。再者,隨著社會針對姿態識別在現實生活適用性的要求不斷提高,合適的數據集的開發變得越來越具有挑戰性[7]。因此,本文基于姿態編碼,利用硬件實現設計出相應的數字邏輯電路,融入姿態識別的知識進行探索,將所設計的數字邏輯電路通過Multisim進行仿真測試,所得的模擬結果與真值表完全一致。
數字系統以二值信號為基礎,用數字信號對數字量進行算數運算和邏輯運算,數字系統又被稱為數字電路。隨著社會的不斷發展,科學技術的不斷進步,數字集成電路技術的水平不斷地提高,相比于以前的技術發展是一個領先性的發展趨勢[8],已被廣泛應用于數字測量、數字計算機、現代數字通信、自動控制等領域[9]。與其他類型的電路設計相比,數字電路設計有著自己的特點,數字電路集成度高、穩定可靠,功能容易實現,應用十分廣泛[10-11]。
Multisim是一款功能強大的電子電路仿真軟件,該軟件界面友好、操作方便[12],可以直觀地觀察電路運行結果,通過不斷的測試和調試,可以檢驗方案的正確性,便于及時發現,修改錯誤,簡化實驗步驟及難度,大大提高了電路設計的效率和可靠性,是電路設計中常用的軟件之一[13]。
對于Multisim數字化集成電路的仿真測試,測試的主要目的是測試電路功能是否達到或滿足實際要求的效果,根據電路的輸入端輸入測試,然后檢驗電路產生相應的反應輸出信號,分析輸出信號是否為預期結果,從而體現所設計電路應有的科學性與合理性。具體數字邏輯電路設計見下文。
下面將設計一個基于姿態編碼的數字邏輯電路。
假設只有初始狀態(即還沒有進行識別的狀態)、走路、跑步、跳舞4種姿態情況。請設計一個姿態編碼識別電路,要求能顯示輸出結果。
首先,根據要求,我們可以設定出外輸入端A,輸出端X、Y,并確定4種有效的姿態,當Q2Q1Q0=000時,其為初始狀態;當Q2Q1Q0=001或010或100(即只有一個1)為走路狀態;當Q2Q1Q0=011或110或101(即只有兩個1)為跑步狀態;當Q2Q1Q0=111(即全1)為跳舞狀態。因此,畫出其相關狀態轉換圖,如圖1所示。

圖1 姿態編碼識別電路的狀態轉換圖
該狀態圖中有一個外輸入端A,它的功能是對輸入信號進行檢測。該狀態轉換圖描述了7個有效狀態,4個不同的循環,根據外輸入端A的狀態0或1,分別進入到相應的循環當中,并且伴隨得到相應X Y的輸出結果。在Q2Q1Q0=011狀態下,若輸入端A=0,電路將回到初始狀態,同時給出X=0,Y=0;若輸入端A=1,電路將回到初始狀態,同時給出X=0,Y=1。在Q2Q1Q0=100狀態下,若輸入端A=0,電路將回到初始狀態,同時給出X=0,Y=1;若輸入端A=1,電路將回到初始狀態,同時給出X=1,Y=0。在Q2Q1Q0==101狀態下,若輸入端A=0,電路將回到初始狀態,同時給出X=0,Y=1;若輸入端A=1,電路將回到初始狀態,同時給出X=1,Y=0。在Q2Q1Q0=110狀態下,若輸入A=0,電路將回到初始狀態,同時給出X=1,Y=0;若輸入A=1,電路將回到初始狀態,同時給出X=1,Y=1。這個狀態圖可以為后面設計邏輯變量和選用相關觸發器實現相應邏輯功能提供重要依據。
然后,選用D觸發器進行設計,畫出卡諾圖并化簡,得到相應狀態方程,如圖2所示。

圖2 姿態編碼識別電路的卡諾圖及其狀態方程(續)

圖2 姿態編碼識別電路的卡諾圖及其狀態方程
卡諾圖化簡盡可能以2的整數冪次來圈數字1或0,并且滿足卡諾圖的“圈盡量大,圈盡量少”的畫圖規則進行畫圈[14],其中X表示任意信號值,可為1或0。本文以圈1為例,以相同數字保留,不同的數字去掉,邊緣的數字相鄰,以及最后得出的邏輯表達是與或式的原則進行化簡。經過5個圖的化簡,最終得到相應原態和次態狀態方程,結果與如圖2所示的結果一致。據此可以得到相關變量的真值表,如表1所示。

表1 姿態編碼識別電路的真值表
該真值表描述了狀態變化的過程,是狀態轉換圖(圖1)的另一種表達方式,不僅可以直觀地顯示邏輯關系中每種狀態下的邏輯結果,還可以更直接地描述狀態轉換過程,同時能夠更好地描述所設計電路的功能。
在設計電路時,應該合理充分地應用器件的功能,以最簡的方式滿足需求。因此,在設計姿態編碼識別電路時,為達到最簡電路的標準應盡可能用最少的觸發器和門電路,并且其輸入端數目也要盡量少[15]。在得到真值表后,我們選擇D觸發器,其電路圖如圖3所示。

圖3 姿態編碼識別電路圖
為把我們的理論成果應用到硬件開發來,下面在Multisim14[16-18]的仿真軟件上進行電路設計并測試,選用D觸發器來實現姿態編碼識別。如圖4所示,我們選用了3個D觸發器(型號為74ls74D),13個與門(7個二輸入一輸出與門、4個三輸入一輸出與門、2個四輸入一輸出與門),5個或門(4個二輸入一輸出或門、1個三輸入一輸出或門),1個非門(一輸入一輸出非門),選用2個指示燈做調試輸出X和Y的顯示,最后選用一個10Hz的時鐘信號源做時鐘信號同步。

圖4 Multisim14的姿態編碼識別電路圖
在完成元器件的線材連接后,部分仿真測試結果如圖5所示,舉例展示了其中兩種不同有效循環的仿真測試結果,該兩種循環分別為000→001→011→000和000→001→100→000,其中值得注意的是在狀態為011時,當外輸入端A為0時,輸出結果X Y的值為00,當外輸入端A為1時,輸出結果X Y的值為01;在狀態為100時,當外輸入端A為0時,輸出結果X Y的值為01,當外輸入端A為1時,輸出結果X Y的值為10。因此,經過Multisim14仿真的測試,我們發現所設計電路的仿真結果符合預期,且該電路能夠達到較好的設計性能,具備較強的可移植性,根據外輸入A的輸入狀態和時鐘的切換,可以顯示出狀態000→001→011→000,000→001→100→000,000→010→101→000,000→010→110→000的四種不同的有序循環,相應的X、Y指示燈的亮滅也顯示出相應輸出結果XY的值。即該電路通過D觸發器(型號為74LS74D)進行邏輯運算后,把相應的高低電平輸出到相應的邏輯門,再把相關二進制的電平轉換為指示燈顯示X、Y的電平,最終顯示出相應的邏輯結果,由此證明本文所設計的方法有效,電路設計符合預期。
二是通過應用服務器對數據庫服務器中存儲的各傳感器數據從多個維度進行分析,將數據進行處理分析并展現到互聯網上、微信等手機APP。

圖5 姿態編碼識別電路的部分仿真測試結果

圖5 姿態編碼識別電路的部分仿真測試結果(續)

圖5 姿態編碼識別電路的部分仿真測試結果(續)
本文基于姿態編碼進行了數字邏輯電路的設計,并且利用Multisim14軟件進行仿真測試。經仿真實驗驗證,所設計的電路實用性較強,可滿足一定數量姿態編碼識別需求。在使用D觸發器的姿態編碼識別的時序電路設計中,電路設計圖簡潔,便于擴展。所提出的電路在邏輯變量編碼的設計時,也考慮電路自啟動和自檢查功能,大大降低電路工作時的故障率。若有更多類型的姿態編碼需要識別,觸發器和邏輯門的數量也要相應增加。本文所提出的設計方案中只需要增加狀態編碼和相應邏輯變量。