,
(西安理工大學 自動化與信息工程學院,西安 710048)
現如今是一個“互聯網+”的時代,“互聯網+工業”通過移動互聯網、云計算、大數據、物聯網等信息通信技術,改造了傳統工業縫紉中的產品及研發生產方式,而電子花樣機作為最具代表性的工業縫制設備之一,它是結合了網絡、嵌入式系統等技術的智能型縫制設備,它能使傳統的手工花樣得到高速度、高效率的實現,并且還能實現手工花樣無法達到的多層次、多功能、統一性和完美性的要求。與此同時,市場經濟飛速發展,各行各業都已充分認識到樹立品牌形象的重要性,產品防偽也成為關鍵要素[1]。在服裝行業,傳統的衣物信息都是以文字的形式印刷在衣物標簽或吊牌上,這樣傳達商品信息的方式不僅很容易被假冒偽劣商所盜用,而且也無法跟進互聯網時代發展的步伐。現如今,微信以及支付寶培養了大部分消費者使用二維碼的習慣。二維碼融合了自動識別技術和信息載體技術,它的經濟性和可靠性已經得到越來越多的消費者和商家的青睞。因此,以二維碼為入口的信息防偽技術已然成為目前的發展趨勢[2]。在服裝行業的發展中,實現高效、安全得品牌衣物信息管理也已成為主流。
傳統服裝標簽的特點是衣物信息以多行文字的形式出現在標簽上或者以二維碼的方式印刷在衣物上,這種服裝標簽不但不美觀,而且很容易被竊取信息。針對此問題,本文將介紹一種以縫制在衣物上的二維碼作為服裝標簽來進行防偽溯源的研究方案。該方案包括二維碼圖片格式轉化成電子花樣機能夠識別的花樣文件NTP格式、手機瀏覽器掃描二維碼得到數據庫中的商品信息、二維碼信息集中管理等功能,有效的解決了傳統服裝標簽信息容易被竊取仿冒的問題,以縫制在衣物上的二維碼替代傳統服裝標簽,不僅最大程度確保公司產品不被外界仿制,也能使消費者買到真實合格的產品。 同時也為二維碼在服裝行業的應用提供了有效的技術支持。
二維碼防偽溯源系統的總體設計方案如圖1所示。首先通過田島7.0繡花軟件,對二維碼圖片進行相應的處理操作后,保存為百靈達的DSB格式。然后,經過專業花樣機打版軟件進行文件格式解析,將DSB格式的花樣文件轉化成電子花樣機能夠識別的花樣文件NTP格式。最后,使用電子花樣機將二維碼花樣縫制在衣物上,使得每一個商品都擁有一張“電子身份證”。使用手機瀏覽器掃描衣物上的二維碼,得到數據庫中的衣物相關信息。該防偽溯源系統的服務器是在Linux平臺下,利用Nginx服務器實現Web服務器的搭建,部署Redis緩存數據庫以及Mysql數據庫,用來存儲二維碼相對應的數據信息。用戶使用手機瀏覽器掃描二維碼,得到二維碼中所包含的URL地址,通過此URL地址,瀏覽器向Web服務器發出請求,二者建立連接并進行交互,服務器會處理瀏覽器的數據請求,從數據庫中查詢二維碼信息,然后再將處理結果返回給瀏覽器,以此來達到二維碼防偽溯源的目的。

圖1 二維碼防偽溯源系統方案結構圖
電子花樣機、電腦繡花機等智能縫制設備能夠識別的文件格式是花樣文件,其格式比較復雜,花樣文件的文件頭包含了它的花樣名、針數等基本信息,文件體包含了剪線、跳針、正常刺繡等控制幀信息以及具體的針跡點坐標信息[3]。工業縫紉中比較常用的花樣文件格式有田島的三進制格式DST、DSZ以及百靈達的二進制格式DSB等等。然而這些常用的花樣文件格式大多都是針對電腦繡花機的,它們并不適用于電子花樣機。在工業縫紉中,電子花樣機能夠識別的花樣文件格式是以帶有控制幀信息的針跡點存儲在花樣文件中。相對于這些常用的花樣文件格式,電子花樣機所適用的花樣文件格式的有點在于,它所包含的控制信息和花樣信息更多,數據處理更簡單。
百靈達的花樣文件DSB格式包含了文件頭和文件體兩部分。DSB花樣文件的文件頭占文件的前512個字節,它主要存放的是花樣的基本信息,如花樣名稱、總針數、換色的次數等等[4]。文件體是從文件的第513個字節開始直到文件結尾,它主要存放花樣的所有針跡數據,如每一針在X和Y方向上的位移,正常刺繡、剪線、跳針、換色等控制碼。DSB文件體中的每一個數據幀都是由控制碼、X方向位移、Y方向位移這三個字節組成,其中X、Y方向位移的數值范圍為0~120,且DSB花樣文件都是以1 A做為結束標識符。DSB控制字節(十六進制)功能見表1。

