,
(西安理工大學(xué) 自動(dòng)化與信息工程學(xué)院,西安 710048)
現(xiàn)如今是一個(gè)“互聯(lián)網(wǎng)+”的時(shí)代,“互聯(lián)網(wǎng)+工業(yè)”通過移動(dòng)互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等信息通信技術(shù),改造了傳統(tǒng)工業(yè)縫紉中的產(chǎn)品及研發(fā)生產(chǎn)方式,而電子花樣機(jī)作為最具代表性的工業(yè)縫制設(shè)備之一,它是結(jié)合了網(wǎng)絡(luò)、嵌入式系統(tǒng)等技術(shù)的智能型縫制設(shè)備,它能使傳統(tǒng)的手工花樣得到高速度、高效率的實(shí)現(xiàn),并且還能實(shí)現(xiàn)手工花樣無法達(dá)到的多層次、多功能、統(tǒng)一性和完美性的要求。與此同時(shí),市場經(jīng)濟(jì)飛速發(fā)展,各行各業(yè)都已充分認(rèn)識到樹立品牌形象的重要性,產(chǎn)品防偽也成為關(guān)鍵要素[1]。在服裝行業(yè),傳統(tǒng)的衣物信息都是以文字的形式印刷在衣物標(biāo)簽或吊牌上,這樣傳達(dá)商品信息的方式不僅很容易被假冒偽劣商所盜用,而且也無法跟進(jìn)互聯(lián)網(wǎng)時(shí)代發(fā)展的步伐。現(xiàn)如今,微信以及支付寶培養(yǎng)了大部分消費(fèi)者使用二維碼的習(xí)慣。二維碼融合了自動(dòng)識別技術(shù)和信息載體技術(shù),它的經(jīng)濟(jì)性和可靠性已經(jīng)得到越來越多的消費(fèi)者和商家的青睞。因此,以二維碼為入口的信息防偽技術(shù)已然成為目前的發(fā)展趨勢[2]。在服裝行業(yè)的發(fā)展中,實(shí)現(xiàn)高效、安全得品牌衣物信息管理也已成為主流。
傳統(tǒng)服裝標(biāo)簽的特點(diǎn)是衣物信息以多行文字的形式出現(xiàn)在標(biāo)簽上或者以二維碼的方式印刷在衣物上,這種服裝標(biāo)簽不但不美觀,而且很容易被竊取信息。針對此問題,本文將介紹一種以縫制在衣物上的二維碼作為服裝標(biāo)簽來進(jìn)行防偽溯源的研究方案。該方案包括二維碼圖片格式轉(zhuǎn)化成電子花樣機(jī)能夠識別的花樣文件NTP格式、手機(jī)瀏覽器掃描二維碼得到數(shù)據(jù)庫中的商品信息、二維碼信息集中管理等功能,有效的解決了傳統(tǒng)服裝標(biāo)簽信息容易被竊取仿冒的問題,以縫制在衣物上的二維碼替代傳統(tǒng)服裝標(biāo)簽,不僅最大程度確保公司產(chǎn)品不被外界仿制,也能使消費(fèi)者買到真實(shí)合格的產(chǎn)品。 同時(shí)也為二維碼在服裝行業(yè)的應(yīng)用提供了有效的技術(shù)支持。
二維碼防偽溯源系統(tǒng)的總體設(shè)計(jì)方案如圖1所示。首先通過田島7.0繡花軟件,對二維碼圖片進(jìn)行相應(yīng)的處理操作后,保存為百靈達(dá)的DSB格式。然后,經(jīng)過專業(yè)花樣機(jī)打版軟件進(jìn)行文件格式解析,將DSB格式的花樣文件轉(zhuǎn)化成電子花樣機(jī)能夠識別的花樣文件NTP格式。最后,使用電子花樣機(jī)將二維碼花樣縫制在衣物上,使得每一個(gè)商品都擁有一張“電子身份證”。使用手機(jī)瀏覽器掃描衣物上的二維碼,得到數(shù)據(jù)庫中的衣物相關(guān)信息。該防偽溯源系統(tǒng)的服務(wù)器是在Linux平臺(tái)下,利用Nginx服務(wù)器實(shí)現(xiàn)Web服務(wù)器的搭建,部署Redis緩存數(shù)據(jù)庫以及Mysql數(shù)據(jù)庫,用來存儲(chǔ)二維碼相對應(yīng)的數(shù)據(jù)信息。用戶使用手機(jī)瀏覽器掃描二維碼,得到二維碼中所包含的URL地址,通過此URL地址,瀏覽器向Web服務(wù)器發(fā)出請求,二者建立連接并進(jìn)行交互,服務(wù)器會(huì)處理瀏覽器的數(shù)據(jù)請求,從數(shù)據(jù)庫中查詢二維碼信息,然后再將處理結(jié)果返回給瀏覽器,以此來達(dá)到二維碼防偽溯源的目的。
圖1 二維碼防偽溯源系統(tǒng)方案結(jié)構(gòu)圖
電子花樣機(jī)、電腦繡花機(jī)等智能縫制設(shè)備能夠識別的文件格式是花樣文件,其格式比較復(fù)雜,花樣文件的文件頭包含了它的花樣名、針數(shù)等基本信息,文件體包含了剪線、跳針、正常刺繡等控制幀信息以及具體的針跡點(diǎn)坐標(biāo)信息[3]。工業(yè)縫紉中比較常用的花樣文件格式有田島的三進(jìn)制格式DST、DSZ以及百靈達(dá)的二進(jìn)制格式DSB等等。然而這些常用的花樣文件格式大多都是針對電腦繡花機(jī)的,它們并不適用于電子花樣機(jī)。在工業(yè)縫紉中,電子花樣機(jī)能夠識別的花樣文件格式是以帶有控制幀信息的針跡點(diǎn)存儲(chǔ)在花樣文件中。相對于這些常用的花樣文件格式,電子花樣機(jī)所適用的花樣文件格式的有點(diǎn)在于,它所包含的控制信息和花樣信息更多,數(shù)據(jù)處理更簡單。
百靈達(dá)的花樣文件DSB格式包含了文件頭和文件體兩部分。DSB花樣文件的文件頭占文件的前512個(gè)字節(jié),它主要存放的是花樣的基本信息,如花樣名稱、總針數(shù)、換色的次數(shù)等等[4]。文件體是從文件的第513個(gè)字節(jié)開始直到文件結(jié)尾,它主要存放花樣的所有針跡數(shù)據(jù),如每一針在X和Y方向上的位移,正常刺繡、剪線、跳針、換色等控制碼。DSB文件體中的每一個(gè)數(shù)據(jù)幀都是由控制碼、X方向位移、Y方向位移這三個(gè)字節(jié)組成,其中X、Y方向位移的數(shù)值范圍為0~120,且DSB花樣文件都是以1 A做為結(jié)束標(biāo)識符。DSB控制字節(jié)(十六進(jìn)制)功能見表1。
表1 花樣文件DSB控制字節(jié)功能表
電子花樣機(jī)能夠識別的NTP花樣文件也包含了文件頭和文件體兩部分。NTP花樣文件的文件頭總共有64個(gè)字節(jié),主要存儲(chǔ)了文件名、花型總針數(shù)、邊界信息、起縫點(diǎn)坐標(biāo)、次原點(diǎn)坐標(biāo)、Sewing部分偏移量、Sewing修改,Source和Sewing的段數(shù)以及保留字節(jié)等等。NTP花樣文件的文件頭信息結(jié)構(gòu)如圖2。
圖2 花樣文件NTP的文件頭信息結(jié)構(gòu)
NTP花樣文件的文件體(即Sewing部分)存儲(chǔ)的是實(shí)際的縫制數(shù)據(jù),包括線型、段類型、速率、針數(shù)以及實(shí)際的縫制點(diǎn)信息等。Sewing部分同樣也是分段存儲(chǔ)的,它的每一段結(jié)構(gòu)如圖3所示。每段中的縫制點(diǎn)數(shù)據(jù)由5個(gè)字節(jié)組成,控制幀占1個(gè)字節(jié),X方向相對偏移量占2個(gè)字節(jié),Y方向相對偏移量占2個(gè)字節(jié)。每段中的縫制點(diǎn)個(gè)數(shù)都存儲(chǔ)在針數(shù)字段。電子花樣機(jī)的縫制功能包括正??p制控制、空移縫制控制、剪線、針上暫停、針下暫停和跳針六種功能。NTP花樣文件的控制幀采用位、位組合的形式來表示控制信息。其中,C7表示縫制模式位,1是正??p制,0是空移;C6表示剪線控制位,1是剪線,0是無操作;C5表示針上暫停位,1是針上暫停,0是無操作;C4表示針下暫停位,1是針下暫停,0是無操作;C3表示跳針控制位,1是跳針,0是無操作;C2、C1、C0表示預(yù)留。
圖3 花樣文件NTP的Sewing部分結(jié)構(gòu)圖
在該方案中,使用田島7.0繡花軟件打開二維碼圖片(BMP或JPG格式),首先對圖片進(jìn)行平整操作,降低圖片因放大或縮小產(chǎn)生的扭曲變形,然后使用輪廓平滑處理二維碼圖片中的黑色方塊區(qū)域,使軟件更容易識別不同顏色區(qū)域,最后使用他他米針針跡的填針方式對二維碼圖片進(jìn)行填針處理,完成后保存為花樣文件DSB格式。二維碼圖片到花樣文件DSB格式的前后轉(zhuǎn)化效果圖如圖4。
圖4 二維碼圖片格式轉(zhuǎn)化成DSB格式
在分析了花樣文件DSB和NTP格式的基礎(chǔ)上,通過專業(yè)花樣機(jī)打版軟件對DSB花樣文件格式進(jìn)行解析讀取,并將其轉(zhuǎn)換成電子花樣機(jī)能夠識別的花樣文件NTP格式。花樣文件DSB格式的解析流程如圖5,首先打開花樣文件,讀取文件頭,保存花樣針數(shù)、X和Y的最大最小值,以便后期計(jì)算X、Y的范圍;然后讀取文件體,文件體是從第513個(gè)字節(jié)開始,讀取一針數(shù)據(jù)(即3個(gè)字節(jié)),判斷開始字節(jié)是否為文件結(jié)束標(biāo)識符“1A”,若不是文件結(jié)束符,則判斷是否為正常刺繡控制碼(如:80、C0、E0、A0),如果是正常刺繡控制碼,則提取控制碼后的坐標(biāo),如果不是正常刺繡控制碼,則繼續(xù)讀取下一針數(shù)據(jù),依次循環(huán);若是文件結(jié)束符則結(jié)束整個(gè)流程。
圖5 花樣文件DSB格式的解析流程圖
在上述花樣文件DSB格式解析接口的基礎(chǔ)上,還設(shè)計(jì)了花樣文件DSB數(shù)據(jù)轉(zhuǎn)化接口,將DSB花樣數(shù)據(jù)轉(zhuǎn)化成電子花樣機(jī)能夠識別的NTP花樣數(shù)據(jù),該轉(zhuǎn)化過程如圖6,首先要生成NTP 格式的頭文件,然后轉(zhuǎn)換文件體中的每一針數(shù)據(jù)。當(dāng)遇到文件結(jié)束符“1A”的時(shí)候轉(zhuǎn)換結(jié)束;當(dāng)遇到控制碼時(shí)則提取坐標(biāo)信息,再去讀取下一針數(shù)據(jù),依次循環(huán),直到結(jié)束整個(gè)流程。在提取坐標(biāo)信息的過程中,使用DDA算法,將DSB花樣數(shù)據(jù)兩個(gè)關(guān)鍵點(diǎn)之間的長度,以設(shè)置好的針距劃分成多個(gè)縫紉點(diǎn)坐標(biāo),并給每個(gè)縫紉點(diǎn)加上控制幀,生成花樣文件NTP格式。將花樣文件DSB轉(zhuǎn)化成電子花樣機(jī)能夠識別的花樣文件NTP,并在專業(yè)花樣機(jī)打版軟件中對NTP格式的花樣文件進(jìn)行模擬縫紉,其效果圖如圖7。
圖6 DSB格式轉(zhuǎn)NTP格式流程圖
圖7 NTP格式花樣文件及其模擬縫紉圖
分析二維碼防偽溯源系統(tǒng)的功能需求,服務(wù)器軟件使用瀏覽器/服務(wù)器模式設(shè)計(jì),在Linux平臺(tái)下,利用Nginx + CGI搭建Web應(yīng)用服務(wù)器,架設(shè)Redis緩存數(shù)據(jù)庫用來存儲(chǔ)二維碼相對應(yīng)的數(shù)據(jù)信息, Mysql作為持久化的數(shù)據(jù)庫存儲(chǔ)。Web服務(wù)器端應(yīng)用框架如圖8。
圖8 Web服務(wù)器端應(yīng)用框架
本文設(shè)計(jì)的軟件使用B/S(瀏覽器/服務(wù)器)模式設(shè)計(jì),B/S使用HTTP協(xié)議完成通信過程。瀏覽器和服務(wù)器之間的HTTP協(xié)議訪問基本過程如圖9。
圖9 瀏覽器與服務(wù)器的HTTP請求響應(yīng)過程
HTTP協(xié)議的B/S模式的信息交換過程分為四個(gè)過程:建立連接、發(fā)送請求數(shù)據(jù)、發(fā)送響應(yīng)數(shù)據(jù)、關(guān)閉連接。(1)建立連接,瀏覽器Web服務(wù)器建立連接;(2)發(fā)送請求,瀏覽器將請求數(shù)據(jù)包發(fā)送到服務(wù)器的監(jiān)聽端口上,請求操作使用的GET方法,它會(huì)將請求參數(shù)放在URL中;(3)發(fā)送響應(yīng),服務(wù)器將處理結(jié)果發(fā)回給瀏覽器;(4)關(guān)閉連接,瀏覽器與服務(wù)器之間關(guān)閉連接[5]。
本文服務(wù)器軟件使用B/S(瀏覽器/服務(wù)器)模式設(shè)計(jì),利用Nginx 作為輕量級的Web服務(wù)器,它的優(yōu)勢在于高性能高效的處理高并發(fā)請求。當(dāng)瀏覽器與服務(wù)器之間通過HTTP協(xié)議進(jìn)行請求響應(yīng)交互時(shí),用戶通過手機(jī)瀏覽器掃描二維碼向服務(wù)器發(fā)出請求,Nginx服務(wù)器作為用戶的訪問入口,它會(huì)根據(jù)接收到的請求進(jìn)行相應(yīng)的數(shù)據(jù)庫操作,操作完成后將請求內(nèi)容通過Socket返回給瀏覽器,用戶最終得到數(shù)據(jù)庫中相應(yīng)的二維碼數(shù)據(jù)信息。本文使用Redis緩存數(shù)據(jù)庫,因?yàn)镸ysql數(shù)據(jù)庫是持久化存儲(chǔ),存放在磁盤里面,檢索會(huì)涉及到一定的IO,而將Redis作為Mysql數(shù)據(jù)庫的緩存,用戶會(huì)首先訪問Redis數(shù)據(jù)庫,如果Redis數(shù)據(jù)庫中沒有請求的數(shù)據(jù),則訪問Mysql數(shù)據(jù)庫[6]。然后再把請求結(jié)果復(fù)制到Redis數(shù)據(jù)庫中,下次訪問時(shí)可以直接從Redis數(shù)據(jù)庫得到請求的數(shù)據(jù),這樣就提高了數(shù)據(jù)庫訪問效率。
當(dāng)Web服務(wù)器接收到瀏覽器的Http請求,它首先會(huì)啟動(dòng)CGI程序,并通過環(huán)境變量、標(biāo)準(zhǔn)輸入傳遞數(shù)據(jù)[7]。其次,cgi進(jìn)程啟動(dòng)解析器、加載配置、連接數(shù)據(jù)庫服務(wù)器、邏輯處理等。然后,cgi進(jìn)程將處理結(jié)果通過標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤,傳遞給Web服務(wù)器。最后,Web服務(wù)器收到cgi返回的結(jié)果,構(gòu)建Http響應(yīng)返回給瀏覽器,并殺死cgi進(jìn)程。cgi的處理流程如圖10。
圖10 cgi的處理流程如圖
本文利用在Redhat下運(yùn)行服務(wù)器端程序,然后使用手機(jī)端瀏覽器掃描二維碼,二維碼所包含的信息為一個(gè)URL地址:http://192.168.1.101:80/demo.cgi/test?id=1,手機(jī)瀏覽器解析URL地址,向服務(wù)器端發(fā)送請求,通過返回過來的頁面內(nèi)容判斷其運(yùn)行的正確性。測試步驟如下:
1)運(yùn)行服務(wù)器端程序,等待客戶端的連接。Web Server的IP地址為192.168.1.101。
2)由于此服務(wù)器設(shè)置的端口是80端口,所以URL中的端口為80。用手機(jī)瀏覽器掃描二維碼,瀏覽器與服務(wù)器進(jìn)行交互,服務(wù)器將處理后的結(jié)果返回給瀏覽器,瀏覽器頁面顯示內(nèi)容為衣物的相關(guān)信息,說明此服務(wù)器工作正常。
圖11 掃描二維碼得到的信息
本文提出了工業(yè)縫紉行業(yè)的二維碼防偽溯源平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn),采用C++語言編程,完成了花樣文件DSB格式轉(zhuǎn)化成花樣文件NTP格式的實(shí)現(xiàn)。在Linux系統(tǒng)中,基于Nignx服務(wù)器技術(shù)、HTTP協(xié)議技術(shù),部署Web服務(wù)器以及數(shù)據(jù)庫服務(wù)器,有效地實(shí)現(xiàn)了對衣物信息的存儲(chǔ)和管理。通過電子花樣機(jī)縫制二維碼花樣,從工藝角度實(shí)現(xiàn)了初步的防偽,再利用二維碼防偽溯源平臺(tái),進(jìn)一步解決了傳統(tǒng)服裝標(biāo)簽信息容易被竊取仿冒的問題,也達(dá)到了衣物防偽溯源的目的[8-15]。