表1 花樣文件DSB控制字節功能表
電子花樣機能夠識別的NTP花樣文件也包含了文件頭和文件體兩部分。NTP花樣文件的文件頭總共有64個字節,主要存儲了文件名、花型總針數、邊界信息、起縫點坐標、次原點坐標、Sewing部分偏移量、Sewing修改,Source和Sewing的段數以及保留字節等等。NTP花樣文件的文件頭信息結構如圖2。

圖2 花樣文件NTP的文件頭信息結構
NTP花樣文件的文件體(即Sewing部分)存儲的是實際的縫制數據,包括線型、段類型、速率、針數以及實際的縫制點信息等。Sewing部分同樣也是分段存儲的,它的每一段結構如圖3所示。每段中的縫制點數據由5個字節組成,控制幀占1個字節,X方向相對偏移量占2個字節,Y方向相對偏移量占2個字節。每段中的縫制點個數都存儲在針數字段。電子花樣機的縫制功能包括正常縫制控制、空移縫制控制、剪線、針上暫停、針下暫停和跳針六種功能。NTP花樣文件的控制幀采用位、位組合的形式來表示控制信息。其中,C7表示縫制模式位,1是正常縫制,0是空移;C6表示剪線控制位,1是剪線,0是無操作;C5表示針上暫停位,1是針上暫停,0是無操作;C4表示針下暫停位,1是針下暫停,0是無操作;C3表示跳針控制位,1是跳針,0是無操作;C2、C1、C0表示預留。

圖3 花樣文件NTP的Sewing部分結構圖
在該方案中,使用田島7.0繡花軟件打開二維碼圖片(BMP或JPG格式),首先對圖片進行平整操作,降低圖片因放大或縮小產生的扭曲變形,然后使用輪廓平滑處理二維碼圖片中的黑色方塊區域,使軟件更容易識別不同顏色區域,最后使用他他米針針跡的填針方式對二維碼圖片進行填針處理,完成后保存為花樣文件DSB格式。二維碼圖片到花樣文件DSB格式的前后轉化效果圖如圖4。

圖4 二維碼圖片格式轉化成DSB格式
在分析了花樣文件DSB和NTP格式的基礎上,通過專業花樣機打版軟件對DSB花樣文件格式進行解析讀取,并將其轉換成電子花樣機能夠識別的花樣文件NTP格式。花樣文件DSB格式的解析流程如圖5,首先打開花樣文件,讀取文件頭,保存花樣針數、X和Y的最大最小值,以便后期計算X、Y的范圍;然后讀取文件體,文件體是從第513個字節開始,讀取一針數據(即3個字節),判斷開始字節是否為文件結束標識符“1A”,若不是文件結束符,則判斷是否為正常刺繡控制碼(如:80、C0、E0、A0),如果是正常刺繡控制碼,則提取控制碼后的坐標,如果不是正常刺繡控制碼,則繼續讀取下一針數據,依次循環;若是文件結束符則結束整個流程。

圖5 花樣文件DSB格式的解析流程圖
在上述花樣文件DSB格式解析接口的基礎上,還設計了花樣文件DSB數據轉化接口,將DSB花樣數據轉化成電子花樣機能夠識別的NTP花樣數據,該轉化過程如圖6,首先要生成NTP 格式的頭文件,然后轉換文件體中的每一針數據。當遇到文件結束符“1A”的時候轉換結束;當遇到控制碼時則提取坐標信息,再去讀取下一針數據,依次循環,直到結束整個流程。在提取坐標信息的過程中,使用DDA算法,將DSB花樣數據兩個關鍵點之間的長度,以設置好的針距劃分成多個縫紉點坐標,并給每個縫紉點加上控制幀,生成花樣文件NTP格式。將花樣文件DSB轉化成電子花樣機能夠識別的花樣文件NTP,并在專業花樣機打版軟件中對NTP格式的花樣文件進行模擬縫紉,其效果圖如圖7。

圖6 DSB格式轉NTP格式流程圖

圖7 NTP格式花樣文件及其模擬縫紉圖
分析二維碼防偽溯源系統的功能需求,服務器軟件使用瀏覽器/服務器模式設計,在Linux平臺下,利用Nginx + CGI搭建Web應用服務器,架設Redis緩存數據庫用來存儲二維碼相對應的數據信息, Mysql作為持久化的數據庫存儲。Web服務器端應用框架如圖8。

圖8 Web服務器端應用框架
本文設計的軟件使用B/S(瀏覽器/服務器)模式設計,B/S使用HTTP協議完成通信過程。瀏覽器和服務器之間的HTTP協議訪問基本過程如圖9。

圖9 瀏覽器與服務器的HTTP請求響應過程
HTTP協議的B/S模式的信息交換過程分為四個過程:建立連接、發送請求數據、發送響應數據、關閉連接。(1)建立連接,瀏覽器Web服務器建立連接;(2)發送請求,瀏覽器將請求數據包發送到服務器的監聽端口上,請求操作使用的GET方法,它會將請求參數放在URL中;(3)發送響應,服務器將處理結果發回給瀏覽器;(4)關閉連接,瀏覽器與服務器之間關閉連接[5]。
本文服務器軟件使用B/S(瀏覽器/服務器)模式設計,利用Nginx 作為輕量級的Web服務器,它的優勢在于高性能高效的處理高并發請求。當瀏覽器與服務器之間通過HTTP協議進行請求響應交互時,用戶通過手機瀏覽器掃描二維碼向服務器發出請求,Nginx服務器作為用戶的訪問入口,它會根據接收到的請求進行相應的數據庫操作,操作完成后將請求內容通過Socket返回給瀏覽器,用戶最終得到數據庫中相應的二維碼數據信息。本文使用Redis緩存數據庫,因為Mysql數據庫是持久化存儲,存放在磁盤里面,檢索會涉及到一定的IO,而將Redis作為Mysql數據庫的緩存,用戶會首先訪問Redis數據庫,如果Redis數據庫中沒有請求的數據,則訪問Mysql數據庫[6]。然后再把請求結果復制到Redis數據庫中,下次訪問時可以直接從Redis數據庫得到請求的數據,這樣就提高了數據庫訪問效率。
當Web服務器接收到瀏覽器的Http請求,它首先會啟動CGI程序,并通過環境變量、標準輸入傳遞數據[7]。其次,cgi進程啟動解析器、加載配置、連接數據庫服務器、邏輯處理等。然后,cgi進程將處理結果通過標準輸出、標準錯誤,傳遞給Web服務器。最后,Web服務器收到cgi返回的結果,構建Http響應返回給瀏覽器,并殺死cgi進程。cgi的處理流程如圖10。

圖10 cgi的處理流程如圖
本文利用在Redhat下運行服務器端程序,然后使用手機端瀏覽器掃描二維碼,二維碼所包含的信息為一個URL地址:http://192.168.1.101:80/demo.cgi/test?id=1,手機瀏覽器解析URL地址,向服務器端發送請求,通過返回過來的頁面內容判斷其運行的正確性。測試步驟如下:
1)運行服務器端程序,等待客戶端的連接。Web Server的IP地址為192.168.1.101。
2)由于此服務器設置的端口是80端口,所以URL中的端口為80。用手機瀏覽器掃描二維碼,瀏覽器與服務器進行交互,服務器將處理后的結果返回給瀏覽器,瀏覽器頁面顯示內容為衣物的相關信息,說明此服務器工作正常。

圖11 掃描二維碼得到的信息
本文提出了工業縫紉行業的二維碼防偽溯源平臺的設計與實現,采用C++語言編程,完成了花樣文件DSB格式轉化成花樣文件NTP格式的實現。在Linux系統中,基于Nignx服務器技術、HTTP協議技術,部署Web服務器以及數據庫服務器,有效地實現了對衣物信息的存儲和管理。通過電子花樣機縫制二維碼花樣,從工藝角度實現了初步的防偽,再利用二維碼防偽溯源平臺,進一步解決了傳統服裝標簽信息容易被竊取仿冒的問題,也達到了衣物防偽溯源的目的[8-15]。